From bf95203d450077bb8edc05e8658eedccedef5ad6 Mon Sep 17 00:00:00 2001 From: Charles Li Date: Fri, 12 Jun 2026 15:12:43 -0500 Subject: [PATCH 01/61] chore(config): rename repair_intake_listen_port in toml (#10218) --- src/app/firedancer-dev/commands/gossip.c | 2 +- src/app/firedancer/config/default.toml | 2 +- src/app/firedancer/topology.c | 6 +++--- src/app/shared/commands/configure/ethtool-channels.c | 2 +- src/app/shared/fd_config.h | 2 +- src/app/shared/fd_config_parse.c | 4 +++- src/disco/net/fd_net_tile_topo.c | 2 +- src/disco/net/sock/fd_sock_tile.c | 6 +++--- src/disco/net/xdp/fd_xdp_tile.c | 10 +++++----- src/disco/topo/fd_topo.h | 4 ++-- src/discof/repair/fd_repair_tile.c | 4 ++-- 11 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/app/firedancer-dev/commands/gossip.c b/src/app/firedancer-dev/commands/gossip.c index 9839c640a3d..60a14d2411a 100644 --- a/src/app/firedancer-dev/commands/gossip.c +++ b/src/app/firedancer-dev/commands/gossip.c @@ -32,7 +32,7 @@ gossip_cmd_topo( config_t * config ) { config->tiles.shred.shred_listen_port = 0U; config->tiles.quic.quic_transaction_listen_port = 0U; config->tiles.quic.regular_transaction_listen_port = 0U; - config->tiles.repair.repair_intake_listen_port = 0U; + config->tiles.repair.repair_client_listen_port = 0U; config->tiles.rserve.repair_serve_listen_port = 0U; config->tiles.txsend.txsend_src_port = 0U; diff --git a/src/app/firedancer/config/default.toml b/src/app/firedancer/config/default.toml index c49e2252860..80bddcbbbb1 100644 --- a/src/app/firedancer/config/default.toml +++ b/src/app/firedancer/config/default.toml @@ -1440,7 +1440,7 @@ telemetry = true # TODO: DOCS [tiles.repair] - repair_intake_listen_port = 8701 + repair_client_listen_port = 8701 # Slot max is the maximum number of slots that repair tile can # maintain at once. This is expected to be the largest at diff --git a/src/app/firedancer/topology.c b/src/app/firedancer/topology.c index fb59c0ce807..f62ba96d2ce 100644 --- a/src/app/firedancer/topology.c +++ b/src/app/firedancer/topology.c @@ -1215,7 +1215,7 @@ fd_topo_configure_tile( fd_topo_tile_t * tile, tile->net.legacy_transaction_listen_port = config->tiles.quic.regular_transaction_listen_port; } tile->net.gossip_listen_port = config->gossip.port; - tile->net.repair_intake_listen_port = config->tiles.repair.repair_intake_listen_port; + tile->net.repair_client_listen_port = config->tiles.repair.repair_client_listen_port; tile->net.repair_serve_listen_port = config->tiles.rserve.repair_serve_listen_port; tile->net.txsend_src_port = config->tiles.txsend.txsend_src_port; @@ -1294,7 +1294,7 @@ fd_topo_configure_tile( fd_topo_tile_t * tile, tile->gossip.ports.tvu = config->tiles.shred.shred_listen_port; tile->gossip.ports.tpu = config->tiles.quic.regular_transaction_listen_port; tile->gossip.ports.tpu_quic = config->tiles.quic.quic_transaction_listen_port; - tile->gossip.ports.repair = config->tiles.repair.repair_intake_listen_port; + tile->gossip.ports.repair = config->tiles.repair.repair_client_listen_port; tile->gossip.ports.rserve = config->tiles.rserve.repair_serve_listen_port; tile->gossip.entrypoints_cnt = config->gossip.entrypoints_cnt; @@ -1370,7 +1370,7 @@ fd_topo_configure_tile( fd_topo_tile_t * tile, } else if( FD_UNLIKELY( !strcmp( tile->name, "repair" ) ) ) { tile->repair.max_pending_shred_sets = config->tiles.shred.max_pending_shred_sets; - tile->repair.repair_intake_listen_port = config->tiles.repair.repair_intake_listen_port; + tile->repair.repair_client_listen_port = config->tiles.repair.repair_client_listen_port; tile->repair.slot_max = config->tiles.repair.slot_max; tile->repair.repair_sign_cnt = config->firedancer.layout.sign_tile_count - 1; /* -1 because this excludes the keyguard client */ diff --git a/src/app/shared/commands/configure/ethtool-channels.c b/src/app/shared/commands/configure/ethtool-channels.c index ca193e78e0f..92d606911b8 100644 --- a/src/app/shared/commands/configure/ethtool-channels.c +++ b/src/app/shared/commands/configure/ethtool-channels.c @@ -53,7 +53,7 @@ get_ports( fd_config_t const * config, ADD_PORT( config->tiles.quic.regular_transaction_listen_port ); if( config->is_firedancer ) { ADD_PORT( config->gossip.port ); - ADD_PORT( config->tiles.repair.repair_intake_listen_port ); + ADD_PORT( config->tiles.repair.repair_client_listen_port ); ADD_PORT( config->tiles.rserve.repair_serve_listen_port ); ADD_PORT( config->tiles.txsend.txsend_src_port ); } diff --git a/src/app/shared/fd_config.h b/src/app/shared/fd_config.h index ae17797d29d..24ea467a47d 100644 --- a/src/app/shared/fd_config.h +++ b/src/app/shared/fd_config.h @@ -486,7 +486,7 @@ struct fd_config { } rpc; struct { - ushort repair_intake_listen_port; + ushort repair_client_listen_port; ulong slot_max; } repair; diff --git a/src/app/shared/fd_config_parse.c b/src/app/shared/fd_config_parse.c index 34cbe316a4f..ab0227f04ac 100644 --- a/src/app/shared/fd_config_parse.c +++ b/src/app/shared/fd_config_parse.c @@ -262,7 +262,7 @@ fd_config_extract_pod( uchar * pod, CFG_POP ( ulong, tiles.rpc.send_buffer_size_mb ); CFG_POP ( bool, tiles.rpc.delay_startup ); - CFG_POP ( ushort, tiles.repair.repair_intake_listen_port ); + CFG_POP ( ushort, tiles.repair.repair_client_listen_port ); CFG_POP ( ulong, tiles.repair.slot_max ); CFG_POP ( bool, tiles.rserve.enabled ); @@ -363,6 +363,8 @@ fd_config_extract_pod( uchar * pod, CFG_RENAMED( development.net.sock_receive_buffer_size, net.socket.receive_buffer_size ); CFG_RENAMED( development.net.sock_send_buffer_size, net.socket.send_buffer_size ); + CFG_RENAMED( tiles.repair.repair_intake_listen_port, tiles.repair.repair_client_listen_port ); + # undef CFG_RENAMED if( FD_UNLIKELY( !fdctl_pod_find_leftover( pod ) ) ) return NULL; diff --git a/src/disco/net/fd_net_tile_topo.c b/src/disco/net/fd_net_tile_topo.c index 4a07e204ad8..bf20b2497d3 100644 --- a/src/disco/net/fd_net_tile_topo.c +++ b/src/disco/net/fd_net_tile_topo.c @@ -339,7 +339,7 @@ fd_topo_install_xdp( fd_topo_t const * topo, (ushort)net0_tile->xdp.net.quic_transaction_listen_port, (ushort)net0_tile->xdp.net.shred_listen_port, (ushort)net0_tile->xdp.net.gossip_listen_port, - (ushort)net0_tile->xdp.net.repair_intake_listen_port, + (ushort)net0_tile->xdp.net.repair_client_listen_port, (ushort)net0_tile->xdp.net.repair_serve_listen_port, (ushort)net0_tile->xdp.net.txsend_src_port, }; diff --git a/src/disco/net/sock/fd_sock_tile.c b/src/disco/net/sock/fd_sock_tile.c index b9aafe1816e..e0e01629b39 100644 --- a/src/disco/net/sock/fd_sock_tile.c +++ b/src/disco/net/sock/fd_sock_tile.c @@ -188,7 +188,7 @@ privileged_init( fd_topo_t const * topo, (ushort)tile->sock.net.quic_transaction_listen_port, (ushort)tile->sock.net.shred_listen_port, (ushort)tile->sock.net.gossip_listen_port, - (ushort)tile->sock.net.repair_intake_listen_port, + (ushort)tile->sock.net.repair_client_listen_port, (ushort)tile->sock.net.repair_serve_listen_port, (ushort)tile->sock.net.txsend_src_port }; @@ -217,8 +217,8 @@ privileged_init( fd_topo_t const * topo, ushort port = (ushort)udp_port_candidates[ candidate_idx ]; /* Validate value of REPAIR_SHRED_SOCKET_ID */ - if( tile->sock.net.repair_intake_listen_port && - udp_port_candidates[candidate_idx]==tile->sock.net.repair_intake_listen_port ) + if( tile->sock.net.repair_client_listen_port && + udp_port_candidates[candidate_idx]==tile->sock.net.repair_client_listen_port ) FD_TEST( sock_idx==REPAIR_SHRED_SOCKET_ID ); char const * target_link = udp_port_links[ candidate_idx ]; diff --git a/src/disco/net/xdp/fd_xdp_tile.c b/src/disco/net/xdp/fd_xdp_tile.c index 4bf3c0e452f..60144e16853 100644 --- a/src/disco/net/xdp/fd_xdp_tile.c +++ b/src/disco/net/xdp/fd_xdp_tile.c @@ -208,7 +208,7 @@ typedef struct { ushort quic_transaction_listen_port; ushort legacy_transaction_listen_port; ushort gossip_listen_port; - ushort repair_intake_listen_port; + ushort repair_client_listen_port; ushort repair_serve_listen_port; ushort txsend_src_port; @@ -985,7 +985,7 @@ net_rx_packet( fd_net_ctx_t * ctx, } else if( FD_UNLIKELY( udp_dstport==ctx->gossip_listen_port ) ) { proto = DST_PROTO_GOSSIP; out = ctx->gossvf_out; - } else if( FD_UNLIKELY( udp_dstport==ctx->repair_intake_listen_port ) ) { + } else if( FD_UNLIKELY( udp_dstport==ctx->repair_client_listen_port ) ) { proto = DST_PROTO_REPAIR; if( FD_UNLIKELY( sz == REPAIR_PING_SZ ) ) out = ctx->repair_out; /* ping-pong */ else out = ctx->shred_out; @@ -1006,7 +1006,7 @@ net_rx_packet( fd_net_ctx_t * ctx, ctx->quic_transaction_listen_port, ctx->legacy_transaction_listen_port, ctx->gossip_listen_port, - ctx->repair_intake_listen_port, + ctx->repair_client_listen_port, ctx->repair_serve_listen_port )); } @@ -1404,7 +1404,7 @@ unprivileged_init( fd_topo_t const * topo, ctx->quic_transaction_listen_port = tile->net.quic_transaction_listen_port; ctx->legacy_transaction_listen_port = tile->net.legacy_transaction_listen_port; ctx->gossip_listen_port = tile->net.gossip_listen_port; - ctx->repair_intake_listen_port = tile->net.repair_intake_listen_port; + ctx->repair_client_listen_port = tile->net.repair_client_listen_port; ctx->repair_serve_listen_port = tile->net.repair_serve_listen_port; ctx->txsend_src_port = tile->net.txsend_src_port; @@ -1482,7 +1482,7 @@ unprivileged_init( fd_topo_t const * topo, FD_LOG_ERR(( "legacy transaction listen port set but no out link was found" )); } else if( FD_UNLIKELY( ctx->gossip_listen_port!=0 && ctx->gossvf_out->mcache==NULL ) ) { FD_LOG_ERR(( "gossip listen port set but no out link was found" )); - } else if( FD_UNLIKELY( ctx->repair_intake_listen_port!=0 && ctx->repair_out->mcache==NULL ) ) { + } else if( FD_UNLIKELY( ctx->repair_client_listen_port!=0 && ctx->repair_out->mcache==NULL ) ) { FD_LOG_ERR(( "repair intake port set but no out link was found" )); } else if( FD_UNLIKELY( ctx->repair_serve_listen_port!=0 && ctx->repair_out->mcache==NULL ) ) { FD_LOG_ERR(( "repair serve listen port set but no out link was found" )); diff --git a/src/disco/topo/fd_topo.h b/src/disco/topo/fd_topo.h index 91728ce0bd4..70828e652f4 100644 --- a/src/disco/topo/fd_topo.h +++ b/src/disco/topo/fd_topo.h @@ -108,7 +108,7 @@ struct fd_topo_net_tile { ushort quic_transaction_listen_port; ushort legacy_transaction_listen_port; ushort gossip_listen_port; - ushort repair_intake_listen_port; + ushort repair_client_listen_port; ushort repair_serve_listen_port; ushort txsend_src_port; }; @@ -489,7 +489,7 @@ struct fd_topo_tile { } benchg; struct { - ushort repair_intake_listen_port; + ushort repair_client_listen_port; char identity_key_path[ PATH_MAX ]; ulong max_pending_shred_sets; ulong slot_max; diff --git a/src/discof/repair/fd_repair_tile.c b/src/discof/repair/fd_repair_tile.c index 8a0f2a812d7..494648baa33 100644 --- a/src/discof/repair/fd_repair_tile.c +++ b/src/discof/repair/fd_repair_tile.c @@ -1451,12 +1451,12 @@ unprivileged_init( fd_topo_t const * topo, } ctx->wksp = topo->workspaces[ topo->objs[ tile->tile_obj_id ].wksp_id ].wksp; - ctx->repair_intake_addr.port = fd_ushort_bswap( tile->repair.repair_intake_listen_port ); + ctx->repair_intake_addr.port = fd_ushort_bswap( tile->repair.repair_client_listen_port ); ctx->repair_serve_addr.port = fd_ushort_bswap( tile->rserve.repair_serve_listen_port ); /* TODO clean these up */ ctx->net_id = (ushort)0; - fd_ip4_udp_hdr_init( ctx->intake_hdr, 0, 0, tile->repair.repair_intake_listen_port ); + fd_ip4_udp_hdr_init( ctx->intake_hdr, 0, 0, tile->repair.repair_client_listen_port ); fd_ip4_udp_hdr_init( ctx->serve_hdr, 0, 0, tile->rserve.repair_serve_listen_port ); /* Repair set up */ From 3e093d861c50cca8639180b7cb90f3e51c735d30 Mon Sep 17 00:00:00 2001 From: Kevin J Bowers Date: Fri, 24 Apr 2026 14:20:03 -0500 Subject: [PATCH 02/61] fd_alloc updates By popular demand, this modifies fd_alloc to support larger allocations before falling back to the slow locking underlying allocator of last resort (fd_wksp). This couldn't be done simply by updating the sizeclass config as the underlying fd_alloc memory layout couldn't support the required larger superblock footprints. Thus, fd_alloc was tweaked to be more like fd_vinyl_data (which already had a notion of sizeclasses large enough to hold account state as large as 10 MiB). Most important, fd_alloc_superblock_t is now where block sizeclass metadata is stored (previously it was specified in the fd_alloc_hdr_t of allocated blocks in the sizeclass). This supports many more sizeclasses (because there is more space in the fd_alloc_superblock_t to store it) and much larger sizeclass block sizes (because moving the sizeclass frees up the space in the fd_alloc_hdr_t needed to support larger superblock footprints). This also supports better allocator diagnostics (because it is now possible to find every live user allocation in an fd_alloc instance without user assistance). Additionally, like fd_vinyl_data, user allocations are treated distinctly from superblock allocations. This allows more compact superblock nesting and streamlined allocation recursion. Accordingly, fd_alloc_superblock_t was modified to include the block sizeclass and fd_alloc_superblock_t are blocks are now all guaranteed to have 8 byte alignment. Though it naively looks like it got 8 bytes larger, because of the previous alignment requirements and the implicitly preprended fd_alloc_hdr_t, it is practically comparable to smaller now even though it holds more info. Likewise, fd_alloc_hdr_t was modified to encode a 2-bit type (user small, user large, nested superblock or root superblock) and, for allocations contained in a superblock (user small or nested superblock), 6-bit block_idx and offset to the containing superblock (26-bits encoded in 24-bits). TL;DR This allows sizeclass blocks as large as ~32 MiB to be supported while keeping the allocator memory footprint overhead comparable. Various cleanups in support of the above: - Added gen_szc_cfg sizeclass configuration generation for all the above. This has been tuned to do reduce the number of sizeclasses (hence preallocations) for the relative amount of overallocation from rounding up to the nearest block size. - fd_alloc was turned into a quasi-opaque handle instead of a fully opaque handle. Alignment requirements were also made less stringent. This makes it easier to inline various operations, streamline various unit tests and use different sizeclass configurations. - Two compile time sizeclass configurations are provided: small (which carves small allocations out of 256 KiB wksp partitions where allocations less than ~37KiB in size are considered smalll ... similar to previous) and large (64 MiB partitions and ~10 MiB small allocations). Default is large. - The use of 16-byte wide atomics on x86-like platforms was eliminated. This makes the fd_alloc shared memory layout and so forth identical across target platform of the same endianness. This was made possible by limiting the maximum size workspace backing an fd_alloc to 1 PiB (which in turns allows an aligned workspace global address and a suitably wide lockfree ABA version number to be encoded in a ulong). - Accordingly, FD_ALLOC_MAGIC was updated (and is now independent of build target). - fd_alloc_delete allows more fine grained control over how aggressively to cleanup left over allocations in the underlying workspace. - The necessary iterations for fd_alloc_preferred_sizeclass needs is explicitly provided by the sizeclass configuration. - Added minor block_set optimizations including atomic operations slightly optimized to use op_then_fetch style (instead of fetch_then_op) and the fd_alloc_block_set_all API that returns the full block set for a given block count. - Compile-time FD_ALLOC_STYLE define to enable alignment pad clearing for more robust and faster discovery of user allocations. - fd_alloc_is_empty was simplified to use fd_wksp_tag functionality. - ASAN and MSAN support was cleaned up and fixed to work correctly under concurrent load. - fd_alloc_fprintf updated for all the above, with more extensive diagnostics, including a strong guarantee it will find all current allocations under the conditions of an idle fd_alloc with alignment padding clearing (FD_ALLOC_STYLE==1). - Updated test_alloc to match the above (including verifying sizeclassing and ability to do concurrent testing under ASAN and MSAN options). - Usual drive-by include and comment cleanups. --- src/util/alloc/fd_alloc.c | 1785 ++++++++++++++------------- src/util/alloc/fd_alloc.h | 122 +- src/util/alloc/fd_alloc_cfg.h | 238 +--- src/util/alloc/fd_alloc_cfg_large.h | 131 ++ src/util/alloc/fd_alloc_cfg_small.h | 82 ++ src/util/alloc/fd_alloc_ctl.c | 1 - src/util/alloc/gen_szc_cfg.m | 160 +++ src/util/alloc/test_alloc.c | 177 ++- src/util/alloc/test_alloc_ctl | 1 - 9 files changed, 1540 insertions(+), 1157 deletions(-) create mode 100644 src/util/alloc/fd_alloc_cfg_large.h create mode 100644 src/util/alloc/fd_alloc_cfg_small.h create mode 100644 src/util/alloc/gen_szc_cfg.m mode change 100755 => 100644 src/util/alloc/test_alloc_ctl diff --git a/src/util/alloc/fd_alloc.c b/src/util/alloc/fd_alloc.c index 61759f27191..b2cc98b18dc 100644 --- a/src/util/alloc/fd_alloc.c +++ b/src/util/alloc/fd_alloc.c @@ -1,23 +1,30 @@ #include "fd_alloc.h" #include "fd_alloc_cfg.h" -#include "../sanitize/fd_asan.h" -#include "../sanitize/fd_msan.h" +#include "../sanitize/fd_sanitize.h" + /* Note: this will still compile on platforms without FD_HAS_ATOMIC. It should only be used single threaded in those use cases. (The code does imitate at a very low level the operations required by FD_HAS_ATOMIC but this is to minimize amount of code differences to test.) */ +/* If FD_ALLOC_STYLE is non-zero, this will clear any padding needed to + align a user allocation. This is not strictly necessary and can slow + down fd_alloc_malloc. But it does make diagnostics like + fd_alloc_fprintf more accurate. */ + +#ifndef FD_ALLOC_STYLE +#define FD_ALLOC_STYLE 0 +#endif + /* sizeclass APIs *****************************************************/ /* fd_alloc_preferred_sizeclass returns the tightest fitting sizeclass for the given footprint. The caller promises there is at least one possible size class (i.e. that footprint is in - [0,FD_ALLOC_FOOTPRINT_SMALL_THRESH]. The return will be in + [0,FD_ALLOC_FOOTPRINT_SMALL_THRESH]). The return will be in [0,FD_ALLOC_SIZECLASS_CNT). */ -FD_STATIC_ASSERT( 64UL=h are known to be suitable. Sizeclasses in [l,h) - have not been tested. */ + /* At this point sizeclasses in [0,l) are known to be inadequate and + sizeclasses in [h,SIZECLASS_CNT) are known to be suitable. + Sizeclasses in [l,h) have not been tested. */ ulong m = (l+h)>>1; /* Note: no overflow for reasonable sizeclass_cnt and l<=m<=h */ int c = (((ulong)fd_alloc_sizeclass_cfg[ m ].block_footprint)>=footprint); l = fd_ulong_if( c, l, m+1UL ); /* cmov */ h = fd_ulong_if( c, m, h ); /* cmov */ + } return h; } -/* fd_alloc_preferred_sizeclass_cgroup returns preferred sizeclass - concurrency group for a join with the given cgroup_idx. The caller - promises sizeclass is in [0,FD_ALLOC_SIZECLASS_CNT). */ - -static inline ulong -fd_alloc_preferred_sizeclass_cgroup( ulong sizeclass, - ulong cgroup_idx ) { - return cgroup_idx & (ulong)fd_alloc_sizeclass_cfg[ sizeclass ].cgroup_mask; -} - /* fd_alloc_block_set *************************************************/ /* A fd_alloc_block_set specifies a set of blocks in a superblock. */ @@ -64,11 +61,19 @@ fd_alloc_preferred_sizeclass_cgroup( ulong sizeclass, #define SET_MAX 64 #include "../tmpl/fd_smallset.c" -/* fd_alloc_block_set_{add,sub} inserts / removes blocks to / from - block set pointed to by set. The caller promises that blocks are not - / are already in the block set. This operation is a compiler fence. - Further, if FD_HAS_ATOMIC, this operation is done atomically. - Returns the value of the block_set just before the operation. Note: +/* fd_alloc_block_set_all returns the set { 0,1,2, ... block_cnt-1 }. + Assumes block_cnt is in [0,64]. */ + +FD_FN_CONST static inline fd_alloc_block_set_t +fd_alloc_block_set_all( ulong block_cnt ) { + return (((ulong)(block_cnt<=63UL)) << (block_cnt & 63UL)) - 1UL; /* Handle wide shifts */ +} + +/* fd_alloc_block_set_{add,sub}_then_fetch inserts / removes blocks to / + from block set pointed to by set. The caller promises that blocks + are not / are already in the block set. This operation is a compiler + fence. Further, if FD_HAS_ATOMIC, this operation is done atomically. + Returns the value of the block_set just after the operation. Note: atomic add/sub has slightly better asm on x86 than atomic or/and/nand (compiler quality issue, not an architecture issue) and generates the same results provided the caller promises are met. */ @@ -76,21 +81,19 @@ fd_alloc_preferred_sizeclass_cgroup( ulong sizeclass, #if FD_HAS_ATOMIC static inline fd_alloc_block_set_t -fd_alloc_block_set_add( fd_alloc_block_set_t * set, - fd_alloc_block_set_t blocks ) { - fd_alloc_block_set_t ret; +fd_alloc_block_set_add_then_fetch( fd_alloc_block_set_t * _set, + fd_alloc_block_set_t blocks ) { FD_COMPILER_MFENCE(); - ret = FD_ATOMIC_FETCH_AND_ADD( set, blocks ); + fd_alloc_block_set_t ret = FD_ATOMIC_ADD_AND_FETCH( _set, blocks ); FD_COMPILER_MFENCE(); return ret; } static inline fd_alloc_block_set_t -fd_alloc_block_set_sub( fd_alloc_block_set_t * set, - fd_alloc_block_set_t blocks ) { - fd_alloc_block_set_t ret; +fd_alloc_block_set_sub_then_fetch( fd_alloc_block_set_t * _set, + fd_alloc_block_set_t blocks ) { FD_COMPILER_MFENCE(); - ret = FD_ATOMIC_FETCH_AND_SUB( set, blocks ); + fd_alloc_block_set_t ret = FD_ATOMIC_SUB_AND_FETCH( _set, blocks ); FD_COMPILER_MFENCE(); return ret; } @@ -98,110 +101,131 @@ fd_alloc_block_set_sub( fd_alloc_block_set_t * set, #else static inline fd_alloc_block_set_t -fd_alloc_block_set_add( fd_alloc_block_set_t * set, - fd_alloc_block_set_t blocks ) { - fd_alloc_block_set_t ret; +fd_alloc_block_set_add_then_fetch( fd_alloc_block_set_t * _set, + fd_alloc_block_set_t blocks ) { FD_COMPILER_MFENCE(); - ret = FD_VOLATILE_CONST( *set ); - FD_VOLATILE( *set ) = ret + blocks; + fd_alloc_block_set_t ret = (*_set) + blocks; + *_set = ret; FD_COMPILER_MFENCE(); return ret; } static inline fd_alloc_block_set_t -fd_alloc_block_set_sub( fd_alloc_block_set_t * set, - fd_alloc_block_set_t blocks ) { - fd_alloc_block_set_t ret; +fd_alloc_block_set_sub_then_fetch( fd_alloc_block_set_t * _set, + fd_alloc_block_set_t blocks ) { FD_COMPILER_MFENCE(); - ret = FD_VOLATILE_CONST( *set ); - FD_VOLATILE( *set ) = ret - blocks; + fd_alloc_block_set_t ret = (*_set) - blocks; + *_set = ret; FD_COMPILER_MFENCE(); return ret; } #endif -/* fd_alloc_superblock ************************************************/ +/* fd_alloc_hdr_t *****************************************************/ -#define FD_ALLOC_SUPERBLOCK_ALIGN (16UL) /* Guarantees free_blocks and next_gaddr aligned are on the same cache line */ +/* A fd_alloc_hdr_t is a small header prepended to an allocation that + describes how to free the allocation. */ -struct __attribute__((aligned(FD_ALLOC_SUPERBLOCK_ALIGN))) fd_alloc_superblock { - fd_alloc_block_set_t free_blocks; /* which blocks in this superblock are allocated */ - ulong next_gaddr; /* if on the inactive superblock stack, next inactive superblock or NULL, ignored o.w. */ - /* FIXME: could put a cgroup hint in the lsb of next gaddr given - it is already aligned 16. */ - /* Storage for blocks follows */ -}; +typedef uint fd_alloc_hdr_t; -typedef struct fd_alloc_superblock fd_alloc_superblock_t; +/* FD_ALLOC_HDR_TYPE_* enumerate fd_alloc_hdr_t types */ -/* fd_alloc ***********************************************************/ +#define FD_ALLOC_HDR_TYPE_USER_SMALL (0) /* This is a (small) user alloc contained in a superblock */ +#define FD_ALLOC_HDR_TYPE_USER_LARGE (1) /* This is a (large) user alloc contained in a workspace partition */ +#define FD_ALLOC_HDR_TYPE_NEST_SUPERBLOCK (2) /* This is a superblock contained in a (larger) superblock */ +#define FD_ALLOC_HDR_TYPE_ROOT_SUPERBLOCK (3) /* This is a superblock contained in a workspace partition */ -/* FD_ALLOC_MAGIC is an ideally unique number that specifies the precise - memory layout of a fd_alloc */ +/* fd_alloc_hdr pack a (type,idx,off) tuple into a fd_alloc_hdr_t. + fd_alloc_hdr_{type,idx,off} unpack the corresponding field from a + fd_alloc_hdr_t. */ -#if FD_HAS_X86 /* Technically platforms with 16B compare-exchange */ +FD_FN_CONST static inline fd_alloc_hdr_t +fd_alloc_hdr( int type, /* FD_ALLOC_HDR_TYPE_USER_SMALL or FD_ALLOC_HDR_TYPE_NEST_SUPERBLOCK */ + ulong idx, /* in [0,64), containing superblock block block_idx */ + ulong off ) { /* in [0,2^26), aligned 4, byte offset of alloc/superblock in containing superblock */ + return (fd_alloc_hdr_t)((off<<6) | (idx<<2) | (ulong)type); +} -#define FD_ALLOC_MAGIC (0xF17EDA2C37A110C1UL) /* FIRE DANCER ALLOC version 1 */ +FD_FN_CONST static inline int fd_alloc_hdr_type( fd_alloc_hdr_t hdr ) { return (int) ( hdr & 3U); } /* FD_ALLOC_HDR_TYPE */ +FD_FN_CONST static inline ulong fd_alloc_hdr_idx ( fd_alloc_hdr_t hdr ) { return (ulong)((hdr>>2) & 63U); } /* in [0,64) */ +FD_FN_CONST static inline ulong fd_alloc_hdr_off ( fd_alloc_hdr_t hdr ) { return (ulong)((hdr>>8) << 2); } /* in [0,2^26), aligned 4 */ -#define VOFF_NAME fd_alloc_vgaddr -#define VOFF_TYPE uint128 -#define VOFF_VER_WIDTH 64 -#include "../tmpl/fd_voff.c" +/* FD_ALLOC_HDR_{USER_LARGE,ROOT_SUPERBLOCK} allocations do not need the + fd_alloc_hdr_t idx and off fields. These fields are replaced by + magic numbers to help with various allocation diagnostics. */ -#else /* Platforms without 16B compare-exchange */ +#define FD_ALLOC_HDR_USER_LARGE (0xfdac5e70U | (uint)FD_ALLOC_HDR_TYPE_USER_LARGE ) +#define FD_ALLOC_HDR_ROOT_SUPERBLOCK (0xfda70010U | (uint)FD_ALLOC_HDR_TYPE_ROOT_SUPERBLOCK) -#define FD_ALLOC_MAGIC (0xF17EDA2C37A110C0UL) /* FIRE DANCER ALLOC version 0 */ +/* fd_alloc_hdr_load loads the header for the allocation whose first + byte is at laddr in the caller's address space. The header will be + observed at some point of time between when this call was made and + returned. This implies that the allocation at laddr must be valid at + least until the caller stops using the hdr. -/* TODO: Overaligning superblocks on these targets to get a wider - version width */ + fd_alloc_hdr_store stores a fd_alloc_hdr_t to the + sizeof(fd_alloc_hdr_t) bytes immediately preceding the byte pointed + to by laddr in the caller's address space. The caller promises that + these bytes are somewhere within the containing block or wksp + allocation. -#define VOFF_NAME fd_alloc_vgaddr -#define VOFF_TYPE ulong -#define VOFF_VER_WIDTH 4 -#include "../tmpl/fd_voff.c" + Note that superblocks are aligned FD_ALLOC_SUPERBLOCK_ALIGN. + Further, to support superblock nesting, the blocks in a superblock + are similarly aligned. As such, fd_alloc_hdr_t (which need an + alignment less than this) are guaranteed to be loaded/stored at + alignof(fd_alloc_hdr_t) aligned locations. */ -#endif +FD_FN_PURE static inline fd_alloc_hdr_t +fd_alloc_hdr_load( void const * laddr ) { /* Aligned at least alignof(fd_alloc_hdr_t) */ + return *(fd_alloc_hdr_t const *)((ulong)laddr - sizeof(fd_alloc_hdr_t)); +} -struct __attribute__((aligned(FD_ALLOC_ALIGN))) fd_alloc { - ulong magic; /* ==FD_ALLOC_MAGIC */ - ulong wksp_off; /* Offset of the first byte of this structure from the start of the wksp */ - ulong tag; /* tag that will be used by this allocator. Positive. */ +static inline void * +fd_alloc_hdr_store( void * laddr, /* Aligned at least alignof(fd_alloc_hdr_t) */ + fd_alloc_hdr_t hdr ) { + *(fd_alloc_hdr_t *)((ulong)laddr - sizeof(fd_alloc_hdr_t)) = hdr; + return laddr; +} - /* Padding to 128 byte alignment here */ +/* fd_alloc_superblock ************************************************/ - /* active_slot[ sizeclass + FD_ALLOC_SIZECLASS_CNT*cgroup ] is the - gaddr of the active superblock for sizeclass allocations done by a - member of concurrency group cgroup or 0 if there is no active - superblock currently for that sizeclass,cgroup pair. +struct __attribute__((aligned(FD_ALLOC_SUPERBLOCK_ALIGN))) fd_alloc_superblock { + fd_alloc_hdr_t hdr; /* ==FD_ALLOC_HDR_ROOT_SUPERBLOCK or (FD_ALLOC_HDR_TYPE_NEST_SUPERBLOCK,idx,off) */ + ushort sizeclass; /* superblock sizeclass, in [0,FD_ALLOC_SIZECLASS_CNT) */ + uchar block_cnt; /* ==fd_alloc_sizeclass_cfg[ sizeclass ].block_cnt */ + uchar cgroup_mask; /* ==fd_alloc_sizeclass_cfg[ sizeclass ].cgroup_mask */ + fd_alloc_block_set_t free_blocks; /* which blocks in this superblock are allocated */ + ulong next_gaddr; /* if on the inactive superblock stack, next inactive superblock or NULL, ignored o.w. */ - inactive_stack[ sizeclass ] is top of inactive stack for sizeclass - or 0 if the stack is empty. This is versioned offset with a 64-bit - version number in the least significant bits and a 64-bit gaddr in - the upper bits. At 64-bits wide, note that version number reuse - will not occur on any human timescales. (FIXME: consider using a - ulong to be more portable to platforms without 128-bit CAS support. - E.g. 20-bit version and a 44-bit gaddr and restricting maximum - supported workspace to ~16 TiB.) + /* TODO: consider making make a ulong bit packed tuple for + (sizeclass,block_cnt,cgroup_mask) and adding a cgroup_hint to it? */ - Note that this is compact but organized such that concurrent - operations from different cgroups are unlikely to create false - sharing. */ + /* Storage for blocks follows */ +}; - ulong active_slot[ FD_ALLOC_SIZECLASS_CNT*(FD_ALLOC_JOIN_CGROUP_HINT_MAX+1UL) ] __attribute__((aligned(128UL))); +typedef struct fd_alloc_superblock fd_alloc_superblock_t; - /* Padding to 128 byte alignment here */ +/* fd_alloc ***********************************************************/ - fd_alloc_vgaddr_t inactive_stack[ FD_ALLOC_SIZECLASS_CNT ] __attribute__((aligned(128UL))); -}; +/* fd_alloc_vgaddr_t provides APIs for versioned gaddrs used in an + fd_alloc_t's sizeclass inactive stack. */ + +#define VOFF_NAME fd_alloc_vgaddr +#define VOFF_TYPE ulong +#define VOFF_VER_WIDTH 17 +#include "../tmpl/fd_voff.c" -/* fd_alloc_private_wksp returns the wksp backing alloc. Assumes alloc - is a non-NULL pointer in the caller's address space to the fd_alloc - (not a join handle). */ +/* fd_alloc_private_active_slot returns a pointer to the location in the + caller's address space where the gaddr of the active superblock for + (sizeclass,cgroup) is stored. Assumes alloc is a non-NULL pointer in + the caller's address space to the fd_alloc (not a join handle). */ -FD_FN_PURE static inline fd_wksp_t * -fd_alloc_private_wksp( fd_alloc_t * alloc ) { - return (fd_wksp_t *)(((ulong)alloc) - alloc->wksp_off); +FD_FN_CONST static inline ulong * +fd_alloc_private_active_slot( fd_alloc_t * alloc, + ulong sizeclass, + ulong cgroup ) { + return alloc->active_slot + sizeclass + FD_ALLOC_SIZECLASS_MAX*cgroup; } /* fd_alloc_private_active_slot_replace replaces the value currently in @@ -210,27 +234,26 @@ fd_alloc_private_wksp( fd_alloc_t * alloc ) { fence. If FD_HAS_ATOMIC, this will be done atomically. */ static inline ulong -fd_alloc_private_active_slot_replace( ulong * active_slot, +fd_alloc_private_active_slot_replace( ulong * _active_slot, ulong new_superblock_gaddr ) { - ulong old_superblock_gaddr; FD_COMPILER_MFENCE(); # if FD_HAS_ATOMIC - old_superblock_gaddr = FD_ATOMIC_XCHG( active_slot, new_superblock_gaddr ); + ulong old_superblock_gaddr = FD_ATOMIC_XCHG( _active_slot, new_superblock_gaddr ); # else - old_superblock_gaddr = FD_VOLATILE_CONST( *active_slot ); - FD_VOLATILE( *active_slot ) = new_superblock_gaddr; + ulong old_superblock_gaddr = *_active_slot; + *_active_slot = new_superblock_gaddr; # endif FD_COMPILER_MFENCE(); return old_superblock_gaddr; } -/* fd_alloc_private_inactive_stack_push pushes superblock at the +/* fd_alloc_private_inactive_stack_push pushes the superblock at the workspace global address superblock_gaddr in workspace wksp onto the - stack inactive stack. This is a compiler fence. If FD_HAS_ATOMIC, + stack _inactive_stack. This is a compiler fence. If FD_HAS_ATOMIC, this will be done atomically. */ static inline void -fd_alloc_private_inactive_stack_push( fd_alloc_vgaddr_t * inactive_stack, +fd_alloc_private_inactive_stack_push( fd_alloc_vgaddr_t * _inactive_stack, fd_wksp_t * wksp, ulong superblock_gaddr ) { fd_alloc_superblock_t * superblock = (fd_alloc_superblock_t *)fd_wksp_laddr_fast( wksp, superblock_gaddr ); @@ -239,26 +262,25 @@ fd_alloc_private_inactive_stack_push( fd_alloc_vgaddr_t * inactive_stack, /* Read the top of the inactive stack. */ - fd_alloc_vgaddr_t old; FD_COMPILER_MFENCE(); - old = FD_VOLATILE_CONST( *inactive_stack ); + fd_alloc_vgaddr_t old = *_inactive_stack; FD_COMPILER_MFENCE(); - ulong top_ver = (ulong)fd_alloc_vgaddr_ver( old ); - ulong top_gaddr = (ulong)fd_alloc_vgaddr_off( old ); + ulong top_ver = fd_alloc_vgaddr_ver( old ); + ulong top_gaddr = fd_alloc_vgaddr_off( old ) << FD_ALLOC_SUPERBLOCK_LG_ALIGN; /* Try to push the top of the inactive stack */ - fd_alloc_vgaddr_t new = fd_alloc_vgaddr( top_ver+1UL, superblock_gaddr ); + fd_alloc_vgaddr_t new = fd_alloc_vgaddr( top_ver+1UL, superblock_gaddr >> FD_ALLOC_SUPERBLOCK_LG_ALIGN ); FD_COMPILER_MFENCE(); - FD_VOLATILE( superblock->next_gaddr ) = top_gaddr; + superblock->next_gaddr = top_gaddr; FD_COMPILER_MFENCE(); # if FD_HAS_ATOMIC - if( FD_LIKELY( FD_ATOMIC_CAS( inactive_stack, old, new )==old ) ) break; + if( FD_LIKELY( FD_ATOMIC_CAS( _inactive_stack, old, new )==old ) ) break; # else - if( FD_LIKELY( FD_VOLATILE_CONST( *inactive_stack )==old ) ) { FD_VOLATILE( *inactive_stack ) = new; break; } + if( FD_LIKELY( (*_inactive_stack)==old ) ) { *_inactive_stack = new; break; } # endif /* Hmmm ... that failed ... try again */ @@ -269,14 +291,20 @@ fd_alloc_private_inactive_stack_push( fd_alloc_vgaddr_t * inactive_stack, FD_COMPILER_MFENCE(); } -/* fd_alloc_private_inactive_stack_pop pops superblock off the top of - the inactive stack. Returns the non-zero wksp superblock gaddr of - the popped stack top on success or 0 on failure (i.e. inactive stack - is empty). This is a compiler fence. If FD_HAS_ATOMIC, this will be - done atomically. */ +/* fd_alloc_private_inactive_stack_pop pops the superblock off the top + of the stack _inactive_stack. Returns the non-zero wksp superblock + gaddr of the popped stack top on success or 0 on failure (i.e. + _inactive_stack at some point in time between which this was called + and this returned). This is a compiler fence. If FD_HAS_ATOMIC, + this will be done atomically. */ -static inline ulong -fd_alloc_private_inactive_stack_pop( fd_alloc_vgaddr_t * inactive_stack, +#if FD_HAS_DEEPASAN +FD_FN_NO_ASAN static +#else +static inline +#endif +ulong +fd_alloc_private_inactive_stack_pop( fd_alloc_vgaddr_t * _inactive_stack, fd_wksp_t * wksp ) { ulong top_gaddr; @@ -285,31 +313,35 @@ fd_alloc_private_inactive_stack_pop( fd_alloc_vgaddr_t * inactive_stack, /* Read the top of the inactive stack. Return if the inactive stack is empty. */ - fd_alloc_vgaddr_t old; FD_COMPILER_MFENCE(); - old = FD_VOLATILE_CONST( *inactive_stack ); + fd_alloc_vgaddr_t old = *_inactive_stack; FD_COMPILER_MFENCE(); - /**/ top_gaddr = (ulong)fd_alloc_vgaddr_off( old ); - ulong top_ver = (ulong)fd_alloc_vgaddr_ver( old ); - fd_msan_unpoison( &top_gaddr, sizeof( top_gaddr ) ); + /**/ top_gaddr = fd_alloc_vgaddr_off( old ) << FD_ALLOC_SUPERBLOCK_LG_ALIGN; + ulong top_ver = fd_alloc_vgaddr_ver( old ); if( FD_UNLIKELY( !top_gaddr ) ) break; /* Try to pop the top of the inactive stack. */ fd_alloc_superblock_t * top = (fd_alloc_superblock_t *)fd_wksp_laddr_fast( wksp, top_gaddr ); - ulong next_gaddr; + /* Note: under concurrent FD_HAS_DEEPASAN operation, another thread + could pop and free the inactive superblock at the top and free it + (thus poisoning top) after our top read above and before our + next_gaddr read below. This could trigger a spurious asan + failure (that, in normal operation, would have been failed and + retried via the CAS below). Hence the noasan above. */ + FD_COMPILER_MFENCE(); - next_gaddr = FD_VOLATILE_CONST( top->next_gaddr ); + ulong next_gaddr = top->next_gaddr; FD_COMPILER_MFENCE(); - fd_alloc_vgaddr_t new = fd_alloc_vgaddr( top_ver+1UL, next_gaddr ); + fd_alloc_vgaddr_t new = fd_alloc_vgaddr( top_ver+1UL, next_gaddr >> FD_ALLOC_SUPERBLOCK_LG_ALIGN ); # if FD_HAS_ATOMIC - if( FD_LIKELY( FD_ATOMIC_CAS( inactive_stack, old, new )==old ) ) break; + if( FD_LIKELY( FD_ATOMIC_CAS( _inactive_stack, old, new )==old ) ) break; # else - if( FD_LIKELY( FD_VOLATILE_CONST( *inactive_stack )==old ) ) { FD_VOLATILE( *inactive_stack ) = new; break; } + if( FD_LIKELY( (*_inactive_stack)==old ) ) { *_inactive_stack = new; break; } # endif /* Hmmm ... that failed ... try again */ @@ -322,127 +354,30 @@ fd_alloc_private_inactive_stack_pop( fd_alloc_vgaddr_t * inactive_stack, return top_gaddr; } -/* fd_alloc_hdr_t *****************************************************/ - -/* An fd_alloc_hdr_t is a small header prepended to an allocation that - describes the allocation. Because fd_alloc supports arbitrary - allocation alignments, these headers might be stored at unaligned - positions. */ - -typedef uint fd_alloc_hdr_t; - -/* FD_ALLOC_HDR_LARGE_* give the fd_alloc_hdr_t used for mallocs done by - the allocator of last resort (i.e. fd_wksp_alloc). The least - significant 7 bits must be FD_ALLOC_SIZECLASS_LARGE so that free can - detect an allocation is done by that allocator. The most significant - 24 bits are a magic number to help with analytics. Bit 7 indicates - whether this allocation is direct user allocation or holds a - superblock that aggregates many small allocations together. */ - -#define FD_ALLOC_HDR_LARGE_DIRECT ((fd_alloc_hdr_t)(0xFDA11C00U | (fd_alloc_hdr_t)FD_ALLOC_SIZECLASS_LARGE)) -#define FD_ALLOC_HDR_LARGE_SUPERBLOCK ((fd_alloc_hdr_t)(0xFDA11C80U | (fd_alloc_hdr_t)FD_ALLOC_SIZECLASS_LARGE)) - -/* fd_alloc_hdr_load loads the header for the allocation whose first - byte is at laddr in the caller's address space. The header will be - observed at some point of time between when this call was made and - returned and this implies that the allocation at laddr must be at - least until the caller stops using the header. */ - -FD_FN_PURE static inline fd_alloc_hdr_t -fd_alloc_hdr_load( void const * laddr ) { - return FD_LOAD( fd_alloc_hdr_t, ((ulong)laddr) - sizeof(fd_alloc_hdr_t) ); -} - -/* fd_alloc_hdr_sizeclass returns the sizeclass of an allocation - described by hdr. This will be in [0,FD_ALLOC_SIZECLASS_CNT) or - FD_ALLOC_SIZECLASS_LARGE. sizeclass==FD_ALLOC_SIZECLASS_LARGE - indicates that the allocation was done via fd_wksp_alloc directly. - Small allocations are clustered into superblocks for performance and - packing efficiency. All allocations in a superblock are from the - same sizeclass. */ - -FD_FN_CONST static inline ulong fd_alloc_hdr_sizeclass( fd_alloc_hdr_t hdr ) { return (ulong)(hdr & 127U); } - -/* fd_alloc_hdr_{superblock,block} return details about a small - allocation whose first byte is at laddr in the caller's address space - and is described by hdr. In particular: - - fd_alloc_hdr_superblock( hdr, laddr ) returns the location in the - caller's address space of the superblock containing the allocation. - The lifetime of a superblock is at least as long as the allocation at - laddr. - - fd_alloc_hdr_block_idx( hdr ) returns the superblock block index of the - block containing the allocation. Note that this will be in: - [0,fd_alloc_sizeclass_block_cnt(sizeclass)) - and that: - fd_alloc_sizeclass_block_cnt(sizeclass)<=fd_alloc_block_set_max()<=64. */ - -FD_FN_CONST static inline fd_alloc_superblock_t * -fd_alloc_hdr_superblock( fd_alloc_hdr_t hdr, - void * laddr ) { - return (fd_alloc_superblock_t *)(((ulong)laddr) - ((ulong)(hdr >> 13))); -} - -FD_FN_CONST static inline ulong fd_alloc_hdr_block_idx( fd_alloc_hdr_t hdr ) { return (ulong)((hdr >> 7) & 63U); } - -/* fd_alloc_hdr_is_large returns 1 if hdr is for a large allocation and - 0 if not. fd_alloc_hdr_sizeclass( hdr )==FD_ALLOC_SIZECLASS_LARGE - also works but does not test the magic number in the most significant - bits. */ - -FD_FN_CONST static inline int -fd_alloc_hdr_is_large( fd_alloc_hdr_t hdr ) { - return fd_uint_clear_bit( hdr, 7 )==FD_ALLOC_HDR_LARGE_DIRECT; -} - -/* fd_alloc_hdr_large_is_superblock returns 1 if hdr (which is assumed - to be for a large allocation) is for a large allocation that holds a - superblock. */ - -FD_FN_CONST static inline int -fd_alloc_hdr_large_is_superblock( fd_alloc_hdr_t hdr ) { - return fd_uint_extract_bit( hdr, 7 ); -} - -/* fd_alloc_hdr_store stores a fd_alloc_hdr_t describing a small - sizeclass allocation contained within block of superblock in the - sizeof(fd_alloc_hdr_t) bytes immediately preceding the byte pointed - to by laddr in the caller's address space. The caller promises that - these bytes are somewhere within the block. - - fd_alloc_hdr_store_large similarly stores a fd_alloc_hdr_t describing - a large allocation. */ - -static inline void * -fd_alloc_hdr_store( void * laddr, - fd_alloc_superblock_t * superblock, - ulong block_idx, - ulong sizeclass ) { - FD_STORE( fd_alloc_hdr_t, ((ulong)laddr) - sizeof(fd_alloc_hdr_t), - (fd_alloc_hdr_t)( ((((ulong)laddr) - ((ulong)superblock)) << 13) | /* Bits 31:13 - 19 bit: superblock offset */ - (block_idx << 7) | /* Bits 12: 7 - 6 bit: block */ - sizeclass ) ); /* Bits 6: 0 - 7 bit: sizeclass */ - return laddr; -} - -static inline void * -fd_alloc_hdr_store_large( void * laddr, - int is_superblock ) { /* in [0,1] */ - FD_STORE( fd_alloc_hdr_t, ((ulong)laddr) - sizeof(fd_alloc_hdr_t), - FD_ALLOC_HDR_LARGE_DIRECT | (((fd_alloc_hdr_t)is_superblock) << 7) ); - return laddr; -} - -/* Misc ***************************************************************/ - -/* fd_alloc_private_join_alloc returns the local address of the alloc - for a join. */ - -FD_FN_CONST fd_alloc_t * -fd_alloc_private_join_alloc( fd_alloc_t * join ) { - return (fd_alloc_t *)(((ulong)join) & ~FD_ALLOC_JOIN_CGROUP_HINT_MAX); -} +/* fd_alloc_private_alloc will allocate a sizeclass sized block from + the given alloc with the concurrency hint cgroup_hint. On success, + returns the superblock that contains the allocated block in the + caller's address space and *_block_idx will hold the index of the + allocated block. On failure, returns NULL and *_block_idx is + unchanged. */ + +static fd_alloc_superblock_t * +fd_alloc_private_alloc( fd_alloc_t * alloc, + fd_wksp_t * wksp, + ulong sizeclass, + ulong cgroup_hint, + ulong * _block_idx ); + +/* fd_alloc_private_free frees (superblock,block_idx). Assumes join is a + current local join to an allocator, superblock points in the caller's + address space to a valid superblock from this allocator, and + block_idx a valid block index for this superblock that is currently + allocated. */ + +static void +fd_alloc_private_free( fd_alloc_t * join, + fd_alloc_superblock_t * superblock, + ulong block_idx ); /* Constructors *******************************************************/ @@ -456,17 +391,10 @@ fd_alloc_footprint( void ) { return sizeof(fd_alloc_t); } -ulong -fd_alloc_superblock_footprint(void){ - return sizeof(fd_alloc_superblock_t); -} - void * fd_alloc_new( void * shmem, ulong tag ) { - /* Check input arguments */ - if( FD_UNLIKELY( !shmem ) ) { FD_LOG_WARNING(( "NULL shmem" )); return NULL; @@ -483,19 +411,24 @@ fd_alloc_new( void * shmem, return NULL; } + if( FD_UNLIKELY( fd_wksp_gaddr_hi( wksp ) > (1UL<<(fd_alloc_vgaddr_OFF_WIDTH + FD_ALLOC_SUPERBLOCK_LG_ALIGN)) ) ) { + FD_LOG_WARNING(( "wksp too large for current fd_alloc implementation" )); + return NULL; + } + if( FD_UNLIKELY( !tag ) ) { FD_LOG_WARNING(( "bad tag" )); return NULL; } fd_alloc_t * alloc = (fd_alloc_t *)shmem; - fd_memset( alloc, 0, sizeof(fd_alloc_t) ); + memset( alloc, 0, sizeof(fd_alloc_t) ); alloc->wksp_off = (ulong)alloc - (ulong)wksp; alloc->tag = tag; FD_COMPILER_MFENCE(); - FD_VOLATILE( alloc->magic ) = FD_ALLOC_MAGIC; + alloc->magic = FD_ALLOC_MAGIC; FD_COMPILER_MFENCE(); return shmem; @@ -520,6 +453,7 @@ fd_alloc_join( void * shalloc, FD_LOG_WARNING(( "bad magic" )); return NULL; } + return fd_alloc_join_cgroup_hint_set( alloc, cgroup_hint ); } @@ -530,11 +464,13 @@ fd_alloc_leave( fd_alloc_t * join ) { FD_LOG_WARNING(( "NULL join" )); return NULL; } + return fd_alloc_private_join_alloc( join ); } void * -fd_alloc_delete( void * shalloc ) { +fd_alloc_private_delete( void * shalloc, + int level ) { if( FD_UNLIKELY( !shalloc ) ) { FD_LOG_WARNING(( "NULL shalloc" )); @@ -554,152 +490,100 @@ fd_alloc_delete( void * shalloc ) { } FD_COMPILER_MFENCE(); - FD_VOLATILE( alloc->magic ) = 0UL; + alloc->magic = 0UL; FD_COMPILER_MFENCE(); - /* Clean up as much as we can. For each sizeclass, delete all active - superblocks and all inactive superblocks. We will not be able - cleanup any superblocks that are fully allocated (and any - outstanding large allocations) as we rely on the application to - implicitly track them (because they nominally will eventually call - free on them). So hopefully the application did a good job and - cleaned up all their outstanding stuff before calling delete. */ - fd_wksp_t * wksp = fd_alloc_private_wksp( alloc ); - for( ulong sizeclass=0UL; sizeclassactive_slot + sizeclass + FD_ALLOC_SIZECLASS_CNT*cgroup_idx, 0UL ); - if( FD_UNLIKELY( superblock_gaddr ) ) - fd_alloc_free( alloc, (fd_alloc_superblock_t *)fd_wksp_laddr_fast( wksp, superblock_gaddr ) ); - } - - fd_alloc_vgaddr_t * inactive_stack = alloc->inactive_stack + sizeclass; - for(;;) { - ulong superblock_gaddr = fd_alloc_private_inactive_stack_pop( inactive_stack, wksp ); - if( FD_LIKELY( !superblock_gaddr ) ) break; - fd_alloc_free( alloc, (fd_alloc_superblock_t *)fd_wksp_laddr_fast( wksp, superblock_gaddr ) ); - } - - } - - return shalloc; -} + if( level<=0 ) { /* no wksp cleanup */ -fd_wksp_t * -fd_alloc_wksp( fd_alloc_t * join ) { - return FD_LIKELY( join ) ? fd_alloc_private_wksp( fd_alloc_private_join_alloc( join ) ) : NULL; -} + /* nothing to do */ -ulong -fd_alloc_tag( fd_alloc_t * join ) { - return FD_LIKELY( join ) ? fd_alloc_private_join_alloc( join )->tag : 0UL; -} + } else if( level<=1 ) { /* quick wksp cleanup */ -static inline void * -fd_alloc_malloc_at_least_impl( fd_alloc_t * join, - ulong align, - ulong sz, - ulong * max ) { + /* For each sizeclass, make all active superblocks inactive and then + delete all inactive superblocks. This will not cleanup any + superblocks that are fully allocated (and thus out of circulation + for malloc) or any large allocations as a quick wksp cleanup + assumes the application freed all outstanding allocations before + calling this. */ - if( FD_UNLIKELY( !max ) ) return NULL; + for( ulong sizeclass=0UL; sizeclassinactive_stack + sizeclass; - /* Handle default align, NULL alloc, 0 size, non-power-of-two align - and unreasonably large sz. footprint has room for fd_alloc_hdr_t, - sz bytes with enough padding to allow for the arbitrary alignment - of blocks in a superblock. Note that footprint is guaranteed not - to overflow if align is a power of 2 as align at most 2^63 and - sizeof is 4 and we abort is align is not a power of 2. So we don't - need to do elaborate overflow checking. */ + ulong cgroup_cnt = (ulong)fd_alloc_sizeclass_cfg[ sizeclass ].cgroup_mask + 1UL; + for( ulong cgroup_idx=0UL; cgroup_idxhdr; + if( FD_UNLIKELY( hdr==FD_ALLOC_HDR_ROOT_SUPERBLOCK ) ) fd_wksp_free( wksp, superblock_gaddr ); + else { + fd_alloc_superblock_t * parent_superblock = (fd_alloc_superblock_t *)((ulong)superblock - fd_alloc_hdr_off( hdr )); + ulong parent_block_idx = fd_alloc_hdr_idx( hdr ); + fd_alloc_private_free( alloc, parent_superblock, parent_block_idx ); + } + } + } - align = fd_ulong_if( !align, FD_ALLOC_MALLOC_ALIGN_DEFAULT, align ); + } else { /* deep wksp cleanup (level>1) */ -# if FD_HAS_DEEPASAN - /* The header is prepended and needs to be unpoisoned. Ensure that - there is padding for the alloc_hdr to be properly aligned. We - want to exit silently if the sz passed in is 0. The alignment must be - at least 8. */ - ulong fd_alloc_hdr_footprint = fd_ulong_align_up( sizeof(fd_alloc_hdr_t), FD_ASAN_ALIGN ); - if( FD_LIKELY(sz && sz < ULONG_MAX) ) { - sz = fd_ulong_align_up( sz, FD_ASAN_ALIGN ); - } - align = fd_ulong_if( align < FD_ASAN_ALIGN, FD_ASAN_ALIGN, align ); -# else - ulong fd_alloc_hdr_footprint = sizeof(fd_alloc_hdr_t); -# endif + /* A deep wksp cleanup will free all wksp allocations that match the + alloc's tag. */ - ulong footprint = sz + fd_alloc_hdr_footprint + align - 1UL; + fd_wksp_tag_free( wksp, &alloc->tag, 1UL ); - if( FD_UNLIKELY( (!alloc) | (!fd_ulong_is_pow2( align )) | (!sz) | (footprint<=sz) ) ) { - *max = 0UL; - return NULL; } - fd_wksp_t * wksp = fd_alloc_private_wksp( alloc ); - - /* At this point, alloc is non-NULL and backed by wksp, align is a - power-of-2, footprint is a reasonable non-zero value. If the - footprint is large, just allocate the memory directly, prepend the - appropriate header and return. TODO: consider clearing alignment - padding for better alloc parameter recovery in diagnostics here? */ - - if( FD_UNLIKELY( footprint > FD_ALLOC_FOOTPRINT_SMALL_THRESH ) ) { + return shalloc; +} - ulong glo; - ulong ghi; - ulong wksp_gaddr = fd_wksp_alloc_at_least( wksp, 1UL, footprint, alloc->tag, &glo, &ghi ); - if( FD_UNLIKELY( !wksp_gaddr ) ) { - *max = 0UL; - return NULL; - } +void * fd_alloc_delete( void * shalloc ) { return fd_alloc_private_delete( shalloc, 1 ); } - ulong alloc_gaddr = fd_ulong_align_up( wksp_gaddr + sizeof(fd_alloc_hdr_t), align ); - *max = (ghi - glo) - (alloc_gaddr - wksp_gaddr); - return fd_alloc_hdr_store_large( fd_wksp_laddr_fast( wksp, alloc_gaddr ), 0 /* !sb */ ); - } +static fd_alloc_superblock_t * +fd_alloc_private_alloc( fd_alloc_t * alloc, + fd_wksp_t * wksp, + ulong sizeclass, + ulong cgroup_hint, + ulong * _block_idx ) { - /* At this point, the footprint is small. Determine the preferred - sizeclass for this allocation and the preferred active superblock - to use for this sizeclass and join. */ + ulong cgroup_mask = (ulong)fd_alloc_sizeclass_cfg[ sizeclass ].cgroup_mask; - ulong sizeclass = fd_alloc_preferred_sizeclass( footprint ); - ulong cgroup = fd_alloc_preferred_sizeclass_cgroup( sizeclass, fd_alloc_join_cgroup_hint( join ) ); + ulong cgroup = cgroup_hint & cgroup_mask; - ulong * active_slot = alloc->active_slot + sizeclass + FD_ALLOC_SIZECLASS_CNT*cgroup; + /* Try to get exclusive access to the preferred active superblock + for (sizeclass,cgroup). Note that all active superblocks have at + least one free block. We do a test-and-test-and-set style to avoid + an atomic operation if there currently isn't an active superblock + for (sizeclass,cgroup). */ - /* Try to get exclusive access to the preferred active superblock. - Note that all all active superblocks have at least one free block. + ulong * active_slot = fd_alloc_private_active_slot( alloc, sizeclass, cgroup ); - TODO: consider doing something test-and_test-and-set? E.g.: - superblock_gaddr = FD_VOLATILE_CONST( *active_slot ); - if( FD_LIKELY( superblock_gaddr ) ) superblock_gaddr = fd_alloc_replace_active( active_slot, 0UL ); - This would avoid an atomic operation if there currently isn't an - active superblock for this sizeclass and cgroup. */ + ulong superblock_gaddr = *active_slot; - ulong superblock_gaddr = fd_alloc_private_active_slot_replace( active_slot, 0UL ); + if( FD_LIKELY( superblock_gaddr ) ) superblock_gaddr = fd_alloc_private_active_slot_replace( active_slot, 0UL ); /* At this point, if superblock_gaddr is non-zero, we have exclusive access to the superblock and only we can allocate blocks from it. (Other threads could free blocks to it concurrently though.) If superblock_gaddr is zero, there was no preferred active - superblock for this sizeclass,cgroup pair when we looked. So, we - try to pop the inactive superblock stack for this sizeclass. Note - that all inactive superblocks also have at least one free block. + superblock for (sizeclass,cgroup) when we looked. So, we try to + pop the inactive superblock stack for this sizeclass. Note that + all inactive superblocks also have at least one free block. If that fails, we try to allocate a new superblock to hold this allocation. If we are able to do so, obviously the new superblock - would have at least one free block for this allocation. (Yes, - malloc calls itself recursively. The base case is the large - allocation above. Note that we expand out the base case explicitly - here so we can distinguish user large allocations from gigantic - superblock allocations in analytics without having to change the - APIs or use the public API as a wrapper.) + will have at least one free block for this allocation. (Yes, + malloc calls itself recursively. The base case is root superblock + allocation from the underlying workspace.) If that fails, we are in trouble and fail (we are either out of memory or have too much wksp fragmentation). */ @@ -711,62 +595,59 @@ fd_alloc_malloc_at_least_impl( fd_alloc_t * join, if( FD_UNLIKELY( !superblock_gaddr ) ) { fd_alloc_superblock_t * superblock; + fd_alloc_hdr_t hdr; - ulong superblock_footprint = (ulong)fd_alloc_sizeclass_cfg[ sizeclass ].superblock_footprint; - if( FD_UNLIKELY( superblock_footprint > FD_ALLOC_FOOTPRINT_SMALL_THRESH ) ) { + ulong parent_sizeclass = (ulong)fd_alloc_sizeclass_cfg[ sizeclass ].parent_sizeclass; - ulong wksp_footprint = superblock_footprint + fd_alloc_hdr_footprint + FD_ALLOC_SUPERBLOCK_ALIGN - 1UL; - ulong wksp_gaddr = fd_wksp_alloc( wksp, 1UL, wksp_footprint, alloc->tag ); - if( FD_UNLIKELY( !wksp_gaddr ) ) { - *max = 0UL; - return NULL; - } + if( FD_LIKELY( parent_sizeclasstag ); + if( FD_UNLIKELY( !superblock_gaddr ) ) return NULL; - TODO: consider using at_least semantics to adapt the actual - size of the superblock to the location it is stored - (currently should be irrelevant as the sizeclasses are - designed to tightly nest). */ + superblock = (fd_alloc_superblock_t *)fd_wksp_laddr_fast( wksp, superblock_gaddr ); + hdr = FD_ALLOC_HDR_ROOT_SUPERBLOCK; - superblock = fd_alloc_malloc( join, FD_ALLOC_SUPERBLOCK_ALIGN, superblock_footprint ); - if( FD_UNLIKELY( !superblock ) ) { - *max = 0UL; - return NULL; - } - superblock_gaddr = fd_wksp_gaddr_fast( wksp, superblock ); +# if FD_HAS_DEEPASAN + /* At this point, the entire root superblock is unpoisoned. + Poison the superblock block (keeping the header unpoisoned). + See note above regarding alignments. */ + fd_asan_poison( superblock+1, FD_ALLOC_ROOT_SUPERBLOCK_FOOTPRINT - sizeof(fd_alloc_superblock_t) ); +# endif } - FD_COMPILER_MFENCE(); - FD_VOLATILE( superblock->free_blocks ) = fd_ulong_mask_lsb( (int)(uint)fd_alloc_sizeclass_cfg[ sizeclass ].block_cnt ); - FD_VOLATILE( superblock->next_gaddr ) = 0UL; - FD_COMPILER_MFENCE(); + ulong block_cnt = (ulong)fd_alloc_sizeclass_cfg[ sizeclass ].block_cnt; + + superblock->hdr = hdr; + superblock->sizeclass = (ushort)sizeclass; + superblock->block_cnt = (uchar)block_cnt; + superblock->cgroup_mask = (uchar)cgroup_mask; + superblock->free_blocks = fd_alloc_block_set_all( block_cnt ); + superblock->next_gaddr = 0UL; } } @@ -781,20 +662,21 @@ fd_alloc_malloc_at_least_impl( fd_alloc_t * join, fd_alloc_superblock_t * superblock = (fd_alloc_superblock_t *)fd_wksp_laddr_fast( wksp, superblock_gaddr ); - fd_alloc_block_set_t free_blocks; + fd_alloc_block_set_t * _free_blocks = &superblock->free_blocks; + FD_COMPILER_MFENCE(); - free_blocks = FD_VOLATILE_CONST( superblock->free_blocks ); + fd_alloc_block_set_t free_blocks_before = *_free_blocks; FD_COMPILER_MFENCE(); - ulong block_idx = fd_alloc_block_set_first( free_blocks ); - fd_alloc_block_set_t block = fd_alloc_block_set_ele( block_idx ); + ulong block_idx = (ulong)fd_alloc_block_set_first( free_blocks_before ); - free_blocks = fd_alloc_block_set_sub( &superblock->free_blocks, block ); + fd_alloc_block_set_t free_blocks_after = fd_alloc_block_set_sub_then_fetch( _free_blocks, fd_alloc_block_set_ele( block_idx ) ); - /* At this point, free_blocks gives the set of free blocks in the - superblock immediately before the allocation occurred. */ + /* At this point, we've allocated block block_idx from the superblock + and free_blocks_after gives the set of free blocks in the + superblock immediately after the allocation occurred. */ - if( FD_LIKELY( free_blocks!=block ) ) { + if( FD_LIKELY( free_blocks_after ) ) { /* At this point, we know the superblock has at least one allocated block in it (the one we just allocated) and one free @@ -803,13 +685,13 @@ fd_alloc_malloc_at_least_impl( fd_alloc_t * join, the block we just allocated until we return to tell them about it and nobody can allocate any remaining free blocks until we get this superblock back into circulation. To get this superblock - back into circulation, we make it the active superblock for this - sizeclass,cgroup pair. */ + back into circulation, we make it the active superblock for + (sizeclass,cgroup). */ ulong displaced_superblock_gaddr = fd_alloc_private_active_slot_replace( active_slot, superblock_gaddr ); /* And if this displaced a previously active superblock (e.g. - another thread made an different superblock the active one while + another thread made a different superblock the active one while we were doing the above), we add the displaced superblock to the sizeclass's inactive superblocks. Note that any such displaced superblock also has at least one free block in it (the active @@ -825,11 +707,9 @@ fd_alloc_malloc_at_least_impl( fd_alloc_t * join, } //else { /* The superblock had no more free blocks immediately after the - allocation occurred. We should not make this superblock the - preferred superblock or push it onto the sizeclass's nonfull - superblock stack; it would break the invariants that all - superblocks in circulation for a sizeclass have at least one - free block. + allocation occurred. We should not make put this superblock into + circulation as it would break the invariants that all superblocks + in circulation have at least one free block. And, as this superblock had no free blocks, we don't need to track the superblock anyway as malloc can't use the superblock @@ -853,105 +733,41 @@ fd_alloc_malloc_at_least_impl( fd_alloc_t * join, the active_hint), it doesn't matter. So long as the hint is a sane value at all points in time, free will work fine. */ - //} - - /* Carve the requested allocation out of the newly allocated block, - prepend the allocation header for use by free and return. TODO: - considering clearing alignment padding for better alloc parameter - recovery in diagnostics here? */ +//} - ulong block_footprint = (ulong)fd_alloc_sizeclass_cfg[ sizeclass ].block_footprint; - ulong block_laddr = (ulong)superblock + sizeof(fd_alloc_superblock_t) + block_idx*block_footprint; - ulong alloc_laddr = fd_ulong_align_up( block_laddr + fd_alloc_hdr_footprint, align ); - -# if FD_HAS_DEEPASAN - /* The block and the header must be unpoisoned to accomodate the block - footprint. The block footprint is determined by the sizeclass which - provides the minimum size that accomodates the footprint which is the - sz that's passed in, the padded fd_alloc_hdr, and the worst case amount - of alignment bytes. Because sz % FD_ASAN_ALIGN == 0, it is known that - we will have unused bytes at the end of the block since alloc_laddr % - FD_ASAN_ALIGN == 0. To ensure ASAN alignment, the range of bytes used - in the block can be safely rounded down. - */ - - void* laddr = (void*)(alloc_laddr - fd_alloc_hdr_footprint); - - ulong block_hi_addr = block_laddr + block_footprint; - ulong block_unpoison_sz = fd_ulong_align_dn( block_hi_addr - alloc_laddr, FD_ASAN_ALIGN ); - fd_asan_unpoison( laddr, block_unpoison_sz + fd_alloc_hdr_footprint ); -# endif - - *max = block_footprint - (alloc_laddr - block_laddr); - - return fd_alloc_hdr_store( (void *)alloc_laddr, superblock, block_idx, sizeclass ); -} - -void * -fd_alloc_malloc_at_least( fd_alloc_t * join, - ulong align, - ulong sz, - ulong * max ) { - void * res = fd_alloc_malloc_at_least_impl( join, align, sz, max ); - fd_msan_poison( res, *max ); - return res; + *_block_idx = block_idx; + return superblock; } -void -fd_alloc_free( fd_alloc_t * join, - void * laddr ) { +static void +fd_alloc_private_free( fd_alloc_t * join, + fd_alloc_superblock_t * superblock, + ulong block_idx ) { - /* Handle NULL alloc and/or NULL laddr */ + /* These reads and the ASAN poisoning must be before the free because + block could potentially be reused by other threads the moment it is + marked as free. */ - fd_alloc_t * alloc = fd_alloc_private_join_alloc( join ); - if( FD_UNLIKELY( (!alloc) | (!laddr) ) ) return; - - /* At this point, we have a non-NULL alloc and a pointer to the first - byte to an allocation done by it. Load the allocation header and - extract the sizeclass. If the sizeclass indicates this is a large - allocation, use fd_wksp_free to free this allocation (note that - fd_wksp_free works for any byte within the wksp allocation). */ - - fd_alloc_hdr_t hdr = fd_alloc_hdr_load( laddr ); - ulong sizeclass = fd_alloc_hdr_sizeclass( hdr ); + ulong sizeclass = (ulong)superblock->sizeclass; + ulong block_cnt = (ulong)superblock->block_cnt; + ulong cgroup_mask = (ulong)superblock->cgroup_mask; - if( FD_UNLIKELY( sizeclass==FD_ALLOC_SIZECLASS_LARGE ) ) { - fd_wksp_t * wksp = fd_alloc_private_wksp( alloc ); - fd_wksp_free( wksp, fd_wksp_gaddr_fast( wksp, laddr ) ); - return; - } - - /* At this point, we have a small allocation. Determine the - superblock and block index from the header and then free the block. */ +# if FD_HAS_DEEPASAN /* Poison the block we are about to free */ + ulong block_footprint = (ulong)fd_alloc_sizeclass_cfg[ sizeclass ].block_footprint; + ulong block_laddr = (ulong)superblock + sizeof(fd_alloc_superblock_t) + block_idx*block_footprint; + fd_asan_poison( (void *)block_laddr, block_footprint ); +# endif - fd_alloc_superblock_t * superblock = fd_alloc_hdr_superblock( hdr, laddr ); - ulong block_idx = fd_alloc_hdr_block_idx( hdr ); - fd_alloc_block_set_t block = fd_alloc_block_set_ele( block_idx ); - fd_alloc_block_set_t free_blocks = fd_alloc_block_set_add( &superblock->free_blocks, block ); + fd_alloc_block_set_t * _free_blocks = &superblock->free_blocks; + fd_alloc_block_set_t block = fd_alloc_block_set_ele( block_idx ); -# if FD_HAS_DEEPASAN - /* The portion of the block which is used for the header and the allocation - should get poisoned. The alloc's laddr is already at least 8 byte aligned. - The 8 bytes prior to the start of the laddr are used by the fd_alloc_hdr_t. - These should get poisoned as the block is freed again. The region used by - the allocation should also get poisoned: [laddr,block_laddr+block_footprint]. - However, we know that the size of the initial allocation was also 8 byte - aligned so we align down the size of the range to poison safely. */ - ulong block_footprint = (ulong)fd_alloc_sizeclass_cfg[ sizeclass ].block_footprint; - ulong block_laddr = (ulong)superblock + sizeof(fd_alloc_superblock_t) + block_idx*block_footprint; - ulong block_hi_addr = fd_ulong_align_dn( block_laddr + block_footprint, FD_ASAN_ALIGN ); - ulong fd_alloc_hdr_footprint = fd_ulong_align_up( sizeof(fd_alloc_hdr_t), FD_ASAN_ALIGN ); - ulong fd_alloc_hdr_laddr = (ulong)laddr - fd_alloc_hdr_footprint; - ulong sz = block_hi_addr - (ulong)laddr + fd_alloc_hdr_footprint; - fd_asan_poison( (void*)fd_alloc_hdr_laddr, sz ); -# endif + fd_alloc_block_set_t free_blocks_after = fd_alloc_block_set_add_then_fetch( _free_blocks, block ); - /* At this point, free_blocks is the set of free blocks just before - the free. */ + /* At this point, superblock is no longer safe to read and + free_blocks_after is the set of free blocks just after the free. */ - ulong free_cnt = fd_alloc_block_set_cnt( free_blocks ); - if( FD_UNLIKELY( !free_cnt ) ) { + if( FD_UNLIKELY( free_blocks_after==block ) ) { /* The superblock containing this block had no free blocks immediately before we freed the allocation. Thus, at this point, @@ -990,28 +806,31 @@ fd_alloc_free( fd_alloc_t * join, malloc-ing thread albeit with a brief hop through the inactive stack though). - The second option is about as simple and optimizes the - single/threaded and paired use cases as this thread is also the - thread likely the same thread that malloc'd this. Pipelined is - marginally worse as the superblock will have to take two hops - before it gets reused again (from the free-ing thread active - superblock to the inactive stack to the malloc-ing active - superblock). + The second option is about as simple and optimizes the single + threaded and paired use cases as this thread is also likely the + same thread that malloc'd this. Pipelined is marginally worse as + the superblock will have to take two hops before it gets reused + again (from the free-ing thread active superblock to the inactive + stack to the malloc-ing active superblock). The third and fourth options can simultaneously get all options optimized but they require extra plumbing (either under the hood - as per the note in malloc above from to the caller to get the + as per the note in malloc above or from the caller to get the extra context). Currently we do the second option for simplicity and optimal - behaviors in the single threaded and paired use cases. */ + behaviors in the single threaded and paired use cases. (The + fourth option is possible via the user changing the join's + cgroup_hint to match the thread of the original allocator.) */ - fd_wksp_t * wksp = fd_alloc_private_wksp( alloc ); + fd_alloc_t * alloc = fd_alloc_private_join_alloc( join ); + fd_wksp_t * wksp = fd_alloc_private_wksp( alloc ); - ulong cgroup = fd_alloc_preferred_sizeclass_cgroup( sizeclass, fd_alloc_join_cgroup_hint( join ) ); - ulong * active_slot = alloc->active_slot + sizeclass + FD_ALLOC_SIZECLASS_CNT*cgroup; + ulong cgroup = fd_alloc_join_cgroup_hint( join ) & cgroup_mask; - ulong displaced_superblock_gaddr = fd_alloc_private_active_slot_replace( active_slot, fd_wksp_gaddr_fast( wksp, superblock ) ); + ulong * _active_slot = fd_alloc_private_active_slot( alloc, sizeclass, cgroup ); + + ulong displaced_superblock_gaddr = fd_alloc_private_active_slot_replace( _active_slot, fd_wksp_gaddr_fast( wksp, superblock ) ); /* If this displaced an already active superblock, we need to push the displaced superblock onto the inactive stack (note that the @@ -1020,90 +839,240 @@ fd_alloc_free( fd_alloc_t * join, if( FD_UNLIKELY( displaced_superblock_gaddr ) ) fd_alloc_private_inactive_stack_push( alloc->inactive_stack + sizeclass, wksp, displaced_superblock_gaddr ); + return; + } - /* This point, we know the superblock had some free blocks before our - free and thus is currently in circulation. */ - - free_cnt++; /* Number of free blocks immediately after above free */ - - ulong block_cnt = (ulong)fd_alloc_sizeclass_cfg[ sizeclass ].block_cnt; - if( FD_UNLIKELY( free_cnt==block_cnt ) ) { - - /* None of the blocks were in use after the above free. We might - consider freeing it to reclaim space for other sizeclasses or - large allocations. But we don't mind having a few totally empty - superblocks in circulation for a sizeclass as this prevents - things like: - - addr = malloc(sz); - free(addr); - addr = malloc(sz); - free(addr) - ... - addr = malloc(sz); - free(addr) - - from repeatedly needing to invoke malloc recursively to recreate - superblock hierarchies that were prematurely freed. - - Regardless, since this superblock is in circulation, we can't be - sure it is safe to delete because something might be malloc-ing - from it concurrently. Thus, we are going to keep this superblock - in circulation as is. - - But, since we know we have at least 1 completely empty superblock - in circulation now, to prevent the unbounded accumulation of - completely empty superblocks, we will try to get an inactive - superblock and, if that is empty, delete that. - - This is pretty tricky as it is possible other threads are - concurrently trying to pop the inactive stack to do a malloc. If - we actually unmapped the memory here, such a thread could seg - fault if it stalls after it reads the top of the stack but before - it queries the top for the next_gaddr (and we'd have to use - another strategy). But that is not an issue here as the - underlying wksp memory is still mapped post-deletion regardless. - - Likewise, though the post deletion top->next_gaddr read will get - a stale value in this scenario, it highly likely will not be - injected into the inactive_stack because the CAS will detect that - inactive_stack top has changed and fail. - - And, lastly, we version inactive_stack top such that, even if - somehow we had a thread stall in pop after reading - top->next_gaddr / other threads do other operations that - ultimately keep top the same change the value of top->next_gaddr - / stalled thread resumes, the version number on the stalled - thread will be wrong cause the CAS to fail. (There is a - theoretical risk of version number reuse but the version number - is wide enough to make that risk zero on any practical - timescale.) */ - - fd_wksp_t * wksp = fd_alloc_private_wksp( alloc ); - ulong deletion_candidate_gaddr = fd_alloc_private_inactive_stack_pop( alloc->inactive_stack + sizeclass, wksp ); - - if( FD_UNLIKELY( !deletion_candidate_gaddr ) ) return; /* No deletion_candidate, unclear branch prob */ - - fd_alloc_superblock_t * deletion_candidate = (fd_alloc_superblock_t *)fd_wksp_laddr_fast( wksp, deletion_candidate_gaddr ); - - ulong deletion_candidate_free_blocks; - FD_COMPILER_MFENCE(); - deletion_candidate_free_blocks = FD_VOLATILE_CONST( deletion_candidate->free_blocks ); - FD_COMPILER_MFENCE(); + ulong all_blocks = fd_alloc_block_set_all( block_cnt ); + + if( FD_LIKELY( free_blocks_after!=all_blocks ) ) return; + + /* None of the blocks were in use after the above free. We might + consider freeing it to reclaim space for other sizeclasses or + large allocations. But we don't mind having a few totally empty + superblocks in circulation for a sizeclass as this prevents + things like: + + addr = malloc(sz); + free(addr); + addr = malloc(sz); + free(addr) + ... + addr = malloc(sz); + free(addr) + + from repeatedly needing to invoke malloc recursively to recreate + superblock hierarchies that were prematurely freed. + + Regardless, since this superblock is in circulation, we can't be + sure it is safe to delete because something might be malloc-ing + from it concurrently. Thus, we are going to keep this superblock + in circulation as is. + + But, since we know we have at least 1 completely empty superblock + in circulation now, to prevent the unbounded accumulation of + completely empty superblocks, we will try to get an inactive + superblock and, if that is empty, delete that. + + This is pretty tricky as it is possible other threads are + concurrently trying to pop the inactive stack to do a malloc. If + we actually unmapped the memory here, such a thread could seg + fault if it stalls after it reads the top of the stack but before + it queries the top for the next_gaddr (and we'd have to use + another strategy). But that is not an issue here as the + underlying wksp memory is still mapped post-deletion regardless. + + Likewise, though the post deletion top->next_gaddr read will get a + stale value in this scenario, it will highly likely not be injected + into the inactive_stack because the CAS will detect that + inactive_stack top has changed and fail. + + And, lastly, we version the inactive_stack top such that, even if + somehow we had a thread stall in pop after reading top->next_gaddr + / other threads do other operations that ultimately keep top the + same change the value of top->next_gaddr / stalled thread resumes, + the version number on the stalled thread will be wrong cause the + CAS to fail. (There is a theoretical risk of version number reuse + but the version number is wide enough to make that risk zero on any + practical timescale.) */ + + fd_alloc_t * alloc = fd_alloc_private_join_alloc( join ); + + fd_wksp_t * wksp = fd_alloc_private_wksp( alloc ); - if( FD_UNLIKELY( fd_alloc_block_set_cnt( deletion_candidate_free_blocks )==block_cnt ) ) /* Candidate empty -> delete it */ - fd_alloc_free( join, deletion_candidate ); - else /* Candidate not empty -> return it to circulation */ - fd_alloc_private_inactive_stack_push( alloc->inactive_stack + sizeclass, wksp, deletion_candidate_gaddr ); + fd_alloc_vgaddr_t * _inactive_stack = alloc->inactive_stack + sizeclass; + + ulong deletion_candidate_gaddr = fd_alloc_private_inactive_stack_pop( _inactive_stack, wksp ); + if( FD_LIKELY( !deletion_candidate_gaddr ) ) return; /* no deletion candidate, unclear branch prob */ + + fd_alloc_superblock_t * deletion_candidate = (fd_alloc_superblock_t *)fd_wksp_laddr_fast( wksp, deletion_candidate_gaddr ); + + if( FD_LIKELY( deletion_candidate->free_blocks!=all_blocks ) ) { /* deletion candidate not empty -> return to circulation */ + fd_alloc_private_inactive_stack_push( _inactive_stack, wksp, deletion_candidate_gaddr ); + return; + } + fd_alloc_hdr_t hdr = deletion_candidate->hdr; + if( FD_LIKELY( hdr!=FD_ALLOC_HDR_ROOT_SUPERBLOCK ) ) { /* empty deletion candidate in a parent superblock, free from parent */ + fd_alloc_private_free( join, (fd_alloc_superblock_t *)((ulong)deletion_candidate - fd_alloc_hdr_off( hdr )), + fd_alloc_hdr_idx( hdr ) ); return; } + +# if FD_HAS_DEEPASAN + /* At this point, just the header of the root superblock to delete + is unpoisoned. Since fd_wksp_free will poison the entire root + superblock anyway, we don't need to do anything here. */ +# endif + + fd_wksp_free( wksp, deletion_candidate_gaddr ); /* empty deletion candidate wksp allocated, free from wksp */ +} + +void * +fd_alloc_malloc_at_least( fd_alloc_t * join, + ulong align, + ulong sz, + ulong * _max ) { + + /* Handle default align, NULL alloc, 0 size, non-power-of-two align, + unreasonably large sz and NULL _max. footprint has room for a + fd_alloc_hdr_t, sz bytes and enough padding to allow for the + alignment of superblock blocks / wksp allocations is at least + alignof(fd_alloc_hdr_t). */ + + if( FD_UNLIKELY( !_max ) ) return NULL; + + fd_alloc_t * alloc = fd_alloc_private_join_alloc( join ); + + align = fd_ulong_if( !align, FD_ALLOC_MALLOC_ALIGN_DEFAULT, align ); + + ulong footprint = sz + fd_ulong_max( align, sizeof(fd_alloc_hdr_t) ); + + if( FD_UNLIKELY( (!alloc) | (!fd_ulong_is_pow2( align )) | (!sz) | (footprint<=sz) ) ) { + *_max = 0UL; + return NULL; + } + + fd_wksp_t * wksp = fd_alloc_private_wksp( alloc ); + + /* At this point, alloc is non-NULL and backed by wksp, align is a + power-of-2, footprint is a reasonable non-zero value. If this is a + large user allocation, allocate it directly from the underlying + workspace. */ + + if( FD_UNLIKELY( footprint > FD_ALLOC_FOOTPRINT_SMALL_THRESH ) ) { + ulong part_gaddr_lo; + ulong part_gaddr_hi; + if( FD_UNLIKELY( !fd_wksp_alloc_at_least( wksp, alignof(fd_alloc_hdr_t), footprint, alloc->tag, + &part_gaddr_lo, &part_gaddr_hi ) ) ) { + *_max = 0UL; + return NULL; + } + + /* Carve the requested allocation out of the newly allocated + partition, prepending the allocation header for use by free. If + we are running under the address sanitizer, note that + fd_wksp_alloc_at_least already unpoisoned this partition. If we + are running under the memory sanitizer, we mark the returned + region as uninitialized. */ + + ulong part_laddr = (ulong)fd_wksp_laddr_fast( wksp, part_gaddr_lo ); + ulong part_footprint = part_gaddr_hi - part_gaddr_lo; + + ulong alloc_laddr = fd_ulong_align_up( part_laddr + sizeof(fd_alloc_hdr_t), align ); + ulong asz = alloc_laddr - part_laddr; + +# if FD_ALLOC_STYLE==1 /* clear all align padding */ + if( asz > sizeof(fd_alloc_hdr_t) ) memset( (void *)part_laddr, 0, asz - sizeof(fd_alloc_hdr_t) ); +# else /* partially clear align padding to improve diagnostics */ + *(uint *)part_laddr = 0U; +# endif + + *_max = part_footprint - asz; + return fd_msan_poison( fd_alloc_hdr_store( (void *)alloc_laddr, FD_ALLOC_HDR_USER_LARGE ), *_max ); + } + + /* At this point, this is a small user allocation. Determine the + preferred sizeclass and cgroup_hint and then allocate a suitable + block. */ + + ulong sizeclass = fd_alloc_preferred_sizeclass( footprint ); + ulong cgroup_hint = fd_alloc_join_cgroup_hint( join ); + + ulong block_idx; + fd_alloc_superblock_t * superblock = fd_alloc_private_alloc( alloc, wksp, sizeclass, cgroup_hint, &block_idx ); + if( FD_UNLIKELY( !superblock ) ) { + *_max = 0UL; + return NULL; + } + + /* Carve the requested allocation out of the newly allocated block, + prepending the allocation header for use by free. If we are + running under the address sanitizer, we unpoison the block (see + note above about asan alignment). If we are running under the + memory sanitizer, we mark the returned region as uninitialized. */ + + ulong block_footprint = (ulong)fd_alloc_sizeclass_cfg[ sizeclass ].block_footprint; + ulong block_laddr = (ulong)superblock + sizeof(fd_alloc_superblock_t) + block_idx*block_footprint; + +# if FD_HAS_DEEPASAN + fd_asan_unpoison( (void *)block_laddr, block_footprint ); +# endif + + ulong alloc_laddr = fd_ulong_align_up( block_laddr + sizeof(fd_alloc_hdr_t), align ); + ulong asz = alloc_laddr - block_laddr; + +# if FD_ALLOC_STYLE==1 /* clear all align padding */ + if( asz > sizeof(fd_alloc_hdr_t) ) memset( (void *)block_laddr, 0, asz - sizeof(fd_alloc_hdr_t) ); +# else /* partially clear align padding to improve diagnostics */ + *(fd_alloc_hdr_t *)block_laddr = 0U; +# endif + + fd_alloc_hdr_t hdr = fd_alloc_hdr( FD_ALLOC_HDR_TYPE_USER_SMALL, block_idx, alloc_laddr - (ulong)superblock ); + + *_max = block_footprint - asz; + return fd_msan_poison( fd_alloc_hdr_store( (void *)alloc_laddr, hdr ), *_max ); +} + +void +fd_alloc_free( fd_alloc_t * join, + void * laddr ) { + + /* Handle NULL alloc and/or NULL laddr */ + + fd_alloc_t * alloc = fd_alloc_private_join_alloc( join ); + if( FD_UNLIKELY( (!alloc) | (!laddr) ) ) return; + + /* At this point, we have a valid join and a pointer to the first byte + of an allocation done by it. Load the allocation header. If the + header indicates this is a large allocation, free it from the + underlying wksp (note that fd_wksp_free_laddr works for any byte + within the wksp allocation ... thus we don't have to apply a header + offset and thus can reuse the header idx and off for data integrity + checks). Otherwise (i.e. the header indicates this allocation is a + block in a superblock), free it from the containing superblock. */ + + fd_alloc_hdr_t hdr = fd_alloc_hdr_load( laddr ); + + if( FD_UNLIKELY( hdr==FD_ALLOC_HDR_USER_LARGE ) ) { + fd_wksp_t * wksp = fd_alloc_private_wksp( alloc ); + +# if FD_HAS_DEEPASAN + /* Note that fd_wksp_free will poison the partition on our behalf so + we don't have anything to do here. */ +# endif + + fd_wksp_free( wksp, fd_wksp_gaddr_fast( wksp, laddr ) ); + return; + } + + fd_alloc_private_free( join, (fd_alloc_superblock_t *)((ulong)laddr - fd_alloc_hdr_off( hdr )), fd_alloc_hdr_idx( hdr ) ); } void fd_alloc_compact( fd_alloc_t * join ) { + fd_alloc_t * alloc = fd_alloc_private_join_alloc( join ); if( FD_UNLIKELY( !alloc ) ) { FD_LOG_WARNING(( "bad join" )); @@ -1115,225 +1084,306 @@ fd_alloc_compact( fd_alloc_t * join ) { /* We scan each sizeclass (in monotonically increasing order) for completely empty superblocks that thus can be freed. This has the pleasant side effect that, as smaller empty superblocks get freed, - it can potentially allow for any larger superblocks in which they - are nested to be subsequently freed. If no other operations are - running concurrently, any remaining gigantic superblocks should - contain at least one application allocation somewhere in them. */ + larger superblocks in which they are nested could become completely + empty. At the end of compaction, if no other operations are + running concurrently, any remaining superblocks should contain at + least one user small allocation somewhere in them. */ for( ulong sizeclass=0UL; sizeclassinactive_stack + sizeclass; + fd_alloc_block_set_t all_blocks = fd_alloc_block_set_all( (ulong)fd_alloc_sizeclass_cfg[ sizeclass ].block_cnt ); + ulong cgroup_cnt = (ulong)fd_alloc_sizeclass_cfg[ sizeclass ].cgroup_mask + 1UL; + fd_alloc_vgaddr_t * _inactive_stack = alloc->inactive_stack + sizeclass; /* For each active superblock in this sizeclass */ for( ulong cgroup_idx=0UL; cgroup_idxactive_slot + sizeclass + FD_ALLOC_SIZECLASS_CNT*cgroup_idx; - ulong superblock_gaddr = fd_alloc_private_active_slot_replace( active_slot, 0UL ); - if( !superblock_gaddr ) continue; /* application dependent branch prob */ + ulong * _active_slot = fd_alloc_private_active_slot( alloc, sizeclass, cgroup_idx ); + ulong superblock_gaddr = fd_alloc_private_active_slot_replace( _active_slot, 0UL ); + if( !superblock_gaddr ) continue; /* application dependent branch prob */ fd_alloc_superblock_t * superblock = (fd_alloc_superblock_t *)fd_wksp_laddr_fast( wksp, superblock_gaddr ); /* At this point, we have atomically acquired the cgroup_idx's - active superblock, there is no active superblock for - cgroup_idx, and it has at least one free block. Since the - superblock is out of circulation for malloc, nobody will malloc - anything from this superblock behind our back. And if this - superblock is completely empty, nobody will call free on any - blocks in this superblock behind our back. Thus we can free - this superblock safely. - - If there are some blocks still allocated, we put the superblock - back into circulation (we know from the above it still has at - least one free block, preserving the invariant). This might - displace a superblock that another thread made active behind - our back. We push any such superblock block onto the inactive - stack (it also will have at least one free block for the same - reasons). */ - - if( fd_alloc_block_set_cnt( superblock->free_blocks )==block_cnt ) fd_alloc_free( join, superblock ); - else { - ulong displaced_superblock_gaddr = fd_alloc_private_active_slot_replace( active_slot, superblock_gaddr ); + active superblock and it has at least one free block. If this + superblock is empty, we push it onto the inactive stack (for + freeing below). Otherwise, we put the superblock back into + circulation (we know from the above it still has at least one + free block, preserving the invariant). This might displace a + superblock that another thread made active behind our back. We + push any such superblock block onto the inactive stack (it also + will have at least one free block for the same reasons). */ + + if( superblock->free_blocks==all_blocks ) { /* application dependent branch prob */ + fd_alloc_private_inactive_stack_push( _inactive_stack, wksp, superblock_gaddr ); + } else { + ulong displaced_superblock_gaddr = fd_alloc_private_active_slot_replace( _active_slot, superblock_gaddr ); if( FD_UNLIKELY( displaced_superblock_gaddr ) ) - fd_alloc_private_inactive_stack_push( inactive_stack, wksp, displaced_superblock_gaddr ); + fd_alloc_private_inactive_stack_push( _inactive_stack, wksp, displaced_superblock_gaddr ); } } /* Drain the inactive stack for this sizeclass. All empty - superblocks found will be freed (safe for the same reasons as - above). All remaining superblocks will be pushed onto a local - stack (and every one will have at least one free block it while - there for the same reasons). After the inactive stack drain, we - drain the local stack back into the inactive stack to get all - these remaining superblocks back into circulation (also safe for - the same reasons) and with same relative ordering (not required). + superblocks found are freed. All other superblocks will be + pushed onto a local stack (every one will have at least one free + block). After the inactive stack drain, we drain the local stack + back into the inactive stack to get all these remaining + superblocks back into circulation (also safe for the same + reasons) and with same relative ordering (nice but not required). We technically don't need to use a lockfree push / pop for the local stack but no sense in implementing a second version for this mostly diagnostic / teardown oriented use case. */ - fd_alloc_vgaddr_t local_stack[1]; + fd_alloc_vgaddr_t _local_stack[1]; - local_stack[0] = fd_alloc_vgaddr( 0UL, 0UL ); + *_local_stack = fd_alloc_vgaddr( 0UL, 0UL ); for(;;) { - ulong superblock_gaddr = fd_alloc_private_inactive_stack_pop( inactive_stack, wksp ); + ulong superblock_gaddr = fd_alloc_private_inactive_stack_pop( _inactive_stack, wksp ); if( !superblock_gaddr ) break; /* application dependent branch prob */ fd_alloc_superblock_t * superblock = (fd_alloc_superblock_t *)fd_wksp_laddr_fast( wksp, superblock_gaddr ); - if( fd_alloc_block_set_cnt( superblock->free_blocks )==block_cnt ) fd_alloc_free( join, superblock ); - else fd_alloc_private_inactive_stack_push( local_stack, wksp, superblock_gaddr ); + if( superblock->free_blocks==all_blocks ) { /* if superblock is empty, free it, application dependent branch prob */ + + fd_alloc_hdr_t hdr = superblock->hdr; + if( FD_LIKELY( hdr!=FD_ALLOC_HDR_ROOT_SUPERBLOCK ) ) { /* empty superblock in a parent superblock, free from parent */ + fd_alloc_private_free( join, (fd_alloc_superblock_t *)((ulong)superblock - fd_alloc_hdr_off( hdr )), + fd_alloc_hdr_idx( hdr ) ); + } else { + fd_wksp_free( wksp, superblock_gaddr ); /* empty superblock wksp allocated, free from wksp */ + } + + } else { + + fd_alloc_private_inactive_stack_push( _local_stack, wksp, superblock_gaddr ); + + } } for(;;) { - ulong superblock_gaddr = fd_alloc_private_inactive_stack_pop( local_stack, wksp ); + ulong superblock_gaddr = fd_alloc_private_inactive_stack_pop( _local_stack, wksp ); if( !superblock_gaddr ) break; /* application dependent branch prob */ - - fd_alloc_private_inactive_stack_push( inactive_stack, wksp, superblock_gaddr ); + fd_alloc_private_inactive_stack_push( _inactive_stack, wksp, superblock_gaddr ); } } } -#include "../wksp/fd_wksp_private.h" - int fd_alloc_is_empty( fd_alloc_t * join ) { fd_alloc_t * alloc = fd_alloc_private_join_alloc( join ); if( FD_UNLIKELY( !alloc ) ) return 0; + /* Compact out any preallocated memory from the wksp */ + fd_alloc_compact( join ); - /* At this point (assuming no concurrent operations on this alloc), - all remaining large allocations contain at least one user - allocation. Thus if there are any large allocs remaining for this - alloc, we know the alloc is not empty. Since the wksp alloc that - holds the alloc itself might use the tag the used for large - allocations, we handle that as well. We do this in a brute force - way to avoid taking a lock (note that this calculation should - really only be done as non-performance critical diagnostic and then - on a quiescent system). */ + /* At this point, if there are no user allocations, there should be no + wksp partitions tagged with the allocator's tag (except, maybe, the + partition that holds the fd_alloc state, if the creator used the + same tag there). So we compute the number of partitions used by + the alloc's tag and deduct if necessary the partition used to hold + the fd_alloc's metadata. */ fd_wksp_t * wksp = fd_alloc_private_wksp( alloc ); - ulong alloc_lo = fd_wksp_gaddr_fast( wksp, alloc ); - ulong alloc_hi = alloc_lo + FD_ALLOC_FOOTPRINT; - ulong alloc_tag = alloc->tag; + fd_wksp_usage_t usage[1]; + fd_wksp_usage( wksp, &alloc->tag, 1UL, usage ); - ulong part_max = wksp->part_max; - fd_wksp_private_pinfo_t * pinfo = fd_wksp_private_pinfo( wksp ); + usage->used_cnt -= (ulong)(fd_wksp_tag( wksp, fd_wksp_gaddr_fast( wksp, alloc ) )==alloc->tag); - ulong i; - for( i=0UL; iused_cnt; } -/**********************************************************************/ +/* fd_alloc_fprintf pretty prints comprehensive details about the state + of the allocator to stream. Returns the number of characters printed + to stream (saturated to INT_MAX). + + IMPORTANT SAFETY TIP! If FD_ALLOC_STYLE==0 or if called while + concurrent operations are in progress, this can spuriously report + errors (due to alignment padding containing stale fd_alloc_hdr_t or + from concurrent operations changing allocations while they are being + analyzed by the below). + + IMPORTANT SAFETY TIP! fd_alloc_printf can generate ASAN errors if + run concurrently under ASAN because concurrent operations might + poison regions of the wksp as they are being analyzed by the below. + Hence the below functions are marked as FD_FN_NO_ASAN. Similar + considerations for FD_FN_NO_MSAN. */ #include +#include "../wksp/fd_wksp_private.h" + +FD_FN_NO_ASAN FD_FN_NO_MSAN static fd_alloc_hdr_t +fd_alloc_hdr_load_no_san( void const * laddr ) { + return *(fd_alloc_hdr_t const *)((ulong)laddr - sizeof(fd_alloc_hdr_t)); +} + +FD_FN_NO_ASAN FD_FN_NO_MSAN static ulong +fd_alloc_private_superblock_fprintf( FILE * stream, /* Stream to fprintf */ + fd_wksp_t const * wksp, + ulong superblock_gaddr, /* Superblock to fprintf */ + ulong parent_gaddr_lo, /* wksp region that contains this superblock */ + ulong parent_gaddr_hi, + int recurse, /* Should this recurse into nested superblocks */ + ulong indent_cnt, /* How much to indent */ + ulong * ctr ) { + + ulong cnt = 0UL; + +# define EMIT( f ) do { \ + for( ulong _rem=indent_cnt; _rem; _rem-- ) fputc( ' ', stream ); \ + cnt += (ulong)fd_int_max( (f), 0 ) + indent_cnt; \ + } while(0) + +# define SB_TEST( c ) \ + do { if( FD_UNLIKELY( !(c) ) ) { EMIT( fprintf( stream, "unexpected: %s failed\n", #c ) ); ctr[0]++; return cnt; } } while(0) + + /* validate the superblock header */ + + fd_alloc_superblock_t const * parent; + if( !parent_gaddr_lo ) { + parent = NULL; + parent_gaddr_lo = superblock_gaddr; + } else { + parent = (fd_alloc_superblock_t const *)fd_wksp_laddr_fast( wksp, parent_gaddr_lo ); + } + + SB_TEST( parent_gaddr_lo<=superblock_gaddr ); /* safe to read superblock header */ + SB_TEST( (superblock_gaddr+sizeof(fd_alloc_superblock_t))<=parent_gaddr_hi ); /* " */ + SB_TEST( fd_ulong_is_aligned( superblock_gaddr, FD_ALLOC_SUPERBLOCK_ALIGN ) ); /* " */ + + fd_alloc_superblock_t const * superblock = (fd_alloc_superblock_t const *)fd_wksp_laddr_fast( wksp, superblock_gaddr ); + + ulong sizeclass = (ulong)superblock->sizeclass; + ulong block_cnt = (ulong)superblock->block_cnt; + ulong cgroup_mask = (ulong)superblock->cgroup_mask; + fd_alloc_block_set_t free_blocks = superblock->free_blocks; + ulong next_gaddr = superblock->next_gaddr; + + SB_TEST( sizeclass < FD_ALLOC_SIZECLASS_CNT ); /* valid sizeclass */ + SB_TEST( block_cnt ==(ulong)fd_alloc_sizeclass_cfg[ sizeclass ].block_cnt ); /* block_cnt matches sizeclass */ + SB_TEST( cgroup_mask==(ulong)fd_alloc_sizeclass_cfg[ sizeclass ].cgroup_mask ); /* cgroup_mask matches sizeclass */ + SB_TEST( free_blocks==(free_blocks & fd_alloc_block_set_all( block_cnt )) ); /* no spurious bits set */ + SB_TEST( fd_ulong_is_aligned( next_gaddr, FD_ALLOC_SUPERBLOCK_ALIGN ) ); /* aligned gaddr or NULL gaddr */ + + ulong block_footprint = (ulong)fd_alloc_sizeclass_cfg[ sizeclass ].block_footprint; + ulong superblock_footprint = sizeof(fd_alloc_superblock_t) + block_cnt*block_footprint; + + SB_TEST( (superblock_gaddr + superblock_footprint)<=parent_gaddr_hi ); /* safe to read superblock body */ + + /* validate the superblock nesting */ + + ulong parent_sizeclass; + + if( !parent ) { + + parent_sizeclass = FD_ALLOC_SIZECLASS_CNT; + + SB_TEST( superblock->hdr==FD_ALLOC_HDR_ROOT_SUPERBLOCK ); /* root superblock */ + + } else { + + parent_sizeclass = (ulong)parent->sizeclass; + + ulong parent_block_footprint = (ulong)fd_alloc_sizeclass_cfg[ parent_sizeclass ].block_footprint; -#define TRAP(x) do { int _cnt = (x); if( _cnt<0 ) { return _cnt; } cnt += _cnt; } while(0) + fd_alloc_hdr_t hdr = superblock->hdr; + int type = fd_alloc_hdr_type( hdr ); + ulong idx = fd_alloc_hdr_idx ( hdr ); + ulong off = fd_alloc_hdr_off ( hdr ); -/* fd_alloc_superblock_fprintf pretty prints to the given stream - exhaustive details about the current state of the given superblock in - wksp at superblock_gaddr. The superblock's parameters are given by - sizeclass, block_cnt, block_footprint. Diagnostics will be accumulated - ctr. Returns behavior matches fprintf return behavior (i.e. the - number of characters output to stream or a negative error code). - This is meant to be called exclusively from fd_alloc_fprintf and does - no error trapping of its inputs. */ + SB_TEST( type==FD_ALLOC_HDR_TYPE_NEST_SUPERBLOCK ); /* nested superblock */ + SB_TEST( idx < (ulong)fd_alloc_sizeclass_cfg[ parent_sizeclass ].block_cnt ); /* valid index */ + SB_TEST( off == sizeof(fd_alloc_superblock_t) + idx*parent_block_footprint ); /* valid offset */ + SB_TEST( off == ((ulong)superblock - (ulong)parent) ); /* " */ -static int -fd_alloc_superblock_fprintf( fd_wksp_t * wksp, /* non-NULL */ - ulong superblock_gaddr, /* valid gaddr for wksp */ - ulong sizeclass, /* valid sizeclass */ - ulong block_cnt, /* matches sizeclass cfg */ - ulong block_footprint, /* matches sizeclass cfg */ - FILE * stream, /* non-NULL */ - ulong * ctr ) { /* non-NULL, room for 2 */ - int cnt = 0; + } + + SB_TEST( parent_sizeclass==(ulong)fd_alloc_sizeclass_cfg[ sizeclass ].parent_sizeclass ); /* valid parent sizeclass */ + + EMIT( fprintf( stream, "%s superblock at [%013lx,%013lx)\n", + parent ? "nested" : "root", superblock_gaddr, superblock_gaddr + superblock_footprint ) ); - /* Print the block header */ + indent_cnt += 2UL; - fd_alloc_superblock_t * superblock = fd_wksp_laddr_fast( wksp, superblock_gaddr ); + EMIT( fprintf( stream, "sizeclass %3lu (cgroup_cnt %2lu block_cnt %2lu block_footprint %lu)\n", + sizeclass, cgroup_mask+1UL, block_cnt, block_footprint ) ); - fd_alloc_block_set_t free_blocks = superblock->free_blocks; + ulong free_cnt = (ulong)fd_ulong_popcnt( free_blocks ); - ulong msb = fd_ulong_shift_right( free_blocks, (int)block_cnt ); /* Note: block_cnt==64 possible */ - if( FD_UNLIKELY( msb ) ) ctr[0]++; - TRAP( fprintf( stream, "free_blocks 0x%lx (%s)\n", free_blocks, msb==0UL ? "good" : "bad" ) ); + EMIT( fprintf( stream, "free_blocks %013lx next_gaddr %013lx (free_cnt %2lu used_cnt %2lu)\n", + free_blocks, next_gaddr, free_cnt, block_cnt - free_cnt ) ); - /* For each block */ + /* iterate over all used blocks in the superblock */ for( ulong block_idx=0UL; block_idxname, gaddr_lo, wksp->name, gaddr_hi-1UL ) ); + ulong block_gaddr_lo = superblock_gaddr + sizeof(fd_alloc_superblock_t) + block_idx*block_footprint; + ulong block_gaddr_hi = block_gaddr_lo + block_footprint; - } else { /* Used block */ + fd_alloc_hdr_t hdr = fd_alloc_hdr_load_no_san( fd_wksp_laddr_fast( wksp, block_gaddr_lo + sizeof(fd_alloc_hdr_t) ) ); - /* Search the partition for a plausible fd_alloc_hdr_t. This - process nearly identical to the one described for large - allocations below. */ + if( hdr==fd_alloc_hdr( FD_ALLOC_HDR_TYPE_NEST_SUPERBLOCK, block_idx, block_gaddr_lo - superblock_gaddr ) ) { - for( ulong align_est = 1UL << fd_ulong_find_msb( block_footprint - sizeof(fd_alloc_hdr_t) );;) { - ulong gaddr_est = fd_ulong_align_up( gaddr_lo + sizeof(fd_alloc_hdr_t), align_est ); - uchar * laddr_est = (uchar *)fd_wksp_laddr_fast( wksp, gaddr_est ); - fd_alloc_hdr_t hdr = FD_LOAD( fd_alloc_hdr_t, laddr_est - sizeof(fd_alloc_hdr_t) ); + EMIT( fprintf( stream, "block %2lu [%013lx,%013lx): nested superblock\n", block_idx, block_gaddr_lo, block_gaddr_hi ) ); - fd_msan_unpoison( &hdr, sizeof( hdr ) ); - if( fd_alloc_hdr_sizeclass ( hdr ) ==sizeclass && - fd_alloc_hdr_block_idx ( hdr ) ==block_idx && - fd_alloc_hdr_superblock( hdr, laddr_est )==superblock ) { - ulong sz_est = block_footprint - sizeof(fd_alloc_hdr_t) - align_est + 1UL; - TRAP( fprintf( stream, "\t\t\tblock %2lu: gaddr %s:%lu-%s:%lu, malloc_est %s:%lu, align_est %lu, sz_est %lu\n", - block_idx, wksp->name, gaddr_lo, wksp->name, gaddr_hi-1UL, wksp->name, gaddr_est, align_est, sz_est ) ); - ctr[1]++; + if( recurse ) cnt += fd_alloc_private_superblock_fprintf( stream, wksp, block_gaddr_lo, + superblock_gaddr, superblock_gaddr + superblock_footprint, + recurse, indent_cnt+2UL, ctr ); + + } else { + + ulong align = 1UL; + ulong align_stop = block_footprint - sizeof(fd_alloc_hdr_t); /* Note: block_footprint > sizeof(fd_alloc_hdr_t) */ + + for(;;) { + + if( FD_UNLIKELY( align>=align_stop ) ) { + EMIT( fprintf( stream, "block %2lu [%013lx,%013lx): alloc header not found\n", + block_idx, block_gaddr_lo, block_gaddr_hi ) ); + ctr[0]++; break; } - fd_msan_poison( &hdr, sizeof( hdr ) ); - align_est >>= 1; - if( FD_UNLIKELY( !align_est ) ) { - TRAP( fprintf( stream, "\t\t\tblock %2lu: gaddr %s:%lu-%s:%lu, malloc_est -, align est -, sz_est - (bad)\n", - block_idx, wksp->name, gaddr_lo, wksp->name, gaddr_hi-1UL ) ); - ctr[0]++; + ulong alloc_gaddr = fd_ulong_align_up( block_gaddr_lo + sizeof(fd_alloc_hdr_t), align ); + + fd_alloc_hdr_t hdr = fd_alloc_hdr_load_no_san( fd_wksp_laddr_fast( wksp, alloc_gaddr ) ); + + if( FD_LIKELY( hdr==fd_alloc_hdr( FD_ALLOC_HDR_TYPE_USER_SMALL, block_idx, alloc_gaddr - superblock_gaddr ) ) ) { + ulong alloc_max = block_gaddr_hi - alloc_gaddr; + EMIT( fprintf( stream, "block %2lu [%013lx,%013lx): small user allocation (gaddr %013lx max %lu)\n", + block_idx, block_gaddr_lo, block_gaddr_hi, alloc_gaddr, alloc_max )); + ctr[1]++; break; } + + align <<= 1; } + } } +# undef EMIT + return cnt; } -/* fd_alloc_fprintf pretty prints to the given stream exhaustive details - about the current state of the fd_alloc corresponding to the current - local join. As this function is typically for debugging, - end-of-program diagnostics, etc, this function assumes there are no - concurrent operations on the fd_alloc while running. Note also it - might not be able to find all small allocations and determine precise - details about allocations in general. It will however be able to - find all large allocations assuming the user tagged the structure - properly (and that includes finding all the gigantic superblocks in - which all individual small allocations are contained). Return - behavior matches fprintf return behavior (i.e. the number of - characters printed to stream or a negative error code). */ - -int +FD_FN_NO_ASAN FD_FN_NO_MSAN int fd_alloc_fprintf( fd_alloc_t * join, FILE * stream ) { if( FD_UNLIKELY( !stream ) ) return 0; /* NULL stream, can't print anything */ - int cnt = 0; + ulong cnt = 0UL; + +# define EMIT(x) do { cnt += (ulong)fd_int_max( (x), 0 ); } while(0) ulong ctr[6]; ctr[0] = 0UL; /* errors detected */ @@ -1348,21 +1398,19 @@ fd_alloc_fprintf( fd_alloc_t * join, if( FD_UNLIKELY( !alloc ) ) { /* NULL join passed */ - TRAP( fprintf( stream, "alloc: gaddr -, join_cgroup_hint %lu, magic 0x0 (bad)\n", cgroup_hint ) ); + EMIT( fprintf( stream, "alloc: gaddr -, join_cgroup_hint %lu, magic 0x0 (bad)\n", cgroup_hint ) ); ctr[0]++; } else { /* Normal join */ - /* Count the space used by alloc metadata. */ - - ctr[2] += 1UL; - ctr[3] += FD_ALLOC_FOOTPRINT; - fd_wksp_t * wksp = fd_alloc_private_wksp( alloc ); + ulong wksp_gaddr_lo = wksp->gaddr_lo; + ulong wksp_gaddr_hi = wksp->gaddr_hi; + /* Print the summary header */ - TRAP( fprintf( stream, "alloc: gaddr %s:%lu, join_cgroup_hint %lu, magic 0x%lx (%s)\n", + EMIT( fprintf( stream, "alloc: wksp %s gaddr %013lx, join_cgroup_hint %lu, magic 0x%lx (%s)\n", wksp->name, fd_wksp_gaddr_fast( wksp, alloc ), cgroup_hint, alloc->magic, alloc->magic==FD_ALLOC_MAGIC ? "good" : "bad" ) ); if( FD_UNLIKELY( alloc->magic!=FD_ALLOC_MAGIC ) ) ctr[0]++; @@ -1372,23 +1420,23 @@ fd_alloc_fprintf( fd_alloc_t * join, ulong block_footprint = 0UL; for( ulong sizeclass=0UL; sizeclassinactive_stack[ sizeclass ]; - ulong inactive_stack_ver = (ulong)fd_alloc_vgaddr_ver( inactive_stack ); - ulong inactive_stack_gaddr = (ulong)fd_alloc_vgaddr_off( inactive_stack ); + ulong inactive_stack_ver = fd_alloc_vgaddr_ver( inactive_stack ); + ulong inactive_stack_gaddr = fd_alloc_vgaddr_off( inactive_stack ) << FD_ALLOC_SUPERBLOCK_LG_ALIGN; /* Omit sizeclasses that have no superblocks in circulation */ int do_print = !!inactive_stack_gaddr; if( !do_print ) { for( ulong cgroup_idx=0UL; cgroup_idxactive_slot[ sizeclass + FD_ALLOC_SIZECLASS_CNT*cgroup_idx ] ) { + if( *fd_alloc_private_active_slot( alloc, sizeclass, cgroup_idx ) ) { do_print = 1; break; } @@ -1398,141 +1446,162 @@ fd_alloc_fprintf( fd_alloc_t * join, /* Print size class header */ - TRAP( fprintf( stream, - "\tsizeclass %lu: superblock_footprint %lu, block_footprint %lu-%lu, block_cnt %lu, cgroup_cnt %lu\n", - sizeclass, superblock_footprint, block_footprint_prev+1UL, block_footprint, block_cnt, cgroup_cnt ) ); + EMIT( fprintf( stream, + " sizeclass %3lu: parent_sizeclass %3lu, cgroup_cnt %2lu, block_cnt %2lu, footprint (%lu,%lu]\n", + sizeclass, parent_sizeclass, cgroup_cnt, block_cnt, block_footprint_prev, block_footprint ) ); /* Print inactive stack top */ - TRAP( fprintf( stream, "\t\tinactive_stack: gaddr %s:%lu, version %lu\n", - wksp->name, inactive_stack_gaddr, inactive_stack_ver ) ); + EMIT( fprintf( stream, " inactive_stack: gaddr %013lx, version %lu\n", inactive_stack_gaddr, inactive_stack_ver ) ); - /* Print active superblock details */ + /* Print active superblocks */ ulong superblock_gaddr; for( ulong cgroup_idx=0UL; cgroup_idxactive_slot[ sizeclass + FD_ALLOC_SIZECLASS_CNT*cgroup_idx ]; - if( !superblock_gaddr ) { - //TRAP( fprintf( stream, "\t\tcgroup 2lu active superblock -, next -\n", cgroup_idx ) ); - continue; - } - ulong next_gaddr = ((fd_alloc_superblock_t *)fd_wksp_laddr_fast( wksp, superblock_gaddr))->next_gaddr; - TRAP( fprintf( stream, "\t\tsuperblock: cgroup_idx %lu, gaddr %s:%lu, next %s:%lu (ignored), ", - cgroup_idx, wksp->name, superblock_gaddr, wksp->name, next_gaddr ) ); - TRAP( fd_alloc_superblock_fprintf( wksp, superblock_gaddr, sizeclass, block_cnt, block_footprint, stream, ctr ) ); + superblock_gaddr = *fd_alloc_private_active_slot( alloc, sizeclass, cgroup_idx ); + if( !superblock_gaddr ) continue; + ulong next_gaddr = ((fd_alloc_superblock_t const *)fd_wksp_laddr_fast( wksp, superblock_gaddr))->next_gaddr; + EMIT( fprintf( stream, " superblock %013lx: next %013lx (ignored), active (cgroup_idx %2lu)\n", + superblock_gaddr, next_gaddr, cgroup_idx ) ); } - /* Print inactive superblock details */ + /* Print leading inactive superblocks (best effort) */ superblock_gaddr = inactive_stack_gaddr; - while( superblock_gaddr ) { - ulong next_gaddr = ((fd_alloc_superblock_t *)fd_wksp_laddr_fast( wksp, superblock_gaddr))->next_gaddr; - TRAP( fprintf( stream, "\t\tsuperblock: cgroup_idx -, gaddr %s:%lu, next %s:%lu, ", - wksp->name, superblock_gaddr, wksp->name, next_gaddr ) ); - TRAP( fd_alloc_superblock_fprintf( wksp, superblock_gaddr, sizeclass, block_cnt, block_footprint, stream, ctr ) ); + for( ulong rem=1024UL; rem; rem-- ) { + if( !( (wksp_gaddr_lo<=superblock_gaddr) & (superblock_gaddrnext_gaddr; + EMIT( fprintf( stream, " superblock %013lx: next %013lx, inactive\n", superblock_gaddr, next_gaddr ) ); superblock_gaddr = next_gaddr; } } /* Scan the wksp partition table for partitions that match this - allocation tag. Like the is_empty diagnostic, we do this in a - brute force way that is not algo efficient to avoid taking a - lock. */ + allocation tag. We do this in a brute force way that is not algo + efficient to avoid taking a lock. */ - ulong wksp_lo = wksp->gaddr_lo; - ulong wksp_hi = wksp->gaddr_hi; - - ulong alloc_lo = fd_wksp_gaddr_fast( wksp, alloc ); - ulong alloc_hi = alloc_lo + FD_ALLOC_FOOTPRINT; - ulong alloc_tag = alloc->tag; + ulong alloc_gaddr_lo = fd_wksp_gaddr_fast( wksp, alloc ); + ulong alloc_gaddr_hi = alloc_gaddr_lo + FD_ALLOC_FOOTPRINT; + ulong alloc_tag = alloc->tag; ulong part_max = wksp->part_max; fd_wksp_private_pinfo_t * pinfo = fd_wksp_private_pinfo( wksp ); - ulong i; - for( i=0UL; i=align_stop ) ) { + EMIT( fprintf( stream, " partition [%013lx,%013lx): alloc header not found\n", part_gaddr_lo, part_gaddr_hi ) ); + ctr[0]++; + break; + } - ulong sz_est = part_footprint - sizeof(fd_alloc_hdr_t) - align_est + 1UL; - TRAP( fprintf( stream, "\tlarge: gaddr %s:%lu-%s:%lu, malloc_est %s:%lu, align_est %lu, sz_est %lu %s\n", - wksp->name, gaddr_lo, wksp->name, gaddr_hi-1UL, wksp->name, gaddr_est, align_est, sz_est, - is_superblock ? "(superblock)" : "(large)" ) ); - ctr[2]++; - ctr[3] += part_footprint; - ctr[4] += fd_ulong_if( is_superblock, 0UL, 1UL ); - ctr[5] += fd_ulong_if( is_superblock, 0UL, part_footprint ); + ulong alloc_gaddr = fd_ulong_align_up( part_gaddr_lo + sizeof(fd_alloc_hdr_t), align ); - break; - } + fd_alloc_hdr_t hdr = fd_alloc_hdr_load_no_san( fd_wksp_laddr_fast( wksp, alloc_gaddr ) ); - /* Nope ... try the next. If no more potential locations, the - partition is corrupt. */ + if( FD_LIKELY( hdr==FD_ALLOC_HDR_USER_LARGE ) ) { + ulong alloc_max = part_gaddr_hi - alloc_gaddr; + EMIT( fprintf( stream, " partition [%013lx,%013lx): large user allocation (gaddr %013lx max %lu)\n", + part_gaddr_lo, part_gaddr_hi, alloc_gaddr, alloc_max )); + ctr[2]++; + ctr[3] += part_footprint; + ctr[4] += 1UL; + ctr[5] += part_footprint; + break; + } - align_est >>= 1; - if( FD_UNLIKELY( !align_est ) ) { - TRAP( fprintf( stream, "\tlarge: gaddr %s:%lu-%s:%lu, malloc_est -, align_est -, sz_est - (bad)\n", - wksp->name, gaddr_lo, wksp->name, gaddr_hi-1UL ) ); - ctr[0]++; - break; + align <<= 1; } + } } } /* Print summary statistics */ - TRAP( fprintf( stream, - "\terrors detected %21lu\n" - "\tsmall alloc found %21lu\n" - "\twksp part cnt %21lu\n" - "\twksp used %21lu\n" - "\tlarge alloc cnt %21lu\n" - "\tlarge alloc wksp used %21lu\n", - ctr[0], ctr[1], ctr[2], ctr[3], ctr[4], ctr[5] ) ); - - return cnt; + EMIT( fprintf( stream, + " summary\n" + " errors detected %21lu%s\n" + " small alloc cnt %21lu\n" + " wksp part used %21lu\n" + " wksp byte used %21lu\n" + " large alloc part used %21lu\n" + " large alloc byte used %21lu\n", + ctr[0], ctr[0] ? " (highly likely spurious if running concurrent and/or with dirty align padding)" : "", + ctr[1], ctr[2], ctr[3], ctr[4], ctr[5] ) ); + + return (int)fd_ulong_min( cnt, (ulong)INT_MAX ); } - -#undef TRAP diff --git a/src/util/alloc/fd_alloc.h b/src/util/alloc/fd_alloc.h index 6b5669d59b8..2ee6922bf5c 100644 --- a/src/util/alloc/fd_alloc.h +++ b/src/util/alloc/fd_alloc.h @@ -124,12 +124,10 @@ /* FD_ALLOC_{ALIGN,FOOTPRINT} give the required alignment and footprint needed for a wksp allocation to be suitable as a fd_alloc. ALIGN is an integer pointer of 2 and FOOTPRINT is an integer multiple of - ALIGN. These are provided to facilitate compile time declarations. - 4096 for ALIGN has been is picked to be normal-page like and match - the minimum alignment of a fd_wksp_alloc. */ + ALIGN. These are provided to facilitate compile time declarations. */ -#define FD_ALLOC_ALIGN (4096UL) -#define FD_ALLOC_FOOTPRINT (20480UL) +#define FD_ALLOC_ALIGN (128UL) +#define FD_ALLOC_FOOTPRINT sizeof(fd_alloc_t) /* FD_ALLOC_MALLOC_ALIGN_DEFAULT gives the alignment that will be used when the user does not specify an alignment. This will be an integer @@ -144,10 +142,102 @@ #define FD_ALLOC_JOIN_CGROUP_HINT_MAX (15UL) -/* A "fd_alloc_t *" is an opaque handle of an fd_alloc. */ +/* A fd_alloc_t is a quasi-opaque handle of a fd_alloc (sizeof and + alignof work but the internals should not be used directly). */ -struct fd_alloc; -typedef struct fd_alloc fd_alloc_t; +struct fd_alloc_private; +typedef struct fd_alloc_private fd_alloc_t; + +/* fd_alloc private API ***********************************************/ + +/* FD_ALLOC_MAGIC is an ideally unique number that specifies the precise + memory layout of a fd_alloc */ + +#define FD_ALLOC_MAGIC (0xF17EDA2C37A110C2UL) /* FIRE DANCER ALLOC version 2 */ + +/* FD_ALLOC_SIZECLASS_MAX is the maximum number of sizeclasses supported + by fd_alloc. */ + +#define FD_ALLOC_SIZECLASS_MAX (240UL) + +struct __attribute__((aligned(FD_ALLOC_ALIGN))) fd_alloc_private { + + ulong magic; /* ==FD_ALLOC_MAGIC */ + ulong wksp_off; /* Offset of the first byte of this structure from the start of the wksp */ + ulong tag; /* tag that will be used by this allocator. Positive. */ + + uchar _[ FD_ALLOC_ALIGN - 3UL*sizeof(ulong) ]; /* Padding to FD_ALLOC_ALIGN */ + + /* active_slot[ sizeclass + FD_ALLOC_SIZECLASS_MAX*cgroup ] is the + global address of the superblock in circulation that is preferred + for sizeclass allocations done by a caller in concurrency group + cgroup. 0 if there is no active superblock currently for + (sizeclass,cgroup). Note that this is stored compactly but + organized such that concurrent operations from different cgroups + are unlikely to create false sharing. */ + + ulong active_slot[ FD_ALLOC_SIZECLASS_MAX*(FD_ALLOC_JOIN_CGROUP_HINT_MAX+1UL) ]; + + /* inactive_stack[ sizeclass ] gives the top of stack of inactive + superblocks in circulation stack for sizeclass or 0 if the stack is + empty. This is versioned global address with a 17-bit version + number in the least significant bits and a 50-bit gaddr encoded in + 47-bits in the most significant bits (the 3 least significant bits + of a superblock gaddr are zero given FD_ALLOC_SUPERBLOCK_ALIGN is + at least 8). This means that fd_alloc can be backed by wksp up to + ~1 PiB in size. */ + + ulong inactive_stack[ FD_ALLOC_SIZECLASS_MAX ]; + + /* Padding to FD_ALLOC_ALIGN here */ + +}; + +FD_PROTOTYPES_BEGIN + +/* fd_alloc_private_join_alloc returns the local address of the alloc + for a join. */ + +FD_FN_CONST static inline fd_alloc_t * +fd_alloc_private_join_alloc( fd_alloc_t * join ) { + return (fd_alloc_t *)(((ulong)join) & ~FD_ALLOC_JOIN_CGROUP_HINT_MAX); +} + +/* fd_alloc_private_wksp returns the wksp backing alloc. Assumes alloc + is a non-NULL pointer in the caller's address space to the fd_alloc + (not a join handle). */ + +FD_FN_PURE static inline fd_wksp_t * +fd_alloc_private_wksp( fd_alloc_t * alloc ) { + return (fd_wksp_t *)(((ulong)alloc) - alloc->wksp_off); +} + +/* fd_alloc_private_delete allows fine grained control over how much + cleanup of the underlying wksp is done. + + - level<=0 indicates to do no wksp cleanup (the user can manually + cleanup left over allocations and so forth with APIs like + fd_wksp_tag_free). + + - level==1 indicates to do a quick cleanup (assuming the application + freed all allocations done by this allocator, all wksp usage + _except_ the shalloc itself will be freed). fd_alloc_delete is a + thin wrapper to this with level==1. + + - level>1 indicates to do a deep cleanup. This will free all wksp + locations that match fd_alloc's wksp tag. IMPORTANT SAFETY TIP! + If shalloc was allocated with the same tag, this also will also + free shalloc too! IMPORTANT SAFETY TIP! Tf any other wksp + allocations used this tag, this will also free all those + allocations too! */ + +void * +fd_alloc_private_delete( void * shalloc, + int level ); + +FD_PROTOTYPES_END + +/* End of private API *************************************************/ FD_PROTOTYPES_BEGIN @@ -260,8 +350,17 @@ fd_alloc_join_cgroup_hint_set( fd_alloc_t * join, fd_alloc_tag returns the tag that will be used for allocations from this workspace. */ -FD_FN_PURE fd_wksp_t * fd_alloc_wksp( fd_alloc_t * join ); // NULL indicates NULL join -FD_FN_PURE ulong fd_alloc_tag ( fd_alloc_t * join ); // Positive, 0 indicates NULL join +FD_FN_PURE static inline fd_wksp_t * // NULL indicates NULL join +fd_alloc_wksp( fd_alloc_t * join ) { + fd_alloc_t * alloc = fd_alloc_private_join_alloc( join ); + return FD_LIKELY( alloc ) ? fd_alloc_private_wksp( alloc ) : NULL; +} + +FD_FN_PURE static inline ulong // Positive, 0 indicates NULL join +fd_alloc_tag( fd_alloc_t * join ) { + fd_alloc_t * alloc = fd_alloc_private_join_alloc( join ); + return FD_LIKELY( alloc ) ? alloc->tag : 0UL; +} /* fd_alloc_malloc_at_least allocates at least sz bytes with alignment of at least align from the wksp backing the fd_alloc. join is a @@ -327,6 +426,9 @@ fd_alloc_malloc( fd_alloc_t * join, return fd_alloc_malloc_at_least( join, align, sz, max ); } +/* FIXME: consider a fd_alloc_avail API that returns the max bytes avail + at an allocation? */ + /* fd_alloc_free frees the outstanding allocation whose first byte is pointed to by laddr in the caller's local address space. join is a current local join to the fd_alloc. The caller promises laddr was diff --git a/src/util/alloc/fd_alloc_cfg.h b/src/util/alloc/fd_alloc_cfg.h index 452848b4524..9ba1f7341d5 100644 --- a/src/util/alloc/fd_alloc_cfg.h +++ b/src/util/alloc/fd_alloc_cfg.h @@ -1,238 +1,10 @@ -#ifndef HEADER_fd_src_util_alloc_fd_alloc_cfg_h -#define HEADER_fd_src_util_alloc_fd_alloc_cfg_h - -/* The below table was autogenerated. - - The method begins by choosing the parameters for the wksp allocation - request used to support small allocations (i.e. that align and sz - should be passed to fd_wksp_alloc to create a "huge" superblock). - Below is such that fd_alloc_malloc will request arbitrarily aligned - 512KiB regions. This was picked to match the maximum size supported - by the 19-bit fd_alloc_hdr_t offset (used to find in an address space - invariant way the superblock of an allocation). Unaligned was used - to be as general as possible (e.g. can swap in any other allocator - of last resort as needed). - - Noting that superblocks have an alignment of 16 bytes, the maximum - safe superblock footprint that can be carved out of this request is - H=512KiB-19B=524269B (where the 19B accounts for a 4B fd_alloc_hdr_t - and a 15B worst case alignment padding since fd_alloc_malloc - superblock allocation doesn't assume anything the returned - alignment). - - We note that a superblock can be divided into 1 to 64 blocks and that - dividing it into O(1) blocks defeats the point clustering lots of - similarly sized allocations (used to amortize various space and time - overheads). So we pick the minimum number of blocks in a superblock - as 8 (~sqrt(64) and around an order of magnitude reduction in - overheads). - - Critically, noting that ~ 512KiB/64 ~ 8KiB is pretty clumsy for small - allocations, we recursively nest a smaller sized superblock within - blocks of this superblock. - - Specifically, we pick a "large" superblock size that will nest as - tightly inside a block of a "huge" superblock when the huge - superblock is divided into the minimum 8 blocks. Noting that the - large superblock will have the same 19B overhead and the huge huge - superblock has a 16B header, we have L=floor((H-16B)/8)-19B=65512B. - - We recurse this all the way down to the smallest potentially useful - superblock size (deciding to use the same 8 nesting for each level), - yielding 5 superblock footprints (tiny 104B, small 1000B, medium - 8168B, large 65512B, huge 524269B). - - We then target 33 sizeclasses for each superblock footprint (33 is - from trial-and-error to get something that doesn't need more than 127 - sizeclasses after the below cleanups ... 127 so that the sizeclass - index fits and uses practically all of the 7-bits in the - fd_alloc_hdr_t sizeclass field). We chose block counts for these 33 - sizeclasses to be uniformly logarithmic spaced over [8,64) before - rounding nearest. (For the parameters here, this implies a few - percent overhead from the implicit rounding up of an unaligned - allocation.) - - block_footprints are directly computed from these superblock - footprints and the block counts are recomputed to squeeze some extra - blocks into the superblocks that various integer roundings might have - exposed. We discard any sizeclasses that are redundant and any - sizeclasses that are too small to be useful (blocks need to be at - least 5 as a single byte unaligned allocation will still have a 4 - byte fd_alloc_hdr_t associated with it). This yields the 126 size - classes below. - - On the assumption that small allocations have a shorter lifetime / - higher frequency than large ones, we have the option to use more - concurrency groups for tiny, small and medium superblocks than for - large and huge superblocks (but we don't currently). This would - increase thread contention for decreased preemptive overallocation at - large sizes. - - Note that the block_footprint in this table must be monotonically - increasing to facilitate rapid searching. - - Note also that this allocator could be customized by tweaking - sizeclasses to match specific application allocation sizes to get - even tighter spatial packings. */ - -/* Requests with worst case footprint greater than - FD_ALLOC_FOOTPRINT_SMALL_THRESH will be considered as large and done - directly through the fd_wksp_alloc allocator. Smaller footprints - will be grouped together into superblocks to reduce the costs of the - allocations. This should be at most the largest sizeclass block - footprint below. */ - -#define FD_ALLOC_FOOTPRINT_SMALL_THRESH (65531UL) - -/* FD_ALLOC_SIZECLASS_CNT is the number of sizeclasses supported by this - implementation. This should be positive integer of at most 127. */ - -#define FD_ALLOC_SIZECLASS_CNT (126UL) - -/* FD_ALLOC_SIZECLASS_LARGE is a sentinel value used to indicate that - an allocation is "large" (i.e. that is was done by the fd_wksp_alloc - allocator). */ - -#define FD_ALLOC_SIZECLASS_LARGE (127UL) - struct __attribute__((aligned(8))) fd_alloc_sizeclass_cfg { - uint superblock_footprint; /* Size of the allocation needed to make a superblock for this class */ - ushort block_footprint; /* Footprint of blocks in this size class, block_cnt*block_footprint+16 <= superblock_footprint */ - uchar block_cnt; /* Number of blocks in this, in [1,64] */ - uchar cgroup_mask; /* Number of cgroups for this sizeclass minus 1, a power of 2 minus 1, at most CGROUP_HINT_MAX */ + uint block_footprint; + ushort parent_sizeclass; + uchar block_cnt; + uchar cgroup_mask; }; typedef struct fd_alloc_sizeclass_cfg fd_alloc_sizeclass_cfg_t; -static fd_alloc_sizeclass_cfg_t const fd_alloc_sizeclass_cfg[126] = { - { 104U, (ushort) 5, (uchar)17, (uchar)15 }, // sizeclass 0 - tiny sb sizeclasses - { 104U, (ushort) 6, (uchar)14, (uchar)15 }, // sizeclass 1 - { 104U, (ushort) 7, (uchar)12, (uchar)15 }, // sizeclass 2 - { 104U, (ushort) 8, (uchar)11, (uchar)15 }, // sizeclass 3 - { 104U, (ushort) 9, (uchar) 9, (uchar)15 }, // sizeclass 4 - { 104U, (ushort) 11, (uchar) 8, (uchar)15 }, // sizeclass 5 - { 1000U, (ushort) 16, (uchar)61, (uchar)15 }, // sizeclass 6 - small sb sizeclasses - { 1000U, (ushort) 17, (uchar)57, (uchar)15 }, // sizeclass 7 - { 1000U, (ushort) 18, (uchar)54, (uchar)15 }, // sizeclass 8 - { 1000U, (ushort) 19, (uchar)51, (uchar)15 }, // sizeclass 9 - { 1000U, (ushort) 20, (uchar)49, (uchar)15 }, // sizeclass 10 - { 1000U, (ushort) 22, (uchar)44, (uchar)15 }, // sizeclass 11 - { 1000U, (ushort) 24, (uchar)41, (uchar)15 }, // sizeclass 12 - { 1000U, (ushort) 25, (uchar)39, (uchar)15 }, // sizeclass 13 - { 1000U, (ushort) 27, (uchar)36, (uchar)15 }, // sizeclass 14 - { 1000U, (ushort) 28, (uchar)35, (uchar)15 }, // sizeclass 15 - { 1000U, (ushort) 30, (uchar)32, (uchar)15 }, // sizeclass 16 - { 1000U, (ushort) 32, (uchar)30, (uchar)15 }, // sizeclass 17 - { 1000U, (ushort) 35, (uchar)28, (uchar)15 }, // sizeclass 18 - { 1000U, (ushort) 37, (uchar)26, (uchar)15 }, // sizeclass 19 - { 1000U, (ushort) 39, (uchar)25, (uchar)15 }, // sizeclass 20 - { 1000U, (ushort) 42, (uchar)23, (uchar)15 }, // sizeclass 21 - { 1000U, (ushort) 44, (uchar)22, (uchar)15 }, // sizeclass 22 - { 1000U, (ushort) 46, (uchar)21, (uchar)15 }, // sizeclass 23 - { 1000U, (ushort) 51, (uchar)19, (uchar)15 }, // sizeclass 24 - { 1000U, (ushort) 54, (uchar)18, (uchar)15 }, // sizeclass 25 - { 1000U, (ushort) 57, (uchar)17, (uchar)15 }, // sizeclass 26 - { 1000U, (ushort) 61, (uchar)16, (uchar)15 }, // sizeclass 27 - { 1000U, (ushort) 65, (uchar)15, (uchar)15 }, // sizeclass 28 - { 1000U, (ushort) 70, (uchar)14, (uchar)15 }, // sizeclass 29 - { 1000U, (ushort) 75, (uchar)13, (uchar)15 }, // sizeclass 30 - { 1000U, (ushort) 82, (uchar)12, (uchar)15 }, // sizeclass 31 - { 1000U, (ushort) 89, (uchar)11, (uchar)15 }, // sizeclass 32 - { 1000U, (ushort) 98, (uchar)10, (uchar)15 }, // sizeclass 33 - { 1000U, (ushort) 109, (uchar) 9, (uchar)15 }, // sizeclass 34 - { 1000U, (ushort) 123, (uchar) 8, (uchar)15 }, // sizeclass 35 - holds tiny sb - { 8168U, (ushort) 135, (uchar)60, (uchar)15 }, // sizeclass 36 - medium sb sizeclasses - { 8168U, (ushort) 145, (uchar)56, (uchar)15 }, // sizeclass 37 - { 8168U, (ushort) 153, (uchar)53, (uchar)15 }, // sizeclass 38 - { 8168U, (ushort) 163, (uchar)50, (uchar)15 }, // sizeclass 39 - { 8168U, (ushort) 173, (uchar)47, (uchar)15 }, // sizeclass 40 - { 8168U, (ushort) 185, (uchar)44, (uchar)15 }, // sizeclass 41 - { 8168U, (ushort) 198, (uchar)41, (uchar)15 }, // sizeclass 42 - { 8168U, (ushort) 209, (uchar)39, (uchar)15 }, // sizeclass 43 - { 8168U, (ushort) 226, (uchar)36, (uchar)15 }, // sizeclass 44 - { 8168U, (ushort) 239, (uchar)34, (uchar)15 }, // sizeclass 45 - { 8168U, (ushort) 254, (uchar)32, (uchar)15 }, // sizeclass 46 - { 8168U, (ushort) 271, (uchar)30, (uchar)15 }, // sizeclass 47 - { 8168U, (ushort) 291, (uchar)28, (uchar)15 }, // sizeclass 48 - { 8168U, (ushort) 313, (uchar)26, (uchar)15 }, // sizeclass 49 - { 8168U, (ushort) 326, (uchar)25, (uchar)15 }, // sizeclass 50 - { 8168U, (ushort) 354, (uchar)23, (uchar)15 }, // sizeclass 51 - { 8168U, (ushort) 370, (uchar)22, (uchar)15 }, // sizeclass 52 - { 8168U, (ushort) 388, (uchar)21, (uchar)15 }, // sizeclass 53 - { 8168U, (ushort) 429, (uchar)19, (uchar)15 }, // sizeclass 54 - { 8168U, (ushort) 452, (uchar)18, (uchar)15 }, // sizeclass 55 - { 8168U, (ushort) 479, (uchar)17, (uchar)15 }, // sizeclass 56 - { 8168U, (ushort) 509, (uchar)16, (uchar)15 }, // sizeclass 57 - { 8168U, (ushort) 543, (uchar)15, (uchar)15 }, // sizeclass 58 - { 8168U, (ushort) 582, (uchar)14, (uchar)15 }, // sizeclass 59 - { 8168U, (ushort) 627, (uchar)13, (uchar)15 }, // sizeclass 60 - { 8168U, (ushort) 679, (uchar)12, (uchar)15 }, // sizeclass 61 - { 8168U, (ushort) 741, (uchar)11, (uchar)15 }, // sizeclass 62 - { 8168U, (ushort) 815, (uchar)10, (uchar)15 }, // sizeclass 63 - { 8168U, (ushort) 905, (uchar) 9, (uchar)15 }, // sizeclass 64 - { 8168U, (ushort) 1019, (uchar) 8, (uchar)15 }, // sizeclass 65 - holds small sb - { 65512U, (ushort) 1091, (uchar)60, (uchar)15 }, // sizeclass 66 - large sb sizeclasses - { 65512U, (ushort) 1169, (uchar)56, (uchar)15 }, // sizeclass 67 - { 65512U, (ushort) 1235, (uchar)53, (uchar)15 }, // sizeclass 68 - { 65512U, (ushort) 1309, (uchar)50, (uchar)15 }, // sizeclass 69 - { 65512U, (ushort) 1393, (uchar)47, (uchar)15 }, // sizeclass 70 - { 65512U, (ushort) 1488, (uchar)44, (uchar)15 }, // sizeclass 71 - { 65512U, (ushort) 1597, (uchar)41, (uchar)15 }, // sizeclass 72 - { 65512U, (ushort) 1679, (uchar)39, (uchar)15 }, // sizeclass 73 - { 65512U, (ushort) 1819, (uchar)36, (uchar)15 }, // sizeclass 74 - { 65512U, (ushort) 1926, (uchar)34, (uchar)15 }, // sizeclass 75 - { 65512U, (ushort) 2046, (uchar)32, (uchar)15 }, // sizeclass 76 - { 65512U, (ushort) 2183, (uchar)30, (uchar)15 }, // sizeclass 77 - { 65512U, (ushort) 2339, (uchar)28, (uchar)15 }, // sizeclass 78 - { 65512U, (ushort) 2519, (uchar)26, (uchar)15 }, // sizeclass 79 - { 65512U, (ushort) 2619, (uchar)25, (uchar)15 }, // sizeclass 80 - { 65512U, (ushort) 2847, (uchar)23, (uchar)15 }, // sizeclass 81 - { 65512U, (ushort) 2977, (uchar)22, (uchar)15 }, // sizeclass 82 - { 65512U, (ushort) 3118, (uchar)21, (uchar)15 }, // sizeclass 83 - { 65512U, (ushort) 3447, (uchar)19, (uchar)15 }, // sizeclass 84 - { 65512U, (ushort) 3638, (uchar)18, (uchar)15 }, // sizeclass 85 - { 65512U, (ushort) 3852, (uchar)17, (uchar)15 }, // sizeclass 86 - { 65512U, (ushort) 4093, (uchar)16, (uchar)15 }, // sizeclass 87 - { 65512U, (ushort) 4366, (uchar)15, (uchar)15 }, // sizeclass 88 - { 65512U, (ushort) 4678, (uchar)14, (uchar)15 }, // sizeclass 89 - { 65512U, (ushort) 5038, (uchar)13, (uchar)15 }, // sizeclass 90 - { 65512U, (ushort) 5458, (uchar)12, (uchar)15 }, // sizeclass 91 - { 65512U, (ushort) 5954, (uchar)11, (uchar)15 }, // sizeclass 92 - { 65512U, (ushort) 6549, (uchar)10, (uchar)15 }, // sizeclass 93 - { 65512U, (ushort) 7277, (uchar) 9, (uchar)15 }, // sizeclass 94 - { 65512U, (ushort) 8187, (uchar) 8, (uchar)15 }, // sizeclass 95 - holds medium sb - { 524269U, (ushort) 8737, (uchar)60, (uchar)15 }, // sizeclass 96 - huge sb sizeclasses - { 524269U, (ushort) 9361, (uchar)56, (uchar)15 }, // sizeclass 97 - { 524269U, (ushort) 9891, (uchar)53, (uchar)15 }, // sizeclass 98 - { 524269U, (ushort)10485, (uchar)50, (uchar)15 }, // sizeclass 99 - { 524269U, (ushort)11154, (uchar)47, (uchar)15 }, // sizeclass 100 - { 524269U, (ushort)11914, (uchar)44, (uchar)15 }, // sizeclass 101 - { 524269U, (ushort)12786, (uchar)41, (uchar)15 }, // sizeclass 102 - { 524269U, (ushort)13442, (uchar)39, (uchar)15 }, // sizeclass 103 - { 524269U, (ushort)14562, (uchar)36, (uchar)15 }, // sizeclass 104 - { 524269U, (ushort)15419, (uchar)34, (uchar)15 }, // sizeclass 105 - { 524269U, (ushort)16382, (uchar)32, (uchar)15 }, // sizeclass 106 - { 524269U, (ushort)17475, (uchar)30, (uchar)15 }, // sizeclass 107 - { 524269U, (ushort)18723, (uchar)28, (uchar)15 }, // sizeclass 108 - { 524269U, (ushort)20163, (uchar)26, (uchar)15 }, // sizeclass 109 - { 524269U, (ushort)20970, (uchar)25, (uchar)15 }, // sizeclass 110 - { 524269U, (ushort)22793, (uchar)23, (uchar)15 }, // sizeclass 111 - { 524269U, (ushort)23829, (uchar)22, (uchar)15 }, // sizeclass 112 - { 524269U, (ushort)24964, (uchar)21, (uchar)15 }, // sizeclass 113 - { 524269U, (ushort)27592, (uchar)19, (uchar)15 }, // sizeclass 114 - { 524269U, (ushort)29125, (uchar)18, (uchar)15 }, // sizeclass 115 - { 524269U, (ushort)30838, (uchar)17, (uchar)15 }, // sizeclass 116 - { 524269U, (ushort)32765, (uchar)16, (uchar)15 }, // sizeclass 117 - { 524269U, (ushort)34950, (uchar)15, (uchar)15 }, // sizeclass 118 - { 524269U, (ushort)37446, (uchar)14, (uchar)15 }, // sizeclass 119 - { 524269U, (ushort)40327, (uchar)13, (uchar)15 }, // sizeclass 120 - { 524269U, (ushort)43687, (uchar)12, (uchar)15 }, // sizeclass 121 - { 524269U, (ushort)47659, (uchar)11, (uchar)15 }, // sizeclass 122 - { 524269U, (ushort)52425, (uchar)10, (uchar)15 }, // sizeclass 123 - { 524269U, (ushort)58250, (uchar) 9, (uchar)15 }, // sizeclass 124 - { 524269U, (ushort)65531, (uchar) 8, (uchar)15 } // sizeclass 125 - holds large sb - // huge sb are wksp allocated -}; - -#endif /* HEADER_fd_src_util_alloc_fd_alloc_cfg_h */ - +#include "fd_alloc_cfg_large.h" diff --git a/src/util/alloc/fd_alloc_cfg_large.h b/src/util/alloc/fd_alloc_cfg_large.h new file mode 100644 index 00000000000..408aab01a4f --- /dev/null +++ b/src/util/alloc/fd_alloc_cfg_large.h @@ -0,0 +1,131 @@ +/* This table autogenerated + align 8 + alloc_hdr 4 + sb_hdr 24 + lg_cgroup_max 4 + obj_cnt_min 8 + obj_cnt_max 64 + obj_footprint_min 8 + obj_footprint_max 10485760 + root_sb_footprint 67108864 + gamma 1.125000e+00 */ + +#define FD_ALLOC_SUPERBLOCK_ALIGN (8UL) +#define FD_ALLOC_SUPERBLOCK_LG_ALIGN (3) +#define FD_ALLOC_SIZECLASS_CNT (110UL) +#define FD_ALLOC_SIZECLASS_ITER_MAX (7UL) +#define FD_ALLOC_ROOT_SUPERBLOCK_FOOTPRINT (67108864UL) +#define FD_ALLOC_FOOTPRINT_SMALL_THRESH (11184800UL) + +static fd_alloc_sizeclass_cfg_t const fd_alloc_sizeclass_cfg[ FD_ALLOC_SIZECLASS_CNT ] = { + /* 0 */ { 8U, (ushort) 17, (uchar) 25, (uchar) 15 }, // parent_footprint 224 (padding 0) + /* 1 */ { 16U, (ushort) 17, (uchar) 12, (uchar) 15 }, // parent_footprint 224 (padding 8) + /* 2 */ { 24U, (ushort) 17, (uchar) 8, (uchar) 15 }, // parent_footprint 224 (padding 8) + /* 3 */ { 32U, (ushort) 36, (uchar) 63, (uchar) 15 }, // parent_footprint 2040 (padding 0) + /* 4 */ { 40U, (ushort) 36, (uchar) 50, (uchar) 15 }, // parent_footprint 2040 (padding 16) + /* 5 */ { 48U, (ushort) 36, (uchar) 42, (uchar) 15 }, // parent_footprint 2040 (padding 0) + /* 6 */ { 56U, (ushort) 36, (uchar) 36, (uchar) 15 }, // parent_footprint 2040 (padding 0) + /* 7 */ { 64U, (ushort) 36, (uchar) 31, (uchar) 15 }, // parent_footprint 2040 (padding 32) + /* 8 */ { 72U, (ushort) 36, (uchar) 28, (uchar) 15 }, // parent_footprint 2040 (padding 0) + /* 9 */ { 80U, (ushort) 36, (uchar) 25, (uchar) 15 }, // parent_footprint 2040 (padding 16) + /* 10 */ { 88U, (ushort) 36, (uchar) 22, (uchar) 15 }, // parent_footprint 2040 (padding 80) + /* 11 */ { 104U, (ushort) 36, (uchar) 19, (uchar) 15 }, // parent_footprint 2040 (padding 40) + /* 12 */ { 112U, (ushort) 36, (uchar) 18, (uchar) 15 }, // parent_footprint 2040 (padding 0) + /* 13 */ { 128U, (ushort) 36, (uchar) 15, (uchar) 15 }, // parent_footprint 2040 (padding 96) + /* 14 */ { 144U, (ushort) 36, (uchar) 14, (uchar) 15 }, // parent_footprint 2040 (padding 0) + /* 15 */ { 168U, (ushort) 36, (uchar) 12, (uchar) 15 }, // parent_footprint 2040 (padding 0) + /* 16 */ { 200U, (ushort) 36, (uchar) 10, (uchar) 15 }, // parent_footprint 2040 (padding 16) + /* 17 */ { 224U, (ushort) 36, (uchar) 9, (uchar) 15 }, // parent_footprint 2040 (padding 0) + /* 18 */ { 248U, (ushort) 36, (uchar) 8, (uchar) 15 }, // parent_footprint 2040 (padding 32) + /* 19 */ { 264U, (ushort) 54, (uchar) 61, (uchar) 15 }, // parent_footprint 16376 (padding 248) + /* 20 */ { 296U, (ushort) 54, (uchar) 55, (uchar) 15 }, // parent_footprint 16376 (padding 72) + /* 21 */ { 328U, (ushort) 54, (uchar) 49, (uchar) 15 }, // parent_footprint 16376 (padding 280) + /* 22 */ { 368U, (ushort) 54, (uchar) 44, (uchar) 15 }, // parent_footprint 16376 (padding 160) + /* 23 */ { 416U, (ushort) 54, (uchar) 39, (uchar) 15 }, // parent_footprint 16376 (padding 128) + /* 24 */ { 480U, (ushort) 54, (uchar) 34, (uchar) 15 }, // parent_footprint 16376 (padding 32) + /* 25 */ { 544U, (ushort) 54, (uchar) 30, (uchar) 15 }, // parent_footprint 16376 (padding 32) + /* 26 */ { 600U, (ushort) 54, (uchar) 27, (uchar) 15 }, // parent_footprint 16376 (padding 152) + /* 27 */ { 680U, (ushort) 54, (uchar) 24, (uchar) 15 }, // parent_footprint 16376 (padding 32) + /* 28 */ { 776U, (ushort) 54, (uchar) 21, (uchar) 15 }, // parent_footprint 16376 (padding 56) + /* 29 */ { 856U, (ushort) 54, (uchar) 19, (uchar) 15 }, // parent_footprint 16376 (padding 88) + /* 30 */ { 960U, (ushort) 54, (uchar) 17, (uchar) 15 }, // parent_footprint 16376 (padding 32) + /* 31 */ { 1088U, (ushort) 54, (uchar) 15, (uchar) 15 }, // parent_footprint 16376 (padding 32) + /* 32 */ { 1256U, (ushort) 54, (uchar) 13, (uchar) 15 }, // parent_footprint 16376 (padding 24) + /* 33 */ { 1360U, (ushort) 54, (uchar) 12, (uchar) 15 }, // parent_footprint 16376 (padding 32) + /* 34 */ { 1632U, (ushort) 54, (uchar) 10, (uchar) 15 }, // parent_footprint 16376 (padding 32) + /* 35 */ { 1816U, (ushort) 54, (uchar) 9, (uchar) 15 }, // parent_footprint 16376 (padding 8) + /* 36 */ { 2040U, (ushort) 54, (uchar) 8, (uchar) 15 }, // parent_footprint 16376 (padding 32) + /* 37 */ { 2184U, (ushort) 71, (uchar) 60, (uchar) 7 }, // parent_footprint 131064 (padding 0) + /* 38 */ { 2472U, (ushort) 71, (uchar) 53, (uchar) 7 }, // parent_footprint 131064 (padding 24) + /* 39 */ { 2784U, (ushort) 71, (uchar) 47, (uchar) 7 }, // parent_footprint 131064 (padding 192) + /* 40 */ { 3120U, (ushort) 71, (uchar) 42, (uchar) 7 }, // parent_footprint 131064 (padding 0) + /* 41 */ { 3536U, (ushort) 71, (uchar) 37, (uchar) 7 }, // parent_footprint 131064 (padding 208) + /* 42 */ { 3968U, (ushort) 71, (uchar) 33, (uchar) 7 }, // parent_footprint 131064 (padding 96) + /* 43 */ { 4512U, (ushort) 71, (uchar) 29, (uchar) 7 }, // parent_footprint 131064 (padding 192) + /* 44 */ { 5040U, (ushort) 71, (uchar) 26, (uchar) 7 }, // parent_footprint 131064 (padding 0) + /* 45 */ { 5696U, (ushort) 71, (uchar) 23, (uchar) 7 }, // parent_footprint 131064 (padding 32) + /* 46 */ { 6552U, (ushort) 71, (uchar) 20, (uchar) 7 }, // parent_footprint 131064 (padding 0) + /* 47 */ { 7280U, (ushort) 71, (uchar) 18, (uchar) 7 }, // parent_footprint 131064 (padding 0) + /* 48 */ { 8184U, (ushort) 71, (uchar) 16, (uchar) 7 }, // parent_footprint 131064 (padding 96) + /* 49 */ { 9360U, (ushort) 71, (uchar) 14, (uchar) 7 }, // parent_footprint 131064 (padding 0) + /* 50 */ { 10080U, (ushort) 71, (uchar) 13, (uchar) 7 }, // parent_footprint 131064 (padding 0) + /* 51 */ { 11912U, (ushort) 71, (uchar) 11, (uchar) 7 }, // parent_footprint 131064 (padding 8) + /* 52 */ { 13104U, (ushort) 71, (uchar) 10, (uchar) 7 }, // parent_footprint 131064 (padding 0) + /* 53 */ { 14560U, (ushort) 71, (uchar) 9, (uchar) 7 }, // parent_footprint 131064 (padding 0) + /* 54 */ { 16376U, (ushort) 71, (uchar) 8, (uchar) 7 }, // parent_footprint 131064 (padding 32) + /* 55 */ { 18392U, (ushort) 89, (uchar) 57, (uchar) 3 }, // parent_footprint 1048568 (padding 200) + /* 56 */ { 20552U, (ushort) 89, (uchar) 51, (uchar) 3 }, // parent_footprint 1048568 (padding 392) + /* 57 */ { 23296U, (ushort) 89, (uchar) 45, (uchar) 3 }, // parent_footprint 1048568 (padding 224) + /* 58 */ { 26208U, (ushort) 89, (uchar) 40, (uchar) 3 }, // parent_footprint 1048568 (padding 224) + /* 59 */ { 29120U, (ushort) 89, (uchar) 36, (uchar) 3 }, // parent_footprint 1048568 (padding 224) + /* 60 */ { 32760U, (ushort) 89, (uchar) 32, (uchar) 3 }, // parent_footprint 1048568 (padding 224) + /* 61 */ { 37448U, (ushort) 89, (uchar) 28, (uchar) 3 }, // parent_footprint 1048568 (padding 0) + /* 62 */ { 41936U, (ushort) 89, (uchar) 25, (uchar) 3 }, // parent_footprint 1048568 (padding 144) + /* 63 */ { 47656U, (ushort) 89, (uchar) 22, (uchar) 3 }, // parent_footprint 1048568 (padding 112) + /* 64 */ { 52424U, (ushort) 89, (uchar) 20, (uchar) 3 }, // parent_footprint 1048568 (padding 64) + /* 65 */ { 61672U, (ushort) 89, (uchar) 17, (uchar) 3 }, // parent_footprint 1048568 (padding 120) + /* 66 */ { 69896U, (ushort) 89, (uchar) 15, (uchar) 3 }, // parent_footprint 1048568 (padding 104) + /* 67 */ { 74896U, (ushort) 89, (uchar) 14, (uchar) 3 }, // parent_footprint 1048568 (padding 0) + /* 68 */ { 87376U, (ushort) 89, (uchar) 12, (uchar) 3 }, // parent_footprint 1048568 (padding 32) + /* 69 */ { 95320U, (ushort) 89, (uchar) 11, (uchar) 3 }, // parent_footprint 1048568 (padding 24) + /* 70 */ { 116504U, (ushort) 89, (uchar) 9, (uchar) 3 }, // parent_footprint 1048568 (padding 8) + /* 71 */ { 131064U, (ushort) 89, (uchar) 8, (uchar) 3 }, // parent_footprint 1048568 (padding 32) + /* 72 */ { 135296U, (ushort)107, (uchar) 62, (uchar) 1 }, // parent_footprint 8388600 (padding 224) + /* 73 */ { 152512U, (ushort)107, (uchar) 55, (uchar) 1 }, // parent_footprint 8388600 (padding 416) + /* 74 */ { 171192U, (ushort)107, (uchar) 49, (uchar) 1 }, // parent_footprint 8388600 (padding 168) + /* 75 */ { 195080U, (ushort)107, (uchar) 43, (uchar) 1 }, // parent_footprint 8388600 (padding 136) + /* 76 */ { 215088U, (ushort)107, (uchar) 39, (uchar) 1 }, // parent_footprint 8388600 (padding 144) + /* 77 */ { 246720U, (ushort)107, (uchar) 34, (uchar) 1 }, // parent_footprint 8388600 (padding 96) + /* 78 */ { 279616U, (ushort)107, (uchar) 30, (uchar) 1 }, // parent_footprint 8388600 (padding 96) + /* 79 */ { 310688U, (ushort)107, (uchar) 27, (uchar) 1 }, // parent_footprint 8388600 (padding 0) + /* 80 */ { 349520U, (ushort)107, (uchar) 24, (uchar) 1 }, // parent_footprint 8388600 (padding 96) + /* 81 */ { 399456U, (ushort)107, (uchar) 21, (uchar) 1 }, // parent_footprint 8388600 (padding 0) + /* 82 */ { 441504U, (ushort)107, (uchar) 19, (uchar) 1 }, // parent_footprint 8388600 (padding 0) + /* 83 */ { 493440U, (ushort)107, (uchar) 17, (uchar) 1 }, // parent_footprint 8388600 (padding 96) + /* 84 */ { 559232U, (ushort)107, (uchar) 15, (uchar) 1 }, // parent_footprint 8388600 (padding 96) + /* 85 */ { 645272U, (ushort)107, (uchar) 13, (uchar) 1 }, // parent_footprint 8388600 (padding 40) + /* 86 */ { 699048U, (ushort)107, (uchar) 12, (uchar) 1 }, // parent_footprint 8388600 (padding 0) + /* 87 */ { 838856U, (ushort)107, (uchar) 10, (uchar) 1 }, // parent_footprint 8388600 (padding 16) + /* 88 */ { 932064U, (ushort)107, (uchar) 9, (uchar) 1 }, // parent_footprint 8388600 (padding 0) + /* 89 */ { 1048568U, (ushort)107, (uchar) 8, (uchar) 1 }, // parent_footprint 8388600 (padding 32) + /* 90 */ { 1137432U, (ushort)110, (uchar) 59, (uchar) 0 }, // parent_footprint 67108864 (padding 352) + /* 91 */ { 1266200U, (ushort)110, (uchar) 53, (uchar) 0 }, // parent_footprint 67108864 (padding 240) + /* 92 */ { 1427840U, (ushort)110, (uchar) 47, (uchar) 0 }, // parent_footprint 67108864 (padding 360) + /* 93 */ { 1597824U, (ushort)110, (uchar) 42, (uchar) 0 }, // parent_footprint 67108864 (padding 232) + /* 94 */ { 1813752U, (ushort)110, (uchar) 37, (uchar) 0 }, // parent_footprint 67108864 (padding 16) + /* 95 */ { 2033600U, (ushort)110, (uchar) 33, (uchar) 0 }, // parent_footprint 67108864 (padding 40) + /* 96 */ { 2314096U, (ushort)110, (uchar) 29, (uchar) 0 }, // parent_footprint 67108864 (padding 56) + /* 97 */ { 2581104U, (ushort)110, (uchar) 26, (uchar) 0 }, // parent_footprint 67108864 (padding 136) + /* 98 */ { 2917768U, (ushort)110, (uchar) 23, (uchar) 0 }, // parent_footprint 67108864 (padding 176) + /* 99 */ { 3355440U, (ushort)110, (uchar) 20, (uchar) 0 }, // parent_footprint 67108864 (padding 40) + /* 100 */ { 3728264U, (ushort)110, (uchar) 18, (uchar) 0 }, // parent_footprint 67108864 (padding 88) + /* 101 */ { 4194296U, (ushort)110, (uchar) 16, (uchar) 0 }, // parent_footprint 67108864 (padding 104) + /* 102 */ { 4793488U, (ushort)110, (uchar) 14, (uchar) 0 }, // parent_footprint 67108864 (padding 8) + /* 103 */ { 5592400U, (ushort)110, (uchar) 12, (uchar) 0 }, // parent_footprint 67108864 (padding 40) + /* 104 */ { 6100800U, (ushort)110, (uchar) 11, (uchar) 0 }, // parent_footprint 67108864 (padding 40) + /* 105 */ { 6710880U, (ushort)110, (uchar) 10, (uchar) 0 }, // parent_footprint 67108864 (padding 40) + /* 106 */ { 7456536U, (ushort)110, (uchar) 9, (uchar) 0 }, // parent_footprint 67108864 (padding 16) + /* 107 */ { 8388600U, (ushort)110, (uchar) 8, (uchar) 0 }, // parent_footprint 67108864 (padding 40) + /* 108 */ { 9586976U, (ushort)110, (uchar) 7, (uchar) 0 }, // parent_footprint 67108864 (padding 8) + /* 109 */ { 11184800U, (ushort)110, (uchar) 6, (uchar) 0 }, // parent_footprint 67108864 (padding 40) <-- SMALL_THRESH +}; diff --git a/src/util/alloc/fd_alloc_cfg_small.h b/src/util/alloc/fd_alloc_cfg_small.h new file mode 100644 index 00000000000..83f672140bb --- /dev/null +++ b/src/util/alloc/fd_alloc_cfg_small.h @@ -0,0 +1,82 @@ +/* This table autogenerated + align 8 + alloc_hdr 4 + sb_hdr 24 + lg_cgroup_max 4 + obj_cnt_min 8 + obj_cnt_max 64 + obj_footprint_min 8 + obj_footprint_max 32768 + root_sb_footprint 262144 + gamma 1.125000e+00 */ + +#define FD_ALLOC_SUPERBLOCK_ALIGN (8UL) +#define FD_ALLOC_SUPERBLOCK_LG_ALIGN (3) +#define FD_ALLOC_SIZECLASS_CNT (61UL) +#define FD_ALLOC_SIZECLASS_ITER_MAX (6UL) +#define FD_ALLOC_ROOT_SUPERBLOCK_FOOTPRINT (262144UL) +#define FD_ALLOC_FOOTPRINT_SMALL_THRESH (37440UL) + +static fd_alloc_sizeclass_cfg_t const fd_alloc_sizeclass_cfg[ FD_ALLOC_SIZECLASS_CNT ] = { + /* 0 */ { 8U, (ushort) 24, (uchar) 60, (uchar) 7 }, // parent_footprint 504 (padding 0) + /* 1 */ { 16U, (ushort) 24, (uchar) 30, (uchar) 7 }, // parent_footprint 504 (padding 0) + /* 2 */ { 24U, (ushort) 24, (uchar) 20, (uchar) 7 }, // parent_footprint 504 (padding 0) + /* 3 */ { 32U, (ushort) 24, (uchar) 15, (uchar) 7 }, // parent_footprint 504 (padding 0) + /* 4 */ { 40U, (ushort) 24, (uchar) 12, (uchar) 7 }, // parent_footprint 504 (padding 0) + /* 5 */ { 48U, (ushort) 24, (uchar) 10, (uchar) 7 }, // parent_footprint 504 (padding 0) + /* 6 */ { 56U, (ushort) 24, (uchar) 8, (uchar) 7 }, // parent_footprint 504 (padding 32) + /* 7 */ { 64U, (ushort) 42, (uchar) 63, (uchar) 3 }, // parent_footprint 4088 (padding 32) + /* 8 */ { 72U, (ushort) 42, (uchar) 56, (uchar) 3 }, // parent_footprint 4088 (padding 32) + /* 9 */ { 80U, (ushort) 42, (uchar) 50, (uchar) 3 }, // parent_footprint 4088 (padding 64) + /* 10 */ { 88U, (ushort) 42, (uchar) 46, (uchar) 3 }, // parent_footprint 4088 (padding 16) + /* 11 */ { 104U, (ushort) 42, (uchar) 39, (uchar) 3 }, // parent_footprint 4088 (padding 8) + /* 12 */ { 112U, (ushort) 42, (uchar) 36, (uchar) 3 }, // parent_footprint 4088 (padding 32) + /* 13 */ { 128U, (ushort) 42, (uchar) 31, (uchar) 3 }, // parent_footprint 4088 (padding 96) + /* 14 */ { 144U, (ushort) 42, (uchar) 28, (uchar) 3 }, // parent_footprint 4088 (padding 32) + /* 15 */ { 160U, (ushort) 42, (uchar) 25, (uchar) 3 }, // parent_footprint 4088 (padding 64) + /* 16 */ { 184U, (ushort) 42, (uchar) 22, (uchar) 3 }, // parent_footprint 4088 (padding 16) + /* 17 */ { 208U, (ushort) 42, (uchar) 19, (uchar) 3 }, // parent_footprint 4088 (padding 112) + /* 18 */ { 232U, (ushort) 42, (uchar) 17, (uchar) 3 }, // parent_footprint 4088 (padding 120) + /* 19 */ { 264U, (ushort) 42, (uchar) 15, (uchar) 3 }, // parent_footprint 4088 (padding 104) + /* 20 */ { 312U, (ushort) 42, (uchar) 13, (uchar) 3 }, // parent_footprint 4088 (padding 8) + /* 21 */ { 336U, (ushort) 42, (uchar) 12, (uchar) 3 }, // parent_footprint 4088 (padding 32) + /* 22 */ { 400U, (ushort) 42, (uchar) 10, (uchar) 3 }, // parent_footprint 4088 (padding 64) + /* 23 */ { 448U, (ushort) 42, (uchar) 9, (uchar) 3 }, // parent_footprint 4088 (padding 32) + /* 24 */ { 504U, (ushort) 42, (uchar) 8, (uchar) 3 }, // parent_footprint 4088 (padding 32) + /* 25 */ { 528U, (ushort) 59, (uchar) 62, (uchar) 1 }, // parent_footprint 32760 (padding 0) + /* 26 */ { 600U, (ushort) 59, (uchar) 54, (uchar) 1 }, // parent_footprint 32760 (padding 336) + /* 27 */ { 680U, (ushort) 59, (uchar) 48, (uchar) 1 }, // parent_footprint 32760 (padding 96) + /* 28 */ { 760U, (ushort) 59, (uchar) 43, (uchar) 1 }, // parent_footprint 32760 (padding 56) + /* 29 */ { 856U, (ushort) 59, (uchar) 38, (uchar) 1 }, // parent_footprint 32760 (padding 208) + /* 30 */ { 960U, (ushort) 59, (uchar) 34, (uchar) 1 }, // parent_footprint 32760 (padding 96) + /* 31 */ { 1088U, (ushort) 59, (uchar) 30, (uchar) 1 }, // parent_footprint 32760 (padding 96) + /* 32 */ { 1208U, (ushort) 59, (uchar) 27, (uchar) 1 }, // parent_footprint 32760 (padding 120) + /* 33 */ { 1360U, (ushort) 59, (uchar) 24, (uchar) 1 }, // parent_footprint 32760 (padding 96) + /* 34 */ { 1552U, (ushort) 59, (uchar) 21, (uchar) 1 }, // parent_footprint 32760 (padding 144) + /* 35 */ { 1816U, (ushort) 59, (uchar) 18, (uchar) 1 }, // parent_footprint 32760 (padding 48) + /* 36 */ { 2040U, (ushort) 59, (uchar) 16, (uchar) 1 }, // parent_footprint 32760 (padding 96) + /* 37 */ { 2336U, (ushort) 59, (uchar) 14, (uchar) 1 }, // parent_footprint 32760 (padding 32) + /* 38 */ { 2512U, (ushort) 59, (uchar) 13, (uchar) 1 }, // parent_footprint 32760 (padding 80) + /* 39 */ { 2976U, (ushort) 59, (uchar) 11, (uchar) 1 }, // parent_footprint 32760 (padding 0) + /* 40 */ { 3272U, (ushort) 59, (uchar) 10, (uchar) 1 }, // parent_footprint 32760 (padding 16) + /* 41 */ { 3632U, (ushort) 59, (uchar) 9, (uchar) 1 }, // parent_footprint 32760 (padding 48) + /* 42 */ { 4088U, (ushort) 59, (uchar) 8, (uchar) 1 }, // parent_footprint 32760 (padding 32) + /* 43 */ { 4440U, (ushort) 61, (uchar) 59, (uchar) 0 }, // parent_footprint 262144 (padding 160) + /* 44 */ { 5040U, (ushort) 61, (uchar) 52, (uchar) 0 }, // parent_footprint 262144 (padding 40) + /* 45 */ { 5696U, (ushort) 61, (uchar) 46, (uchar) 0 }, // parent_footprint 262144 (padding 104) + /* 46 */ { 6392U, (ushort) 61, (uchar) 41, (uchar) 0 }, // parent_footprint 262144 (padding 48) + /* 47 */ { 7280U, (ushort) 61, (uchar) 36, (uchar) 0 }, // parent_footprint 262144 (padding 40) + /* 48 */ { 8184U, (ushort) 61, (uchar) 32, (uchar) 0 }, // parent_footprint 262144 (padding 232) + /* 49 */ { 9032U, (ushort) 61, (uchar) 29, (uchar) 0 }, // parent_footprint 262144 (padding 192) + /* 50 */ { 10480U, (ushort) 61, (uchar) 25, (uchar) 0 }, // parent_footprint 262144 (padding 120) + /* 51 */ { 11392U, (ushort) 61, (uchar) 23, (uchar) 0 }, // parent_footprint 262144 (padding 104) + /* 52 */ { 13104U, (ushort) 61, (uchar) 20, (uchar) 0 }, // parent_footprint 262144 (padding 40) + /* 53 */ { 14560U, (ushort) 61, (uchar) 18, (uchar) 0 }, // parent_footprint 262144 (padding 40) + /* 54 */ { 16376U, (ushort) 61, (uchar) 16, (uchar) 0 }, // parent_footprint 262144 (padding 104) + /* 55 */ { 18720U, (ushort) 61, (uchar) 14, (uchar) 0 }, // parent_footprint 262144 (padding 40) + /* 56 */ { 21840U, (ushort) 61, (uchar) 12, (uchar) 0 }, // parent_footprint 262144 (padding 40) + /* 57 */ { 23824U, (ushort) 61, (uchar) 11, (uchar) 0 }, // parent_footprint 262144 (padding 56) + /* 58 */ { 26208U, (ushort) 61, (uchar) 10, (uchar) 0 }, // parent_footprint 262144 (padding 40) + /* 59 */ { 32760U, (ushort) 61, (uchar) 8, (uchar) 0 }, // parent_footprint 262144 (padding 40) + /* 60 */ { 37440U, (ushort) 61, (uchar) 7, (uchar) 0 }, // parent_footprint 262144 (padding 40) <-- SMALL_THRESH +}; diff --git a/src/util/alloc/fd_alloc_ctl.c b/src/util/alloc/fd_alloc_ctl.c index b17377d6302..1ac70e0dbd8 100644 --- a/src/util/alloc/fd_alloc_ctl.c +++ b/src/util/alloc/fd_alloc_ctl.c @@ -231,4 +231,3 @@ main( int argc, } #endif - diff --git a/src/util/alloc/gen_szc_cfg.m b/src/util/alloc/gen_szc_cfg.m new file mode 100644 index 00000000000..e04ce8668bb --- /dev/null +++ b/src/util/alloc/gen_szc_cfg.m @@ -0,0 +1,160 @@ +close all +clear all + +align = 8; +sb_hdr = 24; +alloc_hdr = 4; +lg_cgroup_max = 4; + +obj_cnt_min = 8; +obj_cnt_max = 64; +obj_footprint_min = align; +obj_footprint_max = 10*2^20; +root_sb_footprint = 2^26; % Current implementation limits this to <=2^26 +gamma = (obj_cnt_min+1) / obj_cnt_min; + +szc_cnt = 0; +sb_lvl = 0; + +sb_footprint = root_sb_footprint; +obj_footprint_target = obj_footprint_max; +while obj_footprint_target>=obj_footprint_min, + + % Determine the superblock size and object count for this object + % footprint target + + ofp = align*round( obj_footprint_target / align ); + while 1, + ocnt = floor( (sb_footprint - sb_hdr) / ofp ); + if ocnt<=obj_cnt_max, break; endif + + % More than obj_cnt_max objects fit into the current superblock. + % Pick a new superblock size to be the smallest object footprint in + % an already computed sizeclass sufficient to hold a superblock with + % obj_cnt_min ofp sized objects. If there are none (i.e. the needed + % superblock size is larger than the object footprints for all the + % already computed sizeclasses), use the already computed sizeclass + % with the largest object footprint (the resulting superblock for + % ofp sized objects will have fewer than obj_cnt_min objects but + % that's unavoidable). + + idx = find( obj_footprint >= sb_hdr + ofp*obj_cnt_min, 1, 'last' ); + if isempty(idx), idx = 1; endif + sb_footprint = obj_footprint( idx ); + sb_lvl++; + endwhile + + if ~((2<=ocnt) & (ocnt<=64)), error( 'hmmm' ); endif + + szc_cnt++; + obj_footprint (szc_cnt) = align*floor( (sb_footprint - sb_hdr) / (align*ocnt) ); + obj_cnt (szc_cnt) = ocnt; + parent_footprint(szc_cnt) = sb_footprint; + cgroup_mask (szc_cnt) = 2^min( sb_lvl, lg_cgroup_max ) - 1; + + obj_footprint_target /= gamma; +endwhile + +% Sort by object footprint, discarding redundant and/or runt sizeclasses + +[~,idx] = unique( obj_footprint, 'first' ); +obj_footprint = obj_footprint (idx); +obj_cnt = obj_cnt (idx); +parent_footprint = parent_footprint(idx); +cgroup_mask = cgroup_mask (idx); + +keep = diff(obj_footprint) > 0.25*(gamma-1)*obj_footprint(1:(end-1)); +keep(end+1) = 1; + +obj_footprint = obj_footprint (keep); +obj_cnt = obj_cnt (keep); +parent_footprint = parent_footprint(keep); +cgroup_mask = cgroup_mask (keep); + +szc_cnt = length(obj_footprint); + +% Determine sizeclass nesting + +for szc=1:szc_cnt, + pfp = sb_hdr + obj_cnt(szc)*obj_footprint(szc); + pszc = find( pfp<=obj_footprint, 1, 'first' ); + if isempty(pszc), + parent_footprint(szc) = root_sb_footprint; + parent_szc(szc) = szc_cnt+1; + else + parent_footprint(szc) = obj_footprint(pszc); + parent_szc(szc) = pszc; + endif +endfor + +szc_thresh = szc_cnt; + +printf( '/* This table autogenerated\n' ); +printf( ' align %i\n', align ); +printf( ' alloc_hdr %i\n', alloc_hdr ); +printf( ' sb_hdr %i\n', sb_hdr ); +printf( ' lg_cgroup_max %i\n', lg_cgroup_max ); +printf( ' obj_cnt_min %i\n', obj_cnt_min ); +printf( ' obj_cnt_max %i\n', obj_cnt_max ); +printf( ' obj_footprint_min %i\n', obj_footprint_min ); +printf( ' obj_footprint_max %i\n', obj_footprint_max ); +printf( ' root_sb_footprint %i\n', root_sb_footprint ); +printf( ' gamma %.6e */\n', gamma ); +printf( '\n' ); +printf( '#define FD_ALLOC_SUPERBLOCK_ALIGN (%uUL)\n', align ); +printf( '#define FD_ALLOC_SUPERBLOCK_LG_ALIGN (%u)\n', log2( align ) ); +printf( '#define FD_ALLOC_SIZECLASS_CNT (%uUL)\n', szc_cnt ); +printf( '#define FD_ALLOC_SIZECLASS_ITER_MAX (%uUL)\n', ceil( log2( szc_cnt ) ) ); +printf( '#define FD_ALLOC_ROOT_SUPERBLOCK_FOOTPRINT (%uUL)\n', max( parent_footprint ) ); +printf( '#define FD_ALLOC_FOOTPRINT_SMALL_THRESH (%uUL)\n', obj_footprint( szc_thresh ) ); +printf( '\n' ); +printf( 'static fd_alloc_sizeclass_cfg_t const fd_alloc_sizeclass_cfg[ FD_ALLOC_SIZECLASS_CNT ] = {\n' ); + +overhead = parent_footprint - obj_cnt.*obj_footprint; % superblock header and superblock trailing padding + +for szc=1:szc_cnt, + printf( ' /* %3u */ { %10uU, (ushort)%3u, (uchar)%3u, (uchar)%3u }, // parent_footprint %10u (padding %u) %s\n', szc-1, obj_footprint(szc), parent_szc(szc)-1, obj_cnt(szc), cgroup_mask(szc), parent_footprint(szc), overhead(szc) - sb_hdr, ifelse( szc_thresh==szc, ' <-- SMALL_THRESH', '' ) ); +endfor +printf( '};\n' ); + +obj_val_max = obj_footprint - alloc_hdr; +obj_val_min = shift(obj_val_max,1) + 1; obj_val_min(1) = 1; +obj_val_avg = 0.5*(obj_val_min+obj_val_max); + +% Compute the amount of storage used by superblock per object + +denom = parent_footprint./obj_cnt; + +% Add in superblock nesting overheads (these are practically negligible) + +amort = obj_cnt; +szc = parent_szc; +while 1, + live = szc<=szc_cnt; + if ~any( live ), break; endif + amort( live ) = amort( live ).*obj_cnt( szc( live ) ); + denom( live ) += overhead( szc( live ) ) ./ amort( live ); + szc ( live ) = parent_szc( szc( live ) ); +endwhile + +eff_min = obj_val_min./denom; +eff_avg = obj_val_avg./denom; +eff_max = obj_val_max./denom; + +szc_idx = 0:(szc_cnt-1); + +subplot(2,1,1); +semilogy( szc_idx, [ obj_val_min; obj_val_avg; obj_val_max ] ); +axis tight; +grid; +vv = axis; hold on; semilogy( [ szc_thresh szc_thresh ], [vv(3) vv(4)] ); hold off; +xlabel( 'sizeclass index' ); +ylabel( 'object size (min/avg/max)' ); + +subplot(2,1,2); +semilogy( szc_idx, 1 - [eff_min; eff_avg; eff_max] ); +axis tight; +grid; +vv = axis; hold on; semilogy( [ szc_thresh szc_thresh ], [vv(3) vv(4)] ); hold off; +xlabel( 'sizeclass index' ); +ylabel( 'footprint overhead frac (min/avg/max)' ); diff --git a/src/util/alloc/test_alloc.c b/src/util/alloc/test_alloc.c index 915e73526e0..e8387b80ac5 100644 --- a/src/util/alloc/test_alloc.c +++ b/src/util/alloc/test_alloc.c @@ -1,31 +1,31 @@ -#define _POSIX_C_SOURCE 200809L /* open_memstream */ #include "../fd_util.h" -#include -#include #if FD_HAS_HOSTED -FD_STATIC_ASSERT( FD_ALLOC_ALIGN == 4096UL, unit_test ); -FD_STATIC_ASSERT( FD_ALLOC_FOOTPRINT ==20480UL, unit_test ); +/* FIXME: consider moving declaration of fd_alloc_fprintf into an + fd_alloc_private.h? (Or using a void * to get rid of stdio.h). */ + +#include + +int +fd_alloc_fprintf( fd_alloc_t * join, + FILE * stream ); + +/* FIXME: ADD INTERPROCESS TESTING MODES TOO. */ + +FD_STATIC_ASSERT( FD_ALLOC_ALIGN == 128UL, unit_test ); +FD_STATIC_ASSERT( FD_ALLOC_FOOTPRINT ==32768UL, unit-test ); FD_STATIC_ASSERT( FD_ALLOC_MALLOC_ALIGN_DEFAULT== 16UL, unit_test ); FD_STATIC_ASSERT( FD_ALLOC_JOIN_CGROUP_HINT_MAX== 15UL, unit_test ); -/* This is a torture test for same thread allocation */ -/* FIXME: IDEALLY SHOULD ADD TORTURE TEST FOR MALLOC / FREE PAIRS SPLIT - BETWEEN THREADS AND ADD ADD INTERPROCESS TESTING MODES. */ - static int _go; static void * _shalloc; static ulong _alloc_cnt; static ulong _align_max; static ulong _sz_max; -/* TODO consider moving declaration of fd_alloc_fprintf into an - fd_tile_private.h */ - -int -fd_alloc_fprintf( fd_alloc_t * join, - FILE * stream ); +/* This is a torture test for concurrent allocation where free is done + on the same that did the alloc. */ static int test_main( int argc, @@ -33,23 +33,20 @@ test_main( int argc, (void)argc; (void)argv; ulong tile_idx = fd_tile_idx(); + ulong tile_cnt = fd_tile_cnt(); (void)tile_cnt; void * shalloc = FD_VOLATILE_CONST( _shalloc ); ulong alloc_cnt = FD_VOLATILE_CONST( _alloc_cnt ); ulong align_max = FD_VOLATILE_CONST( _align_max ); ulong sz_max = FD_VOLATILE_CONST( _sz_max ); - ulong print_interval = (1UL<>2, 1 )); - ulong FD_FN_UNUSED print_mask = (print_interval<<1)-1UL; - fd_rng_t _rng[1]; fd_rng_t * rng = fd_rng_join( fd_rng_new( _rng, (uint)tile_idx, 0UL ) ); fd_alloc_t * alloc = fd_alloc_join( shalloc, tile_idx ); - FD_TEST( fd_alloc_join_cgroup_hint( alloc )==(tile_idx & FD_ALLOC_JOIN_CGROUP_HINT_MAX) ); - FD_TEST( fd_alloc_join_cgroup_hint( fd_alloc_join_cgroup_hint_set( alloc, 1UL ) )==1UL ); # define OUTSTANDING_MAX 128UL + ulong sz [ OUTSTANDING_MAX ]; uchar * mem[ OUTSTANDING_MAX ]; ulong pat[ OUTSTANDING_MAX ]; @@ -60,22 +57,16 @@ test_main( int argc, while( !FD_VOLATILE( _go ) ) FD_SPIN_PAUSE(); - for( ulong i=0UL; i<2UL*alloc_cnt; i++ ) { - - #if !FD_HAS_DEEPASAN - if( (i & print_mask)==print_interval ) { - char * info = NULL; - ulong info_sz = 0UL; - FILE * stream = open_memstream( &info, &info_sz ); - FD_TEST( stream ); - int print_sz = fd_alloc_fprintf( alloc, stream ); - FD_TEST( print_sz>0 ); - FD_TEST( 0==fclose( stream ) ); - FD_LOG_INFO(( "fd_alloc_fprintf printed %lu bytes", info_sz )); - FD_LOG_DEBUG(( "fd_alloc_fprintf said:\n%*s", (int)(info_sz&INT_MAX), info )); - free( info ); + ulong diag_rem = 0UL; + for( ulong i=0UL; i<(2UL*alloc_cnt); i++ ) { + if( FD_UNLIKELY( !diag_rem ) ) { + if( FD_UNLIKELY( !tile_idx ) ) { + FD_LOG_NOTICE(( "Iter %lu of %lu", i, 2UL*alloc_cnt )); + FD_TEST( fd_alloc_fprintf( alloc, stdout )>0 ); + } + diag_rem = 500000UL; } - #endif + diag_rem--; /* Determine if we should alloc or free this iteration. If j==0, there are no outstanding allocs to free so we must alloc. If @@ -96,21 +87,15 @@ test_main( int argc, ulong align = fd_ulong_if( lg_align==lg_align_max+1, 0UL, 1UL<0 ); + } + diag_rem = 500000UL; + } + diag_rem--; /* Pick a random slot and lock it */ @@ -235,6 +240,10 @@ test2_main( int argc, ulong max; mem = (uchar *)fd_alloc_malloc_at_least( alloc, align, sz, &max ); +# if FD_HAS_DEEPASAN + if( mem && max ) FD_TEST( !fd_asan_query( mem, max ) ); +# endif + /* Check if the value is sane */ if( !sz && mem ) @@ -273,13 +282,24 @@ test2_main( int argc, ulong b; for( b=0UL; (b+7UL) block_footprint_prev ); /* Sorted by block_footprint */ + FD_TEST( fd_ulong_is_aligned( block_footprint, FD_ALLOC_SUPERBLOCK_ALIGN ) ); /* Valid block_footprint */ + FD_TEST( (2UL<=block_cnt) & (block_cnt<=64UL) ); /* Valid block_cnt */ + FD_TEST( (cgroup_mask<=FD_ALLOC_JOIN_CGROUP_HINT_MAX) & fd_ulong_is_pow2( cgroup_mask+1UL ) ); /* Valid cgroup_mask */ + + /* parent_sizeclass blocks can only a superblock for this sizeclass */ + ulong superblock_footprint = 24UL + block_footprint*block_cnt; + if( FD_LIKELY( (sizeclass Date: Thu, 11 Jun 2026 23:34:40 +0000 Subject: [PATCH 03/61] fd_alloc: minor follow-up upgrades --- src/util/alloc/fd_alloc.c | 13 +- src/util/alloc/fd_alloc.h | 9 +- src/util/alloc/fd_alloc_cfg.h | 11 ++ src/util/alloc/fd_alloc_cfg_large.h | 218 ++++++++++++++-------------- src/util/alloc/gen_szc_cfg.m | 2 +- src/util/alloc/test_alloc.c | 8 +- 6 files changed, 137 insertions(+), 124 deletions(-) diff --git a/src/util/alloc/fd_alloc.c b/src/util/alloc/fd_alloc.c index b2cc98b18dc..c2373827d26 100644 --- a/src/util/alloc/fd_alloc.c +++ b/src/util/alloc/fd_alloc.c @@ -136,7 +136,7 @@ typedef uint fd_alloc_hdr_t; #define FD_ALLOC_HDR_TYPE_NEST_SUPERBLOCK (2) /* This is a superblock contained in a (larger) superblock */ #define FD_ALLOC_HDR_TYPE_ROOT_SUPERBLOCK (3) /* This is a superblock contained in a workspace partition */ -/* fd_alloc_hdr pack a (type,idx,off) tuple into a fd_alloc_hdr_t. +/* fd_alloc_hdr packs a (type,idx,off) tuple into a fd_alloc_hdr_t. fd_alloc_hdr_{type,idx,off} unpack the corresponding field from a fd_alloc_hdr_t. */ @@ -195,10 +195,10 @@ struct __attribute__((aligned(FD_ALLOC_SUPERBLOCK_ALIGN))) fd_alloc_superblock { ushort sizeclass; /* superblock sizeclass, in [0,FD_ALLOC_SIZECLASS_CNT) */ uchar block_cnt; /* ==fd_alloc_sizeclass_cfg[ sizeclass ].block_cnt */ uchar cgroup_mask; /* ==fd_alloc_sizeclass_cfg[ sizeclass ].cgroup_mask */ - fd_alloc_block_set_t free_blocks; /* which blocks in this superblock are allocated */ + fd_alloc_block_set_t free_blocks; /* which blocks in this superblock are free */ ulong next_gaddr; /* if on the inactive superblock stack, next inactive superblock or NULL, ignored o.w. */ - /* TODO: consider making make a ulong bit packed tuple for + /* TODO: consider making a ulong bit-packed tuple for (sizeclass,block_cnt,cgroup_mask) and adding a cgroup_hint to it? */ /* Storage for blocks follows */ @@ -1203,7 +1203,7 @@ fd_alloc_is_empty( fd_alloc_t * join ) { from concurrent operations changing allocations while they are being analyzed by the below). - IMPORTANT SAFETY TIP! fd_alloc_printf can generate ASAN errors if + IMPORTANT SAFETY TIP! fd_alloc_fprintf can generate ASAN errors if run concurrently under ASAN because concurrent operations might poison regions of the wksp as they are being analyzed by the below. Hence the below functions are marked as FD_FN_NO_ASAN. Similar @@ -1371,6 +1371,7 @@ fd_alloc_private_superblock_fprintf( FILE * stream, /* Stre } } +# undef SB_TEST # undef EMIT return cnt; @@ -1550,7 +1551,7 @@ fd_alloc_fprintf( fd_alloc_t * join, look like a header (in which case, this logic will compute the wrong location / max for the user large allocation. This can be avoided by clearing the alignment padding in - fd_malloc_align_at_least. Once we have a plausible location + fd_alloc_malloc_at_least. Once we have a plausible location for the user's large alloc, we can compute bounds to how large a size was used. We use the upper bound the size estimate for simplicity (it would take a lot more space and @@ -1603,5 +1604,7 @@ fd_alloc_fprintf( fd_alloc_t * join, ctr[0], ctr[0] ? " (highly likely spurious if running concurrent and/or with dirty align padding)" : "", ctr[1], ctr[2], ctr[3], ctr[4], ctr[5] ) ); +# undef EMIT + return (int)fd_ulong_min( cnt, (ulong)INT_MAX ); } diff --git a/src/util/alloc/fd_alloc.h b/src/util/alloc/fd_alloc.h index 2ee6922bf5c..cfa6c9a55d0 100644 --- a/src/util/alloc/fd_alloc.h +++ b/src/util/alloc/fd_alloc.h @@ -123,7 +123,7 @@ /* FD_ALLOC_{ALIGN,FOOTPRINT} give the required alignment and footprint needed for a wksp allocation to be suitable as a fd_alloc. ALIGN is - an integer pointer of 2 and FOOTPRINT is an integer multiple of + an integer power of 2 and FOOTPRINT is an integer multiple of ALIGN. These are provided to facilitate compile time declarations. */ #define FD_ALLOC_ALIGN (128UL) @@ -226,10 +226,9 @@ fd_alloc_private_wksp( fd_alloc_t * alloc ) { - level>1 indicates to do a deep cleanup. This will free all wksp locations that match fd_alloc's wksp tag. IMPORTANT SAFETY TIP! - If shalloc was allocated with the same tag, this also will also - free shalloc too! IMPORTANT SAFETY TIP! Tf any other wksp - allocations used this tag, this will also free all those - allocations too! */ + If shalloc was allocated with the same tag, this will also free + shalloc too! IMPORTANT SAFETY TIP! If any other wksp allocations + used this tag, this will also free all those allocations too! */ void * fd_alloc_private_delete( void * shalloc, diff --git a/src/util/alloc/fd_alloc_cfg.h b/src/util/alloc/fd_alloc_cfg.h index 9ba1f7341d5..cb725983b86 100644 --- a/src/util/alloc/fd_alloc_cfg.h +++ b/src/util/alloc/fd_alloc_cfg.h @@ -1,3 +1,6 @@ +#ifndef HEADER_fd_src_util_alloc_fd_alloc_cfg_h +#define HEADER_fd_src_util_alloc_fd_alloc_cfg_h + struct __attribute__((aligned(8))) fd_alloc_sizeclass_cfg { uint block_footprint; ushort parent_sizeclass; @@ -7,4 +10,12 @@ struct __attribute__((aligned(8))) fd_alloc_sizeclass_cfg { typedef struct fd_alloc_sizeclass_cfg fd_alloc_sizeclass_cfg_t; +#if FD_HAS_ALLOC_CFG_LARGE +/* When selecting cfg_large, please make sure that all instances are + assigned sufficient memory in workspace. */ #include "fd_alloc_cfg_large.h" +#else +#include "fd_alloc_cfg_small.h" +#endif + +#endif /* HEADER_fd_src_util_alloc_fd_alloc_cfg_h */ diff --git a/src/util/alloc/fd_alloc_cfg_large.h b/src/util/alloc/fd_alloc_cfg_large.h index 408aab01a4f..9a853da4b61 100644 --- a/src/util/alloc/fd_alloc_cfg_large.h +++ b/src/util/alloc/fd_alloc_cfg_large.h @@ -18,114 +18,114 @@ #define FD_ALLOC_FOOTPRINT_SMALL_THRESH (11184800UL) static fd_alloc_sizeclass_cfg_t const fd_alloc_sizeclass_cfg[ FD_ALLOC_SIZECLASS_CNT ] = { - /* 0 */ { 8U, (ushort) 17, (uchar) 25, (uchar) 15 }, // parent_footprint 224 (padding 0) - /* 1 */ { 16U, (ushort) 17, (uchar) 12, (uchar) 15 }, // parent_footprint 224 (padding 8) - /* 2 */ { 24U, (ushort) 17, (uchar) 8, (uchar) 15 }, // parent_footprint 224 (padding 8) - /* 3 */ { 32U, (ushort) 36, (uchar) 63, (uchar) 15 }, // parent_footprint 2040 (padding 0) - /* 4 */ { 40U, (ushort) 36, (uchar) 50, (uchar) 15 }, // parent_footprint 2040 (padding 16) - /* 5 */ { 48U, (ushort) 36, (uchar) 42, (uchar) 15 }, // parent_footprint 2040 (padding 0) - /* 6 */ { 56U, (ushort) 36, (uchar) 36, (uchar) 15 }, // parent_footprint 2040 (padding 0) - /* 7 */ { 64U, (ushort) 36, (uchar) 31, (uchar) 15 }, // parent_footprint 2040 (padding 32) - /* 8 */ { 72U, (ushort) 36, (uchar) 28, (uchar) 15 }, // parent_footprint 2040 (padding 0) - /* 9 */ { 80U, (ushort) 36, (uchar) 25, (uchar) 15 }, // parent_footprint 2040 (padding 16) - /* 10 */ { 88U, (ushort) 36, (uchar) 22, (uchar) 15 }, // parent_footprint 2040 (padding 80) - /* 11 */ { 104U, (ushort) 36, (uchar) 19, (uchar) 15 }, // parent_footprint 2040 (padding 40) - /* 12 */ { 112U, (ushort) 36, (uchar) 18, (uchar) 15 }, // parent_footprint 2040 (padding 0) - /* 13 */ { 128U, (ushort) 36, (uchar) 15, (uchar) 15 }, // parent_footprint 2040 (padding 96) - /* 14 */ { 144U, (ushort) 36, (uchar) 14, (uchar) 15 }, // parent_footprint 2040 (padding 0) - /* 15 */ { 168U, (ushort) 36, (uchar) 12, (uchar) 15 }, // parent_footprint 2040 (padding 0) - /* 16 */ { 200U, (ushort) 36, (uchar) 10, (uchar) 15 }, // parent_footprint 2040 (padding 16) - /* 17 */ { 224U, (ushort) 36, (uchar) 9, (uchar) 15 }, // parent_footprint 2040 (padding 0) - /* 18 */ { 248U, (ushort) 36, (uchar) 8, (uchar) 15 }, // parent_footprint 2040 (padding 32) - /* 19 */ { 264U, (ushort) 54, (uchar) 61, (uchar) 15 }, // parent_footprint 16376 (padding 248) - /* 20 */ { 296U, (ushort) 54, (uchar) 55, (uchar) 15 }, // parent_footprint 16376 (padding 72) - /* 21 */ { 328U, (ushort) 54, (uchar) 49, (uchar) 15 }, // parent_footprint 16376 (padding 280) - /* 22 */ { 368U, (ushort) 54, (uchar) 44, (uchar) 15 }, // parent_footprint 16376 (padding 160) - /* 23 */ { 416U, (ushort) 54, (uchar) 39, (uchar) 15 }, // parent_footprint 16376 (padding 128) - /* 24 */ { 480U, (ushort) 54, (uchar) 34, (uchar) 15 }, // parent_footprint 16376 (padding 32) - /* 25 */ { 544U, (ushort) 54, (uchar) 30, (uchar) 15 }, // parent_footprint 16376 (padding 32) - /* 26 */ { 600U, (ushort) 54, (uchar) 27, (uchar) 15 }, // parent_footprint 16376 (padding 152) - /* 27 */ { 680U, (ushort) 54, (uchar) 24, (uchar) 15 }, // parent_footprint 16376 (padding 32) - /* 28 */ { 776U, (ushort) 54, (uchar) 21, (uchar) 15 }, // parent_footprint 16376 (padding 56) - /* 29 */ { 856U, (ushort) 54, (uchar) 19, (uchar) 15 }, // parent_footprint 16376 (padding 88) - /* 30 */ { 960U, (ushort) 54, (uchar) 17, (uchar) 15 }, // parent_footprint 16376 (padding 32) - /* 31 */ { 1088U, (ushort) 54, (uchar) 15, (uchar) 15 }, // parent_footprint 16376 (padding 32) - /* 32 */ { 1256U, (ushort) 54, (uchar) 13, (uchar) 15 }, // parent_footprint 16376 (padding 24) - /* 33 */ { 1360U, (ushort) 54, (uchar) 12, (uchar) 15 }, // parent_footprint 16376 (padding 32) - /* 34 */ { 1632U, (ushort) 54, (uchar) 10, (uchar) 15 }, // parent_footprint 16376 (padding 32) - /* 35 */ { 1816U, (ushort) 54, (uchar) 9, (uchar) 15 }, // parent_footprint 16376 (padding 8) - /* 36 */ { 2040U, (ushort) 54, (uchar) 8, (uchar) 15 }, // parent_footprint 16376 (padding 32) - /* 37 */ { 2184U, (ushort) 71, (uchar) 60, (uchar) 7 }, // parent_footprint 131064 (padding 0) - /* 38 */ { 2472U, (ushort) 71, (uchar) 53, (uchar) 7 }, // parent_footprint 131064 (padding 24) - /* 39 */ { 2784U, (ushort) 71, (uchar) 47, (uchar) 7 }, // parent_footprint 131064 (padding 192) - /* 40 */ { 3120U, (ushort) 71, (uchar) 42, (uchar) 7 }, // parent_footprint 131064 (padding 0) - /* 41 */ { 3536U, (ushort) 71, (uchar) 37, (uchar) 7 }, // parent_footprint 131064 (padding 208) - /* 42 */ { 3968U, (ushort) 71, (uchar) 33, (uchar) 7 }, // parent_footprint 131064 (padding 96) - /* 43 */ { 4512U, (ushort) 71, (uchar) 29, (uchar) 7 }, // parent_footprint 131064 (padding 192) - /* 44 */ { 5040U, (ushort) 71, (uchar) 26, (uchar) 7 }, // parent_footprint 131064 (padding 0) - /* 45 */ { 5696U, (ushort) 71, (uchar) 23, (uchar) 7 }, // parent_footprint 131064 (padding 32) - /* 46 */ { 6552U, (ushort) 71, (uchar) 20, (uchar) 7 }, // parent_footprint 131064 (padding 0) - /* 47 */ { 7280U, (ushort) 71, (uchar) 18, (uchar) 7 }, // parent_footprint 131064 (padding 0) - /* 48 */ { 8184U, (ushort) 71, (uchar) 16, (uchar) 7 }, // parent_footprint 131064 (padding 96) - /* 49 */ { 9360U, (ushort) 71, (uchar) 14, (uchar) 7 }, // parent_footprint 131064 (padding 0) - /* 50 */ { 10080U, (ushort) 71, (uchar) 13, (uchar) 7 }, // parent_footprint 131064 (padding 0) - /* 51 */ { 11912U, (ushort) 71, (uchar) 11, (uchar) 7 }, // parent_footprint 131064 (padding 8) - /* 52 */ { 13104U, (ushort) 71, (uchar) 10, (uchar) 7 }, // parent_footprint 131064 (padding 0) - /* 53 */ { 14560U, (ushort) 71, (uchar) 9, (uchar) 7 }, // parent_footprint 131064 (padding 0) - /* 54 */ { 16376U, (ushort) 71, (uchar) 8, (uchar) 7 }, // parent_footprint 131064 (padding 32) - /* 55 */ { 18392U, (ushort) 89, (uchar) 57, (uchar) 3 }, // parent_footprint 1048568 (padding 200) - /* 56 */ { 20552U, (ushort) 89, (uchar) 51, (uchar) 3 }, // parent_footprint 1048568 (padding 392) - /* 57 */ { 23296U, (ushort) 89, (uchar) 45, (uchar) 3 }, // parent_footprint 1048568 (padding 224) - /* 58 */ { 26208U, (ushort) 89, (uchar) 40, (uchar) 3 }, // parent_footprint 1048568 (padding 224) - /* 59 */ { 29120U, (ushort) 89, (uchar) 36, (uchar) 3 }, // parent_footprint 1048568 (padding 224) - /* 60 */ { 32760U, (ushort) 89, (uchar) 32, (uchar) 3 }, // parent_footprint 1048568 (padding 224) - /* 61 */ { 37448U, (ushort) 89, (uchar) 28, (uchar) 3 }, // parent_footprint 1048568 (padding 0) - /* 62 */ { 41936U, (ushort) 89, (uchar) 25, (uchar) 3 }, // parent_footprint 1048568 (padding 144) - /* 63 */ { 47656U, (ushort) 89, (uchar) 22, (uchar) 3 }, // parent_footprint 1048568 (padding 112) - /* 64 */ { 52424U, (ushort) 89, (uchar) 20, (uchar) 3 }, // parent_footprint 1048568 (padding 64) - /* 65 */ { 61672U, (ushort) 89, (uchar) 17, (uchar) 3 }, // parent_footprint 1048568 (padding 120) - /* 66 */ { 69896U, (ushort) 89, (uchar) 15, (uchar) 3 }, // parent_footprint 1048568 (padding 104) - /* 67 */ { 74896U, (ushort) 89, (uchar) 14, (uchar) 3 }, // parent_footprint 1048568 (padding 0) - /* 68 */ { 87376U, (ushort) 89, (uchar) 12, (uchar) 3 }, // parent_footprint 1048568 (padding 32) - /* 69 */ { 95320U, (ushort) 89, (uchar) 11, (uchar) 3 }, // parent_footprint 1048568 (padding 24) - /* 70 */ { 116504U, (ushort) 89, (uchar) 9, (uchar) 3 }, // parent_footprint 1048568 (padding 8) - /* 71 */ { 131064U, (ushort) 89, (uchar) 8, (uchar) 3 }, // parent_footprint 1048568 (padding 32) - /* 72 */ { 135296U, (ushort)107, (uchar) 62, (uchar) 1 }, // parent_footprint 8388600 (padding 224) - /* 73 */ { 152512U, (ushort)107, (uchar) 55, (uchar) 1 }, // parent_footprint 8388600 (padding 416) - /* 74 */ { 171192U, (ushort)107, (uchar) 49, (uchar) 1 }, // parent_footprint 8388600 (padding 168) - /* 75 */ { 195080U, (ushort)107, (uchar) 43, (uchar) 1 }, // parent_footprint 8388600 (padding 136) - /* 76 */ { 215088U, (ushort)107, (uchar) 39, (uchar) 1 }, // parent_footprint 8388600 (padding 144) - /* 77 */ { 246720U, (ushort)107, (uchar) 34, (uchar) 1 }, // parent_footprint 8388600 (padding 96) - /* 78 */ { 279616U, (ushort)107, (uchar) 30, (uchar) 1 }, // parent_footprint 8388600 (padding 96) - /* 79 */ { 310688U, (ushort)107, (uchar) 27, (uchar) 1 }, // parent_footprint 8388600 (padding 0) - /* 80 */ { 349520U, (ushort)107, (uchar) 24, (uchar) 1 }, // parent_footprint 8388600 (padding 96) - /* 81 */ { 399456U, (ushort)107, (uchar) 21, (uchar) 1 }, // parent_footprint 8388600 (padding 0) - /* 82 */ { 441504U, (ushort)107, (uchar) 19, (uchar) 1 }, // parent_footprint 8388600 (padding 0) - /* 83 */ { 493440U, (ushort)107, (uchar) 17, (uchar) 1 }, // parent_footprint 8388600 (padding 96) - /* 84 */ { 559232U, (ushort)107, (uchar) 15, (uchar) 1 }, // parent_footprint 8388600 (padding 96) - /* 85 */ { 645272U, (ushort)107, (uchar) 13, (uchar) 1 }, // parent_footprint 8388600 (padding 40) - /* 86 */ { 699048U, (ushort)107, (uchar) 12, (uchar) 1 }, // parent_footprint 8388600 (padding 0) - /* 87 */ { 838856U, (ushort)107, (uchar) 10, (uchar) 1 }, // parent_footprint 8388600 (padding 16) - /* 88 */ { 932064U, (ushort)107, (uchar) 9, (uchar) 1 }, // parent_footprint 8388600 (padding 0) - /* 89 */ { 1048568U, (ushort)107, (uchar) 8, (uchar) 1 }, // parent_footprint 8388600 (padding 32) - /* 90 */ { 1137432U, (ushort)110, (uchar) 59, (uchar) 0 }, // parent_footprint 67108864 (padding 352) - /* 91 */ { 1266200U, (ushort)110, (uchar) 53, (uchar) 0 }, // parent_footprint 67108864 (padding 240) - /* 92 */ { 1427840U, (ushort)110, (uchar) 47, (uchar) 0 }, // parent_footprint 67108864 (padding 360) - /* 93 */ { 1597824U, (ushort)110, (uchar) 42, (uchar) 0 }, // parent_footprint 67108864 (padding 232) - /* 94 */ { 1813752U, (ushort)110, (uchar) 37, (uchar) 0 }, // parent_footprint 67108864 (padding 16) - /* 95 */ { 2033600U, (ushort)110, (uchar) 33, (uchar) 0 }, // parent_footprint 67108864 (padding 40) - /* 96 */ { 2314096U, (ushort)110, (uchar) 29, (uchar) 0 }, // parent_footprint 67108864 (padding 56) - /* 97 */ { 2581104U, (ushort)110, (uchar) 26, (uchar) 0 }, // parent_footprint 67108864 (padding 136) - /* 98 */ { 2917768U, (ushort)110, (uchar) 23, (uchar) 0 }, // parent_footprint 67108864 (padding 176) - /* 99 */ { 3355440U, (ushort)110, (uchar) 20, (uchar) 0 }, // parent_footprint 67108864 (padding 40) - /* 100 */ { 3728264U, (ushort)110, (uchar) 18, (uchar) 0 }, // parent_footprint 67108864 (padding 88) - /* 101 */ { 4194296U, (ushort)110, (uchar) 16, (uchar) 0 }, // parent_footprint 67108864 (padding 104) - /* 102 */ { 4793488U, (ushort)110, (uchar) 14, (uchar) 0 }, // parent_footprint 67108864 (padding 8) - /* 103 */ { 5592400U, (ushort)110, (uchar) 12, (uchar) 0 }, // parent_footprint 67108864 (padding 40) - /* 104 */ { 6100800U, (ushort)110, (uchar) 11, (uchar) 0 }, // parent_footprint 67108864 (padding 40) - /* 105 */ { 6710880U, (ushort)110, (uchar) 10, (uchar) 0 }, // parent_footprint 67108864 (padding 40) - /* 106 */ { 7456536U, (ushort)110, (uchar) 9, (uchar) 0 }, // parent_footprint 67108864 (padding 16) - /* 107 */ { 8388600U, (ushort)110, (uchar) 8, (uchar) 0 }, // parent_footprint 67108864 (padding 40) - /* 108 */ { 9586976U, (ushort)110, (uchar) 7, (uchar) 0 }, // parent_footprint 67108864 (padding 8) + /* 0 */ { 8U, (ushort) 17, (uchar) 25, (uchar) 15 }, // parent_footprint 224 (padding 0) + /* 1 */ { 16U, (ushort) 17, (uchar) 12, (uchar) 15 }, // parent_footprint 224 (padding 8) + /* 2 */ { 24U, (ushort) 17, (uchar) 8, (uchar) 15 }, // parent_footprint 224 (padding 8) + /* 3 */ { 32U, (ushort) 36, (uchar) 63, (uchar) 15 }, // parent_footprint 2040 (padding 0) + /* 4 */ { 40U, (ushort) 36, (uchar) 50, (uchar) 15 }, // parent_footprint 2040 (padding 16) + /* 5 */ { 48U, (ushort) 36, (uchar) 42, (uchar) 15 }, // parent_footprint 2040 (padding 0) + /* 6 */ { 56U, (ushort) 36, (uchar) 36, (uchar) 15 }, // parent_footprint 2040 (padding 0) + /* 7 */ { 64U, (ushort) 36, (uchar) 31, (uchar) 15 }, // parent_footprint 2040 (padding 32) + /* 8 */ { 72U, (ushort) 36, (uchar) 28, (uchar) 15 }, // parent_footprint 2040 (padding 0) + /* 9 */ { 80U, (ushort) 36, (uchar) 25, (uchar) 15 }, // parent_footprint 2040 (padding 16) + /* 10 */ { 88U, (ushort) 36, (uchar) 22, (uchar) 15 }, // parent_footprint 2040 (padding 80) + /* 11 */ { 104U, (ushort) 36, (uchar) 19, (uchar) 15 }, // parent_footprint 2040 (padding 40) + /* 12 */ { 112U, (ushort) 36, (uchar) 18, (uchar) 15 }, // parent_footprint 2040 (padding 0) + /* 13 */ { 128U, (ushort) 36, (uchar) 15, (uchar) 15 }, // parent_footprint 2040 (padding 96) + /* 14 */ { 144U, (ushort) 36, (uchar) 14, (uchar) 15 }, // parent_footprint 2040 (padding 0) + /* 15 */ { 168U, (ushort) 36, (uchar) 12, (uchar) 15 }, // parent_footprint 2040 (padding 0) + /* 16 */ { 200U, (ushort) 36, (uchar) 10, (uchar) 15 }, // parent_footprint 2040 (padding 16) + /* 17 */ { 224U, (ushort) 36, (uchar) 9, (uchar) 15 }, // parent_footprint 2040 (padding 0) + /* 18 */ { 248U, (ushort) 36, (uchar) 8, (uchar) 15 }, // parent_footprint 2040 (padding 32) + /* 19 */ { 264U, (ushort) 54, (uchar) 61, (uchar) 15 }, // parent_footprint 16376 (padding 248) + /* 20 */ { 296U, (ushort) 54, (uchar) 55, (uchar) 15 }, // parent_footprint 16376 (padding 72) + /* 21 */ { 328U, (ushort) 54, (uchar) 49, (uchar) 15 }, // parent_footprint 16376 (padding 280) + /* 22 */ { 368U, (ushort) 54, (uchar) 44, (uchar) 15 }, // parent_footprint 16376 (padding 160) + /* 23 */ { 416U, (ushort) 54, (uchar) 39, (uchar) 15 }, // parent_footprint 16376 (padding 128) + /* 24 */ { 480U, (ushort) 54, (uchar) 34, (uchar) 15 }, // parent_footprint 16376 (padding 32) + /* 25 */ { 544U, (ushort) 54, (uchar) 30, (uchar) 15 }, // parent_footprint 16376 (padding 32) + /* 26 */ { 600U, (ushort) 54, (uchar) 27, (uchar) 15 }, // parent_footprint 16376 (padding 152) + /* 27 */ { 680U, (ushort) 54, (uchar) 24, (uchar) 15 }, // parent_footprint 16376 (padding 32) + /* 28 */ { 776U, (ushort) 54, (uchar) 21, (uchar) 15 }, // parent_footprint 16376 (padding 56) + /* 29 */ { 856U, (ushort) 54, (uchar) 19, (uchar) 15 }, // parent_footprint 16376 (padding 88) + /* 30 */ { 960U, (ushort) 54, (uchar) 17, (uchar) 15 }, // parent_footprint 16376 (padding 32) + /* 31 */ { 1088U, (ushort) 54, (uchar) 15, (uchar) 15 }, // parent_footprint 16376 (padding 32) + /* 32 */ { 1256U, (ushort) 54, (uchar) 13, (uchar) 15 }, // parent_footprint 16376 (padding 24) + /* 33 */ { 1360U, (ushort) 54, (uchar) 12, (uchar) 15 }, // parent_footprint 16376 (padding 32) + /* 34 */ { 1632U, (ushort) 54, (uchar) 10, (uchar) 15 }, // parent_footprint 16376 (padding 32) + /* 35 */ { 1816U, (ushort) 54, (uchar) 9, (uchar) 15 }, // parent_footprint 16376 (padding 8) + /* 36 */ { 2040U, (ushort) 54, (uchar) 8, (uchar) 15 }, // parent_footprint 16376 (padding 32) + /* 37 */ { 2184U, (ushort) 71, (uchar) 60, (uchar) 7 }, // parent_footprint 131064 (padding 0) + /* 38 */ { 2472U, (ushort) 71, (uchar) 53, (uchar) 7 }, // parent_footprint 131064 (padding 24) + /* 39 */ { 2784U, (ushort) 71, (uchar) 47, (uchar) 7 }, // parent_footprint 131064 (padding 192) + /* 40 */ { 3120U, (ushort) 71, (uchar) 42, (uchar) 7 }, // parent_footprint 131064 (padding 0) + /* 41 */ { 3536U, (ushort) 71, (uchar) 37, (uchar) 7 }, // parent_footprint 131064 (padding 208) + /* 42 */ { 3968U, (ushort) 71, (uchar) 33, (uchar) 7 }, // parent_footprint 131064 (padding 96) + /* 43 */ { 4512U, (ushort) 71, (uchar) 29, (uchar) 7 }, // parent_footprint 131064 (padding 192) + /* 44 */ { 5040U, (ushort) 71, (uchar) 26, (uchar) 7 }, // parent_footprint 131064 (padding 0) + /* 45 */ { 5696U, (ushort) 71, (uchar) 23, (uchar) 7 }, // parent_footprint 131064 (padding 32) + /* 46 */ { 6552U, (ushort) 71, (uchar) 20, (uchar) 7 }, // parent_footprint 131064 (padding 0) + /* 47 */ { 7280U, (ushort) 71, (uchar) 18, (uchar) 7 }, // parent_footprint 131064 (padding 0) + /* 48 */ { 8184U, (ushort) 71, (uchar) 16, (uchar) 7 }, // parent_footprint 131064 (padding 96) + /* 49 */ { 9360U, (ushort) 71, (uchar) 14, (uchar) 7 }, // parent_footprint 131064 (padding 0) + /* 50 */ { 10080U, (ushort) 71, (uchar) 13, (uchar) 7 }, // parent_footprint 131064 (padding 0) + /* 51 */ { 11912U, (ushort) 71, (uchar) 11, (uchar) 7 }, // parent_footprint 131064 (padding 8) + /* 52 */ { 13104U, (ushort) 71, (uchar) 10, (uchar) 7 }, // parent_footprint 131064 (padding 0) + /* 53 */ { 14560U, (ushort) 71, (uchar) 9, (uchar) 7 }, // parent_footprint 131064 (padding 0) + /* 54 */ { 16376U, (ushort) 71, (uchar) 8, (uchar) 7 }, // parent_footprint 131064 (padding 32) + /* 55 */ { 18392U, (ushort) 89, (uchar) 57, (uchar) 3 }, // parent_footprint 1048568 (padding 200) + /* 56 */ { 20552U, (ushort) 89, (uchar) 51, (uchar) 3 }, // parent_footprint 1048568 (padding 392) + /* 57 */ { 23296U, (ushort) 89, (uchar) 45, (uchar) 3 }, // parent_footprint 1048568 (padding 224) + /* 58 */ { 26208U, (ushort) 89, (uchar) 40, (uchar) 3 }, // parent_footprint 1048568 (padding 224) + /* 59 */ { 29120U, (ushort) 89, (uchar) 36, (uchar) 3 }, // parent_footprint 1048568 (padding 224) + /* 60 */ { 32760U, (ushort) 89, (uchar) 32, (uchar) 3 }, // parent_footprint 1048568 (padding 224) + /* 61 */ { 37448U, (ushort) 89, (uchar) 28, (uchar) 3 }, // parent_footprint 1048568 (padding 0) + /* 62 */ { 41936U, (ushort) 89, (uchar) 25, (uchar) 3 }, // parent_footprint 1048568 (padding 144) + /* 63 */ { 47656U, (ushort) 89, (uchar) 22, (uchar) 3 }, // parent_footprint 1048568 (padding 112) + /* 64 */ { 52424U, (ushort) 89, (uchar) 20, (uchar) 3 }, // parent_footprint 1048568 (padding 64) + /* 65 */ { 61672U, (ushort) 89, (uchar) 17, (uchar) 3 }, // parent_footprint 1048568 (padding 120) + /* 66 */ { 69896U, (ushort) 89, (uchar) 15, (uchar) 3 }, // parent_footprint 1048568 (padding 104) + /* 67 */ { 74896U, (ushort) 89, (uchar) 14, (uchar) 3 }, // parent_footprint 1048568 (padding 0) + /* 68 */ { 87376U, (ushort) 89, (uchar) 12, (uchar) 3 }, // parent_footprint 1048568 (padding 32) + /* 69 */ { 95320U, (ushort) 89, (uchar) 11, (uchar) 3 }, // parent_footprint 1048568 (padding 24) + /* 70 */ { 116504U, (ushort) 89, (uchar) 9, (uchar) 3 }, // parent_footprint 1048568 (padding 8) + /* 71 */ { 131064U, (ushort) 89, (uchar) 8, (uchar) 3 }, // parent_footprint 1048568 (padding 32) + /* 72 */ { 135296U, (ushort)107, (uchar) 62, (uchar) 1 }, // parent_footprint 8388600 (padding 224) + /* 73 */ { 152512U, (ushort)107, (uchar) 55, (uchar) 1 }, // parent_footprint 8388600 (padding 416) + /* 74 */ { 171192U, (ushort)107, (uchar) 49, (uchar) 1 }, // parent_footprint 8388600 (padding 168) + /* 75 */ { 195080U, (ushort)107, (uchar) 43, (uchar) 1 }, // parent_footprint 8388600 (padding 136) + /* 76 */ { 215088U, (ushort)107, (uchar) 39, (uchar) 1 }, // parent_footprint 8388600 (padding 144) + /* 77 */ { 246720U, (ushort)107, (uchar) 34, (uchar) 1 }, // parent_footprint 8388600 (padding 96) + /* 78 */ { 279616U, (ushort)107, (uchar) 30, (uchar) 1 }, // parent_footprint 8388600 (padding 96) + /* 79 */ { 310688U, (ushort)107, (uchar) 27, (uchar) 1 }, // parent_footprint 8388600 (padding 0) + /* 80 */ { 349520U, (ushort)107, (uchar) 24, (uchar) 1 }, // parent_footprint 8388600 (padding 96) + /* 81 */ { 399456U, (ushort)107, (uchar) 21, (uchar) 1 }, // parent_footprint 8388600 (padding 0) + /* 82 */ { 441504U, (ushort)107, (uchar) 19, (uchar) 1 }, // parent_footprint 8388600 (padding 0) + /* 83 */ { 493440U, (ushort)107, (uchar) 17, (uchar) 1 }, // parent_footprint 8388600 (padding 96) + /* 84 */ { 559232U, (ushort)107, (uchar) 15, (uchar) 1 }, // parent_footprint 8388600 (padding 96) + /* 85 */ { 645272U, (ushort)107, (uchar) 13, (uchar) 1 }, // parent_footprint 8388600 (padding 40) + /* 86 */ { 699048U, (ushort)107, (uchar) 12, (uchar) 1 }, // parent_footprint 8388600 (padding 0) + /* 87 */ { 838856U, (ushort)107, (uchar) 10, (uchar) 1 }, // parent_footprint 8388600 (padding 16) + /* 88 */ { 932064U, (ushort)107, (uchar) 9, (uchar) 1 }, // parent_footprint 8388600 (padding 0) + /* 89 */ { 1048568U, (ushort)107, (uchar) 8, (uchar) 1 }, // parent_footprint 8388600 (padding 32) + /* 90 */ { 1137432U, (ushort)110, (uchar) 59, (uchar) 0 }, // parent_footprint 67108864 (padding 352) + /* 91 */ { 1266200U, (ushort)110, (uchar) 53, (uchar) 0 }, // parent_footprint 67108864 (padding 240) + /* 92 */ { 1427840U, (ushort)110, (uchar) 47, (uchar) 0 }, // parent_footprint 67108864 (padding 360) + /* 93 */ { 1597824U, (ushort)110, (uchar) 42, (uchar) 0 }, // parent_footprint 67108864 (padding 232) + /* 94 */ { 1813752U, (ushort)110, (uchar) 37, (uchar) 0 }, // parent_footprint 67108864 (padding 16) + /* 95 */ { 2033600U, (ushort)110, (uchar) 33, (uchar) 0 }, // parent_footprint 67108864 (padding 40) + /* 96 */ { 2314096U, (ushort)110, (uchar) 29, (uchar) 0 }, // parent_footprint 67108864 (padding 56) + /* 97 */ { 2581104U, (ushort)110, (uchar) 26, (uchar) 0 }, // parent_footprint 67108864 (padding 136) + /* 98 */ { 2917768U, (ushort)110, (uchar) 23, (uchar) 0 }, // parent_footprint 67108864 (padding 176) + /* 99 */ { 3355440U, (ushort)110, (uchar) 20, (uchar) 0 }, // parent_footprint 67108864 (padding 40) + /* 100 */ { 3728264U, (ushort)110, (uchar) 18, (uchar) 0 }, // parent_footprint 67108864 (padding 88) + /* 101 */ { 4194296U, (ushort)110, (uchar) 16, (uchar) 0 }, // parent_footprint 67108864 (padding 104) + /* 102 */ { 4793488U, (ushort)110, (uchar) 14, (uchar) 0 }, // parent_footprint 67108864 (padding 8) + /* 103 */ { 5592400U, (ushort)110, (uchar) 12, (uchar) 0 }, // parent_footprint 67108864 (padding 40) + /* 104 */ { 6100800U, (ushort)110, (uchar) 11, (uchar) 0 }, // parent_footprint 67108864 (padding 40) + /* 105 */ { 6710880U, (ushort)110, (uchar) 10, (uchar) 0 }, // parent_footprint 67108864 (padding 40) + /* 106 */ { 7456536U, (ushort)110, (uchar) 9, (uchar) 0 }, // parent_footprint 67108864 (padding 16) + /* 107 */ { 8388600U, (ushort)110, (uchar) 8, (uchar) 0 }, // parent_footprint 67108864 (padding 40) + /* 108 */ { 9586976U, (ushort)110, (uchar) 7, (uchar) 0 }, // parent_footprint 67108864 (padding 8) /* 109 */ { 11184800U, (ushort)110, (uchar) 6, (uchar) 0 }, // parent_footprint 67108864 (padding 40) <-- SMALL_THRESH }; diff --git a/src/util/alloc/gen_szc_cfg.m b/src/util/alloc/gen_szc_cfg.m index e04ce8668bb..d42cc9d4e55 100644 --- a/src/util/alloc/gen_szc_cfg.m +++ b/src/util/alloc/gen_szc_cfg.m @@ -113,7 +113,7 @@ overhead = parent_footprint - obj_cnt.*obj_footprint; % superblock header and superblock trailing padding for szc=1:szc_cnt, - printf( ' /* %3u */ { %10uU, (ushort)%3u, (uchar)%3u, (uchar)%3u }, // parent_footprint %10u (padding %u) %s\n', szc-1, obj_footprint(szc), parent_szc(szc)-1, obj_cnt(szc), cgroup_mask(szc), parent_footprint(szc), overhead(szc) - sb_hdr, ifelse( szc_thresh==szc, ' <-- SMALL_THRESH', '' ) ); + printf( ' /* %3u */ { %10uU, (ushort)%3u, (uchar)%3u, (uchar)%3u }, // parent_footprint %10u (padding %u)%s\n', szc-1, obj_footprint(szc), parent_szc(szc)-1, obj_cnt(szc), cgroup_mask(szc), parent_footprint(szc), overhead(szc) - sb_hdr, ifelse( szc_thresh==szc, ' <-- SMALL_THRESH', '' ) ); endfor printf( '};\n' ); diff --git a/src/util/alloc/test_alloc.c b/src/util/alloc/test_alloc.c index e8387b80ac5..d5421597f9a 100644 --- a/src/util/alloc/test_alloc.c +++ b/src/util/alloc/test_alloc.c @@ -14,7 +14,7 @@ fd_alloc_fprintf( fd_alloc_t * join, /* FIXME: ADD INTERPROCESS TESTING MODES TOO. */ FD_STATIC_ASSERT( FD_ALLOC_ALIGN == 128UL, unit_test ); -FD_STATIC_ASSERT( FD_ALLOC_FOOTPRINT ==32768UL, unit-test ); +FD_STATIC_ASSERT( FD_ALLOC_FOOTPRINT ==32768UL, unit_test ); FD_STATIC_ASSERT( FD_ALLOC_MALLOC_ALIGN_DEFAULT== 16UL, unit_test ); FD_STATIC_ASSERT( FD_ALLOC_JOIN_CGROUP_HINT_MAX== 15UL, unit_test ); @@ -25,7 +25,7 @@ static ulong _align_max; static ulong _sz_max; /* This is a torture test for concurrent allocation where free is done - on the same that did the alloc. */ + on the same thread that did the alloc. */ static int test_main( int argc, @@ -166,7 +166,7 @@ test_main( int argc, } /* This is a torture test for concurrent allocation where free can - be done on a different thread that did the alloc. */ + be done on a different thread than the one that did the alloc. */ #define TEST2_SLOT_MAX 4096 @@ -359,7 +359,7 @@ main( int argc, FD_TEST( (2UL<=block_cnt) & (block_cnt<=64UL) ); /* Valid block_cnt */ FD_TEST( (cgroup_mask<=FD_ALLOC_JOIN_CGROUP_HINT_MAX) & fd_ulong_is_pow2( cgroup_mask+1UL ) ); /* Valid cgroup_mask */ - /* parent_sizeclass blocks can only a superblock for this sizeclass */ + /* parent_sizeclass blocks can only hold a superblock for this sizeclass */ ulong superblock_footprint = 24UL + block_footprint*block_cnt; if( FD_LIKELY( (sizeclass Date: Fri, 12 Jun 2026 19:52:24 +0000 Subject: [PATCH 04/61] config: language and documentation tweaks --- contrib/offline-replay/offline_replay.toml | 2 +- src/app/firedancer-dev/commands/backtest.c | 2 +- .../commands/forktest/forktest.c | 2 +- src/app/firedancer/config/default.toml | 442 ++++++++++-------- src/app/firedancer/topology.c | 2 +- src/app/shared/fd_config.h | 2 +- src/app/shared/fd_config_parse.c | 2 +- src/disco/store/fd_store.h | 4 +- .../runtime/tests/run_ledger_backtest.sh | 2 +- 9 files changed, 268 insertions(+), 192 deletions(-) diff --git a/contrib/offline-replay/offline_replay.toml b/contrib/offline-replay/offline_replay.toml index 0918eeaffc5..73223cfe48c 100644 --- a/contrib/offline-replay/offline_replay.toml +++ b/contrib/offline-replay/offline_replay.toml @@ -9,7 +9,6 @@ max_accounts = {index_max} [runtime] max_live_slots = 128 - fixed_fec_sets = true max_fork_width = 4 [runtime.program_cache] heap_size_mib = 4096 @@ -17,6 +16,7 @@ sandbox = false no_agave = true no_clone = true + fixed_fec_sets = true [log] level_stderr = "INFO" path = "{log}" diff --git a/src/app/firedancer-dev/commands/backtest.c b/src/app/firedancer-dev/commands/backtest.c index ad9b873669a..2817787e830 100644 --- a/src/app/firedancer-dev/commands/backtest.c +++ b/src/app/firedancer-dev/commands/backtest.c @@ -279,7 +279,7 @@ backtest_topo( config_t * config ) { } fd_topob_wksp( topo, "store" ); - ulong store_fec_data_max = fd_ulong_if( config->firedancer.runtime.fixed_fec_sets, 31840UL, 63985UL ); + ulong store_fec_data_max = fd_ulong_if( config->firedancer.development.fixed_fec_sets, 31840UL, 63985UL ); fd_topo_obj_t * store_obj = setup_topo_store( topo, "store", config->firedancer.runtime.max_live_slots * FD_SHRED_BLK_MAX, 1, store_fec_data_max ); fd_topob_tile_uses( topo, backt_tile, store_obj, FD_SHMEM_JOIN_MODE_READ_WRITE ); fd_topob_tile_uses( topo, replay_tile, store_obj, FD_SHMEM_JOIN_MODE_READ_WRITE ); diff --git a/src/app/firedancer-dev/commands/forktest/forktest.c b/src/app/firedancer-dev/commands/forktest/forktest.c index 0e8320af9db..371c6096682 100644 --- a/src/app/firedancer-dev/commands/forktest/forktest.c +++ b/src/app/firedancer-dev/commands/forktest/forktest.c @@ -401,7 +401,7 @@ forktest_topo( config_t * config ) { FD_TEST( fd_pod_insertf_ulong( topo->props, fec_sets_obj->id, "fec_sets" ) ); ulong store_fec_max = config->firedancer.runtime.max_live_slots * FD_FEC_BLK_MAX + (shred_depth * shred_tile_cnt) + 1; - ulong store_fec_data_max = fd_ulong_if( config->firedancer.runtime.fixed_fec_sets, 31840UL, 63985UL ); + ulong store_fec_data_max = fd_ulong_if( config->firedancer.development.fixed_fec_sets, 31840UL, 63985UL ); fd_topo_obj_t * store_obj = setup_topo_store( topo, "store", store_fec_max, (uint)shred_tile_cnt, store_fec_data_max ); FOR(shred_tile_cnt) fd_topob_tile_uses( topo, &topo->tiles[ fd_topo_find_tile( topo, "shred", i ) ], store_obj, FD_SHMEM_JOIN_MODE_READ_WRITE ); fd_topob_tile_uses( topo, replay_tile, store_obj, FD_SHMEM_JOIN_MODE_READ_WRITE ); diff --git a/src/app/firedancer/config/default.toml b/src/app/firedancer/config/default.toml index 80bddcbbbb1..e6404cbfe57 100644 --- a/src/app/firedancer/config/default.toml +++ b/src/app/firedancer/config/default.toml @@ -45,15 +45,15 @@ user = "" # # This data helps the development team debug during emergencies, # understand how Firedancer is being used by operators, identify common -# problems and performance bottlenecks, and prioritize future development -# work. It is similar in nature to the `SOLANA_METRICS_CONFIG` -# environment variable used by the Agave validator, but is more -# comprehensive and configured automatically. +# problems and performance bottlenecks, and prioritize future +# development work. It is similar in nature to the +# `SOLANA_METRICS_CONFIG` environment variable used by the Agave +# validator, but is more comprehensive and configured automatically. telemetry = true -# Firedancer uses the filesystem to store various data for running the -# validator. This includes account data, log files, and things like the -# genesis file. +# Firedancer uses the filesystem to store data which does not fit in +# memory like the accounts database, along with other data which must be +# persisted like log files and the genesis file. # # Validator performance is highly dependent on the speed of the storage # devices under these filesystems, and the arrangement of the data. It @@ -70,13 +70,15 @@ telemetry = true # look like, # # /home/fire/.firedancer/fd1 - # +-- identity.json - # +-- vote-account.json + # +-- accounts.db # +-- genesis.bin + # +-- identity.json + # +-- shreds.db # +-- snapshots # +-- snapshot-368327930-E5ZsnTCNX7WToyrP4ZQYJj7pPii6Ssa7UnNcV7HZ3iAf.tar.zst # +-- incremental-snapshot-368327930-368400391-8ybYYVq7Ecui9TLj13SvzXjTX7JiGP65f4KrtNRCPajW.tar.zst # +-- tower-1_9-8RDPvMTMSDASGQBvehBFkiFVi2UdLTSZQYuFsGh5JwWU.bin.new + # +-- vote-account.json # # Two substitutions will be performed on this string. If "{user}" # is present it will be replaced with the user running Firedancer, @@ -131,7 +133,7 @@ telemetry = true # Absolute directory path for storing snapshots. If no path is # provided, it defaults to the `snapshot` subdirectory of the - # base firedancer path option `[paths.base]`. + # base directory above. # # Snapshots are stored in a specially named format so that their # contents can be determined from the filename along. This looks @@ -145,6 +147,11 @@ telemetry = true # system in the validator automatically manages the files in this # directory, according to the options in the `[snapshots]` section # below. + # + # Two substitutions will be performed on this string. If "{user}" + # is present it will be replaced with the user running Firedancer, + # as above, and "{name}" will be replaced with the name of the + # Firedancer instance. snapshots = "" # Absolute path where to store the `genesis.bin` file for the chain. @@ -222,14 +229,14 @@ telemetry = true # - DEBUG Development and diagnostic messages. # - INFO Less important informational notice. # - NOTICE More important informational notice. -# - WARNING Unexpected condition, shouldn't happen. Should be +# - WARNING Unexpected condition, shouldn't happen. Should be # investigated. -# - ERR Kills Firedancer. Routine error, like configuration +# - ERR Kills Firedancer. Routine error, like configuration # issue -# - CRIT Kills Firedancer. Critical errors, likely programmer +# - CRIT Kills Firedancer. Critical errors, likely programmer # error. -# - ALERT Kills Firedancer. Alert requiring immediate attention. -# - EMERG Kills Firedancer. Emergency requiring immediate +# - ALERT Kills Firedancer. Alert requiring immediate attention. +# - EMERG Kills Firedancer. Emergency requiring immediate # attention, security or risk issue. # # Default behaviors are: @@ -260,7 +267,7 @@ telemetry = true # mechanism like the `copytruncate` directive of `logrotate`. [log] # Absolute file path of where to place the log file. It will be - # appended to, or created if it does not already exist. The + # appended to, or created if it does not already exist. The # shortened ephemeral log will always be written to stderr. # # Two substitutions will be performed on this string. If "{user}" @@ -321,10 +328,10 @@ telemetry = true # specified in `[net.interface]`. host = "" -# Snapshots are a periodic view of the ledger at a point in time. They -# are used to enable validators to join the network quickly, as they do -# not need to replay all transactions since genesis, just those since a -# recent snapshot. +# Snapshots are a periodic view of the accounts database and certain +# other state at a particular slot. They are used to enable validators +# to join the network quickly, as they do not need to replay all +# transactions since genesis, just those since a recent snapshot. # # Firedancer does not support creating or serving snapshots to other # nodes, and all snapshot related configuration is for downloading and @@ -345,7 +352,8 @@ telemetry = true # be able to reuse a previously downloaded full snapshot on disk # but download a more recent incremental snapshot from the network. # - # If set to false, the validator will only load from a full snapshot. + # If set to false, the validator will only load from a full + # snapshot. incremental_snapshots = true # Whether to allow downloading a new genesis file from a peer when @@ -400,11 +408,11 @@ telemetry = true # snapshots, the validator will exit with an error. # # If multiple sources and peers are available, the one with the - # lowest latency and fastest download will be automatically selected. - # Sometimes, if a slightly slower peer is serving a newer snapshot - # than a faster peer, the slower peer will be selected if it will - # enable full validator startup to complete earlier, due to reduced - # catchup time once the snapshot is loaded. + # lowest latency and fastest download will be automatically + # selected. Sometimes, if a slightly slower peer is serving a newer + # snapshot than a faster peer, the slower peer will be selected if + # it will enable full validator startup to complete earlier, due to + # reduced catchup time once the snapshot is loaded. # # Snapshot download is hard to trust, as the protocol has no way to # fully verify the downloaded contents (snapshots are not signed nor @@ -441,9 +449,9 @@ telemetry = true max_local_full_effective_age = 1000 max_local_incremental_age = 50 - # If any HTTP server URLs are listed, the following paths will be - # fetched from these servers to determine if they have a snapshot - # available: + # If any HTTP server URLs are listed, the following paths will + # be fetched from these servers to determine if they have a + # snapshot available: # # - /snapshot.tar.bz2 # - /incremental-snapshot.tar.bz2 @@ -451,10 +459,10 @@ telemetry = true # If these servers have snapshots at the given paths, they will # be considered as trusted sources for downloading snapshots. # - # The given URLs must contain the protocol (HTTP or HTTPS), - # the host (which can be an IPv4 address or a domain name), - # and the port number. No path should be given (as the - # aforementioned paths are always used). Example URLs: + # The given URLs must contain the protocol (HTTP or HTTPS), the + # host (which can be an IPv4 address or a domain name), and the + # port number. No path should be given (as the aforementioned + # paths are always used). Example URLs: # # - http://snapshots.example.com:8899 # - https://1.2.3.4:443 @@ -525,54 +533,110 @@ telemetry = true # # If `wait_for_supermajority_with_bank_hash` is set, then this # option must be set to `false` otherwise the client will not boot. - # This prevents the chain from deadlocking if all nodes enable this - # option. + # This prevents the chain from deadlocking on a hard restart if all + # nodes enable this option. wait_for_vote_to_start_leader = true # If set to a valid bank hash, the client will wait until 80% of # stake-weighted nodes are visible on gossip before attempting to # make progress. + # # This parameter ensures that the correct slot and consensus fork # are selected during a hard fork event. wait_for_supermajority_with_bank_hash = "" -# This section configures the account database. +# The primary state a validator is required to maintain is the accounts +# database, a current listing of all "public key" identifiers on the +# chain, and their associated balance (lamports), owner, and data. +# +# Firedancer stores the accounts database using a hybrid in-memory and +# on-disk design that is fully custom to the validator. At a high +# level, frequently accessed accounts are kept in memory, while colder +# less frequently accessed accounts are stored on disk. The index of +# which account is stored where is kept fully in memory. +# +# The storage layer is optimized for append only workloads on an NVMe +# device. [accounts] # Controls the account index size. # - # If the account state exceeds the configured number of accounts, - # the validator will crash. + # If the number of accounts on the chain exceeds this configured + # amount, the validator will crash. Storing 1 billion accounts + # requires around 100 GiB of index space. # - # The account index is stored in memory and preallocated. A limit - # of 1 billion accounts requires approx 100 GB index space. + # The development team will adjust this default as needed for new + # releases and it is not recommended to change. Going significantly + # higher than the expected number of accounts on the chain may slow + # down the index structure, and use more memory than is necessary. max_accounts = 1_300_000_000 - # Keep frequently accessed accounts in memory to improve - # performance. + # The size of the in-memory cache for hit accounts, in GiB. The + # performance of the validator is surprisingly not sensitive to this + # parameter, as long as it is large enough to hold the hottest + # accounts. + # + # The reason is that, once hot accounts are fully in memory, cold + # account accesses always happen off the critical execution CPU core + # and do not block the serial execution of transactions on the + # critical writable account paths, so whether they load from disk or + # memory makes no difference, they are asynchronous to the critical + # path. + # + # That said, the accounts database is designed so that in-memory + # access is zero-cost over a fully in-memory design, and so if you + # have enough memory available, you could dedicate it all to the + # cache and then never read from or write to disk during operation. + # + # The default value of 11 GiB is large enough to have near-optimal + # performance on mainnet. The cache size has a minimum bound below + # which the validator will refuse to boot, which depends on whether + # bundles are enabled and certain other factors. Transactions + # literally execute in-place in the cache memory to save on data + # copies, and so the minimum cache size is the smallest amount of + # memory needed to hold a worst case atomic unit of accounts (either + # a single large, transaction, or a large bundle of large + # transactions, if enabled). cache_size_gib = 11 [runtime] - # max_live_slots and max_fork_width are parameters used to size - # out the total memory footprint of the bank in the runtime. The - # bank represents all of the in-memory state in the runtime that - # is not stored as an account. Examples of members of the bank - # are the total capitalization of the chain and the vote account - # states for previous epochs. + # Certain slots are considered "live" in the validator if we must + # hold space in memory for them. The root slot is live, as are any + # of its descendants. But a slot older than the root is not live, + # for example, as we can delete all of its data and never need it + # again. + # + # The execution system bounds all internal limits and structures in + # terms of this "max live slots" parameter, and it is set large + # enough to make the chain impractical to attack. For example, a + # value of 2048 means the validator can go without rooting for + # around fifteen minutes without needing to start evicting data. + # + # On hitting this limit, the validator will begin evicting less + # important slots from memory, meaning their state will be lost and + # may need to be re-requested and re-replayed again in future as + # needed. + # + # It is not recommended to change this value, except in development + # or test environments to decrease memory usage or test edge cases. max_live_slots = 2048 - # fixed_fec_sets controls the maximum data payload size for FEC sets - # in the store. Shreds per FEC set used to be variable-length, but - # were changed to always be a fixed size of 32. When true the data - # buffer per FEC set is 31840 bytes (32 shreds * 995 payload bytes - # per shred). When false, the data buffer is 63985 bytes (67 shreds - # * 955 payload bytes per shred) to accommodate the old - # variable-length FEC sets. This should be left as its default - # value of true unless attempting to replay old ledgers. - fixed_fec_sets = true + # Similar to max live slots, max fork width bounds the maximum + # number of live slots which can be simultaneously crossing an epoch + # boundary (a child of a slot in the prior epoch). This bound + # exists separately because crossing an epoch boundary is expensive + # and requires large dedicated memory. + # + # On hitting this limit, the validator will begin evicting less + # important epoch-crossing slots from memory, meaning their state + # will be lost and may need to be re-requested and re-replayed again + # in future as needed. + # + # It is not recommended to change this value, except in development + # or test environments to decrease memory usage or test edge cases. # max_fork_width specifies the maximum number of forks that will - # play through the same slot. Specifically, the maximum number - # of forks that will compute the epoch boundary. If the number + # play through the same slot. Specifically, the maximum number + # of forks that will compute the epoch boundary. If the number # of forks that play through the epoch boundary is greater than # max_fork_width, the client will crash. max_fork_width = 32 @@ -593,8 +657,8 @@ telemetry = true # run on which cores and for how long, Firedancer overrides most of this # behavior by pinning threads to CPU cores. # -# The validator splits all work into eleven distinct jobs, with each -# thread running one of the jobs: +# The validator splits all work into distinct jobs, with each +# thread running one of the jobs, some example jobs: # # - net Sends and receives network packets from the network # device @@ -606,40 +670,14 @@ telemetry = true # - verify Verifies the cryptographic signature of incoming # transactions, filtering invalid ones # -# - dedup Checks for and filters out duplicated incoming -# transactions -# -# - pack Collects incoming transactions and smartly schedules -# them for execution when we are leader -# -# - execle Executes transactions that have been scheduled when we -# are leader -# -# - poh Continuously hashes in the background, and mixes the -# hash in with executed transactions to prove passage of -# time -# -# - shred Distributes block data to the network when leader, and -# receives and retransmits block data when not leader -# -# - store Receives block data when we are leader, or from other -# nodes when they are leader, and stores it locally in a -# database on disk -# -# - metric Collects monitoring information about other tiles and -# serves it on an HTTP endpoint -# -# - sign Holds the validator private key, and receives and -# responds to signing requests from other tiles -# # The jobs involved in producing blocks when we are leader are organized # in a pipeline, where transactions flow through the system in a linear # sequence. # -# net -> quic -> verify -> dedup -> pack -> execle -> poh -> shred +# net -> quic -> verify -> dedup -> resolv -> pack -> execle -> poh -> shred # # Some of these jobs (net, quic, verify, execle, and shred) can be -# parallelized, and run on multiple CPU cores at once. For example, we +# parallelized, and run on multiple CPU cores at once. For example, we # could structure the pipeline like this for performance: # # net -> quic +-> verify -+> dedup -> pack +-> execle -+> poh -> shred @@ -724,19 +762,23 @@ telemetry = true # Whether to run tiles involved in block production. # - # If disabled, the validator will skip its leader slots. - # Disabling block production is useful to reduce CPU and memory - # requirements for unstaked nodes. + # If block production is disabled, and the validator is on the + # leader schedule, it will skip its leader slots. Disabling block + # production is useful to reduce CPU and memory requirements for + # unstaked validators like RPC nodes. # # The following tiles will only run if this option is enabled: - # quic, bundle, verify, dedup, resolv, pack, execle, poh. - # The [layout.*_tile_count] settings for those tiles are ignored if - # block production is disabled. + # + # quic, bundle, verify, dedup, resolv, pack, execle, poh + # + # If block production is disabled, any layout options below + # controlling those tiles are ignored, and all tile-relevant options + # are ignored as the tiles are not booted to begin with. enable_block_production = true # How many net tiles to run. This is configurable and designed to # scale out for future network conditions, but there is no need to - # run more than 2 net tiles given current `mainnet-beta` conditions. + # run more than 2 net tiles given current `mainnet` conditions. # # Net tiles are responsible for sending and receiving packets from # the network device configured in the [tiles.net] section below. @@ -753,8 +795,8 @@ telemetry = true # How many QUIC tiles to run. Should be set to 1. This is # configurable and designed to scale out for future network # conditions. There is no need to run more than 1 QUIC tile given - # current `mainnet-beta` conditions, unless the validator is the - # subject of an attack. + # current `mainnet` conditions, unless the validator is the subject + # of an attack. # # QUIC tiles are responsible for parsing incoming QUIC protocol # messages, managing connections and responding to clients. @@ -766,12 +808,13 @@ telemetry = true # How many resolver tiles to run. Should be set to 1. This is # configurable and designed to scale out for future network - # conditions. There is no need to run more than 1 resolver tile - # given current `mainnet-beta` conditions, unless the validator is + # conditions. There is no need to run more than 1 resolver tile + # given current `mainnet` conditions, unless the validator is # under a DoS or spam attack. # # Resolve tiles are responsible for resolving address lookup tables - # before transactions are scheduled. + # before transactions are scheduled, and also determining certain + # transaction metadata like the age of the blockhash it references. resolv_tile_count = 1 # How many verify tiles to run. Verify tiles perform signature @@ -784,11 +827,11 @@ telemetry = true # # On modern hardware, each verify tile can handle around 20-40K # transactions per second. Six tiles seems to be enough to handle - # current `mainnet-beta` traffic, unless the validator is under a + # current `mainnet` traffic, unless the validator is under a # denial of service or spam attack. verify_tile_count = 6 - # How many gossip verify tiles to run. Gossip verify tiles perform + # How many gossip verify tiles to run. Gossip verify tiles perform # signature verification on incoming gossip table entries, before # routing successfully verified entries to the gossip tile. # @@ -796,15 +839,19 @@ telemetry = true # tiles, and the gossvf tile count should be increased until the # validator is not dropping incoming gossip table entries from # clients, and the gossvf tiles are consistently idle. + # + # Like verify tiles, each gossvf tile can handle around 20-40K + # transactions per second. Two gossvf tiles should be enough to + # handle current `mainnet` traffic. gossvf_tile_count = 2 - # How many execle tiles to run. Should be set to 2 for perf and - # balanced scheduling modes. Execle tiles execute transactions, so - # the validator can include the results of the transaction into a + # How many execle tiles to run. Should be set to 2 for `perf` and + # `balanced` scheduling modes. Execle tiles execute transactions, + # so the validator can include the results of the transaction into a # block when we are leader. Because of current consensus limits # restricting blocks to around 98,000 transactions per block, there # is typically no need to use more than 2 execle tiles on - # mainnet-beta, except when using unique scheduling strategies. For + # `mainnet`, except when using unique scheduling strategies. For # development and benchmarking, it can be useful to increase this # number further. execle_tile_count = 2 @@ -819,7 +866,7 @@ telemetry = true # More execrp tiles can allow the validator to replay through blocks # faster, subject to Amdahl's law. Empirically, we've found 10 # execrp tiles to achieve near optimal replay speed under current - # `mainnet-beta` conditions. + # `mainnet` conditions. # # Execrp tiles are also responsible for writing account changes back # to the accounts database. Since the accounts database is designed @@ -830,8 +877,8 @@ telemetry = true # How many shred tiles to run. Should be set to 1. This is # configurable and designed to scale out for future network - # conditions. There is no need to run more than 1 shred tile given - # current `mainnet-beta` conditions. There is however a need to run + # conditions. There is no need to run more than 1 shred tile given + # current `mainnet` conditions. There is however a need to run # 2 shred tiles under current `testnet` conditions. # # Shred tiles distribute block data to the network when we are @@ -845,11 +892,13 @@ telemetry = true # very high TPS rates because the cluster size will be very small. shred_tile_count = 1 - # How many sign tiles to run. Should be set >= 2. This is - # configurable and horizontally scales repair request signing. - # One tile is reserved for synchronous signing across all tiles. - # The remaining tiles distribute the workload of signing repair - # requests. + # How many sign tiles to run, should be at least two. The signing + # tiles exclusively hold the validator private key for security, and + # all requests to sign things (transactions, shreds, repair + # requests, etc.) are routed to these tiles. Adding more signing + # tiles can speed up signing of repair requests, which there are a + # lot of, but all other signing requests are easily handled by two + # tiles. sign_tile_count = 2 # All memory that will be used in Firedancer is pre-allocated in two @@ -895,16 +944,20 @@ telemetry = true # writable by the Firedancer user. mount_path = "/mnt/.fd" - # The largest supported page size on the system. Possible values - # are either "huge" (2 MiB) or "gigantic" (1 GiB). Larger sizes - # yield better performance. Smaller values may be required on - # virtualized environments like cloud providers. + # The largest supported page size to use and allocate from. + # Possible values are either "huge" (2 MiB) or "gigantic" (1 GiB). + # Larger sizes yield better performance. Smaller values may be + # required on virtualized environments like cloud providers, or can + # be used during development or testing to save memory. max_page_size = "gigantic" # Workspaces are either fully backed by "huge" or "gigantic" pages. # Workspaces with footprint equal to or greater than the given value # in MiB are backed by "gigantic" pages unless disabled via # max_page_size. + # + # It is not recommended to change this value, except in development + # or test environments to decrease memory usage. gigantic_page_threshold_mib = 128 # The network stack is provided by net tiles, which are responsible for @@ -1018,25 +1071,25 @@ telemetry = true # RSS (RX hardware flow steering) queue mode # - # Each XDP net tile services exactly one hardware queue. Thus we - # must ensure the system routes all incoming Firedancer packets to - # the correct queue(s). The queue setup and initialization has the - # following options: + # Each XDP net tile services exactly one hardware queue. Thus + # we must ensure the system routes all incoming Firedancer + # packets to the correct queue(s). The queue setup and + # initialization has the following options: # # "simple" - # Reduces the total queue count to equal the number of net tiles. - # All packets (both interesting to Firedancer and not) are sharded - # amongst these queues. Simple, reliable, and works everywhere - # but suboptimal performance impact, especially to socket-based - # traffic. + # Reduces the total queue count to equal the number of net + # tiles. All packets (both interesting to Firedancer and not) + # are sharded amongst these queues. Simple, reliable, and + # works everywhere but suboptimal performance impact, + # especially to socket-based traffic. # # "dedicated" # Reserves a dedicated hardware queue for each net tile. Uses # ethtool 'ntuple' rules to route incoming packets based on - # UDP dst port. Packets are load balanced across the dedicated - # queues based on lowest bits of source address. This mode - # may not work with some network device setups, particularly - # when using more than one net tile. + # UDP dst port. Packets are load balanced across the + # dedicated queues based on lowest bits of source address. + # This mode may not work with some network device setups, + # particularly when using more than one net tile. # # "auto" (default) # Attempts to run in "dedicated" mode but automatically falls @@ -1046,30 +1099,33 @@ telemetry = true # Some specialized networking setups, including DoubleZero, # deliver packets to the validator in a GRE tunnel. By default, # when using rss_queue_mode="dedicated", Firedancer ignores all - # GRE-wrapped traffic. Setting listen_gre = true causes + # GRE-wrapped traffic. Setting this option to true causes # Firedancer to install an ethtool 'ntuple' rule routing GRE # traffic to a Firedancer net tile, enabling Firedancer to see - # GRE-wrapped traffic. Unfortunately, few NICs are compatible - # with this class of rule, but ConnectX NICs (mlx5) are known to - # support listen_gre = true. If your NIC does not support the - # rule and you must use GRE tunnels, set rss_queue_mode = - # "simple". If rss_queue_mode is simple, this option is - # ignored, and Firedancer automatically listens to GRE-wrapped - # traffic when a GRE tunnel interface is configured. + # GRE-wrapped traffic. + # + # Unfortunately, few NICs are compatible with this class of + # rule, but ConnectX NICs (mlx5) are known to support the + # option. If your NIC does not support the rule and you must + # use GRE tunnels, set rss_queue_mode = "simple". If + # rss_queue_mode is simple, this option is ignored, and + # Firedancer automatically listens to GRE-wrapped traffic when a + # GRE tunnel interface is configured. listen_gre = false # Enable native network bonding support. # - # If native_bond is set to 'true' and [net.interface] is a 'bond' - # type network device, install XDP config at bond slave devices - # instead of the bond device itself. + # If native_bond is set to 'true' and [net.interface] is a + # 'bond' type network device, install XDP config at bond slave + # devices instead of the bond device itself. # # Requires net_tile_count to be divisble by the number of slave - # devices. This causes outgoing traffic to be load balanced with - # an arbitrary/opaque hash policy. Supports up to 16 slave devices. + # devices. This causes outgoing traffic to be load balanced + # with an arbitrary/opaque hash policy. Supports up to 16 slave + # devices. # - # Assumes that bond memberships don't change, i.e. running - # `ip link set dev eth1 master bond0` will crash Firedancer. + # Assumes that bond memberships don't change, i.e. running `ip + # link set dev eth1 master bond0` will crash Firedancer. # However, it is fine to bring individual bonded devices down, # or unplug cables for maintenance. In other words, executing # `ip link set dev eth1 down` while Firedancer is running is @@ -1077,12 +1133,12 @@ telemetry = true native_bond = false [net.socket] - # Sets the socket receive buffer size via SO_RCVBUF. - # Raises net.core.rmem_max accordingly + # Sets the socket receive buffer size via SO_RCVBUF. Raises + # net.core.rmem_max accordingly receive_buffer_size = 134217728 - # Sets the socket receive buffer size via SO_SNDBUF. - # Raises net.core.wmem_max accordingly + # Sets the socket receive buffer size via SO_SNDBUF. Raises + # net.core.wmem_max accordingly send_buffer_size = 134217728 # Tiles are described in detail in the layout section above. While the @@ -1108,10 +1164,11 @@ telemetry = true # /32 routes, see below. max_routes = 128 - # This setting configures the maximum number of IPv4 routes with a - # /32 netmask per route table. This setting is relevant for Double Zero - # accelerated networking, which uses one /32 route per peer on the - # network. The number of /32 routes should not exceed 100,000. + # This setting configures the maximum number of IPv4 routes with + # a /32 netmask per route table. This setting is relevant for + # Double Zero accelerated networking, which uses one /32 route + # per peer on the network. The number of /32 routes should not + # exceed 100,000. max_peer_routes = 8192 # The maximum number of Ethernet neighbors. @@ -1170,7 +1227,7 @@ telemetry = true # QUIC has a handshake process which establishes a secure # connection between two endpoints. The handshake process is - # very expensive. So we allow only a limited number of + # very expensive. So we allow only a limited number of # handshakes to occur concurrently. # max_concurrent_handshakes = 4096 @@ -1306,7 +1363,7 @@ telemetry = true # option determines the maximum number of transactions that # will be stored before those with the lowest estimated # profitability get dropped. The maximum allowed, and default - # value is 65524. It is not recommended to change this. + # value is 65524. It is not recommended to change this. max_pending_transactions = 65524 # When a transaction consumes fewer CUs than it requests, the @@ -1367,23 +1424,24 @@ telemetry = true # base58-encoded public keys. account_blocklist = [] - # The replay tile is responsible for replaying and verifying blocks - # packed by other validators and for managing the lifecycle of both - # leader and follower slots. + # The replay tile is responsible for orchestrating and scheduling + # replay of blocks produced by other validators and for managing the + # lifecycle of both leader and follower slots. [tiles.replay] # Transactions are parsed and buffered for consideration by the # replay dispatcher for out-of-order execution. The larger this # buffer is, the more transactions that the replay dispatcher # can peek at and potentially reorder, and the better the odds - # of uncovering the fastest path through a block. Under current - # mainnet conditions, full blocks typically have around 2,000 - # transactions per block. Since transactions cannot be - # reordered across block boundaries, a buffer size much larger - # than that is likely in the territory of diminishing marginal - # returns. Empirically, a buffer size larger than the following - # offers no measurable performance advantage. For development - # and benchmarking, it can be useful to increase this number - # further. + # of uncovering the fastest path through a block. + # + # Under current mainnet conditions, full blocks typically have + # around 2,000 transactions per block. Since transactions + # cannot be reordered across block boundaries, a buffer size + # much larger than that is likely in the territory of + # diminishing marginal returns. Empirically, a buffer size + # larger than the following offers no measurable performance + # advantage. For development and benchmarking, it can be useful + # to increase this number further. max_transaction_lookahead_buffer_size = 65536 # The execle tile is what executes transactions when we are leader @@ -1426,20 +1484,26 @@ telemetry = true shred_listen_port = 8003 # Shreds can also be forwarded to specific addresses, for - # example to run an unstaked RPC or for archiving. Each new, valid - # shred that the validator receives will be forwarded to the - # addresses specified in additional_shred_destinations_retransmit. - # Each shred that the validor produced when it is leader will be - # sent to the addresses specified in - # additional_shred_destinations_leader. Destinations must be in the - # form "ip:port", for example "1.2.3.4:5566". Shreds will - # be sent to these destinations first, prior to sending to other - # validators. + # example to run an unstaked RPC or for archiving. Each new, + # valid shred that the validator receives will be forwarded to + # the addresses specified for retransmit. + # + # Each shred that the validator produced when it is leader will + # be sent to the addresses specified for leader. + # + # Destinations must be in the form "ip:port", for example + # "1.2.3.4:5566". Shreds will be sent to these destinations + # first, prior to sending to other validators. additional_shred_destinations_retransmit = [] additional_shred_destinations_leader = [] - # TODO: DOCS + # The repair tile watches incoming shreds and sends repair requests + # to other validators when it notices we are missing data needed to + # replay the chain. [tiles.repair] + # Which port to listen on for incoming responses to repair + # requests. This port must be open and accessible from the + # network. repair_client_listen_port = 8701 # Slot max is the maximum number of slots that repair tile can @@ -1452,8 +1516,10 @@ telemetry = true [tiles.rserve] # If the repair server is enabled. enabled = true + # The port the repair server listens for repair requests. repair_serve_listen_port = 8702 + # The maximum size of the shred storage on disk. Determines the # amount of history that the validator will be able to serve to # peers making repair requests. Roughly, for mainnet, 1 GiB of @@ -1461,10 +1527,10 @@ telemetry = true # match Agave's ability to serve around six hours of shreds. # # This is an upper bound on the disk space used, but when first - # booted the validator will start with just ~40MiB, and incrementally - # grow the storage file on disk up to the limit as needed. Once the - # storage is filled, the oldest shreds will be evicted as new shreds - # are added. + # booted the validator will start with just ~40MiB, and + # incrementally grow the storage file on disk up to the limit as + # needed. Once the storage is filled, the oldest shreds will be + # evicted as new shreds are added. shred_storage_limit_gib = 50 # The txsend tile is responsible for sending transactions out to @@ -1671,6 +1737,16 @@ telemetry = true # log the hard fork event and continue running. hard_fork_fatal = false + # fixed_fec_sets controls the maximum data payload size for FEC sets + # in the store. Shreds per FEC set used to be variable-length, but + # were changed to always be a fixed size of 32. When true the data + # buffer per FEC set is 31840 bytes (32 shreds * 995 payload bytes + # per shred). When false, the data buffer is 63985 bytes (67 shreds + # * 955 payload bytes per shred) to accommodate the old + # variable-length FEC sets. This should be left as its default + # value of true unless attempting to replay old ledgers. + fixed_fec_sets = true + [development.gossip] # Under normal operating conditions, a validator should always # reach out to a host located on the public internet. If this diff --git a/src/app/firedancer/topology.c b/src/app/firedancer/topology.c index f62ba96d2ce..903c65ccc67 100644 --- a/src/app/firedancer/topology.c +++ b/src/app/firedancer/topology.c @@ -1107,7 +1107,7 @@ fd_topo_initialize( config_t * config ) { /* 32 shreds * 995 payload bytes = 31840 bytes with fixed_fec_sets = true 67 shreds * 955 payload bytes = 63985 bytes with fixed_fec_sets = false */ - ulong store_fec_data_max = fd_ulong_if( config->firedancer.runtime.fixed_fec_sets, 31840UL, 63985UL ); + ulong store_fec_data_max = fd_ulong_if( config->firedancer.development.fixed_fec_sets, 31840UL, 63985UL ); fd_topo_obj_t * store_obj = setup_topo_store( topo, "store", store_fec_max, (uint)shred_tile_cnt, store_fec_data_max ); FOR(shred_tile_cnt) fd_topob_tile_uses( topo, &topo->tiles[ fd_topo_find_tile( topo, "shred", i ) ], store_obj, FD_SHMEM_JOIN_MODE_READ_WRITE ); fd_topob_tile_uses( topo, &topo->tiles[ fd_topo_find_tile( topo, "replay", 0UL ) ], store_obj, FD_SHMEM_JOIN_MODE_READ_WRITE ); diff --git a/src/app/shared/fd_config.h b/src/app/shared/fd_config.h index 24ea467a47d..3e45be8750f 100644 --- a/src/app/shared/fd_config.h +++ b/src/app/shared/fd_config.h @@ -115,7 +115,6 @@ struct fd_configf { struct { ulong max_live_slots; - int fixed_fec_sets; ulong max_fork_width; struct { @@ -159,6 +158,7 @@ struct fd_configf { struct { int hard_fork_fatal; + int fixed_fec_sets; struct { int validate_genesis_hash; } genesis; diff --git a/src/app/shared/fd_config_parse.c b/src/app/shared/fd_config_parse.c index ab0227f04ac..77f6dce0a05 100644 --- a/src/app/shared/fd_config_parse.c +++ b/src/app/shared/fd_config_parse.c @@ -94,7 +94,6 @@ fd_config_extract_podf( uchar * pod, CFG_POP ( ulong, accounts.max_accounts ); CFG_POP ( ulong, accounts.cache_size_gib ); - CFG_POP ( bool, runtime.fixed_fec_sets ); CFG_POP ( ulong, runtime.max_live_slots ); CFG_POP ( ulong, runtime.max_fork_width ); @@ -117,6 +116,7 @@ fd_config_extract_podf( uchar * pod, CFG_POP ( uint, snapshots.min_download_speed_mibs ); CFG_POP ( bool, development.hard_fork_fatal ); + CFG_POP ( bool, development.fixed_fec_sets ); CFG_POP ( bool, development.genesis.validate_genesis_hash ); diff --git a/src/disco/store/fd_store.h b/src/disco/store/fd_store.h index b4c0d8137a1..c26ea20d75c 100644 --- a/src/disco/store/fd_store.h +++ b/src/disco/store/fd_store.h @@ -24,8 +24,8 @@ Shreds are coalesced and inserted into the store as bytes. The data buffer for each FEC set element is allocated separately in a contiguous region and referenced by gaddr. The max bytes per FEC set - is configurable via the fixed_fec_sets runtime config parameter (see - default.toml for details). + is configurable via the fixed_fec_sets development config parameter + (see default.toml for details). The shared memory used by a store instance is within a workspace such that it is also persistent and remotely inspectable. Store is diff --git a/src/flamenco/runtime/tests/run_ledger_backtest.sh b/src/flamenco/runtime/tests/run_ledger_backtest.sh index 516770a1629..8586b262a1c 100755 --- a/src/flamenco/runtime/tests/run_ledger_backtest.sh +++ b/src/flamenco/runtime/tests/run_ledger_backtest.sh @@ -228,7 +228,6 @@ cat < ${CONFIG_FILE} [runtime] max_live_slots = $MAX_LIVE_SLOTS max_fork_width = 4 - fixed_fec_sets = false [log] level_stderr = "$LOG_LEVEL_STDERR" path = "$LOG" @@ -236,6 +235,7 @@ cat < ${CONFIG_FILE} snapshots = "$DUMP/$LEDGER" accounts = "/$DUMP/accounts.db" [development] + fixed_fec_sets = false [development.ledger_input] path = "$LEDGER_INPUT" end_slot = $END_SLOT From 0bb8a2ab3348d333e83c3e4be2838f9e8068cd69 Mon Sep 17 00:00:00 2001 From: two-heart <12869538+two-heart@users.noreply.github.com> Date: Fri, 12 Jun 2026 21:16:09 +0200 Subject: [PATCH 05/61] progcache: update stale comment on non-exec entries currently we would crash if NULL were to be passed to the function --- src/flamenco/progcache/fd_progcache_rec.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/flamenco/progcache/fd_progcache_rec.h b/src/flamenco/progcache/fd_progcache_rec.h index d2bea525cba..d2a838198ac 100644 --- a/src/flamenco/progcache/fd_progcache_rec.h +++ b/src/flamenco/progcache/fd_progcache_rec.h @@ -86,9 +86,11 @@ fd_progcache_rec_calldests( fd_progcache_rec_t const * rec, extern int const fd_progcache_use_malloc; -/* fd_progcache_rec_{align,footprint} give the params of backing memory - of a progcache_rec object for the given ELF info. If elf_info is - NULL, implies a non-executable cache entry (sizeof(fd_progcache_rec_t)). */ +/* fd_progcache_val_{align,footprint} give the params of variable-size + backing memory for an executable cache entry with the given ELF info. + elf_info must describe a successfully peeked ELF. Non-executable + cache entries do not allocate value storage; fd_progcache_rec_nx marks + their fixed record with data_gaddr==0. */ FD_FN_CONST static inline ulong fd_progcache_val_align( void ) { From de3bba9f2dc623367b988821835611e368cb08f7 Mon Sep 17 00:00:00 2001 From: Charles Li Date: Fri, 12 Jun 2026 15:35:22 -0500 Subject: [PATCH 06/61] fix(tower): remove incorrect FD_TEST (#10205) --- src/discof/tower/fd_tower_tile.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/discof/tower/fd_tower_tile.c b/src/discof/tower/fd_tower_tile.c index 4a8797b761f..3f8a07fc837 100644 --- a/src/discof/tower/fd_tower_tile.c +++ b/src/discof/tower/fd_tower_tile.c @@ -1159,7 +1159,6 @@ replay_slot_completed( fd_tower_tile_t * ctx, At this point, we know we are processing the latter block, so we record that in the tower_blk. */ - FD_TEST( eqvoc_tower_blk->confirmed ); /* check the confirmed bit is set (the confirmation must have already happened before replay_slot_completed) */ fd_tower_lockos_remove( ctx->tower, slot_completed->slot ); ctx->metrics.eqvoc_cnt++; From 8dcd416cc58a8d39a9c137602267ed102d0c652d Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Fri, 12 Jun 2026 19:36:04 +0000 Subject: [PATCH 07/61] events: use clock_tile for tickcount-to-wallclock conversion --- src/disco/events/fd_event_tile.c | 20 ++++++++++---------- src/disco/fd_clock_tile.h | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/src/disco/events/fd_event_tile.c b/src/disco/events/fd_event_tile.c index 1c5df90010f..814a45d3054 100644 --- a/src/disco/events/fd_event_tile.c +++ b/src/disco/events/fd_event_tile.c @@ -3,6 +3,7 @@ #include "fd_event_client.h" #include "../fd_txn_m.h" +#include "../fd_clock_tile.h" #include "../metrics/fd_metrics.h" #include "../net/fd_net_tile.h" #include "../../discof/genesis/fd_genesi_tile.h" @@ -89,9 +90,7 @@ struct fd_event_tile { fd_netdb_fds_t netdb_fds[1]; - long reference_wallclock; - long reference_tickcount; - double tick_per_ns; + fd_clock_tile_t clock[1]; ulong in_cnt; int in_kind[ 64UL ]; @@ -239,7 +238,8 @@ after_frag( fd_event_tile_t * ctx, } ulong event_id = fd_event_client_id_reserve( ctx->client ); - long timestamp_nanos = ctx->reference_wallclock + (long)((double)(fd_frag_meta_ts_decomp( tspub, ctx->reference_tickcount ) - ctx->reference_tickcount) / ctx->tick_per_ns); + long timestamp_nanos = fd_clock_tile_tickcount_to_wallclock( ctx->clock, + fd_clock_tile_tickcount_decomp( ctx->clock, tspub ) ); fd_pb_encoder_t encoder[1]; fd_pb_encoder_init( encoder, buffer, 4096UL ); @@ -281,7 +281,8 @@ after_frag( fd_event_tile_t * ctx, } ulong event_id = fd_event_client_id_reserve( ctx->client ); - long timestamp_nanos = ctx->reference_wallclock + (long)((double)(fd_frag_meta_ts_decomp( tspub, ctx->reference_tickcount ) - ctx->reference_tickcount) / ctx->tick_per_ns); + long timestamp_nanos = fd_clock_tile_tickcount_to_wallclock( ctx->clock, + fd_clock_tile_tickcount_decomp( ctx->clock, tspub ) ); fd_pb_encoder_t encoder[1]; fd_pb_encoder_init( encoder, buffer, 4096UL ); @@ -518,9 +519,7 @@ unprivileged_init( fd_topo_t const * topo, } } - ctx->tick_per_ns = fd_tempo_tick_per_ns( NULL ); - ctx->reference_wallclock = fd_log_wallclock(); - ctx->reference_tickcount = fd_tickcount(); + fd_clock_tile_init( ctx->clock ); ulong scratch_top = FD_SCRATCH_ALLOC_FINI( l, scratch_align() ); if( FD_UNLIKELY( scratch_top > (ulong)scratch + scratch_footprint( tile ) ) ) @@ -563,8 +562,9 @@ populate_allowed_fds( fd_topo_t const * topo, static void during_housekeeping( fd_event_tile_t * ctx ) { - ctx->reference_wallclock = fd_log_wallclock(); - ctx->reference_tickcount = fd_tickcount(); + if( FD_UNLIKELY( fd_clock_tile_recal_due( ctx->clock ) ) ) { + fd_clock_tile_recal( ctx->clock ); + } if( FD_UNLIKELY( fd_keyswitch_state_query( ctx->keyswitch )==FD_KEYSWITCH_STATE_SWITCH_PENDING ) ) { FD_LOG_DEBUG(( "keyswitch: switching identity" )); diff --git a/src/disco/fd_clock_tile.h b/src/disco/fd_clock_tile.h index 5ed3eef6c19..56b1b676b08 100644 --- a/src/disco/fd_clock_tile.h +++ b/src/disco/fd_clock_tile.h @@ -81,6 +81,25 @@ fd_clock_tile_recal_due( fd_clock_tile_t * clock ) { return fd_clock_tile_now( clock ) >= fd_clock_tile_recal_next( clock ); } +/* fd_clock_tile_tickcount_to_wallclock converts an fd_tickcount() + sample to a fd_log_wallclock() estimate. */ + +static inline long +fd_clock_tile_tickcount_to_wallclock( fd_clock_tile_t const * clock, + long tickcount ) { + return fd_clock_epoch_y( clock->epoch, tickcount ); +} + +/* fd_clock_tile_tickcount_decomp decompresses a frag_meta compressed + tickcount sample. */ + +static inline long +fd_clock_tile_tickcount_decomp( fd_clock_tile_t const * clock, + ulong ts_comp ) { + long ref = clock->epoch->x0; + return fd_frag_meta_ts_decomp( ts_comp, ref ); +} + FD_PROTOTYPES_END #endif /* HEADER_fd_src_disco_fd_clock_tile_h */ From 215d21319f86cd7212b3600a14fadd7158668573 Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Fri, 12 Jun 2026 19:38:35 +0000 Subject: [PATCH 08/61] events: add signed_vote --- src/app/firedancer/topology.c | 1 + src/disco/events/fd_event_tile.c | 129 +++++++++++++++++++++-- src/disco/events/schema/events.proto | 23 ++++ src/disco/events/schema/signed_vote.json | 16 +++ src/discof/txsend/fd_txsend_tile.c | 12 ++- 5 files changed, 170 insertions(+), 11 deletions(-) create mode 100644 src/disco/events/schema/signed_vote.json diff --git a/src/app/firedancer/topology.c b/src/app/firedancer/topology.c index 903c65ccc67..e04266edecf 100644 --- a/src/app/firedancer/topology.c +++ b/src/app/firedancer/topology.c @@ -829,6 +829,7 @@ fd_topo_initialize( config_t * config ) { fd_topob_tile( topo, "event", "event", "metric_in", tile_to_cpu[ topo->tile_cnt ], 0, 1, 0 ); fd_topob_tile_in( topo, "event", 0UL, "metric_in", "genesi_out", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); fd_topob_tile_in( topo, "event", 0UL, "metric_in", "ipecho_out", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); + fd_topob_tile_in( topo, "event", 0UL, "metric_in", "txsend_out", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); if( FD_UNLIKELY( config->development.event.report_shreds ) ) { /* TODO: This needs to be reliable, else we could miss shreds that diff --git a/src/disco/events/fd_event_tile.c b/src/disco/events/fd_event_tile.c index 814a45d3054..e16e577f01e 100644 --- a/src/disco/events/fd_event_tile.c +++ b/src/disco/events/fd_event_tile.c @@ -10,6 +10,8 @@ #include "../keyguard/fd_keyload.h" #include "../keyguard/fd_keyswitch.h" #include "../topo/fd_topo.h" +#include "../../choreo/tower/fd_tower_serdes.h" +#include "../../flamenco/runtime/fd_system_ids.h" #include "../../waltz/resolv/fd_netdb.h" #include "../../waltz/http/fd_url.h" #include "../../util/cstr/fd_cstr.h" @@ -42,6 +44,11 @@ #define IN_KIND_SIGN (2) #define IN_KIND_GENESI (3) #define IN_KIND_IPECHO (4) +#define IN_KIND_TXSEND (5) + +#define FD_EVENT_TYPE_TXN 1 +#define FD_EVENT_TYPE_SHRED 2 +#define FD_EVENT_TYPE_SIGNED_VOTE 3 union fd_event_tile_in { struct { @@ -78,6 +85,9 @@ struct fd_event_tile { ulong shred_buf_sz; uchar shred_buf[ FD_NET_MTU ]; + uchar txn_buf[ FD_TPU_RAW_MTU ]; /* txsend_out mtu */ + ulong txn_buf_sz; + uchar identity_pubkey[ 32UL ]; int use_tls; @@ -166,6 +176,98 @@ before_credit( fd_event_tile_t * ctx, fd_event_client_poll( ctx->client, charge_busy ); } +/* on_txsend_frag translates a txsend_out frag (a signed vote) into a + signed_vote event. This involves deserializing the generated vote to + recover metadata. Keep in sync with fd_tower_to_vote_txn. */ + +static int +on_txsend_frag( fd_event_tile_t * ctx, + ulong tsorig_comp ) { + + /* txsend_out holds vote transactions */ + + fd_txn_m_t const * txnm = fd_type_pun_const( ctx->txn_buf ); + uchar const * payload = fd_txn_m_payload_const( txnm ); + ulong payload_sz = txnm->payload_sz; + if( FD_UNLIKELY( payload_sz + ( (ulong)payload - (ulong)txnm ) > ctx->txn_buf_sz ) ) { + FD_LOG_CRIT(( "txsend_out frag corrupt" )); + } + + union { + uchar __attribute__((aligned(alignof(fd_txn_t)))) mem[ FD_TXN_MAX_SZ ]; + fd_txn_t t; + } txn; + if( FD_UNLIKELY( !fd_txn_parse( payload, payload_sz, txn.mem, NULL ) ) ) return 0; + fd_txn_t const * t = &txn.t; + + /* validate vote transaction 'shape' */ + + if( FD_UNLIKELY( t->instr_cnt!=1UL ) ) return 0; + if( FD_UNLIKELY( t->acct_addr_cnt<3UL || t->acct_addr_cnt>4UL ) ) return 0; + fd_txn_instr_t const * instr = &t->instr[ 0 ]; + fd_acct_addr_t const * addrs = fd_txn_get_acct_addrs( t, payload ); + if( FD_UNLIKELY( 0!=memcmp( addrs[ instr->program_id ].b, fd_solana_vote_program_id.uc, sizeof(fd_pubkey_t) ) ) ) return 0; + if( FD_UNLIKELY( instr->acct_cnt!=2UL ) ) return 0; + uchar const * instr_addrs = fd_txn_get_instr_accts( instr, payload ); + fd_ed25519_sig_t const * sigs = fd_txn_get_signatures( t, payload ); + uchar const * instr_data = payload + instr->data_off; + ulong instr_data_sz = instr->data_sz; + if( FD_UNLIKELY( instr_data_sz < sizeof(uint) ) ) return 0; + uint instr_kind = FD_LOAD( uint, instr_data ); + if( FD_UNLIKELY( instr_kind!=FD_VOTE_IX_KIND_TOWER_SYNC ) ) return 0; + instr_data += 4; instr_data_sz -= 4; + + /* deserialize vote instruction data */ + + fd_compact_tower_sync_serde_t sync[1]; + if( FD_UNLIKELY( 0!=fd_compact_tower_sync_de( sync, instr_data, instr_data_sz ) ) ) return 0; + if( FD_UNLIKELY( sync->lockouts_cnt==0 ) ) return 0; + + fd_acct_addr_t const * fee_payer = &addrs[ 0 ]; + fd_acct_addr_t const * vote_acct_addr = &addrs[ instr_addrs[ 0 ] ]; + fd_acct_addr_t const * vote_auth_addr = &addrs[ instr_addrs[ 1 ] ]; + uchar const * rbh = fd_txn_get_recent_blockhash( t, payload ); + + /* Deriving the vote slot is tricky */ + ulong root_slot = fd_ulong_if( sync->root==ULONG_MAX, 0, sync->root ); + ulong vote_slot = root_slot; + for( ulong i=0UL; ilockouts_cnt; i++ ) { + if( FD_UNLIKELY( __builtin_uaddl_overflow( vote_slot, sync->lockouts[ i ].offset, &vote_slot ) ) ) return 0; + } + + /* Generate signed_vote event */ + ulong event_id = fd_event_client_id_reserve( ctx->client ); + long timestamp_nanos = fd_clock_tile_tickcount_to_wallclock( ctx->clock, + fd_clock_tile_tickcount_decomp( ctx->clock, tsorig_comp ) ); + uchar * buffer = fd_circq_push_back( ctx->circq, 1UL, 4096UL ); + FD_TEST( buffer ); + fd_pb_encoder_t encoder[1]; + fd_pb_encoder_init( encoder, buffer, 4096UL ); + + FD_TEST( ctx->circq->cursor_push_seq ); + fd_pb_push_uint64( encoder, 1U, ctx->circq->cursor_push_seq-1UL ); + fd_pb_push_uint64( encoder, 2U, event_id ); + fd_pb_push_uint64( encoder, 3U, (ulong)timestamp_nanos ); + fd_pb_submsg_open( encoder, 4U ); /* Event */ + fd_pb_submsg_open( encoder, FD_EVENT_TYPE_SIGNED_VOTE ); + + fd_pb_push_bytes ( encoder, 1U, payload, payload_sz ); + fd_pb_push_bytes ( encoder, 2U, vote_acct_addr, sizeof(fd_acct_addr_t) ); + fd_pb_push_bytes ( encoder, 3U, vote_auth_addr, sizeof(fd_acct_addr_t) ); + fd_pb_push_bytes ( encoder, 4U, fee_payer, sizeof(fd_acct_addr_t) ); + fd_pb_push_bytes ( encoder, 5U, sigs[ 0 ], sizeof(fd_ed25519_sig_t) ); + fd_pb_push_uint64( encoder, 6U, vote_slot ); + fd_pb_push_bytes ( encoder, 7U, sync->hash.uc, sizeof(fd_hash_t) ); + fd_pb_push_bytes ( encoder, 8U, sync->block_id.uc, sizeof(fd_hash_t) ); + fd_pb_push_bytes ( encoder, 9U, rbh, sizeof(fd_hash_t) ); + + fd_pb_submsg_close( encoder ); + fd_pb_submsg_close( encoder ); + fd_circq_resize_back( ctx->circq, fd_pb_encoder_out_sz( encoder ) ); + + return 1; +} + static void during_frag( fd_event_tile_t * ctx, ulong in_idx, @@ -176,6 +278,7 @@ during_frag( fd_event_tile_t * ctx, ulong ctl ) { (void)seq; (void)sig; (void)ctl; + fd_event_tile_in_t const * in = &ctx->in[ in_idx ]; switch( ctx->in_kind[ in_idx ] ) { case IN_KIND_SHRED: { uchar const * dcache_entry = fd_net_rx_translate_frag( &ctx->in[ in_idx ].net_rx, chunk, ctl, sz ); @@ -191,13 +294,22 @@ during_frag( fd_event_tile_t * ctx, case IN_KIND_DEDUP: case IN_KIND_GENESI: case IN_KIND_IPECHO: - if( FD_UNLIKELY( chunkin[ in_idx ].chunk0 || chunk>ctx->in[ in_idx ].wmark || sz>ctx->in[ in_idx ].mtu ) ) - FD_LOG_ERR(( "chunk %lu %lu corrupt, not in range [%lu,%lu]", chunk, sz, ctx->in[ in_idx ].chunk0, ctx->in[ in_idx ].wmark )); - + if( FD_UNLIKELY( chunkchunk0 || chunk>in->wmark || sz>in->mtu ) ) + FD_LOG_CRIT(( "chunk %lu %lu corrupt, not in range [%lu,%lu]", chunk, sz, in->chunk0, in->wmark )); ctx->chunk = chunk; break; + case IN_KIND_TXSEND: { + if( FD_UNLIKELY( chunkchunk0 || chunk>in->wmark || sz>in->mtu ) ) + FD_LOG_CRIT(( "chunk %lu corrupt, not in range [%lu,%lu]", chunk, in->chunk0, in->wmark )); + if( FD_UNLIKELY( sz > sizeof(ctx->txn_buf ) ) ) + FD_LOG_CRIT(( "txsend_out frag sz %lu exceeds buf sz %lu", sz, sizeof(ctx->txn_buf) )); + uchar const * buf = fd_chunk_to_laddr_const( in->mem, chunk ); + fd_memcpy( ctx->txn_buf, buf, sz ); + ctx->txn_buf_sz = sz; + break; + } default: - FD_LOG_ERR(( "unexpected in_kind %d %lu", ctx->in_kind[ in_idx ], in_idx )); + FD_LOG_CRIT(( "unexpected in_kind %d %lu", ctx->in_kind[ in_idx ], in_idx )); } } @@ -210,7 +322,7 @@ after_frag( fd_event_tile_t * ctx, ulong tsorig, ulong tspub, fd_stem_context_t * stem ) { - (void)seq; (void)sz; (void)tsorig; (void)stem; + (void)seq; (void)sz; (void)stem; switch( ctx->in_kind[ in_idx ] ) { case IN_KIND_SHRED: { @@ -324,6 +436,9 @@ after_frag( fd_event_tile_t * ctx, FD_TEST( sig && sig<=USHORT_MAX ); fd_event_client_init_shred_version( ctx->client, (ushort)sig ); break; + case IN_KIND_TXSEND: + on_txsend_frag( ctx, tsorig ); + break; default: FD_LOG_ERR(( "unexpected in_kind %d", ctx->in_kind[ in_idx ] )); } @@ -502,10 +617,12 @@ unprivileged_init( fd_topo_t const * topo, fd_net_rx_bounds_init( &ctx->in[ i ].net_rx, link->dcache ); ctx->in_kind[ i ] = IN_KIND_SHRED; continue; /* only net_rx needs to be set in this case. */ - } else if( FD_LIKELY( !strcmp( link->name, "dedup_resolv" ) ) ) ctx->in_kind[ i ] = IN_KIND_DEDUP; + } + else if( FD_LIKELY( !strcmp( link->name, "dedup_resolv" ) ) ) ctx->in_kind[ i ] = IN_KIND_DEDUP; else if( FD_LIKELY( !strcmp( link->name, "sign_event" ) ) ) ctx->in_kind[ i ] = IN_KIND_SIGN; else if( FD_LIKELY( !strcmp( link->name, "genesi_out" ) ) ) ctx->in_kind[ i ] = IN_KIND_GENESI; else if( FD_LIKELY( !strcmp( link->name, "ipecho_out" ) ) ) ctx->in_kind[ i ] = IN_KIND_IPECHO; + else if( FD_LIKELY( !strcmp( link->name, "txsend_out" ) ) ) ctx->in_kind[ i ] = IN_KIND_TXSEND; else FD_LOG_ERR(( "event tile has unexpected input link %lu %s", i, link->name )); ctx->in[ i ].mem = link_wksp->wksp; diff --git a/src/disco/events/schema/events.proto b/src/disco/events/schema/events.proto index 3ef7a21b62b..c6a9ede4958 100644 --- a/src/disco/events/schema/events.proto +++ b/src/disco/events/schema/events.proto @@ -52,10 +52,33 @@ message Shred { bytes payload = 4; } +// The validator generated a vote transaction +message SignedVote { + // Serialized signed vote transaction + bytes signed_txn = 1; + // The public key of the vote account + bytes vote_account = 2; + // The public key that authorized the vote + bytes vote_authority = 3; + // The public key that pays for transaction fees + bytes fee_payer = 4; + // Signature identifying the transaction + bytes signature = 5; + // Slot being voted on (top of tower) + uint64 vote_slot = 6; + // Bank hash of the slot being voted on + bytes vote_bank_hash = 7; + // Block ID of the slot being voted on + bytes vote_block_id = 8; + // Recent blockhash parameter of the vote transaction + bytes txn_blockhash = 9; +} + // Combined event type message Event { oneof event { Txn txn = 1; Shred shred = 2; + SignedVote signed_vote = 3; } } diff --git a/src/disco/events/schema/signed_vote.json b/src/disco/events/schema/signed_vote.json new file mode 100644 index 00000000000..7f5c2e02b5a --- /dev/null +++ b/src/disco/events/schema/signed_vote.json @@ -0,0 +1,16 @@ +{ + "name": "signed_vote", + "id": 3, + "description": "The validator generated a vote transaction", + "fields": { + "signed_txn": { "type": "Bytes", "description": "Serialized signed vote transaction" }, + "vote_account": { "type": "Pubkey", "description": "The public key of the vote account" }, + "vote_authority": { "type": "Pubkey", "description": "The public key that authorized the vote" }, + "fee_payer": { "type": "Pubkey", "description": "The public key that pays for transaction fees" }, + "signature": { "type": "Signature", "description": "Signature identifying the transaction" }, + "vote_slot": { "type": "UInt64", "description": "Slot being voted on (top of tower)" }, + "vote_bank_hash": { "type": "Pubkey", "description": "Bank hash of the slot being voted on" }, + "vote_block_id": { "type": "Pubkey", "description": "Block ID of the slot being voted on" }, + "txn_blockhash": { "type": "Pubkey", "description": "Recent blockhash parameter of the vote transaction" } + } +} diff --git a/src/discof/txsend/fd_txsend_tile.c b/src/discof/txsend/fd_txsend_tile.c index a7b157ebf6c..80cc9ffe643 100644 --- a/src/discof/txsend/fd_txsend_tile.c +++ b/src/discof/txsend/fd_txsend_tile.c @@ -509,7 +509,8 @@ handle_contact_info_update( fd_txsend_tile_t * ctx, static void handle_vote_msg( fd_txsend_tile_t * ctx, fd_stem_context_t * stem, - fd_tower_slot_done_t const * slot_done ) { + fd_tower_slot_done_t const * slot_done, + ulong tsorig_comp ) { if( FD_UNLIKELY( slot_done->vote_slot==ULONG_MAX ) ) return; if( FD_UNLIKELY( !slot_done->has_vote_txn ) ) return; @@ -547,8 +548,9 @@ handle_vote_msg( fd_txsend_tile_t * ctx, send_vote_to_leader( ctx, leader, payload, slot_done->vote_txn_sz ); } - ulong msg_sz = fd_txn_m_realized_footprint( txnm, 0, 0 ); - fd_stem_publish( stem, ctx->txsend_out->idx, 1UL, ctx->txsend_out->chunk, msg_sz, 0UL, 0, 0 ); + ulong msg_sz = fd_txn_m_realized_footprint( txnm, 0, 0 ); + ulong tspub_comp = fd_frag_meta_ts_comp( fd_tickcount() ); + fd_stem_publish( stem, ctx->txsend_out->idx, 1UL, ctx->txsend_out->chunk, msg_sz, 0UL, tsorig_comp, tspub_comp ); ctx->txsend_out->chunk = fd_dcache_compact_next( ctx->txsend_out->chunk, msg_sz, ctx->txsend_out->chunk0, ctx->txsend_out->wmark ); } @@ -609,7 +611,7 @@ after_frag( fd_txsend_tile_t * ctx, ulong tsorig, ulong tspub, fd_stem_context_t * stem ) { - (void)seq; (void)sig; (void)tsorig; (void)tspub; + (void)seq; (void)sig; (void)tspub; if( FD_LIKELY( ctx->in_kind[ in_idx ]==IN_KIND_NET ) ) { uchar * ip_packet = ctx->quic_buf+sizeof(fd_eth_hdr_t); @@ -619,7 +621,7 @@ after_frag( fd_txsend_tile_t * ctx, if( FD_LIKELY( sig==FD_GOSSIP_UPDATE_TAG_CONTACT_INFO ) ) handle_contact_info_update( ctx, fd_chunk_to_laddr_const( ctx->in[ in_idx ].mem, ctx->chunk ) ); else handle_contact_info_remove( ctx, fd_chunk_to_laddr_const( ctx->in[ in_idx ].mem, ctx->chunk ) ); } else if( FD_UNLIKELY( ctx->in_kind[ in_idx ]==IN_KIND_TOWER ) ) { - handle_vote_msg( ctx, stem, fd_chunk_to_laddr_const( ctx->in[ in_idx ].mem, ctx->chunk ) ); + handle_vote_msg( ctx, stem, fd_chunk_to_laddr_const( ctx->in[ in_idx ].mem, ctx->chunk ), tsorig ); } else if( FD_UNLIKELY( ctx->in_kind[ in_idx ]==IN_KIND_EPOCH ) ) { fd_multi_epoch_leaders_epoch_msg_init( ctx->mleaders, fd_chunk_to_laddr_const( ctx->in[ in_idx ].mem, ctx->chunk ) ); fd_multi_epoch_leaders_stake_msg_fini( ctx->mleaders ); From 62a79da4842ef4f99e9a19b3c4d03e356afed7dc Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Fri, 12 Jun 2026 20:29:28 +0000 Subject: [PATCH 09/61] events: add tower to signed_vote event --- src/disco/events/fd_event_tile.c | 10 ++++++++++ src/disco/events/schema/events.proto | 10 ++++++++++ src/disco/events/schema/signed_vote.json | 20 +++++++++++++++++++- 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/disco/events/fd_event_tile.c b/src/disco/events/fd_event_tile.c index e16e577f01e..c8047f143ee 100644 --- a/src/disco/events/fd_event_tile.c +++ b/src/disco/events/fd_event_tile.c @@ -222,6 +222,7 @@ on_txsend_frag( fd_event_tile_t * ctx, fd_compact_tower_sync_serde_t sync[1]; if( FD_UNLIKELY( 0!=fd_compact_tower_sync_de( sync, instr_data, instr_data_sz ) ) ) return 0; if( FD_UNLIKELY( sync->lockouts_cnt==0 ) ) return 0; + if( FD_UNLIKELY( sync->lockouts_cnt>32 ) ) return 0; fd_acct_addr_t const * fee_payer = &addrs[ 0 ]; fd_acct_addr_t const * vote_acct_addr = &addrs[ instr_addrs[ 0 ] ]; @@ -261,6 +262,15 @@ on_txsend_frag( fd_event_tile_t * ctx, fd_pb_push_bytes ( encoder, 8U, sync->block_id.uc, sizeof(fd_hash_t) ); fd_pb_push_bytes ( encoder, 9U, rbh, sizeof(fd_hash_t) ); + ulong slot = root_slot; + for( ulong i=0UL; ilockouts_cnt; i++ ) { + slot += sync->lockouts[ i ].offset; + fd_pb_submsg_open( encoder, 10U ); /* lockout entry */ + fd_pb_push_uint64( encoder, 1U, slot ); + fd_pb_push_uint32( encoder, 2U, sync->lockouts[ i ].confirmation_count ); + fd_pb_submsg_close( encoder ); + } + fd_pb_submsg_close( encoder ); fd_pb_submsg_close( encoder ); fd_circq_resize_back( ctx->circq, fd_pb_encoder_out_sz( encoder ) ); diff --git a/src/disco/events/schema/events.proto b/src/disco/events/schema/events.proto index c6a9ede4958..c675e822ae7 100644 --- a/src/disco/events/schema/events.proto +++ b/src/disco/events/schema/events.proto @@ -20,6 +20,14 @@ enum ShredProtocol { SHRED_PROTOCOL_LEADER = 3; // Leader } +// Slot that was voted on +message SignedVoteTower { + // Slot being voted on / locked out for + uint64 slot = 1; + // Confirmation count (higher = closer to root) + uint32 confirmation_count = 2; +} + // The validator received a verified, deduplicated transaction message Txn { // The source IP address of the transaction sender @@ -72,6 +80,8 @@ message SignedVote { bytes vote_block_id = 8; // Recent blockhash parameter of the vote transaction bytes txn_blockhash = 9; + // Tower of slots being voted on (oldest to newest) + repeated SignedVoteTower tower = 10; } // Combined event type diff --git a/src/disco/events/schema/signed_vote.json b/src/disco/events/schema/signed_vote.json index 7f5c2e02b5a..372dc18fe02 100644 --- a/src/disco/events/schema/signed_vote.json +++ b/src/disco/events/schema/signed_vote.json @@ -11,6 +11,24 @@ "vote_slot": { "type": "UInt64", "description": "Slot being voted on (top of tower)" }, "vote_bank_hash": { "type": "Pubkey", "description": "Bank hash of the slot being voted on" }, "vote_block_id": { "type": "Pubkey", "description": "Block ID of the slot being voted on" }, - "txn_blockhash": { "type": "Pubkey", "description": "Recent blockhash parameter of the vote transaction" } + "txn_blockhash": { "type": "Pubkey", "description": "Recent blockhash parameter of the vote transaction" }, + "tower": { + "type": "Array", + "description": "Tower of slots being voted on (oldest to newest)", + "element": { + "type": "Tuple", + "description": "Slot that was voted on", + "fields": { + "slot": { + "type": "UInt64", + "description": "Slot being voted on / locked out for" + }, + "confirmation_count": { + "type": "UInt8", + "description": "Confirmation count (higher = closer to root)" + } + } + } + } } } From 9c3b70886376b131e6acf28bf959730ba7ee5b2d Mon Sep 17 00:00:00 2001 From: Kevin J Bowers Date: Fri, 24 Apr 2026 14:42:04 -0500 Subject: [PATCH 10/61] update fd_vinyl_data sizeclasses By popular demand, updated the sizeclass configuration for fd_vinyl_data to be less aggressive about preeemptively allocating blocks. This uses superblocks that are 2 to 4 times smaller than previously and 4 times fewer sizeclasses, which implies there will be roughly an order of magnitude less preemptive allocation. The tradeoff is that superblocks hold 2 to 4 times fewer allocation blocks and a deeper nesting (which implies some increase in computational overhead). Likewise, this increases the worst case rounding up of allocations to sizeclass block sizes by roughly a a factor of 2 (which is a bit of a mixed bag ... a few percent extra overhead on fixed sized allocations but a cheaper ability to do incremental resizing). The volume footprint increased somewhat with this. But gen_szc_cfg can be easily modified to use the old volume footprint (or even a smaller or more power-of-2-ish volume footprint). --- src/vinyl/data/fd_vinyl_data.h | 10 +- src/vinyl/data/fd_vinyl_data_szc_cfg.c | 431 ++++++------------------- src/vinyl/data/gen_szc_cfg.m | 152 +++++---- src/vinyl/data/test_vinyl_data.c | 8 +- 4 files changed, 187 insertions(+), 414 deletions(-) diff --git a/src/vinyl/data/fd_vinyl_data.h b/src/vinyl/data/fd_vinyl_data.h index cfd3dd58986..f7e9b4d64ba 100644 --- a/src/vinyl/data/fd_vinyl_data.h +++ b/src/vinyl/data/fd_vinyl_data.h @@ -76,6 +76,10 @@ #include "../io/fd_vinyl_io.h" +#define FD_VINYL_DATA_VOL_FOOTPRINT (41944192UL) /* autogenerated */ +#define FD_VINYL_DATA_SZC_CNT (83UL) /* autogenerated */ +#define FD_VINYL_DATA_SZC_ITER_MAX (7UL) /* autogenerated */ + /* fd_vinyl_data_szc **************************************************/ struct __attribute__((aligned(8))) fd_vinyl_data_szc_cfg { @@ -96,8 +100,6 @@ FD_PROTOTYPES_BEGIN /* fd_vinyl_data_szc_cfg describes the sizeclasses used by the data cache. Indexed [0,FD_VINYL_DATA_SZC_CNT). */ -#define FD_VINYL_DATA_SZC_CNT (327UL) - extern fd_vinyl_data_szc_cfg_t const fd_vinyl_data_szc_cfg[ FD_VINYL_DATA_SZC_CNT ]; /* fd_vinyl_data_szc_obj_footprint returns the in-memory footprint for @@ -140,7 +142,7 @@ fd_vinyl_data_szc( ulong val_max ) { ulong l = 0UL; ulong h = FD_VINYL_DATA_SZC_CNT-1UL; - for( ulong rem=9UL; rem; rem-- ) { /* Update if FD_VINYL_DATA_SZC_CNT changed */ + for( ulong rem=FD_VINYL_DATA_SZC_ITER_MAX; rem; rem-- ) { /* At this point, szc in [0,l) aren't suitable, szc in [h,CNT) are suitable and szc in [l,h) are untested. See fd_alloc for more @@ -322,8 +324,6 @@ FD_PROTOTYPES_END /* fd_vinyl_data_vol **************************************************/ -#define FD_VINYL_DATA_VOL_FOOTPRINT (34078592UL) /* autogenerated */ - struct fd_vinyl_data_vol { fd_vinyl_data_obj_t obj[1]; uchar data[ FD_VINYL_DATA_VOL_FOOTPRINT - sizeof(fd_vinyl_data_obj_t) ]; diff --git a/src/vinyl/data/fd_vinyl_data_szc_cfg.c b/src/vinyl/data/fd_vinyl_data_szc_cfg.c index 0cfdb005297..d97e35f9092 100644 --- a/src/vinyl/data/fd_vinyl_data_szc_cfg.c +++ b/src/vinyl/data/fd_vinyl_data_szc_cfg.c @@ -1,343 +1,100 @@ #include "fd_vinyl_data.h" /* This table autogenerated - io_block 128 - ctl_sz 8 - key_sz 32 - info_sz 16 - ftr_sz 16 - obj_cnt_min 2 - obj_cnt_max 64 - obj_cnt_lvl 2 - val_min 0 - val_max 10485816 */ + io_block 128 + ctl_sz 8 + key_sz 32 + info_sz 16 + ftr_sz 16 + obj_cnt_min 4 + obj_cnt_max 16 + val_min 0 + val_max 10485816 + root_sb_footprint 41944192 + gamma 1.066667e+00 */ fd_vinyl_data_szc_cfg_t const fd_vinyl_data_szc_cfg[ FD_VINYL_DATA_SZC_CNT ] = { - /* 0 */ { 56U, (ushort)64, (ushort) 91 }, // obj_footprint 256 sb_footprint 16512 - /* 1 */ { 184U, (ushort)42, (ushort) 91 }, // obj_footprint 384 sb_footprint 16512 - /* 2 */ { 312U, (ushort)32, (ushort) 91 }, // obj_footprint 512 sb_footprint 16512 - /* 3 */ { 440U, (ushort)25, (ushort) 91 }, // obj_footprint 640 sb_footprint 16512 - /* 4 */ { 568U, (ushort)21, (ushort) 91 }, // obj_footprint 768 sb_footprint 16512 - /* 5 */ { 696U, (ushort)18, (ushort) 91 }, // obj_footprint 896 sb_footprint 16512 - /* 6 */ { 824U, (ushort)16, (ushort) 91 }, // obj_footprint 1024 sb_footprint 16512 - /* 7 */ { 952U, (ushort)14, (ushort) 91 }, // obj_footprint 1152 sb_footprint 16512 - /* 8 */ { 1080U, (ushort)12, (ushort) 91 }, // obj_footprint 1280 sb_footprint 16512 - /* 9 */ { 1208U, (ushort)11, (ushort) 91 }, // obj_footprint 1408 sb_footprint 16512 - /* 10 */ { 1336U, (ushort)10, (ushort) 91 }, // obj_footprint 1536 sb_footprint 16512 - /* 11 */ { 1464U, (ushort)19, (ushort)126 }, // obj_footprint 1664 sb_footprint 33152 - /* 12 */ { 1592U, (ushort) 9, (ushort) 91 }, // obj_footprint 1792 sb_footprint 16512 - /* 13 */ { 1720U, (ushort)17, (ushort)126 }, // obj_footprint 1920 sb_footprint 33152 - /* 14 */ { 1848U, (ushort) 8, (ushort) 91 }, // obj_footprint 2048 sb_footprint 16512 - /* 15 */ { 1976U, (ushort)15, (ushort)126 }, // obj_footprint 2176 sb_footprint 33152 - /* 16 */ { 2104U, (ushort) 7, (ushort) 91 }, // obj_footprint 2304 sb_footprint 16512 - /* 17 */ { 2232U, (ushort)13, (ushort)126 }, // obj_footprint 2432 sb_footprint 33152 - /* 18 */ { 2360U, (ushort)25, (ushort)159 }, // obj_footprint 2560 sb_footprint 66432 - /* 19 */ { 2488U, (ushort) 6, (ushort) 91 }, // obj_footprint 2688 sb_footprint 16512 - /* 20 */ { 2616U, (ushort)23, (ushort)159 }, // obj_footprint 2816 sb_footprint 66432 - /* 21 */ { 2744U, (ushort)11, (ushort)126 }, // obj_footprint 2944 sb_footprint 33152 - /* 22 */ { 2872U, (ushort)21, (ushort)159 }, // obj_footprint 3072 sb_footprint 66432 - /* 23 */ { 3000U, (ushort) 5, (ushort) 91 }, // obj_footprint 3200 sb_footprint 16512 - /* 24 */ { 3128U, (ushort)39, (ushort)192 }, // obj_footprint 3328 sb_footprint 132992 - /* 25 */ { 3256U, (ushort)19, (ushort)159 }, // obj_footprint 3456 sb_footprint 66432 - /* 26 */ { 3384U, (ushort) 9, (ushort)126 }, // obj_footprint 3584 sb_footprint 33152 - /* 27 */ { 3512U, (ushort)35, (ushort)192 }, // obj_footprint 3712 sb_footprint 132992 - /* 28 */ { 3640U, (ushort)17, (ushort)159 }, // obj_footprint 3840 sb_footprint 66432 - /* 29 */ { 3768U, (ushort)33, (ushort)192 }, // obj_footprint 3968 sb_footprint 132992 - /* 30 */ { 3896U, (ushort) 4, (ushort) 91 }, // obj_footprint 4096 sb_footprint 16512 - /* 31 */ { 4024U, (ushort)31, (ushort)192 }, // obj_footprint 4224 sb_footprint 132992 - /* 32 */ { 4152U, (ushort)15, (ushort)159 }, // obj_footprint 4352 sb_footprint 66432 - /* 33 */ { 4280U, (ushort)29, (ushort)192 }, // obj_footprint 4480 sb_footprint 132992 - /* 34 */ { 4408U, (ushort) 7, (ushort)126 }, // obj_footprint 4608 sb_footprint 33152 - /* 35 */ { 4536U, (ushort)14, (ushort)159 }, // obj_footprint 4736 sb_footprint 66432 - /* 36 */ { 4664U, (ushort)27, (ushort)192 }, // obj_footprint 4864 sb_footprint 132992 - /* 37 */ { 4792U, (ushort)13, (ushort)159 }, // obj_footprint 4992 sb_footprint 66432 - /* 38 */ { 4920U, (ushort)51, (ushort)224 }, // obj_footprint 5120 sb_footprint 266112 - /* 39 */ { 5048U, (ushort)25, (ushort)192 }, // obj_footprint 5248 sb_footprint 132992 - /* 40 */ { 5176U, (ushort) 3, (ushort) 91 }, // obj_footprint 5376 sb_footprint 16512 - /* 41 */ { 5304U, (ushort) 6, (ushort)126 }, // obj_footprint 5504 sb_footprint 33152 - /* 42 */ { 5432U, (ushort)47, (ushort)224 }, // obj_footprint 5632 sb_footprint 266112 - /* 43 */ { 5560U, (ushort)23, (ushort)192 }, // obj_footprint 5760 sb_footprint 132992 - /* 44 */ { 5688U, (ushort)45, (ushort)224 }, // obj_footprint 5888 sb_footprint 266112 - /* 45 */ { 5816U, (ushort)11, (ushort)159 }, // obj_footprint 6016 sb_footprint 66432 - /* 46 */ { 5944U, (ushort)43, (ushort)224 }, // obj_footprint 6144 sb_footprint 266112 - /* 47 */ { 6072U, (ushort)21, (ushort)192 }, // obj_footprint 6272 sb_footprint 132992 - /* 48 */ { 6200U, (ushort)41, (ushort)224 }, // obj_footprint 6400 sb_footprint 266112 - /* 49 */ { 6328U, (ushort) 5, (ushort)126 }, // obj_footprint 6528 sb_footprint 33152 - /* 50 */ { 6584U, (ushort)39, (ushort)224 }, // obj_footprint 6784 sb_footprint 266112 - /* 51 */ { 6712U, (ushort)19, (ushort)192 }, // obj_footprint 6912 sb_footprint 132992 - /* 52 */ { 6968U, (ushort)37, (ushort)224 }, // obj_footprint 7168 sb_footprint 266112 - /* 53 */ { 7096U, (ushort) 9, (ushort)159 }, // obj_footprint 7296 sb_footprint 66432 - /* 54 */ { 7352U, (ushort)35, (ushort)224 }, // obj_footprint 7552 sb_footprint 266112 - /* 55 */ { 7608U, (ushort)17, (ushort)192 }, // obj_footprint 7808 sb_footprint 132992 - /* 56 */ { 7736U, (ushort)33, (ushort)224 }, // obj_footprint 7936 sb_footprint 266112 - /* 57 */ { 7992U, (ushort) 2, (ushort) 91 }, // obj_footprint 8192 sb_footprint 16512 - /* 58 */ { 8248U, (ushort)63, (ushort)258 }, // obj_footprint 8448 sb_footprint 532352 - /* 59 */ { 8376U, (ushort)31, (ushort)224 }, // obj_footprint 8576 sb_footprint 266112 - /* 60 */ { 8504U, (ushort)61, (ushort)258 }, // obj_footprint 8704 sb_footprint 532352 - /* 61 */ { 8632U, (ushort)15, (ushort)192 }, // obj_footprint 8832 sb_footprint 132992 - /* 62 */ { 8760U, (ushort)59, (ushort)258 }, // obj_footprint 8960 sb_footprint 532352 - /* 63 */ { 8888U, (ushort)29, (ushort)224 }, // obj_footprint 9088 sb_footprint 266112 - /* 64 */ { 9016U, (ushort)57, (ushort)258 }, // obj_footprint 9216 sb_footprint 532352 - /* 65 */ { 9272U, (ushort) 7, (ushort)159 }, // obj_footprint 9472 sb_footprint 66432 - /* 66 */ { 9400U, (ushort)55, (ushort)258 }, // obj_footprint 9600 sb_footprint 532352 - /* 67 */ { 9528U, (ushort)27, (ushort)224 }, // obj_footprint 9728 sb_footprint 266112 - /* 68 */ { 9656U, (ushort)54, (ushort)258 }, // obj_footprint 9856 sb_footprint 532352 - /* 69 */ { 9784U, (ushort)53, (ushort)258 }, // obj_footprint 9984 sb_footprint 532352 - /* 70 */ { 9912U, (ushort)13, (ushort)192 }, // obj_footprint 10112 sb_footprint 132992 - /* 71 */ { 10168U, (ushort)51, (ushort)258 }, // obj_footprint 10368 sb_footprint 532352 - /* 72 */ { 10424U, (ushort)25, (ushort)224 }, // obj_footprint 10624 sb_footprint 266112 - /* 73 */ { 10552U, (ushort)49, (ushort)258 }, // obj_footprint 10752 sb_footprint 532352 - /* 74 */ { 10808U, (ushort) 3, (ushort)126 }, // obj_footprint 11008 sb_footprint 33152 - /* 75 */ { 11064U, (ushort)47, (ushort)258 }, // obj_footprint 11264 sb_footprint 532352 - /* 76 */ { 11320U, (ushort)23, (ushort)224 }, // obj_footprint 11520 sb_footprint 266112 - /* 77 */ { 11576U, (ushort)45, (ushort)258 }, // obj_footprint 11776 sb_footprint 532352 - /* 78 */ { 11832U, (ushort)11, (ushort)192 }, // obj_footprint 12032 sb_footprint 132992 - /* 79 */ { 12088U, (ushort)43, (ushort)258 }, // obj_footprint 12288 sb_footprint 532352 - /* 80 */ { 12344U, (ushort)21, (ushort)224 }, // obj_footprint 12544 sb_footprint 266112 - /* 81 */ { 12472U, (ushort)42, (ushort)258 }, // obj_footprint 12672 sb_footprint 532352 - /* 82 */ { 12728U, (ushort)41, (ushort)258 }, // obj_footprint 12928 sb_footprint 532352 - /* 83 */ { 12984U, (ushort) 5, (ushort)159 }, // obj_footprint 13184 sb_footprint 66432 - /* 84 */ { 13368U, (ushort)39, (ushort)258 }, // obj_footprint 13568 sb_footprint 532352 - /* 85 */ { 13752U, (ushort)19, (ushort)224 }, // obj_footprint 13952 sb_footprint 266112 - /* 86 */ { 14136U, (ushort)37, (ushort)258 }, // obj_footprint 14336 sb_footprint 532352 - /* 87 */ { 14520U, (ushort) 9, (ushort)192 }, // obj_footprint 14720 sb_footprint 132992 - /* 88 */ { 14904U, (ushort)35, (ushort)258 }, // obj_footprint 15104 sb_footprint 532352 - /* 89 */ { 15416U, (ushort)17, (ushort)224 }, // obj_footprint 15616 sb_footprint 266112 - /* 90 */ { 15928U, (ushort)33, (ushort)258 }, // obj_footprint 16128 sb_footprint 532352 - /* 91 */ { 16312U, (ushort) 2, (ushort)126 }, // obj_footprint 16512 sb_footprint 33152 - /* 92 */ { 16696U, (ushort)63, (ushort)291 }, // obj_footprint 16896 sb_footprint 1064832 - /* 93 */ { 16952U, (ushort)31, (ushort)258 }, // obj_footprint 17152 sb_footprint 532352 - /* 94 */ { 17208U, (ushort)61, (ushort)291 }, // obj_footprint 17408 sb_footprint 1064832 - /* 95 */ { 17464U, (ushort)15, (ushort)224 }, // obj_footprint 17664 sb_footprint 266112 - /* 96 */ { 17720U, (ushort)59, (ushort)291 }, // obj_footprint 17920 sb_footprint 1064832 - /* 97 */ { 18104U, (ushort)29, (ushort)258 }, // obj_footprint 18304 sb_footprint 532352 - /* 98 */ { 18360U, (ushort)57, (ushort)291 }, // obj_footprint 18560 sb_footprint 1064832 - /* 99 */ { 18744U, (ushort) 7, (ushort)192 }, // obj_footprint 18944 sb_footprint 132992 - /* 100 */ { 19128U, (ushort)55, (ushort)291 }, // obj_footprint 19328 sb_footprint 1064832 - /* 101 */ { 19512U, (ushort)27, (ushort)258 }, // obj_footprint 19712 sb_footprint 532352 - /* 102 */ { 19768U, (ushort)53, (ushort)291 }, // obj_footprint 19968 sb_footprint 1064832 - /* 103 */ { 20152U, (ushort)13, (ushort)224 }, // obj_footprint 20352 sb_footprint 266112 - /* 104 */ { 20664U, (ushort)51, (ushort)291 }, // obj_footprint 20864 sb_footprint 1064832 - /* 105 */ { 21048U, (ushort)25, (ushort)258 }, // obj_footprint 21248 sb_footprint 532352 - /* 106 */ { 21432U, (ushort)49, (ushort)291 }, // obj_footprint 21632 sb_footprint 1064832 - /* 107 */ { 21816U, (ushort) 3, (ushort)159 }, // obj_footprint 22016 sb_footprint 66432 - /* 108 */ { 21944U, (ushort) 6, (ushort)192 }, // obj_footprint 22144 sb_footprint 132992 - /* 109 */ { 22328U, (ushort)47, (ushort)291 }, // obj_footprint 22528 sb_footprint 1064832 - /* 110 */ { 22840U, (ushort)23, (ushort)258 }, // obj_footprint 23040 sb_footprint 532352 - /* 111 */ { 23352U, (ushort)45, (ushort)291 }, // obj_footprint 23552 sb_footprint 1064832 - /* 112 */ { 23864U, (ushort)11, (ushort)224 }, // obj_footprint 24064 sb_footprint 266112 - /* 113 */ { 23992U, (ushort)22, (ushort)258 }, // obj_footprint 24192 sb_footprint 532352 - /* 114 */ { 24504U, (ushort)43, (ushort)291 }, // obj_footprint 24704 sb_footprint 1064832 - /* 115 */ { 25144U, (ushort)21, (ushort)258 }, // obj_footprint 25344 sb_footprint 532352 - /* 116 */ { 25656U, (ushort)41, (ushort)291 }, // obj_footprint 25856 sb_footprint 1064832 - /* 117 */ { 26296U, (ushort) 5, (ushort)192 }, // obj_footprint 26496 sb_footprint 132992 - /* 118 */ { 27064U, (ushort)39, (ushort)291 }, // obj_footprint 27264 sb_footprint 1064832 - /* 119 */ { 27704U, (ushort)19, (ushort)258 }, // obj_footprint 27904 sb_footprint 532352 - /* 120 */ { 28472U, (ushort)37, (ushort)291 }, // obj_footprint 28672 sb_footprint 1064832 - /* 121 */ { 29240U, (ushort) 9, (ushort)224 }, // obj_footprint 29440 sb_footprint 266112 - /* 122 */ { 29368U, (ushort)18, (ushort)258 }, // obj_footprint 29568 sb_footprint 532352 - /* 123 */ { 30136U, (ushort)35, (ushort)291 }, // obj_footprint 30336 sb_footprint 1064832 - /* 124 */ { 31032U, (ushort)17, (ushort)258 }, // obj_footprint 31232 sb_footprint 532352 - /* 125 */ { 32056U, (ushort)33, (ushort)291 }, // obj_footprint 32256 sb_footprint 1064832 - /* 126 */ { 32952U, (ushort) 2, (ushort)159 }, // obj_footprint 33152 sb_footprint 66432 - /* 127 */ { 33592U, (ushort)63, (ushort)309 }, // obj_footprint 33792 sb_footprint 2129792 - /* 128 */ { 34104U, (ushort)31, (ushort)291 }, // obj_footprint 34304 sb_footprint 1064832 - /* 129 */ { 34616U, (ushort)61, (ushort)309 }, // obj_footprint 34816 sb_footprint 2129792 - /* 130 */ { 35256U, (ushort)15, (ushort)258 }, // obj_footprint 35456 sb_footprint 532352 - /* 131 */ { 35896U, (ushort)59, (ushort)309 }, // obj_footprint 36096 sb_footprint 2129792 - /* 132 */ { 36408U, (ushort)29, (ushort)291 }, // obj_footprint 36608 sb_footprint 1064832 - /* 133 */ { 37048U, (ushort)57, (ushort)309 }, // obj_footprint 37248 sb_footprint 2129792 - /* 134 */ { 37688U, (ushort) 7, (ushort)224 }, // obj_footprint 37888 sb_footprint 266112 - /* 135 */ { 37816U, (ushort)14, (ushort)258 }, // obj_footprint 38016 sb_footprint 532352 - /* 136 */ { 38456U, (ushort)55, (ushort)309 }, // obj_footprint 38656 sb_footprint 2129792 - /* 137 */ { 39224U, (ushort)27, (ushort)291 }, // obj_footprint 39424 sb_footprint 1064832 - /* 138 */ { 39864U, (ushort)53, (ushort)309 }, // obj_footprint 40064 sb_footprint 2129792 - /* 139 */ { 40632U, (ushort)13, (ushort)258 }, // obj_footprint 40832 sb_footprint 532352 - /* 140 */ { 41528U, (ushort)51, (ushort)309 }, // obj_footprint 41728 sb_footprint 2129792 - /* 141 */ { 42296U, (ushort)25, (ushort)291 }, // obj_footprint 42496 sb_footprint 1064832 - /* 142 */ { 43192U, (ushort)49, (ushort)309 }, // obj_footprint 43392 sb_footprint 2129792 - /* 143 */ { 44088U, (ushort) 3, (ushort)192 }, // obj_footprint 44288 sb_footprint 132992 - /* 144 */ { 45112U, (ushort)47, (ushort)309 }, // obj_footprint 45312 sb_footprint 2129792 - /* 145 */ { 46008U, (ushort)23, (ushort)291 }, // obj_footprint 46208 sb_footprint 1064832 - /* 146 */ { 47032U, (ushort)45, (ushort)309 }, // obj_footprint 47232 sb_footprint 2129792 - /* 147 */ { 48184U, (ushort)11, (ushort)258 }, // obj_footprint 48384 sb_footprint 532352 - /* 148 */ { 49208U, (ushort)43, (ushort)309 }, // obj_footprint 49408 sb_footprint 2129792 - /* 149 */ { 50488U, (ushort)21, (ushort)291 }, // obj_footprint 50688 sb_footprint 1064832 - /* 150 */ { 51640U, (ushort)41, (ushort)309 }, // obj_footprint 51840 sb_footprint 2129792 - /* 151 */ { 52920U, (ushort) 5, (ushort)224 }, // obj_footprint 53120 sb_footprint 266112 - /* 152 */ { 54328U, (ushort)39, (ushort)309 }, // obj_footprint 54528 sb_footprint 2129792 - /* 153 */ { 55736U, (ushort)19, (ushort)291 }, // obj_footprint 55936 sb_footprint 1064832 - /* 154 */ { 57272U, (ushort)37, (ushort)309 }, // obj_footprint 57472 sb_footprint 2129792 - /* 155 */ { 58936U, (ushort) 9, (ushort)258 }, // obj_footprint 59136 sb_footprint 532352 - /* 156 */ { 60600U, (ushort)35, (ushort)309 }, // obj_footprint 60800 sb_footprint 2129792 - /* 157 */ { 62392U, (ushort)17, (ushort)291 }, // obj_footprint 62592 sb_footprint 1064832 - /* 158 */ { 64312U, (ushort)33, (ushort)309 }, // obj_footprint 64512 sb_footprint 2129792 - /* 159 */ { 66232U, (ushort) 2, (ushort)192 }, // obj_footprint 66432 sb_footprint 132992 - /* 160 */ { 67384U, (ushort)63, (ushort)318 }, // obj_footprint 67584 sb_footprint 4259712 - /* 161 */ { 68408U, (ushort)31, (ushort)309 }, // obj_footprint 68608 sb_footprint 2129792 - /* 162 */ { 69560U, (ushort)61, (ushort)318 }, // obj_footprint 69760 sb_footprint 4259712 - /* 163 */ { 70712U, (ushort)15, (ushort)291 }, // obj_footprint 70912 sb_footprint 1064832 - /* 164 */ { 71992U, (ushort)59, (ushort)318 }, // obj_footprint 72192 sb_footprint 4259712 - /* 165 */ { 73144U, (ushort)29, (ushort)309 }, // obj_footprint 73344 sb_footprint 2129792 - /* 166 */ { 74424U, (ushort)57, (ushort)318 }, // obj_footprint 74624 sb_footprint 4259712 - /* 167 */ { 75832U, (ushort) 7, (ushort)258 }, // obj_footprint 76032 sb_footprint 532352 - /* 168 */ { 77240U, (ushort)55, (ushort)318 }, // obj_footprint 77440 sb_footprint 4259712 - /* 169 */ { 78648U, (ushort)27, (ushort)309 }, // obj_footprint 78848 sb_footprint 2129792 - /* 170 */ { 80056U, (ushort)53, (ushort)318 }, // obj_footprint 80256 sb_footprint 4259712 - /* 171 */ { 81592U, (ushort)13, (ushort)291 }, // obj_footprint 81792 sb_footprint 1064832 - /* 172 */ { 83256U, (ushort)51, (ushort)318 }, // obj_footprint 83456 sb_footprint 4259712 - /* 173 */ { 84920U, (ushort)25, (ushort)309 }, // obj_footprint 85120 sb_footprint 2129792 - /* 174 */ { 86712U, (ushort)49, (ushort)318 }, // obj_footprint 86912 sb_footprint 4259712 - /* 175 */ { 88376U, (ushort) 3, (ushort)224 }, // obj_footprint 88576 sb_footprint 266112 - /* 176 */ { 88504U, (ushort) 6, (ushort)258 }, // obj_footprint 88704 sb_footprint 532352 - /* 177 */ { 90424U, (ushort)47, (ushort)318 }, // obj_footprint 90624 sb_footprint 4259712 - /* 178 */ { 92344U, (ushort)23, (ushort)309 }, // obj_footprint 92544 sb_footprint 2129792 - /* 179 */ { 94392U, (ushort)45, (ushort)318 }, // obj_footprint 94592 sb_footprint 4259712 - /* 180 */ { 96568U, (ushort)11, (ushort)291 }, // obj_footprint 96768 sb_footprint 1064832 - /* 181 */ { 98744U, (ushort)43, (ushort)318 }, // obj_footprint 98944 sb_footprint 4259712 - /* 182 */ { 101176U, (ushort)21, (ushort)309 }, // obj_footprint 101376 sb_footprint 2129792 - /* 183 */ { 103608U, (ushort)41, (ushort)318 }, // obj_footprint 103808 sb_footprint 4259712 - /* 184 */ { 106168U, (ushort) 5, (ushort)258 }, // obj_footprint 106368 sb_footprint 532352 - /* 185 */ { 108984U, (ushort)39, (ushort)318 }, // obj_footprint 109184 sb_footprint 4259712 - /* 186 */ { 111800U, (ushort)19, (ushort)309 }, // obj_footprint 112000 sb_footprint 2129792 - /* 187 */ { 114872U, (ushort)37, (ushort)318 }, // obj_footprint 115072 sb_footprint 4259712 - /* 188 */ { 118072U, (ushort) 9, (ushort)291 }, // obj_footprint 118272 sb_footprint 1064832 - /* 189 */ { 121400U, (ushort)35, (ushort)318 }, // obj_footprint 121600 sb_footprint 4259712 - /* 190 */ { 124984U, (ushort)17, (ushort)309 }, // obj_footprint 125184 sb_footprint 2129792 - /* 191 */ { 128824U, (ushort)33, (ushort)318 }, // obj_footprint 129024 sb_footprint 4259712 - /* 192 */ { 132792U, (ushort) 2, (ushort)224 }, // obj_footprint 132992 sb_footprint 266112 - /* 193 */ { 134968U, (ushort)63, (ushort)323 }, // obj_footprint 135168 sb_footprint 8519552 - /* 194 */ { 137144U, (ushort)31, (ushort)318 }, // obj_footprint 137344 sb_footprint 4259712 - /* 195 */ { 139448U, (ushort)61, (ushort)323 }, // obj_footprint 139648 sb_footprint 8519552 - /* 196 */ { 141752U, (ushort)15, (ushort)309 }, // obj_footprint 141952 sb_footprint 2129792 - /* 197 */ { 144184U, (ushort)59, (ushort)323 }, // obj_footprint 144384 sb_footprint 8519552 - /* 198 */ { 146616U, (ushort)29, (ushort)318 }, // obj_footprint 146816 sb_footprint 4259712 - /* 199 */ { 149176U, (ushort)57, (ushort)323 }, // obj_footprint 149376 sb_footprint 8519552 - /* 200 */ { 151864U, (ushort) 7, (ushort)291 }, // obj_footprint 152064 sb_footprint 1064832 - /* 201 */ { 154680U, (ushort)55, (ushort)323 }, // obj_footprint 154880 sb_footprint 8519552 - /* 202 */ { 157496U, (ushort)27, (ushort)318 }, // obj_footprint 157696 sb_footprint 4259712 - /* 203 */ { 160440U, (ushort)53, (ushort)323 }, // obj_footprint 160640 sb_footprint 8519552 - /* 204 */ { 163512U, (ushort)13, (ushort)309 }, // obj_footprint 163712 sb_footprint 2129792 - /* 205 */ { 166840U, (ushort)51, (ushort)323 }, // obj_footprint 167040 sb_footprint 8519552 - /* 206 */ { 170168U, (ushort)25, (ushort)318 }, // obj_footprint 170368 sb_footprint 4259712 - /* 207 */ { 173624U, (ushort)49, (ushort)323 }, // obj_footprint 173824 sb_footprint 8519552 - /* 208 */ { 177208U, (ushort) 3, (ushort)258 }, // obj_footprint 177408 sb_footprint 532352 - /* 209 */ { 181048U, (ushort)47, (ushort)323 }, // obj_footprint 181248 sb_footprint 8519552 - /* 210 */ { 184888U, (ushort)23, (ushort)318 }, // obj_footprint 185088 sb_footprint 4259712 - /* 211 */ { 189112U, (ushort)45, (ushort)323 }, // obj_footprint 189312 sb_footprint 8519552 - /* 212 */ { 193336U, (ushort)11, (ushort)309 }, // obj_footprint 193536 sb_footprint 2129792 - /* 213 */ { 197816U, (ushort)43, (ushort)323 }, // obj_footprint 198016 sb_footprint 8519552 - /* 214 */ { 202552U, (ushort)21, (ushort)318 }, // obj_footprint 202752 sb_footprint 4259712 - /* 215 */ { 207544U, (ushort)41, (ushort)323 }, // obj_footprint 207744 sb_footprint 8519552 - /* 216 */ { 212664U, (ushort) 5, (ushort)291 }, // obj_footprint 212864 sb_footprint 1064832 - /* 217 */ { 218168U, (ushort)39, (ushort)323 }, // obj_footprint 218368 sb_footprint 8519552 - /* 218 */ { 223928U, (ushort)19, (ushort)318 }, // obj_footprint 224128 sb_footprint 4259712 - /* 219 */ { 229944U, (ushort)37, (ushort)323 }, // obj_footprint 230144 sb_footprint 8519552 - /* 220 */ { 236344U, (ushort) 9, (ushort)309 }, // obj_footprint 236544 sb_footprint 2129792 - /* 221 */ { 243128U, (ushort)35, (ushort)323 }, // obj_footprint 243328 sb_footprint 8519552 - /* 222 */ { 250296U, (ushort)17, (ushort)318 }, // obj_footprint 250496 sb_footprint 4259712 - /* 223 */ { 257848U, (ushort)33, (ushort)323 }, // obj_footprint 258048 sb_footprint 8519552 - /* 224 */ { 265912U, (ushort) 2, (ushort)258 }, // obj_footprint 266112 sb_footprint 532352 - /* 225 */ { 270136U, (ushort)63, (ushort)326 }, // obj_footprint 270336 sb_footprint 17039232 - /* 226 */ { 274616U, (ushort)31, (ushort)323 }, // obj_footprint 274816 sb_footprint 8519552 - /* 227 */ { 279096U, (ushort)61, (ushort)326 }, // obj_footprint 279296 sb_footprint 17039232 - /* 228 */ { 283704U, (ushort)15, (ushort)318 }, // obj_footprint 283904 sb_footprint 4259712 - /* 229 */ { 288568U, (ushort)59, (ushort)326 }, // obj_footprint 288768 sb_footprint 17039232 - /* 230 */ { 293560U, (ushort)29, (ushort)323 }, // obj_footprint 293760 sb_footprint 8519552 - /* 231 */ { 298680U, (ushort)57, (ushort)326 }, // obj_footprint 298880 sb_footprint 17039232 - /* 232 */ { 303928U, (ushort) 7, (ushort)309 }, // obj_footprint 304128 sb_footprint 2129792 - /* 233 */ { 304056U, (ushort)14, (ushort)318 }, // obj_footprint 304256 sb_footprint 4259712 - /* 234 */ { 309560U, (ushort)55, (ushort)326 }, // obj_footprint 309760 sb_footprint 17039232 - /* 235 */ { 315320U, (ushort)27, (ushort)323 }, // obj_footprint 315520 sb_footprint 8519552 - /* 236 */ { 321208U, (ushort)53, (ushort)326 }, // obj_footprint 321408 sb_footprint 17039232 - /* 237 */ { 327352U, (ushort)13, (ushort)318 }, // obj_footprint 327552 sb_footprint 4259712 - /* 238 */ { 333880U, (ushort)51, (ushort)326 }, // obj_footprint 334080 sb_footprint 17039232 - /* 239 */ { 340536U, (ushort)25, (ushort)323 }, // obj_footprint 340736 sb_footprint 8519552 - /* 240 */ { 347448U, (ushort)49, (ushort)326 }, // obj_footprint 347648 sb_footprint 17039232 - /* 241 */ { 354616U, (ushort) 3, (ushort)291 }, // obj_footprint 354816 sb_footprint 1064832 - /* 242 */ { 354744U, (ushort) 6, (ushort)309 }, // obj_footprint 354944 sb_footprint 2129792 - /* 243 */ { 362296U, (ushort)47, (ushort)326 }, // obj_footprint 362496 sb_footprint 17039232 - /* 244 */ { 370104U, (ushort)23, (ushort)323 }, // obj_footprint 370304 sb_footprint 8519552 - /* 245 */ { 378424U, (ushort)45, (ushort)326 }, // obj_footprint 378624 sb_footprint 17039232 - /* 246 */ { 387000U, (ushort)11, (ushort)318 }, // obj_footprint 387200 sb_footprint 4259712 - /* 247 */ { 395960U, (ushort)43, (ushort)326 }, // obj_footprint 396160 sb_footprint 17039232 - /* 248 */ { 405432U, (ushort)21, (ushort)323 }, // obj_footprint 405632 sb_footprint 8519552 - /* 249 */ { 415288U, (ushort)41, (ushort)326 }, // obj_footprint 415488 sb_footprint 17039232 - /* 250 */ { 425656U, (ushort) 5, (ushort)309 }, // obj_footprint 425856 sb_footprint 2129792 - /* 251 */ { 436664U, (ushort)39, (ushort)326 }, // obj_footprint 436864 sb_footprint 17039232 - /* 252 */ { 448184U, (ushort)19, (ushort)323 }, // obj_footprint 448384 sb_footprint 8519552 - /* 253 */ { 460216U, (ushort)37, (ushort)326 }, // obj_footprint 460416 sb_footprint 17039232 - /* 254 */ { 473016U, (ushort) 9, (ushort)318 }, // obj_footprint 473216 sb_footprint 4259712 - /* 255 */ { 486584U, (ushort)35, (ushort)326 }, // obj_footprint 486784 sb_footprint 17039232 - /* 256 */ { 500920U, (ushort)17, (ushort)323 }, // obj_footprint 501120 sb_footprint 8519552 - /* 257 */ { 516024U, (ushort)33, (ushort)326 }, // obj_footprint 516224 sb_footprint 17039232 - /* 258 */ { 532152U, (ushort) 2, (ushort)291 }, // obj_footprint 532352 sb_footprint 1064832 - /* 259 */ { 540728U, (ushort)63, (ushort)327 }, // obj_footprint 540928 sb_footprint 34078592 - /* 260 */ { 549432U, (ushort)31, (ushort)326 }, // obj_footprint 549632 sb_footprint 17039232 - /* 261 */ { 558392U, (ushort)61, (ushort)327 }, // obj_footprint 558592 sb_footprint 34078592 - /* 262 */ { 567736U, (ushort)15, (ushort)323 }, // obj_footprint 567936 sb_footprint 8519552 - /* 263 */ { 577336U, (ushort)59, (ushort)327 }, // obj_footprint 577536 sb_footprint 34078592 - /* 264 */ { 587320U, (ushort)29, (ushort)326 }, // obj_footprint 587520 sb_footprint 17039232 - /* 265 */ { 597560U, (ushort)57, (ushort)327 }, // obj_footprint 597760 sb_footprint 34078592 - /* 266 */ { 608312U, (ushort) 7, (ushort)318 }, // obj_footprint 608512 sb_footprint 4259712 - /* 267 */ { 619320U, (ushort)55, (ushort)327 }, // obj_footprint 619520 sb_footprint 34078592 - /* 268 */ { 630840U, (ushort)27, (ushort)326 }, // obj_footprint 631040 sb_footprint 17039232 - /* 269 */ { 642744U, (ushort)53, (ushort)327 }, // obj_footprint 642944 sb_footprint 34078592 - /* 270 */ { 655032U, (ushort)13, (ushort)323 }, // obj_footprint 655232 sb_footprint 8519552 - /* 271 */ { 667960U, (ushort)51, (ushort)327 }, // obj_footprint 668160 sb_footprint 34078592 - /* 272 */ { 681272U, (ushort)25, (ushort)326 }, // obj_footprint 681472 sb_footprint 17039232 - /* 273 */ { 695224U, (ushort)49, (ushort)327 }, // obj_footprint 695424 sb_footprint 34078592 - /* 274 */ { 709688U, (ushort) 3, (ushort)309 }, // obj_footprint 709888 sb_footprint 2129792 - /* 275 */ { 724792U, (ushort)47, (ushort)327 }, // obj_footprint 724992 sb_footprint 34078592 - /* 276 */ { 740536U, (ushort)23, (ushort)326 }, // obj_footprint 740736 sb_footprint 17039232 - /* 277 */ { 757048U, (ushort)45, (ushort)327 }, // obj_footprint 757248 sb_footprint 34078592 - /* 278 */ { 774200U, (ushort)11, (ushort)323 }, // obj_footprint 774400 sb_footprint 8519552 - /* 279 */ { 792248U, (ushort)43, (ushort)327 }, // obj_footprint 792448 sb_footprint 34078592 - /* 280 */ { 811064U, (ushort)21, (ushort)326 }, // obj_footprint 811264 sb_footprint 17039232 - /* 281 */ { 811192U, (ushort)42, (ushort)327 }, // obj_footprint 811392 sb_footprint 34078592 - /* 282 */ { 830904U, (ushort)41, (ushort)327 }, // obj_footprint 831104 sb_footprint 34078592 - /* 283 */ { 851640U, (ushort) 5, (ushort)318 }, // obj_footprint 851840 sb_footprint 4259712 - /* 284 */ { 873528U, (ushort)39, (ushort)327 }, // obj_footprint 873728 sb_footprint 34078592 - /* 285 */ { 896568U, (ushort)19, (ushort)326 }, // obj_footprint 896768 sb_footprint 17039232 - /* 286 */ { 920760U, (ushort)37, (ushort)327 }, // obj_footprint 920960 sb_footprint 34078592 - /* 287 */ { 946360U, (ushort) 9, (ushort)323 }, // obj_footprint 946560 sb_footprint 8519552 - /* 288 */ { 973368U, (ushort)35, (ushort)327 }, // obj_footprint 973568 sb_footprint 34078592 - /* 289 */ { 1002040U, (ushort)17, (ushort)326 }, // obj_footprint 1002240 sb_footprint 17039232 - /* 290 */ { 1032376U, (ushort)33, (ushort)327 }, // obj_footprint 1032576 sb_footprint 34078592 - /* 291 */ { 1064632U, (ushort) 2, (ushort)309 }, // obj_footprint 1064832 sb_footprint 2129792 - /* 292 */ { 1099064U, (ushort)31, (ushort)327 }, // obj_footprint 1099264 sb_footprint 34078592 - /* 293 */ { 1135672U, (ushort)15, (ushort)326 }, // obj_footprint 1135872 sb_footprint 17039232 - /* 294 */ { 1174840U, (ushort)29, (ushort)327 }, // obj_footprint 1175040 sb_footprint 34078592 - /* 295 */ { 1216824U, (ushort) 7, (ushort)323 }, // obj_footprint 1217024 sb_footprint 8519552 - /* 296 */ { 1261880U, (ushort)27, (ushort)327 }, // obj_footprint 1262080 sb_footprint 34078592 - /* 297 */ { 1310392U, (ushort)13, (ushort)326 }, // obj_footprint 1310592 sb_footprint 17039232 - /* 298 */ { 1362872U, (ushort)25, (ushort)327 }, // obj_footprint 1363072 sb_footprint 34078592 - /* 299 */ { 1419576U, (ushort) 3, (ushort)318 }, // obj_footprint 1419776 sb_footprint 4259712 - /* 300 */ { 1419704U, (ushort) 6, (ushort)323 }, // obj_footprint 1419904 sb_footprint 8519552 - /* 301 */ { 1481400U, (ushort)23, (ushort)327 }, // obj_footprint 1481600 sb_footprint 34078592 - /* 302 */ { 1548728U, (ushort)11, (ushort)326 }, // obj_footprint 1548928 sb_footprint 17039232 - /* 303 */ { 1622584U, (ushort)21, (ushort)327 }, // obj_footprint 1622784 sb_footprint 34078592 - /* 304 */ { 1703608U, (ushort) 5, (ushort)323 }, // obj_footprint 1703808 sb_footprint 8519552 - /* 305 */ { 1793336U, (ushort)19, (ushort)327 }, // obj_footprint 1793536 sb_footprint 34078592 - /* 306 */ { 1892920U, (ushort) 9, (ushort)326 }, // obj_footprint 1893120 sb_footprint 17039232 - /* 307 */ { 1893048U, (ushort)18, (ushort)327 }, // obj_footprint 1893248 sb_footprint 34078592 - /* 308 */ { 2004408U, (ushort)17, (ushort)327 }, // obj_footprint 2004608 sb_footprint 34078592 - /* 309 */ { 2129592U, (ushort) 2, (ushort)318 }, // obj_footprint 2129792 sb_footprint 4259712 - /* 310 */ { 2271672U, (ushort)15, (ushort)327 }, // obj_footprint 2271872 sb_footprint 34078592 - /* 311 */ { 2433848U, (ushort) 7, (ushort)326 }, // obj_footprint 2434048 sb_footprint 17039232 - /* 312 */ { 2433976U, (ushort)14, (ushort)327 }, // obj_footprint 2434176 sb_footprint 34078592 - /* 313 */ { 2621112U, (ushort)13, (ushort)327 }, // obj_footprint 2621312 sb_footprint 34078592 - /* 314 */ { 2839608U, (ushort) 3, (ushort)323 }, // obj_footprint 2839808 sb_footprint 8519552 - /* 315 */ { 3097784U, (ushort)11, (ushort)327 }, // obj_footprint 3097984 sb_footprint 34078592 - /* 316 */ { 3407544U, (ushort) 5, (ushort)326 }, // obj_footprint 3407744 sb_footprint 17039232 - /* 317 */ { 3786296U, (ushort) 9, (ushort)327 }, // obj_footprint 3786496 sb_footprint 34078592 - /* 318 */ { 4259512U, (ushort) 2, (ushort)323 }, // obj_footprint 4259712 sb_footprint 8519552 - /* 319 */ { 4868152U, (ushort) 7, (ushort)327 }, // obj_footprint 4868352 sb_footprint 34078592 - /* 320 */ { 5679416U, (ushort) 3, (ushort)326 }, // obj_footprint 5679616 sb_footprint 17039232 - /* 321 */ { 5679544U, (ushort) 6, (ushort)327 }, // obj_footprint 5679744 sb_footprint 34078592 - /* 322 */ { 6815416U, (ushort) 5, (ushort)327 }, // obj_footprint 6815616 sb_footprint 34078592 - /* 323 */ { 8519352U, (ushort) 2, (ushort)326 }, // obj_footprint 8519552 sb_footprint 17039232 - /* 324 */ { 10485816U, (ushort) 3, (ushort)327 }, // obj_footprint 10486016 sb_footprint 34078592 <- FD_VINYL_VAL_MAX - /* 325 */ { 11359288U, (ushort) 3, (ushort)327 }, // obj_footprint 11359488 sb_footprint 34078592 - /* 326 */ { 17039032U, (ushort) 2, (ushort)327 }, // obj_footprint 17039232 sb_footprint 34078592 + /* 0 */ { 56U, (ushort) 9, (ushort) 11 }, // obj_footprint 256 parent_footprint 2432 slack 0 + /* 1 */ { 184U, (ushort) 6, (ushort) 11 }, // obj_footprint 384 parent_footprint 2432 slack 0 + /* 2 */ { 312U, (ushort) 4, (ushort) 11 }, // obj_footprint 512 parent_footprint 2432 slack 256 + /* 3 */ { 440U, (ushort)15, (ushort) 22 }, // obj_footprint 640 parent_footprint 10112 slack 384 + /* 4 */ { 568U, (ushort)13, (ushort) 22 }, // obj_footprint 768 parent_footprint 10112 slack 0 + /* 5 */ { 696U, (ushort)11, (ushort) 22 }, // obj_footprint 896 parent_footprint 10112 slack 128 + /* 6 */ { 824U, (ushort) 9, (ushort) 22 }, // obj_footprint 1024 parent_footprint 10112 slack 768 + /* 7 */ { 952U, (ushort) 8, (ushort) 22 }, // obj_footprint 1152 parent_footprint 10112 slack 768 + /* 8 */ { 1208U, (ushort) 7, (ushort) 22 }, // obj_footprint 1408 parent_footprint 10112 slack 128 + /* 9 */ { 1464U, (ushort) 6, (ushort) 22 }, // obj_footprint 1664 parent_footprint 10112 slack 0 + /* 10 */ { 1720U, (ushort) 5, (ushort) 22 }, // obj_footprint 1920 parent_footprint 10112 slack 384 + /* 11 */ { 2232U, (ushort)16, (ushort) 34 }, // obj_footprint 2432 parent_footprint 40832 slack 1792 + /* 12 */ { 2488U, (ushort)15, (ushort) 34 }, // obj_footprint 2688 parent_footprint 40832 slack 384 + /* 13 */ { 2872U, (ushort)13, (ushort) 34 }, // obj_footprint 3072 parent_footprint 40832 slack 768 + /* 14 */ { 3128U, (ushort)12, (ushort) 34 }, // obj_footprint 3328 parent_footprint 40832 slack 768 + /* 15 */ { 3384U, (ushort)11, (ushort) 34 }, // obj_footprint 3584 parent_footprint 40832 slack 1280 + /* 16 */ { 3768U, (ushort)10, (ushort) 34 }, // obj_footprint 3968 parent_footprint 40832 slack 1024 + /* 17 */ { 4280U, (ushort) 9, (ushort) 34 }, // obj_footprint 4480 parent_footprint 40832 slack 384 + /* 18 */ { 4792U, (ushort) 8, (ushort) 34 }, // obj_footprint 4992 parent_footprint 40832 slack 768 + /* 19 */ { 5560U, (ushort) 7, (ushort) 34 }, // obj_footprint 5760 parent_footprint 40832 slack 384 + /* 20 */ { 6584U, (ushort) 6, (ushort) 34 }, // obj_footprint 6784 parent_footprint 40832 slack 0 + /* 21 */ { 7864U, (ushort) 5, (ushort) 34 }, // obj_footprint 8064 parent_footprint 40832 slack 384 + /* 22 */ { 9912U, (ushort)16, (ushort) 46 }, // obj_footprint 10112 parent_footprint 163712 slack 1792 + /* 23 */ { 10680U, (ushort)15, (ushort) 46 }, // obj_footprint 10880 parent_footprint 163712 slack 384 + /* 24 */ { 11448U, (ushort)14, (ushort) 46 }, // obj_footprint 11648 parent_footprint 163712 slack 512 + /* 25 */ { 12344U, (ushort)13, (ushort) 46 }, // obj_footprint 12544 parent_footprint 163712 slack 512 + /* 26 */ { 13368U, (ushort)12, (ushort) 46 }, // obj_footprint 13568 parent_footprint 163712 slack 768 + /* 27 */ { 14648U, (ushort)11, (ushort) 46 }, // obj_footprint 14848 parent_footprint 163712 slack 256 + /* 28 */ { 16056U, (ushort)10, (ushort) 46 }, // obj_footprint 16256 parent_footprint 163712 slack 1024 + /* 29 */ { 17976U, (ushort) 9, (ushort) 46 }, // obj_footprint 18176 parent_footprint 163712 slack 0 + /* 30 */ { 20152U, (ushort) 8, (ushort) 46 }, // obj_footprint 20352 parent_footprint 163712 slack 768 + /* 31 */ { 23096U, (ushort) 7, (ushort) 46 }, // obj_footprint 23296 parent_footprint 163712 slack 512 + /* 32 */ { 27064U, (ushort) 6, (ushort) 46 }, // obj_footprint 27264 parent_footprint 163712 slack 0 + /* 33 */ { 32440U, (ushort) 5, (ushort) 46 }, // obj_footprint 32640 parent_footprint 163712 slack 384 + /* 34 */ { 40632U, (ushort)16, (ushort) 58 }, // obj_footprint 40832 parent_footprint 655360 slack 1920 + /* 35 */ { 43448U, (ushort)15, (ushort) 58 }, // obj_footprint 43648 parent_footprint 655360 slack 512 + /* 36 */ { 46520U, (ushort)14, (ushort) 58 }, // obj_footprint 46720 parent_footprint 655360 slack 1152 + /* 37 */ { 50104U, (ushort)13, (ushort) 58 }, // obj_footprint 50304 parent_footprint 655360 slack 1280 + /* 38 */ { 54328U, (ushort)12, (ushort) 58 }, // obj_footprint 54528 parent_footprint 655360 slack 896 + /* 39 */ { 59320U, (ushort)11, (ushort) 58 }, // obj_footprint 59520 parent_footprint 655360 slack 512 + /* 40 */ { 65208U, (ushort)10, (ushort) 58 }, // obj_footprint 65408 parent_footprint 655360 slack 1152 + /* 41 */ { 72504U, (ushort) 9, (ushort) 58 }, // obj_footprint 72704 parent_footprint 655360 slack 896 + /* 42 */ { 81592U, (ushort) 8, (ushort) 58 }, // obj_footprint 81792 parent_footprint 655360 slack 896 + /* 43 */ { 93368U, (ushort) 7, (ushort) 58 }, // obj_footprint 93568 parent_footprint 655360 slack 256 + /* 44 */ { 108984U, (ushort) 6, (ushort) 58 }, // obj_footprint 109184 parent_footprint 655360 slack 128 + /* 45 */ { 130744U, (ushort) 5, (ushort) 58 }, // obj_footprint 130944 parent_footprint 655360 slack 512 + /* 46 */ { 163512U, (ushort)16, (ushort) 70 }, // obj_footprint 163712 parent_footprint 2621440 slack 1920 + /* 47 */ { 174520U, (ushort)15, (ushort) 70 }, // obj_footprint 174720 parent_footprint 2621440 slack 512 + /* 48 */ { 186936U, (ushort)14, (ushort) 70 }, // obj_footprint 187136 parent_footprint 2621440 slack 1408 + /* 49 */ { 201400U, (ushort)13, (ushort) 70 }, // obj_footprint 201600 parent_footprint 2621440 slack 512 + /* 50 */ { 218168U, (ushort)12, (ushort) 70 }, // obj_footprint 218368 parent_footprint 2621440 slack 896 + /* 51 */ { 238008U, (ushort)11, (ushort) 70 }, // obj_footprint 238208 parent_footprint 2621440 slack 1024 + /* 52 */ { 261816U, (ushort)10, (ushort) 70 }, // obj_footprint 262016 parent_footprint 2621440 slack 1152 + /* 53 */ { 291000U, (ushort) 9, (ushort) 70 }, // obj_footprint 291200 parent_footprint 2621440 slack 512 + /* 54 */ { 327352U, (ushort) 8, (ushort) 70 }, // obj_footprint 327552 parent_footprint 2621440 slack 896 + /* 55 */ { 374200U, (ushort) 7, (ushort) 70 }, // obj_footprint 374400 parent_footprint 2621440 slack 512 + /* 56 */ { 436664U, (ushort) 6, (ushort) 70 }, // obj_footprint 436864 parent_footprint 2621440 slack 128 + /* 57 */ { 523960U, (ushort) 5, (ushort) 70 }, // obj_footprint 524160 parent_footprint 2621440 slack 512 + /* 58 */ { 655160U, (ushort)16, (ushort) 82 }, // obj_footprint 655360 parent_footprint 10486016 slack 128 + /* 59 */ { 698808U, (ushort)15, (ushort) 82 }, // obj_footprint 699008 parent_footprint 10486016 slack 768 + /* 60 */ { 748728U, (ushort)14, (ushort) 82 }, // obj_footprint 748928 parent_footprint 10486016 slack 896 + /* 61 */ { 806328U, (ushort)13, (ushort) 82 }, // obj_footprint 806528 parent_footprint 10486016 slack 1024 + /* 62 */ { 873528U, (ushort)12, (ushort) 82 }, // obj_footprint 873728 parent_footprint 10486016 slack 1152 + /* 63 */ { 953016U, (ushort)11, (ushort) 82 }, // obj_footprint 953216 parent_footprint 10486016 slack 512 + /* 64 */ { 1048376U, (ushort)10, (ushort) 82 }, // obj_footprint 1048576 parent_footprint 10486016 slack 128 + /* 65 */ { 1164856U, (ushort) 9, (ushort) 82 }, // obj_footprint 1165056 parent_footprint 10486016 slack 384 + /* 66 */ { 1310520U, (ushort) 8, (ushort) 82 }, // obj_footprint 1310720 parent_footprint 10486016 slack 128 + /* 67 */ { 1497784U, (ushort) 7, (ushort) 82 }, // obj_footprint 1497984 parent_footprint 10486016 slack 0 + /* 68 */ { 1747384U, (ushort) 6, (ushort) 82 }, // obj_footprint 1747584 parent_footprint 10486016 slack 384 + /* 69 */ { 2096952U, (ushort) 5, (ushort) 82 }, // obj_footprint 2097152 parent_footprint 10486016 slack 128 + /* 70 */ { 2621240U, (ushort)16, (ushort) 83 }, // obj_footprint 2621440 parent_footprint 41944192 slack 1024 + /* 71 */ { 2795960U, (ushort)15, (ushort) 83 }, // obj_footprint 2796160 parent_footprint 41944192 slack 1664 + /* 72 */ { 2995768U, (ushort)14, (ushort) 83 }, // obj_footprint 2995968 parent_footprint 41944192 slack 512 + /* 73 */ { 3226168U, (ushort)13, (ushort) 83 }, // obj_footprint 3226368 parent_footprint 41944192 slack 1280 + /* 74 */ { 3495096U, (ushort)12, (ushort) 83 }, // obj_footprint 3495296 parent_footprint 41944192 slack 512 + /* 75 */ { 3812792U, (ushort)11, (ushort) 83 }, // obj_footprint 3812992 parent_footprint 41944192 slack 1152 + /* 76 */ { 4194104U, (ushort)10, (ushort) 83 }, // obj_footprint 4194304 parent_footprint 41944192 slack 1024 + /* 77 */ { 4660152U, (ushort) 9, (ushort) 83 }, // obj_footprint 4660352 parent_footprint 41944192 slack 896 + /* 78 */ { 5242808U, (ushort) 8, (ushort) 83 }, // obj_footprint 5243008 parent_footprint 41944192 slack 0 + /* 79 */ { 5991736U, (ushort) 7, (ushort) 83 }, // obj_footprint 5991936 parent_footprint 41944192 slack 512 + /* 80 */ { 6990392U, (ushort) 6, (ushort) 83 }, // obj_footprint 6990592 parent_footprint 41944192 slack 512 + /* 81 */ { 8388536U, (ushort) 5, (ushort) 83 }, // obj_footprint 8388736 parent_footprint 41944192 slack 384 + /* 82 */ { 10485816U, (ushort) 4, (ushort) 83 }, // obj_footprint 10486016 parent_footprint 41944192 slack 0 }; diff --git a/src/vinyl/data/gen_szc_cfg.m b/src/vinyl/data/gen_szc_cfg.m index 5c88c140272..972c861d00e 100644 --- a/src/vinyl/data/gen_szc_cfg.m +++ b/src/vinyl/data/gen_szc_cfg.m @@ -8,95 +8,119 @@ info_sz = 16; ftr_sz = 16; -obj_cnt_min = 2; -obj_cnt_max = 64; -obj_cnt_lvl = 2; - pair_framing = ctl_sz + key_sz + info_sz + ftr_sz; val_min = 0; val_max = 10*2^20 + io_block - pair_framing; -%%%%%%%%%%%%%%%%%%%%%%%%%%%% - +obj_cnt_min = 4; +obj_cnt_max = 16; obj_footprint_min = io_block*ceil( ( io_block + pair_framing + val_min ) / io_block ); obj_footprint_max = io_block*ceil( ( io_block + pair_framing + val_max ) / io_block ); +root_sb_footprint = io_block + obj_cnt_min*obj_footprint_max; +gamma = obj_cnt_max / (obj_cnt_max-1); + +szc_cnt = 0; + +sb_footprint = root_sb_footprint; +obj_footprint_target = obj_footprint_max; +while obj_footprint_target>=obj_footprint_min, + + ofp = io_block*round( obj_footprint_target / io_block ); + while 1, + ocnt = floor( (sb_footprint - io_block) / ofp ); + if ocnt<=obj_cnt_max, break; endif -sb_footprint_min_target = io_block + obj_cnt_max*obj_footprint_min; -sb_footprint_max_target = io_block + obj_cnt_min*obj_footprint_max; + % More than obj_cnt_max objects fit into the current superblock. + % Pick a new superblock size to be the smallest object footprint in + % an already computed sizeclass sufficient to hold a superblock with + % obj_cnt_min ofp sized objects. If there are none (i.e. the needed + % superblock size is larger than the object footprints for all the + % already computed sizeclasses), use the already computed sizeclass + % with the largest object footprint (the resulting superblock for + % ofp sized objects will have fewer than obj_cnt_min objects but + % that's unavoidable). -sb_footprint(1) = sb_footprint_min_target; -while sb_footprint(end)= io_block + ofp*obj_cnt_min, 1, 'last' ); + if isempty(idx), idx = 1; endif + sb_footprint = obj_footprint( idx ); + endwhile + + if ~((2<=ocnt) & (ocnt<=64)), error( 'hmmm' ); endif + + szc_cnt++; + obj_footprint (szc_cnt) = io_block*floor( (sb_footprint - io_block) / (io_block*ocnt) ); + obj_val_max (szc_cnt) = obj_footprint(szc_cnt) - io_block - pair_framing; + obj_cnt (szc_cnt) = ocnt; + parent_footprint(szc_cnt) = sb_footprint; + + obj_footprint_target /= gamma; endwhile -lvl_cnt = length(sb_footprint); -szc_cnt = 0; -for lvl=1:lvl_cnt; - for obj_cnt_target=obj_cnt_max:-1:obj_cnt_min, - obj_footprint_target = io_block*floor( ((sb_footprint(lvl)/io_block)-1) / obj_cnt_target ); - if obj_footprint_target<(io_block+pair_framing), continue; endif - szc_cnt++; - obj_val_max(szc_cnt) = obj_footprint_target - io_block - pair_framing; - obj_footprint(szc_cnt) = obj_footprint_target; - obj_cnt(szc_cnt) = min( floor( (sb_footprint(lvl) - io_block) / obj_footprint_target ), obj_cnt_max ); - parent_footprint(szc_cnt) = sb_footprint(lvl); - endfor -endfor +% Sort by object footprint, discarding redundant and/or runt sizeclasses -[~,idx] = unique( obj_val_max, 'first' ); -obj_val_max = obj_val_max (idx); +[~,idx] = unique( obj_footprint, 'first' ); obj_footprint = obj_footprint (idx); +obj_val_max = obj_val_max (idx); obj_cnt = obj_cnt (idx); parent_footprint = parent_footprint(idx); -szc_cnt = length(obj_val_max); -% If we didn't get a sizeclass exactly tuned for val_max, create one +keep = diff(obj_footprint) > 0.25*(gamma-1)*obj_footprint(1:(end-1)); +keep(end+1) = 1; -szc = find( obj_val_max>=val_max, 1 ); -if obj_val_max(szc)>val_max, - szc_cnt++; - obj_val_max(szc_cnt) = val_max; - obj_footprint(szc_cnt) = io_block + pair_framing + val_max; - obj_cnt(szc_cnt) = obj_cnt(szc); - parent_footprint(szc_cnt) = parent_footprint(szc); - - [~,idx] = unique( obj_val_max, 'first' ); - obj_val_max = obj_val_max (idx); - obj_footprint = obj_footprint (idx); - obj_cnt = obj_cnt (idx); - parent_footprint = parent_footprint(idx); - szc_cnt = length(obj_val_max); -endif +obj_footprint = obj_footprint (keep); +obj_val_max = obj_val_max (keep); +obj_cnt = obj_cnt (keep); +parent_footprint = parent_footprint(keep); + +szc_cnt = length(obj_footprint); + +% Determine sizeclass nesting + +for szc=1:szc_cnt, + pfp = io_block + obj_cnt(szc)*obj_footprint(szc); + pszc = find( pfp<=obj_footprint, 1, 'first' ); + if isempty(pszc), + parent_footprint(szc) = root_sb_footprint; + parent_szc(szc) = szc_cnt+1; + else + parent_footprint(szc) = obj_footprint(pszc); + parent_szc(szc) = pszc; + endif +endfor + +szc_thresh = szc_cnt; printf( '#define FD_VINYL_VAL_MAX (%uUL) /* autogenerated */\n', val_max ); printf( '\n' ); -printf( '#define FD_VINYL_DATA_VOL_FOOTPRINT (%uUL) /* autogenerated */\n', sb_footprint(lvl_cnt) ); % mem align for a vol header -printf( '\n' ); -printf( '#define FD_VINYL_DATA_SZC_CNT (%uUL) /* autogenerated */\n', szc_cnt ); +printf( '#define FD_VINYL_DATA_VOL_FOOTPRINT (%uUL) /* autogenerated */\n', max( parent_footprint ) ); +printf( '#define FD_VINYL_DATA_SZC_CNT (%uUL) /* autogenerated */\n', szc_cnt ); +printf( '#define FD_VINYL_DATA_SZC_ITER_MAX (%uUL) /* autogenerated */\n', ceil( log2( szc_cnt ) ) ); printf( '\n' ); printf( '######################################################################################################\n' ); printf( '#include \"fd_vinyl_data.h\"\n' ); printf( '\n' ); printf( '/* This table autogenerated\n' ); -printf( ' io_block %i\n', io_block ); -printf( ' ctl_sz %i\n', ctl_sz ); -printf( ' key_sz %i\n', key_sz ); -printf( ' info_sz %i\n', info_sz ); -printf( ' ftr_sz %i\n', ftr_sz ); -printf( ' obj_cnt_min %i\n', obj_cnt_min ); -printf( ' obj_cnt_max %i\n', obj_cnt_max ); -printf( ' obj_cnt_lvl %i\n', obj_cnt_lvl ); -printf( ' val_min %i\n', val_min ); -printf( ' val_max %i */\n', val_max ); +printf( ' io_block %i\n', io_block ); +printf( ' ctl_sz %i\n', ctl_sz ); +printf( ' key_sz %i\n', key_sz ); +printf( ' info_sz %i\n', info_sz ); +printf( ' ftr_sz %i\n', ftr_sz ); +printf( ' obj_cnt_min %i\n', obj_cnt_min ); +printf( ' obj_cnt_max %i\n', obj_cnt_max ); +printf( ' val_min %i\n', val_min ); +printf( ' val_max %i\n', val_max ); +printf( ' root_sb_footprint %i\n', root_sb_footprint ); +printf( ' gamma %.6e */\n', gamma ); printf( '\n' ); printf( 'fd_vinyl_data_szc_cfg_t const fd_vinyl_data_szc_cfg[ FD_VINYL_DATA_SZC_CNT ] = {\n' ); for szc=1:szc_cnt, + ocnt = obj_cnt (szc); + ofp = obj_footprint (szc); + pszc = parent_szc (szc); pfp = parent_footprint(szc); - pszc = find( pfp==obj_footprint, 1 ); - if isempty(pszc), pszc = szc_cnt+1; endif - parent_szc(szc) = pszc; - printf( ' /* %3u */ { %10uU, (ushort)%2u, (ushort)%3u }, // obj_footprint %10u sb_footprint %10u%s\n', szc-1, obj_val_max(szc),obj_cnt(szc), pszc-1, obj_footprint(szc), pfp, ifelse( obj_val_max(szc)==val_max, ' <- FD_VINYL_VAL_MAX', '' ) ); + printf( ' /* %3u */ { %10uU, (ushort)%2u, (ushort)%3u }, // obj_footprint %10u parent_footprint %10u slack %5u\n', ... + szc-1, obj_val_max(szc), ocnt, pszc-1, ofp, pfp, pfp - (io_block+ocnt*ofp) ); endfor printf( '};\n' ); @@ -124,11 +148,3 @@ xlabel( 'sizeclass index' ); ylabel( 'footprint overhead frac (min/avg/max)' ); -idx = find( parent_szc==(szc_cnt+1) ); -loose_vol = parent_footprint(idx)~=sb_footprint(lvl_cnt); -if any( loose_vol ), - idx(loose_vol) - parent_footprint(idx(loose_vol)) - sb_footprint(lvl_cnt) - error( 'hmmm' ); -endif diff --git a/src/vinyl/data/test_vinyl_data.c b/src/vinyl/data/test_vinyl_data.c index 87aa726c5c0..bae3d8f3569 100644 --- a/src/vinyl/data/test_vinyl_data.c +++ b/src/vinyl/data/test_vinyl_data.c @@ -1,6 +1,6 @@ #include "../fd_vinyl.h" -FD_STATIC_ASSERT( FD_VINYL_DATA_SZC_CNT==327UL, unit_test ); +FD_STATIC_ASSERT( FD_VINYL_DATA_SZC_CNT==83UL, unit_test ); FD_STATIC_ASSERT( FD_VINYL_DATA_OBJ_TYPE_FREEVOL ==0xf7eef7eef7eef7eeUL, unit_test ); FD_STATIC_ASSERT( FD_VINYL_DATA_OBJ_TYPE_ALLOC ==0xa11ca11ca11ca11cUL, unit_test ); @@ -11,10 +11,10 @@ FD_STATIC_ASSERT( FD_VINYL_DATA_OBJ_GUARD_SZ==0UL, unit_test ); FD_STATIC_ASSERT( alignof(fd_vinyl_data_obj_t)==FD_VINYL_BSTREAM_BLOCK_SZ, unit_test ); FD_STATIC_ASSERT( sizeof (fd_vinyl_data_obj_t)==FD_VINYL_BSTREAM_BLOCK_SZ, unit_test ); -FD_STATIC_ASSERT( FD_VINYL_DATA_VOL_FOOTPRINT==34078592UL, unit_test ); +FD_STATIC_ASSERT( FD_VINYL_DATA_VOL_FOOTPRINT==41944192UL, unit_test ); -FD_STATIC_ASSERT( FD_VINYL_DATA_ALIGN == 128UL, unit_test ); -FD_STATIC_ASSERT( FD_VINYL_DATA_FOOTPRINT==5376UL, unit_test ); +FD_STATIC_ASSERT( FD_VINYL_DATA_ALIGN ==alignof(fd_vinyl_data_t), unit_test ); +FD_STATIC_ASSERT( FD_VINYL_DATA_FOOTPRINT==sizeof (fd_vinyl_data_t), unit_test ); FD_STATIC_ASSERT( alignof(fd_vinyl_data_vol_t)==FD_VINYL_BSTREAM_BLOCK_SZ, unit_test ); FD_STATIC_ASSERT( sizeof (fd_vinyl_data_vol_t)==FD_VINYL_DATA_VOL_FOOTPRINT, unit_test ); From a033f931af9c82e5f9cc3eb4eebb6959e309b86f Mon Sep 17 00:00:00 2001 From: Michael McGee Date: Fri, 12 Jun 2026 21:09:10 +0000 Subject: [PATCH 11/61] events: generate schema structs and serializers --- src/disco/events/Local.mk | 2 + src/disco/events/fd_event_tile.c | 52 ++-- src/disco/events/gen_events.py | 329 ++++++++++++++++++++++ src/disco/events/generated/fd_event_gen.c | 43 +++ src/disco/events/generated/fd_event_gen.h | 49 ++++ src/disco/events/schema/signed_vote.json | 19 +- 6 files changed, 453 insertions(+), 41 deletions(-) create mode 100644 src/disco/events/generated/fd_event_gen.c create mode 100644 src/disco/events/generated/fd_event_gen.h diff --git a/src/disco/events/Local.mk b/src/disco/events/Local.mk index d4dc327186b..ee65af11c97 100644 --- a/src/disco/events/Local.mk +++ b/src/disco/events/Local.mk @@ -1,6 +1,8 @@ ifdef FD_HAS_HOSTED $(call add-hdrs,fd_circq.h) +$(call add-hdrs,generated/fd_event_gen.h) $(call add-objs,fd_circq fd_event_client,fd_disco) +$(call add-objs,generated/fd_event_gen,fd_disco) $(call add-objs,fd_event_tile,fd_disco) $(call make-unit-test,test_circq,test_circq,fd_disco fd_flamenco fd_tango fd_util) diff --git a/src/disco/events/fd_event_tile.c b/src/disco/events/fd_event_tile.c index c8047f143ee..b30893f177f 100644 --- a/src/disco/events/fd_event_tile.c +++ b/src/disco/events/fd_event_tile.c @@ -7,6 +7,7 @@ #include "../metrics/fd_metrics.h" #include "../net/fd_net_tile.h" #include "../../discof/genesis/fd_genesi_tile.h" +#include "generated/fd_event_gen.h" #include "../keyguard/fd_keyload.h" #include "../keyguard/fd_keyswitch.h" #include "../topo/fd_topo.h" @@ -236,44 +237,31 @@ on_txsend_frag( fd_event_tile_t * ctx, if( FD_UNLIKELY( __builtin_uaddl_overflow( vote_slot, sync->lockouts[ i ].offset, &vote_slot ) ) ) return 0; } - /* Generate signed_vote event */ - ulong event_id = fd_event_client_id_reserve( ctx->client ); - long timestamp_nanos = fd_clock_tile_tickcount_to_wallclock( ctx->clock, - fd_clock_tile_tickcount_decomp( ctx->clock, tsorig_comp ) ); - uchar * buffer = fd_circq_push_back( ctx->circq, 1UL, 4096UL ); - FD_TEST( buffer ); - fd_pb_encoder_t encoder[1]; - fd_pb_encoder_init( encoder, buffer, 4096UL ); - - FD_TEST( ctx->circq->cursor_push_seq ); - fd_pb_push_uint64( encoder, 1U, ctx->circq->cursor_push_seq-1UL ); - fd_pb_push_uint64( encoder, 2U, event_id ); - fd_pb_push_uint64( encoder, 3U, (ulong)timestamp_nanos ); - fd_pb_submsg_open( encoder, 4U ); /* Event */ - fd_pb_submsg_open( encoder, FD_EVENT_TYPE_SIGNED_VOTE ); - - fd_pb_push_bytes ( encoder, 1U, payload, payload_sz ); - fd_pb_push_bytes ( encoder, 2U, vote_acct_addr, sizeof(fd_acct_addr_t) ); - fd_pb_push_bytes ( encoder, 3U, vote_auth_addr, sizeof(fd_acct_addr_t) ); - fd_pb_push_bytes ( encoder, 4U, fee_payer, sizeof(fd_acct_addr_t) ); - fd_pb_push_bytes ( encoder, 5U, sigs[ 0 ], sizeof(fd_ed25519_sig_t) ); - fd_pb_push_uint64( encoder, 6U, vote_slot ); - fd_pb_push_bytes ( encoder, 7U, sync->hash.uc, sizeof(fd_hash_t) ); - fd_pb_push_bytes ( encoder, 8U, sync->block_id.uc, sizeof(fd_hash_t) ); - fd_pb_push_bytes ( encoder, 9U, rbh, sizeof(fd_hash_t) ); + fd_event_signed_vote_t ev = {0}; + FD_TEST( payload_sz<=sizeof(ev.signed_txn) ); + fd_memcpy( ev.signed_txn, payload, payload_sz ); + ev.signed_txn_len = payload_sz; + fd_memcpy( ev.vote_account, vote_acct_addr, sizeof(fd_acct_addr_t) ); + fd_memcpy( ev.vote_authority, vote_auth_addr, sizeof(fd_acct_addr_t) ); + fd_memcpy( ev.fee_payer, fee_payer, sizeof(fd_acct_addr_t) ); + fd_memcpy( ev.signature, sigs[ 0 ], sizeof(fd_ed25519_sig_t) ); + ev.vote_slot = vote_slot; + fd_memcpy( ev.vote_bank_hash, sync->hash.uc, sizeof(fd_hash_t) ); + fd_memcpy( ev.vote_block_id, sync->block_id.uc, sizeof(fd_hash_t) ); + fd_memcpy( ev.txn_blockhash, rbh, sizeof(fd_hash_t) ); ulong slot = root_slot; + FD_TEST( sync->lockouts_cnt<=sizeof(ev.tower)/sizeof(ev.tower[0]) ); for( ulong i=0UL; ilockouts_cnt; i++ ) { slot += sync->lockouts[ i ].offset; - fd_pb_submsg_open( encoder, 10U ); /* lockout entry */ - fd_pb_push_uint64( encoder, 1U, slot ); - fd_pb_push_uint32( encoder, 2U, sync->lockouts[ i ].confirmation_count ); - fd_pb_submsg_close( encoder ); + ev.tower[ i ].slot = slot; + ev.tower[ i ].confirmation_count = (uchar)sync->lockouts[ i ].confirmation_count; } + ev.tower_cnt = sync->lockouts_cnt; - fd_pb_submsg_close( encoder ); - fd_pb_submsg_close( encoder ); - fd_circq_resize_back( ctx->circq, fd_pb_encoder_out_sz( encoder ) ); + long timestamp_nanos = fd_clock_tile_tickcount_to_wallclock( ctx->clock, + fd_clock_tile_tickcount_decomp( ctx->clock, tsorig_comp ) ); + fd_event_signed_vote_serialize( ctx->circq, ctx->client, timestamp_nanos, &ev ); return 1; } diff --git a/src/disco/events/gen_events.py b/src/disco/events/gen_events.py index dde56b619e1..a5cd473e3ba 100644 --- a/src/disco/events/gen_events.py +++ b/src/disco/events/gen_events.py @@ -25,6 +25,7 @@ class ClickHouseType(Enum): UInt16 = auto() UInt64 = auto() Pubkey = auto() + Hash = auto() Signature = auto() Bool = auto() DateTime64 = auto() @@ -41,6 +42,7 @@ class ClickHouseType(Enum): "UInt16": "UInt16", "UInt64": "UInt64", "Pubkey": "Pubkey", + "Hash": "Hash", "Signature": "Signature", "Bool": "Bool", "DateTime64(9)": "DateTime64", @@ -58,6 +60,7 @@ class ClickHouseType(Enum): "UInt16": "uint32", "UInt64": "uint64", "Pubkey": "bytes", + "Hash": "bytes", "Signature": "bytes", "Bool": "bool", "DateTime64": "uint64", @@ -90,6 +93,7 @@ class Field: fields: Optional[Dict[str, "Field"]] = None element: Optional["Field"] = None shared_name: Optional[str] = None + max_len: Optional[int] = None @dataclass class Schema: @@ -116,6 +120,7 @@ def parse_field(f: dict, shared_types: Dict[str, dict]) -> Field: variants={k: Variant(v["description"]) for k, v in f.get("variants", {}).items()} or None, fields=fields, element=element, + max_len=f.get("max_len"), ) def parse_schema(path: Path, shared_types: Dict[str, dict]) -> Schema: @@ -199,6 +204,322 @@ def generate_protobuf(schemas: List[Schema]) -> str: return "\n".join(lines) +_FIXED_BYTE_SZ = { + ClickHouseType.IPv6: 16, + ClickHouseType.Pubkey: 32, + ClickHouseType.Hash: 32, + ClickHouseType.Signature: 64, +} + +_SCALAR_C = { + ClickHouseType.UInt8: ("uchar", "uint32"), + ClickHouseType.UInt16: ("ushort", "uint32"), + ClickHouseType.UInt64: ("ulong", "uint64"), + ClickHouseType.DateTime64: ("ulong", "uint64"), + ClickHouseType.Bool: ("int", "bool"), +} + +def field_is_supported(f: Field) -> bool: + """Whether the C codegen can emit a fixed-size struct + serializer for a + field. Variable-length types (Bytes/String/Array) are supported only when + bounded by max_len. Tuples/Flattens are supported when all subfields are.""" + if f.chtype in (ClickHouseType.String, ClickHouseType.Bytes): + return f.max_len is not None + if f.chtype in (ClickHouseType.Flatten, ClickHouseType.Tuple): + return all(field_is_supported(sf) for sf in f.fields.values()) + if f.chtype == ClickHouseType.Array: + return f.max_len is not None and field_is_supported(f.element) + return True # scalar, enum, or fixed-byte type + +def schema_is_supported(s: Schema) -> bool: + return all(field_is_supported(f) for f in s.fields.values()) + +# Protobuf wire-format max sizes (mirrors src/ballet/pb/fd_pb_wire.h). +_PB_TAG_MAX = 5 # fd_pb_varint32_sz_max (a tag is a varint32) +_PB_VARINT32 = 5 # fd_pb_varint32_sz_max +_PB_VARINT64 = 10 # fd_pb_varint64_sz_max +_PB_BOOL = 1 # fd_pb_bool_max_sz +_PB_LP_RESERVE = 5 # length-prefix reserved by fd_pb_lp_open (fd_pb_varint32_sz_max) +# The encoder bounds-checks with a conservative 32-byte slack (see +# fd_pb_encoder_init docs); pad the buffer so a tight message never trips it. +_PB_ENCODER_SLACK = 32 + +def scalar_max_encoded_sz(f: Field) -> int: + """Worst-case encoded bytes for a single (non-array) field value, including + its tag. For Tuple, this is the submessage (tag + length-prefix + body).""" + if f.variants: # enum -> int32 varint + return _PB_TAG_MAX + _PB_VARINT32 + if f.chtype in _FIXED_BYTE_SZ: # fixed bytes: tag + length-prefix + data + return _PB_TAG_MAX + _PB_VARINT32 + _FIXED_BYTE_SZ[f.chtype] + if f.chtype in (ClickHouseType.Bytes, ClickHouseType.String): + return _PB_TAG_MAX + _PB_VARINT32 + f.max_len + if f.chtype in (ClickHouseType.Tuple, ClickHouseType.Flatten): + body = sum(scalar_max_encoded_sz(sf) for sf in f.fields.values()) + return _PB_TAG_MAX + _PB_LP_RESERVE + body + suffix = _SCALAR_C[f.chtype][1] + if suffix == "bool": return _PB_TAG_MAX + _PB_BOOL + if suffix == "uint64": return _PB_TAG_MAX + _PB_VARINT64 + return _PB_TAG_MAX + _PB_VARINT32 # uint32 (UInt8/UInt16) + +def field_max_encoded_sz(f: Field) -> int: + """Worst-case encoded bytes for one struct field (tag + value), accounting + for arrays via their max_len bound.""" + if f.chtype == ClickHouseType.Array: + return f.max_len * scalar_max_encoded_sz(f.element) + return scalar_max_encoded_sz(f) + +def event_buf_max(s: Schema) -> int: + """Tight upper bound on the encoded size of a whole event (envelope + + Event submsg + inner submsg + all fields), padded for encoder slack.""" + # Envelope: 3 uint64 fields (nonce, event_id, timestamp_nanos). + envelope = 3 * (_PB_TAG_MAX + _PB_VARINT64) + # Two submessage openers (Event, then the specific event): each is a + # tag plus a reserved length-prefix. + submsgs = 2 * (_PB_TAG_MAX + _PB_LP_RESERVE) + fields = sum(field_max_encoded_sz(f) for f in s.fields.values()) + return envelope + submsgs + fields + _PB_ENCODER_SLACK + +def event_buf_max_define(s: Schema) -> str: + return to_screaming_snake_case(f"fd_event_{s.name}_buf_max") + +def c_enum_value(schema_name: str, field_name: str, variant: str) -> str: + return to_screaming_snake_case(f"fd_event_{schema_name}_{field_name}_{variant}") + +def c_tuple_name(schema_name: str, field_name: str) -> str: + """C struct type name for a Tuple field (or an Array-of-Tuple element).""" + return f"fd_event_{schema_name}_{field_name}_t" + +def tuple_fields_of(f: Field) -> Optional[Dict[str, Field]]: + """If f (or its array element) is a Tuple/Flatten, return its fields.""" + inner = f.element if f.chtype == ClickHouseType.Array else f + if inner.chtype in (ClickHouseType.Tuple, ClickHouseType.Flatten): + return inner.fields + return None + +def gen_tuple_struct( schema_name: str, field_name: str, flds: Dict[str, Field], desc: str ) -> List[str]: + """Emit a C struct definition for a Tuple field's element type. Tuple + subfields are themselves restricted to fixed-length scalar/enum/fixed-byte + types (no nested arrays/bytes), which covers current schemas.""" + tn = c_tuple_name( schema_name, field_name ) + members = [] + for sn, sf in flds.items(): + if sf.variants: + ctype, decl = "int", sn + elif sf.chtype in _FIXED_BYTE_SZ: + ctype, decl = "uchar", f"{sn}[ {_FIXED_BYTE_SZ[sf.chtype]}UL ]" + else: + ctype, decl = _SCALAR_C[sf.chtype][0], sn + members.append((ctype, decl, sf.description)) + tw = max(len(c) for c, _, _ in members) + dw = max(len(d) for _, d, _ in members) + out = [f"/* {desc} */", f"struct {tn[:-2]} {{"] + for ctype, decl, d in members: + out.append(f" {ctype:<{tw}} {decl + ';':<{dw + 1}} /* {d} */") + out += ["};", f"typedef struct {tn[:-2]} {tn};", ""] + return out + +def serializer_signature(s: Schema, terminator: str) -> List[str]: + """Emit the fd_event__serialize signature, type-column aligned, with + continuation lines indented under the first parameter. terminator is the + text after the final parameter (e.g. ' );' for a prototype, ' ) {' for a + definition).""" + fn = f"fd_event_{s.name}_serialize( " + pad = " " * len(fn) + params = [ + ("fd_circq_t *", "circq"), + ("fd_event_client_t *", "client"), + ("long", "timestamp_nanos"), + (f"fd_event_{s.name}_t const *", "msg"), + ] + tw = max(len(t) for t, _ in params) + out = [f"void", f"{fn}{params[0][0]:<{tw}} {params[0][1]},"] + for t, n in params[1:-1]: + out.append(f"{pad}{t:<{tw}} {n},") + t, n = params[-1] + out.append(f"{pad}{t:<{tw}} {n}{terminator}") + return out + +def generate_c_header(schemas: List[Schema]) -> str: + eligible = [s for s in schemas if schema_is_supported(s)] + lines = [ + "/* THIS FILE WAS GENERATED BY gen_events.py. DO NOT EDIT BY HAND! */", + "#ifndef HEADER_fd_src_disco_events_generated_fd_event_gen_h", + "#define HEADER_fd_src_disco_events_generated_fd_event_gen_h", + "", + '#include "../fd_circq.h"', + '#include "../fd_event_client.h"', + "", + ] + + # Enum #defines, structs, and per-event buffer sizes. + for s in eligible: + # Enums for LowCardinality(String) fields. Values match the proto + # enum (variants numbered from 1); the proto's mandatory + # _UNSPECIFIED=0 sentinel is not emitted on the C side. + for name, f in s.fields.items(): + if not f.variants: + continue + names = [c_enum_value(s.name, name, vn) for vn in f.variants] + w = max(len(n) for n in names) + lines.append(f"/* {f.description} */") + for i, (vn, v) in enumerate(f.variants.items(), 1): + lines.append(f"#define {c_enum_value(s.name, name, vn):<{w}} ({i}) /* {v.description} */") + lines += [""] + + # Nested Tuple element structs (emitted before the main struct that + # references them). + for name, f in s.fields.items(): + tflds = tuple_fields_of( f ) + if tflds is not None: + inner = f.element if f.chtype == ClickHouseType.Array else f + lines += gen_tuple_struct( s.name, name, tflds, inner.description ) + + # Main struct. Each field becomes one or more members: + # scalar/enum/fixed-byte -> single member + # Bytes/String(max_len) -> uchar [max_len]; ulong _len; + # Tuple -> ; + # Array(max_len) -> [max_len]; ulong _cnt; + members = [] # (ctype, decl, desc) + for name, f in s.fields.items(): + if f.variants: + members.append(("int", name, f.description)) + elif f.chtype in _FIXED_BYTE_SZ: + members.append(("uchar", f"{name}[ {_FIXED_BYTE_SZ[f.chtype]}UL ]", f.description)) + elif f.chtype in (ClickHouseType.Bytes, ClickHouseType.String): + members.append(("uchar", f"{name}[ {f.max_len}UL ]", f.description)) + members.append(("ulong", f"{name}_len", f"Length of {name} (<= {f.max_len})")) + elif f.chtype in (ClickHouseType.Tuple, ClickHouseType.Flatten): + members.append((c_tuple_name( s.name, name ), name, f.description)) + elif f.chtype == ClickHouseType.Array: + el = f.element + if el.chtype in (ClickHouseType.Tuple, ClickHouseType.Flatten): + ectype = c_tuple_name( s.name, name ) + elif el.variants: + ectype = "int" + elif el.chtype in _FIXED_BYTE_SZ: + ectype = None # handled specially below + else: + ectype = _SCALAR_C[el.chtype][0] + if ectype is None: + # Array of fixed-byte values: [max_len][N] + n = _FIXED_BYTE_SZ[el.chtype] + members.append(("uchar", f"{name}[ {f.max_len}UL ][ {n}UL ]", f.description)) + else: + members.append((ectype, f"{name}[ {f.max_len}UL ]", f.description)) + members.append(("ulong", f"{name}_cnt", f"Number of {name} entries (<= {f.max_len})")) + else: + members.append((_SCALAR_C[f.chtype][0], name, f.description)) + tw = max(len(c) for c, _, _ in members) + dw = max(len(d) for _, d, _ in members) + lines += [f"/* {s.description} */", "struct fd_event_" + s.name + " {"] + for ctype, decl, desc in members: + lines.append(f" {ctype:<{tw}} {decl + ';':<{dw + 1}} /* {desc} */") + lines += ["};", f"typedef struct fd_event_{s.name} fd_event_{s.name}_t;", ""] + + # Tight upper bound on this event's encoded size. + lines += [ + f"/* Worst-case encoded size of a {s.name} event (envelope + Event", + " submsg + inner submsg + all fields, padded for encoder slack). */", + f"#define {event_buf_max_define(s)} ({event_buf_max(s)}UL)", + "", + ] + + # Serializer prototypes. + lines += ["FD_PROTOTYPES_BEGIN", ""] + for s in eligible: + lines += [ + f"/* Serialize a {s.name} event into the circq, reserving an event id", + " from the client and writing the standard event envelope. Mirrors", + " the hand-written fd_pb_* path. */", + ] + serializer_signature( s, " );" ) + [""] + + lines += ["FD_PROTOTYPES_END", "", "#endif", ""] + return "\n".join(lines) + +def encode_scalar( f: Field, field_id: int, acc: str, ind: str, omit_default: bool ) -> List[str]: + """Emit the fd_pb_push_* line for a scalar/enum/fixed-byte field. acc is + the C accessor expression for the value. omit_default skips zero scalars + (proto3 default); fixed-byte fields are always emitted.""" + if f.variants: + guard = f"if( {acc} ) " if omit_default else "" + return [f"{ind}{guard}fd_pb_push_int32 ( encoder, {field_id}U, {acc} );"] + if f.chtype in _FIXED_BYTE_SZ: + return [f"{ind}fd_pb_push_bytes ( encoder, {field_id}U, {acc}, {_FIXED_BYTE_SZ[f.chtype]}UL );"] + suffix = _SCALAR_C[f.chtype][1] + cast = "(ulong)" if suffix == "uint64" else ("(uint)" if suffix == "uint32" else "") + guard = f"if( {acc} ) " if omit_default else "" + return [f"{ind}{guard}fd_pb_push_{suffix:<6}( encoder, {field_id}U, {cast}{acc} );"] + +def encode_tuple( f: Field, field_id: int, acc: str, ind: str ) -> List[str]: + """Emit a submessage encoding a Tuple value at field_id. acc is the C + accessor for the tuple struct (e.g. 'msg->x' or 'msg->arr[ k ]').""" + out = [f"{ind}fd_pb_submsg_open( encoder, {field_id}U );"] + for j, (sn, sf) in enumerate(f.fields.items(), 1): + out += encode_scalar( sf, j, f"{acc}.{sn}", ind, omit_default=True ) + out += [f"{ind}fd_pb_submsg_close( encoder );"] + return out + +def encode_field( f: Field, field_id: int, name: str, acc: str, ind: str ) -> List[str]: + """Emit encode lines for one struct field of any supported type.""" + if f.chtype in (ClickHouseType.Bytes, ClickHouseType.String): + return [f"{ind}if( {acc}_len ) fd_pb_push_bytes ( encoder, {field_id}U, {acc}, {acc}_len );"] + if f.chtype in (ClickHouseType.Tuple, ClickHouseType.Flatten): + return encode_tuple( f, field_id, acc, ind ) + if f.chtype == ClickHouseType.Array: + el = f.element + out = [f"{ind}for( ulong k=0UL; k<{acc}_cnt; k++ ) {{"] + if el.chtype in (ClickHouseType.Tuple, ClickHouseType.Flatten): + out += encode_tuple( el, field_id, f"{acc}[ k ]", ind + " " ) + else: + # Scalar/enum/fixed-byte array element: always emit (do not omit + # defaults - each element is a distinct repeated entry). + out += encode_scalar( el, field_id, f"{acc}[ k ]", ind + " ", omit_default=False ) + out += [f"{ind}}}"] + return out + return encode_scalar( f, field_id, acc, ind, omit_default=True ) + +def generate_c_source(schemas: List[Schema]) -> str: + eligible = [s for s in schemas if schema_is_supported(s)] + lines = [ + "/* THIS FILE WAS GENERATED BY gen_events.py. DO NOT EDIT BY HAND! */", + '#include "fd_event_gen.h"', + '#include "../../../ballet/pb/fd_pb_encode.h"', + "", + ] + for s in eligible: + bufmax = event_buf_max_define(s) + lines += serializer_signature( s, " ) {" ) + [ + f" uchar * buffer = fd_circq_push_back( circq, 1UL, {bufmax} );", + " FD_TEST( buffer );", + "", + " ulong event_id = fd_event_client_id_reserve( client );", + "", + " fd_pb_encoder_t encoder[1];", + f" fd_pb_encoder_init( encoder, buffer, {bufmax} );", + "", + " FD_TEST( circq->cursor_push_seq );", + " fd_pb_push_uint64( encoder, 1U, circq->cursor_push_seq-1UL );", + " fd_pb_push_uint64( encoder, 2U, event_id );", + " fd_pb_push_uint64( encoder, 3U, (ulong)timestamp_nanos );", + "", + " fd_pb_submsg_open( encoder, 4U ); /* Event */", + f" fd_pb_submsg_open( encoder, {s.id}U ); /* {to_pascal_case(s.name)} */", + ] + # Encode each field. proto3 omits scalar fields at their default + # (0/false) - skipped here (a conformant reader reconstructs the + # default). Fixed-byte fields are always emitted (a 32-byte hash is + # meaningful content, not the empty `bytes` default). + for i, (name, f) in enumerate(s.fields.items(), 1): + lines += encode_field( f, i, name, f"msg->{name}", " " ) + lines += [ + " fd_pb_submsg_close( encoder );", + " fd_pb_submsg_close( encoder );", + " fd_circq_resize_back( circq, fd_pb_encoder_out_sz( encoder ) );", + "}", + "", + ] + return "\n".join(lines) + def check_breaking_changes(schema_dir: Path) -> None: buf_path: Optional[str] = shutil.which("buf") if not buf_path: @@ -231,6 +552,14 @@ def main() -> None: print(f"Protobuf generated successfully from {len(schemas)} schemas") + gen_dir = Path(__file__).parent / "generated" + (gen_dir / "fd_event_gen.h").write_text(generate_c_header(schemas)) + (gen_dir / "fd_event_gen.c").write_text(generate_c_source(schemas)) + eligible = [s.name for s in schemas if schema_is_supported(s)] + skipped = [s.name for s in schemas if not schema_is_supported(s)] + print(f"C structs/serializers generated for fixed-length schemas: {eligible}") + print(f" (skipped variable-length schemas: {skipped})") + if not args.skip_check: check_breaking_changes(schema_dir) diff --git a/src/disco/events/generated/fd_event_gen.c b/src/disco/events/generated/fd_event_gen.c new file mode 100644 index 00000000000..b2e3a4a939f --- /dev/null +++ b/src/disco/events/generated/fd_event_gen.c @@ -0,0 +1,43 @@ +/* THIS FILE WAS GENERATED BY gen_events.py. DO NOT EDIT BY HAND! */ +#include "fd_event_gen.h" +#include "../../../ballet/pb/fd_pb_encode.h" + +void +fd_event_signed_vote_serialize( fd_circq_t * circq, + fd_event_client_t * client, + long timestamp_nanos, + fd_event_signed_vote_t const * msg ) { + uchar * buffer = fd_circq_push_back( circq, 1UL, FD_EVENT_SIGNED_VOTE_BUF_MAX ); + FD_TEST( buffer ); + + ulong event_id = fd_event_client_id_reserve( client ); + + fd_pb_encoder_t encoder[1]; + fd_pb_encoder_init( encoder, buffer, FD_EVENT_SIGNED_VOTE_BUF_MAX ); + + FD_TEST( circq->cursor_push_seq ); + fd_pb_push_uint64( encoder, 1U, circq->cursor_push_seq-1UL ); + fd_pb_push_uint64( encoder, 2U, event_id ); + fd_pb_push_uint64( encoder, 3U, (ulong)timestamp_nanos ); + + fd_pb_submsg_open( encoder, 4U ); /* Event */ + fd_pb_submsg_open( encoder, 3U ); /* SignedVote */ + if( msg->signed_txn_len ) fd_pb_push_bytes ( encoder, 1U, msg->signed_txn, msg->signed_txn_len ); + fd_pb_push_bytes ( encoder, 2U, msg->vote_account, 32UL ); + fd_pb_push_bytes ( encoder, 3U, msg->vote_authority, 32UL ); + fd_pb_push_bytes ( encoder, 4U, msg->fee_payer, 32UL ); + fd_pb_push_bytes ( encoder, 5U, msg->signature, 64UL ); + if( msg->vote_slot ) fd_pb_push_uint64( encoder, 6U, (ulong)msg->vote_slot ); + fd_pb_push_bytes ( encoder, 7U, msg->vote_bank_hash, 32UL ); + fd_pb_push_bytes ( encoder, 8U, msg->vote_block_id, 32UL ); + fd_pb_push_bytes ( encoder, 9U, msg->txn_blockhash, 32UL ); + for( ulong k=0UL; ktower_cnt; k++ ) { + fd_pb_submsg_open( encoder, 10U ); + if( msg->tower[ k ].slot ) fd_pb_push_uint64( encoder, 1U, (ulong)msg->tower[ k ].slot ); + if( msg->tower[ k ].confirmation_count ) fd_pb_push_uint32( encoder, 2U, (uint)msg->tower[ k ].confirmation_count ); + fd_pb_submsg_close( encoder ); + } + fd_pb_submsg_close( encoder ); + fd_pb_submsg_close( encoder ); + fd_circq_resize_back( circq, fd_pb_encoder_out_sz( encoder ) ); +} diff --git a/src/disco/events/generated/fd_event_gen.h b/src/disco/events/generated/fd_event_gen.h new file mode 100644 index 00000000000..54a8c83532d --- /dev/null +++ b/src/disco/events/generated/fd_event_gen.h @@ -0,0 +1,49 @@ +/* THIS FILE WAS GENERATED BY gen_events.py. DO NOT EDIT BY HAND! */ +#ifndef HEADER_fd_src_disco_events_generated_fd_event_gen_h +#define HEADER_fd_src_disco_events_generated_fd_event_gen_h + +#include "../fd_circq.h" +#include "../fd_event_client.h" + +/* Slot that was voted on */ +struct fd_event_signed_vote_tower { + ulong slot; /* Slot being voted on / locked out for */ + uchar confirmation_count; /* Confirmation count (higher = closer to root) */ +}; +typedef struct fd_event_signed_vote_tower fd_event_signed_vote_tower_t; + +/* The validator generated a vote transaction */ +struct fd_event_signed_vote { + uchar signed_txn[ 1232UL ]; /* Serialized signed vote transaction */ + ulong signed_txn_len; /* Length of signed_txn (<= 1232) */ + uchar vote_account[ 32UL ]; /* The public key of the vote account */ + uchar vote_authority[ 32UL ]; /* The public key that authorized the vote */ + uchar fee_payer[ 32UL ]; /* The public key that pays for transaction fees */ + uchar signature[ 64UL ]; /* Signature identifying the transaction */ + ulong vote_slot; /* Slot being voted on (top of tower) */ + uchar vote_bank_hash[ 32UL ]; /* Bank hash of the slot being voted on */ + uchar vote_block_id[ 32UL ]; /* Block ID of the slot being voted on */ + uchar txn_blockhash[ 32UL ]; /* Recent blockhash parameter of the vote transaction */ + fd_event_signed_vote_tower_t tower[ 31UL ]; /* Tower of slots being voted on (oldest to newest) */ + ulong tower_cnt; /* Number of tower entries (<= 31) */ +}; +typedef struct fd_event_signed_vote fd_event_signed_vote_t; + +/* Worst-case encoded size of a signed_vote event (envelope + Event + submsg + inner submsg + all fields, padded for encoder slack). */ +#define FD_EVENT_SIGNED_VOTE_BUF_MAX (2765UL) + +FD_PROTOTYPES_BEGIN + +/* Serialize a signed_vote event into the circq, reserving an event id + from the client and writing the standard event envelope. Mirrors + the hand-written fd_pb_* path. */ +void +fd_event_signed_vote_serialize( fd_circq_t * circq, + fd_event_client_t * client, + long timestamp_nanos, + fd_event_signed_vote_t const * msg ); + +FD_PROTOTYPES_END + +#endif diff --git a/src/disco/events/schema/signed_vote.json b/src/disco/events/schema/signed_vote.json index 372dc18fe02..a84ecb709bf 100644 --- a/src/disco/events/schema/signed_vote.json +++ b/src/disco/events/schema/signed_vote.json @@ -3,17 +3,18 @@ "id": 3, "description": "The validator generated a vote transaction", "fields": { - "signed_txn": { "type": "Bytes", "description": "Serialized signed vote transaction" }, - "vote_account": { "type": "Pubkey", "description": "The public key of the vote account" }, - "vote_authority": { "type": "Pubkey", "description": "The public key that authorized the vote" }, - "fee_payer": { "type": "Pubkey", "description": "The public key that pays for transaction fees" }, - "signature": { "type": "Signature", "description": "Signature identifying the transaction" }, - "vote_slot": { "type": "UInt64", "description": "Slot being voted on (top of tower)" }, - "vote_bank_hash": { "type": "Pubkey", "description": "Bank hash of the slot being voted on" }, - "vote_block_id": { "type": "Pubkey", "description": "Block ID of the slot being voted on" }, - "txn_blockhash": { "type": "Pubkey", "description": "Recent blockhash parameter of the vote transaction" }, + "signed_txn": { "type": "Bytes", "max_len": 1232, "description": "Serialized signed vote transaction" }, + "vote_account": { "type": "Pubkey", "description": "The public key of the vote account" }, + "vote_authority": { "type": "Pubkey", "description": "The public key that authorized the vote" }, + "fee_payer": { "type": "Pubkey", "description": "The public key that pays for transaction fees" }, + "signature": { "type": "Signature", "description": "Signature identifying the transaction" }, + "vote_slot": { "type": "UInt64", "description": "Slot being voted on (top of tower)" }, + "vote_bank_hash": { "type": "Hash", "description": "Bank hash of the slot being voted on" }, + "vote_block_id": { "type": "Hash", "description": "Block ID of the slot being voted on" }, + "txn_blockhash": { "type": "Hash", "description": "Recent blockhash parameter of the vote transaction" }, "tower": { "type": "Array", + "max_len": 31, "description": "Tower of slots being voted on (oldest to newest)", "element": { "type": "Tuple", From 0860e5203d72f6ac0571e18c0aa13318a96b0e2e Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Fri, 12 Jun 2026 21:32:59 +0000 Subject: [PATCH 12/61] events: simplify signing domain Use a static signing domain instead of a random key. This makes it easier to prove that there are no signing confusion bugs. --- src/app/firedancer/topology.c | 2 +- src/disco/events/fd_event_client.c | 13 ++++++++++--- src/disco/keyguard/fd_keyguard.h | 9 ++++----- src/disco/keyguard/fd_keyguard_match.c | 11 +++++++---- src/disco/keyguard/fd_sign_tile.c | 11 +---------- 5 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/app/firedancer/topology.c b/src/app/firedancer/topology.c index e04266edecf..8aa17f008e7 100644 --- a/src/app/firedancer/topology.c +++ b/src/app/firedancer/topology.c @@ -824,7 +824,7 @@ fd_topo_initialize( config_t * config ) { fd_topob_wksp( topo, "event" ); fd_topob_wksp( topo, "event_sign" ); fd_topob_wksp( topo, "sign_event" ); - fd_topob_link( topo, "event_sign", "event_sign", 128UL, 32UL, 1UL ); + fd_topob_link( topo, "event_sign", "event_sign", 128UL, 132UL, 1UL ); fd_topob_link( topo, "sign_event", "sign_event", 128UL, 64UL, 1UL ); fd_topob_tile( topo, "event", "event", "metric_in", tile_to_cpu[ topo->tile_cnt ], 0, 1, 0 ); fd_topob_tile_in( topo, "event", 0UL, "metric_in", "genesi_out", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); diff --git a/src/disco/events/fd_event_client.c b/src/disco/events/fd_event_client.c index 880d91498b0..b77e103de9a 100644 --- a/src/disco/events/fd_event_client.c +++ b/src/disco/events/fd_event_client.c @@ -529,12 +529,19 @@ fd_event_client_handle_auth_challenge_resp( fd_event_client_t * client, return; } + uchar sign_request[ 132 ]; + static char const sign_prefix[ 100 ] = + " " /* 32 spaces */ + " " /* 32 spaces */ + "Firedancer event challenge-response"; + memcpy( sign_request, sign_prefix, sizeof(sign_prefix) ); + memcpy( sign_request+100, challenge_data, 32UL ); + uchar signed_challenge[ 64UL ]; fd_keyguard_client_sign( client->keyguard_client, signed_challenge, - challenge_data, - 32UL, - FD_KEYGUARD_SIGN_TYPE_FD_EVENTS_AUTH_CONCAT_ED25519 ); + sign_request, 132UL, + FD_KEYGUARD_SIGN_TYPE_ED25519 ); fd_pb_encoder_t confirm_req[1]; uchar buffer[ 128UL ]; diff --git a/src/disco/keyguard/fd_keyguard.h b/src/disco/keyguard/fd_keyguard.h index 099c14c275f..4f9de93c9fa 100644 --- a/src/disco/keyguard/fd_keyguard.h +++ b/src/disco/keyguard/fd_keyguard.h @@ -52,11 +52,10 @@ FD_PROTOTYPES_BEGIN /* Sign types *********************************************************/ -#define FD_KEYGUARD_SIGN_TYPE_ED25519 (0) /* ed25519_sign(input) */ -#define FD_KEYGUARD_SIGN_TYPE_SHA256_ED25519 (1) /* ed25519_sign(sha256(data)) */ -#define FD_KEYGUARD_SIGN_TYPE_PUBKEY_CONCAT_ED25519 (2) /* ed25519_sign(pubkey-data) */ -#define FD_KEYGUARD_SIGN_TYPE_FD_EVENTS_AUTH_CONCAT_ED25519 (3) /* ed25519_sign(FD_EVENTS_AUTH-data)) */ -#define FD_KEYGUARD_SIGN_TYPE_CNT (4) /* number of sign types */ +#define FD_KEYGUARD_SIGN_TYPE_ED25519 (0) /* ed25519_sign(input) */ +#define FD_KEYGUARD_SIGN_TYPE_SHA256_ED25519 (1) /* ed25519_sign(sha256(data)) */ +#define FD_KEYGUARD_SIGN_TYPE_PUBKEY_CONCAT_ED25519 (2) /* ed25519_sign(pubkey-data) */ +#define FD_KEYGUARD_SIGN_TYPE_CNT (3) /* number of sign types */ /* Type confusion/ambiguity checks ************************************/ diff --git a/src/disco/keyguard/fd_keyguard_match.c b/src/disco/keyguard/fd_keyguard_match.c index 7856efd551d..0b076a18c8d 100644 --- a/src/disco/keyguard/fd_keyguard_match.c +++ b/src/disco/keyguard/fd_keyguard_match.c @@ -301,11 +301,14 @@ FD_FN_PURE int fd_keyguard_payload_matches_event( uchar const * data, ulong sz, int sign_type ) { - (void)data; - - if( sign_type != FD_KEYGUARD_SIGN_TYPE_FD_EVENTS_AUTH_CONCAT_ED25519 ) return 0; - if( sz!=32UL ) return 0; + static char const sign_prefix[ 100 ] = + " " /* 32 spaces */ + " " /* 32 spaces */ + "Firedancer event challenge-response"; + if( sz!=132UL ) return 0; + if( sign_type!=FD_KEYGUARD_SIGN_TYPE_ED25519 ) return 0; + if( 0!=memcmp( data, sign_prefix, sizeof(sign_prefix) ) ) return 0; return 1; } diff --git a/src/disco/keyguard/fd_sign_tile.c b/src/disco/keyguard/fd_sign_tile.c index 303ceaf97fe..e34dab7ef04 100644 --- a/src/disco/keyguard/fd_sign_tile.c +++ b/src/disco/keyguard/fd_sign_tile.c @@ -43,8 +43,6 @@ typedef struct { ulong public_key_base58_sz; uchar concat[ FD_BASE58_ENCODED_32_SZ+1UL+9UL ]; - uchar event_auth_concat[ 15UL+32UL ]; - fd_sign_in_ctx_t in[ MAX_IN ]; fd_sign_out_ctx_t out[ MAX_IN ]; @@ -87,8 +85,6 @@ derive_fields( fd_sign_ctx_t * ctx ) { fd_base58_encode_32( ctx->public_key, &ctx->public_key_base58_sz, (char *)ctx->concat ); ctx->concat[ ctx->public_key_base58_sz ] = '-'; - - memcpy( ctx->event_auth_concat, "FD_EVENTS_AUTH-", 15UL ); } static void FD_FN_SENSITIVE @@ -246,11 +242,6 @@ after_frag_sensitive( void * _ctx, fd_ed25519_sign( dst, ctx->concat, ctx->public_key_base58_sz+1UL+9UL, ctx->public_key, ctx->private_key, ctx->sha512 ); break; } - case FD_KEYGUARD_SIGN_TYPE_FD_EVENTS_AUTH_CONCAT_ED25519: { - memcpy( ctx->event_auth_concat+15UL, ctx->_data, 32UL ); - fd_ed25519_sign( dst, ctx->event_auth_concat, 15UL+32UL, ctx->public_key, ctx->private_key, ctx->sha512 ); - break; - } default: FD_LOG_EMERG(( "invalid sign type: %d", sign_type )); } @@ -387,7 +378,7 @@ unprivileged_init_sensitive( fd_topo_t const * topo, } else if( !strcmp(in_link->name, "event_sign" ) ) { ctx->in[ i ].role = FD_KEYGUARD_ROLE_EVENT; FD_TEST( !strcmp( out_link->name, "sign_event" ) ); - FD_TEST( in_link->mtu==32UL ); + FD_TEST( in_link->mtu==132UL ); FD_TEST( out_link->mtu==64UL ); } else if( !strcmp(in_link->name, "pack_sign" ) ) { ctx->in[ i ].role = FD_KEYGUARD_ROLE_BUNDLE_CRANK; From a229ba961a048e199601367f4f0b5acbf75552bf Mon Sep 17 00:00:00 2001 From: publicqi <56060664+publicqi@users.noreply.github.com> Date: Fri, 12 Jun 2026 15:19:00 -0700 Subject: [PATCH 13/61] fix(secp256r1): add one more point (#10170) * fix(secp256r1): add one more point p256_scalarmulbase() is called with blocksize=6, so it scans, in constant time, 43 windows * 32 = 1376 affine points of the base point table. The table had only 1375 entries, so every secp256r1 signature verify read one point (64 bytes) past the end of fd_secp256r1_base_point_table. Add the missing 2^252*32*G entry and a static assert pinning the table size. * Update src/ballet/secp256r1/fd_secp256r1_s2n.c Co-authored-by: David Rubin --------- Co-authored-by: David Rubin --- src/ballet/secp256r1/fd_secp256r1_s2n.c | 6 ++++++ src/ballet/secp256r1/fd_secp256r1_table.c | 1 + 2 files changed, 7 insertions(+) diff --git a/src/ballet/secp256r1/fd_secp256r1_s2n.c b/src/ballet/secp256r1/fd_secp256r1_s2n.c index 3ae812cf98e..903fce82100 100644 --- a/src/ballet/secp256r1/fd_secp256r1_s2n.c +++ b/src/ballet/secp256r1/fd_secp256r1_s2n.c @@ -19,6 +19,12 @@ #include "fd_secp256r1_table.c" +/* p256_base_table_size is used for p256_scalarmulbase with a blocksize=6. + B=2^(6-1)=32, there are 43 blocks i with 6*i<=256 (6*42=252<=256), and + 43 * 32 * 8 = 11008 entries. + https://github.com/awslabs/s2n-bignum/blob/9061e8b76522beafa5ca020f3c8d99b23eba4fbc/x86/p256/p256_scalarmulbase.S#L14-L23 */ +FD_STATIC_ASSERT( sizeof(fd_secp256r1_base_point_table)==(43UL*32UL*8UL)*sizeof(ulong), p256_base_table_size ); + /* Scalars */ static inline int diff --git a/src/ballet/secp256r1/fd_secp256r1_table.c b/src/ballet/secp256r1/fd_secp256r1_table.c index a3a1f251b0a..6c06ae9e8e3 100644 --- a/src/ballet/secp256r1/fd_secp256r1_table.c +++ b/src/ballet/secp256r1/fd_secp256r1_table.c @@ -1376,4 +1376,5 @@ static const ulong fd_secp256r1_base_point_table[] = { 0xdb849ca552f03ad8, 0xc7e8dbe9024e35c0, 0xa1a2bbaccfc3c789, 0xbf733e7d9c26f262, 0x882ffbf5b8444823, 0xb7224e886bf8483b, 0x53023b8b65bef640, 0xaabfec91d4d5f8cd, 0xa40e1510079ea1bd, 0x1ad9addcd05d5d26, 0xdb3f2eab13e68d4f, 0x1cff1ae2640f803f, 0xe0e7b749d4cee117, 0x8e9f275b4036d909, 0xce34e31d8f4d4c38, 0x22b37f69d75130fc, 0x83e0f1fdb4014604, 0xa8ce991989415078, 0x82375b7541792efe, 0x4f59bf5c97d4515b, 0xac4f324f923a277d, 0xd9bc9b7d650f3406, 0xc6fa87d18a39bc51, 0x825885305ccc108f, + 0x5ced3c9f82e4c634, 0x8efb83143a4464f8, 0xe706381b7a1dca25, 0x6cd15a3c5a2a412b, 0x9347a8fdbfcd8fb5, 0x31db2eef6e54cd22, 0xc4aeb11ef8d8932f, 0x11e7c1ed344411af, }; From efab7535471b6ee69014ef51d5d246cdebaf26b9 Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Thu, 4 Jun 2026 22:39:41 +0000 Subject: [PATCH 14/61] README: use full Firedancer in dev section --- README.md | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index f08f9428d4a..6284cc2bd87 100644 --- a/README.md +++ b/README.md @@ -41,23 +41,28 @@ Firedancer currently only supports Linux and requires a relatively new kernel, at least v4.18 to build. ```console -$ git clone --recurse-submodules https://github.com/firedancer-io/firedancer.git +$ git clone https://github.com/firedancer-io/firedancer.git $ cd firedancer -$ ./deps.sh +dev -$ make -j run +$ ./deps.sh +$ make -j + +# Run a new development cluster +$ build/native/gcc/bin/firedancer-dev + +# Join Solana testnet +$ build/native/gcc/bin/firedancer-dev --testnet ``` -The `make run` target runs the `fddev dev` command. This development -command will ensure your system is configured correctly before creating -a genesis block, some keys, a faucet, and then starting a validator on -the local machine. `fddev` will use `sudo` to make privileged changes to -system configuration where needed. If `sudo` is not available, you may -need to run the command as root. +`firedancer-dev` (without args) configures your system for validator +operation and creates a new lcoal development cluster. First it creates +a genesis block, some keys, a faucet, and then it starts a validator on +the local machine. `firedancer-dev` will use `sudo` to make privileged +changes to system configuration where needed. If `sudo` is not available, +you may need to run the command as root. -By default `fddev` will create a new development cluster, if you wish to -join this cluster with other validators, you can define -`[rpc.entrypoints]` in the configuration file to point at your first -validator and run `fddev dev` again. +If you wish to join this cluster with other validators, you can define +`[gossip.entrypoints]` in the configuration file to point at your first +validator and join with `firedancer-dev run`. ## License Firedancer is available under the [Apache 2 From c1df24175776ae89b83e5f4bd9b2d7104b6df02e Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Thu, 4 Jun 2026 22:41:16 +0000 Subject: [PATCH 15/61] fddev: remove legacy Make targets --- src/app/fddev/Local.mk | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/src/app/fddev/Local.mk b/src/app/fddev/Local.mk index 0086a988ff6..2f314b13b7b 100644 --- a/src/app/fddev/Local.mk +++ b/src/app/fddev/Local.mk @@ -3,7 +3,7 @@ ifdef FD_HAS_LINUX ifdef FD_HAS_ALLOCA ifdef FD_HAS_DOUBLE -.PHONY: fddev run monitor +.PHONY: fddev $(call add-objs,dev1,fd_fddev) $(call add-objs,commands/configure/blockstore,fd_fddev) @@ -11,29 +11,6 @@ $(call add-objs,commands/bench,fd_fddev) $(call add-objs,commands/dev,fd_fddev) $(call make-bin-rust,fddev,main,fd_fddev fd_fdctl fddev_shared fdctl_shared fdctl_platform fd_discoh fd_disco fd_choreo agave_validator fd_flamenco fd_quic fd_tls fd_reedsol fd_waltz fd_tango fd_ballet fd_util fdctl_version) - -ifeq (run,$(firstword $(MAKECMDGOALS))) - RUN_ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS)) - ifeq ($(RUN_ARGS),) - RUN_ARGS := dev --monitor - endif - $(eval $(RUN_ARGS):;@:) -endif - -run: $(OBJDIR)/bin/fddev - $(OBJDIR)/bin/fddev $(RUN_ARGS) - -ifeq (monitor,$(firstword $(MAKECMDGOALS))) - MONITOR_ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS)) - ifeq ($(MONITOR_ARGS),) - MONITOR_ARGS := - endif - $(eval $(MONITOR_ARGS):;@:) -endif - -monitor: bin - $(OBJDIR)/bin/fddev monitor $(MONITOR_ARGS) - $(call make-integration-test,test_fddev,tests/test_fddev,fd_fddev fd_fdctl fddev_shared fdctl_shared fdctl_platform fd_discoh fd_disco fd_choreo agave_validator fd_flamenco fd_quic fd_tls fd_reedsol fd_waltz fd_tango fd_ballet fd_util fdctl_version) $(call run-integration-test,test_fddev) From 801d93d874610a31e2b18285985e2c6615d8593c Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Fri, 5 Jun 2026 00:00:12 +0000 Subject: [PATCH 16/61] config: reduce verbosity --- GNUmakefile | 3 --- config/extra/with-lz4.mk | 2 -- config/extra/with-openssl.mk | 2 +- config/extra/with-rocksdb.mk | 7 ------- config/machine/native.mk | 6 ------ src/app/ledger/Local.mk | 4 ---- 6 files changed, 1 insertion(+), 23 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index ecddf379ae7..d20cf3d5169 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -70,9 +70,6 @@ ifndef MACHINE MACHINE=native endif -$(info Using MACHINE=$(MACHINE)) -$(info Using EXTRAS=$(EXTRAS_PRE) $(EXTRAS)) - # Default target all: diff --git a/config/extra/with-lz4.mk b/config/extra/with-lz4.mk index d5772fe0841..fac702ef37a 100644 --- a/config/extra/with-lz4.mk +++ b/config/extra/with-lz4.mk @@ -2,6 +2,4 @@ ifneq (,$(wildcard $(OPT)/lib/liblz4.a)) FD_HAS_LZ4:=1 CFLAGS+=-DFD_HAS_LZ4=1 LDFLAGS+=$(OPT)/lib/liblz4.a -else -$(info "lz4 not installed, skipping") endif diff --git a/config/extra/with-openssl.mk b/config/extra/with-openssl.mk index f83fdf1de82..f19f3b50cf6 100644 --- a/config/extra/with-openssl.mk +++ b/config/extra/with-openssl.mk @@ -6,5 +6,5 @@ CPPFLAGS+=-DFD_HAS_OPENSSL=1 CPPFLAGS+=-DOPENSSL_API_COMPAT=30500 -DOPENSSL_NO_DEPRECATED else -$(info "openssl not installed, skipping") +$(warning "openssl not installed, skipping") endif diff --git a/config/extra/with-rocksdb.mk b/config/extra/with-rocksdb.mk index 259ef67c068..a7ecf08c496 100644 --- a/config/extra/with-rocksdb.mk +++ b/config/extra/with-rocksdb.mk @@ -8,13 +8,6 @@ ROCKSDB_LIBS:=$(OPT)/lib/librocksdb.a $(OPT)/lib/libsnappy.a ifndef LIBCXX ROCKSDB_LIBS+=-lstdc++ endif - -else -$(warning "zstd not installed, skipping rocksdb") endif -else -$(warning "snappy not installed, skipping rocksdb") endif -else -$(warning "rocksdb not installed, skipping") endif diff --git a/config/machine/native.mk b/config/machine/native.mk index c5e600fd5b0..3f1ddcc50dd 100644 --- a/config/machine/native.mk +++ b/config/machine/native.mk @@ -44,10 +44,4 @@ endif ifdef FD_IS_X86_64 include config/extra/with-x86-64.mk -$(info Using FD_HAS_SSE=$(FD_HAS_SSE)) -$(info Using FD_HAS_AVX=$(FD_HAS_AVX)) -$(info Using FD_HAS_AVX512=$(FD_HAS_AVX512)) -$(info Using FD_HAS_GFNI=$(FD_HAS_GFNI)) -$(info Using FD_HAS_SHANI=$(FD_HAS_SHANI)) -$(info Using FD_HAS_AESNI=$(FD_HAS_AESNI)) endif diff --git a/src/app/ledger/Local.mk b/src/app/ledger/Local.mk index 379d9d73dbb..253a88f38e7 100644 --- a/src/app/ledger/Local.mk +++ b/src/app/ledger/Local.mk @@ -1,7 +1,3 @@ ifdef FD_HAS_ROCKSDB - $(call make-bin,fd_ledger,main,fd_flamenco fd_ballet fd_reedsol fd_tango fd_choreo fd_waltz fd_util fd_disco,$(ROCKSDB_LIBS)) - -else -$(warning ledger tool build disabled due to lack of rocksdb) endif From 838438b7adbe04d122599196d561ee990672bf4d Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Fri, 5 Jun 2026 00:00:42 +0000 Subject: [PATCH 17/61] config: add 'source activate' script Allow remembering Make config using shell variables --- README.md | 5 +-- activate | 85 ++++++++++++++++++++++++++++++++++++++++++++ config/base.mk | 3 ++ config/everything.mk | 9 ++++- 4 files changed, 99 insertions(+), 3 deletions(-) create mode 100755 activate diff --git a/README.md b/README.md index 6284cc2bd87..d96674f35e1 100644 --- a/README.md +++ b/README.md @@ -44,13 +44,14 @@ kernel, at least v4.18 to build. $ git clone https://github.com/firedancer-io/firedancer.git $ cd firedancer $ ./deps.sh +$ source activate # enter build environment $ make -j # Run a new development cluster -$ build/native/gcc/bin/firedancer-dev +$ firedancer-dev # Join Solana testnet -$ build/native/gcc/bin/firedancer-dev --testnet +$ firedancer-dev --testnet ``` `firedancer-dev` (without args) configures your system for validator diff --git a/activate b/activate new file mode 100755 index 00000000000..19fe788311b --- /dev/null +++ b/activate @@ -0,0 +1,85 @@ +for arg in "$@"; do + case "$arg" in + help|--help) + echo "Usage: source activate [CC=clang] [EXTRAS=...] [MACHINE=...] [BUILDDIR=...]" + exit 0 + ;; + esac +done + +# Ignore variables set in existing environment. +unset BUILDDIR1 +unset BUILDDIR +unset OBJDIR +unset MACHINE +unset EXTRAS +unset CC + +# Auto-derive environment variables from the above 5 input variables. +_fd_env_make_env=$(make env "$@") || return +eval "$_fd_env_make_env" +unset _fd_env_make_env +if [ -z "${OBJDIR+x}" ] || [ -z "$OBJDIR" ]; then + printf '%s\n' 'activate: OBJDIR is not set' >&2 + return +fi + +# Re-export, so future `make` invocations match. +echo "Firedancer build directory is $OBJDIR" +export OBJDIR +export MACHINE +export EXTRAS +export CC +BUILDDIR1="$BUILDDIR" +export BUILDDIR1 + +# Update PATH to exclude stale build dirs, +# and include OBJDIR bin, unit-test, and fuzz-test + +_fd_env_script=${BASH_SOURCE[0]:-$0} +_fd_env_script_dir=$(CDPATH= cd -- "$(dirname -- "$_fd_env_script")" 2>/dev/null && pwd -P) +_fd_env_root=$_fd_env_script_dir + +_fd_env_old_path=${PATH-} +_fd_env_new_path= + +while [ -n "$_fd_env_old_path" ]; do + case $_fd_env_old_path in + *:*) + _fd_env_path_entry=${_fd_env_old_path%%:*} + _fd_env_old_path=${_fd_env_old_path#*:} + ;; + *) + _fd_env_path_entry=$_fd_env_old_path + _fd_env_old_path= + ;; + esac + + case $_fd_env_path_entry in + /*) _fd_env_path_match=$_fd_env_path_entry ;; + *) _fd_env_path_match=$PWD/$_fd_env_path_entry ;; + esac + + if [ -d "$_fd_env_path_match" ]; then + _fd_env_path_match=$(CDPATH= cd -- "$_fd_env_path_match" 2>/dev/null && pwd -P) + fi + + case $_fd_env_path_match in + "$_fd_env_root"| "$_fd_env_root"/*) continue ;; + esac + + if [ -z "$_fd_env_new_path" ]; then + _fd_env_new_path=$_fd_env_path_entry + else + _fd_env_new_path=$_fd_env_new_path:$_fd_env_path_entry + fi +done + +PATH=$OBJDIR/bin:$OBJDIR/fuzz-test:$OBJDIR/unit-test +if [ -n "$_fd_env_new_path" ]; then + PATH=$PATH:$_fd_env_new_path +fi +export PATH + +unset _fd_env_old_path _fd_env_new_path _fd_env_path_entry +unset _fd_env_path_match _fd_env_root _fd_env_script _fd_env_script_dir diff --git a/config/base.mk b/config/base.mk index eeb28614754..42064b81e6b 100644 --- a/config/base.mk +++ b/config/base.mk @@ -1,4 +1,7 @@ BASEDIR?=build +ifneq ($(BUILDDIR1),) +BUILDDIR:=$(BUILDDIR1) +endif VERBOSE?=0 OPT?=opt diff --git a/config/everything.mk b/config/everything.mk index f2727ebed94..d975871f9cb 100644 --- a/config/everything.mk +++ b/config/everything.mk @@ -16,7 +16,7 @@ CPPFLAGS+=-DFD_BUILD_INFO=\"$(OBJDIR)/info\" CPPFLAGS+=$(EXTRA_CPPFLAGS) # Auxiliary rules that should not set up dependencies -AUX_RULES:=clean distclean help run-unit-test run-integration-test cov-report dist-cov-report seccomp-policies frontend +AUX_RULES:=clean distclean help run-unit-test run-integration-test cov-report dist-cov-report seccomp-policies frontend env # Dry rules that should set up dependency targets, but not generate them DRY_RULES:=check show-deps proof @@ -560,3 +560,10 @@ frontend-clean: rm -rf src/disco/gui/dist_stable_cmp rm -rf src/disco/gui/dist_alpha_cmp rm -rf src/disco/gui/dist_dev_cmp + +env: + @echo BUILDDIR=\'$(BUILDDIR)\' + @echo OBJDIR=\'$(CURDIR)/$(OBJDIR)\' + @echo MACHINE=\'$(MACHINE)\' + @echo EXTRAS=\'$(EXTRAS)\' + @echo CC=\'$(CC)\' From 52ccc2865205919481b3273ec45c86089ba75f41 Mon Sep 17 00:00:00 2001 From: David Rubin Date: Sat, 13 Jun 2026 03:34:33 +0000 Subject: [PATCH 18/61] fixup .gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 6e596d5117c..7794a272bd6 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,7 @@ bin dump unit-test tmp -# frontend +frontend .DS_Store genhtml/ From 43174e213a668707d54a48a7a11b44b8c4ffc685 Mon Sep 17 00:00:00 2001 From: jherrera-jump Date: Sat, 13 Jun 2026 14:37:39 -0500 Subject: [PATCH 19/61] gui: split disco/gui and discoh/guih (#10113) --- book/api/metrics-generated.md | 15 + config/everything.mk | 100 +- src/app/fdctl/main.c | 4 +- src/app/fdctl/topology.c | 21 +- src/app/fddev/main.h | 4 +- src/app/firedancer/topology.c | 1 - src/app/shared/commands/watch/watch.c | 48 +- src/app/shared/fd_config.c | 12 - src/app/shared/fd_config.h | 2 - src/app/shared/fd_config_parse.c | 1 - src/disco/gui/.gitignore | 4 +- src/disco/gui/Local.mk | 38 +- .../{dist_dev => dist}/LICENSE_DEPENDENCIES | 0 .../assets/NotoFlagsOnly.woff2 | Bin .../assets/firedancer-D_J0EzUc.svg | 0 .../firedancer_circle_logo-D9jlxCje.svg | 0 ...redancer_harmonic_circle_logo-BDGMe3Wt.svg | 0 .../assets/firedancer_logo-CrgwxzPk.svg | 0 .../assets/frankendancer-0Top5G94.svg | 0 .../frankendancer_circle_logo-D5z79vwQ.svg | 0 ...endancer_harmonic_circle_logo-RW9Ak0Ky.svg | 0 .../assets/frankendancer_logo-CHyfJ772.svg | 0 .../assets/index-C054xcgF.js | 0 .../assets/index-qV0ZL8w9.css | 0 ...inter-tight-latin-400-normal-BLrFJfvD.woff | Bin ...nter-tight-latin-400-normal-iW8qmuJY.woff2 | Bin .../assets/privateYou-DnAsYVZD.svg | 0 ...roboto-mono-latin-400-normal-DBZPkcnn.woff | Bin ...oboto-mono-latin-400-normal-GekRknry.woff2 | Bin .../assets/wsWorker-CiLy8ipA.js | 0 src/disco/gui/{dist_dev => dist}/index.html | 0 src/disco/gui/dist/version | 1 + src/disco/gui/dist_alpha/LICENSE_DEPENDENCIES | 3744 ----------------- .../firedancer_logo_circle-D9jlxCje.svg | 170 - .../frankendancer_logo_circle-D5z79vwQ.svg | 170 - .../gui/dist_alpha/assets/index-B79NUQX2.js | 1 - .../gui/dist_alpha/assets/index-BJ9rbYrC.js | 119 - .../gui/dist_alpha/assets/index-DzLX98NL.css | 1 - .../gui/dist_alpha/assets/index-cxKTti9M.css | 1 - src/disco/gui/dist_alpha/index.html | 64 - src/disco/gui/dist_alpha/version | 1 - .../assets/firedancer-D_J0EzUc.svg | 178 - .../assets/firedancer_logo-CrgwxzPk.svg | 168 - .../assets/frankendancer-0Top5G94.svg | 169 - .../assets/frankendancer_logo-CHyfJ772.svg | 168 - .../gui/dist_stable/assets/index-CvU-WPyd.js | 214 - ...inter-tight-latin-400-normal-BLrFJfvD.woff | Bin 28248 -> 0 bytes ...nter-tight-latin-400-normal-iW8qmuJY.woff2 | Bin 22016 -> 0 bytes .../assets/privateYou-DnAsYVZD.svg | 178 - ...roboto-mono-latin-400-normal-DBZPkcnn.woff | Bin 15720 -> 0 bytes ...oboto-mono-latin-400-normal-GekRknry.woff2 | Bin 12680 -> 0 bytes src/disco/gui/dist_stable/version | 1 - src/disco/gui/fd_gui.c | 802 +--- src/disco/gui/fd_gui.h | 6 - src/disco/gui/fd_gui_metrics.h | 2 +- src/disco/gui/fd_gui_peers.c | 2 +- src/disco/gui/fd_gui_printf.c | 271 -- src/disco/gui/fd_gui_printf.h | 28 - src/disco/gui/fd_gui_tile.c | 117 +- src/disco/gui/generated/http_import_dist.c | 829 +--- src/disco/gui/generated/http_import_dist.h | 4 +- src/disco/metrics/generate/types.py | 1 + src/disco/metrics/generated/fd_metrics_all.c | 3 + src/disco/metrics/generated/fd_metrics_all.h | 3 +- src/disco/metrics/generated/fd_metrics_guih.c | 11 + src/disco/metrics/generated/fd_metrics_guih.h | 51 + src/disco/metrics/metrics.xml | 11 + src/disco/topo/fd_topo.h | 1 - src/disco/topo/fd_topob.c | 4 +- src/disco/topo/test_topob.c | 12 +- src/discoh/guih/.gitignore | 1 + src/discoh/guih/Local.mk | 23 + .../guih/dist}/LICENSE_DEPENDENCIES | 0 .../guih/dist}/assets/NotoFlagsOnly.woff2 | Bin .../guih/dist}/assets/firedancer-D_J0EzUc.svg | 0 .../firedancer_circle_logo-D9jlxCje.svg | 0 ...redancer_harmonic_circle_logo-BDGMe3Wt.svg | 0 .../dist}/assets/firedancer_logo-CrgwxzPk.svg | 0 .../dist}/assets/frankendancer-0Top5G94.svg | 0 .../frankendancer_circle_logo-D5z79vwQ.svg | 0 ...endancer_harmonic_circle_logo-RW9Ak0Ky.svg | 0 .../assets/frankendancer_logo-CHyfJ772.svg | 0 src/discoh/guih/dist/assets/index-guHM0lzm.js | 214 + .../guih/dist/assets/index-qV0ZL8w9.css} | 2 +- ...inter-tight-latin-400-normal-BLrFJfvD.woff | Bin ...nter-tight-latin-400-normal-iW8qmuJY.woff2 | Bin .../guih/dist}/assets/privateYou-DnAsYVZD.svg | 0 ...roboto-mono-latin-400-normal-DBZPkcnn.woff | Bin ...oboto-mono-latin-400-normal-GekRknry.woff2 | Bin .../guih/dist/assets/wsWorker-CTAVpIxr.js} | 2 +- .../guih/dist}/index.html | 4 +- src/discoh/guih/dist/version | 1 + src/discoh/guih/fd_guih.c | 2534 +++++++++++ src/discoh/guih/fd_guih.h | 1080 +++++ src/discoh/guih/fd_guih_metrics.h | 62 + src/discoh/guih/fd_guih_printf.c | 2201 ++++++++++ src/discoh/guih/fd_guih_printf.h | 149 + src/discoh/guih/fd_guih_tile.c | 615 +++ src/discoh/guih/fd_guih_tile.seccomppolicy | 80 + .../guih/generated/fd_guih_tile_seccomp.h | 151 + src/discoh/guih/generated/http_import_dist.c | 248 ++ src/discoh/guih/generated/http_import_dist.h | 20 + 102 files changed, 7815 insertions(+), 7328 deletions(-) rename src/disco/gui/{dist_dev => dist}/LICENSE_DEPENDENCIES (100%) rename src/disco/gui/{dist_dev => dist}/assets/NotoFlagsOnly.woff2 (100%) rename src/disco/gui/{dist_alpha => dist}/assets/firedancer-D_J0EzUc.svg (100%) rename src/disco/gui/{dist_dev => dist}/assets/firedancer_circle_logo-D9jlxCje.svg (100%) rename src/disco/gui/{dist_dev => dist}/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg (100%) rename src/disco/gui/{dist_alpha => dist}/assets/firedancer_logo-CrgwxzPk.svg (100%) rename src/disco/gui/{dist_alpha => dist}/assets/frankendancer-0Top5G94.svg (100%) rename src/disco/gui/{dist_dev => dist}/assets/frankendancer_circle_logo-D5z79vwQ.svg (100%) rename src/disco/gui/{dist_dev => dist}/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg (100%) rename src/disco/gui/{dist_alpha => dist}/assets/frankendancer_logo-CHyfJ772.svg (100%) rename src/disco/gui/{dist_dev => dist}/assets/index-C054xcgF.js (100%) rename src/disco/gui/{dist_dev => dist}/assets/index-qV0ZL8w9.css (100%) rename src/disco/gui/{dist_alpha => dist}/assets/inter-tight-latin-400-normal-BLrFJfvD.woff (100%) rename src/disco/gui/{dist_alpha => dist}/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2 (100%) rename src/disco/gui/{dist_alpha => dist}/assets/privateYou-DnAsYVZD.svg (100%) rename src/disco/gui/{dist_alpha => dist}/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff (100%) rename src/disco/gui/{dist_alpha => dist}/assets/roboto-mono-latin-400-normal-GekRknry.woff2 (100%) rename src/disco/gui/{dist_dev => dist}/assets/wsWorker-CiLy8ipA.js (100%) rename src/disco/gui/{dist_dev => dist}/index.html (100%) create mode 100644 src/disco/gui/dist/version delete mode 100644 src/disco/gui/dist_alpha/LICENSE_DEPENDENCIES delete mode 100644 src/disco/gui/dist_alpha/assets/firedancer_logo_circle-D9jlxCje.svg delete mode 100644 src/disco/gui/dist_alpha/assets/frankendancer_logo_circle-D5z79vwQ.svg delete mode 100644 src/disco/gui/dist_alpha/assets/index-B79NUQX2.js delete mode 100644 src/disco/gui/dist_alpha/assets/index-BJ9rbYrC.js delete mode 100644 src/disco/gui/dist_alpha/assets/index-DzLX98NL.css delete mode 100644 src/disco/gui/dist_alpha/assets/index-cxKTti9M.css delete mode 100644 src/disco/gui/dist_alpha/index.html delete mode 100644 src/disco/gui/dist_alpha/version delete mode 100644 src/disco/gui/dist_stable/assets/firedancer-D_J0EzUc.svg delete mode 100644 src/disco/gui/dist_stable/assets/firedancer_logo-CrgwxzPk.svg delete mode 100644 src/disco/gui/dist_stable/assets/frankendancer-0Top5G94.svg delete mode 100644 src/disco/gui/dist_stable/assets/frankendancer_logo-CHyfJ772.svg delete mode 100644 src/disco/gui/dist_stable/assets/index-CvU-WPyd.js delete mode 100644 src/disco/gui/dist_stable/assets/inter-tight-latin-400-normal-BLrFJfvD.woff delete mode 100644 src/disco/gui/dist_stable/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2 delete mode 100644 src/disco/gui/dist_stable/assets/privateYou-DnAsYVZD.svg delete mode 100644 src/disco/gui/dist_stable/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff delete mode 100644 src/disco/gui/dist_stable/assets/roboto-mono-latin-400-normal-GekRknry.woff2 delete mode 100644 src/disco/gui/dist_stable/version create mode 100644 src/disco/metrics/generated/fd_metrics_guih.c create mode 100644 src/disco/metrics/generated/fd_metrics_guih.h create mode 100644 src/discoh/guih/.gitignore create mode 100644 src/discoh/guih/Local.mk rename src/{disco/gui/dist_stable => discoh/guih/dist}/LICENSE_DEPENDENCIES (100%) rename src/{disco/gui/dist_stable => discoh/guih/dist}/assets/NotoFlagsOnly.woff2 (100%) rename src/{disco/gui/dist_dev => discoh/guih/dist}/assets/firedancer-D_J0EzUc.svg (100%) rename src/{disco/gui/dist_stable => discoh/guih/dist}/assets/firedancer_circle_logo-D9jlxCje.svg (100%) rename src/{disco/gui/dist_stable => discoh/guih/dist}/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg (100%) rename src/{disco/gui/dist_dev => discoh/guih/dist}/assets/firedancer_logo-CrgwxzPk.svg (100%) rename src/{disco/gui/dist_dev => discoh/guih/dist}/assets/frankendancer-0Top5G94.svg (100%) rename src/{disco/gui/dist_stable => discoh/guih/dist}/assets/frankendancer_circle_logo-D5z79vwQ.svg (100%) rename src/{disco/gui/dist_stable => discoh/guih/dist}/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg (100%) rename src/{disco/gui/dist_dev => discoh/guih/dist}/assets/frankendancer_logo-CHyfJ772.svg (100%) create mode 100644 src/discoh/guih/dist/assets/index-guHM0lzm.js rename src/{disco/gui/dist_stable/assets/index-ColMY7Rf.css => discoh/guih/dist/assets/index-qV0ZL8w9.css} (99%) rename src/{disco/gui/dist_dev => discoh/guih/dist}/assets/inter-tight-latin-400-normal-BLrFJfvD.woff (100%) rename src/{disco/gui/dist_dev => discoh/guih/dist}/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2 (100%) rename src/{disco/gui/dist_dev => discoh/guih/dist}/assets/privateYou-DnAsYVZD.svg (100%) rename src/{disco/gui/dist_dev => discoh/guih/dist}/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff (100%) rename src/{disco/gui/dist_dev => discoh/guih/dist}/assets/roboto-mono-latin-400-normal-GekRknry.woff2 (100%) rename src/{disco/gui/dist_stable/assets/wsWorker-DTUp_HyV.js => discoh/guih/dist/assets/wsWorker-CTAVpIxr.js} (97%) rename src/{disco/gui/dist_stable => discoh/guih/dist}/index.html (92%) create mode 100644 src/discoh/guih/dist/version create mode 100644 src/discoh/guih/fd_guih.c create mode 100644 src/discoh/guih/fd_guih.h create mode 100644 src/discoh/guih/fd_guih_metrics.h create mode 100644 src/discoh/guih/fd_guih_printf.c create mode 100644 src/discoh/guih/fd_guih_printf.h create mode 100644 src/discoh/guih/fd_guih_tile.c create mode 100644 src/discoh/guih/fd_guih_tile.seccomppolicy create mode 100644 src/discoh/guih/generated/fd_guih_tile_seccomp.h create mode 100644 src/discoh/guih/generated/http_import_dist.c create mode 100644 src/discoh/guih/generated/http_import_dist.h diff --git a/book/api/metrics-generated.md b/book/api/metrics-generated.md index 2eca41bf371..f21654382c2 100644 --- a/book/api/metrics-generated.md +++ b/book/api/metrics-generated.md @@ -1775,3 +1775,18 @@ | benchs_​txn_​tx | counter | Benchmark transactions sent | + +## Guih Tile + +
+ +| Metric | Type | Description | +|--------|------|-------------| +| guih_​conn_​active | gauge | Active HTTP connections to the GUI service, excluding connections that have been upgraded to a WebSocket connection | +| guih_​websocket_​conn_​active | gauge | Active WebSocket connections to the GUI service | +| guih_​websocket_​frame_​tx | counter | WebSocket frames sent to all connections to the GUI service | +| guih_​websocket_​frame_​rx | counter | WebSocket frames received from all connections to the GUI service | +| guih_​bytes_​written | counter | Bytes written to all connections to the GUI service | +| guih_​bytes_​read | counter | Bytes read from all connections to the GUI service | + +
diff --git a/config/everything.mk b/config/everything.mk index d975871f9cb..3c3c4a84d23 100644 --- a/config/everything.mk +++ b/config/everything.mk @@ -502,64 +502,66 @@ cov-report: $(OBJDIR)/cov/html/index.html dist-cov-report: $(BASEDIR)/cov/html/index.html $(LCOV) --summary $(BASEDIR)/cov/cov.lcov -# frontend release channel. alpha releases are new frontend features -# that require internal testing before releasing to frankendancer -FRONTEND_RELEASE_CHANNEL := stable -ifeq ($(FRONTEND_RELEASE_CHANNEL),stable) -else ifeq ($(FRONTEND_RELEASE_CHANNEL),alpha) -else ifeq ($(FRONTEND_RELEASE_CHANNEL),dev) +# Builds the frontend bundle and bakes it into the binary. There are two +# independent GUI binaries with their own frontend bundle: +# +# FRONTEND_CLIENT=Firedancer -> src/disco/gui (full client) +# FRONTEND_CLIENT=Frankendancer -> src/discoh/guih (frankendancer) +# +# Each client has a single bundle, stored under its dist/ directory; there +# are no longer per-channel (stable/alpha/dev) variants. +FRONTEND_CLIENT := Firedancer +ifeq ($(FRONTEND_CLIENT),Firedancer) +FRONTEND_DIR := src/disco/gui +else ifeq ($(FRONTEND_CLIENT),Frankendancer) +FRONTEND_DIR := src/discoh/guih else -$(error "unexpected FRONTEND_RELEASE_CHANNEL") +$(error "unexpected FRONTEND_CLIENT (expected Firedancer or Frankendancer)") endif frontend: frontend-clean + echo "VITE_VALIDATOR_CLIENT=$(FRONTEND_CLIENT)" > frontend/.env.production cd frontend && npm ci && npm run build - rm -rf src/disco/gui/dist_$(FRONTEND_RELEASE_CHANNEL) - mkdir -p src/disco/gui/dist_$(FRONTEND_RELEASE_CHANNEL) - cp -r frontend/dist/* src/disco/gui/dist_$(FRONTEND_RELEASE_CHANNEL) - cd frontend && git rev-parse HEAD > ../src/disco/gui/dist_$(FRONTEND_RELEASE_CHANNEL)/version - > src/disco/gui/generated/http_import_dist.c; \ - echo "/* THIS FILE WAS GENERATED BY make frontend. DO NOT EDIT BY HAND! */" >> src/disco/gui/generated/http_import_dist.c; \ - echo "#include \"http_import_dist.h\"" >> src/disco/gui/generated/http_import_dist.c; \ - echo "" >> src/disco/gui/generated/http_import_dist.c; \ - for release_channel in stable alpha dev; do \ - counter=0; \ - if [ ! -d "src/disco/gui/dist_$$release_channel" ]; then continue; fi; \ - for file in $$($(FIND) src/disco/gui/dist_$$release_channel -type f | sort); do \ - compress_prefix=$$(echo "$$file" | sed "s|src/disco/gui/dist_$${release_channel}/|src/disco/gui/dist_$${release_channel}_cmp/|"); \ - echo "FD_IMPORT_BINARY( file_$$release_channel$$counter, \"$$file\" );" >> src/disco/gui/generated/http_import_dist.c; \ - echo "FD_IMPORT_BINARY( file_$$release_channel$${counter}_zstd, \"$${compress_prefix}.zst\" );" >> src/disco/gui/generated/http_import_dist.c; \ - echo "FD_IMPORT_BINARY( file_$$release_channel$${counter}_gzip, \"$${compress_prefix}.gz\" );" >> src/disco/gui/generated/http_import_dist.c; \ - counter=$$((counter + 1)); \ - done; \ - echo "" >> src/disco/gui/generated/http_import_dist.c; \ + rm -rf $(FRONTEND_DIR)/dist + mkdir -p $(FRONTEND_DIR)/dist + cp -r frontend/dist/* $(FRONTEND_DIR)/dist + cd frontend && git rev-parse HEAD > ../$(FRONTEND_DIR)/dist/version + mkdir -p $(FRONTEND_DIR)/generated + > $(FRONTEND_DIR)/generated/http_import_dist.c; \ + echo "/* THIS FILE WAS GENERATED BY make frontend. DO NOT EDIT BY HAND! */" >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ + echo "#include \"http_import_dist.h\"" >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ + echo "" >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ + counter=0; \ + for file in $$($(FIND) $(FRONTEND_DIR)/dist -type f | sort); do \ + compress_prefix=$$(echo "$$file" | sed "s|$(FRONTEND_DIR)/dist/|$(FRONTEND_DIR)/dist_cmp/|"); \ + echo "FD_IMPORT_BINARY( file_$$counter, \"$$file\" );" >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ + echo "FD_IMPORT_BINARY( file_$${counter}_zstd, \"$${compress_prefix}.zst\" );" >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ + echo "FD_IMPORT_BINARY( file_$${counter}_gzip, \"$${compress_prefix}.gz\" );" >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ + counter=$$((counter + 1)); \ done; \ - echo "" >> src/disco/gui/generated/http_import_dist.c; \ - for release_channel in stable alpha dev; do \ - echo "fd_http_static_file_t STATIC_FILES_$$(echo $$release_channel | tr '[:lower:]' '[:upper:]')[] = {" >> src/disco/gui/generated/http_import_dist.c; \ - counter=0; \ - for file in $$($(FIND) src/disco/gui/dist_$$release_channel -type f | sort); do \ - stripped_file=$$(echo $$file | sed "s|^src/disco/gui/dist_$$release_channel/||"); \ - echo " {" >> src/disco/gui/generated/http_import_dist.c; \ - echo " .name = \"/$$stripped_file\"," >> src/disco/gui/generated/http_import_dist.c; \ - echo " .data = file_$$release_channel$$counter," >> src/disco/gui/generated/http_import_dist.c; \ - echo " .data_len = &file_$$release_channel$${counter}_sz," >> src/disco/gui/generated/http_import_dist.c; \ - echo " .zstd_data = file_$$release_channel$${counter}_zstd," >> src/disco/gui/generated/http_import_dist.c; \ - echo " .zstd_data_len = &file_$$release_channel$${counter}_zstd_sz," >> src/disco/gui/generated/http_import_dist.c; \ - echo " .gzip_data = file_$$release_channel$${counter}_gzip," >> src/disco/gui/generated/http_import_dist.c; \ - echo " .gzip_data_len = &file_$$release_channel$${counter}_gzip_sz," >> src/disco/gui/generated/http_import_dist.c; \ - echo " }," >> src/disco/gui/generated/http_import_dist.c; \ - counter=$$((counter + 1)); \ - done; \ - echo " {0}" >> src/disco/gui/generated/http_import_dist.c; \ - echo "};" >> src/disco/gui/generated/http_import_dist.c; \ - echo "" >> src/disco/gui/generated/http_import_dist.c; \ + echo "" >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ + echo "fd_http_static_file_t STATIC_FILES[] = {" >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ + counter=0; \ + for file in $$($(FIND) $(FRONTEND_DIR)/dist -type f | sort); do \ + stripped_file=$$(echo $$file | sed "s|^$(FRONTEND_DIR)/dist/||"); \ + echo " {" >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ + echo " .name = \"/$$stripped_file\"," >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ + echo " .data = file_$$counter," >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ + echo " .data_len = &file_$${counter}_sz," >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ + echo " .zstd_data = file_$${counter}_zstd," >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ + echo " .zstd_data_len = &file_$${counter}_zstd_sz," >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ + echo " .gzip_data = file_$${counter}_gzip," >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ + echo " .gzip_data_len = &file_$${counter}_gzip_sz," >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ + echo " }," >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ + counter=$$((counter + 1)); \ done; \ + echo " {0}" >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ + echo "};" >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ + echo "" >> $(FRONTEND_DIR)/generated/http_import_dist.c; \ frontend-clean: - rm -rf src/disco/gui/dist_stable_cmp - rm -rf src/disco/gui/dist_alpha_cmp - rm -rf src/disco/gui/dist_dev_cmp + rm -rf src/discoh/guih/dist_cmp + rm -rf src/discoh/gui/dist_cmp env: @echo BUILDDIR=\'$(BUILDDIR)\' diff --git a/src/app/fdctl/main.c b/src/app/fdctl/main.c index 5a19dd37446..22b6225fca7 100644 --- a/src/app/fdctl/main.c +++ b/src/app/fdctl/main.c @@ -54,7 +54,7 @@ extern fd_topo_run_tile_t fd_tile_shred; extern fd_topo_run_tile_t fd_tile_sign; extern fd_topo_run_tile_t fd_tile_metric; extern fd_topo_run_tile_t fd_tile_diag; -extern fd_topo_run_tile_t fd_tile_gui; +extern fd_topo_run_tile_t fd_tile_guih; extern fd_topo_run_tile_t fd_tile_plugin; extern fd_topo_run_tile_t fd_tile_resolh; extern fd_topo_run_tile_t fd_tile_pohh; @@ -74,7 +74,7 @@ fd_topo_run_tile_t * TILES[] = { &fd_tile_sign, &fd_tile_metric, &fd_tile_diag, - &fd_tile_gui, + &fd_tile_guih, &fd_tile_plugin, &fd_tile_resolh, &fd_tile_pohh, diff --git a/src/app/fdctl/topology.c b/src/app/fdctl/topology.c index 1f7909aa2ca..d9e84a84b26 100644 --- a/src/app/fdctl/topology.c +++ b/src/app/fdctl/topology.c @@ -275,13 +275,13 @@ fd_topo_initialize( config_t * config ) { } if( FD_LIKELY( config->tiles.gui.enabled ) ) { - fd_topob_wksp( topo, "gui" ); - /**/ fd_topob_tile( topo, "gui", "gui", "metric_in", tile_to_cpu[ topo->tile_cnt ], 0, 1, 0 ); - /**/ fd_topob_tile_in( topo, "gui", 0UL, "metric_in", "plugin_out", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); - /**/ fd_topob_tile_in( topo, "gui", 0UL, "metric_in", "pohh_pack", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); - /**/ fd_topob_tile_in( topo, "gui", 0UL, "metric_in", "pack_bank", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); - /**/ fd_topob_tile_in( topo, "gui", 0UL, "metric_in", "pack_pohh", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); - FOR(bank_tile_cnt) fd_topob_tile_in( topo, "gui", 0UL, "metric_in", "bank_pohh", i, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); + fd_topob_wksp( topo, "guih" ); + /**/ fd_topob_tile( topo, "guih", "guih", "metric_in", tile_to_cpu[ topo->tile_cnt ], 0, 1, 0 ); + /**/ fd_topob_tile_in( topo, "guih", 0UL, "metric_in", "plugin_out", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); + /**/ fd_topob_tile_in( topo, "guih", 0UL, "metric_in", "pohh_pack", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); + /**/ fd_topob_tile_in( topo, "guih", 0UL, "metric_in", "pack_bank", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); + /**/ fd_topob_tile_in( topo, "guih", 0UL, "metric_in", "pack_pohh", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); + FOR(bank_tile_cnt) fd_topob_tile_in( topo, "guih", 0UL, "metric_in", "bank_pohh", i, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); } if( FD_UNLIKELY( config->tiles.bundle.enabled ) ) { @@ -319,7 +319,7 @@ fd_topo_initialize( config_t * config ) { shared flow control credits when publishing many packets at once. */ fd_topob_link( topo, "bundle_status", "bundle_status", 65536UL, sizeof(fd_bundle_block_engine_update_t), 1UL ); - fd_topob_tile_in( topo, "gui", 0UL, "metric_in", "bundle_status", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); + fd_topob_tile_in( topo, "guih", 0UL, "metric_in", "bundle_status", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); fd_topob_tile_out( topo, "bundle", 0UL, "bundle_status", 0UL ); } } @@ -411,7 +411,7 @@ fd_topo_initialize( config_t * config ) { for( ulong i=0UL; itile_cnt; i++ ) { fd_topo_tile_t * tile = &topo->tiles[ i ]; fd_topo_configure_tile( tile, config ); - if( FD_UNLIKELY( !strcmp( tile->name, "gui" ) ) ) tile->gui.tile_cnt = topo->tile_cnt; + if( FD_UNLIKELY( !strcmp( tile->name, "guih" ) ) ) tile->gui.tile_cnt = topo->tile_cnt; } if( FD_UNLIKELY( is_auto_affinity ) ) fd_topob_auto_layout( topo, 1 ); @@ -552,7 +552,7 @@ fd_topo_configure_tile( fd_topo_tile_t * tile, } else if( FD_UNLIKELY( !strcmp( tile->name, "diag" ) ) ) { - } else if( FD_UNLIKELY( !strcmp( tile->name, "gui" ) ) ) { + } else if( FD_UNLIKELY( !strcmp( tile->name, "guih" ) ) ) { if( FD_UNLIKELY( !fd_cstr_to_ip4_addr( config->tiles.gui.gui_listen_address, &tile->gui.listen_addr ) ) ) FD_LOG_ERR(( "failed to parse gui listen address `%s`", config->tiles.gui.gui_listen_address )); tile->gui.listen_port = config->tiles.gui.gui_listen_port; @@ -566,7 +566,6 @@ fd_topo_configure_tile( fd_topo_tile_t * tile, tile->gui.send_buffer_size_mb = config->tiles.gui.send_buffer_size_mb; tile->gui.schedule_strategy = config->tiles.pack.schedule_strategy_enum; tile->gui.websocket_compression = config->development.gui.websocket_compression; - tile->gui.frontend_release_channel = config->development.gui.frontend_release_channel_enum; tile->gui.accdb_obj_id = ULONG_MAX; } else if( FD_UNLIKELY( !strcmp( tile->name, "plugin" ) ) ) { diff --git a/src/app/fddev/main.h b/src/app/fddev/main.h index 343a039f0a0..e72b6e6661f 100644 --- a/src/app/fddev/main.h +++ b/src/app/fddev/main.h @@ -62,7 +62,7 @@ extern fd_topo_run_tile_t fd_tile_shred; extern fd_topo_run_tile_t fd_tile_sign; extern fd_topo_run_tile_t fd_tile_metric; extern fd_topo_run_tile_t fd_tile_diag; -extern fd_topo_run_tile_t fd_tile_gui; +extern fd_topo_run_tile_t fd_tile_guih; extern fd_topo_run_tile_t fd_tile_plugin; extern fd_topo_run_tile_t fd_tile_bencho; extern fd_topo_run_tile_t fd_tile_benchg; @@ -87,7 +87,7 @@ fd_topo_run_tile_t * TILES[] = { &fd_tile_sign, &fd_tile_metric, &fd_tile_diag, - &fd_tile_gui, + &fd_tile_guih, &fd_tile_plugin, &fd_tile_bencho, &fd_tile_benchg, diff --git a/src/app/firedancer/topology.c b/src/app/firedancer/topology.c index 8aa17f008e7..ebb7da55a33 100644 --- a/src/app/firedancer/topology.c +++ b/src/app/firedancer/topology.c @@ -1610,7 +1610,6 @@ fd_topo_configure_tile( fd_topo_tile_t * tile, tile->gui.send_buffer_size_mb = config->tiles.gui.send_buffer_size_mb; tile->gui.schedule_strategy = config->tiles.pack.schedule_strategy_enum; tile->gui.websocket_compression = 1; - tile->gui.frontend_release_channel = config->development.gui.frontend_release_channel_enum; fd_cstr_ncpy( tile->gui.wfs_bank_hash, config->firedancer.consensus.wait_for_supermajority_with_bank_hash, sizeof(tile->gui.wfs_bank_hash) ); tile->gui.expected_shred_version = config->consensus.expected_shred_version; tile->gui.cache_size_gib = config->firedancer.accounts.cache_size_gib; diff --git a/src/app/shared/commands/watch/watch.c b/src/app/shared/commands/watch/watch.c index 7d685d17d3c..e2eb0246558 100644 --- a/src/app/shared/commands/watch/watch.c +++ b/src/app/shared/commands/watch/watch.c @@ -1033,23 +1033,43 @@ static uint write_gui( config_t const * config, ulong const * cur_tile, ulong const * prev_tile ) { - (void)cur_tile; - - ulong gui_tile_idx = fd_topo_find_tile( &config->topo, "gui", 0UL ); - if( gui_tile_idx==ULONG_MAX ) return 0U; - - ulong connection_count = cur_tile[ gui_tile_idx*FD_METRICS_TOTAL_SZ+MIDX( GAUGE, GUI, CONN_ACTIVE ) ]+ - cur_tile[ gui_tile_idx*FD_METRICS_TOTAL_SZ+MIDX( GAUGE, GUI, WEBSOCKET_CONN_ACTIVE ) ]; + char const * gui_name = "gui"; + ulong gui_tile_idx = fd_topo_find_tile( &config->topo, gui_name, 0UL ); + + ulong off_conn_active, off_websocket_conn_active, off_websocket_frame_tx, off_websocket_frame_rx; + char * bytes_read_s; + char * bytes_written_s; + if( FD_LIKELY( gui_tile_idx!=ULONG_MAX ) ) { + off_conn_active = MIDX( GAUGE, GUI, CONN_ACTIVE ); + off_websocket_conn_active = MIDX( GAUGE, GUI, WEBSOCKET_CONN_ACTIVE ); + off_websocket_frame_tx = MIDX( COUNTER, GUI, WEBSOCKET_FRAME_TX ); + off_websocket_frame_rx = MIDX( COUNTER, GUI, WEBSOCKET_FRAME_RX ); + + bytes_read_s = DIFF_BYTES( gui_name, COUNTER, GUI, BYTES_READ ); + bytes_written_s = DIFF_BYTES( gui_name, COUNTER, GUI, BYTES_WRITTEN ); + } else { + gui_name = "guih"; + gui_tile_idx = fd_topo_find_tile( &config->topo, gui_name, 0UL ); + if( FD_UNLIKELY( gui_tile_idx==ULONG_MAX ) ) return 0U; + off_conn_active = MIDX( GAUGE, GUIH, CONN_ACTIVE ); + off_websocket_conn_active = MIDX( GAUGE, GUIH, WEBSOCKET_CONN_ACTIVE ); + off_websocket_frame_tx = MIDX( COUNTER, GUIH, WEBSOCKET_FRAME_TX ); + off_websocket_frame_rx = MIDX( COUNTER, GUIH, WEBSOCKET_FRAME_RX ); + + bytes_read_s = DIFF_BYTES( gui_name, COUNTER, GUIH, BYTES_READ ); + bytes_written_s = DIFF_BYTES( gui_name, COUNTER, GUIH, BYTES_WRITTEN ); + } + ulong connection_count = cur_tile[ gui_tile_idx*FD_METRICS_TOTAL_SZ+off_conn_active ]+cur_tile[ gui_tile_idx*FD_METRICS_TOTAL_SZ+off_websocket_conn_active ]; ulong gui_total_ticks = total_regime( &cur_tile[ gui_tile_idx*FD_METRICS_TOTAL_SZ ] )-total_regime( &prev_tile[ gui_tile_idx*FD_METRICS_TOTAL_SZ ] ); gui_total_ticks = fd_ulong_max( gui_total_ticks, 1UL ); - double gui_backp_pct = 100.0*(double)diff_tile( config, "gui", prev_tile, cur_tile, MIDX( COUNTER, TILE, REGIME_DURATION_NANOS_BACKPRESSURE_PREFRAG ) )/(double)gui_total_ticks; - double gui_idle_pct = 100.0*(double)diff_tile( config, "gui", prev_tile, cur_tile, MIDX( COUNTER, TILE, REGIME_DURATION_NANOS_CAUGHT_UP_POSTFRAG ) )/(double)gui_total_ticks; - double gui_busy_pct = 100.0 - gui_backp_pct - gui_idle_pct; + double gui_backp_pct = 100.0*(double)diff_tile( config, gui_name, prev_tile, cur_tile, MIDX( COUNTER, TILE, REGIME_DURATION_NANOS_BACKPRESSURE_PREFRAG ) )/(double)gui_total_ticks; + double gui_idle_pct = 100.0*(double)diff_tile( config, gui_name, prev_tile, cur_tile, MIDX( COUNTER, TILE, REGIME_DURATION_NANOS_CAUGHT_UP_POSTFRAG ) )/(double)gui_total_ticks; + double gui_busy_pct = 100.0 - gui_backp_pct - gui_idle_pct; - long sent_frame_count = diff_tile( config, "gui", prev_tile, cur_tile, MIDX( COUNTER, GUI, WEBSOCKET_FRAME_TX ) ); + long sent_frame_count = diff_tile( config, gui_name, prev_tile, cur_tile, off_websocket_frame_tx ); char * sent_frame_count_s = COUNT( (ulong)sent_frame_count ); - long received_frame_count = diff_tile( config, "gui", prev_tile, cur_tile, MIDX( COUNTER, GUI, WEBSOCKET_FRAME_RX ) ); + long received_frame_count = diff_tile( config, gui_name, prev_tile, cur_tile, off_websocket_frame_rx ); PRINT( "👁 " BOLD CYAN "GUI........." RESET UNBOLD " " BOLD "CONNS" UNBOLD " %lu" @@ -1059,8 +1079,8 @@ write_gui( config_t const * config, connection_count, COUNT( (ulong)received_frame_count ), sent_frame_count_s, - DIFF_BYTES( "gui", COUNTER, GUI, BYTES_READ ), - DIFF_BYTES( "gui", COUNTER, GUI, BYTES_WRITTEN ), + bytes_read_s, + bytes_written_s, gui_busy_pct ); return 1U; } diff --git a/src/app/shared/fd_config.c b/src/app/shared/fd_config.c index 74af8d6c2f3..83b087e2b04 100644 --- a/src/app/shared/fd_config.c +++ b/src/app/shared/fd_config.c @@ -379,12 +379,6 @@ fd_config_fill( fd_config_t * config, fd_config_fillh( config ); } - - if( FD_LIKELY( !strcmp( config->development.gui.frontend_release_channel, "stable" ) ) ) config->development.gui.frontend_release_channel_enum = 0; - else if( FD_LIKELY( !strcmp( config->development.gui.frontend_release_channel, "alpha" ) ) ) config->development.gui.frontend_release_channel_enum = 1; - else if( FD_LIKELY( !strcmp( config->development.gui.frontend_release_channel, "dev" ) ) ) config->development.gui.frontend_release_channel_enum = 2; - else FD_LOG_ERR(( "[development.gui.release_channel] %s not recognized", config->development.gui.frontend_release_channel )); - if( FD_LIKELY( config->is_live_cluster) ) { if( FD_UNLIKELY( !config->development.sandbox ) ) FD_LOG_ERR(( "trying to join a live cluster, but configuration disables the sandbox which is a development only feature" )); if( FD_UNLIKELY( config->development.no_clone ) ) FD_LOG_ERR(( "trying to join a live cluster, but configuration disables multiprocess which is a development only feature" )); @@ -612,12 +606,6 @@ fd_config_load( int is_firedancer, config->is_firedancer = is_firedancer; config->boot_timestamp_nanos = fd_log_wallclock(); - if( FD_UNLIKELY( is_firedancer ) ) { - fd_cstr_printf_check( config->development.gui.frontend_release_channel, sizeof(config->development.gui.frontend_release_channel), NULL, "dev" ); - } else { - fd_cstr_printf_check( config->development.gui.frontend_release_channel, sizeof(config->development.gui.frontend_release_channel), NULL, "stable" ); - } - fd_config_load_buf( config, default_config, default_config_sz, "default.toml" ); fd_config_validate( config ); if( FD_UNLIKELY( override_config ) ) { diff --git a/src/app/shared/fd_config.h b/src/app/shared/fd_config.h index 3e45be8750f..8b76a862820 100644 --- a/src/app/shared/fd_config.h +++ b/src/app/shared/fd_config.h @@ -374,8 +374,6 @@ struct fd_config { struct { int websocket_compression; - char frontend_release_channel[ 16 ]; - int frontend_release_channel_enum; } gui; struct { diff --git a/src/app/shared/fd_config_parse.c b/src/app/shared/fd_config_parse.c index 77f6dce0a05..6b88fcad5f7 100644 --- a/src/app/shared/fd_config_parse.c +++ b/src/app/shared/fd_config_parse.c @@ -323,7 +323,6 @@ fd_config_extract_pod( uchar * pod, if( FD_UNLIKELY( !config->is_firedancer ) ) { CFG_POP ( bool, development.gui.websocket_compression ); } - CFG_POP ( cstr, development.gui.frontend_release_channel ); CFG_POP ( ulong, development.accdb.partition_size_gib ); diff --git a/src/disco/gui/.gitignore b/src/disco/gui/.gitignore index 151b88d5251..1ea72ebf258 100644 --- a/src/disco/gui/.gitignore +++ b/src/disco/gui/.gitignore @@ -1,3 +1 @@ -dist_stable_cmp/ -dist_alpha_cmp/ -dist_dev_cmp/ +dist_cmp/ diff --git a/src/disco/gui/Local.mk b/src/disco/gui/Local.mk index d2ce4d86955..a467f142e0d 100644 --- a/src/disco/gui/Local.mk +++ b/src/disco/gui/Local.mk @@ -5,46 +5,20 @@ $(OBJDIR)/obj/disco/gui/fd_gui_tile.o: book/public/fire.svg $(call make-unit-test,test_live_table,test_live_table,fd_disco fd_util) $(call make-fuzz-test,fuzz_config_parser,fuzz_config_parser,fd_disco fd_ballet fd_util) -src/disco/gui/dist_stable_cmp/%.zst: src/disco/gui/dist_stable/% +src/disco/gui/dist_cmp/%.zst: src/disco/gui/dist/% mkdir -p $(@D); zstd -f -19 $< -o $@; $(TOUCH) $@; -src/disco/gui/dist_stable_cmp/%.gz: src/disco/gui/dist_stable/% +src/disco/gui/dist_cmp/%.gz: src/disco/gui/dist/% mkdir -p $(@D); gzip -f -c -9 $< > $@; $(TOUCH) $@; -src/disco/gui/dist_alpha_cmp/%.zst: src/disco/gui/dist_alpha/% - mkdir -p $(@D); - zstd -f -19 $< -o $@; - $(TOUCH) $@; - -src/disco/gui/dist_alpha_cmp/%.gz: src/disco/gui/dist_alpha/% - mkdir -p $(@D); - gzip -f -c -9 $< > $@; - $(TOUCH) $@; - -src/disco/gui/dist_dev_cmp/%.zst: src/disco/gui/dist_dev/% - mkdir -p $(@D); - zstd -f -19 $< -o $@; - $(TOUCH) $@; - -src/disco/gui/dist_dev_cmp/%.gz: src/disco/gui/dist_dev/% - mkdir -p $(@D); - gzip -f -c -9 $< > $@; - $(TOUCH) $@; - -FD_GUI_FRONTEND_STABLE_FILES := $(shell $(FIND) src/disco/gui/dist_stable -type f) -FD_GUI_FRONTEND_ALPHA_FILES := $(shell $(FIND) src/disco/gui/dist_alpha -type f) -FD_GUI_FRONTEND_DEV_FILES := $(shell $(FIND) src/disco/gui/dist_dev -type f) -FD_GUI_FRONTEND_STABLE_GZ_FILES := $(patsubst src/disco/gui/dist_stable/%, src/disco/gui/dist_stable_cmp/%.gz, $(FD_GUI_FRONTEND_STABLE_FILES)) -FD_GUI_FRONTEND_STABLE_ZST_FILES := $(patsubst src/disco/gui/dist_stable/%, src/disco/gui/dist_stable_cmp/%.zst, $(FD_GUI_FRONTEND_STABLE_FILES)) -FD_GUI_FRONTEND_ALPHA_GZ_FILES := $(patsubst src/disco/gui/dist_alpha/%, src/disco/gui/dist_alpha_cmp/%.gz, $(FD_GUI_FRONTEND_ALPHA_FILES)) -FD_GUI_FRONTEND_ALPHA_ZST_FILES := $(patsubst src/disco/gui/dist_alpha/%, src/disco/gui/dist_alpha_cmp/%.zst, $(FD_GUI_FRONTEND_ALPHA_FILES)) -FD_GUI_FRONTEND_DEV_GZ_FILES := $(patsubst src/disco/gui/dist_dev/%, src/disco/gui/dist_dev_cmp/%.gz, $(FD_GUI_FRONTEND_DEV_FILES)) -FD_GUI_FRONTEND_DEV_ZST_FILES := $(patsubst src/disco/gui/dist_dev/%, src/disco/gui/dist_dev_cmp/%.zst, $(FD_GUI_FRONTEND_DEV_FILES)) +FD_GUI_FRONTEND_FILES := $(shell $(FIND) src/disco/gui/dist -type f) +FD_GUI_FRONTEND_GZ_FILES := $(patsubst src/disco/gui/dist/%, src/disco/gui/dist_cmp/%.gz, $(FD_GUI_FRONTEND_FILES)) +FD_GUI_FRONTEND_ZST_FILES := $(patsubst src/disco/gui/dist/%, src/disco/gui/dist_cmp/%.zst, $(FD_GUI_FRONTEND_FILES)) -$(OBJDIR)/obj/disco/gui/generated/http_import_dist.o: $(FD_GUI_FRONTEND_STABLE_GZ_FILES) $(FD_GUI_FRONTEND_STABLE_ZST_FILES) $(FD_GUI_FRONTEND_ALPHA_GZ_FILES) $(FD_GUI_FRONTEND_ALPHA_ZST_FILES) $(FD_GUI_FRONTEND_DEV_GZ_FILES) $(FD_GUI_FRONTEND_DEV_ZST_FILES) +$(OBJDIR)/obj/disco/gui/generated/http_import_dist.o: $(FD_GUI_FRONTEND_GZ_FILES) $(FD_GUI_FRONTEND_ZST_FILES) $(OBJDIR)/obj/disco/gui/fd_gui.o: src/disco/gui/dbip.bin.zst endif diff --git a/src/disco/gui/dist_dev/LICENSE_DEPENDENCIES b/src/disco/gui/dist/LICENSE_DEPENDENCIES similarity index 100% rename from src/disco/gui/dist_dev/LICENSE_DEPENDENCIES rename to src/disco/gui/dist/LICENSE_DEPENDENCIES diff --git a/src/disco/gui/dist_dev/assets/NotoFlagsOnly.woff2 b/src/disco/gui/dist/assets/NotoFlagsOnly.woff2 similarity index 100% rename from src/disco/gui/dist_dev/assets/NotoFlagsOnly.woff2 rename to src/disco/gui/dist/assets/NotoFlagsOnly.woff2 diff --git a/src/disco/gui/dist_alpha/assets/firedancer-D_J0EzUc.svg b/src/disco/gui/dist/assets/firedancer-D_J0EzUc.svg similarity index 100% rename from src/disco/gui/dist_alpha/assets/firedancer-D_J0EzUc.svg rename to src/disco/gui/dist/assets/firedancer-D_J0EzUc.svg diff --git a/src/disco/gui/dist_dev/assets/firedancer_circle_logo-D9jlxCje.svg b/src/disco/gui/dist/assets/firedancer_circle_logo-D9jlxCje.svg similarity index 100% rename from src/disco/gui/dist_dev/assets/firedancer_circle_logo-D9jlxCje.svg rename to src/disco/gui/dist/assets/firedancer_circle_logo-D9jlxCje.svg diff --git a/src/disco/gui/dist_dev/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg b/src/disco/gui/dist/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg similarity index 100% rename from src/disco/gui/dist_dev/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg rename to src/disco/gui/dist/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg diff --git a/src/disco/gui/dist_alpha/assets/firedancer_logo-CrgwxzPk.svg b/src/disco/gui/dist/assets/firedancer_logo-CrgwxzPk.svg similarity index 100% rename from src/disco/gui/dist_alpha/assets/firedancer_logo-CrgwxzPk.svg rename to src/disco/gui/dist/assets/firedancer_logo-CrgwxzPk.svg diff --git a/src/disco/gui/dist_alpha/assets/frankendancer-0Top5G94.svg b/src/disco/gui/dist/assets/frankendancer-0Top5G94.svg similarity index 100% rename from src/disco/gui/dist_alpha/assets/frankendancer-0Top5G94.svg rename to src/disco/gui/dist/assets/frankendancer-0Top5G94.svg diff --git a/src/disco/gui/dist_dev/assets/frankendancer_circle_logo-D5z79vwQ.svg b/src/disco/gui/dist/assets/frankendancer_circle_logo-D5z79vwQ.svg similarity index 100% rename from src/disco/gui/dist_dev/assets/frankendancer_circle_logo-D5z79vwQ.svg rename to src/disco/gui/dist/assets/frankendancer_circle_logo-D5z79vwQ.svg diff --git a/src/disco/gui/dist_dev/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg b/src/disco/gui/dist/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg similarity index 100% rename from src/disco/gui/dist_dev/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg rename to src/disco/gui/dist/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg diff --git a/src/disco/gui/dist_alpha/assets/frankendancer_logo-CHyfJ772.svg b/src/disco/gui/dist/assets/frankendancer_logo-CHyfJ772.svg similarity index 100% rename from src/disco/gui/dist_alpha/assets/frankendancer_logo-CHyfJ772.svg rename to src/disco/gui/dist/assets/frankendancer_logo-CHyfJ772.svg diff --git a/src/disco/gui/dist_dev/assets/index-C054xcgF.js b/src/disco/gui/dist/assets/index-C054xcgF.js similarity index 100% rename from src/disco/gui/dist_dev/assets/index-C054xcgF.js rename to src/disco/gui/dist/assets/index-C054xcgF.js diff --git a/src/disco/gui/dist_dev/assets/index-qV0ZL8w9.css b/src/disco/gui/dist/assets/index-qV0ZL8w9.css similarity index 100% rename from src/disco/gui/dist_dev/assets/index-qV0ZL8w9.css rename to src/disco/gui/dist/assets/index-qV0ZL8w9.css diff --git a/src/disco/gui/dist_alpha/assets/inter-tight-latin-400-normal-BLrFJfvD.woff b/src/disco/gui/dist/assets/inter-tight-latin-400-normal-BLrFJfvD.woff similarity index 100% rename from src/disco/gui/dist_alpha/assets/inter-tight-latin-400-normal-BLrFJfvD.woff rename to src/disco/gui/dist/assets/inter-tight-latin-400-normal-BLrFJfvD.woff diff --git a/src/disco/gui/dist_alpha/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2 b/src/disco/gui/dist/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2 similarity index 100% rename from src/disco/gui/dist_alpha/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2 rename to src/disco/gui/dist/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2 diff --git a/src/disco/gui/dist_alpha/assets/privateYou-DnAsYVZD.svg b/src/disco/gui/dist/assets/privateYou-DnAsYVZD.svg similarity index 100% rename from src/disco/gui/dist_alpha/assets/privateYou-DnAsYVZD.svg rename to src/disco/gui/dist/assets/privateYou-DnAsYVZD.svg diff --git a/src/disco/gui/dist_alpha/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff b/src/disco/gui/dist/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff similarity index 100% rename from src/disco/gui/dist_alpha/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff rename to src/disco/gui/dist/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff diff --git a/src/disco/gui/dist_alpha/assets/roboto-mono-latin-400-normal-GekRknry.woff2 b/src/disco/gui/dist/assets/roboto-mono-latin-400-normal-GekRknry.woff2 similarity index 100% rename from src/disco/gui/dist_alpha/assets/roboto-mono-latin-400-normal-GekRknry.woff2 rename to src/disco/gui/dist/assets/roboto-mono-latin-400-normal-GekRknry.woff2 diff --git a/src/disco/gui/dist_dev/assets/wsWorker-CiLy8ipA.js b/src/disco/gui/dist/assets/wsWorker-CiLy8ipA.js similarity index 100% rename from src/disco/gui/dist_dev/assets/wsWorker-CiLy8ipA.js rename to src/disco/gui/dist/assets/wsWorker-CiLy8ipA.js diff --git a/src/disco/gui/dist_dev/index.html b/src/disco/gui/dist/index.html similarity index 100% rename from src/disco/gui/dist_dev/index.html rename to src/disco/gui/dist/index.html diff --git a/src/disco/gui/dist/version b/src/disco/gui/dist/version new file mode 100644 index 00000000000..8c5f8a3e00d --- /dev/null +++ b/src/disco/gui/dist/version @@ -0,0 +1 @@ +bf17bea95d95e2484c35d3e69078dd8447b9a989 diff --git a/src/disco/gui/dist_alpha/LICENSE_DEPENDENCIES b/src/disco/gui/dist_alpha/LICENSE_DEPENDENCIES deleted file mode 100644 index 470ff9b3b47..00000000000 --- a/src/disco/gui/dist_alpha/LICENSE_DEPENDENCIES +++ /dev/null @@ -1,3744 +0,0 @@ -Name: react -Version: 18.3.1 -License: MIT -Private: false -Description: React is a JavaScript library for building user interfaces. -Repository: https://github.com/facebook/react.git -Homepage: https://reactjs.org/ -License Copyright: -=== - -MIT License - -Copyright (c) Facebook, Inc. and its affiliates. - -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. - ---- - -Name: react-dom -Version: 18.3.1 -License: MIT -Private: false -Description: React package for working with the DOM. -Repository: https://github.com/facebook/react.git -Homepage: https://reactjs.org/ -License Copyright: -=== - -MIT License - -Copyright (c) Facebook, Inc. and its affiliates. - -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. - ---- - -Name: scheduler -Version: 0.23.2 -License: MIT -Private: false -Description: Cooperative scheduler for the browser environment. -Repository: https://github.com/facebook/react.git -Homepage: https://reactjs.org/ -License Copyright: -=== - -MIT License - -Copyright (c) Facebook, Inc. and its affiliates. - -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. - ---- - -Name: @radix-ui/react-compose-refs -Version: 1.1.2 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives - ---- - -Name: @radix-ui/react-slot -Version: 1.2.3 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-primitive -Version: 2.1.3 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-visually-hidden -Version: 1.2.3 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-context -Version: 1.1.2 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives - ---- - -Name: @radix-ui/react-collection -Version: 1.1.7 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/primitive -Version: 1.1.3 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-use-layout-effect -Version: 1.1.1 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives - ---- - -Name: @radix-ui/react-use-controllable-state -Version: 1.2.2 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-presence -Version: 1.1.5 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-id -Version: 1.1.1 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives - ---- - -Name: @radix-ui/react-direction -Version: 1.1.1 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives - ---- - -Name: @radix-ui/react-use-callback-ref -Version: 1.1.1 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives - ---- - -Name: @radix-ui/react-use-escape-keydown -Version: 1.1.1 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives - ---- - -Name: @radix-ui/react-dismissable-layer -Version: 1.1.11 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-focus-scope -Version: 1.1.7 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-portal -Version: 1.1.9 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-focus-guards -Version: 1.1.3 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: tslib -Version: 2.8.1 -License: 0BSD -Private: false -Description: Runtime library for TypeScript helper functions -Repository: https://github.com/Microsoft/tslib.git -Homepage: https://www.typescriptlang.org/ -Author: Microsoft Corp. -License Copyright: -=== - -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. - ---- - -Name: react-remove-scroll-bar -Version: 2.3.8 -License: MIT -Private: false -Description: Removes body scroll without content _shake_ -Repository: undefined -Author: Anton Korzunov - ---- - -Name: use-callback-ref -Version: 1.3.3 -License: MIT -Private: false -Description: The same useRef, but with callback -Repository: undefined -Author: theKashey -License Copyright: -=== - -MIT License - -Copyright (c) 2017 Anton Korzunov - -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. - ---- - -Name: use-sidecar -Version: 1.1.3 -License: MIT -Private: false -Description: Sidecar code splitting utils -Repository: https://github.com/theKashey/use-sidecar -Homepage: https://github.com/theKashey/use-sidecar -Author: theKashey -License Copyright: -=== - -MIT License - -Copyright (c) 2017 Anton Korzunov - -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. - ---- - -Name: react-remove-scroll -Version: 2.7.1 -License: MIT -Private: false -Description: Disables scroll outside of `children` node. -Repository: undefined -Author: Anton Korzunov -License Copyright: -=== - -MIT License - -Copyright (c) 2017 Anton Korzunov - -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. - ---- - -Name: get-nonce -Version: 1.0.1 -License: MIT -Private: false -Description: returns nonce -Repository: undefined -Homepage: https://github.com/theKashey/get-nonce -Author: Anton Korzunov -License Copyright: -=== - -MIT License - -Copyright (c) 2020 Anton Korzunov - -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. - ---- - -Name: react-style-singleton -Version: 2.2.3 -License: MIT -Private: false -Description: Just create a single stylesheet... -Repository: https://github.com/theKashey/react-style-singleton -Homepage: https://github.com/theKashey/react-style-singleton#readme -Author: Anton Korzunov (thekashey@gmail.com) -License Copyright: -=== - -MIT License - -Copyright (c) 2017 Anton Korzunov - -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. - ---- - -Name: aria-hidden -Version: 1.2.6 -License: MIT -Private: false -Description: Cast aria-hidden to everything, except... -Repository: git+https://github.com/theKashey/aria-hidden.git -Homepage: https://github.com/theKashey/aria-hidden#readme -Author: Anton Korzunov -License Copyright: -=== - -MIT License - -Copyright (c) 2017 Anton Korzunov - -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. - ---- - -Name: @radix-ui/react-dialog -Version: 1.1.15 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: use-sync-external-store -Version: 1.6.0 -License: MIT -Private: false -Description: Backwards compatible shim for React's useSyncExternalStore. Works with any React that supports hooks. -Repository: https://github.com/facebook/react.git -License Copyright: -=== - -MIT License - -Copyright (c) Meta Platforms, Inc. and affiliates. - -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. - ---- - -Name: @radix-ui/react-use-previous -Version: 1.1.1 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives - ---- - -Name: @radix-ui/react-use-size -Version: 1.1.1 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives - ---- - -Name: @floating-ui/utils -Version: 0.2.10 -License: MIT -Private: false -Description: Utilities for Floating UI -Repository: https://github.com/floating-ui/floating-ui.git -Homepage: https://floating-ui.com -Author: atomiks -License Copyright: -=== - -MIT License - -Copyright (c) 2021-present Floating UI contributors - -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. - ---- - -Name: @floating-ui/core -Version: 1.7.3 -License: MIT -Private: false -Description: Positioning library for floating elements: tooltips, popovers, dropdowns, and more -Repository: https://github.com/floating-ui/floating-ui.git -Homepage: https://floating-ui.com -Author: atomiks -License Copyright: -=== - -MIT License - -Copyright (c) 2021-present Floating UI contributors - -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. - ---- - -Name: @floating-ui/dom -Version: 1.7.4 -License: MIT -Private: false -Description: Floating UI for the web -Repository: https://github.com/floating-ui/floating-ui.git -Homepage: https://floating-ui.com -Author: atomiks -License Copyright: -=== - -MIT License - -Copyright (c) 2021-present Floating UI contributors - -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. - ---- - -Name: @floating-ui/react-dom -Version: 2.1.6 -License: MIT -Private: false -Description: Floating UI for React DOM -Repository: https://github.com/floating-ui/floating-ui.git -Homepage: https://floating-ui.com/docs/react-dom -Author: atomiks -License Copyright: -=== - -MIT License - -Copyright (c) 2021-present Floating UI contributors - -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. - ---- - -Name: @radix-ui/react-arrow -Version: 1.1.7 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-popper -Version: 1.2.8 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-roving-focus -Version: 1.1.11 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-menu -Version: 2.1.16 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-dropdown-menu -Version: 2.1.16 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-label -Version: 2.1.7 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/number -Version: 1.1.1 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives - ---- - -Name: @radix-ui/react-popover -Version: 1.1.15 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-progress -Version: 1.1.7 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-scroll-area -Version: 1.2.10 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-select -Version: 2.2.6 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-slider -Version: 1.3.6 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-switch -Version: 1.2.6 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-toggle -Version: 1.1.10 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-toggle-group -Version: 1.1.11 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: @radix-ui/react-tooltip -Version: 1.2.8 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/primitives.git -Homepage: https://radix-ui.com/primitives -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: classnames -Version: 2.5.1 -License: MIT -Private: false -Description: A simple utility for conditionally joining classNames together -Repository: git+https://github.com/JedWatson/classnames.git -Author: Jed Watson -License Copyright: -=== - -The MIT License (MIT) - -Copyright (c) 2018 Jed Watson - -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. - ---- - -Name: @radix-ui/themes -Version: 3.2.1 -License: MIT -Private: false -Repository: git+https://github.com/radix-ui/themes.git -Homepage: https://radix-ui.com/themes -License Copyright: -=== - -MIT License - -Copyright (c) 2023 WorkOS - -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. - ---- - -Name: @tanstack/store -Version: 0.8.0 -License: MIT -Private: false -Description: Framework agnostic type-safe store w/ reactive framework adapters -Repository: git+https://github.com/TanStack/store.git -Homepage: https://tanstack.com/store -Author: Tanner Linsley -License Copyright: -=== - -MIT License - -Copyright (c) 2021 Tanner Linsley - -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. - ---- - -Name: @tanstack/history -Version: 1.133.28 -License: MIT -Private: false -Description: Modern and scalable routing for React applications -Repository: https://github.com/TanStack/router.git -Homepage: https://tanstack.com/router -Author: Tanner Linsley -License Copyright: -=== - -MIT License - -Copyright (c) 2021-present Tanner Linsley - -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. - ---- - -Name: @tanstack/router-core -Version: 1.135.2 -License: MIT -Private: false -Description: Modern and scalable routing for React applications -Repository: https://github.com/TanStack/router.git -Homepage: https://tanstack.com/router -Author: Tanner Linsley -License Copyright: -=== - -MIT License - -Copyright (c) 2021-present Tanner Linsley - -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. - ---- - -Name: tiny-invariant -Version: 1.3.3 -License: MIT -Private: false -Description: A tiny invariant function -Repository: https://github.com/alexreardon/tiny-invariant.git -Author: Alex Reardon -License Copyright: -=== - -MIT License - -Copyright (c) 2019 Alexander Reardon - -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. - ---- - -Name: @tanstack/react-router -Version: 1.135.2 -License: MIT -Private: false -Description: Modern and scalable routing for React applications -Repository: https://github.com/TanStack/router.git -Homepage: https://tanstack.com/router -Author: Tanner Linsley -License Copyright: -=== - -MIT License - -Copyright (c) 2021-present Tanner Linsley - -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. - ---- - -Name: tiny-warning -Version: 1.0.3 -License: MIT -Private: false -Description: A tiny warning function -Repository: https://github.com/alexreardon/tiny-warning.git -Author: Alex Reardon -License Copyright: -=== - -MIT License - -Copyright (c) 2019 Alexander Reardon - -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. - ---- - -Name: @tanstack/react-store -Version: 0.8.0 -License: MIT -Private: false -Description: Framework agnostic type-safe store w/ reactive framework adapters -Repository: https://github.com/TanStack/store.git -Homepage: https://tanstack.com/store -Author: Tanner Linsley -License Copyright: -=== - -MIT License - -Copyright (c) 2021 Tanner Linsley - -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. - ---- - -Name: jotai -Version: 2.15.1 -License: MIT -Private: false -Description: 👻 Primitive and flexible state management for React -Repository: git+https://github.com/pmndrs/jotai.git -Homepage: https://github.com/pmndrs/jotai -Author: Daishi Kato -License Copyright: -=== - -MIT License - -Copyright (c) 2020 Poimandres - -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. - ---- - -Name: immer -Version: 10.2.0 -License: MIT -Private: false -Description: Create your next immutable state by mutating the current one -Repository: https://github.com/immerjs/immer.git -Homepage: https://github.com/immerjs/immer#readme -Author: Michel Weststrate -License Copyright: -=== - -MIT License - -Copyright (c) 2017 Michel Weststrate - -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. - ---- - -Name: jotai-immer -Version: 0.4.1 -License: MIT -Private: false -Description: 👻🪛 -Repository: https://github.com/jotaijs/jotai-immer.git -Author: Daishi Kato -License Copyright: -=== - -MIT License - -Copyright (c) 2020 Poimandres - -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. - ---- - -Name: zod -Version: 3.25.76 -License: MIT -Private: false -Description: TypeScript-first schema declaration and validation library with static type inference -Repository: git+https://github.com/colinhacks/zod.git -Homepage: https://zod.dev -Author: Colin McDonnell -License Copyright: -=== - -MIT License - -Copyright (c) 2025 Colin McDonnell - -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. - ---- - -Name: lodash -Version: 4.17.21 -License: MIT -Private: false -Description: Lodash modular utilities. -Repository: undefined -Homepage: https://lodash.com/ -Author: John-David Dalton -Contributors: - John-David Dalton - Mathias Bynens -License Copyright: -=== - -Copyright OpenJS Foundation and other contributors - -Based on Underscore.js, copyright Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/lodash/lodash - -The following license applies to all parts of this software except as -documented below: - -==== - -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. - -==== - -Copyright and related rights for sample code are waived via CC0. Sample -code is defined as all source code displayed within the prose of the -documentation. - -CC0: http://creativecommons.org/publicdomain/zero/1.0/ - -==== - -Files located in the node_modules and vendor directories are externally -maintained libraries used by this software which have their own -licenses; we recommend you read them, as their terms may differ from the -terms above. - ---- - -Name: luxon -Version: 3.7.2 -License: MIT -Private: false -Description: Immutable date wrapper -Repository: undefined -Author: Isaac Cambron -License Copyright: -=== - -Copyright 2019 JS Foundation and other contributors - -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. - ---- - -Name: micro-memoize -Version: 4.2.0 -License: MIT -Private: false -Description: A tiny, crazy fast memoization library for the 95% use-case -Repository: git+https://github.com/planttheidea/micro-memoize.git -Homepage: https://github.com/planttheidea/micro-memoize#readme -Author: tony.quetano@planttheidea.com -License Copyright: -=== - -MIT License - -Copyright (c) 2018 Tony Quetano - -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. - ---- - -Name: byte-size -Version: 9.0.1 -License: MIT -Private: false -Description: Convert a bytes or octets value (e.g. 34565346) to a human-readable string ('34.6 MB'). Choose between metric or IEC units. -Repository: git+https://github.com/75lb/byte-size.git -Author: Lloyd Brookes -Contributors: - Raul Perez (http://repejota.com) -License Copyright: -=== - -The MIT License (MIT) - -Copyright (c) 2014-25 Lloyd Brookes <75pound@gmail.com> - -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. - ---- - -Name: @react-spring/rafz -Version: 9.7.5 -License: MIT -Private: false -Description: react-spring's fork of rafz one frameloop to rule them all -Repository: undefined -Homepage: https://github.com/pmndrs/react-spring/tree/main/packages/rafz#readme -Author: Josh Ellis -License Copyright: -=== - -MIT License - -Copyright (c) 2018-present Paul Henschel, react-spring, all contributors - -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. - ---- - -Name: @react-spring/shared -Version: 9.7.5 -License: MIT -Private: false -Description: Globals and shared modules -Repository: undefined -Homepage: https://github.com/pmndrs/react-spring#readme -Author: Paul Henschel -License Copyright: -=== - -MIT License - -Copyright (c) 2018-present Paul Henschel, react-spring, all contributors - -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. - ---- - -Name: @react-spring/animated -Version: 9.7.5 -License: MIT -Private: false -Description: Animated component props for React -Repository: undefined -Homepage: https://github.com/pmndrs/react-spring#readme -Author: Paul Henschel -License Copyright: -=== - -MIT License - -Copyright (c) 2018-present Paul Henschel, react-spring, all contributors - -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. - ---- - -Name: @react-spring/core -Version: 9.7.5 -License: MIT -Private: false -Repository: undefined -Homepage: https://github.com/pmndrs/react-spring#readme -Author: Paul Henschel -License Copyright: -=== - -MIT License - -Copyright (c) 2018-present Paul Henschel, react-spring, all contributors - -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. - ---- - -Name: @react-spring/web -Version: 9.7.5 -License: MIT -Private: false -Repository: undefined -Homepage: https://github.com/pmndrs/react-spring#readme -Author: Paul Henschel -License Copyright: -=== - -MIT License - -Copyright (c) 2018-present Paul Henschel, react-spring, all contributors - -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. - ---- - -Name: clsx -Version: 2.1.1 -License: MIT -Private: false -Description: A tiny (239B) utility for constructing className strings conditionally. -Repository: undefined -Author: Luke Edwards (https://lukeed.com) -License Copyright: -=== - -MIT License - -Copyright (c) Luke Edwards (lukeed.com) - -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. - ---- - -Name: @radix-ui/react-icons -Version: 1.3.2 -License: MIT -Private: false -Description: Radix UI React Icon Set -License Copyright: -=== - -MIT License - -Copyright (c) 2022 WorkOS - -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. - ---- - -Name: react-use -Version: 17.6.0 -License: Unlicense -Private: false -Description: Collection of React Hooks -Repository: https://github.com/streamich/react-use -Homepage: https://github.com/streamich/react-use#readme -Author: @streamich -License Copyright: -=== - -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. - -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. - -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 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. - -For more information, please refer to - ---- - -Name: set-harmonic-interval -Version: 1.0.1 -License: Unlicense -Private: false -Repository: undefined -Homepage: https://github.com/streamich/set-harmonic-interval -Author: streamich (https://github.com/streamich) -License Copyright: -=== - -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means. - -In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law. - -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 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. - -For more information, please refer to - ---- - -Name: @material-design-icons/svg -Version: 0.14.15 -License: Apache-2.0 -Private: false -Description: Latest optimized SVGs for material design icons. -Repository: git+https://github.com/marella/material-design-icons.git -Homepage: https://marella.github.io/material-design-icons/demo/svg/ -License Copyright: -=== - - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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. - ---- - -Name: react-virtualized-auto-sizer -Version: 1.0.26 -License: MIT -Private: false -Description: Standalone version of the AutoSizer component from react-virtualized -Repository: https://github.com/bvaughn/react-virtualized-auto-sizer.git -Author: Brian Vaughn (https://github.com/bvaughn/) -Contributors: - Brian Vaughn (https://github.com/bvaughn/) -License Copyright: -=== - -MIT License - -Copyright (c) 2023 Brian Vaughn - -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. - ---- - -Name: uplot -Version: 1.6.32 -License: MIT -Private: false -Description: A small, fast chart for time series, lines, areas, ohlc & bars -Repository: git+https://github.com/leeoniya/uPlot.git -Homepage: https://github.com/leeoniya/uPlot#readme -Author: Leon Sorokin -License Copyright: -=== - -The MIT License (MIT) - -Copyright (c) 2022 Leon Sorokin - -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. - ---- - -Name: use-debounce -Version: 10.0.6 -License: MIT -Private: false -Description: Debounce hook for react -Repository: git+ssh://git@github.com/xnimorz/use-debounce.git -Homepage: https://github.com/xnimorz/use-debounce#readme -Author: Nik (nik@xnim.me) -License Copyright: -=== - -MIT License - -Copyright (c) 2018 Nikita Mostovoy - -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. - ---- - -Name: events -Version: 3.3.0 -License: MIT -Private: false -Description: Node's event emitter for all engines. -Repository: git://github.com/Gozala/events.git -Author: Irakli Gozalishvili (http://jeditoolkit.com) -License Copyright: -=== - -MIT - -Copyright Joyent, Inc. and other Node contributors. - -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. - ---- - -Name: react-virtuoso -Version: 4.14.1 -License: MIT -Private: false -Description: A virtual scroll React component for efficiently rendering large scrollable lists, grids, tables, and feeds -Repository: https://github.com/petyosi/react-virtuoso.git -Homepage: https://virtuoso.dev/ -Author: Petyo Ivanov -License Copyright: -=== - -MIT License - -Copyright (c) 2020 Petyo Ivanov - -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. - ---- - -Name: tabbable -Version: 6.3.0 -License: MIT -Private: false -Description: Returns an array of all tabbable DOM nodes within a containing node. -Repository: git+https://github.com/focus-trap/tabbable.git -Homepage: https://github.com/focus-trap/tabbable#readme -Author: David Clark (http://davidtheclark.com/) -License Copyright: -=== - -The MIT License (MIT) - -Copyright (c) 2015 David Clark - -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. - ---- - -Name: @floating-ui/react -Version: 0.27.16 -License: MIT -Private: false -Description: Floating UI for React -Repository: https://github.com/floating-ui/floating-ui.git -Homepage: https://floating-ui.com/docs/react -Author: atomiks -License Copyright: -=== - -MIT License - -Copyright (c) 2021-present Floating UI contributors - -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. - ---- - -Name: @tanstack/zod-adapter -Version: 1.135.2 -License: MIT -Private: false -Description: Modern and scalable routing for React applications -Repository: https://github.com/TanStack/router.git -Homepage: https://tanstack.com/router -Author: Tanner Linsley -License Copyright: -=== - -MIT License - -Copyright (c) 2021-present Tanner Linsley - -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. - ---- - -Name: prop-types -Version: 15.8.1 -License: MIT -Private: false -Description: Runtime type checking for React props and similar objects. -Repository: undefined -Homepage: https://facebook.github.io/react/ -License Copyright: -=== - -MIT License - -Copyright (c) 2013-present, Facebook, 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. - ---- - -Name: @nivo/tooltip -Version: 0.88.0 -License: MIT -Private: false -Repository: https://github.com/plouc/nivo.git -Author: Raphaël Benitte (https://github.com/plouc) -License Copyright: -=== - -Copyright (c) Raphaël Benitte - -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. - ---- - -Name: d3-color -Version: 3.1.0 -License: ISC -Private: false -Description: Color spaces! RGB, HSL, Cubehelix, Lab and HCL (Lch). -Repository: https://github.com/d3/d3-color.git -Homepage: https://d3js.org/d3-color/ -Author: Mike Bostock (http://bost.ocks.org/mike) -License Copyright: -=== - -Copyright 2010-2022 Mike Bostock - -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. - ---- - -Name: d3-interpolate -Version: 3.0.1 -License: ISC -Private: false -Description: Interpolate numbers, colors, strings, arrays, objects, whatever! -Repository: https://github.com/d3/d3-interpolate.git -Homepage: https://d3js.org/d3-interpolate/ -Author: Mike Bostock (http://bost.ocks.org/mike) -License Copyright: -=== - -Copyright 2010-2021 Mike Bostock - -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. - ---- - -Name: internmap -Version: 2.0.3 -License: ISC -Private: false -Description: Map and Set with automatic key interning -Repository: https://github.com/mbostock/internmap.git -Homepage: https://github.com/mbostock/internmap/ -Author: Mike Bostock (https://bost.ocks.org/mike) -License Copyright: -=== - -Copyright 2021 Mike Bostock - -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. - ---- - -Name: d3-array -Version: 3.2.4 -License: ISC -Private: false -Description: Array manipulation, ordering, searching, summarizing, etc. -Repository: https://github.com/d3/d3-array.git -Homepage: https://d3js.org/d3-array/ -Author: Mike Bostock (http://bost.ocks.org/mike) -License Copyright: -=== - -Copyright 2010-2023 Mike Bostock - -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. - ---- - -Name: d3-scale -Version: 4.0.2 -License: ISC -Private: false -Description: Encodings that map abstract data to visual representation. -Repository: https://github.com/d3/d3-scale.git -Homepage: https://d3js.org/d3-scale/ -Author: Mike Bostock (https://bost.ocks.org/mike) -License Copyright: -=== - -Copyright 2010-2021 Mike Bostock - -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. - ---- - -Name: d3-format -Version: 1.4.5 -License: BSD-3-Clause -Private: false -Description: Format numbers for human consumption. -Repository: https://github.com/d3/d3-format.git -Homepage: https://d3js.org/d3-format/ -Author: Mike Bostock (http://bost.ocks.org/mike) -License Copyright: -=== - -Copyright 2010-2015 Mike Bostock -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ---- - -Name: d3-time -Version: 2.1.1 -License: BSD-3-Clause -Private: false -Description: A calculator for humanity’s peculiar conventions of time. -Repository: https://github.com/d3/d3-time.git -Homepage: https://d3js.org/d3-time/ -Author: Mike Bostock (http://bost.ocks.org/mike) -License Copyright: -=== - -Copyright 2010-2016 Mike Bostock -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ---- - -Name: d3-time-format -Version: 3.0.0 -License: BSD-3-Clause -Private: false -Description: A JavaScript time formatter and parser inspired by strftime and strptime. -Repository: https://github.com/d3/d3-time-format.git -Homepage: https://d3js.org/d3-time-format/ -Author: Mike Bostock (http://bost.ocks.org/mike) -License Copyright: -=== - -Copyright 2010-2017 Mike Bostock -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ---- - -Name: d3-scale-chromatic -Version: 3.1.0 -License: ISC -Private: false -Description: Sequential, diverging and categorical color schemes. -Repository: https://github.com/d3/d3-scale-chromatic.git -Homepage: https://d3js.org/d3-scale-chromatic/ -Author: Mike Bostock (https://bost.ocks.org/mike) -License Copyright: -=== - -Copyright 2010-2024 Mike Bostock - -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. - -Apache-Style Software License for ColorBrewer software and ColorBrewer Color Schemes - -Copyright 2002 Cynthia Brewer, Mark Harrower, and The Pennsylvania State University - -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. - ---- - -Name: d3-shape -Version: 3.2.0 -License: ISC -Private: false -Description: Graphical primitives for visualization, such as lines and areas. -Repository: https://github.com/d3/d3-shape.git -Homepage: https://d3js.org/d3-shape/ -Author: Mike Bostock (http://bost.ocks.org/mike) -License Copyright: -=== - -Copyright 2010-2022 Mike Bostock - -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. - ---- - -Name: d3-path -Version: 3.1.0 -License: ISC -Private: false -Description: Serialize Canvas path commands to SVG. -Repository: https://github.com/d3/d3-path.git -Homepage: https://d3js.org/d3-path/ -Author: Mike Bostock (http://bost.ocks.org/mike) -License Copyright: -=== - -Copyright 2015-2022 Mike Bostock - -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. - ---- - -Name: @nivo/core -Version: 0.88.0 -License: MIT -Private: false -Repository: https://github.com/plouc/nivo.git -Author: Raphaël Benitte (https://github.com/plouc) -License Copyright: -=== - -Copyright (c) Raphaël Benitte - -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. - ---- - -Name: @nivo/colors -Version: 0.88.0 -License: MIT -Private: false -Repository: https://github.com/plouc/nivo.git -Author: Raphaël Benitte (https://github.com/plouc) -License Copyright: -=== - -Copyright (c) Raphaël Benitte - -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. - ---- - -Name: @nivo/legends -Version: 0.88.0 -License: MIT -Private: false -Description: legend components for nivo dataviz library -Repository: https://github.com/plouc/nivo.git -Author: Raphaël Benitte (https://github.com/plouc) -License Copyright: -=== - -Copyright (c) Raphaël Benitte - -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. - ---- - -Name: cmdk -Version: 1.1.1 -License: MIT -Private: false -Repository: git+https://github.com/pacocoursey/cmdk.git -Homepage: https://github.com/pacocoursey/cmdk#readme -Author: Paco (https://github.com/pacocoursey) -License Copyright: -=== - -MIT License - -Copyright (c) 2022 Paco Coursey - -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. - ---- - -Name: react-circular-progressbar -Version: 2.2.0 -License: MIT -Private: false -Description: A circular progress indicator component -Repository: undefined -Author: Kevin Qi -License Copyright: -=== - -MIT License - -Copyright (c) 2017 Kevin Qi - -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. - ---- - -Name: react-intersection-observer -Version: 9.16.0 -License: MIT -Private: false -Description: Monitor if a component is inside the viewport, using IntersectionObserver API -Repository: https://github.com/thebuilder/react-intersection-observer.git -Author: Daniel Schmidt -License Copyright: -=== - -The MIT License (MIT) - -Copyright (c) 2023 React Intersection Observer authors - -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. - ---- - -Name: hammerjs -Version: 2.0.8 -License: MIT -Private: false -Description: A javascript library for multi-touch gestures -Repository: git://github.com/hammerjs/hammer.js.git -Homepage: http://hammerjs.github.io/ -Author: Jorik Tangelder -Contributors: - Alexander Schmitz - Chris Thoburn -License Copyright: -=== - -The MIT License (MIT) - -Copyright (C) 2011-2014 by Jorik Tangelder (Eight Media) - -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. - ---- - -Name: @nivo/arcs -Version: 0.88.0 -License: MIT -Private: false -Repository: https://github.com/plouc/nivo.git -Author: Raphaël Benitte (https://github.com/plouc) -License Copyright: -=== - -Copyright (c) Raphaël Benitte - -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. - ---- - -Name: @nivo/pie -Version: 0.88.0 -License: MIT -Private: false -Repository: https://github.com/plouc/nivo.git -Author: Raphaël Benitte (https://github.com/plouc) -License Copyright: -=== - -Copyright (c) Raphaël Benitte - -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. - ---- - -Name: @oneidentity/zstd-js -Version: 1.0.3 -License: SEE LICENSE IN LICENSE -Private: false -Description: Browser side compression library from the official Zstandard library. -Repository: git+https://github.com/OneIdentity/zstd-js.git -Homepage: https://github.com/OneIdentity/zstd-js -Author: Zsombor Szende - @szendezsombor -Contributors: - Csaba Tamás - @tamascsaba - Gergely Szabó - @szaboge - László Zana - @zanalaci -License Copyright: -=== - -MIT License - -Copyright (c) 2022 One Identity - -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. - ---- - -Name: @visx/group -Version: 3.12.0 -License: MIT -Private: false -Description: visx group -Repository: git+https://github.com/airbnb/visx.git -Homepage: https://github.com/airbnb/visx#readme -Author: @hshoff -License Copyright: -=== - -MIT License - -Copyright (c) 2017-2018 Harrison Shoff - -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. - ---- - -Name: d3-hierarchy -Version: 1.1.9 -License: BSD-3-Clause -Private: false -Description: Layout algorithms for visualizing hierarchical data. -Repository: https://github.com/d3/d3-hierarchy.git -Homepage: https://d3js.org/d3-hierarchy/ -Author: Mike Bostock (http://bost.ocks.org/mike) -License Copyright: -=== - -Copyright 2010-2016 Mike Bostock -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ---- - -Name: @visx/hierarchy -Version: 3.12.0 -License: MIT -Private: false -Description: visx tree -Repository: git+https://github.com/airbnb/visx.git -Homepage: https://github.com/airbnb/visx#readme -Author: @hshoff -License Copyright: -=== - -MIT License - -Copyright (c) 2017-2018 Harrison Shoff - -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. \ No newline at end of file diff --git a/src/disco/gui/dist_alpha/assets/firedancer_logo_circle-D9jlxCje.svg b/src/disco/gui/dist_alpha/assets/firedancer_logo_circle-D9jlxCje.svg deleted file mode 100644 index 6834a440f16..00000000000 --- a/src/disco/gui/dist_alpha/assets/firedancer_logo_circle-D9jlxCje.svg +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/disco/gui/dist_alpha/assets/frankendancer_logo_circle-D5z79vwQ.svg b/src/disco/gui/dist_alpha/assets/frankendancer_logo_circle-D5z79vwQ.svg deleted file mode 100644 index fd705b7122d..00000000000 --- a/src/disco/gui/dist_alpha/assets/frankendancer_logo_circle-D5z79vwQ.svg +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/disco/gui/dist_alpha/assets/index-B79NUQX2.js b/src/disco/gui/dist_alpha/assets/index-B79NUQX2.js deleted file mode 100644 index 22627239792..00000000000 --- a/src/disco/gui/dist_alpha/assets/index-B79NUQX2.js +++ /dev/null @@ -1 +0,0 @@ -import{u as me,b as W,j as t,T as G,r as v,p as y,a as E,m as je,d as le,P as L,f as k,c as ve,R as _e,o as B,l as N,e as oe,g as V,h as R,A as J,$ as Re,i as Ae,k as $,n as Pe,q as Ie,s as Oe,Z as qe,C as De,t as We,v as Ge,w as Ne,x as ue,y as Ve,z as He,B as Ue,D as Xe,E as Ye,F as Je,G as Ke,S as Ze,H as A,I as ye,_ as j,J as Qe,K as et,L as tt,M as nt,N as rt,O as st}from"./index-BJ9rbYrC.js";function O({inBytes:e,value:n}){const{valuePerSecond:s}=me(n,5e3)??0,r=s!==void 0?e?W(s).toString():Math.trunc(s).toLocaleString():"-";return t.jsx(G,{align:"right",children:r})}const K=["ContactInfoV1","Vote","LowestSlot","SnapshotHashes","AccountsHashes","EpochSlots","VersionV1","VersionV2","NodeInstance","DuplicateShred","IncrementalSnapshotHashes","ContactInfoV2","RestartLastVotedForkSlots","RestartHeaviestFork"],it=["pull_request","pull_response","push","ping","pong","prune"],at="_root_zd40k_1",be={root:at};function lt({storage:e}){const n=v.useMemo(()=>{if(e!=null&&e.count)return e.count.map((s,r)=>{var i,o,l;return{type:K[r],activeEntries:(i=e.count)==null?void 0:i[r],egressCount:(o=e.count_tx)==null?void 0:o[r],egressBytes:(l=e.bytes_tx)==null?void 0:l[r]}}).sort((s,r)=>r.activeEntries-s.activeEntries)},[e]);if(n)return t.jsxs(y,{direction:"column",gap:"1",style:{contain:"size",minHeight:"250px"},children:[t.jsx(E,{size:"4",children:"Storage Stats"}),t.jsxs(je,{variant:"surface",className:be.root,style:{minHeight:0},children:[t.jsx(le,{children:t.jsxs(L,{children:[t.jsx(k,{children:"Entry Type"}),t.jsx(k,{align:"right",children:"Total Entries"}),t.jsx(k,{align:"right",children:"Egress /s"}),t.jsx(k,{align:"right",children:"Egress Throughput /s"})]})}),t.jsx(ve,{children:n==null?void 0:n.map(s=>t.jsxs(L,{children:[t.jsx(_e,{children:s.type}),t.jsx(G,{align:"right",children:s.activeEntries.toLocaleString()}),t.jsx(O,{value:s.egressCount??0}),t.jsx(O,{value:s.egressBytes??0,inBytes:!0})]},s.type))})]})]})}function z(e){return t.jsx(B,{children:t.jsx(w,{...e})})}function w({value:e,label:n,valueColor:s,size:r}){const i=typeof e=="string"?e:e.toLocaleString();return t.jsxs(y,{direction:"column",children:[t.jsx(E,{size:"5",style:{color:"var(--gray-10)"},children:n}),t.jsx(E,{size:r==="sm"?"7":"8",style:{color:s??"var(--gray-11)"},children:i})]})}function ot({storage:e}){var l;const n=v.useMemo(()=>{if(e!=null&&e.count)return e.count.map((c,d)=>{var h,u,g;return{type:K[d],activeEntries:(h=e.count)==null?void 0:h[d],egressCount:(u=e.count_tx)==null?void 0:u[d],egressBytes:(g=e.bytes_tx)==null?void 0:g[d]}})},[e]),s=v.useMemo(()=>{const c=N.sum(e.count),d=e.capacity-c;return`${Math.round(c/d*100)}%`},[e.capacity,e.count]),r=me(e.expired_count,1e4),i=v.useRef([]);v.useMemo(()=>{i.current.push({ts:performance.now(),value:e.expired_count})},[e.expired_count]),oe(()=>{const c=performance.now();for(;i.current.length>1&&c-i.current[0].ts>6e4;)i.current.shift()},1e3);const o=e.expired_count-(((l=i.current[0])==null?void 0:l.value)??0);if(n)return t.jsxs(y,{direction:"column",gap:"1",children:[t.jsx(E,{size:"4",children:"Storage Stats"}),t.jsxs(y,{gap:"1",children:[t.jsxs(V,{columns:"repeat(auto-fill, minmax(160px, 1fr)",gap:"4",flexGrow:"1",children:[t.jsx(z,{label:"Expired /s",value:`${Math.trunc(r.valuePerSecond??0)}`}),t.jsx(z,{label:"Expired last min",value:`${o.toLocaleString()}`}),t.jsx(z,{label:"Total Evicted",value:e.evicted_count}),t.jsx(z,{label:"Capacity Used",value:s})]}),t.jsx(R,{flexGrow:"1",children:t.jsx(ut,{storage:e})})]})]})}const Me=["#48295C","#562800","#132D21"],Se=e=>Me[e%Me.length];function ut({storage:e}){const{data:n,usedCapacityLabel:s}=v.useMemo(()=>{const r=N.sum(e.count),i=e.capacity-r;return{usedCapacityLabel:`${Math.round(r/i*100)}%`,data:[{id:"unused",label:"Unused",value:i,color:"#222"},...e.count.map((o,l)=>({id:K[l]+l,label:K[l],value:o,color:Se(l)})).sort((o,l)=>l.value-o.value).map((o,l)=>({...o,color:Se(l)}))]}},[e]);return t.jsx(J,{children:({height:r,width:i})=>t.jsx(Re,{height:r,width:i,data:n,colors:o=>o.data.color,arcLabelsSkipAngle:10,arcLinkLabelsSkipAngle:10,arcLabelsTextColor:"#9F9F9F",enableArcLinkLabels:!1,layers:["arcs","arcLabels",ct(s)],animate:!1,innerRadius:.7,arcLabel:o=>o.data.label})})}const ct=e=>({dataWithArc:n,centerX:s,centerY:r})=>t.jsx("text",{y:r-6,textAnchor:"middle",dominantBaseline:"central",style:{fontSize:"28px",fill:"#9F9F9F"},children:t.jsx("tspan",{x:s,dy:5,children:e})});function ht({messages:e}){const n=v.useMemo(()=>e.num_bytes_rx.map((s,r)=>{var i,o,l,c;return{type:it[r],ingressBytes:(i=e.num_bytes_rx)==null?void 0:i[r],egressBytes:(o=e.num_bytes_tx)==null?void 0:o[r],ingressMessages:(l=e.num_messages_rx)==null?void 0:l[r],egressMessages:(c=e.num_messages_tx)==null?void 0:c[r]}}),[e]);if(n)return t.jsxs(y,{direction:"column",gap:"1",children:[t.jsx(E,{size:"4",children:"Message Stats"}),t.jsxs(je,{variant:"surface",className:be.root,children:[t.jsx(le,{children:t.jsxs(L,{children:[t.jsx(k,{children:"Message Type"}),t.jsx(k,{align:"right",children:"Ingress /s"}),t.jsx(k,{align:"right",children:"Egress /s"}),t.jsx(k,{align:"right",children:"Ingress Throughput /s"}),t.jsx(k,{align:"right",children:"Egress Throughput /s"})]})}),t.jsx(ve,{children:n==null?void 0:n.map((s,r)=>t.jsxs(L,{children:[t.jsx(_e,{children:s.type}),t.jsx(O,{value:s.ingressMessages??0}),t.jsx(O,{value:s.egressMessages??0}),t.jsx(O,{value:s.ingressBytes??0,inBytes:!0}),t.jsx(O,{value:s.egressBytes??0,inBytes:!0})]},s.type))})]})]})}const we={id:"Stake",direction:-1};function dt(){const e=Ae(),n=$(Pe),s=$(Ie),r=v.useRef(new Map),[i,o]=v.useState([]),[l,c]=v.useState(we);v.useEffect(()=>{var g;if(!n)return;const u=Object.entries(n);if(!i.length&&((g=u[0])!=null&&g[1])){const a=Object.keys(u[0][1]);o(a),c(we)}u.forEach(([a,p])=>{r.current.set(a,p)})},[i,n]),v.useEffect(()=>{if(s)for(const u of s.changes){const g=r.current.get(u.row_index.toString());g&&(g[u.column_name]=u.new_value)}},[s]);const d=v.useCallback((u,g)=>{if(g{(i==null?void 0:i.indexOf(u))!==void 0&&c(g=>{let a=-1;g.id===u&&(a=-g.direction);const p=i.filter(x=>x!==u),m=new Array(p.length).fill(0),f={col:[u,...p],dir:[a,...m]};return e({topic:"gossip",key:"query_sort",id:32,params:f}),{id:u,direction:a}})},[i,e]);return{query:d,sort:h,cols:i,rowsCacheRef:r,colSorting:l}}const gt="_header-cell_eqr0d_27",pt={headerCell:gt},ft=1e3,ce=0,Z=e=>{if(typeof e=="number"){const n=W(e);return`${n.value} ${n.unit}`}return e},he={Stake:{minWidth:100,align:"right",format:e=>typeof e=="number"?Math.abs(Math.trunc(e/Ge)).toLocaleString():e},Pubkey:{minWidth:400},"IP Addr":{minWidth:160},"Ingress Pull":{minWidth:100,align:"right",format:Z},"Ingress Push":{minWidth:100,align:"right",format:Z},"Egress Pull":{minWidth:100,align:"right",format:Z},"Egress Push":{minWidth:100,align:"right",format:Z}};function xt(){const e=$(Oe)??ft,{query:n,sort:s,cols:r,rowsCacheRef:i,colSorting:o}=dt(),l=v.useCallback(({startIndex:c,endIndex:d})=>{const h=Math.max(0,c-ce),u=Math.min(d+ce,e>0?e-1:d+ce);n(h,u)},[n,e]);return t.jsxs(y,{direction:"column",flexGrow:"1",children:[t.jsx(E,{size:"4",children:"Peers"}),t.jsx(R,{className:"rt-TableRoot rt-r-size-2 rt-variant-surface",flexGrow:"1",minHeight:"300px",children:t.jsx(qe,{className:"rt-TableRootTable",style:{overflow:"auto"},totalCount:e,increaseViewportBy:200,rangeChanged:l,itemContent:c=>{var u;const d=(u=i.current)==null?void 0:u.get(c.toString());if(!d)return r!=null&&r.length?t.jsx(L,{children:r.map(g=>{const a=he[g].minWidth??30;return t.jsx(G,{style:{minWidth:a},children:"\xA0"},g)})}):t.jsx(L,{children:t.jsx(G,{children:"&nsbsp;"})});const h=Object.entries(d);return t.jsx(L,{children:h.map(([g,a])=>{const p=he[g],m=p.minWidth,f=p.align,x=p.format;return t.jsx(G,{align:f,style:{minWidth:m},children:x?x(a):a},g)})})},fixedHeaderContent:()=>t.jsx(t.Fragment,{children:t.jsx(le,{style:{background:"#0e131c"},children:t.jsx(L,{children:r==null?void 0:r.map(c=>{const d=he[c],h=d.minWidth,u=d.align,g=o.id===c?o.direction:void 0;return t.jsx(k,{align:u,onClick:()=>s(c),className:pt.headerCell,style:{minWidth:h},children:t.jsxs(y,{children:[t.jsx(E,{children:c}),t.jsx(R,{flexGrow:"1"}),g===-1&&t.jsx(De,{}),g===1&&t.jsx(We,{})]})},c)})})})})})})]})}function mt(){{const e=$(Ne);if(!e)return null;const n=ue(e.activeStake),s=ue(e.delinquentStake);return t.jsxs(y,{gap:"1",direction:"column",children:[t.jsx(E,{size:"4",children:"Validator Stats"}),t.jsxs(y,{align:"stretch",justify:"between",gap:"2",children:[t.jsxs(V,{columns:"repeat(auto-fit, minmax(200px, 1fr)",gap:"4",flexGrow:".6",children:[t.jsx(z,{label:"Total Validators",value:e.validatorCount.toLocaleString(),valueColor:Ve}),t.jsx(z,{label:"Non-delinquent Stake",value:n,valueColor:He}),t.jsx(z,{label:"RPC Nodes",value:e.rpcCount.toLocaleString(),valueColor:Ue}),t.jsx(z,{label:"Delinquent Stake",value:s,valueColor:Xe})]}),t.jsx(R,{style:{minWidth:"100px",minHeight:"100px"},flexGrow:"1",children:t.jsx(Ye,{activeStake:e.activeStake,delinquentStake:e.delinquentStake})})]})]})}}const de={forceUpdateIntervalMs:1e3,halfLifeMs:1e4};function jt(e,{forceUpdateIntervalMs:n,halfLifeMs:s}=de){const r=v.useMemo(()=>(s??de.halfLifeMs)/Math.log(2),[s]),[i,o]=v.useState(),l=v.useRef(),c=v.useRef(e);c.current=e;const d=v.useCallback(g=>{var _;g=g!==void 0?g:c.current;const a=performance.now();if(l.current===void 0){g!=null&&(l.current={value:g,tsMs:a});return}g==null&&(g=(_=l.current)==null?void 0:_.value);const{value:p,tsMs:m}=l.current,f=a-m;if(!isFinite(f)||f<=0)return;const x=g-p;!isFinite(x)||x<0||(l.current={value:g,tsMs:a},o(b=>{const M=x/f*1e3;if(b===void 0)return M;const C=-Math.expm1(-f/r);return b*(1-C)+M*C}))},[r]),h=v.useRef();v.useEffect(()=>{if(h.current!==void 0&&clearTimeout(h.current),d(e),n!==void 0){let g=function(){h.current=setTimeout(()=>{d(),g()},n)};g()}return()=>{h.current!==void 0&&clearTimeout(h.current)}},[n,d,e]);const u=v.useCallback(()=>{o(void 0),l.current=void 0,h.current!==void 0&&(clearTimeout(h.current),h.current=void 0)},[]);return{ema:i,reset:u}}function S(e,n=de){return jt(e,n).ema??0}const Q="#30A46C",ee="#A39073",q="#E5484D",D="#3E63DD";function vt({health:e}){return t.jsxs(y,{gap:"2",children:[t.jsxs(y,{direction:"column",flexGrow:"1",gap:"2",children:[t.jsx(Tt,{health:e}),t.jsx(Et,{health:e})]}),t.jsxs(y,{direction:"column",flexGrow:"1",gap:"2",children:[t.jsx(_t,{health:e}),t.jsx(yt,{health:e})]}),t.jsxs(y,{direction:"column",flexGrow:"1",gap:"2",children:[t.jsx(Ft,{health:e}),t.jsx(kt,{health:e})]})]})}function _t({health:e}){return t.jsx(B,{children:t.jsxs(V,{columns:"auto 1fr",gapX:"6",gapY:"3",children:[t.jsx(bt,{health:e}),t.jsx(Mt,{health:e})]})})}function yt({health:e}){return t.jsx(B,{children:t.jsxs(V,{columns:"auto 1fr",gapX:"6",gapY:"3",children:[t.jsx(St,{health:e}),t.jsx(wt,{health:e})]})})}function bt({health:e}){const n=S(e.num_push_entries_rx_success+e.num_push_entries_rx_failure),s=S(e.num_push_entries_rx_duplicate);return t.jsx(te,{label:"Push Duplicate /s",value:s,total:n,color:D})}function Mt({health:e}){const n=S(e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure),s=S(e.num_pull_response_entries_rx_duplicate);return t.jsx(te,{label:"Pull Duplicate /s",value:s,total:n,color:D})}function St({health:e}){const n=S(e.num_push_entries_rx_success+e.num_push_entries_rx_failure),s=S(e.num_push_entries_rx_failure-e.num_push_entries_rx_duplicate);return t.jsx(te,{label:"Push Failure /s",value:s,total:n,color:q})}function wt({health:e}){const n=S(e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure),s=S(e.num_pull_response_entries_rx_failure-e.num_pull_response_entries_rx_duplicate);return t.jsx(te,{label:"Pull Failure /s",value:s,total:n,color:q})}function te({label:e,value:n,total:s,color:r}){let i=n/s;isFinite(i)||(i=0);const o=`${Math.trunc(i*100).toLocaleString()}%`;return t.jsxs(t.Fragment,{children:[t.jsxs(y,{align:"end",justify:"between",minWidth:"170px",children:[t.jsx(w,{label:e,value:Math.trunc(n),valueColor:r,size:"sm"}),t.jsx(E,{style:{color:`color-mix(in srgb, ${Je}, ${Ke} ${i*100}%)`,margin:"4px 0"},children:o??"-"})]}),t.jsx(Ct,{pct:i})]})}function Ct({pct:e}){const n=v.useRef(),[s,r]=v.useState([]);oe(()=>{r(o=>{let l=[...o];return o.length>ne&&(l=l.slice(l.length-ne)),l.push(1-e),l})},ge);const i=v.useMemo(()=>{if(!n.current||!s.length)return;const{height:o,width:l}=n.current,c=s.length,d=l/c,h=o-10;return s.map((u,g)=>({x:g*d,y:u*h+5}))},[s]);return t.jsx(R,{flexGrow:"1",children:t.jsx(J,{children:({height:o,width:l})=>(n.current={height:o,width:l},i?t.jsx(R,{height:`${o}px`,width:`${l}px`,children:t.jsx(Ze,{height:o,scaledDataPoints:i})}):null)})})}function Tt({health:e}){const n=S(e.num_push_entries_rx_success+e.num_pull_response_entries_rx_success),s=S(e.num_push_entries_rx_success),r=S(e.num_pull_response_entries_rx_success);return t.jsx(B,{style:{flexGrow:1},children:t.jsxs(y,{gap:"6",children:[t.jsxs(y,{direction:"column",children:[t.jsx(w,{label:"Entries /s",value:Math.trunc(n).toLocaleString()}),t.jsxs(y,{gap:"3",children:[t.jsx(w,{label:"Push /s",value:Math.trunc(s).toLocaleString(),valueColor:"var(--green-9)",size:"sm"}),t.jsx(w,{label:"Pull /s",value:Math.trunc(r).toLocaleString(),valueColor:"var(--gold-10)",size:"sm"})]})]}),t.jsx(re,{values:[r,s],colors:[ee,Q]})]})})}function Et({health:e}){const n=S(e.num_push_messages_rx_success+e.num_pull_response_messages_rx_success),s=S(e.num_push_messages_rx_success),r=S(e.num_pull_response_messages_rx_success);return t.jsx(B,{style:{flexGrow:1},children:t.jsxs(y,{gap:"6",children:[t.jsxs(y,{direction:"column",children:[t.jsx(w,{label:"Messages /s",value:Math.trunc(n).toLocaleString()}),t.jsxs(y,{gap:"3",children:[t.jsx(w,{label:"Push /s",value:Math.trunc(s).toLocaleString(),valueColor:"var(--green-9)",size:"sm"}),t.jsx(w,{label:"Pull /s",value:Math.trunc(r).toLocaleString(),valueColor:"var(--gold-10)",size:"sm"})]})]}),t.jsx(re,{values:[r,s],colors:[ee,Q]})]})})}function Ft({health:e}){const n=S(e.num_push_entries_rx_success),s=S(e.num_push_entries_rx_failure),r=S(e.num_push_entries_rx_duplicate),i=Math.max(s-r,0);return t.jsx(B,{style:{flexGrow:1},children:t.jsxs(y,{gap:"6",children:[t.jsxs(y,{direction:"column",children:[t.jsx(w,{label:"Push Entries /s",value:Math.trunc(n).toLocaleString(),valueColor:Q}),t.jsxs(y,{gap:"3",children:[t.jsx(w,{label:"Duplicates /s",value:Math.trunc(r).toLocaleString(),valueColor:D,size:"sm"}),t.jsx(w,{label:"Failures /s",value:Math.trunc(i).toLocaleString(),valueColor:q,size:"sm"})]})]}),t.jsx(re,{values:[i,r,n],colors:[q,D,Q]})]})})}function kt({health:e}){const n=S(e.num_pull_response_entries_rx_success),s=S(e.num_pull_response_entries_rx_failure),r=S(e.num_pull_response_entries_rx_duplicate),i=Math.max(s-r,0);return t.jsx(B,{style:{flexGrow:1},children:t.jsxs(y,{gap:"6",children:[t.jsxs(y,{direction:"column",children:[t.jsx(w,{label:"Pull Entries /s",value:Math.trunc(n).toLocaleString(),valueColor:ee}),t.jsxs(y,{gap:"3",children:[t.jsx(w,{label:"Duplicates /s",value:Math.trunc(r).toLocaleString(),valueColor:D,size:"sm"}),t.jsx(w,{label:"Failures /s",value:Math.trunc(i).toLocaleString(),valueColor:q,size:"sm"})]})]}),t.jsx(re,{values:[i,r,n],colors:[q,D,ee]})]})})}const ge=150,Lt=3e4,ne=Math.trunc(Lt/ge),$t=(e,n,s)=>e.length?(e[e.length-1].x=s,"M"+e.map(({x:r,y:i})=>`L ${r} ${n-i}`).join(" ").slice(1)+`L ${e[e.length-1].x} ${n} L ${e[0].x} ${n}, L ${e[0].x} ${e[0].y}`):"";function re({values:e,colors:n}){const s=v.useRef(),[r,i]=v.useState([]);oe(()=>{i(l=>{let c=[...l];return l.length>ne&&(c=c.slice(c.length-ne)),c.push(e),c})},ge);const o=v.useMemo(()=>{if(!s.current||!r.length)return;const{height:l,width:c}=s.current,d=r.length,h=c/d,u=l,g=r[0].length,a=new Array(g).fill(0).map(()=>new Array(r.length).fill(1));for(let p=0;p{const f=p.map((x,_)=>({x:_*h,y:x*u}));return{path:$t(f,l,c),color:n[m]}})},[r,n]);return t.jsx(R,{flexGrow:"1",children:t.jsx(J,{children:({height:l,width:c})=>(s.current={height:l,width:c},o?t.jsx(t.Fragment,{children:t.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:c,height:l,children:o.map(({path:d,color:h})=>t.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d,fill:h},h))})}):null)})})}var zt=["top","left","transform","className","children","innerRef"];function pe(){return pe=Object.assign?Object.assign.bind():function(e){for(var n=1;n=0)&&(s[i]=e[i]);return s}function H(e){var n=e.top,s=n===void 0?0:n,r=e.left,i=r===void 0?0:r,o=e.transform,l=e.className,c=e.children,d=e.innerRef,h=Bt(e,zt);return A.createElement("g",pe({ref:d,className:ye("visx-group",l),transform:o||"translate("+i+", "+s+")"},h),c)}H.propTypes={top:j.number,left:j.number,transform:j.string,className:j.string,children:j.node,innerRef:j.oneOfType([j.string,j.func,j.object])};function Rt(e){var n=0,s=e.children,r=s&&s.length;if(!r)n=1;else for(;--r>=0;)n+=s[r].value;e.value=n}function At(){return this.eachAfter(Rt)}function Pt(e){var n=this,s,r=[n],i,o,l;do for(s=r.reverse(),r=[];n=s.pop();)if(e(n),i=n.children,i)for(o=0,l=i.length;o=0;--i)s.push(r[i]);return this}function Ot(e){for(var n=this,s=[n],r=[],i,o,l;n=s.pop();)if(r.push(n),i=n.children,i)for(o=0,l=i.length;o=0;)s+=r[i].value;n.value=s})}function Dt(e){return this.eachBefore(function(n){n.children&&n.children.sort(e)})}function Wt(e){for(var n=this,s=Gt(n,e),r=[n];n!==s;)n=n.parent,r.push(n);for(var i=r.length;e!==s;)r.splice(i,0,e),e=e.parent;return r}function Gt(e,n){if(e===n)return e;var s=e.ancestors(),r=n.ancestors(),i=null;for(e=s.pop(),n=r.pop();e===n;)i=e,e=s.pop(),n=r.pop();return i}function Nt(){for(var e=this,n=[e];e=e.parent;)n.push(e);return n}function Vt(){var e=[];return this.each(function(n){e.push(n)}),e}function Ht(){var e=[];return this.eachBefore(function(n){n.children||e.push(n)}),e}function Ut(){var e=this,n=[];return e.each(function(s){s!==e&&n.push({source:s.parent,target:s})}),n}function fe(e,n){var s=new se(e),r=+e.value&&(s.value=e.value),i,o=[s],l,c,d,h;for(n==null&&(n=Yt);i=o.pop();)if(r&&(i.value=+i.data.value),(c=n(i.data))&&(h=c.length))for(i.children=new Array(h),d=h-1;d>=0;--d)o.push(l=i.children[d]=new se(c[d])),l.parent=i,l.depth=i.depth+1;return s.eachBefore(Kt)}function Xt(){return fe(this).eachBefore(Jt)}function Yt(e){return e.children}function Jt(e){e.data=e.data.data}function Kt(e){var n=0;do e.height=n;while((e=e.parent)&&e.height<++n)}function se(e){this.data=e,this.depth=this.height=0,this.parent=null}se.prototype=fe.prototype={constructor:se,count:At,each:Pt,eachAfter:Ot,eachBefore:It,sum:qt,sort:Dt,path:Wt,ancestors:Nt,descendants:Vt,leaves:Ht,links:Ut,copy:Xt};function Zt(e){if(typeof e!="function")throw new Error;return e}function U(){return 0}function X(e){return function(){return e}}function Qt(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function en(e,n,s,r,i){for(var o=e.children,l,c=-1,d=o.length,h=e.value&&(r-n)/e.value;++cb&&(b=h),F=x*x*T,M=Math.max(b/F,F/_),M>C){x-=h;break}C=M}l.push(d={value:x,dice:p1?r:1)},s}(nn);function sn(){var e=Ce,n=!1,s=1,r=1,i=[0],o=U,l=U,c=U,d=U,h=U;function u(a){return a.x0=a.y0=0,a.x1=s,a.y1=r,a.eachBefore(g),i=[0],n&&a.eachBefore(Qt),a}function g(a){var p=i[a.depth],m=a.x0+p,f=a.y0+p,x=a.x1-p,_=a.y1-p;x{var g,a;if(!e.peer_throughput)return;const l=.7;let c=0,d=0;const h=[];for(;d{var a,p,m;const c=r[l];if(!c)return;const d=N.sum(c.vote.map(f=>f.delinquent?0:Number(f.activated_stake))),h=d?`${ue(d)} SOL`:void 0,u=((a=c.info)==null?void 0:a.icon_url)||((p=c.info)!=null&&p.keybase_username?`https://keybase.io/${c.info.keybase_username}/picture`:void 0)||void 0,g=((m=c.info)==null?void 0:m.name)??void 0;return{stake:h,iconUrl:u,name:g}},[r]);if(i)return t.jsxs(y,{direction:"column",minHeight:"300px",children:[t.jsxs(y,{justify:"between",children:[t.jsx(E,{size:"4",children:n}),t.jsxs("span",{children:[t.jsx(E,{size:"4",style:{color:"var(--gray-11)"},children:"Total:"}),t.jsxs(E,{size:"4",children:["\xA0",W(e.total_throughput).toString(),"\xA0/s"]})]})]}),t.jsx(J,{children:({height:l,width:c})=>t.jsx(on,{data:i,width:c,height:l,getPeerValues:o})})]})}const I=(()=>{let e=null,n=null;return(s,r)=>(e||(e=document.createElement("canvas")),n||(n=e.getContext("2d")),n?(n.font=r,n.measureText(s).width):s.length*7)})();function Le(e,n,s){if(I(e,n)<=s)return e;const r="\u2026";if(I(r,n)>s)return"";let i=0,o=e.length;for(;ie.children.reduce((h,u)=>h+(u.value||0),0),[e]),l=v.useMemo(()=>fe({name:e.id,children:e.children.map(h=>({name:h.id,value:h.value}))}).sum(h=>h.value||0).sort((h,u)=>(u.value||0)-(h.value||0)),[e]),c=v.useMemo(()=>{const h=r??["#48295C","#562800","#132D21","#331E0B","#0D2847","#292929"];return et().domain(e.children.map(u=>u.id)).range(h)},[e,r]),d=v.useMemo(()=>Ce.ratio(1.1),[]);return t.jsx("svg",{width:n,height:s,children:t.jsx(Ee,{root:l,size:[n,s],tile:d,round:!0,paddingInner:2,children:h=>t.jsx(H,{children:h.leaves().map(u=>{const g=u.x0,a=u.y0,p=u.x1-u.x0,m=u.y1-u.y0,f=String(u.data.name),x=o>0?100*(u.value||0)/o:0,_=i(f),b=`${Math.max(11,Math.min(16,Math.floor(p/14)))}px Inter Tight`,M=Math.max(0,p-2*ze),C=Le((_==null?void 0:_.name)??f,b,M);I(C,b);const T=W(u.value??0);let F=`${T?`${T.toString()} `:""}(${x.toFixed(1)}%)`;return I(F,b)0?100*(e.value||0)/n:0,h=o>=$e&&l>=an,u=l>30*2,g=Math.max(11,Math.min(14,Math.floor(o/12))),a=s(c),p=Math.max(11,Math.min(16,Math.floor(o/14))),m=`${p}px Inter Tight`,f=r+o/2,x=p+ln,_=i+l/3,b=2,M=p+4,C=Math.max(0,o-2*ze-(M?M+b:0)),T=Le((a==null?void 0:a.name)??c,m,C),F=I(T,m),Be=(M?M+b:0)+F,xe=f-Be/2,Y=_,ie=W(e.value??0);let ae=`${ie?`${ie.toString()} `:""}(${d.toFixed(1)}%)`;if(I(ae,m)i.map(i=>d[i]); -var ddt=Object.defineProperty;var fdt=(Wf,kA,Ci)=>kA in Wf?ddt(Wf,kA,{enumerable:!0,configurable:!0,writable:!0,value:Ci}):Wf[kA]=Ci;var Xu=(Wf,kA,Ci)=>fdt(Wf,typeof kA!="symbol"?kA+"":kA,Ci);let Tj,hs,Vu,Ek,Fc,Mj,MB,NB,Et,_n,jl,Ll,Oc,Bk,Nj,Im,Jf,Fj,yk,Pl,Yde,Ze,Se,Ul,FB,OB,vk,cd,Gl,Bo,jB,p,Me,sr,LB,Oj,zf,Fe,jj,x,Lj,bk,Cm,ga,E2,jc,Qk,PB,gdt=(async()=>{var P4,h0e,p0e,m0e;function Wf(e,t){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const A of i.addedNodes)A.tagName==="LINK"&&A.rel==="modulepreload"&&n(A)}).observe(document,{childList:!0,subtree:!0});function t(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(r){if(r.ep)return;r.ep=!0;const i=t(r);fetch(r.href,i)}})();var kA=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ci(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Pj={exports:{}},UB={},Uj={exports:{}},Or={},Em=Symbol.for("react.element"),Jde=Symbol.for("react.portal"),zde=Symbol.for("react.fragment"),Wde=Symbol.for("react.strict_mode"),qde=Symbol.for("react.profiler"),Xde=Symbol.for("react.provider"),Vde=Symbol.for("react.context"),Kde=Symbol.for("react.forward_ref"),Zde=Symbol.for("react.suspense"),$de=Symbol.for("react.memo"),efe=Symbol.for("react.lazy"),Gj=Symbol.iterator;function tfe(e){return e===null||typeof e!="object"?null:(e=Gj&&e[Gj]||e["@@iterator"],typeof e=="function"?e:null)}var Hj={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Yj=Object.assign,Jj={};function B2(e,t,n){this.props=e,this.context=t,this.refs=Jj,this.updater=n||Hj}B2.prototype.isReactComponent={},B2.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},B2.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function zj(){}zj.prototype=B2.prototype;function wk(e,t,n){this.props=e,this.context=t,this.refs=Jj,this.updater=n||Hj}var xk=wk.prototype=new zj;xk.constructor=wk,Yj(xk,B2.prototype),xk.isPureReactComponent=!0;var Wj=Array.isArray,qj=Object.prototype.hasOwnProperty,_k={current:null},Xj={key:!0,ref:!0,__self:!0,__source:!0};function Vj(e,t,n){var r,i={},A=null,l=null;if(t!=null)for(r in t.ref!==void 0&&(l=t.ref),t.key!==void 0&&(A=""+t.key),t)qj.call(t,r)&&!Xj.hasOwnProperty(r)&&(i[r]=t[r]);var c=arguments.length-2;if(c===1)i.children=n;else if(1>>1,me=de[Te];if(0>>1;Tei(We,be))Dei(_e,We)?(de[Te]=_e,de[De]=be,Te=De):(de[Te]=We,de[rt]=be,Te=rt);else if(Dei(_e,be))de[Te]=_e,de[De]=be,Te=De;else break e}}return ge}function i(de,ge){var be=de.sortIndex-ge.sortIndex;return be!==0?be:de.id-ge.id}if(typeof performance=="object"&&typeof performance.now=="function"){var A=performance;e.unstable_now=function(){return A.now()}}else{var l=Date,c=l.now();e.unstable_now=function(){return l.now()-c}}var f=[],h=[],I=1,B=null,v=3,D=!1,S=!1,R=!1,F=typeof setTimeout=="function"?setTimeout:null,N=typeof clearTimeout=="function"?clearTimeout:null,M=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function P(de){for(var ge=n(h);ge!==null;){if(ge.callback===null)r(h);else if(ge.startTime<=de)r(h),ge.sortIndex=ge.expirationTime,t(f,ge);else break;ge=n(h)}}function G(de){if(R=!1,P(de),!S)if(n(f)!==null)S=!0,ae(J);else{var ge=n(h);ge!==null&&Ce(G,ge.startTime-de)}}function J(de,ge){S=!1,R&&(R=!1,N($),$=-1),D=!0;var be=v;try{for(P(ge),B=n(f);B!==null&&(!(B.expirationTime>ge)||de&&!se());){var Te=B.callback;if(typeof Te=="function"){B.callback=null,v=B.priorityLevel;var me=Te(B.expirationTime<=ge);ge=e.unstable_now(),typeof me=="function"?B.callback=me:B===n(f)&&r(f),P(ge)}else r(f);B=n(f)}if(B!==null)var Ye=!0;else{var rt=n(h);rt!==null&&Ce(G,rt.startTime-ge),Ye=!1}return Ye}finally{B=null,v=be,D=!1}}var W=!1,q=null,$=-1,oe=5,K=-1;function se(){return!(e.unstable_now()-Kde||125Te?(de.sortIndex=be,t(h,de),n(f)===null&&de===n(h)&&(R?(N($),$=-1):R=!0,Ce(G,be-Te))):(de.sortIndex=me,t(f,de),S||D||(S=!0,ae(J))),de},e.unstable_shouldYield=se,e.unstable_wrapCallback=function(de){var ge=v;return function(){var be=v;v=ge;try{return de.apply(this,arguments)}finally{v=be}}}}(Tk),Rk.exports=Tk;var dfe=Rk.exports,ffe=x,ha=dfe;function Lt(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Mk=Object.prototype.hasOwnProperty,gfe=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,t7={},n7={};function hfe(e){return Mk.call(n7,e)?!0:Mk.call(t7,e)?!1:gfe.test(e)?n7[e]=!0:(t7[e]=!0,!1)}function pfe(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function mfe(e,t,n,r){if(t===null||typeof t>"u"||pfe(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function ms(e,t,n,r,i,A,l){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=A,this.removeEmptyString=l}var DA={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){DA[e]=new ms(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];DA[t]=new ms(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){DA[e]=new ms(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){DA[e]=new ms(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){DA[e]=new ms(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){DA[e]=new ms(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){DA[e]=new ms(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){DA[e]=new ms(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){DA[e]=new ms(e,5,!1,e.toLowerCase(),null,!1,!1)});var Nk=/[\-:]([a-z])/g;function Fk(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Nk,Fk);DA[t]=new ms(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Nk,Fk);DA[t]=new ms(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Nk,Fk);DA[t]=new ms(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){DA[e]=new ms(e,1,!1,e.toLowerCase(),null,!1,!1)}),DA.xlinkHref=new ms("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){DA[e]=new ms(e,1,!1,e.toLowerCase(),null,!0,!0)});function Ok(e,t,n,r){var i=DA.hasOwnProperty(t)?DA[t]:null;(i!==null?i.type!==0:r||!(2c||i[l]!==A[c]){var f=` -`+i[l].replace(" at new "," at ");return e.displayName&&f.includes("")&&(f=f.replace("",e.displayName)),f}while(1<=l&&0<=c);break}}}finally{Jk=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?vm(e):""}function Ife(e){switch(e.tag){case 5:return vm(e.type);case 16:return vm("Lazy");case 13:return vm("Suspense");case 19:return vm("SuspenseList");case 0:case 2:case 15:return e=zk(e.type,!1),e;case 11:return e=zk(e.type.render,!1),e;case 1:return e=zk(e.type,!0),e;default:return""}}function Wk(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Q2:return"Fragment";case b2:return"Portal";case Lk:return"Profiler";case jk:return"StrictMode";case Uk:return"Suspense";case Gk:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case o7:return(e.displayName||"Context")+".Consumer";case r7:return(e._context.displayName||"Context")+".Provider";case Pk:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Hk:return t=e.displayName||null,t!==null?t:Wk(e.type)||"Memo";case ud:t=e._payload,e=e._init;try{return Wk(e(t))}catch{}}return null}function Cfe(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Wk(t);case 8:return t===jk?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function dd(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function s7(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Efe(e){var t=s7(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,A=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(l){r=""+l,A.call(this,l)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(l){r=""+l},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function WB(e){e._valueTracker||(e._valueTracker=Efe(e))}function a7(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=s7(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function qB(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function qk(e,t){var n=t.checked;return Ei({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function l7(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=dd(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function c7(e,t){t=t.checked,t!=null&&Ok(e,"checked",t,!1)}function Xk(e,t){c7(e,t);var n=dd(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Vk(e,t.type,n):t.hasOwnProperty("defaultValue")&&Vk(e,t.type,dd(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function u7(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Vk(e,t,n){(t!=="number"||qB(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var bm=Array.isArray;function w2(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=XB.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Qm(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var wm={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Bfe=["Webkit","ms","Moz","O"];Object.keys(wm).forEach(function(e){Bfe.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),wm[t]=wm[e]})});function m7(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||wm.hasOwnProperty(e)&&wm[e]?(""+t).trim():t+"px"}function I7(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=m7(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var yfe=Ei({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function $k(e,t){if(t){if(yfe[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(Lt(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(Lt(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(Lt(61))}if(t.style!=null&&typeof t.style!="object")throw Error(Lt(62))}}function e6(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var t6=null;function n6(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var r6=null,x2=null,_2=null;function C7(e){if(e=qm(e)){if(typeof r6!="function")throw Error(Lt(280));var t=e.stateNode;t&&(t=Iy(t),r6(e.stateNode,e.type,t))}}function E7(e){x2?_2?_2.push(e):_2=[e]:x2=e}function B7(){if(x2){var e=x2,t=_2;if(_2=x2=null,C7(e),t)for(e=0;e>>=0,e===0?32:31-(Tfe(e)/Mfe|0)|0}var ey=64,ty=4194304;function Dm(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ny(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,A=e.pingedLanes,l=n&268435455;if(l!==0){var c=l&~i;c!==0?r=Dm(c):(A&=l,A!==0&&(r=Dm(A)))}else l=n&~i,l!==0?r=Dm(l):A!==0&&(r=Dm(A));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,A=t&-t,i>=A||i===16&&(A&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Sm(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Hl(t),e[t]=n}function jfe(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Lm),X7=" ",V7=!1;function K7(e,t){switch(e){case"keyup":return dge.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Z7(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var S2=!1;function gge(e,t){switch(e){case"compositionend":return Z7(t);case"keypress":return t.which!==32?null:(V7=!0,X7);case"textInput":return e=t.data,e===X7&&V7?null:e;default:return null}}function hge(e,t){if(S2)return e==="compositionend"||!B6&&K7(e,t)?(e=H7(),sy=h6=md=null,S2=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=iL(n)}}function sL(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?sL(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function aL(){for(var e=window,t=qB();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=qB(e.document)}return t}function b6(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function bge(e){var t=aL(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&sL(n.ownerDocument.documentElement,n)){if(r!==null&&b6(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,A=Math.min(r.start,i);r=r.end===void 0?A:Math.min(r.end,i),!e.extend&&A>r&&(i=r,r=A,A=i),i=AL(n,A);var l=AL(n,r);i&&l&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==l.node||e.focusOffset!==l.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),A>r?(e.addRange(t),e.extend(l.node,l.offset)):(t.setEnd(l.node,l.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,R2=null,Q6=null,Hm=null,w6=!1;function lL(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;w6||R2==null||R2!==qB(r)||(r=R2,"selectionStart"in r&&b6(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Hm&&Gm(Hm,r)||(Hm=r,r=hy(Q6,"onSelect"),0O2||(e.current=j6[O2],j6[O2]=null,O2--)}function Ko(e,t){O2++,j6[O2]=e.current,e.current=t}var Bd={},zA=Ed(Bd),Ys=Ed(!1),Kf=Bd;function j2(e,t){var n=e.type.contextTypes;if(!n)return Bd;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},A;for(A in n)i[A]=t[A];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Js(e){return e=e.childContextTypes,e!=null}function Cy(){Ai(Ys),Ai(zA)}function bL(e,t,n){if(zA.current!==Bd)throw Error(Lt(168));Ko(zA,t),Ko(Ys,n)}function QL(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(Lt(108,Cfe(e)||"Unknown",i));return Ei({},n,r)}function Ey(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Bd,Kf=zA.current,Ko(zA,e),Ko(Ys,Ys.current),!0}function wL(e,t,n){var r=e.stateNode;if(!r)throw Error(Lt(169));n?(e=QL(e,t,Kf),r.__reactInternalMemoizedMergedChildContext=e,Ai(Ys),Ai(zA),Ko(zA,e)):Ai(Ys),Ko(Ys,n)}var e0=null,By=!1,L6=!1;function xL(e){e0===null?e0=[e]:e0.push(e)}function Fge(e){By=!0,xL(e)}function yd(){if(!L6&&e0!==null){L6=!0;var e=0,t=No;try{var n=e0;for(No=1;e>=l,i-=l,t0=1<<32-Hl(t)+i|n<$?(oe=q,q=null):oe=q.sibling;var K=v(N,q,P[$],G);if(K===null){q===null&&(q=oe);break}e&&q&&K.alternate===null&&t(N,q),M=A(K,M,$),W===null?J=K:W.sibling=K,W=K,q=oe}if($===P.length)return n(N,q),hi&&$f(N,$),J;if(q===null){for(;$$?(oe=q,q=null):oe=q.sibling;var se=v(N,q,K.value,G);if(se===null){q===null&&(q=oe);break}e&&q&&se.alternate===null&&t(N,q),M=A(se,M,$),W===null?J=se:W.sibling=se,W=se,q=oe}if(K.done)return n(N,q),hi&&$f(N,$),J;if(q===null){for(;!K.done;$++,K=P.next())K=B(N,K.value,G),K!==null&&(M=A(K,M,$),W===null?J=K:W.sibling=K,W=K);return hi&&$f(N,$),J}for(q=r(N,q);!K.done;$++,K=P.next())K=D(q,N,$,K.value,G),K!==null&&(e&&K.alternate!==null&&q.delete(K.key===null?$:K.key),M=A(K,M,$),W===null?J=K:W.sibling=K,W=K);return e&&q.forEach(function(Ee){return t(N,Ee)}),hi&&$f(N,$),J}function F(N,M,P,G){if(typeof P=="object"&&P!==null&&P.type===Q2&&P.key===null&&(P=P.props.children),typeof P=="object"&&P!==null){switch(P.$$typeof){case zB:e:{for(var J=P.key,W=M;W!==null;){if(W.key===J){if(J=P.type,J===Q2){if(W.tag===7){n(N,W.sibling),M=i(W,P.props.children),M.return=N,N=M;break e}}else if(W.elementType===J||typeof J=="object"&&J!==null&&J.$$typeof===ud&&TL(J)===W.type){n(N,W.sibling),M=i(W,P.props),M.ref=Xm(N,W,P),M.return=N,N=M;break e}n(N,W);break}else t(N,W);W=W.sibling}P.type===Q2?(M=sg(P.props.children,N.mode,G,P.key),M.return=N,N=M):(G=Xy(P.type,P.key,P.props,null,N.mode,G),G.ref=Xm(N,M,P),G.return=N,N=G)}return l(N);case b2:e:{for(W=P.key;M!==null;){if(M.key===W)if(M.tag===4&&M.stateNode.containerInfo===P.containerInfo&&M.stateNode.implementation===P.implementation){n(N,M.sibling),M=i(M,P.children||[]),M.return=N,N=M;break e}else{n(N,M);break}else t(N,M);M=M.sibling}M=N3(P,N.mode,G),M.return=N,N=M}return l(N);case ud:return W=P._init,F(N,M,W(P._payload),G)}if(bm(P))return S(N,M,P,G);if(ym(P))return R(N,M,P,G);Qy(N,P)}return typeof P=="string"&&P!==""||typeof P=="number"?(P=""+P,M!==null&&M.tag===6?(n(N,M.sibling),M=i(M,P),M.return=N,N=M):(n(N,M),M=M3(P,N.mode,G),M.return=N,N=M),l(N)):n(N,M)}return F}var G2=ML(!0),NL=ML(!1),wy=Ed(null),xy=null,H2=null,J6=null;function z6(){J6=H2=xy=null}function W6(e){var t=wy.current;Ai(wy),e._currentValue=t}function q6(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Y2(e,t){xy=e,J6=H2=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(zs=!0),e.firstContext=null)}function qa(e){var t=e._currentValue;if(J6!==e)if(e={context:e,memoizedValue:t,next:null},H2===null){if(xy===null)throw Error(Lt(308));H2=e,xy.dependencies={lanes:0,firstContext:e}}else H2=H2.next=e;return t}var eg=null;function X6(e){eg===null?eg=[e]:eg.push(e)}function FL(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,X6(t)):(n.next=i.next,i.next=n),t.interleaved=n,r0(e,r)}function r0(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var vd=!1;function V6(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function OL(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function o0(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function bd(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,eo&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,r0(e,n)}return i=r.interleaved,i===null?(t.next=t,X6(r)):(t.next=i.next,i.next=t),r.interleaved=t,r0(e,n)}function _y(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,c6(e,n)}}function jL(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,A=null;if(n=n.firstBaseUpdate,n!==null){do{var l={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};A===null?i=A=l:A=A.next=l,n=n.next}while(n!==null);A===null?i=A=t:A=A.next=t}else i=A=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:A,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function ky(e,t,n,r){var i=e.updateQueue;vd=!1;var A=i.firstBaseUpdate,l=i.lastBaseUpdate,c=i.shared.pending;if(c!==null){i.shared.pending=null;var f=c,h=f.next;f.next=null,l===null?A=h:l.next=h,l=f;var I=e.alternate;I!==null&&(I=I.updateQueue,c=I.lastBaseUpdate,c!==l&&(c===null?I.firstBaseUpdate=h:c.next=h,I.lastBaseUpdate=f))}if(A!==null){var B=i.baseState;l=0,I=h=f=null,c=A;do{var v=c.lane,D=c.eventTime;if((r&v)===v){I!==null&&(I=I.next={eventTime:D,lane:0,tag:c.tag,payload:c.payload,callback:c.callback,next:null});e:{var S=e,R=c;switch(v=t,D=n,R.tag){case 1:if(S=R.payload,typeof S=="function"){B=S.call(D,B,v);break e}B=S;break e;case 3:S.flags=S.flags&-65537|128;case 0:if(S=R.payload,v=typeof S=="function"?S.call(D,B,v):S,v==null)break e;B=Ei({},B,v);break e;case 2:vd=!0}}c.callback!==null&&c.lane!==0&&(e.flags|=64,v=i.effects,v===null?i.effects=[c]:v.push(c))}else D={eventTime:D,lane:v,tag:c.tag,payload:c.payload,callback:c.callback,next:null},I===null?(h=I=D,f=B):I=I.next=D,l|=v;if(c=c.next,c===null){if(c=i.shared.pending,c===null)break;v=c,c=v.next,v.next=null,i.lastBaseUpdate=v,i.shared.pending=null}}while(!0);if(I===null&&(f=B),i.baseState=f,i.firstBaseUpdate=h,i.lastBaseUpdate=I,t=i.shared.interleaved,t!==null){i=t;do l|=i.lane,i=i.next;while(i!==t)}else A===null&&(i.shared.lanes=0);rg|=l,e.lanes=l,e.memoizedState=B}}function LL(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=t3.transition;t3.transition={};try{e(!1),t()}finally{No=n,t3.transition=r}}function oP(){return Xa().memoizedState}function Pge(e,t,n){var r=_d(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},iP(e))AP(t,n);else if(n=FL(e,t,n,r),n!==null){var i=Cs();Xl(n,e,r,i),sP(n,t,r)}}function Uge(e,t,n){var r=_d(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(iP(e))AP(t,i);else{var A=e.alternate;if(e.lanes===0&&(A===null||A.lanes===0)&&(A=t.lastRenderedReducer,A!==null))try{var l=t.lastRenderedState,c=A(l,n);if(i.hasEagerState=!0,i.eagerState=c,Yl(c,l)){var f=t.interleaved;f===null?(i.next=i,X6(t)):(i.next=f.next,f.next=i),t.interleaved=i;return}}catch{}finally{}n=FL(e,t,i,r),n!==null&&(i=Cs(),Xl(n,e,r,i),sP(n,t,r))}}function iP(e){var t=e.alternate;return e===yi||t!==null&&t===yi}function AP(e,t){$m=Ry=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function sP(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,c6(e,n)}}var Ny={readContext:qa,useCallback:WA,useContext:WA,useEffect:WA,useImperativeHandle:WA,useInsertionEffect:WA,useLayoutEffect:WA,useMemo:WA,useReducer:WA,useRef:WA,useState:WA,useDebugValue:WA,useDeferredValue:WA,useTransition:WA,useMutableSource:WA,useSyncExternalStore:WA,useId:WA,unstable_isNewReconciler:!1},Gge={readContext:qa,useCallback:function(e,t){return Gc().memoizedState=[e,t===void 0?null:t],e},useContext:qa,useEffect:VL,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Ty(4194308,4,$L.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ty(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ty(4,2,e,t)},useMemo:function(e,t){var n=Gc();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Gc();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Pge.bind(null,yi,e),[r.memoizedState,e]},useRef:function(e){var t=Gc();return e={current:e},t.memoizedState=e},useState:qL,useDebugValue:a3,useDeferredValue:function(e){return Gc().memoizedState=e},useTransition:function(){var e=qL(!1),t=e[0];return e=Lge.bind(null,e[1]),Gc().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=yi,i=Gc();if(hi){if(n===void 0)throw Error(Lt(407));n=n()}else{if(n=t(),BA===null)throw Error(Lt(349));ng&30||HL(r,t,n)}i.memoizedState=n;var A={value:n,getSnapshot:t};return i.queue=A,VL(JL.bind(null,r,A,e),[e]),r.flags|=2048,nI(9,YL.bind(null,r,A,n,t),void 0,null),n},useId:function(){var e=Gc(),t=BA.identifierPrefix;if(hi){var n=n0,r=t0;n=(r&~(1<<32-Hl(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=eI++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),n==="select"&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[Pc]=t,e[Wm]=r,xP(e,t,!1,!1),t.stateNode=e;e:{switch(l=e6(n,r),n){case"dialog":ii("cancel",e),ii("close",e),i=r;break;case"iframe":case"object":case"embed":ii("load",e),i=r;break;case"video":case"audio":for(i=0;iX2&&(t.flags|=128,r=!0,rI(A,!1),t.lanes=4194304)}else{if(!r)if(e=Dy(l),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),rI(A,!0),A.tail===null&&A.tailMode==="hidden"&&!l.alternate&&!hi)return qA(t),null}else 2*Pi()-A.renderingStartTime>X2&&n!==1073741824&&(t.flags|=128,r=!0,rI(A,!1),t.lanes=4194304);A.isBackwards?(l.sibling=t.child,t.child=l):(n=A.last,n!==null?n.sibling=l:t.child=l,A.last=l)}return A.tail!==null?(t=A.tail,A.rendering=t,A.tail=t.sibling,A.renderingStartTime=Pi(),t.sibling=null,n=Bi.current,Ko(Bi,r?n&1|2:n&1),t):(qA(t),null);case 22:case 23:return S3(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Ca&1073741824&&(qA(t),t.subtreeFlags&6&&(t.flags|=8192)):qA(t),null;case 24:return null;case 25:return null}throw Error(Lt(156,t.tag))}function Vge(e,t){switch(U6(t),t.tag){case 1:return Js(t.type)&&Cy(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return J2(),Ai(Ys),Ai(zA),e3(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Z6(t),null;case 13:if(Ai(Bi),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Lt(340));U2()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ai(Bi),null;case 4:return J2(),null;case 10:return W6(t.type._context),null;case 22:case 23:return S3(),null;case 24:return null;default:return null}}var Ly=!1,XA=!1,Kge=typeof WeakSet=="function"?WeakSet:Set,hn=null;function W2(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Di(e,t,r)}else n.current=null}function DP(e,t,n){try{n()}catch(r){Di(e,t,r)}}var SP=!1;function Zge(e,t){if(R6=iy,e=aL(),b6(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,A=r.focusNode;r=r.focusOffset;try{n.nodeType,A.nodeType}catch{n=null;break e}var l=0,c=-1,f=-1,h=0,I=0,B=e,v=null;t:for(;;){for(var D;B!==n||i!==0&&B.nodeType!==3||(c=l+i),B!==A||r!==0&&B.nodeType!==3||(f=l+r),B.nodeType===3&&(l+=B.nodeValue.length),(D=B.firstChild)!==null;)v=B,B=D;for(;;){if(B===e)break t;if(v===n&&++h===i&&(c=l),v===A&&++I===r&&(f=l),(D=B.nextSibling)!==null)break;B=v,v=B.parentNode}B=D}n=c===-1||f===-1?null:{start:c,end:f}}else n=null}n=n||{start:0,end:0}}else n=null;for(T6={focusedElem:e,selectionRange:n},iy=!1,hn=t;hn!==null;)if(t=hn,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,hn=e;else for(;hn!==null;){t=hn;try{var S=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(S!==null){var R=S.memoizedProps,F=S.memoizedState,N=t.stateNode,M=N.getSnapshotBeforeUpdate(t.elementType===t.type?R:zl(t.type,R),F);N.__reactInternalSnapshotBeforeUpdate=M}break;case 3:var P=t.stateNode.containerInfo;P.nodeType===1?P.textContent="":P.nodeType===9&&P.documentElement&&P.removeChild(P.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Lt(163))}}catch(G){Di(t,t.return,G)}if(e=t.sibling,e!==null){e.return=t.return,hn=e;break}hn=t.return}return S=SP,SP=!1,S}function oI(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var A=i.destroy;i.destroy=void 0,A!==void 0&&DP(t,n,A)}i=i.next}while(i!==r)}}function Py(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function E3(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function RP(e){var t=e.alternate;t!==null&&(e.alternate=null,RP(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Pc],delete t[Wm],delete t[O6],delete t[Mge],delete t[Nge])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function TP(e){return e.tag===5||e.tag===3||e.tag===4}function MP(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||TP(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function B3(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=my));else if(r!==4&&(e=e.child,e!==null))for(B3(e,t,n),e=e.sibling;e!==null;)B3(e,t,n),e=e.sibling}function y3(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(y3(e,t,n),e=e.sibling;e!==null;)y3(e,t,n),e=e.sibling}var SA=null,Wl=!1;function Qd(e,t,n){for(n=n.child;n!==null;)NP(e,t,n),n=n.sibling}function NP(e,t,n){if(Lc&&typeof Lc.onCommitFiberUnmount=="function")try{Lc.onCommitFiberUnmount($B,n)}catch{}switch(n.tag){case 5:XA||W2(n,t);case 6:var r=SA,i=Wl;SA=null,Qd(e,t,n),SA=r,Wl=i,SA!==null&&(Wl?(e=SA,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):SA.removeChild(n.stateNode));break;case 18:SA!==null&&(Wl?(e=SA,n=n.stateNode,e.nodeType===8?F6(e.parentNode,n):e.nodeType===1&&F6(e,n),Fm(e)):F6(SA,n.stateNode));break;case 4:r=SA,i=Wl,SA=n.stateNode.containerInfo,Wl=!0,Qd(e,t,n),SA=r,Wl=i;break;case 0:case 11:case 14:case 15:if(!XA&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var A=i,l=A.destroy;A=A.tag,l!==void 0&&(A&2||A&4)&&DP(n,t,l),i=i.next}while(i!==r)}Qd(e,t,n);break;case 1:if(!XA&&(W2(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(c){Di(n,t,c)}Qd(e,t,n);break;case 21:Qd(e,t,n);break;case 22:n.mode&1?(XA=(r=XA)||n.memoizedState!==null,Qd(e,t,n),XA=r):Qd(e,t,n);break;default:Qd(e,t,n)}}function FP(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Kge),t.forEach(function(r){var i=she.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function ql(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=l),r&=~A}if(r=i,r=Pi()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*ehe(r/1960))-r,10e?16:e,xd===null)var r=!1;else{if(e=xd,xd=null,Jy=0,eo&6)throw Error(Lt(331));var i=eo;for(eo|=4,hn=e.current;hn!==null;){var A=hn,l=A.child;if(hn.flags&16){var c=A.deletions;if(c!==null){for(var f=0;fPi()-Q3?ig(e,0):b3|=n),qs(e,t)}function XP(e,t){t===0&&(e.mode&1?(t=ty,ty<<=1,!(ty&130023424)&&(ty=4194304)):t=1);var n=Cs();e=r0(e,t),e!==null&&(Sm(e,t,n),qs(e,n))}function Ahe(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),XP(e,n)}function she(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(Lt(314))}r!==null&&r.delete(t),XP(e,n)}var VP;VP=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Ys.current)zs=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return zs=!1,qge(e,t,n);zs=!!(e.flags&131072)}else zs=!1,hi&&t.flags&1048576&&_L(t,vy,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;jy(e,t),e=t.pendingProps;var i=j2(t,zA.current);Y2(t,n),i=r3(null,t,r,e,i,n);var A=o3();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Js(r)?(A=!0,Ey(t)):A=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,V6(t),i.updater=Fy,t.stateNode=i,i._reactInternals=t,c3(t,r,e,n),t=g3(null,t,r,!0,A,n)):(t.tag=0,hi&&A&&P6(t),Is(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(jy(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=lhe(r),e=zl(r,e),i){case 0:t=f3(null,t,r,e,n);break e;case 1:t=BP(null,t,r,e,n);break e;case 11:t=pP(null,t,r,e,n);break e;case 14:t=mP(null,t,r,zl(r.type,e),n);break e}throw Error(Lt(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:zl(r,i),f3(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:zl(r,i),BP(e,t,r,i,n);case 3:e:{if(yP(t),e===null)throw Error(Lt(387));r=t.pendingProps,A=t.memoizedState,i=A.element,OL(e,t),ky(t,r,null,n);var l=t.memoizedState;if(r=l.element,A.isDehydrated)if(A={element:r,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},t.updateQueue.baseState=A,t.memoizedState=A,t.flags&256){i=z2(Error(Lt(423)),t),t=vP(e,t,r,n,i);break e}else if(r!==i){i=z2(Error(Lt(424)),t),t=vP(e,t,r,n,i);break e}else for(Ia=Cd(t.stateNode.containerInfo.firstChild),ma=t,hi=!0,Jl=null,n=NL(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(U2(),r===i){t=i0(e,t,n);break e}Is(e,t,r,n)}t=t.child}return t;case 5:return PL(t),e===null&&H6(t),r=t.type,i=t.pendingProps,A=e!==null?e.memoizedProps:null,l=i.children,M6(r,i)?l=null:A!==null&&M6(r,A)&&(t.flags|=32),EP(e,t),Is(e,t,l,n),t.child;case 6:return e===null&&H6(t),null;case 13:return bP(e,t,n);case 4:return K6(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=G2(t,null,r,n):Is(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:zl(r,i),pP(e,t,r,i,n);case 7:return Is(e,t,t.pendingProps,n),t.child;case 8:return Is(e,t,t.pendingProps.children,n),t.child;case 12:return Is(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,A=t.memoizedProps,l=i.value,Ko(wy,r._currentValue),r._currentValue=l,A!==null)if(Yl(A.value,l)){if(A.children===i.children&&!Ys.current){t=i0(e,t,n);break e}}else for(A=t.child,A!==null&&(A.return=t);A!==null;){var c=A.dependencies;if(c!==null){l=A.child;for(var f=c.firstContext;f!==null;){if(f.context===r){if(A.tag===1){f=o0(-1,n&-n),f.tag=2;var h=A.updateQueue;if(h!==null){h=h.shared;var I=h.pending;I===null?f.next=f:(f.next=I.next,I.next=f),h.pending=f}}A.lanes|=n,f=A.alternate,f!==null&&(f.lanes|=n),q6(A.return,n,t),c.lanes|=n;break}f=f.next}}else if(A.tag===10)l=A.type===t.type?null:A.child;else if(A.tag===18){if(l=A.return,l===null)throw Error(Lt(341));l.lanes|=n,c=l.alternate,c!==null&&(c.lanes|=n),q6(l,n,t),l=A.sibling}else l=A.child;if(l!==null)l.return=A;else for(l=A;l!==null;){if(l===t){l=null;break}if(A=l.sibling,A!==null){A.return=l.return,l=A;break}l=l.return}A=l}Is(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,Y2(t,n),i=qa(i),r=r(i),t.flags|=1,Is(e,t,r,n),t.child;case 14:return r=t.type,i=zl(r,t.pendingProps),i=zl(r.type,i),mP(e,t,r,i,n);case 15:return IP(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:zl(r,i),jy(e,t),t.tag=1,Js(r)?(e=!0,Ey(t)):e=!1,Y2(t,n),lP(t,r,i),c3(t,r,i,n),g3(null,t,r,!0,e,n);case 19:return wP(e,t,n);case 22:return CP(e,t,n)}throw Error(Lt(156,t.tag))};function KP(e,t){return k7(e,t)}function ahe(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ka(e,t,n,r){return new ahe(e,t,n,r)}function T3(e){return e=e.prototype,!(!e||!e.isReactComponent)}function lhe(e){if(typeof e=="function")return T3(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Pk)return 11;if(e===Hk)return 14}return 2}function Dd(e,t){var n=e.alternate;return n===null?(n=Ka(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Xy(e,t,n,r,i,A){var l=2;if(r=e,typeof e=="function")T3(e)&&(l=1);else if(typeof e=="string")l=5;else e:switch(e){case Q2:return sg(n.children,i,A,t);case jk:l=8,i|=8;break;case Lk:return e=Ka(12,n,t,i|2),e.elementType=Lk,e.lanes=A,e;case Uk:return e=Ka(13,n,t,i),e.elementType=Uk,e.lanes=A,e;case Gk:return e=Ka(19,n,t,i),e.elementType=Gk,e.lanes=A,e;case i7:return Vy(n,i,A,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case r7:l=10;break e;case o7:l=9;break e;case Pk:l=11;break e;case Hk:l=14;break e;case ud:l=16,r=null;break e}throw Error(Lt(130,e==null?e:typeof e,""))}return t=Ka(l,n,t,i),t.elementType=e,t.type=r,t.lanes=A,t}function sg(e,t,n,r){return e=Ka(7,e,r,t),e.lanes=n,e}function Vy(e,t,n,r){return e=Ka(22,e,r,t),e.elementType=i7,e.lanes=n,e.stateNode={isHidden:!1},e}function M3(e,t,n){return e=Ka(6,e,null,t),e.lanes=n,e}function N3(e,t,n){return t=Ka(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function che(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=l6(0),this.expirationTimes=l6(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=l6(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function F3(e,t,n,r,i,A,l,c,f){return e=new che(e,t,n,c,f),t===1?(t=1,A===!0&&(t|=8)):t=0,A=Ka(3,null,null,t),e.current=A,A.stateNode=e,A.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},V6(A),e}function uhe(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(rU)}catch(e){console.error(e)}}rU(),Sk.exports=Hs;var Yc=Sk.exports;const oU=Ci(Yc);var iU=Yc;JB.createRoot=iU.createRoot,JB.hydrateRoot=iU.hydrateRoot;function AU(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Vl(...e){return t=>{let n=!1;const r=e.map(i=>{const A=AU(i,t);return!n&&typeof A=="function"&&(n=!0),A});if(n)return()=>{for(let i=0;i{const{children:A,...l}=r,c=x.Children.toArray(A),f=c.find(Ihe);if(f){const h=f.props.children,I=c.map(B=>B===f?x.Children.count(h)>1?x.Children.only(null):x.isValidElement(h)?h.props.children:null:B);return p.jsx(t,{...l,ref:i,children:x.isValidElement(h)?x.cloneElement(h,void 0,I):null})}return p.jsx(t,{...l,ref:i,children:A})});return n.displayName=`${e}.Slot`,n}var Sd=Ho("Slot");function phe(e){const t=x.forwardRef((n,r)=>{const{children:i,...A}=n;if(x.isValidElement(i)){const l=Ehe(i),c=Che(A,i.props);return i.type!==x.Fragment&&(c.ref=r?Vl(r,l):l),x.cloneElement(i,c)}return x.Children.count(i)>1?x.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var sU=Symbol("radix.slottable");function aU(e){const t=({children:n})=>p.jsx(p.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=sU,t}var mhe=aU("Slottable");function Ihe(e){return x.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===sU}function Che(e,t){const n={...t};for(const r in t){const i=e[r],A=t[r];/^on[A-Z]/.test(r)?i&&A?n[r]=(...l)=>{const c=A(...l);return i(...l),c}:i&&(n[r]=i):r==="style"?n[r]={...i,...A}:r==="className"&&(n[r]=[i,A].filter(Boolean).join(" "))}return{...e,...n}}function Ehe(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Bhe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],yhe=Bhe.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),lU=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),vhe="VisuallyHidden",cU=x.forwardRef((e,t)=>p.jsx(yhe.span,{...e,ref:t,style:{...lU,...e.style}}));cU.displayName=vhe;var uU=cU;function bhe(e,t){const n=x.createContext(t),r=A=>{const{children:l,...c}=A,f=x.useMemo(()=>c,Object.values(c));return p.jsx(n.Provider,{value:f,children:l})};r.displayName=e+"Provider";function i(A){const l=x.useContext(n);if(l)return l;if(t!==void 0)return t;throw new Error(`\`${A}\` must be used within \`${e}\``)}return[r,i]}function Xs(e,t=[]){let n=[];function r(A,l){const c=x.createContext(l),f=n.length;n=[...n,l];const h=B=>{var N;const{scope:v,children:D,...S}=B,R=((N=v==null?void 0:v[e])==null?void 0:N[f])||c,F=x.useMemo(()=>S,Object.values(S));return p.jsx(R.Provider,{value:F,children:D})};h.displayName=A+"Provider";function I(B,v){var R;const D=((R=v==null?void 0:v[e])==null?void 0:R[f])||c,S=x.useContext(D);if(S)return S;if(l!==void 0)return l;throw new Error(`\`${B}\` must be used within \`${A}\``)}return[h,I]}const i=()=>{const A=n.map(l=>x.createContext(l));return function(l){const c=(l==null?void 0:l[e])||A;return x.useMemo(()=>({[`__scope${e}`]:{...l,[e]:c}}),[l,c])}};return i.scopeName=e,[r,Qhe(i,...t)]}function Qhe(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(i){const A=r.reduce((l,{useScope:c,scopeName:f})=>{const h=c(i)[`__scope${f}`];return{...l,...h}},{});return x.useMemo(()=>({[`__scope${t.scopeName}`]:A}),[A])}};return n.scopeName=t.scopeName,n}function rv(e){const t=e+"CollectionProvider",[n,r]=Xs(t),[i,A]=n(t,{collectionRef:{current:null},itemMap:new Map}),l=R=>{const{scope:F,children:N}=R,M=Et.useRef(null),P=Et.useRef(new Map).current;return p.jsx(i,{scope:F,itemMap:P,collectionRef:M,children:N})};l.displayName=t;const c=e+"CollectionSlot",f=Ho(c),h=Et.forwardRef((R,F)=>{const{scope:N,children:M}=R,P=A(c,N),G=ar(F,P.collectionRef);return p.jsx(f,{ref:G,children:M})});h.displayName=c;const I=e+"CollectionItemSlot",B="data-radix-collection-item",v=Ho(I),D=Et.forwardRef((R,F)=>{const{scope:N,children:M,...P}=R,G=Et.useRef(null),J=ar(F,G),W=A(I,N);return Et.useEffect(()=>(W.itemMap.set(G,{ref:G,...P}),()=>void W.itemMap.delete(G))),p.jsx(v,{[B]:"",ref:J,children:M})});D.displayName=I;function S(R){const F=A(e+"CollectionConsumer",R);return Et.useCallback(()=>{const N=F.collectionRef.current;if(!N)return[];const M=Array.from(N.querySelectorAll(`[${B}]`));return Array.from(F.itemMap.values()).sort((P,G)=>M.indexOf(P.ref.current)-M.indexOf(G.ref.current))},[F.collectionRef,F.itemMap])}return[{Provider:l,Slot:h,ItemSlot:D},S,r]}function Vt(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e==null||e(r),n===!1||!r.defaultPrevented)return t==null?void 0:t(r)}}var TA=globalThis!=null&&globalThis.document?x.useLayoutEffect:()=>{},whe=y2[" useInsertionEffect ".trim().toString()]||TA;function Za({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[i,A,l]=xhe({defaultProp:t,onChange:n}),c=e!==void 0,f=c?e:i;{const I=x.useRef(e!==void 0);x.useEffect(()=>{const B=I.current;B!==c&&console.warn(`${r} is changing from ${B?"controlled":"uncontrolled"} to ${c?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),I.current=c},[c,r])}const h=x.useCallback(I=>{var B;if(c){const v=_he(I)?I(e):I;v!==e&&((B=l.current)==null||B.call(l,v))}else A(I)},[c,e,A,l]);return[f,h]}function xhe({defaultProp:e,onChange:t}){const[n,r]=x.useState(e),i=x.useRef(n),A=x.useRef(t);return whe(()=>{A.current=t},[t]),x.useEffect(()=>{var l;i.current!==n&&((l=A.current)==null||l.call(A,n),i.current=n)},[n,i]),[n,r,A]}function _he(e){return typeof e=="function"}function khe(e,t){return x.useReducer((n,r)=>t[n][r]??n,e)}var VA=e=>{const{present:t,children:n}=e,r=Dhe(t),i=typeof n=="function"?n({present:r.isPresent}):x.Children.only(n),A=ar(r.ref,She(i));return typeof n=="function"||r.isPresent?x.cloneElement(i,{ref:A}):null};VA.displayName="Presence";function Dhe(e){const[t,n]=x.useState(),r=x.useRef(null),i=x.useRef(e),A=x.useRef("none"),l=e?"mounted":"unmounted",[c,f]=khe(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return x.useEffect(()=>{const h=ov(r.current);A.current=c==="mounted"?h:"none"},[c]),TA(()=>{const h=r.current,I=i.current;if(I!==e){const B=A.current,v=ov(h);e?f("MOUNT"):v==="none"||(h==null?void 0:h.display)==="none"?f("UNMOUNT"):f(I&&B!==v?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,f]),TA(()=>{if(t){let h;const I=t.ownerDocument.defaultView??window,B=D=>{const S=ov(r.current).includes(CSS.escape(D.animationName));if(D.target===t&&S&&(f("ANIMATION_END"),!i.current)){const R=t.style.animationFillMode;t.style.animationFillMode="forwards",h=I.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=R)})}},v=D=>{D.target===t&&(A.current=ov(r.current))};return t.addEventListener("animationstart",v),t.addEventListener("animationcancel",B),t.addEventListener("animationend",B),()=>{I.clearTimeout(h),t.removeEventListener("animationstart",v),t.removeEventListener("animationcancel",B),t.removeEventListener("animationend",B)}}else f("ANIMATION_END")},[t,f]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:x.useCallback(h=>{r.current=h?getComputedStyle(h):null,n(h)},[])}}function ov(e){return(e==null?void 0:e.animationName)||"none"}function She(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Rhe=y2[" useId ".trim().toString()]||(()=>{}),The=0;function MA(e){const[t,n]=x.useState(Rhe());return TA(()=>{n(r=>r??String(The++))},[e]),t?`radix-${t}`:""}var dU=x.createContext(void 0),Mhe=e=>{const{dir:t,children:n}=e;return p.jsx(dU.Provider,{value:t,children:n})};function K2(e){const t=x.useContext(dU);return e||t||"ltr"}var Nhe=Mhe,Fhe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],fU=Fhe.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Ohe(e,t){e&&Yc.flushSync(()=>e.dispatchEvent(t))}function NA(e){const t=x.useRef(e);return x.useEffect(()=>{t.current=e}),x.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function jhe(e,t=globalThis==null?void 0:globalThis.document){const n=NA(e);x.useEffect(()=>{const r=i=>{i.key==="Escape"&&n(i)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var Lhe="DismissableLayer",P3="dismissableLayer.update",Phe="dismissableLayer.pointerDownOutside",Uhe="dismissableLayer.focusOutside",gU,hU=x.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Z2=x.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:A,onInteractOutside:l,onDismiss:c,...f}=e,h=x.useContext(hU),[I,B]=x.useState(null),v=(I==null?void 0:I.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,D]=x.useState({}),S=ar(t,q=>B(q)),R=Array.from(h.layers),[F]=[...h.layersWithOutsidePointerEventsDisabled].slice(-1),N=R.indexOf(F),M=I?R.indexOf(I):-1,P=h.layersWithOutsidePointerEventsDisabled.size>0,G=M>=N,J=Yhe(q=>{const $=q.target,oe=[...h.branches].some(K=>K.contains($));!G||oe||(i==null||i(q),l==null||l(q),q.defaultPrevented||(c==null||c()))},v),W=Jhe(q=>{const $=q.target;[...h.branches].some(oe=>oe.contains($))||(A==null||A(q),l==null||l(q),q.defaultPrevented||(c==null||c()))},v);return jhe(q=>{M===h.layers.size-1&&(r==null||r(q),!q.defaultPrevented&&c&&(q.preventDefault(),c()))},v),x.useEffect(()=>{if(I)return n&&(h.layersWithOutsidePointerEventsDisabled.size===0&&(gU=v.body.style.pointerEvents,v.body.style.pointerEvents="none"),h.layersWithOutsidePointerEventsDisabled.add(I)),h.layers.add(I),pU(),()=>{n&&h.layersWithOutsidePointerEventsDisabled.size===1&&(v.body.style.pointerEvents=gU)}},[I,v,n,h]),x.useEffect(()=>()=>{I&&(h.layers.delete(I),h.layersWithOutsidePointerEventsDisabled.delete(I),pU())},[I,h]),x.useEffect(()=>{const q=()=>D({});return document.addEventListener(P3,q),()=>document.removeEventListener(P3,q)},[]),p.jsx(fU.div,{...f,ref:S,style:{pointerEvents:P?G?"auto":"none":void 0,...e.style},onFocusCapture:Vt(e.onFocusCapture,W.onFocusCapture),onBlurCapture:Vt(e.onBlurCapture,W.onBlurCapture),onPointerDownCapture:Vt(e.onPointerDownCapture,J.onPointerDownCapture)})});Z2.displayName=Lhe;var Ghe="DismissableLayerBranch",Hhe=x.forwardRef((e,t)=>{const n=x.useContext(hU),r=x.useRef(null),i=ar(t,r);return x.useEffect(()=>{const A=r.current;if(A)return n.branches.add(A),()=>{n.branches.delete(A)}},[n.branches]),p.jsx(fU.div,{...e,ref:i})});Hhe.displayName=Ghe;function Yhe(e,t=globalThis==null?void 0:globalThis.document){const n=NA(e),r=x.useRef(!1),i=x.useRef(()=>{});return x.useEffect(()=>{const A=c=>{if(c.target&&!r.current){let f=function(){mU(Phe,n,h,{discrete:!0})};const h={originalEvent:c};c.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=f,t.addEventListener("click",i.current,{once:!0})):f()}else t.removeEventListener("click",i.current);r.current=!1},l=window.setTimeout(()=>{t.addEventListener("pointerdown",A)},0);return()=>{window.clearTimeout(l),t.removeEventListener("pointerdown",A),t.removeEventListener("click",i.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function Jhe(e,t=globalThis==null?void 0:globalThis.document){const n=NA(e),r=x.useRef(!1);return x.useEffect(()=>{const i=A=>{A.target&&!r.current&&mU(Uhe,n,{originalEvent:A},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function pU(){const e=new CustomEvent(P3);document.dispatchEvent(e)}function mU(e,t,n,{discrete:r}){const i=n.originalEvent.target,A=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?Ohe(i,A):i.dispatchEvent(A)}var zhe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Whe=zhe.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),U3="focusScope.autoFocusOnMount",G3="focusScope.autoFocusOnUnmount",IU={bubbles:!1,cancelable:!0},qhe="FocusScope",lI=x.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:A,...l}=e,[c,f]=x.useState(null),h=NA(i),I=NA(A),B=x.useRef(null),v=ar(t,R=>f(R)),D=x.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;x.useEffect(()=>{if(r){let R=function(P){if(D.paused||!c)return;const G=P.target;c.contains(G)?B.current=G:Rd(B.current,{select:!0})},F=function(P){if(D.paused||!c)return;const G=P.relatedTarget;G!==null&&(c.contains(G)||Rd(B.current,{select:!0}))},N=function(P){if(document.activeElement===document.body)for(const G of P)G.removedNodes.length>0&&Rd(c)};document.addEventListener("focusin",R),document.addEventListener("focusout",F);const M=new MutationObserver(N);return c&&M.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",R),document.removeEventListener("focusout",F),M.disconnect()}}},[r,c,D.paused]),x.useEffect(()=>{if(c){BU.add(D);const R=document.activeElement;if(!c.contains(R)){const F=new CustomEvent(U3,IU);c.addEventListener(U3,h),c.dispatchEvent(F),F.defaultPrevented||(Xhe(e2e(CU(c)),{select:!0}),document.activeElement===R&&Rd(c))}return()=>{c.removeEventListener(U3,h),setTimeout(()=>{const F=new CustomEvent(G3,IU);c.addEventListener(G3,I),c.dispatchEvent(F),F.defaultPrevented||Rd(R??document.body,{select:!0}),c.removeEventListener(G3,I),BU.remove(D)},0)}}},[c,h,I,D]);const S=x.useCallback(R=>{if(!n&&!r||D.paused)return;const F=R.key==="Tab"&&!R.altKey&&!R.ctrlKey&&!R.metaKey,N=document.activeElement;if(F&&N){const M=R.currentTarget,[P,G]=Vhe(M);P&&G?!R.shiftKey&&N===G?(R.preventDefault(),n&&Rd(P,{select:!0})):R.shiftKey&&N===P&&(R.preventDefault(),n&&Rd(G,{select:!0})):N===M&&R.preventDefault()}},[n,r,D.paused]);return p.jsx(Whe.div,{tabIndex:-1,...l,ref:v,onKeyDown:S})});lI.displayName=qhe;function Xhe(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(Rd(r,{select:t}),document.activeElement!==n)return}function Vhe(e){const t=CU(e),n=EU(t,e),r=EU(t.reverse(),e);return[n,r]}function CU(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const i=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||i?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function EU(e,t){for(const n of e)if(!Khe(n,{upTo:t}))return n}function Khe(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Zhe(e){return e instanceof HTMLInputElement&&"select"in e}function Rd(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Zhe(e)&&t&&e.select()}}var BU=$he();function $he(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=yU(e,t),e.unshift(t)},remove(t){var n;e=yU(e,t),(n=e[0])==null||n.resume()}}}function yU(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function e2e(e){return e.filter(t=>t.tagName!=="A")}var t2e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],n2e=t2e.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),r2e="Portal",ag=x.forwardRef((e,t)=>{var c;const{container:n,...r}=e,[i,A]=x.useState(!1);TA(()=>A(!0),[]);const l=n||i&&((c=globalThis==null?void 0:globalThis.document)==null?void 0:c.body);return l?oU.createPortal(p.jsx(n2e.div,{...r,ref:t}),l):null});ag.displayName=r2e;var vU=ag,o2e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],cI=o2e.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),H3=0;function iv(){x.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??bU()),document.body.insertAdjacentElement("beforeend",e[1]??bU()),H3++,()=>{H3===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),H3--}},[])}function bU(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var Jc=function(){return Jc=Object.assign||function(e){for(var t,n=1,r=arguments.length;n"u")return B2e;var t=y2e(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},b2e=kU(),$2="data-scroll-locked",Q2e=function(e,t,n,r){var i=e.left,A=e.top,l=e.right,c=e.gap;return n===void 0&&(n="margin"),` - .`.concat(A2e,` { - overflow: hidden `).concat(r,`; - padding-right: `).concat(c,"px ").concat(r,`; - } - body[`).concat($2,`] { - overflow: hidden `).concat(r,`; - overscroll-behavior: contain; - `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` - padding-left: `.concat(i,`px; - padding-top: `).concat(A,`px; - padding-right: `).concat(l,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(c,"px ").concat(r,`; - `),n==="padding"&&"padding-right: ".concat(c,"px ").concat(r,";")].filter(Boolean).join(""),` - } - - .`).concat(Av,` { - right: `).concat(c,"px ").concat(r,`; - } - - .`).concat(sv,` { - margin-right: `).concat(c,"px ").concat(r,`; - } - - .`).concat(Av," .").concat(Av,` { - right: 0 `).concat(r,`; - } - - .`).concat(sv," .").concat(sv,` { - margin-right: 0 `).concat(r,`; - } - - body[`).concat($2,`] { - `).concat(s2e,": ").concat(c,`px; - } -`)},DU=function(){var e=parseInt(document.body.getAttribute($2)||"0",10);return isFinite(e)?e:0},w2e=function(){x.useEffect(function(){return document.body.setAttribute($2,(DU()+1).toString()),function(){var e=DU()-1;e<=0?document.body.removeAttribute($2):document.body.setAttribute($2,e.toString())}},[])},x2e=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?"margin":r;w2e();var A=x.useMemo(function(){return v2e(i)},[i]);return x.createElement(b2e,{styles:Q2e(A,!t,i,n?"":"!important")})},W3=!1;if(typeof window<"u")try{var lv=Object.defineProperty({},"passive",{get:function(){return W3=!0,!0}});window.addEventListener("test",lv,lv),window.removeEventListener("test",lv,lv)}catch{W3=!1}var ep=W3?{passive:!1}:!1,_2e=function(e){return e.tagName==="TEXTAREA"},SU=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!_2e(e)&&n[t]==="visible")},k2e=function(e){return SU(e,"overflowY")},D2e=function(e){return SU(e,"overflowX")},RU=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var i=TU(e,r);if(i){var A=MU(e,r),l=A[1],c=A[2];if(l>c)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},S2e=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},R2e=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},TU=function(e,t){return e==="v"?k2e(t):D2e(t)},MU=function(e,t){return e==="v"?S2e(t):R2e(t)},T2e=function(e,t){return e==="h"&&t==="rtl"?-1:1},M2e=function(e,t,n,r,i){var A=T2e(e,window.getComputedStyle(t).direction),l=A*r,c=n.target,f=t.contains(c),h=!1,I=l>0,B=0,v=0;do{if(!c)break;var D=MU(e,c),S=D[0],R=D[1],F=D[2],N=R-F-A*S;(S||N)&&TU(e,c)&&(B+=N,v+=S);var M=c.parentNode;c=M&&M.nodeType===Node.DOCUMENT_FRAGMENT_NODE?M.host:M}while(!f&&c!==document.body||f&&(t.contains(c)||t===c));return(I&&Math.abs(B)<1||!I&&Math.abs(v)<1)&&(h=!0),h},cv=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},NU=function(e){return[e.deltaX,e.deltaY]},FU=function(e){return e&&"current"in e?e.current:e},N2e=function(e,t){return e[0]===t[0]&&e[1]===t[1]},F2e=function(e){return` - .block-interactivity-`.concat(e,` {pointer-events: none;} - .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},O2e=0,tp=[];function j2e(e){var t=x.useRef([]),n=x.useRef([0,0]),r=x.useRef(),i=x.useState(O2e++)[0],A=x.useState(kU)[0],l=x.useRef(e);x.useEffect(function(){l.current=e},[e]),x.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var R=i2e([e.lockRef.current],(e.shards||[]).map(FU),!0).filter(Boolean);return R.forEach(function(F){return F.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),R.forEach(function(F){return F.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var c=x.useCallback(function(R,F){if("touches"in R&&R.touches.length===2||R.type==="wheel"&&R.ctrlKey)return!l.current.allowPinchZoom;var N=cv(R),M=n.current,P="deltaX"in R?R.deltaX:M[0]-N[0],G="deltaY"in R?R.deltaY:M[1]-N[1],J,W=R.target,q=Math.abs(P)>Math.abs(G)?"h":"v";if("touches"in R&&q==="h"&&W.type==="range")return!1;var $=RU(q,W);if(!$)return!0;if($?J=q:(J=q==="v"?"h":"v",$=RU(q,W)),!$)return!1;if(!r.current&&"changedTouches"in R&&(P||G)&&(r.current=J),!J)return!0;var oe=r.current||J;return M2e(oe,F,R,oe==="h"?P:G)},[]),f=x.useCallback(function(R){var F=R;if(!(!tp.length||tp[tp.length-1]!==A)){var N="deltaY"in F?NU(F):cv(F),M=t.current.filter(function(J){return J.name===F.type&&(J.target===F.target||F.target===J.shadowParent)&&N2e(J.delta,N)})[0];if(M&&M.should){F.cancelable&&F.preventDefault();return}if(!M){var P=(l.current.shards||[]).map(FU).filter(Boolean).filter(function(J){return J.contains(F.target)}),G=P.length>0?c(F,P[0]):!l.current.noIsolation;G&&F.cancelable&&F.preventDefault()}}},[]),h=x.useCallback(function(R,F,N,M){var P={name:R,delta:F,target:N,should:M,shadowParent:L2e(N)};t.current.push(P),setTimeout(function(){t.current=t.current.filter(function(G){return G!==P})},1)},[]),I=x.useCallback(function(R){n.current=cv(R),r.current=void 0},[]),B=x.useCallback(function(R){h(R.type,NU(R),R.target,c(R,e.lockRef.current))},[]),v=x.useCallback(function(R){h(R.type,cv(R),R.target,c(R,e.lockRef.current))},[]);x.useEffect(function(){return tp.push(A),e.setCallbacks({onScrollCapture:B,onWheelCapture:B,onTouchMoveCapture:v}),document.addEventListener("wheel",f,ep),document.addEventListener("touchmove",f,ep),document.addEventListener("touchstart",I,ep),function(){tp=tp.filter(function(R){return R!==A}),document.removeEventListener("wheel",f,ep),document.removeEventListener("touchmove",f,ep),document.removeEventListener("touchstart",I,ep)}},[]);var D=e.removeScrollBar,S=e.inert;return x.createElement(x.Fragment,null,S?x.createElement(A,{styles:F2e(i)}):null,D?x.createElement(x2e,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function L2e(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const P2e=g2e(_U,j2e);var uI=x.forwardRef(function(e,t){return x.createElement(av,Jc({},e,{ref:t,sideCar:P2e}))});uI.classNames=av.classNames;var U2e=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},np=new WeakMap,uv=new WeakMap,dv={},q3=0,OU=function(e){return e&&(e.host||OU(e.parentNode))},G2e=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=OU(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},H2e=function(e,t,n,r){var i=G2e(t,Array.isArray(e)?e:[e]);dv[n]||(dv[n]=new WeakMap);var A=dv[n],l=[],c=new Set,f=new Set(i),h=function(B){!B||c.has(B)||(c.add(B),h(B.parentNode))};i.forEach(h);var I=function(B){!B||f.has(B)||Array.prototype.forEach.call(B.children,function(v){if(c.has(v))I(v);else try{var D=v.getAttribute(r),S=D!==null&&D!=="false",R=(np.get(v)||0)+1,F=(A.get(v)||0)+1;np.set(v,R),A.set(v,F),l.push(v),R===1&&S&&uv.set(v,!0),F===1&&v.setAttribute(n,"true"),S||v.setAttribute(r,"true")}catch(N){console.error("aria-hidden: cannot operate on ",v,N)}})};return I(t),c.clear(),q3++,function(){l.forEach(function(B){var v=np.get(B)-1,D=A.get(B)-1;np.set(B,v),A.set(B,D),v||(uv.has(B)||B.removeAttribute(r),uv.delete(B)),D||B.removeAttribute(n)}),q3--,q3||(np=new WeakMap,np=new WeakMap,uv=new WeakMap,dv={})}},fv=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),i=U2e(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll("[aria-live], script"))),H2e(r,i,n,"aria-hidden")):function(){return null}},gv="Dialog",[jU]=Xs(gv),[Y2e,Kl]=jU(gv),LU=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:A,modal:l=!0}=e,c=x.useRef(null),f=x.useRef(null),[h,I]=Za({prop:r,defaultProp:i??!1,onChange:A,caller:gv});return p.jsx(Y2e,{scope:t,triggerRef:c,contentRef:f,contentId:MA(),titleId:MA(),descriptionId:MA(),open:h,onOpenChange:I,onOpenToggle:x.useCallback(()=>I(B=>!B),[I]),modal:l,children:n})};LU.displayName=gv;var PU="DialogTrigger",J2e=x.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Kl(PU,n),A=ar(t,i.triggerRef);return p.jsx(cI.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":K3(i.open),...r,ref:A,onClick:Vt(e.onClick,i.onOpenToggle)})});J2e.displayName=PU;var X3="DialogPortal",[z2e,UU]=jU(X3,{forceMount:void 0}),GU=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:i}=e,A=Kl(X3,t);return p.jsx(z2e,{scope:t,forceMount:n,children:x.Children.map(r,l=>p.jsx(VA,{present:n||A.open,children:p.jsx(ag,{asChild:!0,container:i,children:l})}))})};GU.displayName=X3;var hv="DialogOverlay",HU=x.forwardRef((e,t)=>{const n=UU(hv,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,A=Kl(hv,e.__scopeDialog);return A.modal?p.jsx(VA,{present:r||A.open,children:p.jsx(q2e,{...i,ref:t})}):null});HU.displayName=hv;var W2e=Ho("DialogOverlay.RemoveScroll"),q2e=x.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Kl(hv,n);return p.jsx(uI,{as:W2e,allowPinchZoom:!0,shards:[i.contentRef],children:p.jsx(cI.div,{"data-state":K3(i.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),lg="DialogContent",YU=x.forwardRef((e,t)=>{const n=UU(lg,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,A=Kl(lg,e.__scopeDialog);return p.jsx(VA,{present:r||A.open,children:A.modal?p.jsx(X2e,{...i,ref:t}):p.jsx(V2e,{...i,ref:t})})});YU.displayName=lg;var X2e=x.forwardRef((e,t)=>{const n=Kl(lg,e.__scopeDialog),r=x.useRef(null),i=ar(t,n.contentRef,r);return x.useEffect(()=>{const A=r.current;if(A)return fv(A)},[]),p.jsx(JU,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Vt(e.onCloseAutoFocus,A=>{var l;A.preventDefault(),(l=n.triggerRef.current)==null||l.focus()}),onPointerDownOutside:Vt(e.onPointerDownOutside,A=>{const l=A.detail.originalEvent,c=l.button===0&&l.ctrlKey===!0;(l.button===2||c)&&A.preventDefault()}),onFocusOutside:Vt(e.onFocusOutside,A=>A.preventDefault())})}),V2e=x.forwardRef((e,t)=>{const n=Kl(lg,e.__scopeDialog),r=x.useRef(!1),i=x.useRef(!1);return p.jsx(JU,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:A=>{var l,c;(l=e.onCloseAutoFocus)==null||l.call(e,A),A.defaultPrevented||(r.current||((c=n.triggerRef.current)==null||c.focus()),A.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:A=>{var c,f;(c=e.onInteractOutside)==null||c.call(e,A),A.defaultPrevented||(r.current=!0,A.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const l=A.target;(f=n.triggerRef.current)!=null&&f.contains(l)&&A.preventDefault(),A.detail.originalEvent.type==="focusin"&&i.current&&A.preventDefault()}})}),JU=x.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:A,...l}=e,c=Kl(lg,n),f=x.useRef(null),h=ar(t,f);return iv(),p.jsxs(p.Fragment,{children:[p.jsx(lI,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:A,children:p.jsx(Z2,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":K3(c.open),...l,ref:h,onDismiss:()=>c.onOpenChange(!1)})}),p.jsxs(p.Fragment,{children:[p.jsx(epe,{titleId:c.titleId}),p.jsx(npe,{contentRef:f,descriptionId:c.descriptionId})]})]})}),V3="DialogTitle",K2e=x.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Kl(V3,n);return p.jsx(cI.h2,{id:i.titleId,...r,ref:t})});K2e.displayName=V3;var zU="DialogDescription",Z2e=x.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Kl(zU,n);return p.jsx(cI.p,{id:i.descriptionId,...r,ref:t})});Z2e.displayName=zU;var WU="DialogClose",$2e=x.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Kl(WU,n);return p.jsx(cI.button,{type:"button",...r,ref:t,onClick:Vt(e.onClick,()=>i.onOpenChange(!1))})});$2e.displayName=WU;function K3(e){return e?"open":"closed"}var qU="DialogTitleWarning",[hdt,XU]=bhe(qU,{contentName:lg,titleName:V3,docsSlug:"dialog"}),epe=({titleId:e})=>{const t=XU(qU),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. - -If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. - -For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return x.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},tpe="DialogDescriptionWarning",npe=({contentRef:e,descriptionId:t})=>{const n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${XU(tpe).contentName}}.`;return x.useEffect(()=>{var i;const r=(i=e.current)==null?void 0:i.getAttribute("aria-describedby");t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},rpe=LU,ope=GU,ipe=HU,Ape=YU,VU={exports:{}},KU={},rp=x;function spe(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var ape=typeof Object.is=="function"?Object.is:spe,lpe=rp.useState,cpe=rp.useEffect,upe=rp.useLayoutEffect,dpe=rp.useDebugValue;function fpe(e,t){var n=t(),r=lpe({inst:{value:n,getSnapshot:t}}),i=r[0].inst,A=r[1];return upe(function(){i.value=n,i.getSnapshot=t,Z3(i)&&A({inst:i})},[e,n,t]),cpe(function(){return Z3(i)&&A({inst:i}),e(function(){Z3(i)&&A({inst:i})})},[e]),dpe(n),n}function Z3(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!ape(e,n)}catch{return!0}}function gpe(e,t){return t()}var hpe=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?gpe:fpe;KU.useSyncExternalStore=rp.useSyncExternalStore!==void 0?rp.useSyncExternalStore:hpe,VU.exports=KU;var ppe=VU.exports;function $3(e){const t=x.useRef({value:e,previous:e});return x.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function e8(e){const[t,n]=x.useState(void 0);return TA(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;const A=i[0];let l,c;if("borderBoxSize"in A){const f=A.borderBoxSize,h=Array.isArray(f)?f[0]:f;l=h.inlineSize,c=h.blockSize}else l=e.offsetWidth,c=e.offsetHeight;n({width:l,height:c})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}const mpe=["top","right","bottom","left"],Td=Math.min,Ea=Math.max,pv=Math.round,mv=Math.floor,zc=e=>({x:e,y:e}),Ipe={left:"right",right:"left",bottom:"top",top:"bottom"},Cpe={start:"end",end:"start"};function t8(e,t,n){return Ea(e,Td(t,n))}function s0(e,t){return typeof e=="function"?e(t):e}function a0(e){return e.split("-")[0]}function op(e){return e.split("-")[1]}function n8(e){return e==="x"?"y":"x"}function r8(e){return e==="y"?"height":"width"}const Epe=new Set(["top","bottom"]);function Wc(e){return Epe.has(a0(e))?"y":"x"}function o8(e){return n8(Wc(e))}function Bpe(e,t,n){n===void 0&&(n=!1);const r=op(e),i=o8(e),A=r8(i);let l=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[A]>t.floating[A]&&(l=Iv(l)),[l,Iv(l)]}function ype(e){const t=Iv(e);return[i8(e),t,i8(t)]}function i8(e){return e.replace(/start|end/g,t=>Cpe[t])}const ZU=["left","right"],$U=["right","left"],vpe=["top","bottom"],bpe=["bottom","top"];function Qpe(e,t,n){switch(e){case"top":case"bottom":return n?t?$U:ZU:t?ZU:$U;case"left":case"right":return t?vpe:bpe;default:return[]}}function wpe(e,t,n,r){const i=op(e);let A=Qpe(a0(e),n==="start",r);return i&&(A=A.map(l=>l+"-"+i),t&&(A=A.concat(A.map(i8)))),A}function Iv(e){return e.replace(/left|right|bottom|top/g,t=>Ipe[t])}function xpe(e){return{top:0,right:0,bottom:0,left:0,...e}}function eG(e){return typeof e!="number"?xpe(e):{top:e,right:e,bottom:e,left:e}}function Cv(e){const{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function tG(e,t,n){let{reference:r,floating:i}=e;const A=Wc(t),l=o8(t),c=r8(l),f=a0(t),h=A==="y",I=r.x+r.width/2-i.width/2,B=r.y+r.height/2-i.height/2,v=r[c]/2-i[c]/2;let D;switch(f){case"top":D={x:I,y:r.y-i.height};break;case"bottom":D={x:I,y:r.y+r.height};break;case"right":D={x:r.x+r.width,y:B};break;case"left":D={x:r.x-i.width,y:B};break;default:D={x:r.x,y:r.y}}switch(op(t)){case"start":D[l]-=v*(n&&h?-1:1);break;case"end":D[l]+=v*(n&&h?-1:1);break}return D}const _pe=async(e,t,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:A=[],platform:l}=n,c=A.filter(Boolean),f=await(l.isRTL==null?void 0:l.isRTL(t));let h=await l.getElementRects({reference:e,floating:t,strategy:i}),{x:I,y:B}=tG(h,r,f),v=r,D={},S=0;for(let R=0;R({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:i,rects:A,platform:l,elements:c,middlewareData:f}=t,{element:h,padding:I=0}=s0(e,t)||{};if(h==null)return{};const B=eG(I),v={x:n,y:r},D=o8(i),S=r8(D),R=await l.getDimensions(h),F=D==="y",N=F?"top":"left",M=F?"bottom":"right",P=F?"clientHeight":"clientWidth",G=A.reference[S]+A.reference[D]-v[D]-A.floating[S],J=v[D]-A.reference[D],W=await(l.getOffsetParent==null?void 0:l.getOffsetParent(h));let q=W?W[P]:0;(!q||!await(l.isElement==null?void 0:l.isElement(W)))&&(q=c.floating[P]||A.floating[S]);const $=G/2-J/2,oe=q/2-R[S]/2-1,K=Td(B[N],oe),se=Td(B[M],oe),Ee=K,ie=q-R[S]-se,Ae=q/2-R[S]/2+$,Be=t8(Ee,Ae,ie),ae=!f.arrow&&op(i)!=null&&Ae!==Be&&A.reference[S]/2-(AeAe<=0)){var se,Ee;const Ae=(((se=A.flip)==null?void 0:se.index)||0)+1,Be=q[Ae];if(Be&&(!(B==="alignment"&&M!==Wc(Be))||K.every(Ce=>Wc(Ce.placement)===M?Ce.overflows[0]>0:!0)))return{data:{index:Ae,overflows:K},reset:{placement:Be}};let ae=(Ee=K.filter(Ce=>Ce.overflows[0]<=0).sort((Ce,de)=>Ce.overflows[1]-de.overflows[1])[0])==null?void 0:Ee.placement;if(!ae)switch(D){case"bestFit":{var ie;const Ce=(ie=K.filter(de=>{if(W){const ge=Wc(de.placement);return ge===M||ge==="y"}return!0}).map(de=>[de.placement,de.overflows.filter(ge=>ge>0).reduce((ge,be)=>ge+be,0)]).sort((de,ge)=>de[1]-ge[1])[0])==null?void 0:ie[0];Ce&&(ae=Ce);break}case"initialPlacement":ae=c;break}if(i!==ae)return{reset:{placement:ae}}}return{}}}};function nG(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function rG(e){return mpe.some(t=>e[t]>=0)}const Spe=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...i}=s0(e,t);switch(r){case"referenceHidden":{const A=await dI(t,{...i,elementContext:"reference"}),l=nG(A,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:rG(l)}}}case"escaped":{const A=await dI(t,{...i,altBoundary:!0}),l=nG(A,n.floating);return{data:{escapedOffsets:l,escaped:rG(l)}}}default:return{}}}}},oG=new Set(["left","top"]);async function Rpe(e,t){const{placement:n,platform:r,elements:i}=e,A=await(r.isRTL==null?void 0:r.isRTL(i.floating)),l=a0(n),c=op(n),f=Wc(n)==="y",h=oG.has(l)?-1:1,I=A&&f?-1:1,B=s0(t,e);let{mainAxis:v,crossAxis:D,alignmentAxis:S}=typeof B=="number"?{mainAxis:B,crossAxis:0,alignmentAxis:null}:{mainAxis:B.mainAxis||0,crossAxis:B.crossAxis||0,alignmentAxis:B.alignmentAxis};return c&&typeof S=="number"&&(D=c==="end"?S*-1:S),f?{x:D*I,y:v*h}:{x:v*h,y:D*I}}const Tpe=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:i,y:A,placement:l,middlewareData:c}=t,f=await Rpe(t,e);return l===((n=c.offset)==null?void 0:n.placement)&&(r=c.arrow)!=null&&r.alignmentOffset?{}:{x:i+f.x,y:A+f.y,data:{...f,placement:l}}}}},Mpe=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:i}=t,{mainAxis:A=!0,crossAxis:l=!1,limiter:c={fn:F=>{let{x:N,y:M}=F;return{x:N,y:M}}},...f}=s0(e,t),h={x:n,y:r},I=await dI(t,f),B=Wc(a0(i)),v=n8(B);let D=h[v],S=h[B];if(A){const F=v==="y"?"top":"left",N=v==="y"?"bottom":"right",M=D+I[F],P=D-I[N];D=t8(M,D,P)}if(l){const F=B==="y"?"top":"left",N=B==="y"?"bottom":"right",M=S+I[F],P=S-I[N];S=t8(M,S,P)}const R=c.fn({...t,[v]:D,[B]:S});return{...R,data:{x:R.x-n,y:R.y-r,enabled:{[v]:A,[B]:l}}}}}},Npe=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:i,rects:A,middlewareData:l}=t,{offset:c=0,mainAxis:f=!0,crossAxis:h=!0}=s0(e,t),I={x:n,y:r},B=Wc(i),v=n8(B);let D=I[v],S=I[B];const R=s0(c,t),F=typeof R=="number"?{mainAxis:R,crossAxis:0}:{mainAxis:0,crossAxis:0,...R};if(f){const P=v==="y"?"height":"width",G=A.reference[v]-A.floating[P]+F.mainAxis,J=A.reference[v]+A.reference[P]-F.mainAxis;DJ&&(D=J)}if(h){var N,M;const P=v==="y"?"width":"height",G=oG.has(a0(i)),J=A.reference[B]-A.floating[P]+(G&&((N=l.offset)==null?void 0:N[B])||0)+(G?0:F.crossAxis),W=A.reference[B]+A.reference[P]+(G?0:((M=l.offset)==null?void 0:M[B])||0)-(G?F.crossAxis:0);SW&&(S=W)}return{[v]:D,[B]:S}}}},Fpe=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:i,rects:A,platform:l,elements:c}=t,{apply:f=()=>{},...h}=s0(e,t),I=await dI(t,h),B=a0(i),v=op(i),D=Wc(i)==="y",{width:S,height:R}=A.floating;let F,N;B==="top"||B==="bottom"?(F=B,N=v===(await(l.isRTL==null?void 0:l.isRTL(c.floating))?"start":"end")?"left":"right"):(N=B,F=v==="end"?"top":"bottom");const M=R-I.top-I.bottom,P=S-I.left-I.right,G=Td(R-I[F],M),J=Td(S-I[N],P),W=!t.middlewareData.shift;let q=G,$=J;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&($=P),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(q=M),W&&!v){const K=Ea(I.left,0),se=Ea(I.right,0),Ee=Ea(I.top,0),ie=Ea(I.bottom,0);D?$=S-2*(K!==0||se!==0?K+se:Ea(I.left,I.right)):q=R-2*(Ee!==0||ie!==0?Ee+ie:Ea(I.top,I.bottom))}await f({...t,availableWidth:$,availableHeight:q});const oe=await l.getDimensions(c.floating);return S!==oe.width||R!==oe.height?{reset:{rects:!0}}:{}}}};function Ev(){return typeof window<"u"}function ip(e){return A8(e)?(e.nodeName||"").toLowerCase():"#document"}function Ba(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function qc(e){var t;return(t=(A8(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function A8(e){return Ev()?e instanceof Node||e instanceof Ba(e).Node:!1}function Es(e){return Ev()?e instanceof Element||e instanceof Ba(e).Element:!1}function Xc(e){return Ev()?e instanceof HTMLElement||e instanceof Ba(e).HTMLElement:!1}function s8(e){return!Ev()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Ba(e).ShadowRoot}const Ope=new Set(["inline","contents"]);function fI(e){const{overflow:t,overflowX:n,overflowY:r,display:i}=Zl(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!Ope.has(i)}const jpe=new Set(["table","td","th"]);function Lpe(e){return jpe.has(ip(e))}const Ppe=[":popover-open",":modal"];function Bv(e){return Ppe.some(t=>{try{return e.matches(t)}catch{return!1}})}const Upe=["transform","translate","scale","rotate","perspective"],Gpe=["transform","translate","scale","rotate","perspective","filter"],Hpe=["paint","layout","strict","content"];function a8(e){const t=l8(),n=Es(e)?Zl(e):e;return Upe.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||Gpe.some(r=>(n.willChange||"").includes(r))||Hpe.some(r=>(n.contain||"").includes(r))}function Ype(e){let t=Md(e);for(;Xc(t)&&!Ap(t);){if(a8(t))return t;if(Bv(t))return null;t=Md(t)}return null}function l8(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const Jpe=new Set(["html","body","#document"]);function Ap(e){return Jpe.has(ip(e))}function Zl(e){return Ba(e).getComputedStyle(e)}function yv(e){return Es(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Md(e){if(ip(e)==="html")return e;const t=e.assignedSlot||e.parentNode||s8(e)&&e.host||qc(e);return s8(t)?t.host:t}function iG(e){const t=Md(e);return Ap(t)?e.ownerDocument?e.ownerDocument.body:e.body:Xc(t)&&fI(t)?t:iG(t)}function gI(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const i=iG(e),A=i===((r=e.ownerDocument)==null?void 0:r.body),l=Ba(i);if(A){const c=c8(l);return t.concat(l,l.visualViewport||[],fI(i)?i:[],c&&n?gI(c):[])}return t.concat(i,gI(i,[],n))}function c8(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function AG(e){const t=Zl(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const i=Xc(e),A=i?e.offsetWidth:n,l=i?e.offsetHeight:r,c=pv(n)!==A||pv(r)!==l;return c&&(n=A,r=l),{width:n,height:r,$:c}}function u8(e){return Es(e)?e:e.contextElement}function sp(e){const t=u8(e);if(!Xc(t))return zc(1);const n=t.getBoundingClientRect(),{width:r,height:i,$:A}=AG(t);let l=(A?pv(n.width):n.width)/r,c=(A?pv(n.height):n.height)/i;return(!l||!Number.isFinite(l))&&(l=1),(!c||!Number.isFinite(c))&&(c=1),{x:l,y:c}}const zpe=zc(0);function sG(e){const t=Ba(e);return!l8()||!t.visualViewport?zpe:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Wpe(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Ba(e)?!1:t}function cg(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const i=e.getBoundingClientRect(),A=u8(e);let l=zc(1);t&&(r?Es(r)&&(l=sp(r)):l=sp(e));const c=Wpe(A,n,r)?sG(A):zc(0);let f=(i.left+c.x)/l.x,h=(i.top+c.y)/l.y,I=i.width/l.x,B=i.height/l.y;if(A){const v=Ba(A),D=r&&Es(r)?Ba(r):r;let S=v,R=c8(S);for(;R&&r&&D!==S;){const F=sp(R),N=R.getBoundingClientRect(),M=Zl(R),P=N.left+(R.clientLeft+parseFloat(M.paddingLeft))*F.x,G=N.top+(R.clientTop+parseFloat(M.paddingTop))*F.y;f*=F.x,h*=F.y,I*=F.x,B*=F.y,f+=P,h+=G,S=Ba(R),R=c8(S)}}return Cv({width:I,height:B,x:f,y:h})}function vv(e,t){const n=yv(e).scrollLeft;return t?t.left+n:cg(qc(e)).left+n}function aG(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-vv(e,n),i=n.top+t.scrollTop;return{x:r,y:i}}function qpe(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e;const A=i==="fixed",l=qc(r),c=t?Bv(t.floating):!1;if(r===l||c&&A)return n;let f={scrollLeft:0,scrollTop:0},h=zc(1);const I=zc(0),B=Xc(r);if((B||!B&&!A)&&((ip(r)!=="body"||fI(l))&&(f=yv(r)),Xc(r))){const D=cg(r);h=sp(r),I.x=D.x+r.clientLeft,I.y=D.y+r.clientTop}const v=l&&!B&&!A?aG(l,f):zc(0);return{width:n.width*h.x,height:n.height*h.y,x:n.x*h.x-f.scrollLeft*h.x+I.x+v.x,y:n.y*h.y-f.scrollTop*h.y+I.y+v.y}}function Xpe(e){return Array.from(e.getClientRects())}function Vpe(e){const t=qc(e),n=yv(e),r=e.ownerDocument.body,i=Ea(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),A=Ea(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let l=-n.scrollLeft+vv(e);const c=-n.scrollTop;return Zl(r).direction==="rtl"&&(l+=Ea(t.clientWidth,r.clientWidth)-i),{width:i,height:A,x:l,y:c}}const lG=25;function Kpe(e,t){const n=Ba(e),r=qc(e),i=n.visualViewport;let A=r.clientWidth,l=r.clientHeight,c=0,f=0;if(i){A=i.width,l=i.height;const I=l8();(!I||I&&t==="fixed")&&(c=i.offsetLeft,f=i.offsetTop)}const h=vv(r);if(h<=0){const I=r.ownerDocument,B=I.body,v=getComputedStyle(B),D=I.compatMode==="CSS1Compat"&&parseFloat(v.marginLeft)+parseFloat(v.marginRight)||0,S=Math.abs(r.clientWidth-B.clientWidth-D);S<=lG&&(A-=S)}else h<=lG&&(A+=h);return{width:A,height:l,x:c,y:f}}const Zpe=new Set(["absolute","fixed"]);function $pe(e,t){const n=cg(e,!0,t==="fixed"),r=n.top+e.clientTop,i=n.left+e.clientLeft,A=Xc(e)?sp(e):zc(1),l=e.clientWidth*A.x,c=e.clientHeight*A.y,f=i*A.x,h=r*A.y;return{width:l,height:c,x:f,y:h}}function cG(e,t,n){let r;if(t==="viewport")r=Kpe(e,n);else if(t==="document")r=Vpe(qc(e));else if(Es(t))r=$pe(t,n);else{const i=sG(e);r={x:t.x-i.x,y:t.y-i.y,width:t.width,height:t.height}}return Cv(r)}function uG(e,t){const n=Md(e);return n===t||!Es(n)||Ap(n)?!1:Zl(n).position==="fixed"||uG(n,t)}function e1e(e,t){const n=t.get(e);if(n)return n;let r=gI(e,[],!1).filter(c=>Es(c)&&ip(c)!=="body"),i=null;const A=Zl(e).position==="fixed";let l=A?Md(e):e;for(;Es(l)&&!Ap(l);){const c=Zl(l),f=a8(l);!f&&c.position==="fixed"&&(i=null),(A?!f&&!i:!f&&c.position==="static"&&i&&Zpe.has(i.position)||fI(l)&&!f&&uG(e,l))?r=r.filter(h=>h!==l):i=c,l=Md(l)}return t.set(e,r),r}function t1e(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e;const A=[...n==="clippingAncestors"?Bv(t)?[]:e1e(t,this._c):[].concat(n),r],l=A[0],c=A.reduce((f,h)=>{const I=cG(t,h,i);return f.top=Ea(I.top,f.top),f.right=Td(I.right,f.right),f.bottom=Td(I.bottom,f.bottom),f.left=Ea(I.left,f.left),f},cG(t,l,i));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}function n1e(e){const{width:t,height:n}=AG(e);return{width:t,height:n}}function r1e(e,t,n){const r=Xc(t),i=qc(t),A=n==="fixed",l=cg(e,!0,A,t);let c={scrollLeft:0,scrollTop:0};const f=zc(0);function h(){f.x=vv(i)}if(r||!r&&!A)if((ip(t)!=="body"||fI(i))&&(c=yv(t)),r){const D=cg(t,!0,A,t);f.x=D.x+t.clientLeft,f.y=D.y+t.clientTop}else i&&h();A&&!r&&i&&h();const I=i&&!r&&!A?aG(i,c):zc(0),B=l.left+c.scrollLeft-f.x-I.x,v=l.top+c.scrollTop-f.y-I.y;return{x:B,y:v,width:l.width,height:l.height}}function d8(e){return Zl(e).position==="static"}function dG(e,t){if(!Xc(e)||Zl(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return qc(e)===n&&(n=n.ownerDocument.body),n}function fG(e,t){const n=Ba(e);if(Bv(e))return n;if(!Xc(e)){let i=Md(e);for(;i&&!Ap(i);){if(Es(i)&&!d8(i))return i;i=Md(i)}return n}let r=dG(e,t);for(;r&&Lpe(r)&&d8(r);)r=dG(r,t);return r&&Ap(r)&&d8(r)&&!a8(r)?n:r||Ype(e)||n}const o1e=async function(e){const t=this.getOffsetParent||fG,n=this.getDimensions,r=await n(e.floating);return{reference:r1e(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function i1e(e){return Zl(e).direction==="rtl"}const A1e={convertOffsetParentRelativeRectToViewportRelativeRect:qpe,getDocumentElement:qc,getClippingRect:t1e,getOffsetParent:fG,getElementRects:o1e,getClientRects:Xpe,getDimensions:n1e,getScale:sp,isElement:Es,isRTL:i1e};function gG(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function s1e(e,t){let n=null,r;const i=qc(e);function A(){var c;clearTimeout(r),(c=n)==null||c.disconnect(),n=null}function l(c,f){c===void 0&&(c=!1),f===void 0&&(f=1),A();const h=e.getBoundingClientRect(),{left:I,top:B,width:v,height:D}=h;if(c||t(),!v||!D)return;const S=mv(B),R=mv(i.clientWidth-(I+v)),F=mv(i.clientHeight-(B+D)),N=mv(I),M={rootMargin:-S+"px "+-R+"px "+-F+"px "+-N+"px",threshold:Ea(0,Td(1,f))||1};let P=!0;function G(J){const W=J[0].intersectionRatio;if(W!==f){if(!P)return l();W?l(!1,W):r=setTimeout(()=>{l(!1,1e-7)},1e3)}W===1&&!gG(h,e.getBoundingClientRect())&&l(),P=!1}try{n=new IntersectionObserver(G,{...M,root:i.ownerDocument})}catch{n=new IntersectionObserver(G,M)}n.observe(e)}return l(!0),A}function hG(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:i=!0,ancestorResize:A=!0,elementResize:l=typeof ResizeObserver=="function",layoutShift:c=typeof IntersectionObserver=="function",animationFrame:f=!1}=r,h=u8(e),I=i||A?[...h?gI(h):[],...gI(t)]:[];I.forEach(N=>{i&&N.addEventListener("scroll",n,{passive:!0}),A&&N.addEventListener("resize",n)});const B=h&&c?s1e(h,n):null;let v=-1,D=null;l&&(D=new ResizeObserver(N=>{let[M]=N;M&&M.target===h&&D&&(D.unobserve(t),cancelAnimationFrame(v),v=requestAnimationFrame(()=>{var P;(P=D)==null||P.observe(t)})),n()}),h&&!f&&D.observe(h),D.observe(t));let S,R=f?cg(e):null;f&&F();function F(){const N=cg(e);R&&!gG(R,N)&&n(),R=N,S=requestAnimationFrame(F)}return n(),()=>{var N;I.forEach(M=>{i&&M.removeEventListener("scroll",n),A&&M.removeEventListener("resize",n)}),B==null||B(),(N=D)==null||N.disconnect(),D=null,f&&cancelAnimationFrame(S)}}const a1e=Tpe,l1e=Mpe,c1e=Dpe,u1e=Fpe,d1e=Spe,pG=kpe,f1e=Npe,g1e=(e,t,n)=>{const r=new Map,i={platform:A1e,...n},A={...i.platform,_c:r};return _pe(e,t,{...i,platform:A})};var h1e=typeof document<"u",p1e=function(){},bv=h1e?x.useLayoutEffect:p1e;function Qv(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Qv(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){const A=i[r];if(!(A==="_owner"&&e.$$typeof)&&!Qv(e[A],t[A]))return!1}return!0}return e!==e&&t!==t}function mG(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function IG(e,t){const n=mG(e);return Math.round(t*n)/n}function f8(e){const t=x.useRef(e);return bv(()=>{t.current=e}),t}function CG(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:i,elements:{reference:A,floating:l}={},transform:c=!0,whileElementsMounted:f,open:h}=e,[I,B]=x.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[v,D]=x.useState(r);Qv(v,r)||D(r);const[S,R]=x.useState(null),[F,N]=x.useState(null),M=x.useCallback(de=>{de!==W.current&&(W.current=de,R(de))},[]),P=x.useCallback(de=>{de!==q.current&&(q.current=de,N(de))},[]),G=A||S,J=l||F,W=x.useRef(null),q=x.useRef(null),$=x.useRef(I),oe=f!=null,K=f8(f),se=f8(i),Ee=f8(h),ie=x.useCallback(()=>{if(!W.current||!q.current)return;const de={placement:t,strategy:n,middleware:v};se.current&&(de.platform=se.current),g1e(W.current,q.current,de).then(ge=>{const be={...ge,isPositioned:Ee.current!==!1};Ae.current&&!Qv($.current,be)&&($.current=be,Yc.flushSync(()=>{B(be)}))})},[v,t,n,se,Ee]);bv(()=>{h===!1&&$.current.isPositioned&&($.current.isPositioned=!1,B(de=>({...de,isPositioned:!1})))},[h]);const Ae=x.useRef(!1);bv(()=>(Ae.current=!0,()=>{Ae.current=!1}),[]),bv(()=>{if(G&&(W.current=G),J&&(q.current=J),G&&J){if(K.current)return K.current(G,J,ie);ie()}},[G,J,ie,K,oe]);const Be=x.useMemo(()=>({reference:W,floating:q,setReference:M,setFloating:P}),[M,P]),ae=x.useMemo(()=>({reference:G,floating:J}),[G,J]),Ce=x.useMemo(()=>{const de={position:n,left:0,top:0};if(!ae.floating)return de;const ge=IG(ae.floating,I.x),be=IG(ae.floating,I.y);return c?{...de,transform:"translate("+ge+"px, "+be+"px)",...mG(ae.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:ge,top:be}},[n,c,ae.floating,I.x,I.y]);return x.useMemo(()=>({...I,update:ie,refs:Be,elements:ae,floatingStyles:Ce}),[I,ie,Be,ae,Ce])}const m1e=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:i}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?pG({element:r.current,padding:i}).fn(n):{}:r?pG({element:r,padding:i}).fn(n):{}}}},EG=(e,t)=>({...a1e(e),options:[e,t]}),I1e=(e,t)=>({...l1e(e),options:[e,t]}),C1e=(e,t)=>({...f1e(e),options:[e,t]}),E1e=(e,t)=>({...c1e(e),options:[e,t]}),B1e=(e,t)=>({...u1e(e),options:[e,t]}),y1e=(e,t)=>({...d1e(e),options:[e,t]}),v1e=(e,t)=>({...m1e(e),options:[e,t]});var b1e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Q1e=b1e.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),w1e="Arrow",BG=x.forwardRef((e,t)=>{const{children:n,width:r=10,height:i=5,...A}=e;return p.jsx(Q1e.svg,{...A,ref:t,width:r,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:p.jsx("polygon",{points:"0,0 30,0 15,10"})})});BG.displayName=w1e;var x1e=BG,_1e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],yG=_1e.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),g8="Popper",[vG,Nd]=Xs(g8),[k1e,bG]=vG(g8),QG=e=>{const{__scopePopper:t,children:n}=e,[r,i]=x.useState(null);return p.jsx(k1e,{scope:t,anchor:r,onAnchorChange:i,children:n})};QG.displayName=g8;var wG="PopperAnchor",xG=x.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...i}=e,A=bG(wG,n),l=x.useRef(null),c=ar(t,l),f=x.useRef(null);return x.useEffect(()=>{const h=f.current;f.current=(r==null?void 0:r.current)||l.current,h!==f.current&&A.onAnchorChange(f.current)}),r?null:p.jsx(yG.div,{...i,ref:c})});xG.displayName=wG;var h8="PopperContent",[D1e,S1e]=vG(h8),_G=x.forwardRef((e,t)=>{var _e,xe,ve,Ue,At,He;const{__scopePopper:n,side:r="bottom",sideOffset:i=0,align:A="center",alignOffset:l=0,arrowPadding:c=0,avoidCollisions:f=!0,collisionBoundary:h=[],collisionPadding:I=0,sticky:B="partial",hideWhenDetached:v=!1,updatePositionStrategy:D="optimized",onPlaced:S,...R}=e,F=bG(h8,n),[N,M]=x.useState(null),P=ar(t,gt=>M(gt)),[G,J]=x.useState(null),W=e8(G),q=(W==null?void 0:W.width)??0,$=(W==null?void 0:W.height)??0,oe=r+(A!=="center"?"-"+A:""),K=typeof I=="number"?I:{top:0,right:0,bottom:0,left:0,...I},se=Array.isArray(h)?h:[h],Ee=se.length>0,ie={padding:K,boundary:se.filter(T1e),altBoundary:Ee},{refs:Ae,floatingStyles:Be,placement:ae,isPositioned:Ce,middlewareData:de}=CG({strategy:"fixed",placement:oe,whileElementsMounted:(...gt)=>hG(...gt,{animationFrame:D==="always"}),elements:{reference:F.anchor},middleware:[EG({mainAxis:i+$,alignmentAxis:l}),f&&I1e({mainAxis:!0,crossAxis:!1,limiter:B==="partial"?C1e():void 0,...ie}),f&&E1e({...ie}),B1e({...ie,apply:({elements:gt,rects:ut,availableWidth:bt,availableHeight:zt})=>{const{width:ce,height:mn}=ut.reference,Yn=gt.floating.style;Yn.setProperty("--radix-popper-available-width",`${bt}px`),Yn.setProperty("--radix-popper-available-height",`${zt}px`),Yn.setProperty("--radix-popper-anchor-width",`${ce}px`),Yn.setProperty("--radix-popper-anchor-height",`${mn}px`)}}),G&&v1e({element:G,padding:c}),M1e({arrowWidth:q,arrowHeight:$}),v&&y1e({strategy:"referenceHidden",...ie})]}),[ge,be]=SG(ae),Te=NA(S);TA(()=>{Ce&&(Te==null||Te())},[Ce,Te]);const me=(_e=de.arrow)==null?void 0:_e.x,Ye=(xe=de.arrow)==null?void 0:xe.y,rt=((ve=de.arrow)==null?void 0:ve.centerOffset)!==0,[We,De]=x.useState();return TA(()=>{N&&De(window.getComputedStyle(N).zIndex)},[N]),p.jsx("div",{ref:Ae.setFloating,"data-radix-popper-content-wrapper":"",style:{...Be,transform:Ce?Be.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:We,"--radix-popper-transform-origin":[(Ue=de.transformOrigin)==null?void 0:Ue.x,(At=de.transformOrigin)==null?void 0:At.y].join(" "),...((He=de.hide)==null?void 0:He.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:p.jsx(D1e,{scope:n,placedSide:ge,onArrowChange:J,arrowX:me,arrowY:Ye,shouldHideArrow:rt,children:p.jsx(yG.div,{"data-side":ge,"data-align":be,...R,ref:P,style:{...R.style,animation:Ce?void 0:"none"}})})})});_G.displayName=h8;var kG="PopperArrow",R1e={top:"bottom",right:"left",bottom:"top",left:"right"},DG=x.forwardRef(function(e,t){const{__scopePopper:n,...r}=e,i=S1e(kG,n),A=R1e[i.placedSide];return p.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[A]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:p.jsx(x1e,{...r,ref:t,style:{...r.style,display:"block"}})})});DG.displayName=kG;function T1e(e){return e!==null}var M1e=e=>({name:"transformOrigin",options:e,fn(t){var R,F,N;const{placement:n,rects:r,middlewareData:i}=t,A=((R=i.arrow)==null?void 0:R.centerOffset)!==0,l=A?0:e.arrowWidth,c=A?0:e.arrowHeight,[f,h]=SG(n),I={start:"0%",center:"50%",end:"100%"}[h],B=(((F=i.arrow)==null?void 0:F.x)??0)+l/2,v=(((N=i.arrow)==null?void 0:N.y)??0)+c/2;let D="",S="";return f==="bottom"?(D=A?I:`${B}px`,S=`${-c}px`):f==="top"?(D=A?I:`${B}px`,S=`${r.floating.height+c}px`):f==="right"?(D=`${-c}px`,S=A?I:`${v}px`):f==="left"&&(D=`${r.floating.width+c}px`,S=A?I:`${v}px`),{data:{x:D,y:S}}}});function SG(e){const[t,n="center"]=e.split("-");return[t,n]}var wv=QG,hI=xG,xv=_G,_v=DG,N1e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],pI=N1e.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function F1e(e,t){e&&Yc.flushSync(()=>e.dispatchEvent(t))}var O1e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],RG=O1e.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),p8="rovingFocusGroup.onEntryFocus",j1e={bubbles:!1,cancelable:!0},mI="RovingFocusGroup",[m8,TG,L1e]=rv(mI),[P1e,kv]=Xs(mI,[L1e]),[U1e,G1e]=P1e(mI),MG=x.forwardRef((e,t)=>p.jsx(m8.Provider,{scope:e.__scopeRovingFocusGroup,children:p.jsx(m8.Slot,{scope:e.__scopeRovingFocusGroup,children:p.jsx(H1e,{...e,ref:t})})}));MG.displayName=mI;var H1e=x.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:A,currentTabStopId:l,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:f,onEntryFocus:h,preventScrollOnEntryFocus:I=!1,...B}=e,v=x.useRef(null),D=ar(t,v),S=K2(A),[R,F]=Za({prop:l,defaultProp:c??null,onChange:f,caller:mI}),[N,M]=x.useState(!1),P=NA(h),G=TG(n),J=x.useRef(!1),[W,q]=x.useState(0);return x.useEffect(()=>{const $=v.current;if($)return $.addEventListener(p8,P),()=>$.removeEventListener(p8,P)},[P]),p.jsx(U1e,{scope:n,orientation:r,dir:S,loop:i,currentTabStopId:R,onItemFocus:x.useCallback($=>F($),[F]),onItemShiftTab:x.useCallback(()=>M(!0),[]),onFocusableItemAdd:x.useCallback(()=>q($=>$+1),[]),onFocusableItemRemove:x.useCallback(()=>q($=>$-1),[]),children:p.jsx(RG.div,{tabIndex:N||W===0?-1:0,"data-orientation":r,...B,ref:D,style:{outline:"none",...e.style},onMouseDown:Vt(e.onMouseDown,()=>{J.current=!0}),onFocus:Vt(e.onFocus,$=>{const oe=!J.current;if($.target===$.currentTarget&&oe&&!N){const K=new CustomEvent(p8,j1e);if($.currentTarget.dispatchEvent(K),!K.defaultPrevented){const se=G().filter(Be=>Be.focusable),Ee=se.find(Be=>Be.active),ie=se.find(Be=>Be.id===R),Ae=[Ee,ie,...se].filter(Boolean).map(Be=>Be.ref.current);OG(Ae,I)}}J.current=!1}),onBlur:Vt(e.onBlur,()=>M(!1))})})}),NG="RovingFocusGroupItem",FG=x.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:A,children:l,...c}=e,f=MA(),h=A||f,I=G1e(NG,n),B=I.currentTabStopId===h,v=TG(n),{onFocusableItemAdd:D,onFocusableItemRemove:S,currentTabStopId:R}=I;return x.useEffect(()=>{if(r)return D(),()=>S()},[r,D,S]),p.jsx(m8.ItemSlot,{scope:n,id:h,focusable:r,active:i,children:p.jsx(RG.span,{tabIndex:B?0:-1,"data-orientation":I.orientation,...c,ref:t,onMouseDown:Vt(e.onMouseDown,F=>{r?I.onItemFocus(h):F.preventDefault()}),onFocus:Vt(e.onFocus,()=>I.onItemFocus(h)),onKeyDown:Vt(e.onKeyDown,F=>{if(F.key==="Tab"&&F.shiftKey){I.onItemShiftTab();return}if(F.target!==F.currentTarget)return;const N=z1e(F,I.orientation,I.dir);if(N!==void 0){if(F.metaKey||F.ctrlKey||F.altKey||F.shiftKey)return;F.preventDefault();let M=v().filter(P=>P.focusable).map(P=>P.ref.current);if(N==="last")M.reverse();else if(N==="prev"||N==="next"){N==="prev"&&M.reverse();const P=M.indexOf(F.currentTarget);M=I.loop?W1e(M,P+1):M.slice(P+1)}setTimeout(()=>OG(M))}}),children:typeof l=="function"?l({isCurrentTabStop:B,hasTabStop:R!=null}):l})})});FG.displayName=NG;var Y1e={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function J1e(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function z1e(e,t,n){const r=J1e(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return Y1e[r]}function OG(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function W1e(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var jG=MG,LG=FG,I8=["Enter"," "],q1e=["ArrowDown","PageUp","Home"],PG=["ArrowUp","PageDown","End"],X1e=[...q1e,...PG],V1e={ltr:[...I8,"ArrowRight"],rtl:[...I8,"ArrowLeft"]},K1e={ltr:["ArrowLeft"],rtl:["ArrowRight"]},II="Menu",[CI,Z1e,$1e]=rv(II),[ug,UG]=Xs(II,[$1e,Nd,kv]),Dv=Nd(),GG=kv(),[eme,dg]=ug(II),[tme,EI]=ug(II),HG=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:A,modal:l=!0}=e,c=Dv(t),[f,h]=x.useState(null),I=x.useRef(!1),B=NA(A),v=K2(i);return x.useEffect(()=>{const D=()=>{I.current=!0,document.addEventListener("pointerdown",S,{capture:!0,once:!0}),document.addEventListener("pointermove",S,{capture:!0,once:!0})},S=()=>I.current=!1;return document.addEventListener("keydown",D,{capture:!0}),()=>{document.removeEventListener("keydown",D,{capture:!0}),document.removeEventListener("pointerdown",S,{capture:!0}),document.removeEventListener("pointermove",S,{capture:!0})}},[]),p.jsx(wv,{...c,children:p.jsx(eme,{scope:t,open:n,onOpenChange:B,content:f,onContentChange:h,children:p.jsx(tme,{scope:t,onClose:x.useCallback(()=>B(!1),[B]),isUsingKeyboardRef:I,dir:v,modal:l,children:r})})})};HG.displayName=II;var nme="MenuAnchor",C8=x.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=Dv(n);return p.jsx(hI,{...i,...r,ref:t})});C8.displayName=nme;var E8="MenuPortal",[rme,YG]=ug(E8,{forceMount:void 0}),JG=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:i}=e,A=dg(E8,t);return p.jsx(rme,{scope:t,forceMount:n,children:p.jsx(VA,{present:n||A.open,children:p.jsx(ag,{asChild:!0,container:i,children:r})})})};JG.displayName=E8;var $a="MenuContent",[ome,B8]=ug($a),zG=x.forwardRef((e,t)=>{const n=YG($a,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,A=dg($a,e.__scopeMenu),l=EI($a,e.__scopeMenu);return p.jsx(CI.Provider,{scope:e.__scopeMenu,children:p.jsx(VA,{present:r||A.open,children:p.jsx(CI.Slot,{scope:e.__scopeMenu,children:l.modal?p.jsx(ime,{...i,ref:t}):p.jsx(Ame,{...i,ref:t})})})})}),ime=x.forwardRef((e,t)=>{const n=dg($a,e.__scopeMenu),r=x.useRef(null),i=ar(t,r);return x.useEffect(()=>{const A=r.current;if(A)return fv(A)},[]),p.jsx(y8,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Vt(e.onFocusOutside,A=>A.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),Ame=x.forwardRef((e,t)=>{const n=dg($a,e.__scopeMenu);return p.jsx(y8,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),sme=Ho("MenuContent.ScrollLock"),y8=x.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:A,onCloseAutoFocus:l,disableOutsidePointerEvents:c,onEntryFocus:f,onEscapeKeyDown:h,onPointerDownOutside:I,onFocusOutside:B,onInteractOutside:v,onDismiss:D,disableOutsideScroll:S,...R}=e,F=dg($a,n),N=EI($a,n),M=Dv(n),P=GG(n),G=Z1e(n),[J,W]=x.useState(null),q=x.useRef(null),$=ar(t,q,F.onContentChange),oe=x.useRef(0),K=x.useRef(""),se=x.useRef(0),Ee=x.useRef(null),ie=x.useRef("right"),Ae=x.useRef(0),Be=S?uI:x.Fragment,ae=S?{as:sme,allowPinchZoom:!0}:void 0,Ce=ge=>{var _e,xe;const be=K.current+ge,Te=G().filter(ve=>!ve.disabled),me=document.activeElement,Ye=(_e=Te.find(ve=>ve.ref.current===me))==null?void 0:_e.textValue,rt=Te.map(ve=>ve.textValue),We=Cme(rt,be,Ye),De=(xe=Te.find(ve=>ve.textValue===We))==null?void 0:xe.ref.current;(function ve(Ue){K.current=Ue,window.clearTimeout(oe.current),Ue!==""&&(oe.current=window.setTimeout(()=>ve(""),1e3))})(be),De&&setTimeout(()=>De.focus())};x.useEffect(()=>()=>window.clearTimeout(oe.current),[]),iv();const de=x.useCallback(ge=>{var be,Te;return ie.current===((be=Ee.current)==null?void 0:be.side)&&Bme(ge,(Te=Ee.current)==null?void 0:Te.area)},[]);return p.jsx(ome,{scope:n,searchRef:K,onItemEnter:x.useCallback(ge=>{de(ge)&&ge.preventDefault()},[de]),onItemLeave:x.useCallback(ge=>{var be;de(ge)||((be=q.current)==null||be.focus(),W(null))},[de]),onTriggerLeave:x.useCallback(ge=>{de(ge)&&ge.preventDefault()},[de]),pointerGraceTimerRef:se,onPointerGraceIntentChange:x.useCallback(ge=>{Ee.current=ge},[]),children:p.jsx(Be,{...ae,children:p.jsx(lI,{asChild:!0,trapped:i,onMountAutoFocus:Vt(A,ge=>{var be;ge.preventDefault(),(be=q.current)==null||be.focus({preventScroll:!0})}),onUnmountAutoFocus:l,children:p.jsx(Z2,{asChild:!0,disableOutsidePointerEvents:c,onEscapeKeyDown:h,onPointerDownOutside:I,onFocusOutside:B,onInteractOutside:v,onDismiss:D,children:p.jsx(jG,{asChild:!0,...P,dir:N.dir,orientation:"vertical",loop:r,currentTabStopId:J,onCurrentTabStopIdChange:W,onEntryFocus:Vt(f,ge=>{N.isUsingKeyboardRef.current||ge.preventDefault()}),preventScrollOnEntryFocus:!0,children:p.jsx(xv,{role:"menu","aria-orientation":"vertical","data-state":lH(F.open),"data-radix-menu-content":"",dir:N.dir,...M,...R,ref:$,style:{outline:"none",...R.style},onKeyDown:Vt(R.onKeyDown,ge=>{const be=ge.target.closest("[data-radix-menu-content]")===ge.currentTarget,Te=ge.ctrlKey||ge.altKey||ge.metaKey,me=ge.key.length===1;be&&(ge.key==="Tab"&&ge.preventDefault(),!Te&&me&&Ce(ge.key));const Ye=q.current;if(ge.target!==Ye||!X1e.includes(ge.key))return;ge.preventDefault();const rt=G().filter(We=>!We.disabled).map(We=>We.ref.current);PG.includes(ge.key)&&rt.reverse(),mme(rt)}),onBlur:Vt(e.onBlur,ge=>{ge.currentTarget.contains(ge.target)||(window.clearTimeout(oe.current),K.current="")}),onPointerMove:Vt(e.onPointerMove,yI(ge=>{const be=ge.target,Te=Ae.current!==ge.clientX;if(ge.currentTarget.contains(be)&&Te){const me=ge.clientX>Ae.current?"right":"left";ie.current=me,Ae.current=ge.clientX}}))})})})})})})});zG.displayName=$a;var ame="MenuGroup",v8=x.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return p.jsx(pI.div,{role:"group",...r,ref:t})});v8.displayName=ame;var lme="MenuLabel",WG=x.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return p.jsx(pI.div,{...r,ref:t})});WG.displayName=lme;var Sv="MenuItem",qG="menu.itemSelect",Rv=x.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...i}=e,A=x.useRef(null),l=EI(Sv,e.__scopeMenu),c=B8(Sv,e.__scopeMenu),f=ar(t,A),h=x.useRef(!1),I=()=>{const B=A.current;if(!n&&B){const v=new CustomEvent(qG,{bubbles:!0,cancelable:!0});B.addEventListener(qG,D=>r==null?void 0:r(D),{once:!0}),F1e(B,v),v.defaultPrevented?h.current=!1:l.onClose()}};return p.jsx(XG,{...i,ref:f,disabled:n,onClick:Vt(e.onClick,I),onPointerDown:B=>{var v;(v=e.onPointerDown)==null||v.call(e,B),h.current=!0},onPointerUp:Vt(e.onPointerUp,B=>{var v;h.current||((v=B.currentTarget)==null||v.click())}),onKeyDown:Vt(e.onKeyDown,B=>{const v=c.searchRef.current!=="";n||v&&B.key===" "||I8.includes(B.key)&&(B.currentTarget.click(),B.preventDefault())})})});Rv.displayName=Sv;var XG=x.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:i,...A}=e,l=B8(Sv,n),c=GG(n),f=x.useRef(null),h=ar(t,f),[I,B]=x.useState(!1),[v,D]=x.useState("");return x.useEffect(()=>{const S=f.current;S&&D((S.textContent??"").trim())},[A.children]),p.jsx(CI.ItemSlot,{scope:n,disabled:r,textValue:i??v,children:p.jsx(LG,{asChild:!0,...c,focusable:!r,children:p.jsx(pI.div,{role:"menuitem","data-highlighted":I?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...A,ref:h,onPointerMove:Vt(e.onPointerMove,yI(S=>{r?l.onItemLeave(S):(l.onItemEnter(S),S.defaultPrevented||S.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Vt(e.onPointerLeave,yI(S=>l.onItemLeave(S))),onFocus:Vt(e.onFocus,()=>B(!0)),onBlur:Vt(e.onBlur,()=>B(!1))})})})}),cme="MenuCheckboxItem",VG=x.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...i}=e;return p.jsx(tH,{scope:e.__scopeMenu,checked:n,children:p.jsx(Rv,{role:"menuitemcheckbox","aria-checked":Tv(n)?"mixed":n,...i,ref:t,"data-state":Q8(n),onSelect:Vt(i.onSelect,()=>r==null?void 0:r(Tv(n)?!0:!n),{checkForDefaultPrevented:!1})})})});VG.displayName=cme;var KG="MenuRadioGroup",[ume,dme]=ug(KG,{value:void 0,onValueChange:()=>{}}),ZG=x.forwardRef((e,t)=>{const{value:n,onValueChange:r,...i}=e,A=NA(r);return p.jsx(ume,{scope:e.__scopeMenu,value:n,onValueChange:A,children:p.jsx(v8,{...i,ref:t})})});ZG.displayName=KG;var $G="MenuRadioItem",eH=x.forwardRef((e,t)=>{const{value:n,...r}=e,i=dme($G,e.__scopeMenu),A=n===i.value;return p.jsx(tH,{scope:e.__scopeMenu,checked:A,children:p.jsx(Rv,{role:"menuitemradio","aria-checked":A,...r,ref:t,"data-state":Q8(A),onSelect:Vt(r.onSelect,()=>{var l;return(l=i.onValueChange)==null?void 0:l.call(i,n)},{checkForDefaultPrevented:!1})})})});eH.displayName=$G;var b8="MenuItemIndicator",[tH,fme]=ug(b8,{checked:!1}),nH=x.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...i}=e,A=fme(b8,n);return p.jsx(VA,{present:r||Tv(A.checked)||A.checked===!0,children:p.jsx(pI.span,{...i,ref:t,"data-state":Q8(A.checked)})})});nH.displayName=b8;var gme="MenuSeparator",rH=x.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return p.jsx(pI.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});rH.displayName=gme;var hme="MenuArrow",oH=x.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=Dv(n);return p.jsx(_v,{...i,...r,ref:t})});oH.displayName=hme;var pme="MenuSub",[pdt,iH]=ug(pme),BI="MenuSubTrigger",AH=x.forwardRef((e,t)=>{const n=dg(BI,e.__scopeMenu),r=EI(BI,e.__scopeMenu),i=iH(BI,e.__scopeMenu),A=B8(BI,e.__scopeMenu),l=x.useRef(null),{pointerGraceTimerRef:c,onPointerGraceIntentChange:f}=A,h={__scopeMenu:e.__scopeMenu},I=x.useCallback(()=>{l.current&&window.clearTimeout(l.current),l.current=null},[]);return x.useEffect(()=>I,[I]),x.useEffect(()=>{const B=c.current;return()=>{window.clearTimeout(B),f(null)}},[c,f]),p.jsx(C8,{asChild:!0,...h,children:p.jsx(XG,{id:i.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":i.contentId,"data-state":lH(n.open),...e,ref:Vl(t,i.onTriggerChange),onClick:B=>{var v;(v=e.onClick)==null||v.call(e,B),!(e.disabled||B.defaultPrevented)&&(B.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:Vt(e.onPointerMove,yI(B=>{A.onItemEnter(B),!B.defaultPrevented&&!e.disabled&&!n.open&&!l.current&&(A.onPointerGraceIntentChange(null),l.current=window.setTimeout(()=>{n.onOpenChange(!0),I()},100))})),onPointerLeave:Vt(e.onPointerLeave,yI(B=>{var D,S;I();const v=(D=n.content)==null?void 0:D.getBoundingClientRect();if(v){const R=(S=n.content)==null?void 0:S.dataset.side,F=R==="right",N=F?-5:5,M=v[F?"left":"right"],P=v[F?"right":"left"];A.onPointerGraceIntentChange({area:[{x:B.clientX+N,y:B.clientY},{x:M,y:v.top},{x:P,y:v.top},{x:P,y:v.bottom},{x:M,y:v.bottom}],side:R}),window.clearTimeout(c.current),c.current=window.setTimeout(()=>A.onPointerGraceIntentChange(null),300)}else{if(A.onTriggerLeave(B),B.defaultPrevented)return;A.onPointerGraceIntentChange(null)}})),onKeyDown:Vt(e.onKeyDown,B=>{var D;const v=A.searchRef.current!=="";e.disabled||v&&B.key===" "||V1e[r.dir].includes(B.key)&&(n.onOpenChange(!0),(D=n.content)==null||D.focus(),B.preventDefault())})})})});AH.displayName=BI;var sH="MenuSubContent",aH=x.forwardRef((e,t)=>{const n=YG($a,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,A=dg($a,e.__scopeMenu),l=EI($a,e.__scopeMenu),c=iH(sH,e.__scopeMenu),f=x.useRef(null),h=ar(t,f);return p.jsx(CI.Provider,{scope:e.__scopeMenu,children:p.jsx(VA,{present:r||A.open,children:p.jsx(CI.Slot,{scope:e.__scopeMenu,children:p.jsx(y8,{id:c.contentId,"aria-labelledby":c.triggerId,...i,ref:h,align:"start",side:l.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:I=>{var B;l.isUsingKeyboardRef.current&&((B=f.current)==null||B.focus()),I.preventDefault()},onCloseAutoFocus:I=>I.preventDefault(),onFocusOutside:Vt(e.onFocusOutside,I=>{I.target!==c.trigger&&A.onOpenChange(!1)}),onEscapeKeyDown:Vt(e.onEscapeKeyDown,I=>{l.onClose(),I.preventDefault()}),onKeyDown:Vt(e.onKeyDown,I=>{var D;const B=I.currentTarget.contains(I.target),v=K1e[l.dir].includes(I.key);B&&v&&(A.onOpenChange(!1),(D=c.trigger)==null||D.focus(),I.preventDefault())})})})})})});aH.displayName=sH;function lH(e){return e?"open":"closed"}function Tv(e){return e==="indeterminate"}function Q8(e){return Tv(e)?"indeterminate":e?"checked":"unchecked"}function mme(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function Ime(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Cme(e,t,n){const r=t.length>1&&Array.from(t).every(c=>c===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let A=Ime(e,Math.max(i,0));r.length===1&&(A=A.filter(c=>c!==n));const l=A.find(c=>c.toLowerCase().startsWith(r.toLowerCase()));return l!==n?l:void 0}function Eme(e,t){const{x:n,y:r}=e;let i=!1;for(let A=0,l=t.length-1;Ar!=v>r&&n<(B-h)*(r-I)/(v-I)+h&&(i=!i)}return i}function Bme(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return Eme(n,t)}function yI(e){return t=>t.pointerType==="mouse"?e(t):void 0}var yme=HG,vme=C8,bme=JG,Qme=zG,wme=v8,xme=WG,_me=Rv,kme=VG,Dme=ZG,Sme=eH,Rme=nH,Tme=rH,Mme=oH,Nme=AH,Fme=aH,Ome=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],jme=Ome.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),Mv="DropdownMenu",[Lme]=Xs(Mv,[UG]),Bs=UG(),[Pme,cH]=Lme(Mv),uH=e=>{const{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:A,onOpenChange:l,modal:c=!0}=e,f=Bs(t),h=x.useRef(null),[I,B]=Za({prop:i,defaultProp:A??!1,onChange:l,caller:Mv});return p.jsx(Pme,{scope:t,triggerId:MA(),triggerRef:h,contentId:MA(),open:I,onOpenChange:B,onOpenToggle:x.useCallback(()=>B(v=>!v),[B]),modal:c,children:p.jsx(yme,{...f,open:I,onOpenChange:B,dir:r,modal:c,children:n})})};uH.displayName=Mv;var dH="DropdownMenuTrigger",fH=x.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,A=cH(dH,n),l=Bs(n);return p.jsx(vme,{asChild:!0,...l,children:p.jsx(jme.button,{type:"button",id:A.triggerId,"aria-haspopup":"menu","aria-expanded":A.open,"aria-controls":A.open?A.contentId:void 0,"data-state":A.open?"open":"closed","data-disabled":r?"":void 0,disabled:r,...i,ref:Vl(t,A.triggerRef),onPointerDown:Vt(e.onPointerDown,c=>{!r&&c.button===0&&c.ctrlKey===!1&&(A.onOpenToggle(),A.open||c.preventDefault())}),onKeyDown:Vt(e.onKeyDown,c=>{r||(["Enter"," "].includes(c.key)&&A.onOpenToggle(),c.key==="ArrowDown"&&A.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(c.key)&&c.preventDefault())})})})});fH.displayName=dH;var Ume="DropdownMenuPortal",gH=e=>{const{__scopeDropdownMenu:t,...n}=e,r=Bs(t);return p.jsx(bme,{...r,...n})};gH.displayName=Ume;var hH="DropdownMenuContent",pH=x.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=cH(hH,n),A=Bs(n),l=x.useRef(!1);return p.jsx(Qme,{id:i.contentId,"aria-labelledby":i.triggerId,...A,...r,ref:t,onCloseAutoFocus:Vt(e.onCloseAutoFocus,c=>{var f;l.current||((f=i.triggerRef.current)==null||f.focus()),l.current=!1,c.preventDefault()}),onInteractOutside:Vt(e.onInteractOutside,c=>{const f=c.detail.originalEvent,h=f.button===0&&f.ctrlKey===!0,I=f.button===2||h;(!i.modal||I)&&(l.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});pH.displayName=hH;var Gme="DropdownMenuGroup",mH=x.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Bs(n);return p.jsx(wme,{...i,...r,ref:t})});mH.displayName=Gme;var Hme="DropdownMenuLabel",IH=x.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Bs(n);return p.jsx(xme,{...i,...r,ref:t})});IH.displayName=Hme;var Yme="DropdownMenuItem",CH=x.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Bs(n);return p.jsx(_me,{...i,...r,ref:t})});CH.displayName=Yme;var Jme="DropdownMenuCheckboxItem",EH=x.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Bs(n);return p.jsx(kme,{...i,...r,ref:t})});EH.displayName=Jme;var zme="DropdownMenuRadioGroup",BH=x.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Bs(n);return p.jsx(Dme,{...i,...r,ref:t})});BH.displayName=zme;var Wme="DropdownMenuRadioItem",yH=x.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Bs(n);return p.jsx(Sme,{...i,...r,ref:t})});yH.displayName=Wme;var qme="DropdownMenuItemIndicator",vH=x.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Bs(n);return p.jsx(Rme,{...i,...r,ref:t})});vH.displayName=qme;var Xme="DropdownMenuSeparator",bH=x.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Bs(n);return p.jsx(Tme,{...i,...r,ref:t})});bH.displayName=Xme;var Vme="DropdownMenuArrow",Kme=x.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Bs(n);return p.jsx(Mme,{...i,...r,ref:t})});Kme.displayName=Vme;var Zme="DropdownMenuSubTrigger",QH=x.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Bs(n);return p.jsx(Nme,{...i,...r,ref:t})});QH.displayName=Zme;var $me="DropdownMenuSubContent",wH=x.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=Bs(n);return p.jsx(Fme,{...i,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});wH.displayName=$me;var xH=uH,_H=fH,w8=gH,kH=pH,eIe=mH,tIe=IH,DH=CH,nIe=EH,rIe=BH,oIe=yH,SH=vH,iIe=bH,AIe=QH,sIe=wH,aIe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],lIe=aIe.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),cIe="Label",RH=x.forwardRef((e,t)=>p.jsx(lIe.label,{...e,ref:t,onMouseDown:n=>{var r;n.target.closest("button, input, select, textarea")||((r=e.onMouseDown)==null||r.call(e,n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));RH.displayName=cIe;var uIe=RH;function vI(e,[t,n]){return Math.min(n,Math.max(t,e))}var dIe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],TH=dIe.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),Nv="Popover",[MH]=Xs(Nv,[Nd]),bI=Nd(),[fIe,Fd]=MH(Nv),NH=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:A,modal:l=!1}=e,c=bI(t),f=x.useRef(null),[h,I]=x.useState(!1),[B,v]=Za({prop:r,defaultProp:i??!1,onChange:A,caller:Nv});return p.jsx(wv,{...c,children:p.jsx(fIe,{scope:t,contentId:MA(),triggerRef:f,open:B,onOpenChange:v,onOpenToggle:x.useCallback(()=>v(D=>!D),[v]),hasCustomAnchor:h,onCustomAnchorAdd:x.useCallback(()=>I(!0),[]),onCustomAnchorRemove:x.useCallback(()=>I(!1),[]),modal:l,children:n})})};NH.displayName=Nv;var FH="PopoverAnchor",OH=x.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Fd(FH,n),A=bI(n),{onCustomAnchorAdd:l,onCustomAnchorRemove:c}=i;return x.useEffect(()=>(l(),()=>c()),[l,c]),p.jsx(hI,{...A,...r,ref:t})});OH.displayName=FH;var jH="PopoverTrigger",LH=x.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Fd(jH,n),A=bI(n),l=ar(t,i.triggerRef),c=p.jsx(TH.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":JH(i.open),...r,ref:l,onClick:Vt(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?c:p.jsx(hI,{asChild:!0,...A,children:c})});LH.displayName=jH;var x8="PopoverPortal",[gIe,hIe]=MH(x8,{forceMount:void 0}),PH=e=>{const{__scopePopover:t,forceMount:n,children:r,container:i}=e,A=Fd(x8,t);return p.jsx(gIe,{scope:t,forceMount:n,children:p.jsx(VA,{present:n||A.open,children:p.jsx(ag,{asChild:!0,container:i,children:r})})})};PH.displayName=x8;var ap="PopoverContent",UH=x.forwardRef((e,t)=>{const n=hIe(ap,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,A=Fd(ap,e.__scopePopover);return p.jsx(VA,{present:r||A.open,children:A.modal?p.jsx(mIe,{...i,ref:t}):p.jsx(IIe,{...i,ref:t})})});UH.displayName=ap;var pIe=Ho("PopoverContent.RemoveScroll"),mIe=x.forwardRef((e,t)=>{const n=Fd(ap,e.__scopePopover),r=x.useRef(null),i=ar(t,r),A=x.useRef(!1);return x.useEffect(()=>{const l=r.current;if(l)return fv(l)},[]),p.jsx(uI,{as:pIe,allowPinchZoom:!0,children:p.jsx(GH,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Vt(e.onCloseAutoFocus,l=>{var c;l.preventDefault(),A.current||((c=n.triggerRef.current)==null||c.focus())}),onPointerDownOutside:Vt(e.onPointerDownOutside,l=>{const c=l.detail.originalEvent,f=c.button===0&&c.ctrlKey===!0,h=c.button===2||f;A.current=h},{checkForDefaultPrevented:!1}),onFocusOutside:Vt(e.onFocusOutside,l=>l.preventDefault(),{checkForDefaultPrevented:!1})})})}),IIe=x.forwardRef((e,t)=>{const n=Fd(ap,e.__scopePopover),r=x.useRef(!1),i=x.useRef(!1);return p.jsx(GH,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:A=>{var l,c;(l=e.onCloseAutoFocus)==null||l.call(e,A),A.defaultPrevented||(r.current||((c=n.triggerRef.current)==null||c.focus()),A.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:A=>{var c,f;(c=e.onInteractOutside)==null||c.call(e,A),A.defaultPrevented||(r.current=!0,A.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const l=A.target;(f=n.triggerRef.current)!=null&&f.contains(l)&&A.preventDefault(),A.detail.originalEvent.type==="focusin"&&i.current&&A.preventDefault()}})}),GH=x.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:A,disableOutsidePointerEvents:l,onEscapeKeyDown:c,onPointerDownOutside:f,onFocusOutside:h,onInteractOutside:I,...B}=e,v=Fd(ap,n),D=bI(n);return iv(),p.jsx(lI,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:A,children:p.jsx(Z2,{asChild:!0,disableOutsidePointerEvents:l,onInteractOutside:I,onEscapeKeyDown:c,onPointerDownOutside:f,onFocusOutside:h,onDismiss:()=>v.onOpenChange(!1),children:p.jsx(xv,{"data-state":JH(v.open),role:"dialog",id:v.contentId,...D,...B,ref:t,style:{...B.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),HH="PopoverClose",YH=x.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Fd(HH,n);return p.jsx(TH.button,{type:"button",...r,ref:t,onClick:Vt(e.onClick,()=>i.onOpenChange(!1))})});YH.displayName=HH;var CIe="PopoverArrow",EIe=x.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=bI(n);return p.jsx(_v,{...i,...r,ref:t})});EIe.displayName=CIe;function JH(e){return e?"open":"closed"}var _8=NH,k8=OH,zH=LH,D8=PH,S8=UH,BIe=YH,yIe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],WH=yIe.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),R8="Progress",T8=100,[vIe]=Xs(R8),[bIe,QIe]=vIe(R8),qH=x.forwardRef((e,t)=>{const{__scopeProgress:n,value:r=null,max:i,getValueLabel:A=wIe,...l}=e;(i||i===0)&&!ZH(i)&&console.error(xIe(`${i}`,"Progress"));const c=ZH(i)?i:T8;r!==null&&!$H(r,c)&&console.error(_Ie(`${r}`,"Progress"));const f=$H(r,c)?r:null,h=Fv(f)?A(f,c):void 0;return p.jsx(bIe,{scope:n,value:f,max:c,children:p.jsx(WH.div,{"aria-valuemax":c,"aria-valuemin":0,"aria-valuenow":Fv(f)?f:void 0,"aria-valuetext":h,role:"progressbar","data-state":KH(f,c),"data-value":f??void 0,"data-max":c,...l,ref:t})})});qH.displayName=R8;var XH="ProgressIndicator",VH=x.forwardRef((e,t)=>{const{__scopeProgress:n,...r}=e,i=QIe(XH,n);return p.jsx(WH.div,{"data-state":KH(i.value,i.max),"data-value":i.value??void 0,"data-max":i.max,...r,ref:t})});VH.displayName=XH;function wIe(e,t){return`${Math.round(e/t*100)}%`}function KH(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function Fv(e){return typeof e=="number"}function ZH(e){return Fv(e)&&!isNaN(e)&&e>0}function $H(e,t){return Fv(e)&&!isNaN(e)&&e<=t&&e>=0}function xIe(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${T8}\`.`}function _Ie(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: - - a positive number - - less than the value passed to \`max\` (or ${T8} if no \`max\` prop is set) - - \`null\` or \`undefined\` if the progress is indeterminate. - -Defaulting to \`null\`.`}var kIe=qH,DIe=VH,SIe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],QI=SIe.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function RIe(e,t){return x.useReducer((n,r)=>t[n][r]??n,e)}var M8="ScrollArea",[eY]=Xs(M8),[TIe,el]=eY(M8),tY=x.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:i,scrollHideDelay:A=600,...l}=e,[c,f]=x.useState(null),[h,I]=x.useState(null),[B,v]=x.useState(null),[D,S]=x.useState(null),[R,F]=x.useState(null),[N,M]=x.useState(0),[P,G]=x.useState(0),[J,W]=x.useState(!1),[q,$]=x.useState(!1),oe=ar(t,se=>f(se)),K=K2(i);return p.jsx(TIe,{scope:n,type:r,dir:K,scrollHideDelay:A,scrollArea:c,viewport:h,onViewportChange:I,content:B,onContentChange:v,scrollbarX:D,onScrollbarXChange:S,scrollbarXEnabled:J,onScrollbarXEnabledChange:W,scrollbarY:R,onScrollbarYChange:F,scrollbarYEnabled:q,onScrollbarYEnabledChange:$,onCornerWidthChange:M,onCornerHeightChange:G,children:p.jsx(QI.div,{dir:K,...l,ref:oe,style:{position:"relative","--radix-scroll-area-corner-width":N+"px","--radix-scroll-area-corner-height":P+"px",...e.style}})})});tY.displayName=M8;var nY="ScrollAreaViewport",rY=x.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:i,...A}=e,l=el(nY,n),c=x.useRef(null),f=ar(t,c,l.onViewportChange);return p.jsxs(p.Fragment,{children:[p.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:i}),p.jsx(QI.div,{"data-radix-scroll-area-viewport":"",...A,ref:f,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:p.jsx("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});rY.displayName=nY;var Vc="ScrollAreaScrollbar",oY=x.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=el(Vc,e.__scopeScrollArea),{onScrollbarXEnabledChange:A,onScrollbarYEnabledChange:l}=i,c=e.orientation==="horizontal";return x.useEffect(()=>(c?A(!0):l(!0),()=>{c?A(!1):l(!1)}),[c,A,l]),i.type==="hover"?p.jsx(MIe,{...r,ref:t,forceMount:n}):i.type==="scroll"?p.jsx(NIe,{...r,ref:t,forceMount:n}):i.type==="auto"?p.jsx(iY,{...r,ref:t,forceMount:n}):i.type==="always"?p.jsx(N8,{...r,ref:t}):null});oY.displayName=Vc;var MIe=x.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=el(Vc,e.__scopeScrollArea),[A,l]=x.useState(!1);return x.useEffect(()=>{const c=i.scrollArea;let f=0;if(c){const h=()=>{window.clearTimeout(f),l(!0)},I=()=>{f=window.setTimeout(()=>l(!1),i.scrollHideDelay)};return c.addEventListener("pointerenter",h),c.addEventListener("pointerleave",I),()=>{window.clearTimeout(f),c.removeEventListener("pointerenter",h),c.removeEventListener("pointerleave",I)}}},[i.scrollArea,i.scrollHideDelay]),p.jsx(VA,{present:n||A,children:p.jsx(iY,{"data-state":A?"visible":"hidden",...r,ref:t})})}),NIe=x.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=el(Vc,e.__scopeScrollArea),A=e.orientation==="horizontal",l=Pv(()=>f("SCROLL_END"),100),[c,f]=RIe("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return x.useEffect(()=>{if(c==="idle"){const h=window.setTimeout(()=>f("HIDE"),i.scrollHideDelay);return()=>window.clearTimeout(h)}},[c,i.scrollHideDelay,f]),x.useEffect(()=>{const h=i.viewport,I=A?"scrollLeft":"scrollTop";if(h){let B=h[I];const v=()=>{const D=h[I];B!==D&&(f("SCROLL"),l()),B=D};return h.addEventListener("scroll",v),()=>h.removeEventListener("scroll",v)}},[i.viewport,A,f,l]),p.jsx(VA,{present:n||c!=="hidden",children:p.jsx(N8,{"data-state":c==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:Vt(e.onPointerEnter,()=>f("POINTER_ENTER")),onPointerLeave:Vt(e.onPointerLeave,()=>f("POINTER_LEAVE"))})})}),iY=x.forwardRef((e,t)=>{const n=el(Vc,e.__scopeScrollArea),{forceMount:r,...i}=e,[A,l]=x.useState(!1),c=e.orientation==="horizontal",f=Pv(()=>{if(n.viewport){const h=n.viewport.offsetWidth{const{orientation:n="vertical",...r}=e,i=el(Vc,e.__scopeScrollArea),A=x.useRef(null),l=x.useRef(0),[c,f]=x.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),h=cY(c.viewport,c.content),I={...r,sizes:c,onSizesChange:f,hasThumb:h>0&&h<1,onThumbChange:v=>A.current=v,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:v=>l.current=v};function B(v,D){return UIe(v,l.current,c,D)}return n==="horizontal"?p.jsx(FIe,{...I,ref:t,onThumbPositionChange:()=>{if(i.viewport&&A.current){const v=i.viewport.scrollLeft,D=uY(v,c,i.dir);A.current.style.transform=`translate3d(${D}px, 0, 0)`}},onWheelScroll:v=>{i.viewport&&(i.viewport.scrollLeft=v)},onDragScroll:v=>{i.viewport&&(i.viewport.scrollLeft=B(v,i.dir))}}):n==="vertical"?p.jsx(OIe,{...I,ref:t,onThumbPositionChange:()=>{if(i.viewport&&A.current){const v=i.viewport.scrollTop,D=uY(v,c);A.current.style.transform=`translate3d(0, ${D}px, 0)`}},onWheelScroll:v=>{i.viewport&&(i.viewport.scrollTop=v)},onDragScroll:v=>{i.viewport&&(i.viewport.scrollTop=B(v))}}):null}),FIe=x.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...i}=e,A=el(Vc,e.__scopeScrollArea),[l,c]=x.useState(),f=x.useRef(null),h=ar(t,f,A.onScrollbarXChange);return x.useEffect(()=>{f.current&&c(getComputedStyle(f.current))},[f]),p.jsx(sY,{"data-orientation":"horizontal",...i,ref:h,sizes:n,style:{bottom:0,left:A.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:A.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Lv(n)+"px",...e.style},onThumbPointerDown:I=>e.onThumbPointerDown(I.x),onDragScroll:I=>e.onDragScroll(I.x),onWheelScroll:(I,B)=>{if(A.viewport){const v=A.viewport.scrollLeft+I.deltaX;e.onWheelScroll(v),fY(v,B)&&I.preventDefault()}},onResize:()=>{f.current&&A.viewport&&l&&r({content:A.viewport.scrollWidth,viewport:A.viewport.offsetWidth,scrollbar:{size:f.current.clientWidth,paddingStart:jv(l.paddingLeft),paddingEnd:jv(l.paddingRight)}})}})}),OIe=x.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...i}=e,A=el(Vc,e.__scopeScrollArea),[l,c]=x.useState(),f=x.useRef(null),h=ar(t,f,A.onScrollbarYChange);return x.useEffect(()=>{f.current&&c(getComputedStyle(f.current))},[f]),p.jsx(sY,{"data-orientation":"vertical",...i,ref:h,sizes:n,style:{top:0,right:A.dir==="ltr"?0:void 0,left:A.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Lv(n)+"px",...e.style},onThumbPointerDown:I=>e.onThumbPointerDown(I.y),onDragScroll:I=>e.onDragScroll(I.y),onWheelScroll:(I,B)=>{if(A.viewport){const v=A.viewport.scrollTop+I.deltaY;e.onWheelScroll(v),fY(v,B)&&I.preventDefault()}},onResize:()=>{f.current&&A.viewport&&l&&r({content:A.viewport.scrollHeight,viewport:A.viewport.offsetHeight,scrollbar:{size:f.current.clientHeight,paddingStart:jv(l.paddingTop),paddingEnd:jv(l.paddingBottom)}})}})}),[jIe,AY]=eY(Vc),sY=x.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:A,onThumbPointerUp:l,onThumbPointerDown:c,onThumbPositionChange:f,onDragScroll:h,onWheelScroll:I,onResize:B,...v}=e,D=el(Vc,n),[S,R]=x.useState(null),F=ar(t,oe=>R(oe)),N=x.useRef(null),M=x.useRef(""),P=D.viewport,G=r.content-r.viewport,J=NA(I),W=NA(f),q=Pv(B,10);function $(oe){if(N.current){const K=oe.clientX-N.current.left,se=oe.clientY-N.current.top;h({x:K,y:se})}}return x.useEffect(()=>{const oe=K=>{const se=K.target;S!=null&&S.contains(se)&&J(K,G)};return document.addEventListener("wheel",oe,{passive:!1}),()=>document.removeEventListener("wheel",oe,{passive:!1})},[P,S,G,J]),x.useEffect(W,[r,W]),lp(S,q),lp(D.content,q),p.jsx(jIe,{scope:n,scrollbar:S,hasThumb:i,onThumbChange:NA(A),onThumbPointerUp:NA(l),onThumbPositionChange:W,onThumbPointerDown:NA(c),children:p.jsx(QI.div,{...v,ref:F,style:{position:"absolute",...v.style},onPointerDown:Vt(e.onPointerDown,oe=>{oe.button===0&&(oe.target.setPointerCapture(oe.pointerId),N.current=S.getBoundingClientRect(),M.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",D.viewport&&(D.viewport.style.scrollBehavior="auto"),$(oe))}),onPointerMove:Vt(e.onPointerMove,$),onPointerUp:Vt(e.onPointerUp,oe=>{const K=oe.target;K.hasPointerCapture(oe.pointerId)&&K.releasePointerCapture(oe.pointerId),document.body.style.webkitUserSelect=M.current,D.viewport&&(D.viewport.style.scrollBehavior=""),N.current=null})})})}),Ov="ScrollAreaThumb",aY=x.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=AY(Ov,e.__scopeScrollArea);return p.jsx(VA,{present:n||i.hasThumb,children:p.jsx(LIe,{ref:t,...r})})}),LIe=x.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...i}=e,A=el(Ov,n),l=AY(Ov,n),{onThumbPositionChange:c}=l,f=ar(t,B=>l.onThumbChange(B)),h=x.useRef(void 0),I=Pv(()=>{h.current&&(h.current(),h.current=void 0)},100);return x.useEffect(()=>{const B=A.viewport;if(B){const v=()=>{if(I(),!h.current){const D=GIe(B,c);h.current=D,c()}};return c(),B.addEventListener("scroll",v),()=>B.removeEventListener("scroll",v)}},[A.viewport,I,c]),p.jsx(QI.div,{"data-state":l.hasThumb?"visible":"hidden",...i,ref:f,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:Vt(e.onPointerDownCapture,B=>{const v=B.target.getBoundingClientRect(),D=B.clientX-v.left,S=B.clientY-v.top;l.onThumbPointerDown({x:D,y:S})}),onPointerUp:Vt(e.onPointerUp,l.onThumbPointerUp)})});aY.displayName=Ov;var F8="ScrollAreaCorner",lY=x.forwardRef((e,t)=>{const n=el(F8,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?p.jsx(PIe,{...e,ref:t}):null});lY.displayName=F8;var PIe=x.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,i=el(F8,n),[A,l]=x.useState(0),[c,f]=x.useState(0),h=!!(A&&c);return lp(i.scrollbarX,()=>{var B;const I=((B=i.scrollbarX)==null?void 0:B.offsetHeight)||0;i.onCornerHeightChange(I),f(I)}),lp(i.scrollbarY,()=>{var B;const I=((B=i.scrollbarY)==null?void 0:B.offsetWidth)||0;i.onCornerWidthChange(I),l(I)}),h?p.jsx(QI.div,{...r,ref:t,style:{width:A,height:c,position:"absolute",right:i.dir==="ltr"?0:void 0,left:i.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function jv(e){return e?parseInt(e,10):0}function cY(e,t){const n=e/t;return isNaN(n)?0:n}function Lv(e){const t=cY(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function UIe(e,t,n,r="ltr"){const i=Lv(n),A=i/2,l=t||A,c=i-l,f=n.scrollbar.paddingStart+l,h=n.scrollbar.size-n.scrollbar.paddingEnd-c,I=n.content-n.viewport,B=r==="ltr"?[0,I]:[I*-1,0];return dY([f,h],B)(e)}function uY(e,t,n="ltr"){const r=Lv(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,A=t.scrollbar.size-i,l=t.content-t.viewport,c=A-r,f=n==="ltr"?[0,l]:[l*-1,0],h=vI(e,f);return dY([0,l],[0,c])(h)}function dY(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function fY(e,t){return e>0&&e{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return function i(){const A={left:e.scrollLeft,top:e.scrollTop},l=n.left!==A.left,c=n.top!==A.top;(l||c)&&t(),n=A,r=window.requestAnimationFrame(i)}(),()=>window.cancelAnimationFrame(r)};function Pv(e,t){const n=NA(e),r=x.useRef(0);return x.useEffect(()=>()=>window.clearTimeout(r.current),[]),x.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function lp(e,t){const n=NA(t);TA(()=>{let r=0;if(e){const i=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return i.observe(e),()=>{window.cancelAnimationFrame(r),i.unobserve(e)}}},[e,n])}var gY=tY,hY=rY,O8=oY,j8=aY,HIe=lY,YIe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ya=YIe.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),JIe=[" ","Enter","ArrowUp","ArrowDown"],zIe=[" ","Enter"],fg="Select",[Uv,Gv,WIe]=rv(fg),[cp]=Xs(fg,[WIe,Nd]),Hv=Nd(),[qIe,Od]=cp(fg),[XIe,VIe]=cp(fg),pY=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:A,value:l,defaultValue:c,onValueChange:f,dir:h,name:I,autoComplete:B,disabled:v,required:D,form:S}=e,R=Hv(t),[F,N]=x.useState(null),[M,P]=x.useState(null),[G,J]=x.useState(!1),W=K2(h),[q,$]=Za({prop:r,defaultProp:i??!1,onChange:A,caller:fg}),[oe,K]=Za({prop:l,defaultProp:c,onChange:f,caller:fg}),se=x.useRef(null),Ee=F?S||!!F.closest("form"):!0,[ie,Ae]=x.useState(new Set),Be=Array.from(ie).map(ae=>ae.props.value).join(";");return p.jsx(wv,{...R,children:p.jsxs(qIe,{required:D,scope:t,trigger:F,onTriggerChange:N,valueNode:M,onValueNodeChange:P,valueNodeHasChildren:G,onValueNodeHasChildrenChange:J,contentId:MA(),value:oe,onValueChange:K,open:q,onOpenChange:$,dir:W,triggerPointerDownPosRef:se,disabled:v,children:[p.jsx(Uv.Provider,{scope:t,children:p.jsx(XIe,{scope:e.__scopeSelect,onNativeOptionAdd:x.useCallback(ae=>{Ae(Ce=>new Set(Ce).add(ae))},[]),onNativeOptionRemove:x.useCallback(ae=>{Ae(Ce=>{const de=new Set(Ce);return de.delete(ae),de})},[]),children:n})}),Ee?p.jsxs(LY,{"aria-hidden":!0,required:D,tabIndex:-1,name:I,autoComplete:B,value:oe,onChange:ae=>K(ae.target.value),disabled:v,form:S,children:[oe===void 0?p.jsx("option",{value:""}):null,Array.from(ie)]},Be):null]})})};pY.displayName=fg;var mY="SelectTrigger",IY=x.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...i}=e,A=Hv(n),l=Od(mY,n),c=l.disabled||r,f=ar(t,l.onTriggerChange),h=Gv(n),I=x.useRef("touch"),[B,v,D]=UY(R=>{const F=h().filter(P=>!P.disabled),N=F.find(P=>P.value===l.value),M=GY(F,R,N);M!==void 0&&l.onValueChange(M.value)}),S=R=>{c||(l.onOpenChange(!0),D()),R&&(l.triggerPointerDownPosRef.current={x:Math.round(R.pageX),y:Math.round(R.pageY)})};return p.jsx(hI,{asChild:!0,...A,children:p.jsx(ya.button,{type:"button",role:"combobox","aria-controls":l.contentId,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":"none",dir:l.dir,"data-state":l.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":PY(l.value)?"":void 0,...i,ref:f,onClick:Vt(i.onClick,R=>{R.currentTarget.focus(),I.current!=="mouse"&&S(R)}),onPointerDown:Vt(i.onPointerDown,R=>{I.current=R.pointerType;const F=R.target;F.hasPointerCapture(R.pointerId)&&F.releasePointerCapture(R.pointerId),R.button===0&&R.ctrlKey===!1&&R.pointerType==="mouse"&&(S(R),R.preventDefault())}),onKeyDown:Vt(i.onKeyDown,R=>{const F=B.current!=="";!(R.ctrlKey||R.altKey||R.metaKey)&&R.key.length===1&&v(R.key),!(F&&R.key===" ")&&JIe.includes(R.key)&&(S(),R.preventDefault())})})})});IY.displayName=mY;var CY="SelectValue",EY=x.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,children:A,placeholder:l="",...c}=e,f=Od(CY,n),{onValueNodeHasChildrenChange:h}=f,I=A!==void 0,B=ar(t,f.onValueNodeChange);return TA(()=>{h(I)},[h,I]),p.jsx(ya.span,{...c,ref:B,style:{pointerEvents:"none"},children:PY(f.value)?p.jsx(p.Fragment,{children:l}):A})});EY.displayName=CY;var KIe="SelectIcon",BY=x.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...i}=e;return p.jsx(ya.span,{"aria-hidden":!0,...i,ref:t,children:r||"\u25BC"})});BY.displayName=KIe;var ZIe="SelectPortal",yY=e=>p.jsx(ag,{asChild:!0,...e});yY.displayName=ZIe;var gg="SelectContent",vY=x.forwardRef((e,t)=>{const n=Od(gg,e.__scopeSelect),[r,i]=x.useState();if(TA(()=>{i(new DocumentFragment)},[]),!n.open){const A=r;return A?Yc.createPortal(p.jsx(bY,{scope:e.__scopeSelect,children:p.jsx(Uv.Slot,{scope:e.__scopeSelect,children:p.jsx("div",{children:e.children})})}),A):null}return p.jsx(QY,{...e,ref:t})});vY.displayName=gg;var $l=10,[bY,jd]=cp(gg),$Ie="SelectContentImpl",eCe=Ho("SelectContent.RemoveScroll"),QY=x.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:i,onEscapeKeyDown:A,onPointerDownOutside:l,side:c,sideOffset:f,align:h,alignOffset:I,arrowPadding:B,collisionBoundary:v,collisionPadding:D,sticky:S,hideWhenDetached:R,avoidCollisions:F,...N}=e,M=Od(gg,n),[P,G]=x.useState(null),[J,W]=x.useState(null),q=ar(t,_e=>G(_e)),[$,oe]=x.useState(null),[K,se]=x.useState(null),Ee=Gv(n),[ie,Ae]=x.useState(!1),Be=x.useRef(!1);x.useEffect(()=>{if(P)return fv(P)},[P]),iv();const ae=x.useCallback(_e=>{const[xe,...ve]=Ee().map(He=>He.ref.current),[Ue]=ve.slice(-1),At=document.activeElement;for(const He of _e)if(He===At||(He==null||He.scrollIntoView({block:"nearest"}),He===xe&&J&&(J.scrollTop=0),He===Ue&&J&&(J.scrollTop=J.scrollHeight),He==null||He.focus(),document.activeElement!==At))return},[Ee,J]),Ce=x.useCallback(()=>ae([$,P]),[ae,$,P]);x.useEffect(()=>{ie&&Ce()},[ie,Ce]);const{onOpenChange:de,triggerPointerDownPosRef:ge}=M;x.useEffect(()=>{if(P){let _e={x:0,y:0};const xe=Ue=>{var At,He;_e={x:Math.abs(Math.round(Ue.pageX)-(((At=ge.current)==null?void 0:At.x)??0)),y:Math.abs(Math.round(Ue.pageY)-(((He=ge.current)==null?void 0:He.y)??0))}},ve=Ue=>{_e.x<=10&&_e.y<=10?Ue.preventDefault():P.contains(Ue.target)||de(!1),document.removeEventListener("pointermove",xe),ge.current=null};return ge.current!==null&&(document.addEventListener("pointermove",xe),document.addEventListener("pointerup",ve,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",xe),document.removeEventListener("pointerup",ve,{capture:!0})}}},[P,de,ge]),x.useEffect(()=>{const _e=()=>de(!1);return window.addEventListener("blur",_e),window.addEventListener("resize",_e),()=>{window.removeEventListener("blur",_e),window.removeEventListener("resize",_e)}},[de]);const[be,Te]=UY(_e=>{const xe=Ee().filter(At=>!At.disabled),ve=xe.find(At=>At.ref.current===document.activeElement),Ue=GY(xe,_e,ve);Ue&&setTimeout(()=>Ue.ref.current.focus())}),me=x.useCallback((_e,xe,ve)=>{const Ue=!Be.current&&!ve;(M.value!==void 0&&M.value===xe||Ue)&&(oe(_e),Ue&&(Be.current=!0))},[M.value]),Ye=x.useCallback(()=>P==null?void 0:P.focus(),[P]),rt=x.useCallback((_e,xe,ve)=>{const Ue=!Be.current&&!ve;(M.value!==void 0&&M.value===xe||Ue)&&se(_e)},[M.value]),We=r==="popper"?L8:wY,De=We===L8?{side:c,sideOffset:f,align:h,alignOffset:I,arrowPadding:B,collisionBoundary:v,collisionPadding:D,sticky:S,hideWhenDetached:R,avoidCollisions:F}:{};return p.jsx(bY,{scope:n,content:P,viewport:J,onViewportChange:W,itemRefCallback:me,selectedItem:$,onItemLeave:Ye,itemTextRefCallback:rt,focusSelectedItem:Ce,selectedItemText:K,position:r,isPositioned:ie,searchRef:be,children:p.jsx(uI,{as:eCe,allowPinchZoom:!0,children:p.jsx(lI,{asChild:!0,trapped:M.open,onMountAutoFocus:_e=>{_e.preventDefault()},onUnmountAutoFocus:Vt(i,_e=>{var xe;(xe=M.trigger)==null||xe.focus({preventScroll:!0}),_e.preventDefault()}),children:p.jsx(Z2,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:A,onPointerDownOutside:l,onFocusOutside:_e=>_e.preventDefault(),onDismiss:()=>M.onOpenChange(!1),children:p.jsx(We,{role:"listbox",id:M.contentId,"data-state":M.open?"open":"closed",dir:M.dir,onContextMenu:_e=>_e.preventDefault(),...N,...De,onPlaced:()=>Ae(!0),ref:q,style:{display:"flex",flexDirection:"column",outline:"none",...N.style},onKeyDown:Vt(N.onKeyDown,_e=>{const xe=_e.ctrlKey||_e.altKey||_e.metaKey;if(_e.key==="Tab"&&_e.preventDefault(),!xe&&_e.key.length===1&&Te(_e.key),["ArrowUp","ArrowDown","Home","End"].includes(_e.key)){let ve=Ee().filter(Ue=>!Ue.disabled).map(Ue=>Ue.ref.current);if(["ArrowUp","End"].includes(_e.key)&&(ve=ve.slice().reverse()),["ArrowUp","ArrowDown"].includes(_e.key)){const Ue=_e.target,At=ve.indexOf(Ue);ve=ve.slice(At+1)}setTimeout(()=>ae(ve)),_e.preventDefault()}})})})})})})});QY.displayName=$Ie;var tCe="SelectItemAlignedPosition",wY=x.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...i}=e,A=Od(gg,n),l=jd(gg,n),[c,f]=x.useState(null),[h,I]=x.useState(null),B=ar(t,q=>I(q)),v=Gv(n),D=x.useRef(!1),S=x.useRef(!0),{viewport:R,selectedItem:F,selectedItemText:N,focusSelectedItem:M}=l,P=x.useCallback(()=>{if(A.trigger&&A.valueNode&&c&&h&&R&&F&&N){const q=A.trigger.getBoundingClientRect(),$=h.getBoundingClientRect(),oe=A.valueNode.getBoundingClientRect(),K=N.getBoundingClientRect();if(A.dir!=="rtl"){const Ue=K.left-$.left,At=oe.left-Ue,He=q.left-At,gt=q.width+He,ut=Math.max(gt,$.width),bt=window.innerWidth-$l,zt=vI(At,[$l,Math.max($l,bt-ut)]);c.style.minWidth=gt+"px",c.style.left=zt+"px"}else{const Ue=$.right-K.right,At=window.innerWidth-oe.right-Ue,He=window.innerWidth-q.right-At,gt=q.width+He,ut=Math.max(gt,$.width),bt=window.innerWidth-$l,zt=vI(At,[$l,Math.max($l,bt-ut)]);c.style.minWidth=gt+"px",c.style.right=zt+"px"}const se=v(),Ee=window.innerHeight-$l*2,ie=R.scrollHeight,Ae=window.getComputedStyle(h),Be=parseInt(Ae.borderTopWidth,10),ae=parseInt(Ae.paddingTop,10),Ce=parseInt(Ae.borderBottomWidth,10),de=parseInt(Ae.paddingBottom,10),ge=Be+ae+ie+de+Ce,be=Math.min(F.offsetHeight*5,ge),Te=window.getComputedStyle(R),me=parseInt(Te.paddingTop,10),Ye=parseInt(Te.paddingBottom,10),rt=q.top+q.height/2-$l,We=Ee-rt,De=F.offsetHeight/2,_e=F.offsetTop+De,xe=Be+ae+_e,ve=ge-xe;if(xe<=rt){const Ue=se.length>0&&F===se[se.length-1].ref.current;c.style.bottom="0px";const At=h.clientHeight-R.offsetTop-R.offsetHeight,He=Math.max(We,De+(Ue?Ye:0)+At+Ce),gt=xe+He;c.style.height=gt+"px"}else{const Ue=se.length>0&&F===se[0].ref.current;c.style.top="0px";const At=Math.max(rt,Be+R.offsetTop+(Ue?me:0)+De)+ve;c.style.height=At+"px",R.scrollTop=xe-rt+R.offsetTop}c.style.margin=`${$l}px 0`,c.style.minHeight=be+"px",c.style.maxHeight=Ee+"px",r==null||r(),requestAnimationFrame(()=>D.current=!0)}},[v,A.trigger,A.valueNode,c,h,R,F,N,A.dir,r]);TA(()=>P(),[P]);const[G,J]=x.useState();TA(()=>{h&&J(window.getComputedStyle(h).zIndex)},[h]);const W=x.useCallback(q=>{q&&S.current===!0&&(P(),M==null||M(),S.current=!1)},[P,M]);return p.jsx(rCe,{scope:n,contentWrapper:c,shouldExpandOnScrollRef:D,onScrollButtonChange:W,children:p.jsx("div",{ref:f,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:G},children:p.jsx(ya.div,{...i,ref:B,style:{boxSizing:"border-box",maxHeight:"100%",...i.style}})})})});wY.displayName=tCe;var nCe="SelectPopperPosition",L8=x.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:i=$l,...A}=e,l=Hv(n);return p.jsx(xv,{...l,...A,ref:t,align:r,collisionPadding:i,style:{boxSizing:"border-box",...A.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});L8.displayName=nCe;var[rCe,P8]=cp(gg,{}),U8="SelectViewport",xY=x.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...i}=e,A=jd(U8,n),l=P8(U8,n),c=ar(t,A.onViewportChange),f=x.useRef(0);return p.jsxs(p.Fragment,{children:[p.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:r}),p.jsx(Uv.Slot,{scope:n,children:p.jsx(ya.div,{"data-radix-select-viewport":"",role:"presentation",...i,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...i.style},onScroll:Vt(i.onScroll,h=>{const I=h.currentTarget,{contentWrapper:B,shouldExpandOnScrollRef:v}=l;if(v!=null&&v.current&&B){const D=Math.abs(f.current-I.scrollTop);if(D>0){const S=window.innerHeight-$l*2,R=parseFloat(B.style.minHeight),F=parseFloat(B.style.height),N=Math.max(R,F);if(N0?G:0,B.style.justifyContent="flex-end")}}}f.current=I.scrollTop})})})]})});xY.displayName=U8;var _Y="SelectGroup",[oCe,iCe]=cp(_Y),kY=x.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=MA();return p.jsx(oCe,{scope:n,id:i,children:p.jsx(ya.div,{role:"group","aria-labelledby":i,...r,ref:t})})});kY.displayName=_Y;var DY="SelectLabel",SY=x.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=iCe(DY,n);return p.jsx(ya.div,{id:i.id,...r,ref:t})});SY.displayName=DY;var Yv="SelectItem",[ACe,RY]=cp(Yv),TY=x.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:i=!1,textValue:A,...l}=e,c=Od(Yv,n),f=jd(Yv,n),h=c.value===r,[I,B]=x.useState(A??""),[v,D]=x.useState(!1),S=ar(t,M=>{var P;return(P=f.itemRefCallback)==null?void 0:P.call(f,M,r,i)}),R=MA(),F=x.useRef("touch"),N=()=>{i||(c.onValueChange(r),c.onOpenChange(!1))};if(r==="")throw new Error("A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return p.jsx(ACe,{scope:n,value:r,disabled:i,textId:R,isSelected:h,onItemTextChange:x.useCallback(M=>{B(P=>P||((M==null?void 0:M.textContent)??"").trim())},[]),children:p.jsx(Uv.ItemSlot,{scope:n,value:r,disabled:i,textValue:I,children:p.jsx(ya.div,{role:"option","aria-labelledby":R,"data-highlighted":v?"":void 0,"aria-selected":h&&v,"data-state":h?"checked":"unchecked","aria-disabled":i||void 0,"data-disabled":i?"":void 0,tabIndex:i?void 0:-1,...l,ref:S,onFocus:Vt(l.onFocus,()=>D(!0)),onBlur:Vt(l.onBlur,()=>D(!1)),onClick:Vt(l.onClick,()=>{F.current!=="mouse"&&N()}),onPointerUp:Vt(l.onPointerUp,()=>{F.current==="mouse"&&N()}),onPointerDown:Vt(l.onPointerDown,M=>{F.current=M.pointerType}),onPointerMove:Vt(l.onPointerMove,M=>{var P;F.current=M.pointerType,i?(P=f.onItemLeave)==null||P.call(f):F.current==="mouse"&&M.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Vt(l.onPointerLeave,M=>{var P;M.currentTarget===document.activeElement&&((P=f.onItemLeave)==null||P.call(f))}),onKeyDown:Vt(l.onKeyDown,M=>{var P;((P=f.searchRef)==null?void 0:P.current)!==""&&M.key===" "||(zIe.includes(M.key)&&N(),M.key===" "&&M.preventDefault())})})})})});TY.displayName=Yv;var wI="SelectItemText",MY=x.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,...A}=e,l=Od(wI,n),c=jd(wI,n),f=RY(wI,n),h=VIe(wI,n),[I,B]=x.useState(null),v=ar(t,N=>B(N),f.onItemTextChange,N=>{var M;return(M=c.itemTextRefCallback)==null?void 0:M.call(c,N,f.value,f.disabled)}),D=I==null?void 0:I.textContent,S=x.useMemo(()=>p.jsx("option",{value:f.value,disabled:f.disabled,children:D},f.value),[f.disabled,f.value,D]),{onNativeOptionAdd:R,onNativeOptionRemove:F}=h;return TA(()=>(R(S),()=>F(S)),[R,F,S]),p.jsxs(p.Fragment,{children:[p.jsx(ya.span,{id:f.textId,...A,ref:v}),f.isSelected&&l.valueNode&&!l.valueNodeHasChildren?Yc.createPortal(A.children,l.valueNode):null]})});MY.displayName=wI;var NY="SelectItemIndicator",FY=x.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return RY(NY,n).isSelected?p.jsx(ya.span,{"aria-hidden":!0,...r,ref:t}):null});FY.displayName=NY;var G8="SelectScrollUpButton",sCe=x.forwardRef((e,t)=>{const n=jd(G8,e.__scopeSelect),r=P8(G8,e.__scopeSelect),[i,A]=x.useState(!1),l=ar(t,r.onScrollButtonChange);return TA(()=>{if(n.viewport&&n.isPositioned){let c=function(){const h=f.scrollTop>0;A(h)};const f=n.viewport;return c(),f.addEventListener("scroll",c),()=>f.removeEventListener("scroll",c)}},[n.viewport,n.isPositioned]),i?p.jsx(OY,{...e,ref:l,onAutoScroll:()=>{const{viewport:c,selectedItem:f}=n;c&&f&&(c.scrollTop=c.scrollTop-f.offsetHeight)}}):null});sCe.displayName=G8;var H8="SelectScrollDownButton",aCe=x.forwardRef((e,t)=>{const n=jd(H8,e.__scopeSelect),r=P8(H8,e.__scopeSelect),[i,A]=x.useState(!1),l=ar(t,r.onScrollButtonChange);return TA(()=>{if(n.viewport&&n.isPositioned){let c=function(){const h=f.scrollHeight-f.clientHeight,I=Math.ceil(f.scrollTop)f.removeEventListener("scroll",c)}},[n.viewport,n.isPositioned]),i?p.jsx(OY,{...e,ref:l,onAutoScroll:()=>{const{viewport:c,selectedItem:f}=n;c&&f&&(c.scrollTop=c.scrollTop+f.offsetHeight)}}):null});aCe.displayName=H8;var OY=x.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...i}=e,A=jd("SelectScrollButton",n),l=x.useRef(null),c=Gv(n),f=x.useCallback(()=>{l.current!==null&&(window.clearInterval(l.current),l.current=null)},[]);return x.useEffect(()=>()=>f(),[f]),TA(()=>{var h,I;(I=(h=c().find(B=>B.ref.current===document.activeElement))==null?void 0:h.ref.current)==null||I.scrollIntoView({block:"nearest"})},[c]),p.jsx(ya.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:Vt(i.onPointerDown,()=>{l.current===null&&(l.current=window.setInterval(r,50))}),onPointerMove:Vt(i.onPointerMove,()=>{var h;(h=A.onItemLeave)==null||h.call(A),l.current===null&&(l.current=window.setInterval(r,50))}),onPointerLeave:Vt(i.onPointerLeave,()=>{f()})})}),lCe="SelectSeparator",jY=x.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return p.jsx(ya.div,{"aria-hidden":!0,...r,ref:t})});jY.displayName=lCe;var Y8="SelectArrow",cCe=x.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=Hv(n),A=Od(Y8,n),l=jd(Y8,n);return A.open&&l.position==="popper"?p.jsx(_v,{...i,...r,ref:t}):null});cCe.displayName=Y8;var uCe="SelectBubbleInput",LY=x.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const i=x.useRef(null),A=ar(r,i),l=$3(t);return x.useEffect(()=>{const c=i.current;if(!c)return;const f=window.HTMLSelectElement.prototype,h=Object.getOwnPropertyDescriptor(f,"value").set;if(l!==t&&h){const I=new Event("change",{bubbles:!0});h.call(c,t),c.dispatchEvent(I)}},[l,t]),p.jsx(ya.select,{...n,style:{...lU,...n.style},ref:A,defaultValue:t})});LY.displayName=uCe;function PY(e){return e===""||e===void 0}function UY(e){const t=NA(e),n=x.useRef(""),r=x.useRef(0),i=x.useCallback(l=>{const c=n.current+l;t(c),function f(h){n.current=h,window.clearTimeout(r.current),h!==""&&(r.current=window.setTimeout(()=>f(""),1e3))}(c)},[t]),A=x.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return x.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,A]}function GY(e,t,n){const r=t.length>1&&Array.from(t).every(c=>c===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let A=dCe(e,Math.max(i,0));r.length===1&&(A=A.filter(c=>c!==n));const l=A.find(c=>c.textValue.toLowerCase().startsWith(r.toLowerCase()));return l!==n?l:void 0}function dCe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var fCe=pY,gCe=IY,hCe=EY,pCe=BY,mCe=yY,ICe=vY,CCe=xY,ECe=kY,BCe=SY,yCe=TY,vCe=MY,bCe=FY,QCe=jY,wCe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],xI=wCe.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),HY=["PageUp","PageDown"],YY=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],JY={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},up="Slider",[J8,xCe,_Ce]=rv(up),[zY]=Xs(up,[_Ce]),[kCe,Jv]=zY(up),WY=x.forwardRef((e,t)=>{const{name:n,min:r=0,max:i=100,step:A=1,orientation:l="horizontal",disabled:c=!1,minStepsBetweenThumbs:f=0,defaultValue:h=[r],value:I,onValueChange:B=()=>{},onValueCommit:v=()=>{},inverted:D=!1,form:S,...R}=e,F=x.useRef(new Set),N=x.useRef(0),M=l==="horizontal"?DCe:SCe,[P=[],G]=Za({prop:I,defaultProp:h,onChange:K=>{var se;(se=[...F.current][N.current])==null||se.focus(),B(K)}}),J=x.useRef(P);function W(K){const se=FCe(P,K);oe(K,se)}function q(K){oe(K,N.current)}function $(){const K=J.current[N.current];P[N.current]!==K&&v(P)}function oe(K,se,{commit:Ee}={commit:!1}){const ie=PCe(A),Ae=UCe(Math.round((K-r)/A)*A+r,ie),Be=vI(Ae,[r,i]);G((ae=[])=>{const Ce=MCe(ae,Be,se);if(LCe(Ce,f*A)){N.current=Ce.indexOf(Be);const de=String(Ce)!==String(ae);return de&&Ee&&v(Ce),de?Ce:ae}else return ae})}return p.jsx(kCe,{scope:e.__scopeSlider,name:n,disabled:c,min:r,max:i,valueIndexToChangeRef:N,thumbs:F.current,values:P,orientation:l,form:S,children:p.jsx(J8.Provider,{scope:e.__scopeSlider,children:p.jsx(J8.Slot,{scope:e.__scopeSlider,children:p.jsx(M,{"aria-disabled":c,"data-disabled":c?"":void 0,...R,ref:t,onPointerDown:Vt(R.onPointerDown,()=>{c||(J.current=P)}),min:r,max:i,inverted:D,onSlideStart:c?void 0:W,onSlideMove:c?void 0:q,onSlideEnd:c?void 0:$,onHomeKeyDown:()=>!c&&oe(r,0,{commit:!0}),onEndKeyDown:()=>!c&&oe(i,P.length-1,{commit:!0}),onStepKeyDown:({event:K,direction:se})=>{if(!c){const Ee=HY.includes(K.key)||K.shiftKey&&YY.includes(K.key)?10:1,ie=N.current,Ae=P[ie],Be=A*Ee*se;oe(Ae+Be,ie,{commit:!0})}}})})})})});WY.displayName=up;var[qY,XY]=zY(up,{startEdge:"left",endEdge:"right",size:"width",direction:1}),DCe=x.forwardRef((e,t)=>{const{min:n,max:r,dir:i,inverted:A,onSlideStart:l,onSlideMove:c,onSlideEnd:f,onStepKeyDown:h,...I}=e,[B,v]=x.useState(null),D=ar(t,P=>v(P)),S=x.useRef(void 0),R=K2(i),F=R==="ltr",N=F&&!A||!F&&A;function M(P){const G=S.current||B.getBoundingClientRect(),J=[0,G.width],W=q8(J,N?[n,r]:[r,n]);return S.current=G,W(P-G.left)}return p.jsx(qY,{scope:e.__scopeSlider,startEdge:N?"left":"right",endEdge:N?"right":"left",direction:N?1:-1,size:"width",children:p.jsx(VY,{dir:R,"data-orientation":"horizontal",...I,ref:D,style:{...I.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:P=>{const G=M(P.clientX);l==null||l(G)},onSlideMove:P=>{const G=M(P.clientX);c==null||c(G)},onSlideEnd:()=>{S.current=void 0,f==null||f()},onStepKeyDown:P=>{const G=JY[N?"from-left":"from-right"].includes(P.key);h==null||h({event:P,direction:G?-1:1})}})})}),SCe=x.forwardRef((e,t)=>{const{min:n,max:r,inverted:i,onSlideStart:A,onSlideMove:l,onSlideEnd:c,onStepKeyDown:f,...h}=e,I=x.useRef(null),B=ar(t,I),v=x.useRef(void 0),D=!i;function S(R){const F=v.current||I.current.getBoundingClientRect(),N=[0,F.height],M=q8(N,D?[r,n]:[n,r]);return v.current=F,M(R-F.top)}return p.jsx(qY,{scope:e.__scopeSlider,startEdge:D?"bottom":"top",endEdge:D?"top":"bottom",size:"height",direction:D?1:-1,children:p.jsx(VY,{"data-orientation":"vertical",...h,ref:B,style:{...h.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:R=>{const F=S(R.clientY);A==null||A(F)},onSlideMove:R=>{const F=S(R.clientY);l==null||l(F)},onSlideEnd:()=>{v.current=void 0,c==null||c()},onStepKeyDown:R=>{const F=JY[D?"from-bottom":"from-top"].includes(R.key);f==null||f({event:R,direction:F?-1:1})}})})}),VY=x.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:i,onSlideEnd:A,onHomeKeyDown:l,onEndKeyDown:c,onStepKeyDown:f,...h}=e,I=Jv(up,n);return p.jsx(xI.span,{...h,ref:t,onKeyDown:Vt(e.onKeyDown,B=>{B.key==="Home"?(l(B),B.preventDefault()):B.key==="End"?(c(B),B.preventDefault()):HY.concat(YY).includes(B.key)&&(f(B),B.preventDefault())}),onPointerDown:Vt(e.onPointerDown,B=>{const v=B.target;v.setPointerCapture(B.pointerId),B.preventDefault(),I.thumbs.has(v)?v.focus():r(B)}),onPointerMove:Vt(e.onPointerMove,B=>{B.target.hasPointerCapture(B.pointerId)&&i(B)}),onPointerUp:Vt(e.onPointerUp,B=>{const v=B.target;v.hasPointerCapture(B.pointerId)&&(v.releasePointerCapture(B.pointerId),A(B))})})}),KY="SliderTrack",ZY=x.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,i=Jv(KY,n);return p.jsx(xI.span,{"data-disabled":i.disabled?"":void 0,"data-orientation":i.orientation,...r,ref:t})});ZY.displayName=KY;var z8="SliderRange",$Y=x.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,i=Jv(z8,n),A=XY(z8,n),l=x.useRef(null),c=ar(t,l),f=i.values.length,h=i.values.map(v=>nJ(v,i.min,i.max)),I=f>1?Math.min(...h):0,B=100-Math.max(...h);return p.jsx(xI.span,{"data-orientation":i.orientation,"data-disabled":i.disabled?"":void 0,...r,ref:c,style:{...e.style,[A.startEdge]:I+"%",[A.endEdge]:B+"%"}})});$Y.displayName=z8;var W8="SliderThumb",eJ=x.forwardRef((e,t)=>{const n=xCe(e.__scopeSlider),[r,i]=x.useState(null),A=ar(t,c=>i(c)),l=x.useMemo(()=>r?n().findIndex(c=>c.ref.current===r):-1,[n,r]);return p.jsx(RCe,{...e,ref:A,index:l})}),RCe=x.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:i,...A}=e,l=Jv(W8,n),c=XY(W8,n),[f,h]=x.useState(null),I=ar(t,M=>h(M)),B=f?l.form||!!f.closest("form"):!0,v=e8(f),D=l.values[r],S=D===void 0?0:nJ(D,l.min,l.max),R=NCe(r,l.values.length),F=v==null?void 0:v[c.size],N=F?OCe(F,S,c.direction):0;return x.useEffect(()=>{if(f)return l.thumbs.add(f),()=>{l.thumbs.delete(f)}},[f,l.thumbs]),p.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[c.startEdge]:`calc(${S}% + ${N}px)`},children:[p.jsx(J8.ItemSlot,{scope:e.__scopeSlider,children:p.jsx(xI.span,{role:"slider","aria-label":e["aria-label"]||R,"aria-valuemin":l.min,"aria-valuenow":D,"aria-valuemax":l.max,"aria-orientation":l.orientation,"data-orientation":l.orientation,"data-disabled":l.disabled?"":void 0,tabIndex:l.disabled?void 0:0,...A,ref:I,style:D===void 0?{display:"none"}:e.style,onFocus:Vt(e.onFocus,()=>{l.valueIndexToChangeRef.current=r})})}),B&&p.jsx(tJ,{name:i??(l.name?l.name+(l.values.length>1?"[]":""):void 0),form:l.form,value:D},r)]})});eJ.displayName=W8;var TCe="RadioBubbleInput",tJ=x.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const i=x.useRef(null),A=ar(i,r),l=$3(t);return x.useEffect(()=>{const c=i.current;if(!c)return;const f=window.HTMLInputElement.prototype,h=Object.getOwnPropertyDescriptor(f,"value").set;if(l!==t&&h){const I=new Event("input",{bubbles:!0});h.call(c,t),c.dispatchEvent(I)}},[l,t]),p.jsx(xI.input,{style:{display:"none"},...n,ref:A,defaultValue:t})});tJ.displayName=TCe;function MCe(e=[],t,n){const r=[...e];return r[n]=t,r.sort((i,A)=>i-A)}function nJ(e,t,n){const r=100/(n-t)*(e-t);return vI(r,[0,100])}function NCe(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function FCe(e,t){if(e.length===1)return 0;const n=e.map(i=>Math.abs(i-t)),r=Math.min(...n);return n.indexOf(r)}function OCe(e,t,n){const r=e/2,i=q8([0,50],[0,r]);return(r-i(t)*n)*n}function jCe(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function LCe(e,t){if(t>0){const n=jCe(e);return Math.min(...n)>=t}return!0}function q8(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function PCe(e){return(String(e).split(".")[1]||"").length}function UCe(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var rJ=WY,oJ=ZY,GCe=$Y,iJ=eJ,HCe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],AJ=HCe.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),zv="Switch",[YCe]=Xs(zv),[JCe,zCe]=YCe(zv),sJ=x.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:i,defaultChecked:A,required:l,disabled:c,value:f="on",onCheckedChange:h,form:I,...B}=e,[v,D]=x.useState(null),S=ar(t,P=>D(P)),R=x.useRef(!1),F=v?I||!!v.closest("form"):!0,[N,M]=Za({prop:i,defaultProp:A??!1,onChange:h,caller:zv});return p.jsxs(JCe,{scope:n,checked:N,disabled:c,children:[p.jsx(AJ.button,{type:"button",role:"switch","aria-checked":N,"aria-required":l,"data-state":uJ(N),"data-disabled":c?"":void 0,disabled:c,value:f,...B,ref:S,onClick:Vt(e.onClick,P=>{M(G=>!G),F&&(R.current=P.isPropagationStopped(),R.current||P.stopPropagation())})}),F&&p.jsx(cJ,{control:v,bubbles:!R.current,name:r,value:f,checked:N,required:l,disabled:c,form:I,style:{transform:"translateX(-100%)"}})]})});sJ.displayName=zv;var aJ="SwitchThumb",lJ=x.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,i=zCe(aJ,n);return p.jsx(AJ.span,{"data-state":uJ(i.checked),"data-disabled":i.disabled?"":void 0,...r,ref:t})});lJ.displayName=aJ;var WCe="SwitchBubbleInput",cJ=x.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...i},A)=>{const l=x.useRef(null),c=ar(l,A),f=$3(n),h=e8(t);return x.useEffect(()=>{const I=l.current;if(!I)return;const B=window.HTMLInputElement.prototype,v=Object.getOwnPropertyDescriptor(B,"checked").set;if(f!==n&&v){const D=new Event("click",{bubbles:r});v.call(I,n),I.dispatchEvent(D)}},[f,n,r]),p.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:c,style:{...i.style,...h,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});cJ.displayName=WCe;function uJ(e){return e?"checked":"unchecked"}var qCe=sJ,XCe=lJ,VCe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],KCe=VCe.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),dJ="Toggle",X8=x.forwardRef((e,t)=>{const{pressed:n,defaultPressed:r,onPressedChange:i,...A}=e,[l,c]=Za({prop:n,onChange:i,defaultProp:r??!1,caller:dJ});return p.jsx(KCe.button,{type:"button","aria-pressed":l,"data-state":l?"on":"off","data-disabled":e.disabled?"":void 0,...A,ref:t,onClick:Vt(e.onClick,()=>{e.disabled||c(!l)})})});X8.displayName=dJ;var fJ=X8,ZCe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],gJ=ZCe.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),Ld="ToggleGroup",[hJ]=Xs(Ld,[kv]),pJ=kv(),V8=Et.forwardRef((e,t)=>{const{type:n,...r}=e;if(n==="single"){const i=r;return p.jsx($Ce,{...i,ref:t})}if(n==="multiple"){const i=r;return p.jsx(eEe,{...i,ref:t})}throw new Error(`Missing prop \`type\` expected on \`${Ld}\``)});V8.displayName=Ld;var[mJ,IJ]=hJ(Ld),$Ce=Et.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:i=()=>{},...A}=e,[l,c]=Za({prop:n,defaultProp:r??"",onChange:i,caller:Ld});return p.jsx(mJ,{scope:e.__scopeToggleGroup,type:"single",value:Et.useMemo(()=>l?[l]:[],[l]),onItemActivate:c,onItemDeactivate:Et.useCallback(()=>c(""),[c]),children:p.jsx(CJ,{...A,ref:t})})}),eEe=Et.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:i=()=>{},...A}=e,[l,c]=Za({prop:n,defaultProp:r??[],onChange:i,caller:Ld}),f=Et.useCallback(I=>c((B=[])=>[...B,I]),[c]),h=Et.useCallback(I=>c((B=[])=>B.filter(v=>v!==I)),[c]);return p.jsx(mJ,{scope:e.__scopeToggleGroup,type:"multiple",value:l,onItemActivate:f,onItemDeactivate:h,children:p.jsx(CJ,{...A,ref:t})})});V8.displayName=Ld;var[tEe,nEe]=hJ(Ld),CJ=Et.forwardRef((e,t)=>{const{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:A,dir:l,loop:c=!0,...f}=e,h=pJ(n),I=K2(l),B={role:"group",dir:I,...f};return p.jsx(tEe,{scope:n,rovingFocus:i,disabled:r,children:i?p.jsx(jG,{asChild:!0,...h,orientation:A,dir:I,loop:c,children:p.jsx(gJ.div,{...B,ref:t})}):p.jsx(gJ.div,{...B,ref:t})})}),Wv="ToggleGroupItem",EJ=Et.forwardRef((e,t)=>{const n=IJ(Wv,e.__scopeToggleGroup),r=nEe(Wv,e.__scopeToggleGroup),i=pJ(e.__scopeToggleGroup),A=n.value.includes(e.value),l=r.disabled||e.disabled,c={...e,pressed:A,disabled:l},f=Et.useRef(null);return r.rovingFocus?p.jsx(LG,{asChild:!0,...i,focusable:!l,active:A,ref:f,children:p.jsx(BJ,{...c,ref:t})}):p.jsx(BJ,{...c,ref:t})});EJ.displayName=Wv;var BJ=Et.forwardRef((e,t)=>{const{__scopeToggleGroup:n,value:r,...i}=e,A=IJ(Wv,n),l={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},c=A.type==="single"?l:void 0;return p.jsx(X8,{...c,...i,ref:t,onPressedChange:f=>{f?A.onItemActivate(r):A.onItemDeactivate(r)}})}),K8=V8,dp=EJ,rEe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],oEe=rEe.reduce((e,t)=>{const n=Ho(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),[qv]=Xs("Tooltip",[Nd]),Xv=Nd(),yJ="TooltipProvider",iEe=700,Z8="tooltip.open",[AEe,$8]=qv(yJ),vJ=e=>{const{__scopeTooltip:t,delayDuration:n=iEe,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:A}=e,l=x.useRef(!0),c=x.useRef(!1),f=x.useRef(0);return x.useEffect(()=>{const h=f.current;return()=>window.clearTimeout(h)},[]),p.jsx(AEe,{scope:t,isOpenDelayedRef:l,delayDuration:n,onOpen:x.useCallback(()=>{window.clearTimeout(f.current),l.current=!1},[]),onClose:x.useCallback(()=>{window.clearTimeout(f.current),f.current=window.setTimeout(()=>l.current=!0,r)},[r]),isPointerInTransitRef:c,onPointerInTransitChange:x.useCallback(h=>{c.current=h},[]),disableHoverableContent:i,children:A})};vJ.displayName=yJ;var _I="Tooltip",[sEe,kI]=qv(_I),bJ=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:A,disableHoverableContent:l,delayDuration:c}=e,f=$8(_I,e.__scopeTooltip),h=Xv(t),[I,B]=x.useState(null),v=MA(),D=x.useRef(0),S=l??f.disableHoverableContent,R=c??f.delayDuration,F=x.useRef(!1),[N,M]=Za({prop:r,defaultProp:i??!1,onChange:q=>{q?(f.onOpen(),document.dispatchEvent(new CustomEvent(Z8))):f.onClose(),A==null||A(q)},caller:_I}),P=x.useMemo(()=>N?F.current?"delayed-open":"instant-open":"closed",[N]),G=x.useCallback(()=>{window.clearTimeout(D.current),D.current=0,F.current=!1,M(!0)},[M]),J=x.useCallback(()=>{window.clearTimeout(D.current),D.current=0,M(!1)},[M]),W=x.useCallback(()=>{window.clearTimeout(D.current),D.current=window.setTimeout(()=>{F.current=!0,M(!0),D.current=0},R)},[R,M]);return x.useEffect(()=>()=>{D.current&&(window.clearTimeout(D.current),D.current=0)},[]),p.jsx(wv,{...h,children:p.jsx(sEe,{scope:t,contentId:v,open:N,stateAttribute:P,trigger:I,onTriggerChange:B,onTriggerEnter:x.useCallback(()=>{f.isOpenDelayedRef.current?W():G()},[f.isOpenDelayedRef,W,G]),onTriggerLeave:x.useCallback(()=>{S?J():(window.clearTimeout(D.current),D.current=0)},[J,S]),onOpen:G,onClose:J,disableHoverableContent:S,children:n})})};bJ.displayName=_I;var eD="TooltipTrigger",QJ=x.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,i=kI(eD,n),A=$8(eD,n),l=Xv(n),c=x.useRef(null),f=ar(t,c,i.onTriggerChange),h=x.useRef(!1),I=x.useRef(!1),B=x.useCallback(()=>h.current=!1,[]);return x.useEffect(()=>()=>document.removeEventListener("pointerup",B),[B]),p.jsx(hI,{asChild:!0,...l,children:p.jsx(oEe.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:f,onPointerMove:Vt(e.onPointerMove,v=>{v.pointerType!=="touch"&&!I.current&&!A.isPointerInTransitRef.current&&(i.onTriggerEnter(),I.current=!0)}),onPointerLeave:Vt(e.onPointerLeave,()=>{i.onTriggerLeave(),I.current=!1}),onPointerDown:Vt(e.onPointerDown,()=>{i.open&&i.onClose(),h.current=!0,document.addEventListener("pointerup",B,{once:!0})}),onFocus:Vt(e.onFocus,()=>{h.current||i.onOpen()}),onBlur:Vt(e.onBlur,i.onClose),onClick:Vt(e.onClick,i.onClose)})})});QJ.displayName=eD;var tD="TooltipPortal",[aEe,lEe]=qv(tD,{forceMount:void 0}),wJ=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,A=kI(tD,t);return p.jsx(aEe,{scope:t,forceMount:n,children:p.jsx(VA,{present:n||A.open,children:p.jsx(ag,{asChild:!0,container:i,children:r})})})};wJ.displayName=tD;var fp="TooltipContent",xJ=x.forwardRef((e,t)=>{const n=lEe(fp,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i="top",...A}=e,l=kI(fp,e.__scopeTooltip);return p.jsx(VA,{present:r||l.open,children:l.disableHoverableContent?p.jsx(_J,{side:i,...A,ref:t}):p.jsx(cEe,{side:i,...A,ref:t})})}),cEe=x.forwardRef((e,t)=>{const n=kI(fp,e.__scopeTooltip),r=$8(fp,e.__scopeTooltip),i=x.useRef(null),A=ar(t,i),[l,c]=x.useState(null),{trigger:f,onClose:h}=n,I=i.current,{onPointerInTransitChange:B}=r,v=x.useCallback(()=>{c(null),B(!1)},[B]),D=x.useCallback((S,R)=>{const F=S.currentTarget,N={x:S.clientX,y:S.clientY},M=gEe(N,F.getBoundingClientRect()),P=hEe(N,M),G=pEe(R.getBoundingClientRect()),J=IEe([...P,...G]);c(J),B(!0)},[B]);return x.useEffect(()=>()=>v(),[v]),x.useEffect(()=>{if(f&&I){const S=F=>D(F,I),R=F=>D(F,f);return f.addEventListener("pointerleave",S),I.addEventListener("pointerleave",R),()=>{f.removeEventListener("pointerleave",S),I.removeEventListener("pointerleave",R)}}},[f,I,D,v]),x.useEffect(()=>{if(l){const S=R=>{const F=R.target,N={x:R.clientX,y:R.clientY},M=(f==null?void 0:f.contains(F))||(I==null?void 0:I.contains(F)),P=!mEe(N,l);M?v():P&&(v(),h())};return document.addEventListener("pointermove",S),()=>document.removeEventListener("pointermove",S)}},[f,I,l,h,v]),p.jsx(_J,{...e,ref:A})}),[uEe,dEe]=qv(_I,{isInside:!1}),fEe=aU("TooltipContent"),_J=x.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:A,onPointerDownOutside:l,...c}=e,f=kI(fp,n),h=Xv(n),{onClose:I}=f;return x.useEffect(()=>(document.addEventListener(Z8,I),()=>document.removeEventListener(Z8,I)),[I]),x.useEffect(()=>{if(f.trigger){const B=v=>{var D;(D=v.target)!=null&&D.contains(f.trigger)&&I()};return window.addEventListener("scroll",B,{capture:!0}),()=>window.removeEventListener("scroll",B,{capture:!0})}},[f.trigger,I]),p.jsx(Z2,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:A,onPointerDownOutside:l,onFocusOutside:B=>B.preventDefault(),onDismiss:I,children:p.jsxs(xv,{"data-state":f.stateAttribute,...h,...c,ref:t,style:{...c.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[p.jsx(fEe,{children:r}),p.jsx(uEe,{scope:n,isInside:!0,children:p.jsx(uU,{id:f.contentId,role:"tooltip",children:i||r})})]})})});xJ.displayName=fp;var kJ="TooltipArrow",DJ=x.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,i=Xv(n);return dEe(kJ,n).isInside?null:p.jsx(_v,{...i,...r,ref:t})});DJ.displayName=kJ;function gEe(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),A=Math.abs(t.left-e.x);switch(Math.min(n,r,i,A)){case A:return"left";case i:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function hEe(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function pEe(e){const{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function mEe(e,t){const{x:n,y:r}=e;let i=!1;for(let A=0,l=t.length-1;Ar!=v>r&&n<(B-h)*(r-I)/(v-I)+h&&(i=!i)}return i}function IEe(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),CEe(t)}function CEe(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const A=t[t.length-1],l=t[t.length-2];if((A.x-l.x)*(i.y-l.y)>=(A.y-l.y)*(i.x-l.x))t.pop();else break}t.push(i)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const i=e[r];for(;n.length>=2;){const A=n[n.length-1],l=n[n.length-2];if((A.x-l.x)*(i.y-l.y)>=(A.y-l.y)*(i.x-l.x))n.pop();else break}n.push(i)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var EEe=vJ,BEe=bJ,yEe=QJ,vEe=wJ,bEe=xJ,QEe=DJ,SJ={exports:{}};(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var A="",l=0;lKv.includes(t))}function Pd({className:e,customProperties:t,...n}){const r=SI({allowArbitraryValues:!0,className:e,...n}),i=xEe({customProperties:t,...n});return[r,i]}function SI({allowArbitraryValues:e,value:t,className:n,propValues:r,parseValue:i=A=>A}){const A=[];if(t){if(typeof t=="string"&&r.includes(t))return UJ(n,t,i);if(DI(t)){const l=t;for(const c in l){if(!PJ(l,c)||!Kv.includes(c))continue;const f=l[c];if(f!==void 0){if(r.includes(f)){const h=UJ(n,f,i),I=c==="initial"?h:`${c}:${h}`;A.push(I)}else if(e){const h=c==="initial"?n:`${c}:${n}`;A.push(h)}}}return A.join(" ")}if(e)return n}}function UJ(e,t,n){const r=e?"-":"",i=n(t),A=i==null?void 0:i.startsWith("-"),l=A?"-":"",c=A?i==null?void 0:i.substring(1):i;return`${l}${e}${r}${c}`}function xEe({customProperties:e,value:t,propValues:n,parseValue:r=i=>i}){let i={};if(!(!t||typeof t=="string"&&n.includes(t))){if(typeof t=="string"&&(i=Object.fromEntries(e.map(A=>[A,t]))),DI(t)){const A=t;for(const l in A){if(!PJ(A,l)||!Kv.includes(l))continue;const c=A[l];if(!n.includes(c))for(const f of e)i={[l==="initial"?f:`${f}-${l}`]:c,...i}}}for(const A in i){const l=i[A];l!==void 0&&(i[A]=r(l))}return i}}function RI(...e){let t={};for(const n of e)n&&(t={...t,...n});return Object.keys(t).length?t:void 0}function _Ee(...e){return Object.assign({},...e)}function Yo(e,...t){let n,r;const i={...e},A=_Ee(...t);for(const l in A){let c=i[l];const f=A[l];if(f.default!==void 0&&c===void 0&&(c=f.default),f.type==="enum"&&![f.default,...f.values].includes(c)&&!DI(c)&&(c=f.default),i[l]=c,"className"in f&&f.className){delete i[l];const h="responsive"in f;if(!c||DI(c)&&!h)continue;if(DI(c)&&(f.default!==void 0&&c.initial===void 0&&(c.initial=f.default),f.type==="enum"&&([f.default,...f.values].includes(c.initial)||(c.initial=f.default))),f.type==="enum"){const I=SI({allowArbitraryValues:!1,value:c,className:f.className,propValues:f.values,parseValue:f.parseValue});n=_n(n,I);continue}if(f.type==="string"||f.type==="enum | string"){const I=f.type==="string"?[]:f.values,[B,v]=Pd({className:f.className,customProperties:f.customProperties,propValues:I,parseValue:f.parseValue,value:c});r=RI(r,v),n=_n(n,B);continue}if(f.type==="boolean"&&c){n=_n(n,f.className);continue}}}return i.className=_n(n,e.className),i.style=RI(r,e.style),i}const hg=["0","1","2","3","4","5","6","7","8","9","-1","-2","-3","-4","-5","-6","-7","-8","-9"],FA={m:{type:"enum | string",values:hg,responsive:!0,className:"rt-r-m",customProperties:["--m"]},mx:{type:"enum | string",values:hg,responsive:!0,className:"rt-r-mx",customProperties:["--ml","--mr"]},my:{type:"enum | string",values:hg,responsive:!0,className:"rt-r-my",customProperties:["--mt","--mb"]},mt:{type:"enum | string",values:hg,responsive:!0,className:"rt-r-mt",customProperties:["--mt"]},mr:{type:"enum | string",values:hg,responsive:!0,className:"rt-r-mr",customProperties:["--mr"]},mb:{type:"enum | string",values:hg,responsive:!0,className:"rt-r-mb",customProperties:["--mb"]},ml:{type:"enum | string",values:hg,responsive:!0,className:"rt-r-ml",customProperties:["--ml"]}},GJ=x.forwardRef((e,t)=>{const{children:n,className:r,asChild:i,as:A="h1",color:l,...c}=Yo(e,LJ,FA);return x.createElement(Sd,{"data-accent-color":l,...c,ref:t,className:_n("rt-Heading",r)},i?n:x.createElement(A,null,n))});GJ.displayName="Heading";let HJ,YJ,JJ;HJ=["span","div","label","p"],YJ=["1","2","3","4","5","6","7","8","9"],JJ={as:{type:"enum",values:HJ,default:"span"},...tl,size:{type:"enum",className:"rt-r-size",values:YJ,responsive:!0},...sD,...oD,...rD,...AD,...iD,...ys,...l0},Se=x.forwardRef((e,t)=>{const{children:n,className:r,asChild:i,as:A="span",color:l,...c}=Yo(e,JJ,FA);return x.createElement(Sd,{"data-accent-color":l,...c,ref:t,className:_n("rt-Text",r)},i?n:x.createElement(A,null,n))}),Se.displayName="Text";function kEe(e){switch(e){case"tomato":case"red":case"ruby":case"crimson":case"pink":case"plum":case"purple":case"violet":return"mauve";case"iris":case"indigo":case"blue":case"sky":case"cyan":return"slate";case"teal":case"jade":case"mint":case"green":return"sage";case"grass":case"lime":return"olive";case"yellow":case"amber":case"orange":case"brown":case"gold":case"bronze":return"sand";case"gray":return"gray"}}const DEe=["none","small","medium","large","full"],pg={radius:{type:"enum",values:DEe,default:void 0}},va={hasBackground:{default:!0},appearance:{default:"inherit"},accentColor:{default:"indigo"},grayColor:{default:"auto"},panelBackground:{default:"translucent"},radius:{default:"medium"},scaling:{default:"100%"}},gp=()=>{},Zv=x.createContext(void 0);function zJ(){const e=x.useContext(Zv);if(e===void 0)throw new Error("`useThemeContext` must be used within a `Theme`");return e}const mg=x.forwardRef((e,t)=>x.useContext(Zv)===void 0?x.createElement(EEe,{delayDuration:200},x.createElement(Nhe,{dir:"ltr"},x.createElement(WJ,{...e,ref:t}))):x.createElement(aD,{...e,ref:t}));mg.displayName="Theme";const WJ=x.forwardRef((e,t)=>{const{appearance:n=va.appearance.default,accentColor:r=va.accentColor.default,grayColor:i=va.grayColor.default,panelBackground:A=va.panelBackground.default,radius:l=va.radius.default,scaling:c=va.scaling.default,hasBackground:f=va.hasBackground.default,...h}=e,[I,B]=x.useState(n);x.useEffect(()=>B(n),[n]);const[v,D]=x.useState(r);x.useEffect(()=>D(r),[r]);const[S,R]=x.useState(i);x.useEffect(()=>R(i),[i]);const[F,N]=x.useState(A);x.useEffect(()=>N(A),[A]);const[M,P]=x.useState(l);x.useEffect(()=>P(l),[l]);const[G,J]=x.useState(c);return x.useEffect(()=>J(c),[c]),x.createElement(aD,{...h,ref:t,isRoot:!0,hasBackground:f,appearance:I,accentColor:v,grayColor:S,panelBackground:F,radius:M,scaling:G,onAppearanceChange:B,onAccentColorChange:D,onGrayColorChange:R,onPanelBackgroundChange:N,onRadiusChange:P,onScalingChange:J})});WJ.displayName="ThemeRoot";const aD=x.forwardRef((e,t)=>{const n=x.useContext(Zv),{asChild:r,isRoot:i,hasBackground:A,appearance:l=(n==null?void 0:n.appearance)??va.appearance.default,accentColor:c=(n==null?void 0:n.accentColor)??va.accentColor.default,grayColor:f=(n==null?void 0:n.resolvedGrayColor)??va.grayColor.default,panelBackground:h=(n==null?void 0:n.panelBackground)??va.panelBackground.default,radius:I=(n==null?void 0:n.radius)??va.radius.default,scaling:B=(n==null?void 0:n.scaling)??va.scaling.default,onAppearanceChange:v=gp,onAccentColorChange:D=gp,onGrayColorChange:S=gp,onPanelBackgroundChange:R=gp,onRadiusChange:F=gp,onScalingChange:N=gp,...M}=e,P=r?Sd:"div",G=f==="auto"?kEe(c):f,J=e.appearance==="light"||e.appearance==="dark",W=A===void 0?i||J:A;return x.createElement(Zv.Provider,{value:x.useMemo(()=>({appearance:l,accentColor:c,grayColor:f,resolvedGrayColor:G,panelBackground:h,radius:I,scaling:B,onAppearanceChange:v,onAccentColorChange:D,onGrayColorChange:S,onPanelBackgroundChange:R,onRadiusChange:F,onScalingChange:N}),[l,c,f,G,h,I,B,v,D,S,R,F,N])},x.createElement(P,{"data-is-root-theme":i?"true":"false","data-accent-color":c,"data-gray-color":G,"data-has-background":W?"true":"false","data-panel-background":h,"data-radius":I,"data-scaling":B,ref:t,...M,className:_n("radix-themes",{light:l==="light",dark:l==="dark"},M.className)}))});aD.displayName="ThemeImpl";const $v=e=>{if(!x.isValidElement(e))throw Error(`Expected a single React Element child, but got: ${x.Children.toArray(e).map(t=>typeof t=="object"&&"type"in t&&typeof t.type=="string"?t.type:typeof t).join(", ")}`);return e};function qJ(e,t){const{asChild:n,children:r}=e;if(!n)return typeof t=="function"?t(r):t;const i=x.Children.only(r);return x.cloneElement(i,{children:typeof t=="function"?t(i.props.children):t})}let eb,XJ,VJ,KJ,Ud,hp,tb,ZJ,pp,$J,ez,TI;eb=Sd,XJ=["div","span"],VJ=["none","inline","inline-block","block","contents"],KJ={as:{type:"enum",values:XJ,default:"div"},...tl,display:{type:"enum",className:"rt-r-display",values:VJ,responsive:!0}},Ud=["0","1","2","3","4","5","6","7","8","9"],hp={p:{type:"enum | string",className:"rt-r-p",customProperties:["--p"],values:Ud,responsive:!0},px:{type:"enum | string",className:"rt-r-px",customProperties:["--pl","--pr"],values:Ud,responsive:!0},py:{type:"enum | string",className:"rt-r-py",customProperties:["--pt","--pb"],values:Ud,responsive:!0},pt:{type:"enum | string",className:"rt-r-pt",customProperties:["--pt"],values:Ud,responsive:!0},pr:{type:"enum | string",className:"rt-r-pr",customProperties:["--pr"],values:Ud,responsive:!0},pb:{type:"enum | string",className:"rt-r-pb",customProperties:["--pb"],values:Ud,responsive:!0},pl:{type:"enum | string",className:"rt-r-pl",customProperties:["--pl"],values:Ud,responsive:!0}},tb=["visible","hidden","clip","scroll","auto"],ZJ=["static","relative","absolute","fixed","sticky"],pp=["0","1","2","3","4","5","6","7","8","9","-1","-2","-3","-4","-5","-6","-7","-8","-9"],$J=["0","1"],ez=["0","1"],TI={...hp,...Kc,...Vv,position:{type:"enum",className:"rt-r-position",values:ZJ,responsive:!0},inset:{type:"enum | string",className:"rt-r-inset",customProperties:["--inset"],values:pp,responsive:!0},top:{type:"enum | string",className:"rt-r-top",customProperties:["--top"],values:pp,responsive:!0},right:{type:"enum | string",className:"rt-r-right",customProperties:["--right"],values:pp,responsive:!0},bottom:{type:"enum | string",className:"rt-r-bottom",customProperties:["--bottom"],values:pp,responsive:!0},left:{type:"enum | string",className:"rt-r-left",customProperties:["--left"],values:pp,responsive:!0},overflow:{type:"enum",className:"rt-r-overflow",values:tb,responsive:!0},overflowX:{type:"enum",className:"rt-r-ox",values:tb,responsive:!0},overflowY:{type:"enum",className:"rt-r-oy",values:tb,responsive:!0},flexBasis:{type:"string",className:"rt-r-fb",customProperties:["--flex-basis"],responsive:!0},flexShrink:{type:"enum | string",className:"rt-r-fs",customProperties:["--flex-shrink"],values:$J,responsive:!0},flexGrow:{type:"enum | string",className:"rt-r-fg",customProperties:["--flex-grow"],values:ez,responsive:!0},gridArea:{type:"string",className:"rt-r-ga",customProperties:["--grid-area"],responsive:!0},gridColumn:{type:"string",className:"rt-r-gc",customProperties:["--grid-column"],responsive:!0},gridColumnStart:{type:"string",className:"rt-r-gcs",customProperties:["--grid-column-start"],responsive:!0},gridColumnEnd:{type:"string",className:"rt-r-gce",customProperties:["--grid-column-end"],responsive:!0},gridRow:{type:"string",className:"rt-r-gr",customProperties:["--grid-row"],responsive:!0},gridRowStart:{type:"string",className:"rt-r-grs",customProperties:["--grid-row-start"],responsive:!0},gridRowEnd:{type:"string",className:"rt-r-gre",customProperties:["--grid-row-end"],responsive:!0}},Bo=x.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...A}=Yo(e,KJ,TI,FA);return x.createElement(r?eb:i,{...A,ref:t,className:_n("rt-Box",n)})}),Bo.displayName="Box";const SEe=["1","2","3","4"],REe=["classic","solid","soft","surface","outline","ghost"],tz={...tl,size:{type:"enum",className:"rt-r-size",values:SEe,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:REe,default:"solid"},...RJ,...l0,...pg,loading:{type:"boolean",className:"rt-loading",default:!1}},lD=["0","1","2","3","4","5","6","7","8","9"],nz={gap:{type:"enum | string",className:"rt-r-gap",customProperties:["--gap"],values:lD,responsive:!0},gapX:{type:"enum | string",className:"rt-r-cg",customProperties:["--column-gap"],values:lD,responsive:!0},gapY:{type:"enum | string",className:"rt-r-rg",customProperties:["--row-gap"],values:lD,responsive:!0}},TEe=["div","span"],MEe=["none","inline-flex","flex"],NEe=["row","column","row-reverse","column-reverse"],FEe=["start","center","end","baseline","stretch"],OEe=["start","center","end","between"],jEe=["nowrap","wrap","wrap-reverse"],rz={as:{type:"enum",values:TEe,default:"div"},...tl,display:{type:"enum",className:"rt-r-display",values:MEe,responsive:!0},direction:{type:"enum",className:"rt-r-fd",values:NEe,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:FEe,responsive:!0},justify:{type:"enum",className:"rt-r-jc",values:OEe,parseValue:LEe,responsive:!0},wrap:{type:"enum",className:"rt-r-fw",values:jEe,responsive:!0},...nz};function LEe(e){return e==="between"?"space-between":e}Fe=x.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...A}=Yo(e,rz,TI,FA);return x.createElement(r?eb:i,{...A,ref:t,className:_n("rt-Flex",n)})}),Fe.displayName="Flex";const PEe=["1","2","3"],UEe={size:{type:"enum",className:"rt-r-size",values:PEe,default:"2",responsive:!0},loading:{type:"boolean",default:!0}},nb=x.forwardRef((e,t)=>{const{className:n,children:r,loading:i,...A}=Yo(e,UEe,FA);if(!i)return r;const l=x.createElement("span",{...A,ref:t,className:_n("rt-Spinner",n)},x.createElement("span",{className:"rt-SpinnerLeaf"}),x.createElement("span",{className:"rt-SpinnerLeaf"}),x.createElement("span",{className:"rt-SpinnerLeaf"}),x.createElement("span",{className:"rt-SpinnerLeaf"}),x.createElement("span",{className:"rt-SpinnerLeaf"}),x.createElement("span",{className:"rt-SpinnerLeaf"}),x.createElement("span",{className:"rt-SpinnerLeaf"}),x.createElement("span",{className:"rt-SpinnerLeaf"}));return r===void 0?l:x.createElement(Fe,{asChild:!0,position:"relative",align:"center",justify:"center"},x.createElement("span",null,x.createElement("span",{"aria-hidden":!0,style:{display:"contents",visibility:"hidden"},inert:void 0},r),x.createElement(Fe,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},x.createElement("span",null,l))))});nb.displayName="Spinner";const GEe=uU;function HEe(e,t){if(e!==void 0)return typeof e=="string"?t(e):Object.fromEntries(Object.entries(e).map(([n,r])=>[n,t(r)]))}function YEe(e){switch(e){case"1":return"1";case"2":case"3":return"2";case"4":return"3"}}const cD=x.forwardRef((e,t)=>{const{size:n=tz.size.default}=e,{className:r,children:i,asChild:A,color:l,radius:c,disabled:f=e.loading,...h}=Yo(e,tz,FA),I=A?Sd:"button";return x.createElement(I,{"data-disabled":f||void 0,"data-accent-color":l,"data-radius":c,...h,ref:t,className:_n("rt-reset","rt-BaseButton",r),disabled:f},e.loading?x.createElement(x.Fragment,null,x.createElement("span",{style:{display:"contents",visibility:"hidden"},"aria-hidden":!0},i),x.createElement(GEe,null,i),x.createElement(Fe,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},x.createElement("span",null,x.createElement(nb,{size:HEe(n,YEe)})))):i)});cD.displayName="BaseButton";const nl=x.forwardRef(({className:e,...t},n)=>x.createElement(cD,{...t,ref:n,className:_n("rt-Button",e)}));nl.displayName="Button";let oz,iz,Az;oz=["1","2","3","4","5"],iz=["surface","classic","ghost"],Az={...tl,size:{type:"enum",className:"rt-r-size",values:oz,default:"1",responsive:!0},variant:{type:"enum",className:"rt-variant",values:iz,default:"surface"}},zf=x.forwardRef((e,t)=>{const{asChild:n,className:r,...i}=Yo(e,Az,FA),A=n?Sd:"div";return x.createElement(A,{ref:t,...i,className:_n("rt-reset","rt-BaseCard","rt-Card",r)})}),zf.displayName="Card";const JEe=["div","span"],zEe=["none","inline-grid","grid"],WEe=["1","2","3","4","5","6","7","8","9"],qEe=["1","2","3","4","5","6","7","8","9"],XEe=["row","column","dense","row-dense","column-dense"],VEe=["start","center","end","baseline","stretch"],KEe=["start","center","end","between"],sz={as:{type:"enum",values:JEe,default:"div"},...tl,display:{type:"enum",className:"rt-r-display",values:zEe,responsive:!0},areas:{type:"string",className:"rt-r-gta",customProperties:["--grid-template-areas"],responsive:!0},columns:{type:"enum | string",className:"rt-r-gtc",customProperties:["--grid-template-columns"],values:WEe,parseValue:az,responsive:!0},rows:{type:"enum | string",className:"rt-r-gtr",customProperties:["--grid-template-rows"],values:qEe,parseValue:az,responsive:!0},flow:{type:"enum",className:"rt-r-gaf",values:XEe,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:VEe,responsive:!0},justify:{type:"enum",className:"rt-r-jc",values:KEe,parseValue:ZEe,responsive:!0},...nz};function az(e){return sz.columns.values.includes(e)?e:e!=null&&e.match(/^\d+$/)?`repeat(${e}, minmax(0, 1fr))`:e}function ZEe(e){return e==="between"?"space-between":e}Gl=x.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...A}=Yo(e,sz,TI,FA);return x.createElement(r?eb:i,{...A,ref:t,className:_n("rt-Grid",n)})}),Gl.displayName="Grid";const $Ee=Et.forwardRef((e,t)=>Et.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Et.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0.75 4.5C0.75 4.08579 1.08579 3.75 1.5 3.75H7.5C7.91421 3.75 8.25 4.08579 8.25 4.5C8.25 4.91421 7.91421 5.25 7.5 5.25H1.5C1.08579 5.25 0.75 4.91421 0.75 4.5Z"})));$Ee.displayName="ThickDividerHorizontalIcon";const rb=Et.forwardRef((e,t)=>Et.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Et.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.53547 0.62293C8.88226 0.849446 8.97976 1.3142 8.75325 1.66099L4.5083 8.1599C4.38833 8.34356 4.19397 8.4655 3.9764 8.49358C3.75883 8.52167 3.53987 8.45309 3.3772 8.30591L0.616113 5.80777C0.308959 5.52987 0.285246 5.05559 0.563148 4.74844C0.84105 4.44128 1.31533 4.41757 1.62249 4.69547L3.73256 6.60459L7.49741 0.840706C7.72393 0.493916 8.18868 0.396414 8.53547 0.62293Z"})));rb.displayName="ThickCheckIcon";const uD=Et.forwardRef((e,t)=>Et.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Et.createElement("path",{d:"M0.135232 3.15803C0.324102 2.95657 0.640521 2.94637 0.841971 3.13523L4.5 6.56464L8.158 3.13523C8.3595 2.94637 8.6759 2.95657 8.8648 3.15803C9.0536 3.35949 9.0434 3.67591 8.842 3.86477L4.84197 7.6148C4.64964 7.7951 4.35036 7.7951 4.15803 7.6148L0.158031 3.86477C-0.0434285 3.67591 -0.0536285 3.35949 0.135232 3.15803Z"})));uD.displayName="ChevronDownIcon";const lz=Et.forwardRef((e,t)=>Et.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Et.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.23826 0.201711C3.54108 -0.0809141 4.01567 -0.0645489 4.29829 0.238264L7.79829 3.98826C8.06724 4.27642 8.06724 4.72359 7.79829 5.01174L4.29829 8.76174C4.01567 9.06455 3.54108 9.08092 3.23826 8.79829C2.93545 8.51567 2.91909 8.04108 3.20171 7.73826L6.22409 4.5L3.20171 1.26174C2.91909 0.958928 2.93545 0.484337 3.23826 0.201711Z"})));lz.displayName="ThickChevronRightIcon";const eBe=["1","2","3","4"],tBe=["none","initial"],nBe=["left","center","right"],rBe={...tl,size:{type:"enum",className:"rt-r-size",values:eBe,default:"4",responsive:!0},display:{type:"enum",className:"rt-r-display",values:tBe,parseValue:oBe,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:nBe,parseValue:iBe,responsive:!0}};function oBe(e){return e==="initial"?"flex":e}function iBe(e){return e==="left"?"start":e==="right"?"end":e}const dD=x.forwardRef(({width:e,minWidth:t,maxWidth:n,height:r,minHeight:i,maxHeight:A,...l},c)=>{const{asChild:f,children:h,className:I,...B}=Yo(l,rBe,TI,FA),{className:v,style:D}=Yo({width:e,minWidth:t,maxWidth:n,height:r,minHeight:i,maxHeight:A},Kc,Vv),S=f?Sd:"div";return x.createElement(S,{...B,ref:c,className:_n("rt-Container",I)},qJ({asChild:f,children:h},R=>x.createElement("div",{className:_n("rt-ContainerInner",v),style:D},R)))});dD.displayName="Container";const ABe=["1","2","3"],MI={...tl,size:{values:ABe,default:"1"},...pg,scrollbars:{default:"both"}};function sBe(e){const{m:t,mx:n,my:r,mt:i,mr:A,mb:l,ml:c,...f}=e;return{m:t,mx:n,my:r,mt:i,mr:A,mb:l,ml:c,rest:f}}const Ig=FA.m.values;function aBe(e){const[t,n]=Pd({className:"rt-r-m",customProperties:["--margin"],propValues:Ig,value:e.m}),[r,i]=Pd({className:"rt-r-mx",customProperties:["--margin-left","--margin-right"],propValues:Ig,value:e.mx}),[A,l]=Pd({className:"rt-r-my",customProperties:["--margin-top","--margin-bottom"],propValues:Ig,value:e.my}),[c,f]=Pd({className:"rt-r-mt",customProperties:["--margin-top"],propValues:Ig,value:e.mt}),[h,I]=Pd({className:"rt-r-mr",customProperties:["--margin-right"],propValues:Ig,value:e.mr}),[B,v]=Pd({className:"rt-r-mb",customProperties:["--margin-bottom"],propValues:Ig,value:e.mb}),[D,S]=Pd({className:"rt-r-ml",customProperties:["--margin-left"],propValues:Ig,value:e.ml});return[_n(t,r,A,c,h,B,D),RI(n,i,l,f,I,v,S)]}const ob=x.forwardRef((e,t)=>{const{rest:n,...r}=sBe(e),[i,A]=aBe(r),{asChild:l,children:c,className:f,style:h,type:I,scrollHideDelay:B=I!=="scroll"?0:void 0,dir:v,size:D=MI.size.default,radius:S=MI.radius.default,scrollbars:R=MI.scrollbars.default,...F}=n;return x.createElement(gY,{type:I,scrollHideDelay:B,className:_n("rt-ScrollAreaRoot",i,f),style:RI(A,h),asChild:l},qJ({asChild:l,children:c},N=>x.createElement(x.Fragment,null,x.createElement(hY,{...F,ref:t,className:"rt-ScrollAreaViewport"},N),x.createElement("div",{className:"rt-ScrollAreaViewportFocusRing"}),R!=="vertical"?x.createElement(O8,{"data-radius":S,orientation:"horizontal",className:_n("rt-ScrollAreaScrollbar",SI({className:"rt-r-size",value:D,propValues:MI.size.values}))},x.createElement(j8,{className:"rt-ScrollAreaThumb"})):null,R!=="horizontal"?x.createElement(O8,{"data-radius":S,orientation:"vertical",className:_n("rt-ScrollAreaScrollbar",SI({className:"rt-r-size",value:D,propValues:MI.size.values}))},x.createElement(j8,{className:"rt-ScrollAreaThumb"})):null,R==="both"?x.createElement(HIe,{className:"rt-ScrollAreaCorner"}):null)))});ob.displayName="ScrollArea";const lBe=["1","2"],cBe=["solid","soft"],NI={size:{type:"enum",className:"rt-r-size",values:lBe,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:cBe,default:"solid"},...ys,...l0},uBe={...tl,...ys},dBe={...ys},fBe={...ys},cz=e=>x.createElement(xH,{...e});cz.displayName="DropdownMenu.Root";const uz=x.forwardRef(({children:e,...t},n)=>x.createElement(_H,{...t,ref:n,asChild:!0},$v(e)));uz.displayName="DropdownMenu.Trigger";const dz=x.createContext({}),fz=x.forwardRef((e,t)=>{const n=zJ(),{size:r=NI.size.default,variant:i=NI.variant.default,highContrast:A=NI.highContrast.default}=e,{className:l,children:c,color:f,container:h,forceMount:I,...B}=Yo(e,NI),v=f||n.accentColor;return x.createElement(w8,{container:h,forceMount:I},x.createElement(mg,{asChild:!0},x.createElement(kH,{"data-accent-color":v,align:"start",sideOffset:4,collisionPadding:10,...B,asChild:!1,ref:t,className:_n("rt-PopperContent","rt-BaseMenuContent","rt-DropdownMenuContent",l)},x.createElement(ob,{type:"auto"},x.createElement("div",{className:_n("rt-BaseMenuViewport","rt-DropdownMenuViewport")},x.createElement(dz.Provider,{value:x.useMemo(()=>({size:r,variant:i,color:v,highContrast:A}),[r,i,v,A])},c))))))});fz.displayName="DropdownMenu.Content";const gBe=x.forwardRef(({className:e,...t},n)=>x.createElement(tIe,{...t,asChild:!1,ref:n,className:_n("rt-BaseMenuLabel","rt-DropdownMenuLabel",e)}));gBe.displayName="DropdownMenu.Label";const gz=x.forwardRef((e,t)=>{const{className:n,children:r,color:i=uBe.color.default,shortcut:A,...l}=e;return x.createElement(DH,{"data-accent-color":i,...l,ref:t,className:_n("rt-reset","rt-BaseMenuItem","rt-DropdownMenuItem",n)},x.createElement(mhe,null,r),A&&x.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},A))});gz.displayName="DropdownMenu.Item";const hBe=x.forwardRef(({className:e,...t},n)=>x.createElement(eIe,{...t,asChild:!1,ref:n,className:_n("rt-BaseMenuGroup","rt-DropdownMenuGroup",e)}));hBe.displayName="DropdownMenu.Group";const pBe=x.forwardRef(({className:e,...t},n)=>x.createElement(rIe,{...t,asChild:!1,ref:n,className:_n("rt-BaseMenuRadioGroup","rt-DropdownMenuRadioGroup",e)}));pBe.displayName="DropdownMenu.RadioGroup";const mBe=x.forwardRef((e,t)=>{const{children:n,className:r,color:i=fBe.color.default,...A}=e;return x.createElement(oIe,{...A,asChild:!1,ref:t,"data-accent-color":i,className:_n("rt-BaseMenuItem","rt-BaseMenuRadioItem","rt-DropdownMenuItem","rt-DropdownMenuRadioItem",r)},n,x.createElement(SH,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},x.createElement(rb,{className:"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon"})))});mBe.displayName="DropdownMenu.RadioItem";const IBe=x.forwardRef((e,t)=>{const{children:n,className:r,shortcut:i,color:A=dBe.color.default,...l}=e;return x.createElement(nIe,{...l,asChild:!1,ref:t,"data-accent-color":A,className:_n("rt-BaseMenuItem","rt-BaseMenuCheckboxItem","rt-DropdownMenuItem","rt-DropdownMenuCheckboxItem",r)},n,x.createElement(SH,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},x.createElement(rb,{className:"rt-BaseMenuItemIndicatorIcon rt-ContextMenuItemIndicatorIcon"})),i&&x.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},i))});IBe.displayName="DropdownMenu.CheckboxItem";const CBe=x.forwardRef((e,t)=>{const{className:n,children:r,...i}=e;return x.createElement(AIe,{...i,asChild:!1,ref:t,className:_n("rt-BaseMenuItem","rt-BaseMenuSubTrigger","rt-DropdownMenuItem","rt-DropdownMenuSubTrigger",n)},r,x.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},x.createElement(lz,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubtriggerIcon"})))});CBe.displayName="DropdownMenu.SubTrigger";const EBe=x.forwardRef((e,t)=>{const{size:n,variant:r,color:i,highContrast:A}=x.useContext(dz),{className:l,children:c,container:f,forceMount:h,...I}=Yo({size:n,variant:r,color:i,highContrast:A,...e},NI);return x.createElement(w8,{container:f,forceMount:h},x.createElement(mg,{asChild:!0},x.createElement(sIe,{"data-accent-color":i,alignOffset:-Number(n)*4,sideOffset:1,collisionPadding:10,...I,asChild:!1,ref:t,className:_n("rt-PopperContent","rt-BaseMenuContent","rt-BaseMenuSubContent","rt-DropdownMenuContent","rt-DropdownMenuSubContent",l)},x.createElement(ob,{type:"auto"},x.createElement("div",{className:_n("rt-BaseMenuViewport","rt-DropdownMenuViewport")},c)))))});EBe.displayName="DropdownMenu.SubContent";const BBe=x.forwardRef(({className:e,...t},n)=>x.createElement(iIe,{...t,asChild:!1,ref:n,className:_n("rt-BaseMenuSeparator","rt-DropdownMenuSeparator",e)}));BBe.displayName="DropdownMenu.Separator";const rl=x.forwardRef(({className:e,...t},n)=>x.createElement(cD,{...t,ref:n,className:_n("rt-IconButton",e)}));rl.displayName="IconButton";const yBe=["1","2","3","4"],vBe={...tl,size:{type:"enum",className:"rt-r-size",values:yBe,default:"2",responsive:!0},width:Kc.width,minWidth:Kc.minWidth,maxWidth:{...Kc.maxWidth,default:"480px"},...Vv},hz=e=>x.createElement(_8,{...e});hz.displayName="Popover.Root";const pz=x.forwardRef(({children:e,...t},n)=>x.createElement(zH,{...t,ref:n,asChild:!0},$v(e)));pz.displayName="Popover.Trigger";const mz=x.forwardRef((e,t)=>{const{className:n,forceMount:r,container:i,...A}=Yo(e,vBe);return x.createElement(D8,{container:i,forceMount:r},x.createElement(mg,{asChild:!0},x.createElement(S8,{align:"start",sideOffset:8,collisionPadding:10,...A,ref:t,className:_n("rt-PopperContent","rt-PopoverContent",n)})))});mz.displayName="Popover.Content";const bBe=x.forwardRef(({children:e,...t},n)=>x.createElement(BIe,{...t,ref:n,asChild:!0},$v(e)));bBe.displayName="Popover.Close";const QBe=x.forwardRef(({children:e,...t},n)=>x.createElement(k8,{...t,ref:n}));QBe.displayName="Popover.Anchor";const wBe=["1","2","3"],xBe=["classic","surface","soft"],_Be={size:{type:"enum",className:"rt-r-size",values:wBe,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:xBe,default:"surface"},...ys,...l0,...pg,duration:{type:"string"}},Cg=x.forwardRef((e,t)=>{const{className:n,style:r,color:i,radius:A,duration:l,...c}=Yo(e,_Be,FA);return x.createElement(kIe,{"data-accent-color":i,"data-radius":A,ref:t,className:_n("rt-ProgressRoot",n),style:RI({"--progress-duration":"value"in c?void 0:l,"--progress-value":"value"in c?c.value:void 0,"--progress-max":"max"in c?c.max:void 0},r),...c,asChild:!1},x.createElement(DIe,{className:"rt-ProgressIndicator"}))});Cg.displayName="Progress";const ib=x.forwardRef(({className:e,children:t,...n},r)=>x.createElement(Sd,{...n,ref:r,className:_n("rt-reset",e)},$v(t)));ib.displayName="Reset";const kBe=["1","2","3"],fD={size:{type:"enum",className:"rt-r-size",values:kBe,default:"2",responsive:!0}},DBe=["classic","surface","soft","ghost"],SBe={variant:{type:"enum",className:"rt-variant",values:DBe,default:"surface"},...ys,...pg,placeholder:{type:"string"}},RBe=["solid","soft"],TBe={variant:{type:"enum",className:"rt-variant",values:RBe,default:"solid"},...ys,...l0},gD=x.createContext({}),hD=e=>{const{children:t,size:n=fD.size.default,...r}=e;return x.createElement(fCe,{...r},x.createElement(gD.Provider,{value:x.useMemo(()=>({size:n}),[n])},t))};hD.displayName="Select.Root";const pD=x.forwardRef((e,t)=>{const n=x.useContext(gD),{children:r,className:i,color:A,radius:l,placeholder:c,...f}=Yo({size:n==null?void 0:n.size,...e},{size:fD.size},SBe,FA);return x.createElement(gCe,{asChild:!0},x.createElement("button",{"data-accent-color":A,"data-radius":l,...f,ref:t,className:_n("rt-reset","rt-SelectTrigger",i)},x.createElement("span",{className:"rt-SelectTriggerInner"},x.createElement(hCe,{placeholder:c},r)),x.createElement(pCe,{asChild:!0},x.createElement(uD,{className:"rt-SelectIcon"}))))});pD.displayName="Select.Trigger";const mD=x.forwardRef((e,t)=>{const n=x.useContext(gD),{className:r,children:i,color:A,container:l,...c}=Yo({size:n==null?void 0:n.size,...e},{size:fD.size},TBe),f=zJ(),h=A||f.accentColor;return x.createElement(mCe,{container:l},x.createElement(mg,{asChild:!0},x.createElement(ICe,{"data-accent-color":h,sideOffset:4,...c,asChild:!1,ref:t,className:_n({"rt-PopperContent":c.position==="popper"},"rt-SelectContent",r)},x.createElement(gY,{type:"auto",className:"rt-ScrollAreaRoot"},x.createElement(CCe,{asChild:!0,className:"rt-SelectViewport"},x.createElement(hY,{className:"rt-ScrollAreaViewport",style:{overflowY:void 0}},i)),x.createElement(O8,{className:"rt-ScrollAreaScrollbar rt-r-size-1",orientation:"vertical"},x.createElement(j8,{className:"rt-ScrollAreaThumb"}))))))});mD.displayName="Select.Content";const FI=x.forwardRef((e,t)=>{const{className:n,children:r,...i}=e;return x.createElement(yCe,{...i,asChild:!1,ref:t,className:_n("rt-SelectItem",n)},x.createElement(bCe,{className:"rt-SelectItemIndicator"},x.createElement(rb,{className:"rt-SelectItemIndicatorIcon"})),x.createElement(vCe,null,r))});FI.displayName="Select.Item";const ID=x.forwardRef(({className:e,...t},n)=>x.createElement(ECe,{...t,asChild:!1,ref:n,className:_n("rt-SelectGroup",e)}));ID.displayName="Select.Group";const MBe=x.forwardRef(({className:e,...t},n)=>x.createElement(BCe,{...t,asChild:!1,ref:n,className:_n("rt-SelectLabel",e)}));MBe.displayName="Select.Label";const NBe=x.forwardRef(({className:e,...t},n)=>x.createElement(QCe,{...t,asChild:!1,ref:n,className:_n("rt-SelectSeparator",e)}));NBe.displayName="Select.Separator";const FBe=["horizontal","vertical"],OBe=["1","2","3","4"],jBe={orientation:{type:"enum",className:"rt-r-orientation",values:FBe,default:"horizontal",responsive:!0},size:{type:"enum",className:"rt-r-size",values:OBe,default:"1",responsive:!0},color:{...ys.color,default:"gray"},decorative:{type:"boolean",default:!0}},ol=x.forwardRef((e,t)=>{const{className:n,color:r,decorative:i,...A}=Yo(e,jBe,FA);return x.createElement("span",{"data-accent-color":r,role:i?void 0:"separator",...A,ref:t,className:_n("rt-Separator",n)})});ol.displayName="Separator";const LBe=["1","2","3"],PBe=["classic","surface","soft"],UBe={size:{type:"enum",className:"rt-r-size",values:LBe,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:PBe,default:"surface"},...ys,...l0,...pg},Iz=x.forwardRef((e,t)=>{const{className:n,color:r,radius:i,tabIndex:A,...l}=Yo(e,UBe,FA);return x.createElement(rJ,{"data-accent-color":r,"data-radius":i,ref:t,...l,asChild:!1,className:_n("rt-SliderRoot",n)},x.createElement(oJ,{className:"rt-SliderTrack"},x.createElement(GCe,{className:_n("rt-SliderRange",{"rt-high-contrast":e.highContrast}),"data-inverted":l.inverted?"":void 0})),(l.value??l.defaultValue??[]).map((c,f)=>x.createElement(iJ,{key:f,className:"rt-SliderThumb",...A!==void 0?{tabIndex:A}:void 0})))});Iz.displayName="Slider";const GBe=["1","2","3"],HBe=["classic","surface","soft"],YBe={size:{type:"enum",className:"rt-r-size",values:GBe,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:HBe,default:"surface"},...ys,...l0,...pg},CD=x.forwardRef((e,t)=>{const{className:n,color:r,radius:i,...A}=Yo(e,YBe,FA);return x.createElement(qCe,{"data-accent-color":r,"data-radius":i,...A,asChild:!1,ref:t,className:_n("rt-reset","rt-SwitchRoot",n)},x.createElement(XCe,{className:_n("rt-SwitchThumb",{"rt-high-contrast":e.highContrast})}))});CD.displayName="Switch";const JBe=["1","2","3"],zBe=["surface","ghost"],WBe=["auto","fixed"],ED={size:{type:"enum",className:"rt-r-size",values:JBe,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:zBe,default:"ghost"},layout:{type:"enum",className:"rt-r-tl",values:WBe,responsive:!0}},qBe=["start","center","end","baseline"],XBe={align:{type:"enum",className:"rt-r-va",values:qBe,parseValue:VBe,responsive:!0}};function VBe(e){return{baseline:"baseline",start:"top",center:"middle",end:"bottom"}[e]}const KBe=["start","center","end"],BD={justify:{type:"enum",className:"rt-r-ta",values:KBe,parseValue:ZBe,responsive:!0},...Kc,...hp};function ZBe(e){return{start:"left",center:"center",end:"right"}[e]}LB=x.forwardRef((e,t)=>{const{layout:n,...r}=ED,{className:i,children:A,layout:l,...c}=Yo(e,r,FA),f=SI({value:l,className:ED.layout.className,propValues:ED.layout.values});return x.createElement("div",{ref:t,className:_n("rt-TableRoot",i),...c},x.createElement(ob,null,x.createElement("table",{className:_n("rt-TableRootTable",f)},A)))}),LB.displayName="Table.Root",OB=x.forwardRef(({className:e,...t},n)=>x.createElement("thead",{...t,ref:n,className:_n("rt-TableHeader",e)})),OB.displayName="Table.Header",FB=x.forwardRef(({className:e,...t},n)=>x.createElement("tbody",{...t,ref:n,className:_n("rt-TableBody",e)})),FB.displayName="Table.Body",Jf=x.forwardRef((e,t)=>{const{className:n,...r}=Yo(e,XBe);return x.createElement("tr",{...r,ref:t,className:_n("rt-TableRow",n)})}),Jf.displayName="Table.Row",Pl=x.forwardRef((e,t)=>{const{className:n,...r}=Yo(e,BD);return x.createElement("td",{className:_n("rt-TableCell",n),ref:t,...r})}),Pl.displayName="Table.Cell",cd=x.forwardRef((e,t)=>{const{className:n,...r}=Yo(e,BD);return x.createElement("th",{className:_n("rt-TableCell","rt-TableColumnHeaderCell",n),scope:"col",ref:t,...r})}),cd.displayName="Table.ColumnHeaderCell",Fj=x.forwardRef((e,t)=>{const{className:n,...r}=Yo(e,BD);return x.createElement("th",{className:_n("rt-TableCell","rt-TableRowHeaderCell",n),scope:"row",ref:t,...r})}),Fj.displayName="Table.RowHeaderCell";const $Be=["1","2","3"],eye=["classic","surface","soft"],tye={size:{type:"enum",className:"rt-r-size",values:$Be,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:eye,default:"surface"},...ys,...pg},nye=["left","right"],rye={side:{type:"enum",values:nye},...ys,gap:rz.gap,px:hp.px,pl:hp.pl,pr:hp.pr},yD=x.forwardRef((e,t)=>{const n=x.useRef(null),{children:r,className:i,color:A,radius:l,style:c,...f}=Yo(e,tye,FA);return x.createElement("div",{"data-accent-color":A,"data-radius":l,style:c,className:_n("rt-TextFieldRoot",i),onPointerDown:h=>{const I=h.target;if(I.closest("input, button, a"))return;const B=n.current;if(!B)return;const v=I.closest(` - .rt-TextFieldSlot[data-side='right'], - .rt-TextFieldSlot:not([data-side='right']) ~ .rt-TextFieldSlot:not([data-side='left']) - `)?B.value.length:0;requestAnimationFrame(()=>{try{B.setSelectionRange(v,v)}catch{}B.focus()})}},x.createElement("input",{spellCheck:"false",...f,ref:Vl(n,t),className:"rt-reset rt-TextFieldInput"}),r)});yD.displayName="TextField.Root";const Ab=x.forwardRef((e,t)=>{const{className:n,color:r,side:i,...A}=Yo(e,rye);return x.createElement("div",{"data-accent-color":r,"data-side":i,...A,ref:t,className:_n("rt-TextFieldSlot",n)})});Ab.displayName="TextField.Slot";const oye={content:{type:"ReactNode",required:!0},width:Kc.width,minWidth:Kc.minWidth,maxWidth:{...Kc.maxWidth,default:"360px"}},Zo=x.forwardRef((e,t)=>{const{children:n,className:r,open:i,defaultOpen:A,onOpenChange:l,delayDuration:c,disableHoverableContent:f,content:h,container:I,forceMount:B,...v}=Yo(e,oye),D={open:i,defaultOpen:A,onOpenChange:l,delayDuration:c,disableHoverableContent:f};return x.createElement(BEe,{...D},x.createElement(yEe,{asChild:!0},n),x.createElement(vEe,{container:I,forceMount:B},x.createElement(mg,{asChild:!0},x.createElement(bEe,{sideOffset:4,collisionPadding:10,...v,asChild:!1,ref:t,className:_n("rt-TooltipContent",r)},x.createElement(Se,{as:"p",className:"rt-TooltipText",size:"1"},h),x.createElement(QEe,{className:"rt-TooltipArrow"})))))});Zo.displayName="Tooltip";const vD=new WeakMap,iye=new WeakMap,sb={current:[]};let bD=!1,OI=0;const jI=new Set,ab=new Map;function Cz(e){for(const t of e){if(sb.current.includes(t))continue;sb.current.push(t),t.recompute();const n=iye.get(t);if(n)for(const r of n){const i=vD.get(r);i!=null&&i.length&&Cz(i)}}}function Aye(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function sye(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function Ez(e){if(OI>0&&!ab.has(e)&&ab.set(e,e.prevState),jI.add(e),!(OI>0)&&!bD)try{for(bD=!0;jI.size>0;){const t=Array.from(jI);jI.clear();for(const n of t){const r=ab.get(n)??n.prevState;n.prevState=r,Aye(n)}for(const n of t){const r=vD.get(n);r&&(sb.current.push(n),Cz(r))}for(const n of t){const r=vD.get(n);if(r)for(const i of r)sye(i)}}}finally{bD=!1,sb.current=[],ab.clear()}}function LI(e){OI++;try{e()}finally{if(OI--,OI===0){const t=jI.values().next().value;t&&Ez(t)}}}function aye(e){return typeof e=="function"}class lye{constructor(t,n){this.listeners=new Set,this.subscribe=r=>{var i,A;this.listeners.add(r);const l=(A=(i=this.options)==null?void 0:i.onSubscribe)==null?void 0:A.call(i,r,this);return()=>{this.listeners.delete(r),l==null||l()}},this.prevState=t,this.state=t,this.options=n}setState(t){var n,r,i;this.prevState=this.state,(n=this.options)!=null&&n.updateFn?this.state=this.options.updateFn(this.prevState)(t):aye(t)?this.state=t(this.prevState):this.state=t,(i=(r=this.options)==null?void 0:r.onUpdate)==null||i.call(r),Ez(this)}}const Gd="__TSR_index",Bz="popstate",yz="beforeunload";function cye(e){let t=e.getLocation();const n=new Set,r=l=>{t=e.getLocation(),n.forEach(c=>c({location:t,action:l}))},i=l=>{e.notifyOnIndexChange??!0?r(l):t=e.getLocation()},A=async({task:l,navigateOpts:c,...f})=>{var B,v;if((c==null?void 0:c.ignoreBlocker)??!1){l();return}const h=((B=e.getBlockers)==null?void 0:B.call(e))??[],I=f.type==="PUSH"||f.type==="REPLACE";if(typeof document<"u"&&h.length&&I)for(const D of h){const S=lb(f.path,f.state);if(await D.blockerFn({currentLocation:t,nextLocation:S,action:f.type})){(v=e.onBlocked)==null||v.call(e);return}}l()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:l=>(n.add(l),()=>{n.delete(l)}),push:(l,c,f)=>{const h=t.state[Gd];c=vz(h+1,c),A({task:()=>{e.pushState(l,c),r({type:"PUSH"})},navigateOpts:f,type:"PUSH",path:l,state:c})},replace:(l,c,f)=>{const h=t.state[Gd];c=vz(h,c),A({task:()=>{e.replaceState(l,c),r({type:"REPLACE"})},navigateOpts:f,type:"REPLACE",path:l,state:c})},go:(l,c)=>{A({task:()=>{e.go(l),i({type:"GO",index:l})},navigateOpts:c,type:"GO"})},back:l=>{A({task:()=>{e.back((l==null?void 0:l.ignoreBlocker)??!1),i({type:"BACK"})},navigateOpts:l,type:"BACK"})},forward:l=>{A({task:()=>{e.forward((l==null?void 0:l.ignoreBlocker)??!1),i({type:"FORWARD"})},navigateOpts:l,type:"FORWARD"})},canGoBack:()=>t.state[Gd]!==0,createHref:l=>e.createHref(l),block:l=>{var f;if(!e.setBlockers)return()=>{};const c=((f=e.getBlockers)==null?void 0:f.call(e))??[];return e.setBlockers([...c,l]),()=>{var I,B;const h=((I=e.getBlockers)==null?void 0:I.call(e))??[];(B=e.setBlockers)==null||B.call(e,h.filter(v=>v!==l))}},flush:()=>{var l;return(l=e.flush)==null?void 0:l.call(e)},destroy:()=>{var l;return(l=e.destroy)==null?void 0:l.call(e)},notify:r}}function vz(e,t){t||(t={});const n=QD();return{...t,key:n,__TSR_key:n,[Gd]:e}}function uye(e){var $,oe;const t=typeof document<"u"?window:void 0,n=t.history.pushState,r=t.history.replaceState;let i=[];const A=()=>i,l=K=>i=K,c=K=>K,f=()=>lb(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state);if(!(($=t.history.state)!=null&&$.__TSR_key)&&!((oe=t.history.state)!=null&&oe.key)){const K=QD();t.history.replaceState({[Gd]:0,key:K,__TSR_key:K},"")}let h=f(),I,B=!1,v=!1,D=!1,S=!1;const R=()=>h;let F,N;const M=()=>{F&&(q._ignoreSubscribers=!0,(F.isPush?t.history.pushState:t.history.replaceState)(F.state,"",F.href),q._ignoreSubscribers=!1,F=void 0,N=void 0,I=void 0)},P=(K,se,Ee)=>{const ie=c(se);N||(I=h),h=lb(se,Ee),F={href:ie,state:Ee,isPush:(F==null?void 0:F.isPush)||K==="push"},N||(N=Promise.resolve().then(()=>M()))},G=K=>{h=f(),q.notify({type:K})},J=async()=>{if(v){v=!1;return}const K=f(),se=K.state[Gd]-h.state[Gd],Ee=se===1,ie=se===-1,Ae=!Ee&&!ie||B;B=!1;const Be=Ae?"GO":ie?"BACK":"FORWARD",ae=Ae?{type:"GO",index:se}:{type:ie?"BACK":"FORWARD"};if(D)D=!1;else{const Ce=A();if(typeof document<"u"&&Ce.length){for(const de of Ce)if(await de.blockerFn({currentLocation:h,nextLocation:K,action:Be})){v=!0,t.history.go(1),q.notify(ae);return}}}h=f(),q.notify(ae)},W=K=>{if(S){S=!1;return}let se=!1;const Ee=A();if(typeof document<"u"&&Ee.length)for(const ie of Ee){const Ae=ie.enableBeforeUnload??!0;if(Ae===!0){se=!0;break}if(typeof Ae=="function"&&Ae()===!0){se=!0;break}}if(se)return K.preventDefault(),K.returnValue=""},q=cye({getLocation:R,getLength:()=>t.history.length,pushState:(K,se)=>P("push",K,se),replaceState:(K,se)=>P("replace",K,se),back:K=>(K&&(D=!0),S=!0,t.history.back()),forward:K=>{K&&(D=!0),S=!0,t.history.forward()},go:K=>{B=!0,t.history.go(K)},createHref:K=>c(K),flush:M,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(yz,W,{capture:!0}),t.removeEventListener(Bz,J)},onBlocked:()=>{I&&h!==I&&(h=I)},getBlockers:A,setBlockers:l,notifyOnIndexChange:!1});return t.addEventListener(yz,W,{capture:!0}),t.addEventListener(Bz,J),t.history.pushState=function(...K){const se=n.apply(t.history,K);return q._ignoreSubscribers||G("PUSH"),se},t.history.replaceState=function(...K){const se=r.apply(t.history,K);return q._ignoreSubscribers||G("REPLACE"),se},q}function lb(e,t){const n=e.indexOf("#"),r=e.indexOf("?"),i=QD();return{href:e,pathname:e.substring(0,n>0?r>0?Math.min(n,r):n:r>0?r:e.length),hash:n>-1?e.substring(n):"",search:r>-1?e.slice(r,n===-1?void 0:n):"",state:t||{[Gd]:0,key:i,__TSR_key:i}}}function QD(){return(Math.random()+1).toString(36).substring(7)}function wD(e){return e[e.length-1]}function dye(e){return typeof e=="function"}function Eg(e,t){return dye(e)?e(t):e}const fye=Object.prototype.hasOwnProperty;function ec(e,t){if(e===t)return e;const n=t,r=wz(e)&&wz(n);if(!r&&!(cb(e)&&cb(n)))return n;const i=r?e:bz(e);if(!i)return n;const A=r?n:bz(n);if(!A)return n;const l=i.length,c=A.length,f=r?new Array(c):{};let h=0;for(let I=0;I"u")return!0;const n=t.prototype;return!(!Qz(n)||!n.hasOwnProperty("isPrototypeOf"))}function Qz(e){return Object.prototype.toString.call(e)==="[object Object]"}function wz(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Hd(e,t,n){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0,i=e.length;ri||!Hd(e[l],t[l],n)))return!1;return i===A}return!1}function mp(e){let t,n;const r=new Promise((i,A)=>{t=i,n=A});return r.status="pending",r.resolve=i=>{r.status="resolved",r.value=i,t(i),e==null||e(i)},r.reject=i=>{r.status="rejected",n(i)},r}function Yd(e){return!!(e&&typeof e=="object"&&typeof e.then=="function")}const gye=Array.from(new Map([["%","%25"],["\\","%5C"]]).values());function xz(e,t=gye){function n(i,A,l=0){for(let c=l;c{try{return decodeURI(c)}catch{return c}})}}if(e===""||!/%[0-9A-Fa-f]{2}/g.test(e))return e;const r=e.replaceAll(/%[0-9a-f]{2}/g,i=>i.toUpperCase());return n(r,t)}var hye="Invariant failed";function c0(e,t){if(!e)throw new Error(hye)}const Zc=0,Bg=1,Ip=2,Cp=3;function u0(e){return xD(e.filter(t=>t!==void 0).join("/"))}function xD(e){return e.replace(/\/{2,}/g,"/")}function _D(e){return e==="/"?e:e.replace(/^\/{1,}/,"")}function Jd(e){return e==="/"?e:e.replace(/\/{1,}$/,"")}function ub(e){return Jd(_D(e))}function db(e,t){return e!=null&&e.endsWith("/")&&e!=="/"&&e!==`${t}/`?e.slice(0,-1):e}function pye(e,t,n){return db(e,n)===db(t,n)}function mye(e){const{type:t,value:n}=e;if(t===Zc)return n;const{prefixSegment:r,suffixSegment:i}=e;if(t===Bg){const A=n.substring(1);if(r&&i)return`${r}{$${A}}${i}`;if(r)return`${r}{$${A}}`;if(i)return`{$${A}}${i}`}if(t===Cp){const A=n.substring(1);return r&&i?`${r}{-$${A}}${i}`:r?`${r}{-$${A}}`:i?`{-$${A}}${i}`:`{-$${A}}`}if(t===Ip){if(r&&i)return`${r}{$}${i}`;if(r)return`${r}{$}`;if(i)return`{$}${i}`}return n}function Iye({base:e,to:t,trailingSlash:n="never",parseCache:r}){var c;let i=Ep(e,r).slice();const A=Ep(t,r);i.length>1&&((c=wD(i))==null?void 0:c.value)==="/"&&i.pop();for(let f=0,h=A.length;f1&&(wD(i).value==="/"?n==="never"&&i.pop():n==="always"&&i.push({type:Zc,value:"/"}));const l=i.map(mye);return u0(l)}const Ep=(e,t)=>{if(!e)return[];const n=t==null?void 0:t.get(e);if(n)return n;const r=bye(e);return t==null||t.set(e,r),r},Cye=/^\$.{1,}$/,Eye=/^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,Bye=/^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,yye=/^\$$/,vye=/^(.*?)\{\$\}(.*)$/;function bye(e){e=xD(e);const t=[];if(e.slice(0,1)==="/"&&(e=e.substring(1),t.push({type:Zc,value:"/"})),!e)return t;const n=e.split("/").filter(Boolean);return t.push(...n.map(r=>{const i=r.match(vye);if(i){const c=i[1],f=i[2];return{type:Ip,value:"$",prefixSegment:c||void 0,suffixSegment:f||void 0}}const A=r.match(Bye);if(A){const c=A[1],f=A[2],h=A[3];return{type:Cp,value:f,prefixSegment:c||void 0,suffixSegment:h||void 0}}const l=r.match(Eye);if(l){const c=l[1],f=l[2],h=l[3];return{type:Bg,value:""+f,prefixSegment:c||void 0,suffixSegment:h||void 0}}if(Cye.test(r)){const c=r.substring(1);return{type:Bg,value:"$"+c,prefixSegment:void 0,suffixSegment:void 0}}return yye.test(r)?{type:Ip,value:"$",prefixSegment:void 0,suffixSegment:void 0}:{type:Zc,value:r}})),e.slice(-1)==="/"&&(e=e.substring(1),t.push({type:Zc,value:"/"})),t}function kD({path:e,params:t,leaveParams:n,decodeCharMap:r,parseCache:i}){const A=Ep(e,i);function l(I){const B=t[I],v=typeof B=="string";return I==="*"||I==="_splat"?v?encodeURI(B):B:v?Qye(B,r):B}let c=!1;const f={},h=u0(A.map(I=>{if(I.type===Zc)return I.value;if(I.type===Ip){f._splat=t._splat,f["*"]=t._splat;const B=I.prefixSegment||"",v=I.suffixSegment||"";if(!t._splat)return c=!0,B||v?`${B}${v}`:void 0;const D=l("_splat");return`${B}${D}${v}`}if(I.type===Bg){const B=I.value.substring(1);!c&&!(B in t)&&(c=!0),f[B]=t[B];const v=I.prefixSegment||"",D=I.suffixSegment||"";if(n){const S=l(I.value);return`${v}${I.value}${S??""}${D}`}return`${v}${l(B)??"undefined"}${D}`}if(I.type===Cp){const B=I.value.substring(1),v=I.prefixSegment||"",D=I.suffixSegment||"";if(!(B in t)||t[B]==null)return v||D?`${v}${D}`:void 0;if(f[B]=t[B],n){const S=l(I.value);return`${v}${I.value}${S??""}${D}`}return`${v}${l(B)??""}${D}`}return I.value}));return{usedParams:f,interpolatedPath:h,isMissingParams:c}}function Qye(e,t){let n=encodeURIComponent(e);if(t)for(const[r,i]of t)n=n.replaceAll(r,i);return n}function DD(e,t,n){const r=wye(e,t,n);if(!(t.to&&!r))return r??{}}function wye(e,{to:t,fuzzy:n,caseSensitive:r},i){const A=t,l=Ep(e.startsWith("/")?e:`/${e}`,i),c=Ep(A.startsWith("/")?A:`/${A}`,i),f={};return xye(l,c,f,n,r)?f:void 0}function xye(e,t,n,r,i){var c,f,h;let A=0,l=0;for(;AM.value)));S&&N.startsWith(S)&&(N=N.slice(S.length)),R&&N.endsWith(R)&&(N=N.slice(0,N.length-R.length)),D=N}else D=decodeURI(u0(v.map(S=>S.value)));return n["*"]=D,n._splat=D,!0}if(B.type===Zc){if(B.value==="/"&&!(I!=null&&I.value)){l++;continue}if(I){if(i){if(B.value!==I.value)return!1}else if(B.value.toLowerCase()!==I.value.toLowerCase())return!1;A++,l++;continue}else return!1}if(B.type===Bg){if(!I||I.value==="/")return!1;let v="",D=!1;if(B.prefixSegment||B.suffixSegment){const S=B.prefixSegment||"",R=B.suffixSegment||"",F=I.value;if(S&&!F.startsWith(S)||R&&!F.endsWith(R))return!1;let N=F;S&&N.startsWith(S)&&(N=N.slice(S.length)),R&&N.endsWith(R)&&(N=N.slice(0,N.length-R.length)),v=decodeURIComponent(N),D=!0}else v=decodeURIComponent(I.value),D=!0;D&&(n[B.value.substring(1)]=v,A++),l++;continue}if(B.type===Cp){if(!I){l++;continue}if(I.value==="/"){l++;continue}let v="",D=!1;if(B.prefixSegment||B.suffixSegment){const S=B.prefixSegment||"",R=B.suffixSegment||"",F=I.value;if((!S||F.startsWith(S))&&(!R||F.endsWith(R))){let N=F;S&&N.startsWith(S)&&(N=N.slice(S.length)),R&&N.endsWith(R)&&(N=N.slice(0,N.length-R.length)),v=decodeURIComponent(N),D=!0}}else{let S=!0;for(let R=l+1;R=t.length)return n["**"]=u0(e.slice(A).map(v=>v.value)),!!r&&((f=t[t.length-1])==null?void 0:f.value)!=="/";if(l=e.length){for(let v=l;v{var I;if(n.isRoot||!n.path)return;const i=_D(n.fullPath);let A=Ep(i),l=0;for(;A.length>l+1&&((I=A[l])==null?void 0:I.value)==="/";)l++;l>0&&(A=A.slice(l));let c=0,f=!1;const h=A.map((B,v)=>{if(B.value==="/")return _ye;if(B.type===Zc)return kye;let D;B.type===Bg?D=Dye:B.type===Cp?(D=Sye,c++):D=Rye;for(let S=v+1;S{const i=Math.min(n.scores.length,r.scores.length);for(let A=0;Ar.parsed[A].value?1:-1;return n.index-r.index}).map((n,r)=>(n.child.rank=r,n.child))}function jye({routeTree:e,initRoute:t}){const n={},r={},i=l=>{l.forEach((c,f)=>{t==null||t(c,f);const h=n[c.id];if(c0(!h,`Duplicate routes found with id: ${String(c.id)}`),n[c.id]=c,!c.isRoot&&c.path){const B=Jd(c.fullPath);(!r[B]||c.fullPath.endsWith("/"))&&(r[B]=c)}const I=c.children;I!=null&&I.length&&i(I)})};i([e]);const A=Oye(Object.values(n));return{routesById:n,routesByPath:r,flatRoutes:A}}function tc(e){return!!(e!=null&&e.isNotFound)}function Lye(){try{if(typeof window<"u"&&typeof window.sessionStorage=="object")return window.sessionStorage}catch{}}const fb="tsr-scroll-restoration-v1_3",Pye=(e,t)=>{let n;return(...r)=>{n||(n=setTimeout(()=>{e(...r),n=null},t))}};function Uye(){const e=Lye();if(!e)return null;const t=e.getItem(fb);let n=t?JSON.parse(t):{};return{state:n,set:r=>(n=Eg(r,n)||n,e.setItem(fb,JSON.stringify(n)))}}const gb=Uye(),SD=e=>e.state.__TSR_key||e.href;function Gye(e){const t=[];let n;for(;n=e.parentNode;)t.push(`${e.tagName}:nth-child(${Array.prototype.indexOf.call(n.children,e)+1})`),e=n;return`${t.reverse().join(" > ")}`.toLowerCase()}let hb=!1;function Sz({storageKey:e,key:t,behavior:n,shouldScrollRestoration:r,scrollToTopSelectors:i,location:A}){var h,I;let l;try{l=JSON.parse(sessionStorage.getItem(e)||"{}")}catch(B){console.error(B);return}const c=t||((h=window.history.state)==null?void 0:h.__TSR_key),f=l[c];hb=!0;e:{if(r&&f&&Object.keys(f).length>0){for(const D in f){const S=f[D];if(D==="window")window.scrollTo({top:S.scrollY,left:S.scrollX,behavior:n});else if(D){const R=document.querySelector(D);R&&(R.scrollLeft=S.scrollX,R.scrollTop=S.scrollY)}}break e}const B=(A??window.location).hash.split("#",2)[1];if(B){const D=((I=window.history.state)==null?void 0:I.__hashScrollIntoViewOptions)??!0;if(D){const S=document.getElementById(B);S&&S.scrollIntoView(D)}break e}const v={top:0,left:0,behavior:n};if(window.scrollTo(v),i)for(const D of i){if(D==="window")continue;const S=typeof D=="function"?D():document.querySelector(D);S&&S.scrollTo(v)}}hb=!1}function Hye(e,t){if(!gb&&!e.isServer||((e.options.scrollRestoration??!1)&&(e.isScrollRestoring=!0),e.isServer||e.isScrollRestorationSetup||!gb))return;e.isScrollRestorationSetup=!0,hb=!1;const n=e.options.getScrollRestorationKey||SD;window.history.scrollRestoration="manual";const r=i=>{if(hb||!e.isScrollRestoring)return;let A="";if(i.target===document||i.target===window)A="window";else{const c=i.target.getAttribute("data-scroll-restoration-id");c?A=`[data-scroll-restoration-id="${c}"]`:A=Gye(i.target)}const l=n(e.state.location);gb.set(c=>{const f=c[l]||(c[l]={}),h=f[A]||(f[A]={});if(A==="window")h.scrollX=window.scrollX||0,h.scrollY=window.scrollY||0;else if(A){const I=document.querySelector(A);I&&(h.scrollX=I.scrollLeft||0,h.scrollY=I.scrollTop||0)}return c})};typeof document<"u"&&document.addEventListener("scroll",Pye(r,100),!0),e.subscribe("onRendered",i=>{const A=n(i.toLocation);if(!e.resetNextScroll){e.resetNextScroll=!0;return}typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation})||(Sz({storageKey:fb,key:A,behavior:e.options.scrollRestorationBehavior,shouldScrollRestoration:e.isScrollRestoring,scrollToTopSelectors:e.options.scrollToTopSelectors,location:e.history.location}),e.isScrollRestoring&&gb.set(l=>(l[A]||(l[A]={}),l)))})}function Yye(e){if(typeof document<"u"&&document.querySelector){const t=e.state.location.state.__hashScrollIntoViewOptions??!0;if(t&&e.state.location.hash!==""){const n=document.getElementById(e.state.location.hash);n&&n.scrollIntoView(t)}}}function Jye(e,t=String){const n=new URLSearchParams;for(const r in e){const i=e[r];i!==void 0&&n.set(r,t(i))}return n.toString()}function RD(e){return e?e==="false"?!1:e==="true"?!0:+e*0===0&&+e+""===e?+e:e:""}function zye(e){const t=new URLSearchParams(e),n={};for(const[r,i]of t.entries()){const A=n[r];A==null?n[r]=RD(i):Array.isArray(A)?A.push(RD(i)):n[r]=[A,RD(i)]}return n}const Wye=Xye(JSON.parse),qye=Vye(JSON.stringify,JSON.parse);function Xye(e){return t=>{t[0]==="?"&&(t=t.substring(1));const n=zye(t);for(const r in n){const i=n[r];if(typeof i=="string")try{n[r]=e(i)}catch{}}return n}}function Vye(e,t){const n=typeof t=="function";function r(i){if(typeof i=="object"&&i!==null)try{return e(i)}catch{}else if(n&&typeof i=="string")try{return t(i),e(i)}catch{}return i}return i=>{const A=Jye(i,r);return A?`?${A}`:""}}const ba="__root__";function Rz(e){if(e.statusCode=e.statusCode||e.code||307,!e.reloadDocument&&typeof e.href=="string")try{new URL(e.href),e.reloadDocument=!0}catch{}const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function $c(e){return e instanceof Response&&!!e.options}function Kye(e){const t=new Map;let n,r;const i=A=>{A.next&&(A.prev?(A.prev.next=A.next,A.next.prev=A.prev,A.next=void 0,r&&(r.next=A,A.prev=r)):(A.next.prev=void 0,n=A.next,A.next=void 0,r&&(A.prev=r,r.next=A)),r=A)};return{get(A){const l=t.get(A);if(l)return i(l),l.value},set(A,l){if(t.size>=e&&n){const f=n;t.delete(f.key),f.next&&(n=f.next,f.next.prev=void 0),f===r&&(r=void 0)}const c=t.get(A);if(c)c.value=l,i(c);else{const f={key:A,value:l,prev:r};r&&(r.next=f),r=f,n||(n=f),t.set(A,f)}}}}const pb=e=>{var t;if(!e.rendered)return e.rendered=!0,(t=e.onReady)==null?void 0:t.call(e)},mb=(e,t)=>!!(e.preload&&!e.router.state.matches.some(n=>n.id===t)),Tz=(e,t)=>{var i;const n=e.router.routesById[t.routeId??""]??e.router.routeTree;!n.options.notFoundComponent&&((i=e.router.options)!=null&&i.defaultNotFoundComponent)&&(n.options.notFoundComponent=e.router.options.defaultNotFoundComponent),c0(n.options.notFoundComponent);const r=e.matches.find(A=>A.routeId===n.id);c0(r,"Could not find match for route: "+n.id),e.updateMatch(r.id,A=>({...A,status:"notFound",error:t,isFetching:!1})),t.routerCode==="BEFORE_LOAD"&&n.parentRoute&&(t.routeId=n.parentRoute.id,Tz(e,t))},zd=(e,t,n)=>{var r,i,A;if(!(!$c(n)&&!tc(n))){if($c(n)&&n.redirectHandled&&!n.options.reloadDocument)throw n;if(t){(r=t._nonReactive.beforeLoadPromise)==null||r.resolve(),(i=t._nonReactive.loaderPromise)==null||i.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0;const l=$c(n)?"redirected":"notFound";t._nonReactive.error=n,e.updateMatch(t.id,c=>({...c,status:l,isFetching:!1,error:n})),tc(n)&&!n.routeId&&(n.routeId=t.routeId),(A=t._nonReactive.loadPromise)==null||A.resolve()}throw $c(n)?(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n),n):(Tz(e,n),n)}},Mz=(e,t)=>{const n=e.router.getMatch(t);return!!(!e.router.isServer&&n._nonReactive.dehydrated||e.router.isServer&&n.ssr===!1)},PI=(e,t,n,r)=>{var c,f;const{id:i,routeId:A}=e.matches[t],l=e.router.looseRoutesById[A];if(n instanceof Promise)throw n;n.routerCode=r,e.firstBadMatchIndex??(e.firstBadMatchIndex=t),zd(e,e.router.getMatch(i),n);try{(f=(c=l.options).onError)==null||f.call(c,n)}catch(h){n=h,zd(e,e.router.getMatch(i),n)}e.updateMatch(i,h=>{var I,B;return(I=h._nonReactive.beforeLoadPromise)==null||I.resolve(),h._nonReactive.beforeLoadPromise=void 0,(B=h._nonReactive.loadPromise)==null||B.resolve(),{...h,error:n,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}})},Zye=(e,t,n,r)=>{var D;const i=e.router.getMatch(t),A=(D=e.matches[n-1])==null?void 0:D.id,l=A?e.router.getMatch(A):void 0;if(e.router.isShell()){i.ssr=r.id===ba;return}if((l==null?void 0:l.ssr)===!1){i.ssr=!1;return}const c=S=>S===!0&&(l==null?void 0:l.ssr)==="data-only"?"data-only":S,f=e.router.options.defaultSsr??!0;if(r.options.ssr===void 0){i.ssr=c(f);return}if(typeof r.options.ssr!="function"){i.ssr=c(r.options.ssr);return}const{search:h,params:I}=i,B={search:Ib(h,i.searchError),params:Ib(I,i.paramsError),location:e.location,matches:e.matches.map(S=>({index:S.index,pathname:S.pathname,fullPath:S.fullPath,staticData:S.staticData,id:S.id,routeId:S.routeId,search:Ib(S.search,S.searchError),params:Ib(S.params,S.paramsError),ssr:S.ssr}))},v=r.options.ssr(B);if(Yd(v))return v.then(S=>{i.ssr=c(S??f)});i.ssr=c(v??f)},Nz=(e,t,n,r)=>{var A;if(r._nonReactive.pendingTimeout!==void 0)return;const i=n.options.pendingMs??e.router.options.defaultPendingMs;if(e.onReady&&!e.router.isServer&&!mb(e,t)&&(n.options.loader||n.options.beforeLoad||Pz(n))&&typeof i=="number"&&i!==1/0&&(n.options.pendingComponent??((A=e.router.options)==null?void 0:A.defaultPendingComponent))){const l=setTimeout(()=>{pb(e)},i);r._nonReactive.pendingTimeout=l}},$ye=(e,t,n)=>{const r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;Nz(e,t,n,r);const i=()=>{const A=e.router.getMatch(t);A.preload&&(A.status==="redirected"||A.status==="notFound")&&zd(e,A,A.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(i):i()},eve=(e,t,n,r)=>{var J,W;const i=e.router.getMatch(t),A=i._nonReactive.loadPromise;i._nonReactive.loadPromise=mp(()=>{A==null||A.resolve()});const{paramsError:l,searchError:c}=i;l&&PI(e,n,l,"PARSE_PARAMS"),c&&PI(e,n,c,"VALIDATE_SEARCH"),Nz(e,t,r,i);const f=new AbortController,h=(J=e.matches[n-1])==null?void 0:J.id,I={...((W=h?e.router.getMatch(h):void 0)==null?void 0:W.context)??e.router.options.context??void 0,...i.__routeContext};let B=!1;const v=()=>{B||(B=!0,e.updateMatch(t,q=>({...q,isFetching:"beforeLoad",fetchCount:q.fetchCount+1,abortController:f,context:I})))},D=()=>{var q;(q=i._nonReactive.beforeLoadPromise)==null||q.resolve(),i._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,$=>({...$,isFetching:!1}))};if(!r.options.beforeLoad){LI(()=>{v(),D()});return}i._nonReactive.beforeLoadPromise=mp();const{search:S,params:R,cause:F}=i,N=mb(e,t),M={search:S,abortController:f,params:R,preload:N,context:I,location:e.location,navigate:q=>e.router.navigate({...q,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:N?"preload":F,matches:e.matches,...e.router.options.additionalContext},P=q=>{if(q===void 0){LI(()=>{v(),D()});return}($c(q)||tc(q))&&(v(),PI(e,n,q,"BEFORE_LOAD")),LI(()=>{v(),e.updateMatch(t,$=>({...$,__beforeLoadContext:q,context:{...$.context,...q}})),D()})};let G;try{if(G=r.options.beforeLoad(M),Yd(G))return v(),G.catch(q=>{PI(e,n,q,"BEFORE_LOAD")}).then(P)}catch(q){v(),PI(e,n,q,"BEFORE_LOAD")}P(G)},tve=(e,t)=>{const{id:n,routeId:r}=e.matches[t],i=e.router.looseRoutesById[r],A=()=>{if(e.router.isServer){const f=Zye(e,n,t,i);if(Yd(f))return f.then(c)}return c()},l=()=>eve(e,n,t,i),c=()=>{if(Mz(e,n))return;const f=$ye(e,n,i);return Yd(f)?f.then(l):l()};return A()},UI=(e,t,n)=>{var A,l,c,f,h,I;const r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;const i={matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([(l=(A=n.options).head)==null?void 0:l.call(A,i),(f=(c=n.options).scripts)==null?void 0:f.call(c,i),(I=(h=n.options).headers)==null?void 0:I.call(h,i)]).then(([B,v,D])=>{const S=B==null?void 0:B.meta,R=B==null?void 0:B.links,F=B==null?void 0:B.scripts,N=B==null?void 0:B.styles;return{meta:S,links:R,headScripts:F,headers:D,scripts:v,styles:N}})},Fz=(e,t,n,r)=>{const i=e.matchPromises[n-1],{params:A,loaderDeps:l,abortController:c,cause:f}=e.router.getMatch(t);let h=e.router.options.context??{};for(let B=0;B<=n;B++){const v=e.matches[B];if(!v)continue;const D=e.router.getMatch(v.id);D&&(h={...h,...D.__routeContext??{},...D.__beforeLoadContext??{}})}const I=mb(e,t);return{params:A,deps:l,preload:!!I,parentMatchPromise:i,abortController:c,context:h,location:e.location,navigate:B=>e.router.navigate({...B,_fromLocation:e.location}),cause:I?"preload":f,route:r,...e.router.options.additionalContext}},Oz=async(e,t,n,r)=>{var i,A,l,c,f,h;try{const I=e.router.getMatch(t);try{(!e.router.isServer||I.ssr===!0)&&Lz(r);const B=(A=(i=r.options).loader)==null?void 0:A.call(i,Fz(e,t,n,r)),v=r.options.loader&&Yd(B);if((v||r._lazyPromise||r._componentsPromise||r.options.head||r.options.scripts||r.options.headers||I._nonReactive.minPendingPromise)&&e.updateMatch(t,F=>({...F,isFetching:"loader"})),r.options.loader){const F=v?await B:B;zd(e,e.router.getMatch(t),F),F!==void 0&&e.updateMatch(t,N=>({...N,loaderData:F}))}r._lazyPromise&&await r._lazyPromise;const D=UI(e,t,r),S=D?await D:void 0,R=I._nonReactive.minPendingPromise;R&&await R,r._componentsPromise&&await r._componentsPromise,e.updateMatch(t,F=>({...F,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),...S}))}catch(B){let v=B;const D=I._nonReactive.minPendingPromise;D&&await D,tc(B)&&await((c=(l=r.options.notFoundComponent)==null?void 0:l.preload)==null?void 0:c.call(l)),zd(e,e.router.getMatch(t),B);try{(h=(f=r.options).onError)==null||h.call(f,B)}catch(F){v=F,zd(e,e.router.getMatch(t),F)}const S=UI(e,t,r),R=S?await S:void 0;e.updateMatch(t,F=>({...F,error:v,status:"error",isFetching:!1,...R}))}}catch(I){const B=e.router.getMatch(t);if(B){const v=UI(e,t,r);if(v){const D=await v;e.updateMatch(t,S=>({...S,...D}))}B._nonReactive.loaderPromise=void 0}zd(e,B,I)}},nve=async(e,t)=>{var h,I;const{id:n,routeId:r}=e.matches[t];let i=!1,A=!1;const l=e.router.looseRoutesById[r];if(Mz(e,n)){if(e.router.isServer){const B=UI(e,n,l);if(B){const v=await B;e.updateMatch(n,D=>({...D,...v}))}return e.router.getMatch(n)}}else{const B=e.router.getMatch(n);if(B._nonReactive.loaderPromise){if(B.status==="success"&&!e.sync&&!B.preload)return B;await B._nonReactive.loaderPromise;const v=e.router.getMatch(n),D=v._nonReactive.error||v.error;D&&zd(e,v,D)}else{const v=Date.now()-B.updatedAt,D=mb(e,n),S=D?l.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:l.options.staleTime??e.router.options.defaultStaleTime??0,R=l.options.shouldReload,F=typeof R=="function"?R(Fz(e,n,t,l)):R,N=!!D&&!e.router.state.matches.some(J=>J.id===n),M=e.router.getMatch(n);M._nonReactive.loaderPromise=mp(),N!==M.preload&&e.updateMatch(n,J=>({...J,preload:N}));const{status:P,invalid:G}=M;if(i=P==="success"&&(G||(F??v>S)),!(D&&l.options.preload===!1))if(i&&!e.sync)A=!0,(async()=>{var J,W;try{await Oz(e,n,t,l);const q=e.router.getMatch(n);(J=q._nonReactive.loaderPromise)==null||J.resolve(),(W=q._nonReactive.loadPromise)==null||W.resolve(),q._nonReactive.loaderPromise=void 0}catch(q){$c(q)&&await e.router.navigate(q.options)}})();else if(P!=="success"||i&&e.sync)await Oz(e,n,t,l);else{const J=UI(e,n,l);if(J){const W=await J;e.updateMatch(n,q=>({...q,...W}))}}}}const c=e.router.getMatch(n);A||((h=c._nonReactive.loaderPromise)==null||h.resolve(),(I=c._nonReactive.loadPromise)==null||I.resolve()),clearTimeout(c._nonReactive.pendingTimeout),c._nonReactive.pendingTimeout=void 0,A||(c._nonReactive.loaderPromise=void 0),c._nonReactive.dehydrated=void 0;const f=A?c.isFetching:!1;return f!==c.isFetching||c.invalid!==!1?(e.updateMatch(n,B=>({...B,isFetching:f,invalid:!1})),e.router.getMatch(n)):c};async function jz(e){const t=Object.assign(e,{matchPromises:[]});!t.router.isServer&&t.router.state.matches.some(n=>n._forcePending)&&pb(t);try{for(let i=0;i{const{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0),!e._componentsLoaded&&e._componentsPromise===void 0){const t=()=>{var r;const n=[];for(const i of Uz){const A=(r=e.options[i])==null?void 0:r.preload;A&&n.push(A())}if(n.length)return Promise.all(n).then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0});e._componentsLoaded=!0,e._componentsPromise=void 0};e._componentsPromise=e._lazyPromise?e._lazyPromise.then(t):t()}return e._componentsPromise}function Ib(e,t){return t?{status:"error",error:t}:{status:"success",value:e}}function Pz(e){var t;for(const n of Uz)if((t=e.options[n])!=null&&t.preload)return!0;return!1}const Uz=["component","errorComponent","pendingComponent","notFoundComponent"];function rve(e){return{input:({url:t})=>{for(const n of e)t=Gz(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=Hz(e[n],t);return t}}}function ove(e){const t=ub(e.basepath),n=`/${t}`,r=`${n}/`,i=e.caseSensitive?n:n.toLowerCase(),A=e.caseSensitive?r:r.toLowerCase();return{input:({url:l})=>{const c=e.caseSensitive?l.pathname:l.pathname.toLowerCase();return c===i?l.pathname="/":c.startsWith(A)&&(l.pathname=l.pathname.slice(n.length)),l},output:({url:l})=>(l.pathname=u0(["/",t,l.pathname]),l)}}function Gz(e,t){var r;const n=(r=e==null?void 0:e.input)==null?void 0:r.call(e,{url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function Hz(e,t){var r;const n=(r=e==null?void 0:e.output)==null?void 0:r.call(e,{url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function yg(e){const t=e.resolvedLocation,n=e.location,r=(t==null?void 0:t.pathname)!==n.pathname,i=(t==null?void 0:t.href)!==n.href,A=(t==null?void 0:t.hash)!==n.hash;return{fromLocation:t,toLocation:n,pathChanged:r,hrefChanged:i,hashChanged:A}}class ive{constructor(t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=n=>n(),this.update=n=>{var I;n.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.");const r=this.options,i=this.basepath??(r==null?void 0:r.basepath)??"/",A=this.basepath===void 0,l=r==null?void 0:r.rewrite;this.options={...r,...n},this.isServer=this.options.isServer??typeof document>"u",this.pathParamsDecodeCharMap=this.options.pathParamsAllowedCharacters?new Map(this.options.pathParamsAllowedCharacters.map(B=>[encodeURIComponent(B),B])):void 0,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.isServer||(this.history=uye())),this.origin=this.options.origin,this.origin||(!this.isServer&&(window!=null&&window.origin)&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),!this.__store&&this.latestLocation&&(this.__store=new lye(sve(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(B=>!["redirected"].includes(B.status))}}}),Hye(this));let c=!1;const f=this.options.basepath??"/",h=this.options.rewrite;if(A||i!==f||l!==h){this.basepath=f;const B=[];ub(f)!==""&&B.push(ove({basepath:f})),h&&B.push(h),this.rewrite=B.length===0?void 0:B.length===1?B[0]:rve(B),this.history&&this.updateLatestLocation(),c=!0}c&&this.__store&&(this.__store.state={...this.state,location:this.latestLocation}),typeof window<"u"&&"CSS"in window&&typeof((I=window.CSS)==null?void 0:I.supports)=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const{routesById:n,routesByPath:r,flatRoutes:i}=jye({routeTree:this.routeTree,initRoute:(l,c)=>{l.init({originalIndex:c})}});this.routesById=n,this.routesByPath=r,this.flatRoutes=i;const A=this.options.notFoundRoute;A&&(A.init({originalIndex:99999999999}),this.routesById[A.id]=A)},this.subscribe=(n,r)=>{const i={eventType:n,fn:r};return this.subscribers.add(i),()=>{this.subscribers.delete(i)}},this.emit=n=>{this.subscribers.forEach(r=>{r.eventType===n.type&&r.fn(n)})},this.parseLocation=(n,r)=>{const i=({href:f,state:h})=>{const I=new URL(f,this.origin),B=Gz(this.rewrite,I),v=this.options.parseSearch(B.search),D=this.options.stringifySearch(v);B.search=D;const S=B.href.replace(B.origin,""),{pathname:R,hash:F}=B;return{href:S,publicHref:f,url:B.href,pathname:xz(R),searchStr:D,search:ec(r==null?void 0:r.search,v),hash:F.split("#").reverse()[0]??"",state:ec(r==null?void 0:r.state,h)}},A=i(n),{__tempLocation:l,__tempKey:c}=A.state;if(l&&(!c||c===this.tempLocationKey)){const f=i(l);return f.state.key=A.state.key,f.state.__TSR_key=A.state.__TSR_key,delete f.state.__tempLocation,{...f,maskedLocation:A}}return A},this.resolvePathWithBase=(n,r)=>Iye({base:n,to:xD(r),trailingSlash:this.options.trailingSlash,parseCache:this.parsePathnameCache}),this.matchRoutes=(n,r,i)=>typeof n=="string"?this.matchRoutesInternal({pathname:n,search:r},i):this.matchRoutesInternal(n,r),this.parsePathnameCache=Kye(1e3),this.getMatchedRoutes=(n,r)=>ave({pathname:n,routePathname:r,caseSensitive:this.options.caseSensitive,routesByPath:this.routesByPath,routesById:this.routesById,flatRoutes:this.flatRoutes,parseCache:this.parsePathnameCache}),this.cancelMatch=n=>{const r=this.getMatch(n);r&&(r.abortController.abort(),clearTimeout(r._nonReactive.pendingTimeout),r._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{const n=this.state.matches.filter(i=>i.status==="pending"),r=this.state.matches.filter(i=>i.isFetching==="loader");new Set([...this.state.pendingMatches??[],...n,...r]).forEach(i=>{this.cancelMatch(i.id)})},this.buildLocation=n=>{const r=(A={})=>{var K,se;const l=A._fromLocation||this.pendingBuiltLocation||this.latestLocation,c=this.matchRoutes(l,{_buildLocation:!0}),f=wD(c);A.from;const h=A.unsafeRelative==="path"?l.pathname:A.from??f.fullPath,I=this.resolvePathWithBase(h,"."),B=f.search,v={...f.params},D=A.to?this.resolvePathWithBase(I,`${A.to}`):this.resolvePathWithBase(I,"."),S=A.params===!1||A.params===null?{}:(A.params??!0)===!0?v:Object.assign(v,Eg(A.params,v)),R=kD({path:D,params:S,parseCache:this.parsePathnameCache}).interpolatedPath,F=this.matchRoutes(R,void 0,{_buildLocation:!0}).map(Ee=>this.looseRoutesById[Ee.routeId]);if(Object.keys(S).length>0)for(const Ee of F){const ie=((K=Ee.options.params)==null?void 0:K.stringify)??Ee.options.stringifyParams;ie&&Object.assign(S,ie(S))}const N=xz(kD({path:D,params:S,leaveParams:n.leaveParams,decodeCharMap:this.pathParamsDecodeCharMap,parseCache:this.parsePathnameCache}).interpolatedPath);let M=B;if(n._includeValidateSearch&&((se=this.options.search)!=null&&se.strict)){const Ee={};F.forEach(ie=>{if(ie.options.validateSearch)try{Object.assign(Ee,TD(ie.options.validateSearch,{...Ee,...M}))}catch{}}),M=Ee}M=lve({search:M,dest:A,destRoutes:F,_includeValidateSearch:n._includeValidateSearch}),M=ec(B,M);const P=this.options.stringifySearch(M),G=A.hash===!0?l.hash:A.hash?Eg(A.hash,l.hash):void 0,J=G?`#${G}`:"";let W=A.state===!0?l.state:A.state?Eg(A.state,l.state):{};W=ec(l.state,W);const q=`${N}${P}${J}`,$=new URL(q,this.origin),oe=Hz(this.rewrite,$);return{publicHref:oe.pathname+oe.search+oe.hash,href:q,url:oe.href,pathname:N,search:M,searchStr:P,state:W,hash:G??"",unmaskOnReload:A.unmaskOnReload}},i=(A={},l)=>{var h;const c=r(A);let f=l?r(l):void 0;if(!f){let I={};const B=(h=this.options.routeMasks)==null?void 0:h.find(v=>{const D=DD(c.pathname,{to:v.from,caseSensitive:!1,fuzzy:!1},this.parsePathnameCache);return D?(I=D,!0):!1});if(B){const{from:v,...D}=B;l={from:n.from,...D,params:I},f=r(l)}}return f&&(c.maskedLocation=f),c};return n.mask?i(n,{from:n.from,...n.mask}):i(n)},this.commitLocation=({viewTransition:n,ignoreBlocker:r,...i})=>{const A=()=>{const f=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];f.forEach(I=>{i.state[I]=this.latestLocation.state[I]});const h=Hd(i.state,this.latestLocation.state);return f.forEach(I=>{delete i.state[I]}),h},l=Jd(this.latestLocation.href)===Jd(i.href),c=this.commitLocationPromise;if(this.commitLocationPromise=mp(()=>{c==null||c.resolve()}),l&&A())this.load();else{let{maskedLocation:f,hashScrollIntoView:h,...I}=i;f&&(I={...f,state:{...f.state,__tempKey:void 0,__tempLocation:{...I,search:I.searchStr,state:{...I.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(I.unmaskOnReload??this.options.unmaskOnReload??!1)&&(I.state.__tempKey=this.tempLocationKey)),I.state.__hashScrollIntoViewOptions=h??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=n,this.history[i.replace?"replace":"push"](I.publicHref,I.state,{ignoreBlocker:r})}return this.resetNextScroll=i.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:n,resetScroll:r,hashScrollIntoView:i,viewTransition:A,ignoreBlocker:l,href:c,...f}={})=>{if(c){const B=this.history.location.state.__TSR_index,v=lb(c,{__TSR_index:n?B:B+1});f.to=v.pathname,f.search=this.options.parseSearch(v.search),f.hash=v.hash.slice(1)}const h=this.buildLocation({...f,_includeValidateSearch:!0});this.pendingBuiltLocation=h;const I=this.commitLocation({...h,viewTransition:A,replace:n,resetScroll:r,hashScrollIntoView:i,ignoreBlocker:l});return Promise.resolve().then(()=>{this.pendingBuiltLocation===h&&(this.pendingBuiltLocation=void 0)}),I},this.navigate=({to:n,reloadDocument:r,href:i,...A})=>{if(!r&&i)try{new URL(`${i}`),r=!0}catch{}return r?(i||(i=this.buildLocation({to:n,...A}).url),A.replace?window.location.replace(i):window.location.href=i,Promise.resolve()):this.buildAndCommitLocation({...A,href:i,to:n,_isNavigate:!0})},this.beforeLoad=()=>{if(this.cancelMatches(),this.updateLatestLocation(),this.isServer){const r=this.buildLocation({to:this.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0}),i=A=>{try{return encodeURI(decodeURI(A))}catch{return A}};if(ub(i(this.latestLocation.href))!==ub(i(r.href))){let A=r.url;throw this.origin&&A.startsWith(this.origin)&&(A=A.replace(this.origin,"")||"/"),Rz({href:A})}}const n=this.matchRoutes(this.latestLocation);this.__store.setState(r=>({...r,status:"pending",statusCode:200,isLoading:!0,location:this.latestLocation,pendingMatches:n,cachedMatches:r.cachedMatches.filter(i=>!n.some(A=>A.id===i.id))}))},this.load=async n=>{let r,i,A;for(A=new Promise(c=>{this.startTransition(async()=>{var f;try{this.beforeLoad();const h=this.latestLocation,I=this.state.resolvedLocation;this.state.redirect||this.emit({type:"onBeforeNavigate",...yg({resolvedLocation:I,location:h})}),this.emit({type:"onBeforeLoad",...yg({resolvedLocation:I,location:h})}),await jz({router:this,sync:n==null?void 0:n.sync,matches:this.state.pendingMatches,location:h,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let B=[],v=[],D=[];LI(()=>{this.__store.setState(S=>{const R=S.matches,F=S.pendingMatches||S.matches;return B=R.filter(N=>!F.some(M=>M.id===N.id)),v=F.filter(N=>!R.some(M=>M.id===N.id)),D=F.filter(N=>R.some(M=>M.id===N.id)),{...S,isLoading:!1,loadedAt:Date.now(),matches:F,pendingMatches:void 0,cachedMatches:[...S.cachedMatches,...B.filter(N=>N.status!=="error")]}}),this.clearExpiredCache()}),[[B,"onLeave"],[v,"onEnter"],[D,"onStay"]].forEach(([S,R])=>{S.forEach(F=>{var N,M;(M=(N=this.looseRoutesById[F.routeId].options)[R])==null||M.call(N,F)})})})})}})}catch(h){$c(h)?(r=h,this.isServer||this.navigate({...r.options,replace:!0,ignoreBlocker:!0})):tc(h)&&(i=h),this.__store.setState(I=>({...I,statusCode:r?r.status:i?404:I.matches.some(B=>B.status==="error")?500:200,redirect:r}))}this.latestLoadPromise===A&&((f=this.commitLocationPromise)==null||f.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),c()})}),this.latestLoadPromise=A,await A;this.latestLoadPromise&&A!==this.latestLoadPromise;)await this.latestLoadPromise;let l;this.hasNotFoundMatch()?l=404:this.__store.state.matches.some(c=>c.status==="error")&&(l=500),l!==void 0&&this.__store.setState(c=>({...c,statusCode:l}))},this.startViewTransition=n=>{const r=this.shouldViewTransition??this.options.defaultViewTransition;if(delete this.shouldViewTransition,r&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let i;if(typeof r=="object"&&this.isViewTransitionTypesSupported){const A=this.latestLocation,l=this.state.resolvedLocation,c=typeof r.types=="function"?r.types(yg({resolvedLocation:l,location:A})):r.types;if(c===!1){n();return}i={update:n,types:c}}else i=n;document.startViewTransition(i)}else n()},this.updateMatch=(n,r)=>{this.startTransition(()=>{var A;const i=(A=this.state.pendingMatches)!=null&&A.some(l=>l.id===n)?"pendingMatches":this.state.matches.some(l=>l.id===n)?"matches":this.state.cachedMatches.some(l=>l.id===n)?"cachedMatches":"";i&&this.__store.setState(l=>{var c;return{...l,[i]:(c=l[i])==null?void 0:c.map(f=>f.id===n?r(f):f)}})})},this.getMatch=n=>{var i;const r=A=>A.id===n;return this.state.cachedMatches.find(r)??((i=this.state.pendingMatches)==null?void 0:i.find(r))??this.state.matches.find(r)},this.invalidate=n=>{const r=i=>{var A;return((A=n==null?void 0:n.filter)==null?void 0:A.call(n,i))??!0?{...i,invalid:!0,...n!=null&&n.forcePending||i.status==="error"?{status:"pending",error:void 0}:void 0}:i};return this.__store.setState(i=>{var A;return{...i,matches:i.matches.map(r),cachedMatches:i.cachedMatches.map(r),pendingMatches:(A=i.pendingMatches)==null?void 0:A.map(r)}}),this.shouldViewTransition=!1,this.load({sync:n==null?void 0:n.sync})},this.resolveRedirect=n=>{if(!n.options.href){const r=this.buildLocation(n.options);let i=r.url;this.origin&&i.startsWith(this.origin)&&(i=i.replace(this.origin,"")||"/"),n.options.href=r.href,n.headers.set("Location",i)}return n.headers.get("Location")||n.headers.set("Location",n.options.href),n},this.clearCache=n=>{const r=n==null?void 0:n.filter;r!==void 0?this.__store.setState(i=>({...i,cachedMatches:i.cachedMatches.filter(A=>!r(A))})):this.__store.setState(i=>({...i,cachedMatches:[]}))},this.clearExpiredCache=()=>{const n=r=>{const i=this.looseRoutesById[r.routeId];if(!i.options.loader)return!0;const A=(r.preload?i.options.preloadGcTime??this.options.defaultPreloadGcTime:i.options.gcTime??this.options.defaultGcTime)??5*60*1e3;return r.status==="error"?!0:Date.now()-r.updatedAt>=A};this.clearCache({filter:n})},this.loadRouteChunk=Lz,this.preloadRoute=async n=>{const r=this.buildLocation(n);let i=this.matchRoutes(r,{throwOnError:!0,preload:!0,dest:n});const A=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(c=>c.id)),l=new Set([...A,...this.state.cachedMatches.map(c=>c.id)]);LI(()=>{i.forEach(c=>{l.has(c.id)||this.__store.setState(f=>({...f,cachedMatches:[...f.cachedMatches,c]}))})});try{return i=await jz({router:this,matches:i,location:r,preload:!0,updateMatch:(c,f)=>{A.has(c)?i=i.map(h=>h.id===c?f(h):h):this.updateMatch(c,f)}}),i}catch(c){if($c(c))return c.options.reloadDocument?void 0:await this.preloadRoute({...c.options,_fromLocation:r});tc(c)||console.error(c);return}},this.matchRoute=(n,r)=>{const i={...n,to:n.to?this.resolvePathWithBase(n.from||"",n.to):void 0,params:n.params||{},leaveParams:!0},A=this.buildLocation(i);if(r!=null&&r.pending&&this.state.status!=="pending")return!1;const l=((r==null?void 0:r.pending)===void 0?!this.state.isLoading:r.pending)?this.latestLocation:this.state.resolvedLocation||this.state.location,c=DD(l.pathname,{...r,to:A.pathname},this.parsePathnameCache);return!c||n.params&&!Hd(c,n.params,{partial:!0})?!1:c&&((r==null?void 0:r.includeSearch)??!0)?Hd(l.search,A.search,{partial:!0})?c:!1:c},this.hasNotFoundMatch=()=>this.__store.state.matches.some(n=>n.status==="notFound"||n.globalNotFound),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...t,caseSensitive:t.caseSensitive??!1,notFoundMode:t.notFoundMode??"fuzzy",stringifySearch:t.stringifySearch??qye,parseSearch:t.parseSearch??Wye}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.__store.state}get looseRoutesById(){return this.routesById}matchRoutesInternal(t,n){var I;const{foundRoute:r,matchedRoutes:i,routeParams:A}=this.getMatchedRoutes(t.pathname,(I=n==null?void 0:n.dest)==null?void 0:I.to);let l=!1;(r?r.path!=="/"&&A["**"]:Jd(t.pathname))&&(this.options.notFoundRoute?i.push(this.options.notFoundRoute):l=!0);const c=(()=>{if(l){if(this.options.notFoundMode!=="root")for(let B=i.length-1;B>=0;B--){const v=i[B];if(v.children)return v.id}return ba}})(),f=[],h=B=>B!=null&&B.id?B.context??this.options.context??void 0:this.options.context??void 0;return i.forEach((B,v)=>{var ie,Ae,Be;const D=f[v-1],[S,R,F]=(()=>{const ae=(D==null?void 0:D.search)??t.search,Ce=(D==null?void 0:D._strictSearch)??void 0;try{const de=TD(B.options.validateSearch,{...ae})??void 0;return[{...ae,...de},{...Ce,...de},void 0]}catch(de){let ge=de;if(de instanceof Cb||(ge=new Cb(de.message,{cause:de})),n==null?void 0:n.throwOnError)throw ge;return[ae,{},ge]}})(),N=((Ae=(ie=B.options).loaderDeps)==null?void 0:Ae.call(ie,{search:S}))??"",M=N?JSON.stringify(N):"",{interpolatedPath:P,usedParams:G}=kD({path:B.fullPath,params:A,decodeCharMap:this.pathParamsDecodeCharMap}),J=B.id+P+M,W=this.getMatch(J),q=this.state.matches.find(ae=>ae.routeId===B.id),$=(W==null?void 0:W._strictParams)??G;let oe;if(!W){const ae=((Be=B.options.params)==null?void 0:Be.parse)??B.options.parseParams;if(ae)try{Object.assign($,ae($))}catch(Ce){if(oe=new Ave(Ce.message,{cause:Ce}),n==null?void 0:n.throwOnError)throw oe}}Object.assign(A,$);const K=q?"stay":"enter";let se;if(W)se={...W,cause:K,params:q?ec(q.params,A):A,_strictParams:$,search:ec(q?q.search:W.search,S),_strictSearch:R};else{const ae=B.options.loader||B.options.beforeLoad||B.lazyFn||Pz(B)?"pending":"success";se={id:J,index:v,routeId:B.id,params:q?ec(q.params,A):A,_strictParams:$,pathname:P,updatedAt:Date.now(),search:q?ec(q.search,S):S,_strictSearch:R,searchError:void 0,status:ae,isFetching:!1,error:void 0,paramsError:oe,__routeContext:void 0,_nonReactive:{loadPromise:mp()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:K,loaderDeps:q?ec(q.loaderDeps,N):N,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:B.options.staticData||{},fullPath:B.fullPath}}n!=null&&n.preload||(se.globalNotFound=c===B.id),se.searchError=F;const Ee=h(D);se.context={...Ee,...se.__routeContext,...se.__beforeLoadContext},f.push(se)}),f.forEach((B,v)=>{const D=this.looseRoutesById[B.routeId];if(!this.getMatch(B.id)&&(n==null?void 0:n._buildLocation)!==!0){const S=f[v-1],R=h(S);if(D.options.context){const F={deps:B.loaderDeps,params:B.params,context:R??{},location:t,navigate:N=>this.navigate({...N,_fromLocation:t}),buildLocation:this.buildLocation,cause:B.cause,abortController:B.abortController,preload:!!B.preload,matches:f};B.__routeContext=D.options.context(F)??void 0}B.context={...R,...B.__routeContext,...B.__beforeLoadContext}}}),f}}class Cb extends Error{}class Ave extends Error{}function sve(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:e,matches:[],pendingMatches:[],cachedMatches:[],statusCode:200}}function TD(e,t){if(e==null)return{};if("~standard"in e){const n=e["~standard"].validate(t);if(n instanceof Promise)throw new Cb("Async validation not supported");if(n.issues)throw new Cb(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return"parse"in e?e.parse(t):typeof e=="function"?e(t):{}}function ave({pathname:e,routePathname:t,caseSensitive:n,routesByPath:r,routesById:i,flatRoutes:A,parseCache:l}){let c={};const f=Jd(e),h=D=>{var S;return DD(f,{to:D.fullPath,caseSensitive:((S=D.options)==null?void 0:S.caseSensitive)??n,fuzzy:!0},l)};let I=t!==void 0?r[t]:void 0;if(I)c=h(I);else{let D;for(const S of A){const R=h(S);if(R)if(S.path!=="/"&&R["**"])D||(D={foundRoute:S,routeParams:R});else{I=S,c=R;break}}!I&&D&&(I=D.foundRoute,c=D.routeParams)}let B=I||i[ba];const v=[B];for(;B.parentRoute;)B=B.parentRoute,v.push(B);return v.reverse(),{matchedRoutes:v,routeParams:c,foundRoute:I}}function lve({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){const i=n.reduce((c,f)=>{var I;const h=[];if("search"in f.options)(I=f.options.search)!=null&&I.middlewares&&h.push(...f.options.search.middlewares);else if(f.options.preSearchFilters||f.options.postSearchFilters){const B=({search:v,next:D})=>{let S=v;"preSearchFilters"in f.options&&f.options.preSearchFilters&&(S=f.options.preSearchFilters.reduce((F,N)=>N(F),v));const R=D(S);return"postSearchFilters"in f.options&&f.options.postSearchFilters?f.options.postSearchFilters.reduce((F,N)=>N(F),R):R};h.push(B)}if(r&&f.options.validateSearch){const B=({search:v,next:D})=>{const S=D(v);try{return{...S,...TD(f.options.validateSearch,S)??void 0}}catch{return S}};h.push(B)}return c.concat(h)},[])??[],A=({search:c})=>t.search?t.search===!0?c:Eg(t.search,c):{};i.push(A);const l=(c,f)=>{if(c>=i.length)return f;const h=i[c];return h({search:f,next:I=>l(c+1,I)})};return l(0,e)}const cve="Error preloading route! \u261D\uFE0F";class Yz{constructor(t){if(this.init=n=>{var h,I;this.originalIndex=n.originalIndex;const r=this.options,i=!(r!=null&&r.path)&&!(r!=null&&r.id);this.parentRoute=(I=(h=this.options).getParentRoute)==null?void 0:I.call(h),i?this._path=ba:this.parentRoute||c0(!1);let A=i?ba:r==null?void 0:r.path;A&&A!=="/"&&(A=_D(A));const l=(r==null?void 0:r.id)||A;let c=i?ba:u0([this.parentRoute.id===ba?"":this.parentRoute.id,l]);A===ba&&(A="/"),c!==ba&&(c=u0(["/",c]));const f=c===ba?"/":u0([this.parentRoute.fullPath,A]);this._path=A,this._id=c,this._fullPath=f,this._to=f},this.addChildren=n=>this._addFileChildren(n),this._addFileChildren=n=>(Array.isArray(n)&&(this.children=n),typeof n=="object"&&n!==null&&(this.children=Object.values(n)),this),this._addFileTypes=()=>this,this.updateLoader=n=>(Object.assign(this.options,n),this),this.update=n=>(Object.assign(this.options,n),this),this.lazy=n=>(this.lazyFn=n,this),this.options=t||{},this.isRoot=!(t!=null&&t.getParentRoute),(t==null?void 0:t.id)&&(t==null?void 0:t.path))throw new Error("Route cannot have both an 'id' and a 'path' option.")}get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}}class uve extends Yz{constructor(t){super(t)}}function dve(e){return({search:t,next:n})=>{const r=n(t);return e===!0?{...t,...r}:(e.forEach(i=>{i in r||(r[i]=t[i])}),r)}}function fve(e){return({search:t,next:n})=>{if(e===!0)return{};const r=n(t);return Array.isArray(e)?e.forEach(i=>{delete r[i]}):Object.entries(e).forEach(([i,A])=>{Hd(r[i],A)&&delete r[i]}),r}}function MD(e){const t=e.errorComponent??Eb;return p.jsx(gve,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?x.createElement(t,{error:n,reset:r}):e.children})}class gve extends x.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(t){return{resetKey:t.getResetKey()}}static getDerivedStateFromError(t){return{error:t}}reset(){this.setState({error:null})}componentDidUpdate(t,n){n.error&&n.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(t,n){this.props.onCatch&&this.props.onCatch(t,n)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function Eb({error:e}){const[t,n]=x.useState(!1);return p.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[p.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[p.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),p.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(r=>!r),children:t?"Hide Error":"Show Error"})]}),p.jsx("div",{style:{height:".25rem"}}),t?p.jsx("div",{children:p.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?p.jsx("code",{children:e.message}):null})}):null]})}function hve({children:e,fallback:t=null}){return pve()?p.jsx(Et.Fragment,{children:e}):p.jsx(Et.Fragment,{children:t})}function pve(){return Et.useSyncExternalStore(mve,()=>!0,()=>!1)}function mve(){return()=>{}}var Jz={exports:{}},zz={},Bb=x,Ive=ppe;function Cve(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Eve=typeof Object.is=="function"?Object.is:Cve,Bve=Ive.useSyncExternalStore,yve=Bb.useRef,vve=Bb.useEffect,bve=Bb.useMemo,Qve=Bb.useDebugValue;zz.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var A=yve(null);if(A.current===null){var l={hasValue:!1,value:null};A.current=l}else l=A.current;A=bve(function(){function f(D){if(!h){if(h=!0,I=D,D=r(D),i!==void 0&&l.hasValue){var S=l.value;if(i(S,D))return B=S}return B=D}if(S=B,Eve(I,D))return S;var R=r(D);return i!==void 0&&i(S,R)?(I=D,S):(I=D,B=R)}var h=!1,I,B,v=n===void 0?null:n;return[function(){return f(t())},v===null?void 0:function(){return f(v())}]},[t,n,r,i]);var c=Bve(e,A[0],A[1]);return vve(function(){l.hasValue=!0,l.value=c},[c]),Qve(c),c},Jz.exports=zz;var wve=Jz.exports;function xve(e,t=r=>r,n={}){const r=n.equal??_ve;return wve.useSyncExternalStoreWithSelector(e.subscribe,()=>e.state,()=>e.state,t,r)}function _ve(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,i]of e)if(!t.has(r)||!Object.is(i,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();const n=Wz(e);if(n.length!==Wz(t).length)return!1;for(let r=0;r"u"?ND:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=ND,ND)}function Qa(e){const t=x.useContext(qz());return e==null||e.warn,t}function vs(e){const t=Qa({warn:(e==null?void 0:e.router)===void 0}),n=(e==null?void 0:e.router)||t,r=x.useRef(void 0);return xve(n.__store,i=>{if(e!=null&&e.select){if(e.structuralSharing??n.options.defaultStructuralSharing){const A=ec(r.current,e.select(i));return r.current=A,A}return e.select(i)}return i})}const yb=x.createContext(void 0),kve=x.createContext(void 0);function eu(e){const t=x.useContext(e.from?kve:yb);return vs({select:n=>{const r=n.matches.find(i=>e.from?e.from===i.routeId:i.id===t);if(c0(!((e.shouldThrow??!0)&&!r),`Could not find ${e.from?`an active match from "${e.from}"`:"a nearest match!"}`),r!==void 0)return e.select?e.select(r):r},structuralSharing:e.structuralSharing})}function FD(e){return eu({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function OD(e){const{select:t,...n}=e;return eu({...n,select:r=>t?t(r.loaderDeps):r.loaderDeps})}function jD(e){return eu({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function LD(e){return eu({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function Bp(e){const t=Qa();return x.useCallback(n=>t.navigate({...n,from:n.from??(e==null?void 0:e.from)}),[e==null?void 0:e.from,t])}const vb=typeof window<"u"?x.useLayoutEffect:x.useEffect;function PD(e){const t=x.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function Dve(e,t,n={},r={}){x.useEffect(()=>{if(!e.current||r.disabled||typeof IntersectionObserver!="function")return;const i=new IntersectionObserver(([A])=>{t(A)},n);return i.observe(e.current),()=>{i.disconnect()}},[t,n,r.disabled,e])}function Sve(e){const t=x.useRef(null);return x.useImperativeHandle(e,()=>t.current,[]),t}function Rve(e,t){const n=Qa(),[r,i]=x.useState(!1),A=x.useRef(!1),l=Sve(t),{activeProps:c,inactiveProps:f,activeOptions:h,to:I,preload:B,preloadDelay:v,hashScrollIntoView:D,replace:S,startTransition:R,resetScroll:F,viewTransition:N,children:M,target:P,disabled:G,style:J,className:W,onClick:q,onFocus:$,onMouseEnter:oe,onMouseLeave:K,onTouchStart:se,ignoreBlocker:Ee,params:ie,search:Ae,hash:Be,state:ae,mask:Ce,reloadDocument:de,unsafeRelative:ge,from:be,_fromLocation:Te,...me}=e,Ye=vs({select:_t=>_t.location.search,structuralSharing:!0}),rt=e.from,We=x.useMemo(()=>({...e,from:rt}),[n,Ye,rt,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),De=x.useMemo(()=>n.buildLocation({...We}),[n,We]),_e=x.useMemo(()=>{if(G)return;let _t=De.maskedLocation?De.maskedLocation.url:De.url,Pt=!1;return n.origin&&(_t.startsWith(n.origin)?_t=n.history.createHref(_t.replace(n.origin,""))||"/":Pt=!0),{href:_t,external:Pt}},[G,De.maskedLocation,De.url,n.origin,n.history]),xe=x.useMemo(()=>{if(_e!=null&&_e.external)return _e.href;try{return new URL(I),I}catch{}},[I,_e]),ve=e.reloadDocument||xe?!1:B??n.options.defaultPreload,Ue=v??n.options.defaultPreloadDelay??0,At=vs({select:_t=>{if(xe)return!1;if(h!=null&&h.exact){if(!pye(_t.location.pathname,De.pathname,n.basepath))return!1}else{const Pt=db(_t.location.pathname,n.basepath),Ve=db(De.pathname,n.basepath);if(!(Pt.startsWith(Ve)&&(Pt.length===Ve.length||Pt[Ve.length]==="/")))return!1}return((h==null?void 0:h.includeSearch)??!0)&&!Hd(_t.location.search,De.search,{partial:!(h!=null&&h.exact),ignoreUndefined:!(h!=null&&h.explicitUndefined)})?!1:h!=null&&h.includeHash?_t.location.hash===De.hash:!0}}),He=x.useCallback(()=>{n.preloadRoute({...We}).catch(_t=>{console.warn(_t),console.warn(cve)})},[n,We]),gt=x.useCallback(_t=>{_t!=null&&_t.isIntersecting&&He()},[He]);Dve(l,gt,Ove,{disabled:!!G||ve!=="viewport"}),x.useEffect(()=>{A.current||!G&&ve==="render"&&(He(),A.current=!0)},[G,He,ve]);const ut=_t=>{const Pt=_t.currentTarget.getAttribute("target"),Ve=P!==void 0?P:Pt;if(!G&&!jve(_t)&&!_t.defaultPrevented&&(!Ve||Ve==="_self")&&_t.button===0){_t.preventDefault(),Yc.flushSync(()=>{i(!0)});const Nt=n.subscribe("onResolved",()=>{Nt(),i(!1)});n.navigate({...We,replace:S,resetScroll:F,hashScrollIntoView:D,startTransition:R,viewTransition:N,ignoreBlocker:Ee})}};if(xe)return{...me,ref:l,href:xe,...M&&{children:M},...P&&{target:P},...G&&{disabled:G},...J&&{style:J},...W&&{className:W},...q&&{onClick:q},...$&&{onFocus:$},...oe&&{onMouseEnter:oe},...K&&{onMouseLeave:K},...se&&{onTouchStart:se}};const bt=_t=>{G||ve&&He()},zt=bt,ce=_t=>{if(!(G||!ve))if(!Ue)He();else{const Pt=_t.target;if(GI.has(Pt))return;const Ve=setTimeout(()=>{GI.delete(Pt),He()},Ue);GI.set(Pt,Ve)}},mn=_t=>{if(G||!ve||!Ue)return;const Pt=_t.target,Ve=GI.get(Pt);Ve&&(clearTimeout(Ve),GI.delete(Pt))},Yn=At?Eg(c,{})??Tve:UD,yn=At?UD:Eg(f,{})??UD,fe=[W,Yn.className,yn.className].filter(Boolean).join(" "),dn=(J||Yn.style||yn.style)&&{...J,...Yn.style,...yn.style};return{...me,...Yn,...yn,href:_e==null?void 0:_e.href,ref:l,onClick:HI([q,ut]),onFocus:HI([$,bt]),onMouseEnter:HI([oe,ce]),onMouseLeave:HI([K,mn]),onTouchStart:HI([se,zt]),disabled:!!G,target:P,...dn&&{style:dn},...fe&&{className:fe},...G&&Mve,...At&&Nve,...r&&Fve}}const UD={},Tve={className:"active"},Mve={role:"link","aria-disabled":!0},Nve={"data-status":"active","aria-current":"page"},Fve={"data-transitioning":"transitioning"},GI=new WeakMap,Ove={rootMargin:"100px"},HI=e=>t=>{for(const n of e)if(n){if(t.defaultPrevented)return;n(t)}},vg=x.forwardRef((e,t)=>{const{_asChild:n,...r}=e,{type:i,ref:A,...l}=Rve(r,t),c=typeof r.children=="function"?r.children({isActive:l["data-status"]==="active"}):r.children;return n===void 0&&delete l.disabled,x.createElement(n||"a",{...l,ref:A},c)});function jve(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}let Lve=class extends Yz{constructor(e){super(e),this.useMatch=t=>eu({select:t==null?void 0:t.select,from:this.id,structuralSharing:t==null?void 0:t.structuralSharing}),this.useRouteContext=t=>eu({...t,from:this.id,select:n=>t!=null&&t.select?t.select(n.context):n.context}),this.useSearch=t=>LD({select:t==null?void 0:t.select,structuralSharing:t==null?void 0:t.structuralSharing,from:this.id}),this.useParams=t=>jD({select:t==null?void 0:t.select,structuralSharing:t==null?void 0:t.structuralSharing,from:this.id}),this.useLoaderDeps=t=>OD({...t,from:this.id}),this.useLoaderData=t=>FD({...t,from:this.id}),this.useNavigate=()=>Bp({from:this.fullPath}),this.Link=Et.forwardRef((t,n)=>p.jsx(vg,{ref:n,from:this.fullPath,...t})),this.$$typeof=Symbol.for("react.memo")}};function Pve(e){return new Lve(e)}class Uve extends uve{constructor(t){super(t),this.useMatch=n=>eu({select:n==null?void 0:n.select,from:this.id,structuralSharing:n==null?void 0:n.structuralSharing}),this.useRouteContext=n=>eu({...n,from:this.id,select:r=>n!=null&&n.select?n.select(r.context):r.context}),this.useSearch=n=>LD({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.id}),this.useParams=n=>jD({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.id}),this.useLoaderDeps=n=>OD({...n,from:this.id}),this.useLoaderData=n=>FD({...n,from:this.id}),this.useNavigate=()=>Bp({from:this.fullPath}),this.Link=Et.forwardRef((n,r)=>p.jsx(vg,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function Gve(e){return new Uve(e)}function bg(e){return typeof e=="object"?new Xz(e,{silent:!0}).createRoute(e):new Xz(e,{silent:!0}).createRoute}class Xz{constructor(t,n){this.path=t,this.createRoute=r=>{this.silent;const i=Pve(r);return i.isRoot=!1,i},this.silent=n==null?void 0:n.silent}}class Vz{constructor(t){this.useMatch=n=>eu({select:n==null?void 0:n.select,from:this.options.id,structuralSharing:n==null?void 0:n.structuralSharing}),this.useRouteContext=n=>eu({from:this.options.id,select:r=>n!=null&&n.select?n.select(r.context):r.context}),this.useSearch=n=>LD({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.options.id}),this.useParams=n=>jD({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.options.id}),this.useLoaderDeps=n=>OD({...n,from:this.options.id}),this.useLoaderData=n=>FD({...n,from:this.options.id}),this.useNavigate=()=>{const n=Qa();return Bp({from:n.routesById[this.options.id].fullPath})},this.options=t,this.$$typeof=Symbol.for("react.memo")}}function Kz(e){return typeof e=="object"?new Vz(e):t=>new Vz({id:e,...t})}function Hve(){const e=Qa(),t=x.useRef({router:e,mounted:!1}),[n,r]=x.useState(!1),{hasPendingMatches:i,isLoading:A}=vs({select:B=>({isLoading:B.isLoading,hasPendingMatches:B.matches.some(v=>v.status==="pending")}),structuralSharing:!0}),l=PD(A),c=A||n||i,f=PD(c),h=A||i,I=PD(h);return e.startTransition=B=>{r(!0),x.startTransition(()=>{B(),r(!1)})},x.useEffect(()=>{const B=e.history.subscribe(e.load),v=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return Jd(e.latestLocation.href)!==Jd(v.href)&&e.commitLocation({...v,replace:!0}),()=>{B()}},[e,e.history]),vb(()=>{typeof window<"u"&&e.ssr||t.current.router===e&&t.current.mounted||(t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(B){console.error(B)}})())},[e]),vb(()=>{l&&!A&&e.emit({type:"onLoad",...yg(e.state)})},[l,e,A]),vb(()=>{I&&!h&&e.emit({type:"onBeforeRouteMount",...yg(e.state)})},[h,I,e]),vb(()=>{f&&!c&&(e.emit({type:"onResolved",...yg(e.state)}),e.__store.setState(B=>({...B,status:"idle",resolvedLocation:B.location})),Yye(e))},[c,f,e]),null}function Yve(e){const t=vs({select:n=>`not-found-${n.location.pathname}-${n.status}`});return p.jsx(MD,{getResetKey:()=>t,onCatch:(n,r)=>{var i;if(tc(n))(i=e.onCatch)==null||i.call(e,n,r);else throw n},errorComponent:({error:n})=>{var r;if(tc(n))return(r=e.fallback)==null?void 0:r.call(e,n);throw n},children:e.children})}function Jve(){return p.jsx("p",{children:"Not Found"})}function yp(e){return p.jsx(p.Fragment,{children:e.children})}function Zz(e,t,n){return t.options.notFoundComponent?p.jsx(t.options.notFoundComponent,{data:n}):e.options.defaultNotFoundComponent?p.jsx(e.options.defaultNotFoundComponent,{data:n}):p.jsx(Jve,{})}function zve({children:e}){var n;const t=Qa();return t.isServer?p.jsx("script",{nonce:(n=t.options.ssr)==null?void 0:n.nonce,className:"$tsr",dangerouslySetInnerHTML:{__html:[e].filter(Boolean).join(` -`)+";$_TSR.c()"}}):null}function Wve(){const e=Qa();if(!e.isScrollRestoring||!e.isServer||typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation}))return null;const t=(e.options.getScrollRestorationKey||SD)(e.latestLocation),n=t!==SD(e.latestLocation)?t:void 0,r={storageKey:fb,shouldScrollRestoration:!0};return n&&(r.key=n),p.jsx(zve,{children:`(${Sz.toString()})(${JSON.stringify(r)})`})}const $z=x.memo(function({matchId:e}){var F,N;const t=Qa(),n=vs({select:M=>{const P=M.matches.find(G=>G.id===e);return c0(P),{routeId:P.routeId,ssr:P.ssr,_displayPending:P._displayPending}},structuralSharing:!0}),r=t.routesById[n.routeId],i=r.options.pendingComponent??t.options.defaultPendingComponent,A=i?p.jsx(i,{}):null,l=r.options.errorComponent??t.options.defaultErrorComponent,c=r.options.onCatch??t.options.defaultOnCatch,f=r.isRoot?r.options.notFoundComponent??((F=t.options.notFoundRoute)==null?void 0:F.options.component):r.options.notFoundComponent,h=n.ssr===!1||n.ssr==="data-only",I=(!r.isRoot||r.options.wrapInSuspense||h)&&(r.options.wrapInSuspense??i??(((N=r.options.errorComponent)==null?void 0:N.preload)||h))?x.Suspense:yp,B=l?MD:yp,v=f?Yve:yp,D=vs({select:M=>M.loadedAt}),S=vs({select:M=>{var G;const P=M.matches.findIndex(J=>J.id===e);return(G=M.matches[P-1])==null?void 0:G.routeId}}),R=r.isRoot?r.options.shellComponent??yp:yp;return p.jsxs(R,{children:[p.jsx(yb.Provider,{value:e,children:p.jsx(I,{fallback:A,children:p.jsx(B,{getResetKey:()=>D,errorComponent:l||Eb,onCatch:(M,P)=>{if(tc(M))throw M;c==null||c(M,P)},children:p.jsx(v,{fallback:M=>{if(!f||M.routeId&&M.routeId!==n.routeId||!M.routeId&&!r.isRoot)throw M;return x.createElement(f,M)},children:h||n._displayPending?p.jsx(hve,{fallback:A,children:p.jsx(eW,{matchId:e})}):p.jsx(eW,{matchId:e})})})})}),S===ba&&t.options.scrollRestoration?p.jsxs(p.Fragment,{children:[p.jsx(qve,{}),p.jsx(Wve,{})]}):null]})});function qve(){const e=Qa(),t=x.useRef(void 0);return p.jsx("script",{suppressHydrationWarning:!0,ref:n=>{n&&(t.current===void 0||t.current.href!==e.latestLocation.href)&&(e.emit({type:"onRendered",...yg(e.state)}),t.current=e.latestLocation)}},e.latestLocation.state.__TSR_key)}const eW=x.memo(function({matchId:e}){var c,f,h,I;const t=Qa(),{match:n,key:r,routeId:i}=vs({select:B=>{var R;const v=B.matches.find(F=>F.id===e),D=v.routeId,S=(R=t.routesById[D].options.remountDeps??t.options.defaultRemountDeps)==null?void 0:R({routeId:D,loaderDeps:v.loaderDeps,params:v._strictParams,search:v._strictSearch});return{key:S?JSON.stringify(S):void 0,routeId:D,match:{id:v.id,status:v.status,error:v.error,_forcePending:v._forcePending,_displayPending:v._displayPending}}},structuralSharing:!0}),A=t.routesById[i],l=x.useMemo(()=>{const B=A.options.component??t.options.defaultComponent;return B?p.jsx(B,{},r):p.jsx(tW,{})},[r,A.options.component,t.options.defaultComponent]);if(n._displayPending)throw(c=t.getMatch(n.id))==null?void 0:c._nonReactive.displayPendingPromise;if(n._forcePending)throw(f=t.getMatch(n.id))==null?void 0:f._nonReactive.minPendingPromise;if(n.status==="pending"){const B=A.options.pendingMinMs??t.options.defaultPendingMinMs;if(B){const v=t.getMatch(n.id);if(v&&!v._nonReactive.minPendingPromise&&!t.isServer){const D=mp();v._nonReactive.minPendingPromise=D,setTimeout(()=>{D.resolve(),v._nonReactive.minPendingPromise=void 0},B)}}throw(h=t.getMatch(n.id))==null?void 0:h._nonReactive.loadPromise}if(n.status==="notFound")return c0(tc(n.error)),Zz(t,A,n.error);if(n.status==="redirected")throw c0($c(n.error)),(I=t.getMatch(n.id))==null?void 0:I._nonReactive.loadPromise;if(n.status==="error"){if(t.isServer){const B=(A.options.errorComponent??t.options.defaultErrorComponent)||Eb;return p.jsx(B,{error:n.error,reset:void 0,info:{componentStack:""}})}throw n.error}return l}),tW=x.memo(function(){const e=Qa(),t=x.useContext(yb),n=vs({select:f=>{var h;return(h=f.matches.find(I=>I.id===t))==null?void 0:h.routeId}}),r=e.routesById[n],i=vs({select:f=>{const h=f.matches.find(I=>I.id===t);return c0(h),h.globalNotFound}}),A=vs({select:f=>{var B;const h=f.matches,I=h.findIndex(v=>v.id===t);return(B=h[I+1])==null?void 0:B.id}}),l=e.options.defaultPendingComponent?p.jsx(e.options.defaultPendingComponent,{}):null;if(i)return Zz(e,r,void 0);if(!A)return null;const c=p.jsx($z,{matchId:A});return n===ba?p.jsx(x.Suspense,{fallback:l,children:c}):c});function Xve(){const e=Qa(),t=e.routesById[ba].options.pendingComponent??e.options.defaultPendingComponent,n=t?p.jsx(t,{}):null,r=e.isServer||typeof document<"u"&&e.ssr?yp:x.Suspense,i=p.jsxs(r,{fallback:n,children:[!e.isServer&&p.jsx(Hve,{}),p.jsx(Vve,{})]});return e.options.InnerWrap?p.jsx(e.options.InnerWrap,{children:i}):i}function Vve(){const e=Qa(),t=vs({select:i=>{var A;return(A=i.matches[0])==null?void 0:A.id}}),n=vs({select:i=>i.loadedAt}),r=t?p.jsx($z,{matchId:t}):null;return p.jsx(yb.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:p.jsx(MD,{getResetKey:()=>n,errorComponent:Eb,onCatch:i=>{i.message||i.toString()},children:r})})}const Kve=e=>new Zve(e);class Zve extends ive{constructor(t){super(t)}}typeof globalThis<"u"?(globalThis.createFileRoute=bg,globalThis.createLazyFileRoute=Kz):typeof window<"u"&&(window.createFileRoute=bg,window.createLazyFileRoute=Kz);function $ve({router:e,children:t,...n}){Object.keys(n).length>0&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});const r=qz(),i=p.jsx(r.Provider,{value:e,children:t});return e.options.Wrap?p.jsx(e.options.Wrap,{children:i}):i}function ebe({router:e,...t}){return p.jsx($ve,{router:e,...t,children:p.jsx(Xve,{})})}function tbe(e){return vs({select:t=>t.location})}const vp={};function nW(e){return"init"in e}function GD(e){return!!e.write}function rW(e){return"v"in e||"e"in e}function bb(e){if("e"in e)throw e.e;if((vp?"production":void 0)!=="production"&&!("v"in e))throw new Error("[Bug] atom state is not initialized");return e.v}const Qb=new WeakMap;function oW(e){var t;return wb(e)&&!!((t=Qb.get(e))!=null&&t[0])}function nbe(e){const t=Qb.get(e);t!=null&&t[0]&&(t[0]=!1,t[1].forEach(n=>n()))}function HD(e,t){let n=Qb.get(e);if(!n){n=[!0,new Set],Qb.set(e,n);const r=()=>{n[0]=!1};e.then(r,r)}n[1].add(t)}function wb(e){return typeof(e==null?void 0:e.then)=="function"}function iW(e,t,n){if(!n.p.has(e)){n.p.add(e);const r=()=>n.p.delete(e);t.then(r,r)}}function AW(e,t,n){var r;const i=new Set;for(const A of((r=n.get(e))==null?void 0:r.t)||[])n.has(A)&&i.add(A);for(const A of t.p)i.add(A);return i}const rbe=(e,t,...n)=>t.read(...n),obe=(e,t,...n)=>t.write(...n),ibe=(e,t)=>{var n;return(n=t.unstable_onInit)==null?void 0:n.call(t,e)},Abe=(e,t,n)=>{var r;return(r=t.onMount)==null?void 0:r.call(t,n)},sbe=(e,t)=>{const n=KA(e),r=n[0],i=n[9];if((vp?"production":void 0)!=="production"&&!t)throw new Error("Atom is undefined or null");let A=r.get(t);return A||(A={d:new Map,p:new Set,n:0},r.set(t,A),i==null||i(e,t)),A},abe=e=>{const t=KA(e),n=t[1],r=t[3],i=t[4],A=t[5],l=t[6],c=t[13],f=[],h=I=>{try{I()}catch(B){f.push(B)}};do{l.f&&h(l.f);const I=new Set,B=I.add.bind(I);r.forEach(v=>{var D;return(D=n.get(v))==null?void 0:D.l.forEach(B)}),r.clear(),A.forEach(B),A.clear(),i.forEach(B),i.clear(),I.forEach(h),r.size&&c(e)}while(r.size||A.size||i.size);if(f.length)throw new AggregateError(f)},lbe=e=>{const t=KA(e),n=t[1],r=t[2],i=t[3],A=t[11],l=t[14],c=t[17],f=[],h=new WeakSet,I=new WeakSet,B=Array.from(i);for(;B.length;){const v=B[B.length-1],D=A(e,v);if(I.has(v)){B.pop();continue}if(h.has(v)){if(r.get(v)===D.n)f.push([v,D]);else if((vp?"production":void 0)!=="production"&&r.has(v))throw new Error("[Bug] invalidated atom exists");I.add(v),B.pop();continue}h.add(v);for(const S of AW(v,D,n))h.has(S)||B.push(S)}for(let v=f.length-1;v>=0;--v){const[D,S]=f[v];let R=!1;for(const F of S.d.keys())if(F!==D&&i.has(F)){R=!0;break}R&&(l(e,D),c(e,D)),r.delete(D)}},cbe=(e,t)=>{var n,r;const i=KA(e),A=i[1],l=i[2],c=i[3],f=i[6],h=i[7],I=i[11],B=i[12],v=i[13],D=i[14],S=i[16],R=i[17],F=I(e,t);if(rW(F)&&(A.has(t)&&l.get(t)!==F.n||Array.from(F.d).every(([$,oe])=>D(e,$).n===oe)))return F;F.d.clear();let N=!0;function M(){A.has(t)&&(R(e,t),v(e),B(e))}function P($){var oe;if($===t){const se=I(e,$);if(!rW(se))if(nW($))xb(e,$,$.init);else throw new Error("no atom init");return bb(se)}const K=D(e,$);try{return bb(K)}finally{F.d.set($,K.n),oW(F.v)&&iW(t,F.v,K),(oe=A.get($))==null||oe.t.add(t),N||M()}}let G,J;const W={get signal(){return G||(G=new AbortController),G.signal},get setSelf(){return(vp?"production":void 0)!=="production"&&!GD(t)&&console.warn("setSelf function cannot be used with read-only atom"),!J&&GD(t)&&(J=(...$)=>{if((vp?"production":void 0)!=="production"&&N&&console.warn("setSelf function cannot be called in sync"),!N)try{return S(e,t,...$)}finally{v(e),B(e)}}),J}},q=F.n;try{const $=h(e,t,P,W);return xb(e,t,$),wb($)&&(HD($,()=>G==null?void 0:G.abort()),$.then(M,M)),(n=f.r)==null||n.call(f,t),F}catch($){return delete F.v,F.e=$,++F.n,F}finally{N=!1,q!==F.n&&l.get(t)===q&&(l.set(t,F.n),c.add(t),(r=f.c)==null||r.call(f,t))}},ube=(e,t)=>{const n=KA(e),r=n[1],i=n[2],A=n[11],l=[t];for(;l.length;){const c=l.pop(),f=A(e,c);for(const h of AW(c,f,r)){const I=A(e,h);i.set(h,I.n),l.push(h)}}},sW=(e,t,...n)=>{const r=KA(e),i=r[3],A=r[6],l=r[8],c=r[11],f=r[12],h=r[13],I=r[14],B=r[15],v=r[17];let D=!0;const S=F=>bb(I(e,F)),R=(F,...N)=>{var M;const P=c(e,F);try{if(F===t){if(!nW(F))throw new Error("atom not writable");const G=P.n,J=N[0];xb(e,F,J),v(e,F),G!==P.n&&(i.add(F),(M=A.c)==null||M.call(A,F),B(e,F));return}else return sW(e,F,...N)}finally{D||(h(e),f(e))}};try{return l(e,t,S,R,...n)}finally{D=!1}},dbe=(e,t)=>{var n;const r=KA(e),i=r[1],A=r[3],l=r[6],c=r[11],f=r[15],h=r[18],I=r[19],B=c(e,t),v=i.get(t);if(v&&!oW(B.v)){for(const[D,S]of B.d)if(!v.d.has(D)){const R=c(e,D);h(e,D).t.add(t),v.d.add(D),S!==R.n&&(A.add(D),(n=l.c)==null||n.call(l,D),f(e,D))}for(const D of v.d||[])if(!B.d.has(D)){v.d.delete(D);const S=I(e,D);S==null||S.t.delete(t)}}},aW=(e,t)=>{var n;const r=KA(e),i=r[1],A=r[4],l=r[6],c=r[10],f=r[11],h=r[12],I=r[13],B=r[14],v=r[16],D=f(e,t);let S=i.get(t);if(!S){B(e,t);for(const R of D.d.keys())aW(e,R).t.add(t);if(S={l:new Set,d:new Set(D.d.keys()),t:new Set},i.set(t,S),(n=l.m)==null||n.call(l,t),GD(t)){const R=()=>{let F=!0;const N=(...M)=>{try{return v(e,t,...M)}finally{F||(I(e),h(e))}};try{const M=c(e,t,N);M&&(S.u=()=>{F=!0;try{M()}finally{F=!1}})}finally{F=!1}};A.add(R)}}return S},fbe=(e,t)=>{var n;const r=KA(e),i=r[1],A=r[5],l=r[6],c=r[11],f=r[19],h=c(e,t);let I=i.get(t);if(I&&!I.l.size&&!Array.from(I.t).some(B=>{var v;return(v=i.get(B))==null?void 0:v.d.has(t)})){I.u&&A.add(I.u),I=void 0,i.delete(t),(n=l.u)==null||n.call(l,t);for(const B of h.d.keys()){const v=f(e,B);v==null||v.t.delete(t)}return}return I},xb=(e,t,n)=>{const r=KA(e)[11],i=r(e,t),A="v"in i,l=i.v;if(wb(n))for(const c of i.d.keys())iW(t,n,r(e,c));i.v=n,delete i.e,(!A||!Object.is(l,i.v))&&(++i.n,wb(l)&&nbe(l))},gbe=(e,t)=>{const n=KA(e)[14];return bb(n(e,t))},hbe=(e,t,...n)=>{const r=KA(e),i=r[12],A=r[13],l=r[16];try{return l(e,t,...n)}finally{A(e),i(e)}},pbe=(e,t,n)=>{const r=KA(e),i=r[12],A=r[18],l=r[19],c=A(e,t).l;return c.add(n),i(e),()=>{c.delete(n),l(e,t),i(e)}},lW=new WeakMap,KA=e=>{const t=lW.get(e);if((vp?"production":void 0)!=="production"&&!t)throw new Error("Store must be created by buildStore to read its building blocks");return t};function mbe(...e){const t={get(r){const i=KA(t)[21];return i(t,r)},set(r,...i){const A=KA(t)[22];return A(t,r,...i)},sub(r,i){const A=KA(t)[23];return A(t,r,i)}},n=[new WeakMap,new WeakMap,new WeakMap,new Set,new Set,new Set,{},rbe,obe,ibe,Abe,sbe,abe,lbe,cbe,ube,sW,dbe,aW,fbe,xb,gbe,hbe,pbe,void 0].map((r,i)=>e[i]||r);return lW.set(t,Object.freeze(n)),t}const cW={};let Ibe=0;function $e(e,t){const n=`atom${++Ibe}`,r={toString(){return(cW?"production":void 0)!=="production"&&this.debugLabel?n+":"+this.debugLabel:n}};return typeof e=="function"?r.read=e:(r.init=e,r.read=Cbe,r.write=Ebe),t&&(r.write=t),r}function Cbe(e){return e(this)}function Ebe(e,t,n){return t(this,typeof n=="function"?n(e(this)):n)}function Bbe(){return mbe()}let YI;function Vs(){return YI||(YI=Bbe(),(cW?"production":void 0)!=="production"&&(globalThis.__JOTAI_DEFAULT_STORE__||(globalThis.__JOTAI_DEFAULT_STORE__=YI),globalThis.__JOTAI_DEFAULT_STORE__!==YI&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"))),YI}const ybe={},vbe=x.createContext(void 0);function uW(e){return x.useContext(vbe)||Vs()}const YD=e=>typeof(e==null?void 0:e.then)=="function",JD=e=>{e.status||(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}))},bbe=Et.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(JD(e),e)}),zD=new WeakMap,dW=(e,t)=>{let n=zD.get(e);return n||(n=new Promise((r,i)=>{let A=e;const l=h=>I=>{A===h&&r(I)},c=h=>I=>{A===h&&i(I)},f=()=>{try{const h=t();YD(h)?(zD.set(h,n),A=h,h.then(l(h),c(h)),HD(h,f)):r(h)}catch(h){i(h)}};e.then(l(e),c(e)),HD(e,f)}),zD.set(e,n)),n};Me=function(e,t){const{delay:n,unstable_promiseStatus:r=!Et.use}={},i=uW(),[[A,l,c],f]=x.useReducer(I=>{const B=i.get(e);return Object.is(I[0],B)&&I[1]===i&&I[2]===e?I:[B,i,e]},void 0,()=>[i.get(e),i,e]);let h=A;if((l!==i||c!==e)&&(f(),h=i.get(e)),x.useEffect(()=>{const I=i.sub(e,()=>{if(r)try{const B=i.get(e);YD(B)&&JD(dW(B,()=>i.get(e)))}catch{}if(typeof n=="number"){setTimeout(f,n);return}f()});return f(),I},[i,e,n,r]),x.useDebugValue(h),YD(h)){const I=dW(h,()=>i.get(e));return r&&JD(I),bbe(I)}return h};function It(e,t){const n=uW();return x.useCallback((...r)=>{if((ybe?"production":void 0)!=="production"&&!("write"in e))throw new Error("not writable atom");return n.set(e,...r)},[n,e])}function il(e,t){return[Me(e),It(e)]}var fW=Symbol.for("immer-nothing"),gW=Symbol.for("immer-draftable"),yo=Symbol.for("immer-state");function Al(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var JI=Object.getPrototypeOf;function bp(e){return!!e&&!!e[yo]}function d0(e){var t;return e?pW(e)||Array.isArray(e)||!!e[gW]||!!((t=e.constructor)!=null&&t[gW])||WI(e)||kb(e):!1}var Qbe=Object.prototype.constructor.toString(),hW=new WeakMap;function pW(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;const n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(n===Object)return!0;if(typeof n!="function")return!1;let r=hW.get(n);return r===void 0&&(r=Function.toString.call(n),hW.set(n,r)),r===Qbe}function zI(e,t,n=!0){_b(e)===0?(n?Reflect.ownKeys(e):Object.keys(e)).forEach(r=>{t(r,e[r],e)}):e.forEach((r,i)=>t(i,r,e))}function _b(e){const t=e[yo];return t?t.type_:Array.isArray(e)?1:WI(e)?2:kb(e)?3:0}function WD(e,t){return _b(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function mW(e,t,n){const r=_b(e);r===2?e.set(t,n):r===3?e.add(n):e[t]=n}function wbe(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function WI(e){return e instanceof Map}function kb(e){return e instanceof Set}function yA(e){return e.copy_||e.base_}function qD(e,t){if(WI(e))return new Map(e);if(kb(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=pW(e);if(t===!0||t==="class_only"&&!n){const r=Object.getOwnPropertyDescriptors(e);delete r[yo];let i=Reflect.ownKeys(r);for(let A=0;A1&&Object.defineProperties(e,{set:Db,add:Db,clear:Db,delete:Db}),Object.freeze(e),t&&Object.values(e).forEach(n=>XD(n,!0))),e}function xbe(){Al(2)}var Db={value:xbe};function Sb(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var VD={};function Qg(e){const t=VD[e];return t||Al(0,e),t}function _be(e,t){VD[e]||(VD[e]=t)}var qI;function Rb(){return qI}function kbe(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function IW(e,t){t&&(Qg("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function KD(e){ZD(e),e.drafts_.forEach(Dbe),e.drafts_=null}function ZD(e){e===qI&&(qI=e.parent_)}function CW(e){return qI=kbe(qI,e)}function Dbe(e){const t=e[yo];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function EW(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return e!==void 0&&e!==n?(n[yo].modified_&&(KD(t),Al(4)),d0(e)&&(e=Tb(t,e),t.parent_||Mb(t,e)),t.patches_&&Qg("Patches").generateReplacementPatches_(n[yo].base_,e,t.patches_,t.inversePatches_)):e=Tb(t,n,[]),KD(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==fW?e:void 0}function Tb(e,t,n){if(Sb(t))return t;const r=e.immer_.shouldUseStrictIteration(),i=t[yo];if(!i)return zI(t,(A,l)=>BW(e,i,t,A,l,n),r),t;if(i.scope_!==e)return t;if(!i.modified_)return Mb(e,i.base_,!0),i.base_;if(!i.finalized_){i.finalized_=!0,i.scope_.unfinalizedDrafts_--;const A=i.copy_;let l=A,c=!1;i.type_===3&&(l=new Set(A),A.clear(),c=!0),zI(l,(f,h)=>BW(e,i,A,f,h,n,c),r),Mb(e,A,!1),n&&e.patches_&&Qg("Patches").generatePatches_(i,n,e.patches_,e.inversePatches_)}return i.copy_}function BW(e,t,n,r,i,A,l){if(i==null||typeof i!="object"&&!l)return;const c=Sb(i);if(!(c&&!l)){if(bp(i)){const f=A&&t&&t.type_!==3&&!WD(t.assigned_,r)?A.concat(r):void 0,h=Tb(e,i,f);if(mW(n,r,h),bp(h))e.canAutoFreeze_=!1;else return}else l&&n.add(i);if(d0(i)&&!c){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[r]===i&&c)return;Tb(e,i),(!t||!t.scope_.parent_)&&typeof r!="symbol"&&(WI(n)?n.has(r):Object.prototype.propertyIsEnumerable.call(n,r))&&Mb(e,i)}}}function Mb(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&XD(t,n)}function Sbe(e,t){const n=Array.isArray(e),r={type_:n?1:0,scope_:t?t.scope_:Rb(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=r,A=$D;n&&(i=[r],A=XI);const{revoke:l,proxy:c}=Proxy.revocable(i,A);return r.draft_=c,r.revoke_=l,c}var $D={get(e,t){if(t===yo)return e;const n=yA(e);if(!WD(n,t))return Rbe(e,n,t);const r=n[t];return e.finalized_||!d0(r)?r:r===eS(e.base_,t)?(tS(e),e.copy_[t]=VI(r,e)):r},has(e,t){return t in yA(e)},ownKeys(e){return Reflect.ownKeys(yA(e))},set(e,t,n){const r=yW(yA(e),t);if(r!=null&&r.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){const i=eS(yA(e),t),A=i==null?void 0:i[yo];if(A&&A.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(wbe(n,i)&&(n!==void 0||WD(e.base_,t)))return!0;tS(e),f0(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_[t]=!0),!0},deleteProperty(e,t){return eS(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,tS(e),f0(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const n=yA(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:r.enumerable,value:n[t]}},defineProperty(){Al(11)},getPrototypeOf(e){return JI(e.base_)},setPrototypeOf(){Al(12)}},XI={};zI($D,(e,t)=>{XI[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),XI.deleteProperty=function(e,t){return XI.set.call(this,e,t,void 0)},XI.set=function(e,t,n){return $D.set.call(this,e[0],t,n,e[0])};function eS(e,t){const n=e[yo];return(n?yA(n):e)[t]}function Rbe(e,t,n){var i;const r=yW(t,n);return r?"value"in r?r.value:(i=r.get)==null?void 0:i.call(e.draft_):void 0}function yW(e,t){if(!(t in e))return;let n=JI(e);for(;n;){const r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=JI(n)}}function f0(e){e.modified_||(e.modified_=!0,e.parent_&&f0(e.parent_))}function tS(e){e.copy_||(e.copy_=qD(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var Tbe=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(t,n,r)=>{if(typeof t=="function"&&typeof n!="function"){const A=n;n=t;const l=this;return function(c=A,...f){return l.produce(c,h=>n.call(this,h,...f))}}typeof n!="function"&&Al(6),r!==void 0&&typeof r!="function"&&Al(7);let i;if(d0(t)){const A=CW(this),l=VI(t,void 0);let c=!0;try{i=n(l),c=!1}finally{c?KD(A):ZD(A)}return IW(A,r),EW(i,A)}else if(!t||typeof t!="object"){if(i=n(t),i===void 0&&(i=t),i===fW&&(i=void 0),this.autoFreeze_&&XD(i,!0),r){const A=[],l=[];Qg("Patches").generateReplacementPatches_(t,i,A,l),r(A,l)}return i}else Al(1,t)},this.produceWithPatches=(t,n)=>{if(typeof t=="function")return(A,...l)=>this.produceWithPatches(A,c=>t(c,...l));let r,i;return[this.produce(t,n,(A,l)=>{r=A,i=l}),r,i]},typeof(e==null?void 0:e.autoFreeze)=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof(e==null?void 0:e.useStrictShallowCopy)=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),typeof(e==null?void 0:e.useStrictIteration)=="boolean"&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){d0(e)||Al(8),bp(e)&&(e=Mbe(e));const t=CW(this),n=VI(e,void 0);return n[yo].isManual_=!0,ZD(t),n}finishDraft(e,t){const n=e&&e[yo];(!n||!n.isManual_)&&Al(9);const{scope_:r}=n;return IW(r,t),EW(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const i=t[n];if(i.path.length===0&&i.op==="replace"){e=i.value;break}}n>-1&&(t=t.slice(n+1));const r=Qg("Patches").applyPatches_;return bp(e)?r(e,t):this.produce(e,i=>r(i,t))}};function VI(e,t){const n=WI(e)?Qg("MapSet").proxyMap_(e,t):kb(e)?Qg("MapSet").proxySet_(e,t):Sbe(e,t);return(t?t.scope_:Rb()).drafts_.push(n),n}function Mbe(e){return bp(e)||Al(10,e),vW(e)}function vW(e){if(!d0(e)||Sb(e))return e;const t=e[yo];let n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=qD(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=qD(e,!0);return zI(n,(i,A)=>{mW(n,i,vW(A))},r),t&&(t.finalized_=!1),n}function Nbe(){class e extends Map{constructor(f,h){super(),this[yo]={type_:2,parent_:h,scope_:h?h.scope_:Rb(),modified_:!1,finalized_:!1,copy_:void 0,assigned_:void 0,base_:f,draft_:this,isManual_:!1,revoked_:!1}}get size(){return yA(this[yo]).size}has(f){return yA(this[yo]).has(f)}set(f,h){const I=this[yo];return l(I),(!yA(I).has(f)||yA(I).get(f)!==h)&&(n(I),f0(I),I.assigned_.set(f,!0),I.copy_.set(f,h),I.assigned_.set(f,!0)),this}delete(f){if(!this.has(f))return!1;const h=this[yo];return l(h),n(h),f0(h),h.base_.has(f)?h.assigned_.set(f,!1):h.assigned_.delete(f),h.copy_.delete(f),!0}clear(){const f=this[yo];l(f),yA(f).size&&(n(f),f0(f),f.assigned_=new Map,zI(f.base_,h=>{f.assigned_.set(h,!1)}),f.copy_.clear())}forEach(f,h){const I=this[yo];yA(I).forEach((B,v,D)=>{f.call(h,this.get(v),v,this)})}get(f){const h=this[yo];l(h);const I=yA(h).get(f);if(h.finalized_||!d0(I)||I!==h.base_.get(f))return I;const B=VI(I,h);return n(h),h.copy_.set(f,B),B}keys(){return yA(this[yo]).keys()}values(){const f=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{const h=f.next();return h.done?h:{done:!1,value:this.get(h.value)}}}}entries(){const f=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{const h=f.next();if(h.done)return h;const I=this.get(h.value);return{done:!1,value:[h.value,I]}}}}[Symbol.iterator](){return this.entries()}}function t(c,f){return new e(c,f)}function n(c){c.copy_||(c.assigned_=new Map,c.copy_=new Map(c.base_))}class r extends Set{constructor(f,h){super(),this[yo]={type_:3,parent_:h,scope_:h?h.scope_:Rb(),modified_:!1,finalized_:!1,copy_:void 0,base_:f,draft_:this,drafts_:new Map,revoked_:!1,isManual_:!1}}get size(){return yA(this[yo]).size}has(f){const h=this[yo];return l(h),h.copy_?!!(h.copy_.has(f)||h.drafts_.has(f)&&h.copy_.has(h.drafts_.get(f))):h.base_.has(f)}add(f){const h=this[yo];return l(h),this.has(f)||(A(h),f0(h),h.copy_.add(f)),this}delete(f){if(!this.has(f))return!1;const h=this[yo];return l(h),A(h),f0(h),h.copy_.delete(f)||(h.drafts_.has(f)?h.copy_.delete(h.drafts_.get(f)):!1)}clear(){const f=this[yo];l(f),yA(f).size&&(A(f),f0(f),f.copy_.clear())}values(){const f=this[yo];return l(f),A(f),f.copy_.values()}entries(){const f=this[yo];return l(f),A(f),f.copy_.entries()}keys(){return this.values()}[Symbol.iterator](){return this.values()}forEach(f,h){const I=this.values();let B=I.next();for(;!B.done;)f.call(h,B.value,B.value,this),B=I.next()}}function i(c,f){return new r(c,f)}function A(c){c.copy_||(c.copy_=new Set,c.base_.forEach(f=>{if(d0(f)){const h=VI(f,c);c.drafts_.set(f,h),c.copy_.add(h)}else c.copy_.add(f)}))}function l(c){c.revoked_&&Al(3,JSON.stringify(yA(c)))}_be("MapSet",{proxyMap_:t,proxySet_:i})}var Fbe=new Tbe,bW=Fbe.produce;function sl(e){const t=$e(e,(n,r,i)=>r(t,bW(n(t),typeof i=="function"?i:()=>i)));return t}function Obe(e){const t=$e(e);let n;return $e(r=>r(t),(r,i,A)=>{n!==void 0&&cancelAnimationFrame(n),n=requestAnimationFrame(()=>{n=void 0,i(t,A)})})}function jbe(e=6e4){const t=sl({});return n=>$e(r=>n==null?!1:!!r(t)[n],(r,i)=>{if(n==null)return;const A=setTimeout(()=>{i(t,l=>{delete l[n]})},e);i(t,l=>{l[n]&&clearTimeout(l[n]),l[n]=A})})}const QW=$e(void 0),Nb=$e(void 0),wW=$e(void 0),wg=$e(void 0),xW=$e(void 0),Qp=$e(void 0),Fb=$e(void 0),_W=$e(void 0),kW=$e(void 0);$e(void 0),$e(void 0);const KI=$e(void 0);$e(void 0);let nS,Ob,rS,oS,jb,Wd,nc,iS,Lb,AS,ZI,sS,aS,DW,SW,lS;nS=$e(void 0),Ob=$e(void 0),rS=Obe(void 0),oS=$e(void 0),jb=$e(void 0),Wd=$e(void 0),nc=$e(void 0),Bk=$e(void 0),Lj=$e(void 0),Oj=$e(void 0),jj=$e(void 0),iS=$e(void 0),Lb=$e(void 0),AS=$e(void 0),ZI=$e(void 0),sS=$e(void 0),aS=$e(void 0),DW="_outer-container_13cf2_1",SW="_inner-container_13cf2_12",lS={outerContainer:DW,innerContainer:SW};var to;(function(e){e.assertEqual=i=>{};function t(i){}e.assertIs=t;function n(i){throw new Error}e.assertNever=n,e.arrayToEnum=i=>{const A={};for(const l of i)A[l]=l;return A},e.getValidEnumValues=i=>{const A=e.objectKeys(i).filter(c=>typeof i[i[c]]!="number"),l={};for(const c of A)l[c]=i[c];return e.objectValues(l)},e.objectValues=i=>e.objectKeys(i).map(function(A){return i[A]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{const A=[];for(const l in i)Object.prototype.hasOwnProperty.call(i,l)&&A.push(l);return A},e.find=(i,A)=>{for(const l of i)if(A(l))return l},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function r(i,A=" | "){return i.map(l=>typeof l=="string"?`'${l}'`:l).join(A)}e.joinValues=r,e.jsonStringifyReplacer=(i,A)=>typeof A=="bigint"?A.toString():A})(to||(to={}));var RW;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(RW||(RW={}));const pn=to.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),qd=e=>{switch(typeof e){case"undefined":return pn.undefined;case"string":return pn.string;case"number":return Number.isNaN(e)?pn.nan:pn.number;case"boolean":return pn.boolean;case"function":return pn.function;case"bigint":return pn.bigint;case"symbol":return pn.symbol;case"object":return Array.isArray(e)?pn.array:e===null?pn.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?pn.promise:typeof Map<"u"&&e instanceof Map?pn.map:typeof Set<"u"&&e instanceof Set?pn.set:typeof Date<"u"&&e instanceof Date?pn.date:pn.object;default:return pn.unknown}},Gt=to.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class tu extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){const n=t||function(A){return A.message},r={_errors:[]},i=A=>{for(const l of A.issues)if(l.code==="invalid_union")l.unionErrors.map(i);else if(l.code==="invalid_return_type")i(l.returnTypeError);else if(l.code==="invalid_arguments")i(l.argumentsError);else if(l.path.length===0)r._errors.push(n(l));else{let c=r,f=0;for(;fn.message){const n={},r=[];for(const i of this.issues)if(i.path.length>0){const A=i.path[0];n[A]=n[A]||[],n[A].push(t(i))}else r.push(t(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}}tu.create=e=>new tu(e);const cS=(e,t)=>{let n;switch(e.code){case Gt.invalid_type:e.received===pn.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case Gt.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,to.jsonStringifyReplacer)}`;break;case Gt.unrecognized_keys:n=`Unrecognized key(s) in object: ${to.joinValues(e.keys,", ")}`;break;case Gt.invalid_union:n="Invalid input";break;case Gt.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${to.joinValues(e.options)}`;break;case Gt.invalid_enum_value:n=`Invalid enum value. Expected ${to.joinValues(e.options)}, received '${e.received}'`;break;case Gt.invalid_arguments:n="Invalid function arguments";break;case Gt.invalid_return_type:n="Invalid function return type";break;case Gt.invalid_date:n="Invalid date";break;case Gt.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:to.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case Gt.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case Gt.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case Gt.custom:n="Invalid input";break;case Gt.invalid_intersection_types:n="Intersection results could not be merged";break;case Gt.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case Gt.not_finite:n="Number must be finite";break;default:n=t.defaultError,to.assertNever(e)}return{message:n}};let Lbe=cS;function Pbe(){return Lbe}const Ube=e=>{const{data:t,path:n,errorMaps:r,issueData:i}=e,A=[...n,...i.path||[]],l={...i,path:A};if(i.message!==void 0)return{...i,path:A,message:i.message};let c="";const f=r.filter(h=>!!h).slice().reverse();for(const h of f)c=h(l,{data:t,defaultError:c}).message;return{...i,path:A,message:c}};function cn(e,t){const n=Pbe(),r=Ube({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===cS?void 0:cS].filter(i=>!!i)});e.common.issues.push(r)}class bs{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){const r=[];for(const i of n){if(i.status==="aborted")return or;i.status==="dirty"&&t.dirty(),r.push(i.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){const r=[];for(const i of n){const A=await i.key,l=await i.value;r.push({key:A,value:l})}return bs.mergeObjectSync(t,r)}static mergeObjectSync(t,n){const r={};for(const i of n){const{key:A,value:l}=i;if(A.status==="aborted"||l.status==="aborted")return or;A.status==="dirty"&&t.dirty(),l.status==="dirty"&&t.dirty(),A.value!=="__proto__"&&(typeof l.value<"u"||i.alwaysSet)&&(r[A.value]=l.value)}return{status:t.value,value:r}}}const or=Object.freeze({status:"aborted"}),uS=e=>({status:"dirty",value:e}),al=e=>({status:"valid",value:e}),TW=e=>e.status==="aborted",MW=e=>e.status==="dirty",wp=e=>e.status==="valid",Pb=e=>typeof Promise<"u"&&e instanceof Promise;var wn;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t==null?void 0:t.message})(wn||(wn={}));class nu{constructor(t,n,r,i){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const NW=(e,t)=>{if(wp(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const n=new tu(e.common.issues);return this._error=n,this._error}}};function Ir(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(A,l)=>{const{message:c}=e;return A.code==="invalid_enum_value"?{message:c??l.defaultError}:typeof l.data>"u"?{message:c??r??l.defaultError}:A.code!=="invalid_type"?{message:l.defaultError}:{message:c??n??l.defaultError}},description:i}}class Ur{get description(){return this._def.description}_getType(t){return qd(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:qd(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new bs,ctx:{common:t.parent.common,data:t.data,parsedType:qd(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){const n=this._parse(t);if(Pb(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){const n=this._parse(t);return Promise.resolve(n)}parse(t,n){const r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){const r={common:{issues:[],async:(n==null?void 0:n.async)??!1,contextualErrorMap:n==null?void 0:n.errorMap},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:qd(t)},i=this._parseSync({data:t,path:r.path,parent:r});return NW(r,i)}"~validate"(t){var r,i;const n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:qd(t)};if(!this["~standard"].async)try{const A=this._parseSync({data:t,path:[],parent:n});return wp(A)?{value:A.value}:{issues:n.common.issues}}catch(A){(i=(r=A==null?void 0:A.message)==null?void 0:r.toLowerCase())!=null&&i.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(A=>wp(A)?{value:A.value}:{issues:n.common.issues})}async parseAsync(t,n){const r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){const r={common:{issues:[],contextualErrorMap:n==null?void 0:n.errorMap,async:!0},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:qd(t)},i=this._parse({data:t,path:r.path,parent:r}),A=await(Pb(i)?i:Promise.resolve(i));return NW(r,A)}refine(t,n){const r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,A)=>{const l=t(i),c=()=>A.addIssue({code:Gt.custom,...r(i)});return typeof Promise<"u"&&l instanceof Promise?l.then(f=>f?!0:(c(),!1)):l?!0:(c(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new Sg({schema:this,typeName:Zn.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return g0.create(this,this._def)}nullable(){return Rg.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ou.create(this)}promise(){return Xb.create(this,this._def)}or(t){return Yb.create([this,t],this._def)}and(t){return Jb.create(this,t,this._def)}transform(t){return new Sg({...Ir(this._def),schema:this,typeName:Zn.ZodEffects,effect:{type:"transform",transform:t}})}default(t){const n=typeof t=="function"?t:()=>t;return new Vb({...Ir(this._def),innerType:this,defaultValue:n,typeName:Zn.ZodDefault})}brand(){return new YW({typeName:Zn.ZodBranded,type:this,...Ir(this._def)})}catch(t){const n=typeof t=="function"?t:()=>t;return new Kb({...Ir(this._def),innerType:this,catchValue:n,typeName:Zn.ZodCatch})}describe(t){const n=this.constructor;return new n({...this._def,description:t})}pipe(t){return mS.create(this,t)}readonly(){return Zb.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const Gbe=/^c[^\s-]{8,}$/i,Hbe=/^[0-9a-z]+$/,Ybe=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Jbe=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,zbe=/^[a-z0-9_-]{21}$/i,Wbe=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,qbe=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Xbe=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Vbe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let dS;const Kbe=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Zbe=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,$be=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,eQe=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,tQe=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,nQe=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,FW="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",rQe=new RegExp(`^${FW}$`);function OW(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);const n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function oQe(e){return new RegExp(`^${OW(e)}$`)}function iQe(e){let t=`${FW}T${OW(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function AQe(e,t){return!!((t==="v4"||!t)&&Kbe.test(e)||(t==="v6"||!t)&&$be.test(e))}function sQe(e,t){if(!Wbe.test(e))return!1;try{const[n]=e.split(".");if(!n)return!1;const r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&(i==null?void 0:i.typ)!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function aQe(e,t){return!!((t==="v4"||!t)&&Zbe.test(e)||(t==="v6"||!t)&&eQe.test(e))}class ru extends Ur{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==pn.string){const i=this._getOrReturnCtx(t);return cn(i,{code:Gt.invalid_type,expected:pn.string,received:i.parsedType}),or}const n=new bs;let r;for(const i of this._def.checks)if(i.kind==="min")t.data.lengthi.value&&(r=this._getOrReturnCtx(t,r),cn(r,{code:Gt.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),n.dirty());else if(i.kind==="length"){const A=t.data.length>i.value,l=t.data.lengtht.test(i),{validation:n,code:Gt.invalid_string,...wn.errToObj(r)})}_addCheck(t){return new ru({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...wn.errToObj(t)})}url(t){return this._addCheck({kind:"url",...wn.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...wn.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...wn.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...wn.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...wn.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...wn.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...wn.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...wn.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...wn.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...wn.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...wn.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...wn.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof(t==null?void 0:t.precision)>"u"?null:t==null?void 0:t.precision,offset:(t==null?void 0:t.offset)??!1,local:(t==null?void 0:t.local)??!1,...wn.errToObj(t==null?void 0:t.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof(t==null?void 0:t.precision)>"u"?null:t==null?void 0:t.precision,...wn.errToObj(t==null?void 0:t.message)})}duration(t){return this._addCheck({kind:"duration",...wn.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...wn.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n==null?void 0:n.position,...wn.errToObj(n==null?void 0:n.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...wn.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...wn.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...wn.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...wn.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...wn.errToObj(n)})}nonempty(t){return this.min(1,wn.errToObj(t))}trim(){return new ru({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new ru({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new ru({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew ru({checks:[],typeName:Zn.ZodString,coerce:(e==null?void 0:e.coerce)??!1,...Ir(e)});function lQe(e,t){const n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,A=Number.parseInt(e.toFixed(i).replace(".","")),l=Number.parseInt(t.toFixed(i).replace(".",""));return A%l/10**i}class xg extends Ur{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==pn.number){const i=this._getOrReturnCtx(t);return cn(i,{code:Gt.invalid_type,expected:pn.number,received:i.parsedType}),or}let n;const r=new bs;for(const i of this._def.checks)i.kind==="int"?to.isInteger(t.data)||(n=this._getOrReturnCtx(t,n),cn(n,{code:Gt.invalid_type,expected:"integer",received:"float",message:i.message}),r.dirty()):i.kind==="min"?(i.inclusive?t.datai.value:t.data>=i.value)&&(n=this._getOrReturnCtx(t,n),cn(n,{code:Gt.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),r.dirty()):i.kind==="multipleOf"?lQe(t.data,i.value)!==0&&(n=this._getOrReturnCtx(t,n),cn(n,{code:Gt.not_multiple_of,multipleOf:i.value,message:i.message}),r.dirty()):i.kind==="finite"?Number.isFinite(t.data)||(n=this._getOrReturnCtx(t,n),cn(n,{code:Gt.not_finite,message:i.message}),r.dirty()):to.assertNever(i);return{status:r.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,wn.toString(n))}gt(t,n){return this.setLimit("min",t,!1,wn.toString(n))}lte(t,n){return this.setLimit("max",t,!0,wn.toString(n))}lt(t,n){return this.setLimit("max",t,!1,wn.toString(n))}setLimit(t,n,r,i){return new xg({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:wn.toString(i)}]})}_addCheck(t){return new xg({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:wn.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:wn.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:wn.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:wn.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:wn.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:wn.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:wn.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:wn.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:wn.toString(t)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.valuet.kind==="int"||t.kind==="multipleOf"&&to.isInteger(t.value))}get isFinite(){let t=null,n=null;for(const r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.valuenew xg({checks:[],typeName:Zn.ZodNumber,coerce:(e==null?void 0:e.coerce)||!1,...Ir(e)});class _g extends Ur{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==pn.bigint)return this._getInvalidInput(t);let n;const r=new bs;for(const i of this._def.checks)i.kind==="min"?(i.inclusive?t.datai.value:t.data>=i.value)&&(n=this._getOrReturnCtx(t,n),cn(n,{code:Gt.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),r.dirty()):i.kind==="multipleOf"?t.data%i.value!==BigInt(0)&&(n=this._getOrReturnCtx(t,n),cn(n,{code:Gt.not_multiple_of,multipleOf:i.value,message:i.message}),r.dirty()):to.assertNever(i);return{status:r.value,value:t.data}}_getInvalidInput(t){const n=this._getOrReturnCtx(t);return cn(n,{code:Gt.invalid_type,expected:pn.bigint,received:n.parsedType}),or}gte(t,n){return this.setLimit("min",t,!0,wn.toString(n))}gt(t,n){return this.setLimit("min",t,!1,wn.toString(n))}lte(t,n){return this.setLimit("max",t,!0,wn.toString(n))}lt(t,n){return this.setLimit("max",t,!1,wn.toString(n))}setLimit(t,n,r,i){return new _g({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:wn.toString(i)}]})}_addCheck(t){return new _g({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:wn.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:wn.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:wn.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:wn.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:wn.toString(n)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew _g({checks:[],typeName:Zn.ZodBigInt,coerce:(e==null?void 0:e.coerce)??!1,...Ir(e)});class Ub extends Ur{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==pn.boolean){const n=this._getOrReturnCtx(t);return cn(n,{code:Gt.invalid_type,expected:pn.boolean,received:n.parsedType}),or}return al(t.data)}}Ub.create=e=>new Ub({typeName:Zn.ZodBoolean,coerce:(e==null?void 0:e.coerce)||!1,...Ir(e)});class xp extends Ur{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==pn.date){const i=this._getOrReturnCtx(t);return cn(i,{code:Gt.invalid_type,expected:pn.date,received:i.parsedType}),or}if(Number.isNaN(t.data.getTime())){const i=this._getOrReturnCtx(t);return cn(i,{code:Gt.invalid_date}),or}const n=new bs;let r;for(const i of this._def.checks)i.kind==="min"?t.data.getTime()i.value&&(r=this._getOrReturnCtx(t,r),cn(r,{code:Gt.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),n.dirty()):to.assertNever(i);return{status:n.value,value:new Date(t.data.getTime())}}_addCheck(t){return new xp({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:wn.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:wn.toString(n)})}get minDate(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew xp({checks:[],coerce:(e==null?void 0:e.coerce)||!1,typeName:Zn.ZodDate,...Ir(e)});class jW extends Ur{_parse(t){if(this._getType(t)!==pn.symbol){const n=this._getOrReturnCtx(t);return cn(n,{code:Gt.invalid_type,expected:pn.symbol,received:n.parsedType}),or}return al(t.data)}}jW.create=e=>new jW({typeName:Zn.ZodSymbol,...Ir(e)});class fS extends Ur{_parse(t){if(this._getType(t)!==pn.undefined){const n=this._getOrReturnCtx(t);return cn(n,{code:Gt.invalid_type,expected:pn.undefined,received:n.parsedType}),or}return al(t.data)}}fS.create=e=>new fS({typeName:Zn.ZodUndefined,...Ir(e)});class Gb extends Ur{_parse(t){if(this._getType(t)!==pn.null){const n=this._getOrReturnCtx(t);return cn(n,{code:Gt.invalid_type,expected:pn.null,received:n.parsedType}),or}return al(t.data)}}Gb.create=e=>new Gb({typeName:Zn.ZodNull,...Ir(e)});class Hb extends Ur{constructor(){super(...arguments),this._any=!0}_parse(t){return al(t.data)}}Hb.create=e=>new Hb({typeName:Zn.ZodAny,...Ir(e)});class LW extends Ur{constructor(){super(...arguments),this._unknown=!0}_parse(t){return al(t.data)}}LW.create=e=>new LW({typeName:Zn.ZodUnknown,...Ir(e)});class Xd extends Ur{_parse(t){const n=this._getOrReturnCtx(t);return cn(n,{code:Gt.invalid_type,expected:pn.never,received:n.parsedType}),or}}Xd.create=e=>new Xd({typeName:Zn.ZodNever,...Ir(e)});class PW extends Ur{_parse(t){if(this._getType(t)!==pn.undefined){const n=this._getOrReturnCtx(t);return cn(n,{code:Gt.invalid_type,expected:pn.void,received:n.parsedType}),or}return al(t.data)}}PW.create=e=>new PW({typeName:Zn.ZodVoid,...Ir(e)});class ou extends Ur{_parse(t){const{ctx:n,status:r}=this._processInputParams(t),i=this._def;if(n.parsedType!==pn.array)return cn(n,{code:Gt.invalid_type,expected:pn.array,received:n.parsedType}),or;if(i.exactLength!==null){const l=n.data.length>i.exactLength.value,c=n.data.lengthi.maxLength.value&&(cn(n,{code:Gt.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((l,c)=>i.type._parseAsync(new nu(n,l,n.path,c)))).then(l=>bs.mergeArray(r,l));const A=[...n.data].map((l,c)=>i.type._parseSync(new nu(n,l,n.path,c)));return bs.mergeArray(r,A)}get element(){return this._def.type}min(t,n){return new ou({...this._def,minLength:{value:t,message:wn.toString(n)}})}max(t,n){return new ou({...this._def,maxLength:{value:t,message:wn.toString(n)}})}length(t,n){return new ou({...this._def,exactLength:{value:t,message:wn.toString(n)}})}nonempty(t){return this.min(1,t)}}ou.create=(e,t)=>new ou({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Zn.ZodArray,...Ir(t)});function _p(e){if(e instanceof Vi){const t={};for(const n in e.shape){const r=e.shape[n];t[n]=g0.create(_p(r))}return new Vi({...e._def,shape:()=>t})}else return e instanceof ou?new ou({...e._def,type:_p(e.element)}):e instanceof g0?g0.create(_p(e.unwrap())):e instanceof Rg?Rg.create(_p(e.unwrap())):e instanceof kg?kg.create(e.items.map(t=>_p(t))):e}class Vi extends Ur{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const t=this._def.shape(),n=to.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==pn.object){const f=this._getOrReturnCtx(t);return cn(f,{code:Gt.invalid_type,expected:pn.object,received:f.parsedType}),or}const{status:n,ctx:r}=this._processInputParams(t),{shape:i,keys:A}=this._getCached(),l=[];if(!(this._def.catchall instanceof Xd&&this._def.unknownKeys==="strip"))for(const f in r.data)A.includes(f)||l.push(f);const c=[];for(const f of A){const h=i[f],I=r.data[f];c.push({key:{status:"valid",value:f},value:h._parse(new nu(r,I,r.path,f)),alwaysSet:f in r.data})}if(this._def.catchall instanceof Xd){const f=this._def.unknownKeys;if(f==="passthrough")for(const h of l)c.push({key:{status:"valid",value:h},value:{status:"valid",value:r.data[h]}});else if(f==="strict")l.length>0&&(cn(r,{code:Gt.unrecognized_keys,keys:l}),n.dirty());else if(f!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const f=this._def.catchall;for(const h of l){const I=r.data[h];c.push({key:{status:"valid",value:h},value:f._parse(new nu(r,I,r.path,h)),alwaysSet:h in r.data})}}return r.common.async?Promise.resolve().then(async()=>{const f=[];for(const h of c){const I=await h.key,B=await h.value;f.push({key:I,value:B,alwaysSet:h.alwaysSet})}return f}).then(f=>bs.mergeObjectSync(n,f)):bs.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(t){return wn.errToObj,new Vi({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{var A,l;const i=((l=(A=this._def).errorMap)==null?void 0:l.call(A,n,r).message)??r.defaultError;return n.code==="unrecognized_keys"?{message:wn.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new Vi({...this._def,unknownKeys:"strip"})}passthrough(){return new Vi({...this._def,unknownKeys:"passthrough"})}extend(t){return new Vi({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new Vi({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Zn.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new Vi({...this._def,catchall:t})}pick(t){const n={};for(const r of to.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new Vi({...this._def,shape:()=>n})}omit(t){const n={};for(const r of to.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new Vi({...this._def,shape:()=>n})}deepPartial(){return _p(this)}partial(t){const n={};for(const r of to.objectKeys(this.shape)){const i=this.shape[r];t&&!t[r]?n[r]=i:n[r]=i.optional()}return new Vi({...this._def,shape:()=>n})}required(t){const n={};for(const r of to.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let i=this.shape[r];for(;i instanceof g0;)i=i._def.innerType;n[r]=i}return new Vi({...this._def,shape:()=>n})}keyof(){return GW(to.objectKeys(this.shape))}}Vi.create=(e,t)=>new Vi({shape:()=>e,unknownKeys:"strip",catchall:Xd.create(),typeName:Zn.ZodObject,...Ir(t)}),Vi.strictCreate=(e,t)=>new Vi({shape:()=>e,unknownKeys:"strict",catchall:Xd.create(),typeName:Zn.ZodObject,...Ir(t)}),Vi.lazycreate=(e,t)=>new Vi({shape:e,unknownKeys:"strip",catchall:Xd.create(),typeName:Zn.ZodObject,...Ir(t)});class Yb extends Ur{_parse(t){const{ctx:n}=this._processInputParams(t),r=this._def.options;function i(A){for(const c of A)if(c.result.status==="valid")return c.result;for(const c of A)if(c.result.status==="dirty")return n.common.issues.push(...c.ctx.common.issues),c.result;const l=A.map(c=>new tu(c.ctx.common.issues));return cn(n,{code:Gt.invalid_union,unionErrors:l}),or}if(n.common.async)return Promise.all(r.map(async A=>{const l={...n,common:{...n.common,issues:[]},parent:null};return{result:await A._parseAsync({data:n.data,path:n.path,parent:l}),ctx:l}})).then(i);{let A;const l=[];for(const f of r){const h={...n,common:{...n.common,issues:[]},parent:null},I=f._parseSync({data:n.data,path:n.path,parent:h});if(I.status==="valid")return I;I.status==="dirty"&&!A&&(A={result:I,ctx:h}),h.common.issues.length&&l.push(h.common.issues)}if(A)return n.common.issues.push(...A.ctx.common.issues),A.result;const c=l.map(f=>new tu(f));return cn(n,{code:Gt.invalid_union,unionErrors:c}),or}}get options(){return this._def.options}}Yb.create=(e,t)=>new Yb({options:e,typeName:Zn.ZodUnion,...Ir(t)});const Vd=e=>e instanceof pS?Vd(e.schema):e instanceof Sg?Vd(e.innerType()):e instanceof Wb?[e.value]:e instanceof Dg?e.options:e instanceof qb?to.objectValues(e.enum):e instanceof Vb?Vd(e._def.innerType):e instanceof fS?[void 0]:e instanceof Gb?[null]:e instanceof g0?[void 0,...Vd(e.unwrap())]:e instanceof Rg?[null,...Vd(e.unwrap())]:e instanceof YW||e instanceof Zb?Vd(e.unwrap()):e instanceof Kb?Vd(e._def.innerType):[];class gS extends Ur{_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==pn.object)return cn(n,{code:Gt.invalid_type,expected:pn.object,received:n.parsedType}),or;const r=this.discriminator,i=n.data[r],A=this.optionsMap.get(i);return A?n.common.async?A._parseAsync({data:n.data,path:n.path,parent:n}):A._parseSync({data:n.data,path:n.path,parent:n}):(cn(n,{code:Gt.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),or)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){const i=new Map;for(const A of n){const l=Vd(A.shape[t]);if(!l.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(const c of l){if(i.has(c))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(c)}`);i.set(c,A)}}return new gS({typeName:Zn.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...Ir(r)})}}function hS(e,t){const n=qd(e),r=qd(t);if(e===t)return{valid:!0,data:e};if(n===pn.object&&r===pn.object){const i=to.objectKeys(t),A=to.objectKeys(e).filter(c=>i.indexOf(c)!==-1),l={...e,...t};for(const c of A){const f=hS(e[c],t[c]);if(!f.valid)return{valid:!1};l[c]=f.data}return{valid:!0,data:l}}else if(n===pn.array&&r===pn.array){if(e.length!==t.length)return{valid:!1};const i=[];for(let A=0;A{if(TW(A)||TW(l))return or;const c=hS(A.value,l.value);return c.valid?((MW(A)||MW(l))&&n.dirty(),{status:n.value,value:c.data}):(cn(r,{code:Gt.invalid_intersection_types}),or)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([A,l])=>i(A,l)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}Jb.create=(e,t,n)=>new Jb({left:e,right:t,typeName:Zn.ZodIntersection,...Ir(n)});class kg extends Ur{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==pn.array)return cn(r,{code:Gt.invalid_type,expected:pn.array,received:r.parsedType}),or;if(r.data.lengththis._def.items.length&&(cn(r,{code:Gt.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());const i=[...r.data].map((A,l)=>{const c=this._def.items[l]||this._def.rest;return c?c._parse(new nu(r,A,r.path,l)):null}).filter(A=>!!A);return r.common.async?Promise.all(i).then(A=>bs.mergeArray(n,A)):bs.mergeArray(n,i)}get items(){return this._def.items}rest(t){return new kg({...this._def,rest:t})}}kg.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new kg({items:e,typeName:Zn.ZodTuple,rest:null,...Ir(t)})};class zb extends Ur{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==pn.object)return cn(r,{code:Gt.invalid_type,expected:pn.object,received:r.parsedType}),or;const i=[],A=this._def.keyType,l=this._def.valueType;for(const c in r.data)i.push({key:A._parse(new nu(r,c,r.path,c)),value:l._parse(new nu(r,r.data[c],r.path,c)),alwaysSet:c in r.data});return r.common.async?bs.mergeObjectAsync(n,i):bs.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof Ur?new zb({keyType:t,valueType:n,typeName:Zn.ZodRecord,...Ir(r)}):new zb({keyType:ru.create(),valueType:t,typeName:Zn.ZodRecord,...Ir(n)})}}class UW extends Ur{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==pn.map)return cn(r,{code:Gt.invalid_type,expected:pn.map,received:r.parsedType}),or;const i=this._def.keyType,A=this._def.valueType,l=[...r.data.entries()].map(([c,f],h)=>({key:i._parse(new nu(r,c,r.path,[h,"key"])),value:A._parse(new nu(r,f,r.path,[h,"value"]))}));if(r.common.async){const c=new Map;return Promise.resolve().then(async()=>{for(const f of l){const h=await f.key,I=await f.value;if(h.status==="aborted"||I.status==="aborted")return or;(h.status==="dirty"||I.status==="dirty")&&n.dirty(),c.set(h.value,I.value)}return{status:n.value,value:c}})}else{const c=new Map;for(const f of l){const h=f.key,I=f.value;if(h.status==="aborted"||I.status==="aborted")return or;(h.status==="dirty"||I.status==="dirty")&&n.dirty(),c.set(h.value,I.value)}return{status:n.value,value:c}}}}UW.create=(e,t,n)=>new UW({valueType:t,keyType:e,typeName:Zn.ZodMap,...Ir(n)});class $I extends Ur{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==pn.set)return cn(r,{code:Gt.invalid_type,expected:pn.set,received:r.parsedType}),or;const i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(cn(r,{code:Gt.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());const A=this._def.valueType;function l(f){const h=new Set;for(const I of f){if(I.status==="aborted")return or;I.status==="dirty"&&n.dirty(),h.add(I.value)}return{status:n.value,value:h}}const c=[...r.data.values()].map((f,h)=>A._parse(new nu(r,f,r.path,h)));return r.common.async?Promise.all(c).then(f=>l(f)):l(c)}min(t,n){return new $I({...this._def,minSize:{value:t,message:wn.toString(n)}})}max(t,n){return new $I({...this._def,maxSize:{value:t,message:wn.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}}$I.create=(e,t)=>new $I({valueType:e,minSize:null,maxSize:null,typeName:Zn.ZodSet,...Ir(t)});class pS extends Ur{get schema(){return this._def.getter()}_parse(t){const{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}}pS.create=(e,t)=>new pS({getter:e,typeName:Zn.ZodLazy,...Ir(t)});class Wb extends Ur{_parse(t){if(t.data!==this._def.value){const n=this._getOrReturnCtx(t);return cn(n,{received:n.data,code:Gt.invalid_literal,expected:this._def.value}),or}return{status:"valid",value:t.data}}get value(){return this._def.value}}Wb.create=(e,t)=>new Wb({value:e,typeName:Zn.ZodLiteral,...Ir(t)});function GW(e,t){return new Dg({values:e,typeName:Zn.ZodEnum,...Ir(t)})}class Dg extends Ur{_parse(t){if(typeof t.data!="string"){const n=this._getOrReturnCtx(t),r=this._def.values;return cn(n,{expected:to.joinValues(r),received:n.parsedType,code:Gt.invalid_type}),or}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){const n=this._getOrReturnCtx(t),r=this._def.values;return cn(n,{received:n.data,code:Gt.invalid_enum_value,options:r}),or}return al(t.data)}get options(){return this._def.values}get enum(){const t={};for(const n of this._def.values)t[n]=n;return t}get Values(){const t={};for(const n of this._def.values)t[n]=n;return t}get Enum(){const t={};for(const n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return Dg.create(t,{...this._def,...n})}exclude(t,n=this._def){return Dg.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}}Dg.create=GW;class qb extends Ur{_parse(t){const n=to.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==pn.string&&r.parsedType!==pn.number){const i=to.objectValues(n);return cn(r,{expected:to.joinValues(i),received:r.parsedType,code:Gt.invalid_type}),or}if(this._cache||(this._cache=new Set(to.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){const i=to.objectValues(n);return cn(r,{received:r.data,code:Gt.invalid_enum_value,options:i}),or}return al(t.data)}get enum(){return this._def.values}}qb.create=(e,t)=>new qb({values:e,typeName:Zn.ZodNativeEnum,...Ir(t)});class Xb extends Ur{unwrap(){return this._def.type}_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==pn.promise&&n.common.async===!1)return cn(n,{code:Gt.invalid_type,expected:pn.promise,received:n.parsedType}),or;const r=n.parsedType===pn.promise?n.data:Promise.resolve(n.data);return al(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}}Xb.create=(e,t)=>new Xb({type:e,typeName:Zn.ZodPromise,...Ir(t)});class Sg extends Ur{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Zn.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){const{status:n,ctx:r}=this._processInputParams(t),i=this._def.effect||null,A={addIssue:l=>{cn(r,l),l.fatal?n.abort():n.dirty()},get path(){return r.path}};if(A.addIssue=A.addIssue.bind(A),i.type==="preprocess"){const l=i.transform(r.data,A);if(r.common.async)return Promise.resolve(l).then(async c=>{if(n.value==="aborted")return or;const f=await this._def.schema._parseAsync({data:c,path:r.path,parent:r});return f.status==="aborted"?or:f.status==="dirty"||n.value==="dirty"?uS(f.value):f});{if(n.value==="aborted")return or;const c=this._def.schema._parseSync({data:l,path:r.path,parent:r});return c.status==="aborted"?or:c.status==="dirty"||n.value==="dirty"?uS(c.value):c}}if(i.type==="refinement"){const l=c=>{const f=i.refinement(c,A);if(r.common.async)return Promise.resolve(f);if(f instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return c};if(r.common.async===!1){const c=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return c.status==="aborted"?or:(c.status==="dirty"&&n.dirty(),l(c.value),{status:n.value,value:c.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(c=>c.status==="aborted"?or:(c.status==="dirty"&&n.dirty(),l(c.value).then(()=>({status:n.value,value:c.value}))))}if(i.type==="transform")if(r.common.async===!1){const l=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!wp(l))return or;const c=i.transform(l.value,A);if(c instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:c}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(l=>wp(l)?Promise.resolve(i.transform(l.value,A)).then(c=>({status:n.value,value:c})):or);to.assertNever(i)}}Sg.create=(e,t,n)=>new Sg({schema:e,typeName:Zn.ZodEffects,effect:t,...Ir(n)}),Sg.createWithPreprocess=(e,t,n)=>new Sg({schema:t,effect:{type:"preprocess",transform:e},typeName:Zn.ZodEffects,...Ir(n)});class g0 extends Ur{_parse(t){return this._getType(t)===pn.undefined?al(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}g0.create=(e,t)=>new g0({innerType:e,typeName:Zn.ZodOptional,...Ir(t)});class Rg extends Ur{_parse(t){return this._getType(t)===pn.null?al(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}Rg.create=(e,t)=>new Rg({innerType:e,typeName:Zn.ZodNullable,...Ir(t)});class Vb extends Ur{_parse(t){const{ctx:n}=this._processInputParams(t);let r=n.data;return n.parsedType===pn.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}}Vb.create=(e,t)=>new Vb({innerType:e,typeName:Zn.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...Ir(t)});class Kb extends Ur{_parse(t){const{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Pb(i)?i.then(A=>({status:"valid",value:A.status==="valid"?A.value:this._def.catchValue({get error(){return new tu(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new tu(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}Kb.create=(e,t)=>new Kb({innerType:e,typeName:Zn.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...Ir(t)});class HW extends Ur{_parse(t){if(this._getType(t)!==pn.nan){const n=this._getOrReturnCtx(t);return cn(n,{code:Gt.invalid_type,expected:pn.nan,received:n.parsedType}),or}return{status:"valid",value:t.data}}}HW.create=e=>new HW({typeName:Zn.ZodNaN,...Ir(e)});class YW extends Ur{_parse(t){const{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}}class mS extends Ur{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{const i=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?or:i.status==="dirty"?(n.dirty(),uS(i.value)):this._def.out._parseAsync({data:i.value,path:r.path,parent:r})})();{const i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?or:i.status==="dirty"?(n.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(t,n){return new mS({in:t,out:n,typeName:Zn.ZodPipeline})}}class Zb extends Ur{_parse(t){const n=this._def.innerType._parse(t),r=i=>(wp(i)&&(i.value=Object.freeze(i.value)),i);return Pb(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}}Zb.create=(e,t)=>new Zb({innerType:e,typeName:Zn.ZodReadonly,...Ir(t)});function cQe(e,t={},n){return Hb.create()}var Zn;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(Zn||(Zn={}));const Mr=ru.create,ze=xg.create;_g.create;const kp=Ub.create;xp.create;const uQe=Gb.create;Hb.create,Xd.create;const Dp=ou.create,ir=Vi.create,dQe=Yb.create,Tg=gS.create;Jb.create;const fQe=kg.create,IS=zb.create,Vn=Wb.create,iu=Dg.create,gQe=qb.create;Xb.create,g0.create;const h0=Rg.create,Un={string:e=>ru.create({...e,coerce:!0}),number:e=>xg.create({...e,coerce:!0}),boolean:e=>Ub.create({...e,coerce:!0}),bigint:e=>_g.create({...e,coerce:!0}),date:e=>xp.create({...e,coerce:!0})},JW=iu(["Frankendancer","Firedancer"]),Au=JW.enum,Fo=ir({topic:Vn("summary")}),zW=ir({topic:Vn("epoch")}),Sp=ir({topic:Vn("gossip")}),WW=ir({topic:Vn("peers")}),Mg=ir({topic:Vn("slot")}),qW=ir({topic:Vn("block_engine")}),hQe=Tg("topic",[Fo,zW,Sp,WW,Mg,qW]),pQe=Mr(),mQe=iu(["development","mainnet-beta","devnet","testnet","pythtest","pythnet","unknown"]),IQe=Mr(),CQe=Mr(),EQe=Un.bigint(),XW=iu(["perf","balanced","revenue"]),p0=XW.enum,CS=iu(["sock","net","quic","bundle","verify","dedup","resolv","pack","bank","poh","shred","store","snapct","snapld","snapdc","snapin","netlnk","metric","ipecho","gossvf","gossip","repair","replay","exec","tower","send","sign","rpc","gui","http","plugin","cswtch","genesi"]),BQe=ir({kind:Mr(),kind_id:ze()}),VW=Un.bigint();Un.bigint();const yQe=ze(),vQe=ze(),bQe=ze(),QQe=ze().nullable(),wQe=ze().nullable(),xQe=ir({repair:ze().array(),turbine:ze().array()}),_Qe=ze(),kQe=ze(),DQe=ir({total:ze(),vote:ze(),nonvote_success:ze(),nonvote_failed:ze()}),SQe=ir({pack_cranked:ze(),pack_retained:ze(),resolv_retained:ze(),quic:ze(),udp:ze(),gossip:ze(),block_engine:ze()}),RQe=ir({net_overrun:ze(),quic_overrun:ze(),quic_frag_drop:ze(),quic_abandoned:ze(),tpu_quic_invalid:ze(),tpu_udp_invalid:ze(),verify_overrun:ze(),verify_parse:ze(),verify_failed:ze(),verify_duplicate:ze(),dedup_duplicate:ze(),resolv_lut_failed:ze(),resolv_expired:ze(),resolv_no_ledger:ze(),resolv_ancient:ze(),resolv_retained:ze(),pack_invalid:ze(),pack_already_executed:ze(),pack_invalid_bundle:ze(),pack_retained:ze(),pack_leader_slow:ze(),pack_wait_full:ze(),pack_expired:ze(),bank_invalid:ze(),bank_nonce_already_advanced:ze(),bank_nonce_advance_failed:ze(),bank_nonce_wrong_blockhash:ze(),block_success:ze(),block_fail:ze()}),KW=ir({in:SQe,out:RQe}),TQe=ir({next_leader_slot:ze().nullable(),waterfall:KW}),ZW=ir({net_in:ze(),quic:ze(),verify:ze(),bundle_rtt_smoothed_millis:ze(),bundle_rx_delay_millis_p90:ze(),dedup:ze(),pack:ze(),bank:ze(),poh:ze(),shred:ze(),store:ze(),net_out:ze()}),MQe=ir({next_leader_slot:ze().nullable(),tile_primary_metric:ZW});ir({tile:Mr(),kind_id:ze(),idle:ze()});const NQe=iu(["initializing","searching_for_full_snapshot","downloading_full_snapshot","searching_for_incremental_snapshot","downloading_incremental_snapshot","cleaning_blockstore","cleaning_accounts","loading_ledger","processing_ledger","starting_services","halted","waiting_for_supermajority","running"]),FQe=ir({phase:NQe,downloading_full_snapshot_slot:ze().nullable(),downloading_full_snapshot_peer:Mr().nullable(),downloading_full_snapshot_elapsed_secs:ze().nullable(),downloading_full_snapshot_remaining_secs:ze().nullable(),downloading_full_snapshot_throughput:ze().nullable(),downloading_full_snapshot_total_bytes:Un.number().nullable(),downloading_full_snapshot_current_bytes:Un.number().nullable(),downloading_incremental_snapshot_slot:ze().nullable(),downloading_incremental_snapshot_peer:Mr().nullable(),downloading_incremental_snapshot_elapsed_secs:ze().nullable(),downloading_incremental_snapshot_remaining_secs:ze().nullable(),downloading_incremental_snapshot_throughput:ze().nullable(),downloading_incremental_snapshot_total_bytes:Un.number().nullable(),downloading_incremental_snapshot_current_bytes:Un.number().nullable(),ledger_slot:ze().nullable(),ledger_max_slot:ze().nullable(),waiting_for_supermajority_slot:ze().nullable(),waiting_for_supermajority_stake_percent:ze().nullable()}),$W=iu(["joining_gossip","loading_full_snapshot","loading_incremental_snapshot","catching_up","running"]),uA=$W.enum,OQe=ir({phase:$W,joining_gossip_elapsed_seconds:ze().nullable().optional(),loading_full_snapshot_elapsed_seconds:ze().nullable().optional(),loading_full_snapshot_reset_count:ze().nullable().optional(),loading_full_snapshot_slot:ze().nullable().optional(),loading_full_snapshot_total_bytes_compressed:Un.number().nullable().optional(),loading_full_snapshot_read_bytes_compressed:Un.number().nullable().optional(),loading_full_snapshot_read_path:Mr().nullable().optional(),loading_full_snapshot_decompress_bytes_decompressed:Un.number().nullable().optional(),loading_full_snapshot_decompress_bytes_compressed:Un.number().nullable().optional(),loading_full_snapshot_insert_bytes_decompressed:Un.number().nullable().optional(),loading_full_snapshot_insert_accounts:ze().nullable().optional(),loading_incremental_snapshot_elapsed_seconds:ze().nullable().optional(),loading_incremental_snapshot_reset_count:ze().nullable().optional(),loading_incremental_snapshot_slot:ze().nullable().optional(),loading_incremental_snapshot_total_bytes_compressed:Un.number().nullable().optional(),loading_incremental_snapshot_read_bytes_compressed:Un.number().nullable().optional(),loading_incremental_snapshot_read_path:Mr().nullable().optional(),loading_incremental_snapshot_decompress_bytes_decompressed:Un.number().nullable().optional(),loading_incremental_snapshot_decompress_bytes_compressed:Un.number().nullable().optional(),loading_incremental_snapshot_insert_bytes_decompressed:Un.number().nullable().optional(),loading_incremental_snapshot_insert_accounts:ze().nullable().optional(),catching_up_elapsed_seconds:ze().nullable().optional(),catching_up_first_replay_slot:ze().nullable().optional()}),jQe=ir({start_timestamp_nanos:Un.bigint(),target_end_timestamp_nanos:Un.bigint(),txn_mb_start_timestamps_nanos:Un.bigint().array(),txn_mb_end_timestamps_nanos:Un.bigint().array(),txn_compute_units_requested:ze().array(),txn_compute_units_consumed:ze().array(),txn_transaction_fee:Un.bigint().array(),txn_priority_fee:Un.bigint().array(),txn_tips:Un.bigint().array(),txn_error_code:ze().array(),txn_from_bundle:kp().array(),txn_is_simple_vote:kp().array(),txn_bank_idx:ze().array(),txn_preload_end_timestamps_nanos:Un.bigint().array(),txn_start_timestamps_nanos:Un.bigint().array(),txn_load_end_timestamps_nanos:Un.bigint().array(),txn_end_timestamps_nanos:Un.bigint().array(),txn_arrival_timestamps_nanos:Un.bigint().array(),txn_microblock_id:ze().array(),txn_landed:kp().array(),txn_signature:Mr().array(),txn_source_ipv4:Mr().array(),txn_source_tpu:Mr().array()}),LQe=iu(["incomplete","completed","optimistically_confirmed","rooted","finalized"]),PQe=ir({slot:ze(),mine:kp(),skipped:kp(),level:LQe,success_nonvote_transaction_cnt:ze().nullable(),failed_nonvote_transaction_cnt:ze().nullable(),success_vote_transaction_cnt:ze().nullable(),failed_vote_transaction_cnt:ze().nullable(),priority_fee:Un.bigint().nullable(),transaction_fee:Un.bigint().nullable(),tips:Un.bigint().nullable(),max_compute_units:ze().nullable(),compute_units:ze().nullable(),duration_nanos:ze().nullable(),completed_time_nanos:Un.bigint().nullable()}),UQe=Dp(fQe([ze(),ze(),ze(),ze()])),GQe=iu(["voting","non-voting","delinquent"]),HQe=ze(),YQe=ir({epoch:ze(),skip_rate:ze()}),JQe=Tg("key",[Fo.extend({key:Vn("ping"),value:uQe(),id:ze()}),Fo.extend({key:Vn("version"),value:pQe}),Fo.extend({key:Vn("cluster"),value:mQe}),Fo.extend({key:Vn("commit_hash"),value:IQe}),Fo.extend({key:Vn("identity_key"),value:CQe}),Fo.extend({key:Vn("startup_time_nanos"),value:EQe}),Fo.extend({key:Vn("schedule_strategy"),value:XW}),Fo.extend({key:Vn("tiles"),value:BQe.array()}),Fo.extend({key:Vn("identity_balance"),value:VW}),Fo.extend({key:Vn("vote_balance"),value:VW}),Fo.extend({key:Vn("root_slot"),value:yQe}),Fo.extend({key:Vn("optimistically_confirmed_slot"),value:vQe}),Fo.extend({key:Vn("completed_slot"),value:bQe}),Fo.extend({key:Vn("estimated_slot"),value:_Qe}),Fo.extend({key:Vn("estimated_slot_duration_nanos"),value:kQe}),Fo.extend({key:Vn("estimated_tps"),value:DQe}),Fo.extend({key:Vn("live_txn_waterfall"),value:TQe}),Fo.extend({key:Vn("live_tile_primary_metric"),value:MQe}),Fo.extend({key:Vn("live_tile_timers"),value:ze().array()}),Fo.extend({key:Vn("startup_progress"),value:FQe}),Fo.extend({key:Vn("boot_progress"),value:OQe}),Fo.extend({key:Vn("tps_history"),value:UQe}),Fo.extend({key:Vn("vote_state"),value:GQe}),Fo.extend({key:Vn("vote_distance"),value:HQe}),Fo.extend({key:Vn("skip_rate"),value:YQe}),Fo.extend({key:Vn("turbine_slot"),value:QQe}),Fo.extend({key:Vn("repair_slot"),value:wQe}),Fo.extend({key:Vn("catch_up_history"),value:xQe})]),zQe=ir({epoch:ze(),start_time_nanos:Mr().nullable(),end_time_nanos:Mr().nullable(),start_slot:ze(),end_slot:ze(),excluded_stake_lamports:Un.bigint(),staked_pubkeys:Mr().array(),staked_lamports:Un.bigint().array(),leader_slots:ze().array()}),WQe=Tg("key",[zW.extend({key:Vn("new"),value:zQe})]),qQe=ir({num_push_messages_rx_success:ze(),num_push_messages_rx_failure:ze(),num_push_entries_rx_success:ze(),num_push_entries_rx_failure:ze(),num_push_entries_rx_duplicate:ze(),num_pull_response_messages_rx_success:ze(),num_pull_response_messages_rx_failure:ze(),num_pull_response_entries_rx_success:ze(),num_pull_response_entries_rx_failure:ze(),num_pull_response_entries_rx_duplicate:ze(),total_peers:ze(),total_stake:Un.bigint(),connected_stake:Un.bigint(),connected_staked_peers:ze(),connected_unstaked_peers:ze()}),eq=ir({total_throughput:ze(),peer_names:Mr().array(),peer_identities:Mr().array(),peer_throughput:ze().array()}),XQe=ir({capacity:ze(),expired_count:ze(),evicted_count:ze(),count:ze().array(),count_tx:ze().array(),bytes_tx:ze().array()}),VQe=ir({num_bytes_rx:ze().array(),num_bytes_tx:ze().array(),num_messages_rx:ze().array(),num_messages_tx:ze().array()}),KQe=ir({health:qQe,ingress:eq,egress:eq,storage:XQe,messages:VQe}),ZQe=ze(),tq=dQe([Mr(),ze()]),nq=IS(Mr(),IS(Mr(),tq)).nullable(),$Qe=ir({changes:Dp(ir({row_index:ze(),column_name:Mr(),new_value:tq}))}),ewe=Tg("key",[Sp.extend({key:Vn("network_stats"),value:KQe}),Sp.extend({key:Vn("peers_size_update"),value:ZQe}),Sp.extend({key:Vn("query_scroll"),value:nq}),Sp.extend({key:Vn("query_sort"),value:nq}),Sp.extend({key:Vn("view_update"),value:$Qe})]),twe=ir({wallclock:ze(),shred_version:ze(),version:Mr().nullable(),feature_set:ze().nullable(),sockets:IS(Mr(),Mr())}),nwe=ir({vote_account:Mr(),activated_stake:Un.bigint(),last_vote:h0(ze()),root_slot:h0(ze()),epoch_credits:ze(),commission:ze(),delinquent:kp()}),rwe=ir({name:h0(Mr()),details:h0(Mr()),website:h0(Mr()),icon_url:h0(Mr()),keybase_username:h0(Mr())}),rq=ir({identity_pubkey:Mr(),gossip:h0(twe),vote:Dp(nwe),info:h0(rwe)}),owe=ir({identity_pubkey:Mr()}),iwe=ir({add:Dp(rq).optional(),update:Dp(rq).optional(),remove:Dp(owe).optional()}),Awe=Tg("key",[WW.extend({key:Vn("update"),value:iwe})]),swe=ir({timestamp_nanos:Mr(),tile_timers:ze().array()}),awe=ir({timestamp_nanos:Un.bigint(),regular:ze(),votes:ze(),conflicting:ze(),bundles:ze()}),lwe=ir({account:Mr(),cost:ze()}),cwe=ir({used_total_block_cost:ze(),used_total_vote_cost:ze(),used_account_write_costs:lwe.array(),used_total_bytes:ze(),used_total_microblocks:ze(),max_total_block_cost:ze(),max_total_vote_cost:ze(),max_account_write_cost:ze(),max_total_bytes:ze(),max_total_microblocks:ze()}),uwe=ir({slot_schedule_counts:ze().array(),end_slot_schedule_counts:ze().array(),pending_smallest_cost:ze().nullable(),pending_smallest_bytes:ze().nullable(),pending_vote_smallest_cost:ze().nullable(),pending_vote_smallest_bytes:ze().nullable()}),oq=ir({publish:PQe,waterfall:KW.nullable().optional(),tile_primary_metric:ZW.nullable().optional(),tile_timers:swe.array().nullable().optional(),scheduler_counts:awe.array().nullable().optional(),transactions:jQe.nullable().optional(),limits:cwe.nullable().optional(),scheduler_stats:uwe.nullable().optional()}),dwe=ze().array(),fwe=ze().array(),gwe=ir({slots_largest_tips:ze().array(),vals_largest_tips:Un.bigint().array(),slots_smallest_tips:ze().array(),vals_smallest_tips:Un.bigint().array(),slots_largest_fees:ze().array(),vals_largest_fees:Un.bigint().array(),slots_smallest_fees:ze().array(),vals_smallest_fees:Un.bigint().array(),slots_largest_rewards:ze().array(),vals_largest_rewards:Un.bigint().array(),slots_smallest_rewards:ze().array(),vals_smallest_rewards:Un.bigint().array(),slots_largest_duration:ze().array(),vals_largest_duration:Un.bigint().array(),slots_smallest_duration:ze().array(),vals_smallest_duration:Un.bigint().array(),slots_largest_compute_units:ze().array(),vals_largest_compute_units:Un.bigint().array(),slots_smallest_compute_units:ze().array(),vals_smallest_compute_units:Un.bigint().array(),slots_largest_skipped:ze().array(),vals_largest_skipped:Un.bigint().array(),slots_smallest_skipped:ze().array(),vals_smallest_skipped:Un.bigint().array()});var wa=(e=>(e[e.shred_repair_request=0]="shred_repair_request",e[e.shred_received_turbine=1]="shred_received_turbine",e[e.shred_received_repair=2]="shred_received_repair",e[e.shred_replayed=3]="shred_replayed",e[e.slot_complete=4]="slot_complete",e[e.shred_replay_start=5]="shred_replay_start",e))(wa||{});let iq,Aq,sq,aq,lq,vo,$b,ES,Ki,BS,eQ,tQ,eC,Rp,yS,Tp,nQ,rQ,cq,m0,oQ,tC,iQ,AQ,vS,uq,bS,Kd,dq;iq=ir({reference_slot:ze(),reference_ts:Un.bigint(),slot_delta:ze().array(),shred_idx:ze().nullable().array(),event:gQe(wa).array(),event_ts_delta:Un.number().array()}),Aq=Tg("key",[Mg.extend({key:Vn("skipped_history"),value:dwe}),Mg.extend({key:Vn("skipped_history_cluster"),value:fwe}),Mg.extend({key:Vn("update"),value:oq}),Mg.extend({key:Vn("query"),value:oq.nullable()}),Mg.extend({key:Vn("query_rankings"),value:gwe}),Mg.extend({key:Vn("live_shreds"),value:iq})]),sq=iu(["disconnected","connecting","connected"]),aq=ir({name:Mr(),url:Mr(),ip:Mr().optional(),status:sq}),lq=Tg("key",[qW.extend({key:Vn("update"),value:aq})]),vo=4,$b=5,ES=3,Ki=4,ga=1e9,BS=1e6,eQ=6e7,tQ={0:"Success",1:"Account In Use",2:"Account Loaded Twice",3:"Account Not Found",4:"Program Account Not Found",5:"Insufficient Funds For Fee",6:"Invalid Account For Fee",7:"Already Processed",8:"Blockhash Not Found",9:"Instruction Error",10:"Call Chain Too Deep",11:"Missing Signature For Fee",12:"Invalid Account Index",13:"Signature Failure",14:"Invalid Program For Execution",15:"Sanitize Failure",16:"Cluster Maintenance",17:"Account Borrow Outstanding",18:"Would Exceed Max Block Cost Limit",19:"Unsupported Version",20:"Invalid Writable Account",21:"Would Exceed Max Account Cost Limit",22:"Would Exceed Account Data Block Limit",23:"Too Many Account Locks",24:"Address Lookup Table Not Found",25:"Invalid Address Lookup Table Owner",26:"Invalid Address Lookup Table Data",27:"Invalid Address Lookup Table Index",28:"Invalid Rent Paying Account",29:"Would Exceed Max Vote Cost Limit",30:"Would Exceed Account Data Total Limit",31:"Duplicate Instruction",32:"Insufficient Funds For Rent",33:"Max Loaded Accounts Data Size Exceeded",34:"Invalid Loaded Accounts Data Size Limit",35:"Resanitization Needed",36:"Program Execution Temporarily Restricted",37:"Unbalanced Transaction",38:"Program Cache Hit Max Limit",39:"Commit Cancelled",40:"Bundle Peer",50:"Blockhash Nonce Already Advanced",51:"Blockhash Advanced Failed",52:"Blockhash Wrong Nonce"},eC="\xA0",Rp=5,yS=29,Tp=48,nQ=13,rQ=21,cq=28,m0=5,oQ=21,tC=8,iQ=tC,AQ=122,vS=oQ+tC,uq=vS+AQ+m0,bS="(max-width: 768px)",Kd=110,dq="1920px";var sQ={exports:{}};sQ.exports,function(e,t){(function(){var n,r="4.17.21",i=200,A="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",l="Expected a function",c="Invalid `variable` option passed into `_.template`",f="__lodash_hash_undefined__",h=500,I="__lodash_placeholder__",B=1,v=2,D=4,S=1,R=2,F=1,N=2,M=4,P=8,G=16,J=32,W=64,q=128,$=256,oe=512,K=30,se="...",Ee=800,ie=16,Ae=1,Be=2,ae=3,Ce=1/0,de=9007199254740991,ge=17976931348623157e292,be=NaN,Te=4294967295,me=Te-1,Ye=Te>>>1,rt=[["ary",q],["bind",F],["bindKey",N],["curry",P],["curryRight",G],["flip",oe],["partial",J],["partialRight",W],["rearg",$]],We="[object Arguments]",De="[object Array]",_e="[object AsyncFunction]",xe="[object Boolean]",ve="[object Date]",Ue="[object DOMException]",At="[object Error]",He="[object Function]",gt="[object GeneratorFunction]",ut="[object Map]",bt="[object Number]",zt="[object Null]",ce="[object Object]",mn="[object Promise]",Yn="[object Proxy]",yn="[object RegExp]",fe="[object Set]",dn="[object String]",_t="[object Symbol]",Pt="[object Undefined]",Ve="[object WeakMap]",Nt="[object WeakSet]",tn="[object ArrayBuffer]",en="[object DataView]",no="[object Float32Array]",gr="[object Float64Array]",ho="[object Int8Array]",ro="[object Int16Array]",zr="[object Int32Array]",Uo="[object Uint8Array]",Qi="[object Uint8ClampedArray]",jA="[object Uint16Array]",LA="[object Uint32Array]",ti=/\b__p \+= '';/g,Ti=/\b(__p \+=) '' \+/g,Ts=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Xo=/&(?:amp|lt|gt|quot|#39);/g,mA=/[&<>"']/g,Ms=RegExp(Xo.source),ls=RegExp(mA.source),nt=/<%-([\s\S]+?)%>/g,ft=/<%([\s\S]+?)%>/g,kt=/<%=([\s\S]+?)%>/g,Zt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,bn=/^\w*$/,Qe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Oe=/[\\^$.*+?()[\]{}|]/g,ot=RegExp(Oe.source),et=/^\s+/,Ct=/\s/,ht=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Ot=/\{\n\/\* \[wrapped with (.+)\] \*/,Qn=/,? & /,dt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Wt=/[()=,{}\[\]\/\s]/,sn=/\\(\\)?/g,In=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,br=/\w*$/,po=/^[-+]0x[0-9a-f]+$/i,mr=/^0b[01]+$/i,Wr=/^\[object .+?Constructor\]$/,Rn=/^0o[0-7]+$/i,y=/^(?:0|[1-9]\d*)$/,Ft=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,o=/($^)/,m=/['\n\r\u2028\u2029\\]/g,Kt="\\ud800-\\udfff",On="\\u0300-\\u036f",PA="\\ufe20-\\ufe2f",jo="\\u20d0-\\u20ff",Tn=On+PA+jo,Aa="\\u2700-\\u27bf",jn="a-z\\xdf-\\xf6\\xf8-\\xff",wi="\\xac\\xb1\\xd7\\xf7",Nu="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Fu="\\u2000-\\u206f",_l=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",H="A-Z\\xc0-\\xd6\\xd8-\\xde",ni="\\ufe0e\\ufe0f",Yt=wi+Nu+Fu+_l,Na="['\u2019]",Mn="["+Kt+"]",rA="["+Yt+"]",sa="["+Tn+"]",UA="\\d+",xf="["+Aa+"]",xc="["+jn+"]",Jn="[^"+Kt+Yt+UA+Aa+jn+H+"]",_c="\\ud83c[\\udffb-\\udfff]",Ou="(?:"+sa+"|"+_c+")",kc="[^"+Kt+"]",ee="(?:\\ud83c[\\udde6-\\uddff]){2}",Ie="[\\ud800-\\udbff][\\udc00-\\udfff]",Re="["+H+"]",it="\\u200d",vt="(?:"+xc+"|"+Jn+")",nn="(?:"+Re+"|"+Jn+")",ur="(?:"+Na+"(?:d|ll|m|re|s|t|ve))?",Hr="(?:"+Na+"(?:D|LL|M|RE|S|T|VE))?",Mi=Ou+"?",Ni="["+ni+"]?",di="(?:"+it+"(?:"+[kc,ee,Ie].join("|")+")"+Ni+Mi+")*",pB="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Ns="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",A2=Ni+Mi+di,H0="(?:"+[xf,ee,Ie].join("|")+")"+A2,Y0="(?:"+[kc+sa+"?",sa,ee,Ie,Mn].join("|")+")",_f=RegExp(Na,"g"),kf=RegExp(sa,"g"),oo=RegExp(_c+"(?="+_c+")|"+Y0+A2,"g"),ju=RegExp([Re+"?"+xc+"+"+ur+"(?="+[rA,Re,"$"].join("|")+")",nn+"+"+Hr+"(?="+[rA,Re+vt,"$"].join("|")+")",Re+"?"+vt+"+"+ur,Re+"+"+Hr,Ns,pB,UA,H0].join("|"),"g"),Df=RegExp("["+it+Kt+Tn+ni+"]"),Am=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Fa=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],cs=-1,ko={};ko[no]=ko[gr]=ko[ho]=ko[ro]=ko[zr]=ko[Uo]=ko[Qi]=ko[jA]=ko[LA]=!0,ko[We]=ko[De]=ko[tn]=ko[xe]=ko[en]=ko[ve]=ko[At]=ko[He]=ko[ut]=ko[bt]=ko[ce]=ko[yn]=ko[fe]=ko[dn]=ko[Ve]=!1;var mo={};mo[We]=mo[De]=mo[tn]=mo[en]=mo[xe]=mo[ve]=mo[no]=mo[gr]=mo[ho]=mo[ro]=mo[zr]=mo[ut]=mo[bt]=mo[ce]=mo[yn]=mo[fe]=mo[dn]=mo[_t]=mo[Uo]=mo[Qi]=mo[jA]=mo[LA]=!0,mo[At]=mo[He]=mo[Ve]=!1;var Lo={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Do={"&":"&","<":"<",">":">",'"':""","'":"'"},oA={"&":"&","<":"<",">":">",""":'"',"'":"'"},So={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ri=parseFloat,lo=parseInt,Io=typeof kA=="object"&&kA&&kA.Object===Object&&kA,Dc=typeof self=="object"&&self&&self.Object===Object&&self,Go=Io||Dc||Function("return this")(),Sf=t&&!t.nodeType&&t,iA=Sf&&!0&&e&&!e.nodeType&&e,IA=iA&&iA.exports===Sf,Fs=IA&&Io.process,GA=function(){try{var Pe=iA&&iA.require&&iA.require("util").types;return Pe||Fs&&Fs.binding&&Fs.binding("util")}catch{}}(),Rf=GA&&GA.isArrayBuffer,Tf=GA&&GA.isDate,aa=GA&&GA.isMap,la=GA&&GA.isRegExp,kl=GA&&GA.isSet,Dl=GA&&GA.isTypedArray;function Yr(Pe,lt,tt){switch(tt.length){case 0:return Pe.call(lt);case 1:return Pe.call(lt,tt[0]);case 2:return Pe.call(lt,tt[0],tt[1]);case 3:return Pe.call(lt,tt[0],tt[1],tt[2])}return Pe.apply(lt,tt)}function Os(Pe,lt,tt,Xt){for(var kn=-1,rr=Pe==null?0:Pe.length;++kn-1}function Ji(Pe,lt,tt){for(var Xt=-1,kn=Pe==null?0:Pe.length;++Xt-1;);return tt}function l2(Pe,lt){for(var tt=Pe.length;tt--&&ds(lt,Pe[tt],0)>-1;);return tt}function sm(Pe,lt){for(var tt=Pe.length,Xt=0;tt--;)Pe[tt]===lt&&++Xt;return Xt}var c2=Of(Lo),X=Of(Do);function te(Pe){return"\\"+So[Pe]}function re(Pe,lt){return Pe==null?n:Pe[lt]}function ye(Pe){return Df.test(Pe)}function Le(Pe){return Am.test(Pe)}function Ke(Pe){for(var lt,tt=[];!(lt=Pe.next()).done;)tt.push(lt.value);return tt}function ct(Pe){var lt=-1,tt=Array(Pe.size);return Pe.forEach(function(Xt,kn){tt[++lt]=[kn,Xt]}),tt}function Qt(Pe,lt){return function(tt){return Pe(lt(tt))}}function St(Pe,lt){for(var tt=-1,Xt=Pe.length,kn=0,rr=[];++tt-1}function E(C,w){var O=this.__data__,z=Cn(O,C);return z<0?(++this.size,O.push([C,w])):O[z][1]=w,this}s.prototype.clear=u,s.prototype.delete=a,s.prototype.get=d,s.prototype.has=g,s.prototype.set=E;function k(C){var w=-1,O=C==null?0:C.length;for(this.clear();++w=w?C:w)),C}function $r(C,w,O,z,V,he){var ke,je=w&B,Xe=w&v,pt=w&D;if(O&&(ke=V?O(C,z,V,he):O(C)),ke!==n)return ke;if(!ki(C))return C;var mt=hr(C);if(mt){if(ke=Uat(C),!je)return ca(C,ke)}else{var wt=gs(C),ln=wt==He||wt==gt;if(Yf(C))return N0e(C,je);if(wt==ce||wt==We||ln&&!V){if(ke=Xe||ln?{}:ede(C),!je)return Xe?Dat(C,Sr(ke,C)):kat(C,Br(ke,C))}else{if(!mo[wt])return V?C:{};ke=Gat(C,wt,je)}}he||(he=new Z);var xn=he.get(C);if(xn)return xn;he.set(C,ke),kde(C)?C.forEach(function(qn){ke.add($r(qn,w,O,qn,C,he))}):xde(C)&&C.forEach(function(qn,Pr){ke.set(Pr,$r(qn,w,O,Pr,C,he))});var Wn=pt?Xe?cj:lj:Xe?da:_A,xr=mt?n:Wn(C);return HA(xr||C,function(qn,Pr){xr&&(Pr=qn,qn=C[Pr]),un(ke,Pr,$r(qn,w,O,Pr,C,he))}),ke}function _i(C){var w=_A(C);return function(O){return sA(O,C,w)}}function sA(C,w,O){var z=O.length;if(C==null)return!z;for(C=rn(C);z--;){var V=O[z],he=w[V],ke=C[V];if(ke===n&&!(V in C)||!he(ke))return!1}return!0}function xA(C,w,O){if(typeof C!="function")throw new co(l);return RB(function(){C.apply(n,O)},w)}function YA(C,w,O,z){var V=-1,he=Sl,ke=!0,je=C.length,Xe=[],pt=w.length;if(!je)return Xe;O&&(w=Co(w,Fr(O))),z?(he=Ji,ke=!1):w.length>=i&&(he=ja,ke=!1,w=new j(w));e:for(;++VV?0:V+O),z=z===n||z>V?V:vr(z),z<0&&(z+=V),z=O>z?0:Sde(z);O0&&O(je)?w>1?Fn(je,w-1,O,z,V):Rl(V,je):z||(V[V.length]=je)}return V}var Lr=U0e(),oi=U0e(!0);function uo(C,w){return C&&Lr(C,w,_A)}function aA(C,w){return C&&oi(C,w,_A)}function Ua(C,w){return us(w,function(O){return sd(C[O])})}function Tc(C,w){w=Gf(w,C);for(var O=0,z=w.length;C!=null&&Ow}function rat(C,w){return C!=null&&Je.call(C,w)}function oat(C,w){return C!=null&&w in rn(C)}function iat(C,w,O){return C>=CA(w,O)&&C=120&&mt.length>=120)?new j(ke&&mt):n}mt=C[0];var wt=-1,ln=je[0];e:for(;++wt-1;)je!==C&&f2.call(je,Xe,1),f2.call(C,Xe,1);return C}function x0e(C,w){for(var O=C?w.length:0,z=O-1;O--;){var V=w[O];if(O==z||V!==he){var he=V;Ad(V)?f2.call(C,V,1):nj(C,V)}}return C}function $O(C,w){return C+h2(Z0()*(w-C+1))}function Iat(C,w,O,z){for(var V=-1,he=ji(g2((w-C)/(O||1)),0),ke=tt(he);he--;)ke[z?he:++V]=C,C+=O;return ke}function ej(C,w){var O="";if(!C||w<1||w>de)return O;do w%2&&(O+=C),w=h2(w/2),w&&(C+=C);while(w);return O}function Tr(C,w){return mj(rde(C,w,fa),C+"")}function Cat(C){return st(mm(C))}function Eat(C,w){var O=mm(C);return uk(O,io(w,0,O.length))}function kB(C,w,O,z){if(!ki(C))return C;w=Gf(w,C);for(var V=-1,he=w.length,ke=he-1,je=C;je!=null&&++VV?0:V+w),O=O>V?V:O,O<0&&(O+=V),V=w>O?0:O-w>>>0,w>>>=0;for(var he=tt(V);++z>>1,ke=C[he];ke!==null&&!Ha(ke)&&(O?ke<=w:ke=i){var pt=w?null:Mat(C);if(pt)return Bt(pt);ke=!1,V=ja,Xe=new j}else Xe=w?[]:je;e:for(;++z=z?C:Nl(C,w,O)}var M0e=wA||function(C){return Go.clearTimeout(C)};function N0e(C,w){if(w)return C.slice();var O=C.length,z=AA?AA(O):new C.constructor(O);return C.copy(z),z}function Aj(C){var w=new C.constructor(C.byteLength);return new d2(w).set(new d2(C)),w}function Qat(C,w){var O=w?Aj(C.buffer):C.buffer;return new C.constructor(O,C.byteOffset,C.byteLength)}function wat(C){var w=new C.constructor(C.source,br.exec(C));return w.lastIndex=C.lastIndex,w}function xat(C){return Yu?rn(Yu.call(C)):{}}function F0e(C,w){var O=w?Aj(C.buffer):C.buffer;return new C.constructor(O,C.byteOffset,C.length)}function O0e(C,w){if(C!==w){var O=C!==n,z=C===null,V=C===C,he=Ha(C),ke=w!==n,je=w===null,Xe=w===w,pt=Ha(w);if(!je&&!pt&&!he&&C>w||he&&ke&&Xe&&!je&&!pt||z&&ke&&Xe||!O&&Xe||!V)return 1;if(!z&&!he&&!pt&&C=je)return Xe;var pt=O[z];return Xe*(pt=="desc"?-1:1)}}return C.index-w.index}function j0e(C,w,O,z){for(var V=-1,he=C.length,ke=O.length,je=-1,Xe=w.length,pt=ji(he-ke,0),mt=tt(Xe+pt),wt=!z;++je1?O[V-1]:n,ke=V>2?O[2]:n;for(he=C.length>3&&typeof he=="function"?(V--,he):n,ke&&Us(O[0],O[1],ke)&&(he=V<3?n:he,V=1),w=rn(w);++z-1?V[he?w[ke]:ke]:n}}function Y0e(C){return id(function(w){var O=w.length,z=O,V=Ls.prototype.thru;for(C&&w.reverse();z--;){var he=w[z];if(typeof he!="function")throw new co(l);if(V&&!ke&&lk(he)=="wrapper")var ke=new Ls([],!0)}for(z=ke?z:O;++z1&&Xr.reverse(),mt&&Xeje))return!1;var pt=he.get(C),mt=he.get(w);if(pt&&mt)return pt==w&&mt==C;var wt=-1,ln=!0,xn=O&R?new j:n;for(he.set(C,w),he.set(w,C);++wt1?"& ":"")+w[z],w=w.join(O>2?", ":" "),C.replace(ht,`{ -/* [wrapped with `+w+`] */ -`)}function Yat(C){return hr(C)||C2(C)||!!(EB&&C&&C[EB])}function Ad(C,w){var O=typeof C;return w=w??de,!!w&&(O=="number"||O!="symbol"&&y.test(C))&&C>-1&&C%1==0&&C0){if(++w>=Ee)return arguments[0]}else w=0;return C.apply(n,arguments)}}function uk(C,w){var O=-1,z=C.length,V=z-1;for(w=w===n?z:w;++O1?C[w-1]:n;return O=typeof O=="function"?(C.pop(),O):n,hde(C,O)});function pde(C){var w=le(C);return w.__chain__=!0,w}function tct(C,w){return w(C),C}function dk(C,w){return w(C)}var nct=id(function(C){var w=C.length,O=w?C[0]:0,z=this.__wrapped__,V=function(he){return To(he,C)};return w>1||this.__actions__.length||!(z instanceof wr)||!Ad(O)?this.thru(V):(z=z.slice(O,+O+(w?1:0)),z.__actions__.push({func:dk,args:[V],thisArg:n}),new Ls(z,this.__chain__).thru(function(he){return w&&!he.length&&he.push(n),he}))});function rct(){return pde(this)}function oct(){return new Ls(this.value(),this.__chain__)}function ict(){this.__values__===n&&(this.__values__=Dde(this.value()));var C=this.__index__>=this.__values__.length,w=C?n:this.__values__[this.__index__++];return{done:C,value:w}}function Act(){return this}function sct(C){for(var w,O=this;O instanceof Pf;){var z=lde(O);z.__index__=0,z.__values__=n,w?V.__wrapped__=z:w=z;var V=z;O=O.__wrapped__}return V.__wrapped__=C,w}function act(){var C=this.__wrapped__;if(C instanceof wr){var w=C;return this.__actions__.length&&(w=new wr(this)),w=w.reverse(),w.__actions__.push({func:dk,args:[Ij],thisArg:n}),new Ls(w,this.__chain__)}return this.thru(Ij)}function lct(){return R0e(this.__wrapped__,this.__actions__)}var cct=ok(function(C,w,O){Je.call(C,O)?++C[O]:yr(C,O,1)});function uct(C,w,O){var z=hr(C)?Mf:rd;return O&&Us(C,w,O)&&(w=n),z(C,zn(w,3))}function dct(C,w){var O=hr(C)?us:Rr;return O(C,zn(w,3))}var fct=H0e(cde),gct=H0e(ude);function hct(C,w){return Fn(fk(C,w),1)}function pct(C,w){return Fn(fk(C,w),Ce)}function mct(C,w,O){return O=O===n?1:vr(O),Fn(fk(C,w),O)}function mde(C,w){var O=hr(C)?HA:JA;return O(C,zn(w,3))}function Ide(C,w){var O=hr(C)?s2:zu;return O(C,zn(w,3))}var Ict=ok(function(C,w,O){Je.call(C,O)?C[O].push(w):yr(C,O,[w])});function Cct(C,w,O,z){C=ua(C)?C:mm(C),O=O&&!z?vr(O):0;var V=C.length;return O<0&&(O=ji(V+O,0)),Ik(C)?O<=V&&C.indexOf(w,O)>-1:!!V&&ds(C,w,O)>-1}var Ect=Tr(function(C,w,O){var z=-1,V=typeof w=="function",he=ua(C)?tt(C.length):[];return JA(C,function(ke){he[++z]=V?Yr(w,ke,O):xB(ke,w,O)}),he}),Bct=ok(function(C,w,O){yr(C,O,w)});function fk(C,w){var O=hr(C)?Co:B0e;return O(C,zn(w,3))}function yct(C,w,O,z){return C==null?[]:(hr(w)||(w=w==null?[]:[w]),O=z?n:O,hr(O)||(O=O==null?[]:[O]),Q0e(C,w,O))}var vct=ok(function(C,w,O){C[O?0:1].push(w)},function(){return[[],[]]});function bct(C,w,O){var z=hr(C)?QA:Fi,V=arguments.length<3;return z(C,zn(w,4),O,V,JA)}function Qct(C,w,O){var z=hr(C)?Oa:Fi,V=arguments.length<3;return z(C,zn(w,4),O,V,zu)}function wct(C,w){var O=hr(C)?us:Rr;return O(C,pk(zn(w,3)))}function xct(C){var w=hr(C)?st:Cat;return w(C)}function _ct(C,w,O){(O?Us(C,w,O):w===n)?w=1:w=vr(w);var z=hr(C)?Rt:Eat;return z(C,w)}function kct(C){var w=hr(C)?Tt:yat;return w(C)}function Dct(C){if(C==null)return 0;if(ua(C))return Ik(C)?Qr(C):C.length;var w=gs(C);return w==ut||w==fe?C.size:VO(C).length}function Sct(C,w,O){var z=hr(C)?Sc:vat;return O&&Us(C,w,O)&&(w=n),z(C,zn(w,3))}var Rct=Tr(function(C,w){if(C==null)return[];var O=w.length;return O>1&&Us(C,w[0],w[1])?w=[]:O>2&&Us(w[0],w[1],w[2])&&(w=[w[0]]),Q0e(C,Fn(w,1),[])}),gk=G4||function(){return Go.Date.now()};function Tct(C,w){if(typeof w!="function")throw new co(l);return C=vr(C),function(){if(--C<1)return w.apply(this,arguments)}}function Cde(C,w,O){return w=O?n:w,w=C&&w==null?C.length:w,od(C,q,n,n,n,n,w)}function Ede(C,w){var O;if(typeof w!="function")throw new co(l);return C=vr(C),function(){return--C>0&&(O=w.apply(this,arguments)),C<=1&&(w=n),O}}var Ej=Tr(function(C,w,O){var z=F;if(O.length){var V=St(O,hm(Ej));z|=J}return od(C,z,w,O,V)}),Bde=Tr(function(C,w,O){var z=F|N;if(O.length){var V=St(O,hm(Bde));z|=J}return od(w,z,C,O,V)});function yde(C,w,O){w=O?n:w;var z=od(C,P,n,n,n,n,n,w);return z.placeholder=yde.placeholder,z}function vde(C,w,O){w=O?n:w;var z=od(C,G,n,n,n,n,n,w);return z.placeholder=vde.placeholder,z}function bde(C,w,O){var z,V,he,ke,je,Xe,pt=0,mt=!1,wt=!1,ln=!0;if(typeof C!="function")throw new co(l);w=Ol(w)||0,ki(O)&&(mt=!!O.leading,wt="maxWait"in O,he=wt?ji(Ol(O.maxWait)||0,w):he,ln="trailing"in O?!!O.trailing:ln);function xn(qi){var Nc=z,ld=V;return z=V=n,pt=qi,ke=C.apply(ld,Nc),ke}function Wn(qi){return pt=qi,je=RB(Pr,w),mt?xn(qi):ke}function xr(qi){var Nc=qi-Xe,ld=qi-pt,Hde=w-Nc;return wt?CA(Hde,he-ld):Hde}function qn(qi){var Nc=qi-Xe,ld=qi-pt;return Xe===n||Nc>=w||Nc<0||wt&&ld>=he}function Pr(){var qi=gk();if(qn(qi))return Xr(qi);je=RB(Pr,xr(qi))}function Xr(qi){return je=n,ln&&z?xn(qi):(z=V=n,ke)}function Ya(){je!==n&&M0e(je),pt=0,z=Xe=V=je=n}function Gs(){return je===n?ke:Xr(gk())}function Ja(){var qi=gk(),Nc=qn(qi);if(z=arguments,V=this,Xe=qi,Nc){if(je===n)return Wn(Xe);if(wt)return M0e(je),je=RB(Pr,w),xn(Xe)}return je===n&&(je=RB(Pr,w)),ke}return Ja.cancel=Ya,Ja.flush=Gs,Ja}var Mct=Tr(function(C,w){return xA(C,1,w)}),Nct=Tr(function(C,w,O){return xA(C,Ol(w)||0,O)});function Fct(C){return od(C,oe)}function hk(C,w){if(typeof C!="function"||w!=null&&typeof w!="function")throw new co(l);var O=function(){var z=arguments,V=w?w.apply(this,z):z[0],he=O.cache;if(he.has(V))return he.get(V);var ke=C.apply(this,z);return O.cache=he.set(V,ke)||he,ke};return O.cache=new(hk.Cache||k),O}hk.Cache=k;function pk(C){if(typeof C!="function")throw new co(l);return function(){var w=arguments;switch(w.length){case 0:return!C.call(this);case 1:return!C.call(this,w[0]);case 2:return!C.call(this,w[0],w[1]);case 3:return!C.call(this,w[0],w[1],w[2])}return!C.apply(this,w)}}function Oct(C){return Ede(2,C)}var jct=bat(function(C,w){w=w.length==1&&hr(w[0])?Co(w[0],Fr(zn())):Co(Fn(w,1),Fr(zn()));var O=w.length;return Tr(function(z){for(var V=-1,he=CA(z.length,O);++V=w}),C2=I0e(function(){return arguments}())?I0e:function(C){return Li(C)&&Je.call(C,"callee")&&!CB.call(C,"callee")},hr=tt.isArray,$ct=Rf?Fr(Rf):sat;function ua(C){return C!=null&&mk(C.length)&&!sd(C)}function Wi(C){return Li(C)&&ua(C)}function eut(C){return C===!0||C===!1||Li(C)&&Ps(C)==xe}var Yf=um||Rj,tut=Tf?Fr(Tf):aat;function nut(C){return Li(C)&&C.nodeType===1&&!TB(C)}function rut(C){if(C==null)return!0;if(ua(C)&&(hr(C)||typeof C=="string"||typeof C.splice=="function"||Yf(C)||pm(C)||C2(C)))return!C.length;var w=gs(C);if(w==ut||w==fe)return!C.size;if(SB(C))return!VO(C).length;for(var O in C)if(Je.call(C,O))return!1;return!0}function out(C,w){return _B(C,w)}function iut(C,w,O){O=typeof O=="function"?O:n;var z=O?O(C,w):n;return z===n?_B(C,w,n,O):!!z}function yj(C){if(!Li(C))return!1;var w=Ps(C);return w==At||w==Ue||typeof C.message=="string"&&typeof C.name=="string"&&!TB(C)}function Aut(C){return typeof C=="number"&&BB(C)}function sd(C){if(!ki(C))return!1;var w=Ps(C);return w==He||w==gt||w==_e||w==Yn}function wde(C){return typeof C=="number"&&C==vr(C)}function mk(C){return typeof C=="number"&&C>-1&&C%1==0&&C<=de}function ki(C){var w=typeof C;return C!=null&&(w=="object"||w=="function")}function Li(C){return C!=null&&typeof C=="object"}var xde=aa?Fr(aa):cat;function sut(C,w){return C===w||XO(C,w,dj(w))}function aut(C,w,O){return O=typeof O=="function"?O:n,XO(C,w,dj(w),O)}function lut(C){return _de(C)&&C!=+C}function cut(C){if(Wat(C))throw new kn(A);return C0e(C)}function uut(C){return C===null}function dut(C){return C==null}function _de(C){return typeof C=="number"||Li(C)&&Ps(C)==bt}function TB(C){if(!Li(C)||Ps(C)!=ce)return!1;var w=lm(C);if(w===null)return!0;var O=Je.call(w,"constructor")&&w.constructor;return typeof O=="function"&&O instanceof O&&La.call(O)==zO}var vj=la?Fr(la):uat;function fut(C){return wde(C)&&C>=-de&&C<=de}var kde=kl?Fr(kl):dat;function Ik(C){return typeof C=="string"||!hr(C)&&Li(C)&&Ps(C)==dn}function Ha(C){return typeof C=="symbol"||Li(C)&&Ps(C)==_t}var pm=Dl?Fr(Dl):fat;function gut(C){return C===n}function hut(C){return Li(C)&&gs(C)==Ve}function put(C){return Li(C)&&Ps(C)==Nt}var mut=ak(KO),Iut=ak(function(C,w){return C<=w});function Dde(C){if(!C)return[];if(ua(C))return Ik(C)?tr(C):ca(C);if(K0&&C[K0])return Ke(C[K0]());var w=gs(C),O=w==ut?ct:w==fe?Bt:mm;return O(C)}function ad(C){if(!C)return C===0?C:0;if(C=Ol(C),C===Ce||C===-Ce){var w=C<0?-1:1;return w*ge}return C===C?C:0}function vr(C){var w=ad(C),O=w%1;return w===w?O?w-O:w:0}function Sde(C){return C?io(vr(C),0,Te):0}function Ol(C){if(typeof C=="number")return C;if(Ha(C))return be;if(ki(C)){var w=typeof C.valueOf=="function"?C.valueOf():C;C=ki(w)?w+"":w}if(typeof C!="string")return C===0?C:+C;C=Uu(C);var O=mr.test(C);return O||Rn.test(C)?lo(C.slice(2),O?2:8):po.test(C)?be:+C}function Rde(C){return Wu(C,da(C))}function Cut(C){return C?io(vr(C),-de,de):C===0?C:0}function Mo(C){return C==null?"":Ga(C)}var Eut=fm(function(C,w){if(SB(w)||ua(w)){Wu(w,_A(w),C);return}for(var O in w)Je.call(w,O)&&un(C,O,w[O])}),Tde=fm(function(C,w){Wu(w,da(w),C)}),Ck=fm(function(C,w,O,z){Wu(w,da(w),C,z)}),But=fm(function(C,w,O,z){Wu(w,_A(w),C,z)}),yut=id(To);function vut(C,w){var O=nd(C);return w==null?O:Br(O,w)}var but=Tr(function(C,w){C=rn(C);var O=-1,z=w.length,V=z>2?w[2]:n;for(V&&Us(w[0],w[1],V)&&(z=1);++O1),he}),Wu(C,cj(C),O),z&&(O=$r(O,B|v|D,Nat));for(var V=w.length;V--;)nj(O,w[V]);return O});function Gut(C,w){return Nde(C,pk(zn(w)))}var Hut=id(function(C,w){return C==null?{}:pat(C,w)});function Nde(C,w){if(C==null)return{};var O=Co(cj(C),function(z){return[z]});return w=zn(w),w0e(C,O,function(z,V){return w(z,V[0])})}function Yut(C,w,O){w=Gf(w,C);var z=-1,V=w.length;for(V||(V=1,C=n);++zw){var z=C;C=w,w=z}if(O||C%1||w%1){var V=Z0();return CA(C+V*(w-C+ri("1e-"+((V+"").length-1))),w)}return $O(C,w)}var t0t=gm(function(C,w,O){return w=w.toLowerCase(),C+(O?jde(w):w)});function jde(C){return wj(Mo(C).toLowerCase())}function Lde(C){return C=Mo(C),C&&C.replace(Ft,c2).replace(kf,"")}function n0t(C,w,O){C=Mo(C),w=Ga(w);var z=C.length;O=O===n?z:io(vr(O),0,z);var V=O;return O-=w.length,O>=0&&C.slice(O,V)==w}function r0t(C){return C=Mo(C),C&&ls.test(C)?C.replace(mA,X):C}function o0t(C){return C=Mo(C),C&&ot.test(C)?C.replace(Oe,"\\$&"):C}var i0t=gm(function(C,w,O){return C+(O?"-":"")+w.toLowerCase()}),A0t=gm(function(C,w,O){return C+(O?" ":"")+w.toLowerCase()}),s0t=G0e("toLowerCase");function a0t(C,w,O){C=Mo(C),w=vr(w);var z=w?Qr(C):0;if(!w||z>=w)return C;var V=(w-z)/2;return sk(h2(V),O)+C+sk(g2(V),O)}function l0t(C,w,O){C=Mo(C),w=vr(w);var z=w?Qr(C):0;return w&&z>>0,O?(C=Mo(C),C&&(typeof w=="string"||w!=null&&!vj(w))&&(w=Ga(w),!w&&ye(C))?Hf(tr(C),0,O):C.split(w,O)):[]}var p0t=gm(function(C,w,O){return C+(O?" ":"")+wj(w)});function m0t(C,w,O){return C=Mo(C),O=O==null?0:io(vr(O),0,C.length),w=Ga(w),C.slice(O,O+w.length)==w}function I0t(C,w,O){var z=le.templateSettings;O&&Us(C,w,O)&&(w=n),C=Mo(C),w=Ck({},w,z,X0e);var V=Ck({},w.imports,z.imports,X0e),he=_A(V),ke=Gu(V,he),je,Xe,pt=0,mt=w.interpolate||o,wt="__p += '",ln=Vo((w.escape||o).source+"|"+mt.source+"|"+(mt===kt?In:o).source+"|"+(w.evaluate||o).source+"|$","g"),xn="//# sourceURL="+(Je.call(w,"sourceURL")?(w.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++cs+"]")+` -`;C.replace(ln,function(qn,Pr,Xr,Ya,Gs,Ja){return Xr||(Xr=Ya),wt+=C.slice(pt,Ja).replace(m,te),Pr&&(je=!0,wt+=`' + -__e(`+Pr+`) + -'`),Gs&&(Xe=!0,wt+=`'; -`+Gs+`; -__p += '`),Xr&&(wt+=`' + -((__t = (`+Xr+`)) == null ? '' : __t) + -'`),pt=Ja+qn.length,qn}),wt+=`'; -`;var Wn=Je.call(w,"variable")&&w.variable;if(!Wn)wt=`with (obj) { -`+wt+` -} -`;else if(Wt.test(Wn))throw new kn(c);wt=(Xe?wt.replace(ti,""):wt).replace(Ti,"$1").replace(Ts,"$1;"),wt="function("+(Wn||"obj")+`) { -`+(Wn?"":`obj || (obj = {}); -`)+"var __t, __p = ''"+(je?", __e = _.escape":"")+(Xe?`, __j = Array.prototype.join; -function print() { __p += __j.call(arguments, '') } -`:`; -`)+wt+`return __p -}`;var xr=Ude(function(){return rr(he,xn+"return "+wt).apply(n,ke)});if(xr.source=wt,yj(xr))throw xr;return xr}function C0t(C){return Mo(C).toLowerCase()}function E0t(C){return Mo(C).toUpperCase()}function B0t(C,w,O){if(C=Mo(C),C&&(O||w===n))return Uu(C);if(!C||!(w=Ga(w)))return C;var z=tr(C),V=tr(w),he=Hu(z,V),ke=l2(z,V)+1;return Hf(z,he,ke).join("")}function y0t(C,w,O){if(C=Mo(C),C&&(O||w===n))return C.slice(0,dr(C)+1);if(!C||!(w=Ga(w)))return C;var z=tr(C),V=l2(z,tr(w))+1;return Hf(z,0,V).join("")}function v0t(C,w,O){if(C=Mo(C),C&&(O||w===n))return C.replace(et,"");if(!C||!(w=Ga(w)))return C;var z=tr(C),V=Hu(z,tr(w));return Hf(z,V).join("")}function b0t(C,w){var O=K,z=se;if(ki(w)){var V="separator"in w?w.separator:V;O="length"in w?vr(w.length):O,z="omission"in w?Ga(w.omission):z}C=Mo(C);var he=C.length;if(ye(C)){var ke=tr(C);he=ke.length}if(O>=he)return C;var je=O-Qr(z);if(je<1)return z;var Xe=ke?Hf(ke,0,je).join(""):C.slice(0,je);if(V===n)return Xe+z;if(ke&&(je+=Xe.length-je),vj(V)){if(C.slice(je).search(V)){var pt,mt=Xe;for(V.global||(V=Vo(V.source,Mo(br.exec(V))+"g")),V.lastIndex=0;pt=V.exec(mt);)var wt=pt.index;Xe=Xe.slice(0,wt===n?je:wt)}}else if(C.indexOf(Ga(V),je)!=je){var ln=Xe.lastIndexOf(V);ln>-1&&(Xe=Xe.slice(0,ln))}return Xe+z}function Q0t(C){return C=Mo(C),C&&Ms.test(C)?C.replace(Xo,Pn):C}var w0t=gm(function(C,w,O){return C+(O?" ":"")+w.toUpperCase()}),wj=G0e("toUpperCase");function Pde(C,w,O){return C=Mo(C),w=O?n:w,w===n?Le(C)?Dr(C):W0(C):C.match(w)||[]}var Ude=Tr(function(C,w){try{return Yr(C,n,w)}catch(O){return yj(O)?O:new kn(O)}}),x0t=id(function(C,w){return HA(w,function(O){O=qu(O),yr(C,O,Ej(C[O],C))}),C});function _0t(C){var w=C==null?0:C.length,O=zn();return C=w?Co(C,function(z){if(typeof z[1]!="function")throw new co(l);return[O(z[0]),z[1]]}):[],Tr(function(z){for(var V=-1;++Vde)return[];var O=Te,z=CA(C,Te);w=zn(w),C-=Te;for(var V=Pu(z,w);++O0||w<0)?new wr(O):(C<0?O=O.takeRight(-C):C&&(O=O.drop(C)),w!==n&&(w=vr(w),O=w<0?O.dropRight(-w):O.take(w-C)),O)},wr.prototype.takeRightWhile=function(C){return this.reverse().takeWhile(C).reverse()},wr.prototype.toArray=function(){return this.take(Te)},uo(wr.prototype,function(C,w){var O=/^(?:filter|find|map|reject)|While$/.test(w),z=/^(?:head|last)$/.test(w),V=le[z?"take"+(w=="last"?"Right":""):w],he=z||/^find/.test(w);V&&(le.prototype[w]=function(){var ke=this.__wrapped__,je=z?[1]:arguments,Xe=ke instanceof wr,pt=je[0],mt=Xe||hr(ke),wt=function(Pr){var Xr=V.apply(le,Rl([Pr],je));return z&&ln?Xr[0]:Xr};mt&&O&&typeof pt=="function"&&pt.length!=1&&(Xe=mt=!1);var ln=this.__chain__,xn=!!this.__actions__.length,Wn=he&&!ln,xr=Xe&&!xn;if(!he&&mt){ke=xr?ke:new wr(this);var qn=C.apply(ke,je);return qn.__actions__.push({func:dk,args:[wt],thisArg:n}),new Ls(qn,ln)}return Wn&&xr?C.apply(this,je):(qn=this.thru(wt),Wn?z?qn.value()[0]:qn.value():qn)})}),HA(["pop","push","shift","sort","splice","unshift"],function(C){var w=zi[C],O=/^(?:push|sort|unshift)$/.test(C)?"tap":"thru",z=/^(?:pop|shift)$/.test(C);le.prototype[C]=function(){var V=arguments;if(z&&!this.__chain__){var he=this.value();return w.apply(hr(he)?he:[],V)}return this[O](function(ke){return w.apply(hr(ke)?ke:[],V)})}}),uo(wr.prototype,function(C,w){var O=le[w];if(O){var z=O.name+"";Je.call(Nn,z)||(Nn[z]=[]),Nn[z].push({name:w,func:O})}}),Nn[ik(n,N).name]=[{name:"wrapper",func:n}],wr.prototype.clone=K4,wr.prototype.reverse=$t,wr.prototype.value=bB,le.prototype.at=nct,le.prototype.chain=rct,le.prototype.commit=oct,le.prototype.next=ict,le.prototype.plant=sct,le.prototype.reverse=act,le.prototype.toJSON=le.prototype.valueOf=le.prototype.value=lct,le.prototype.first=le.prototype.head,K0&&(le.prototype[K0]=Act),le},nr=Oi();iA?((iA.exports=nr)._=nr,Sf._=nr):Go._=nr}).call(kA)}(sQ,sQ.exports),sr=sQ.exports;class Ng extends Error{}class hwe extends Ng{constructor(t){super(`Invalid DateTime: ${t.toMessage()}`)}}class pwe extends Ng{constructor(t){super(`Invalid Interval: ${t.toMessage()}`)}}class mwe extends Ng{constructor(t){super(`Invalid Duration: ${t.toMessage()}`)}}class Mp extends Ng{}class fq extends Ng{constructor(t){super(`Invalid unit ${t}`)}}class ZA extends Ng{}class Zd extends Ng{constructor(){super("Zone is an abstract class")}}const on="numeric",rc="short",xa="long",aQ={year:on,month:on,day:on},gq={year:on,month:rc,day:on},Iwe={year:on,month:rc,day:on,weekday:rc},hq={year:on,month:xa,day:on},pq={year:on,month:xa,day:on,weekday:xa},mq={hour:on,minute:on},Iq={hour:on,minute:on,second:on},Cq={hour:on,minute:on,second:on,timeZoneName:rc},Eq={hour:on,minute:on,second:on,timeZoneName:xa},Bq={hour:on,minute:on,hourCycle:"h23"},yq={hour:on,minute:on,second:on,hourCycle:"h23"},vq={hour:on,minute:on,second:on,hourCycle:"h23",timeZoneName:rc},bq={hour:on,minute:on,second:on,hourCycle:"h23",timeZoneName:xa},Qq={year:on,month:on,day:on,hour:on,minute:on},wq={year:on,month:on,day:on,hour:on,minute:on,second:on},xq={year:on,month:rc,day:on,hour:on,minute:on},_q={year:on,month:rc,day:on,hour:on,minute:on,second:on},Cwe={year:on,month:rc,day:on,weekday:rc,hour:on,minute:on},kq={year:on,month:xa,day:on,hour:on,minute:on,timeZoneName:rc},Dq={year:on,month:xa,day:on,hour:on,minute:on,second:on,timeZoneName:rc},Sq={year:on,month:xa,day:on,weekday:xa,hour:on,minute:on,timeZoneName:xa},Rq={year:on,month:xa,day:on,weekday:xa,hour:on,minute:on,second:on,timeZoneName:xa};class nC{get type(){throw new Zd}get name(){throw new Zd}get ianaName(){return this.name}get isUniversal(){throw new Zd}offsetName(t,n){throw new Zd}formatOffset(t,n){throw new Zd}offset(t){throw new Zd}equals(t){throw new Zd}get isValid(){throw new Zd}}let QS=null;class lQ extends nC{static get instance(){return QS===null&&(QS=new lQ),QS}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(t,{format:n,locale:r}){return oX(t,n,r)}formatOffset(t,n){return iC(this.offset(t),n)}offset(t){return-new Date(t).getTimezoneOffset()}equals(t){return t.type==="system"}get isValid(){return!0}}const wS=new Map;function Ewe(e){let t=wS.get(e);return t===void 0&&(t=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),wS.set(e,t)),t}const Bwe={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function ywe(e,t){const n=e.format(t).replace(/\u200E/g,""),r=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n),[,i,A,l,c,f,h,I]=r;return[l,i,A,c,f,h,I]}function vwe(e,t){const n=e.formatToParts(t),r=[];for(let i=0;i=0?D:1e3+D,(B-v)/6e4}equals(t){return t.type==="iana"&&t.name===this.name}get isValid(){return this.valid}}let Tq={};function bwe(e,t={}){const n=JSON.stringify([e,t]);let r=Tq[n];return r||(r=new Intl.ListFormat(e,t),Tq[n]=r),r}const _S=new Map;function kS(e,t={}){const n=JSON.stringify([e,t]);let r=_S.get(n);return r===void 0&&(r=new Intl.DateTimeFormat(e,t),_S.set(n,r)),r}const DS=new Map;function Qwe(e,t={}){const n=JSON.stringify([e,t]);let r=DS.get(n);return r===void 0&&(r=new Intl.NumberFormat(e,t),DS.set(n,r)),r}const SS=new Map;function wwe(e,t={}){const{base:n,...r}=t,i=JSON.stringify([e,r]);let A=SS.get(i);return A===void 0&&(A=new Intl.RelativeTimeFormat(e,t),SS.set(i,A)),A}let cQ=null;function xwe(){return cQ||(cQ=new Intl.DateTimeFormat().resolvedOptions().locale,cQ)}const RS=new Map;function Mq(e){let t=RS.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(e).resolvedOptions(),RS.set(e,t)),t}const TS=new Map;function _we(e){let t=TS.get(e);if(!t){const n=new Intl.Locale(e);t="getWeekInfo"in n?n.getWeekInfo():n.weekInfo,"minimalDays"in t||(t={...Nq,...t}),TS.set(e,t)}return t}function kwe(e){const t=e.indexOf("-x-");t!==-1&&(e=e.substring(0,t));const n=e.indexOf("-u-");if(n===-1)return[e];{let r,i;try{r=kS(e).resolvedOptions(),i=e}catch{const c=e.substring(0,n);r=kS(c).resolvedOptions(),i=c}const{numberingSystem:A,calendar:l}=r;return[i,A,l]}}function Dwe(e,t,n){return(n||t)&&(e.includes("-u-")||(e+="-u"),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`)),e}function Swe(e){const t=[];for(let n=1;n<=12;n++){const r=Gn.utc(2009,n,1);t.push(e(r))}return t}function Rwe(e){const t=[];for(let n=1;n<=7;n++){const r=Gn.utc(2016,11,13+n);t.push(e(r))}return t}function uQ(e,t,n,r){const i=e.listingMode();return i==="error"?null:i==="en"?n(t):r(t)}function Twe(e){return e.numberingSystem&&e.numberingSystem!=="latn"?!1:e.numberingSystem==="latn"||!e.locale||e.locale.startsWith("en")||Mq(e.locale).numberingSystem==="latn"}class Mwe{constructor(t,n,r){this.padTo=r.padTo||0,this.floor=r.floor||!1;const{padTo:i,floor:A,...l}=r;if(!n||Object.keys(l).length>0){const c={useGrouping:!1,...r};r.padTo>0&&(c.minimumIntegerDigits=r.padTo),this.inf=Qwe(t,c)}}format(t){if(this.inf){const n=this.floor?Math.floor(t):t;return this.inf.format(n)}else{const n=this.floor?Math.floor(t):GS(t,3);return Zi(n,this.padTo)}}}class Nwe{constructor(t,n,r){this.opts=r,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=t;else if(t.zone.type==="fixed"){const l=-1*(t.offset/60),c=l>=0?`Etc/GMT+${l}`:`Etc/GMT${l}`;t.offset!==0&&I0.create(c).valid?(i=c,this.dt=t):(i="UTC",this.dt=t.offset===0?t:t.setZone("UTC").plus({minutes:t.offset}),this.originalZone=t.zone)}else t.zone.type==="system"?this.dt=t:t.zone.type==="iana"?(this.dt=t,i=t.zone.name):(i="UTC",this.dt=t.setZone("UTC").plus({minutes:t.offset}),this.originalZone=t.zone);const A={...this.opts};A.timeZone=A.timeZone||i,this.dtf=kS(n,A)}format(){return this.originalZone?this.formatToParts().map(({value:t})=>t).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const t=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?t.map(n=>{if(n.type==="timeZoneName"){const r=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...n,value:r}}else return n}):t}resolvedOptions(){return this.dtf.resolvedOptions()}}class Fwe{constructor(t,n,r){this.opts={style:"long",...r},!n&&eX()&&(this.rtf=wwe(t,r))}format(t,n){return this.rtf?this.rtf.format(t,n):oxe(n,t,this.opts.numeric,this.opts.style!=="long")}formatToParts(t,n){return this.rtf?this.rtf.formatToParts(t,n):[]}}const Nq={firstDay:1,minimalDays:4,weekend:[6,7]};class bo{static fromOpts(t){return bo.create(t.locale,t.numberingSystem,t.outputCalendar,t.weekSettings,t.defaultToEN)}static create(t,n,r,i,A=!1){const l=t||Si.defaultLocale,c=l||(A?"en-US":xwe()),f=n||Si.defaultNumberingSystem,h=r||Si.defaultOutputCalendar,I=PS(i)||Si.defaultWeekSettings;return new bo(c,f,h,I,l)}static resetCache(){cQ=null,_S.clear(),DS.clear(),SS.clear(),RS.clear(),TS.clear()}static fromObject({locale:t,numberingSystem:n,outputCalendar:r,weekSettings:i}={}){return bo.create(t,n,r,i)}constructor(t,n,r,i,A){const[l,c,f]=kwe(t);this.locale=l,this.numberingSystem=n||c||null,this.outputCalendar=r||f||null,this.weekSettings=i,this.intl=Dwe(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=A,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=Twe(this)),this.fastNumbersCached}listingMode(){const t=this.isEnglish(),n=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return t&&n?"en":"intl"}clone(t){return!t||Object.getOwnPropertyNames(t).length===0?this:bo.create(t.locale||this.specifiedLocale,t.numberingSystem||this.numberingSystem,t.outputCalendar||this.outputCalendar,PS(t.weekSettings)||this.weekSettings,t.defaultToEN||!1)}redefaultToEN(t={}){return this.clone({...t,defaultToEN:!0})}redefaultToSystem(t={}){return this.clone({...t,defaultToEN:!1})}months(t,n=!1){return uQ(this,t,sX,()=>{const r=this.intl==="ja"||this.intl.startsWith("ja-");n&=!r;const i=n?{month:t,day:"numeric"}:{month:t},A=n?"format":"standalone";if(!this.monthsCache[A][t]){const l=r?c=>this.dtFormatter(c,i).format():c=>this.extract(c,i,"month");this.monthsCache[A][t]=Swe(l)}return this.monthsCache[A][t]})}weekdays(t,n=!1){return uQ(this,t,cX,()=>{const r=n?{weekday:t,year:"numeric",month:"long",day:"numeric"}:{weekday:t},i=n?"format":"standalone";return this.weekdaysCache[i][t]||(this.weekdaysCache[i][t]=Rwe(A=>this.extract(A,r,"weekday"))),this.weekdaysCache[i][t]})}meridiems(){return uQ(this,void 0,()=>uX,()=>{if(!this.meridiemCache){const t={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[Gn.utc(2016,11,13,9),Gn.utc(2016,11,13,19)].map(n=>this.extract(n,t,"dayperiod"))}return this.meridiemCache})}eras(t){return uQ(this,t,dX,()=>{const n={era:t};return this.eraCache[t]||(this.eraCache[t]=[Gn.utc(-40,1,1),Gn.utc(2017,1,1)].map(r=>this.extract(r,n,"era"))),this.eraCache[t]})}extract(t,n,r){const i=this.dtFormatter(t,n),A=i.formatToParts(),l=A.find(c=>c.type.toLowerCase()===r);return l?l.value:null}numberFormatter(t={}){return new Mwe(this.intl,t.forceSimple||this.fastNumbers,t)}dtFormatter(t,n={}){return new Nwe(t,this.intl,n)}relFormatter(t={}){return new Fwe(this.intl,this.isEnglish(),t)}listFormatter(t={}){return bwe(this.intl,t)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||Mq(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:tX()?_we(this.locale):Nq}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(t){return this.locale===t.locale&&this.numberingSystem===t.numberingSystem&&this.outputCalendar===t.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}let MS=null;class Qs extends nC{static get utcInstance(){return MS===null&&(MS=new Qs(0)),MS}static instance(t){return t===0?Qs.utcInstance:new Qs(t)}static parseSpecifier(t){if(t){const n=t.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new Qs(pQ(n[1],n[2]))}return null}constructor(t){super(),this.fixed=t}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${iC(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${iC(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(t,n){return iC(this.fixed,n)}get isUniversal(){return!0}offset(){return this.fixed}equals(t){return t.type==="fixed"&&t.fixed===this.fixed}get isValid(){return!0}}class Owe extends nC{constructor(t){super(),this.zoneName=t}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function $d(e,t){if($n(e)||e===null)return t;if(e instanceof nC)return e;if(Hwe(e)){const n=e.toLowerCase();return n==="default"?t:n==="local"||n==="system"?lQ.instance:n==="utc"||n==="gmt"?Qs.utcInstance:Qs.parseSpecifier(n)||I0.create(e)}else return ef(e)?Qs.instance(e):typeof e=="object"&&"offset"in e&&typeof e.offset=="function"?e:new Owe(e)}const NS={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},Fq={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},jwe=NS.hanidec.replace(/[\[|\]]/g,"").split("");function Lwe(e){let t=parseInt(e,10);if(isNaN(t)){t="";for(let n=0;n=A&&r<=l&&(t+=r-A)}}return parseInt(t,10)}else return t}const FS=new Map;function Pwe(){FS.clear()}function oc({numberingSystem:e},t=""){const n=e||"latn";let r=FS.get(n);r===void 0&&(r=new Map,FS.set(n,r));let i=r.get(t);return i===void 0&&(i=new RegExp(`${NS[n]}${t}`),r.set(t,i)),i}let Oq=()=>Date.now(),jq="system",Lq=null,Pq=null,Uq=null,Gq=60,Hq,Yq=null;class Si{static get now(){return Oq}static set now(t){Oq=t}static set defaultZone(t){jq=t}static get defaultZone(){return $d(jq,lQ.instance)}static get defaultLocale(){return Lq}static set defaultLocale(t){Lq=t}static get defaultNumberingSystem(){return Pq}static set defaultNumberingSystem(t){Pq=t}static get defaultOutputCalendar(){return Uq}static set defaultOutputCalendar(t){Uq=t}static get defaultWeekSettings(){return Yq}static set defaultWeekSettings(t){Yq=PS(t)}static get twoDigitCutoffYear(){return Gq}static set twoDigitCutoffYear(t){Gq=t%100}static get throwOnInvalid(){return Hq}static set throwOnInvalid(t){Hq=t}static resetCaches(){bo.resetCache(),I0.resetCache(),Gn.resetCache(),Pwe()}}class ic{constructor(t,n){this.reason=t,this.explanation=n}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const Jq=[0,31,59,90,120,151,181,212,243,273,304,334],zq=[0,31,60,91,121,152,182,213,244,274,305,335];function ll(e,t){return new ic("unit out of range",`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function OS(e,t,n){const r=new Date(Date.UTC(e,t-1,n));e<100&&e>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);const i=r.getUTCDay();return i===0?7:i}function Wq(e,t,n){return n+(rC(e)?zq:Jq)[t-1]}function qq(e,t){const n=rC(e)?zq:Jq,r=n.findIndex(A=>AoC(r,t,n)?(h=r+1,f=1):h=r,{weekYear:h,weekNumber:f,weekday:c,...IQ(e)}}function Xq(e,t=4,n=1){const{weekYear:r,weekNumber:i,weekday:A}=e,l=jS(OS(r,1,t),n),c=Fp(r);let f=i*7+A-l-7+t,h;f<1?(h=r-1,f+=Fp(h)):f>c?(h=r+1,f-=Fp(r)):h=r;const{month:I,day:B}=qq(h,f);return{year:h,month:I,day:B,...IQ(e)}}function LS(e){const{year:t,month:n,day:r}=e,i=Wq(t,n,r);return{year:t,ordinal:i,...IQ(e)}}function Vq(e){const{year:t,ordinal:n}=e,{month:r,day:i}=qq(t,n);return{year:t,month:r,day:i,...IQ(e)}}function Kq(e,t){if(!$n(e.localWeekday)||!$n(e.localWeekNumber)||!$n(e.localWeekYear)){if(!$n(e.weekday)||!$n(e.weekNumber)||!$n(e.weekYear))throw new Mp("Cannot mix locale-based week fields with ISO-based week fields");return $n(e.localWeekday)||(e.weekday=e.localWeekday),$n(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),$n(e.localWeekYear)||(e.weekYear=e.localWeekYear),delete e.localWeekday,delete e.localWeekNumber,delete e.localWeekYear,{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function Uwe(e,t=4,n=1){const r=fQ(e.weekYear),i=cl(e.weekNumber,1,oC(e.weekYear,t,n)),A=cl(e.weekday,1,7);return r?i?A?!1:ll("weekday",e.weekday):ll("week",e.weekNumber):ll("weekYear",e.weekYear)}function Gwe(e){const t=fQ(e.year),n=cl(e.ordinal,1,Fp(e.year));return t?n?!1:ll("ordinal",e.ordinal):ll("year",e.year)}function Zq(e){const t=fQ(e.year),n=cl(e.month,1,12),r=cl(e.day,1,gQ(e.year,e.month));return t?n?r?!1:ll("day",e.day):ll("month",e.month):ll("year",e.year)}function $q(e){const{hour:t,minute:n,second:r,millisecond:i}=e,A=cl(t,0,23)||t===24&&n===0&&r===0&&i===0,l=cl(n,0,59),c=cl(r,0,59),f=cl(i,0,999);return A?l?c?f?!1:ll("millisecond",i):ll("second",r):ll("minute",n):ll("hour",t)}function $n(e){return typeof e>"u"}function ef(e){return typeof e=="number"}function fQ(e){return typeof e=="number"&&e%1===0}function Hwe(e){return typeof e=="string"}function Ywe(e){return Object.prototype.toString.call(e)==="[object Date]"}function eX(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function tX(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function Jwe(e){return Array.isArray(e)?e:[e]}function nX(e,t,n){if(e.length!==0)return e.reduce((r,i)=>{const A=[t(i),i];return r&&n(r[0],A[0])===r[0]?r:A},null)[1]}function zwe(e,t){return t.reduce((n,r)=>(n[r]=e[r],n),{})}function Np(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function PS(e){if(e==null)return null;if(typeof e!="object")throw new ZA("Week settings must be an object");if(!cl(e.firstDay,1,7)||!cl(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some(t=>!cl(t,1,7)))throw new ZA("Invalid week settings");return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function cl(e,t,n){return fQ(e)&&e>=t&&e<=n}function Wwe(e,t){return e-t*Math.floor(e/t)}function Zi(e,t=2){const n=e<0;let r;return n?r="-"+(""+-e).padStart(t,"0"):r=(""+e).padStart(t,"0"),r}function tf(e){if(!($n(e)||e===null||e===""))return parseInt(e,10)}function Fg(e){if(!($n(e)||e===null||e===""))return parseFloat(e)}function US(e){if(!($n(e)||e===null||e==="")){const t=parseFloat("0."+e)*1e3;return Math.floor(t)}}function GS(e,t,n="round"){const r=10**t;switch(n){case"expand":return e>0?Math.ceil(e*r)/r:Math.floor(e*r)/r;case"trunc":return Math.trunc(e*r)/r;case"round":return Math.round(e*r)/r;case"floor":return Math.floor(e*r)/r;case"ceil":return Math.ceil(e*r)/r;default:throw new RangeError(`Value rounding ${n} is out of range`)}}function rC(e){return e%4===0&&(e%100!==0||e%400===0)}function Fp(e){return rC(e)?366:365}function gQ(e,t){const n=Wwe(t-1,12)+1,r=e+(t-n)/12;return n===2?rC(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function hQ(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t),t.setUTCFullYear(e.year,e.month-1,e.day)),+t}function rX(e,t,n){return-jS(OS(e,1,t),n)+t-1}function oC(e,t=4,n=1){const r=rX(e,t,n),i=rX(e+1,t,n);return(Fp(e)-r+i)/7}function HS(e){return e>99?e:e>Si.twoDigitCutoffYear?1900+e:2e3+e}function oX(e,t,n,r=null){const i=new Date(e),A={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};r&&(A.timeZone=r);const l={timeZoneName:t,...A},c=new Intl.DateTimeFormat(n,l).formatToParts(i).find(f=>f.type.toLowerCase()==="timezonename");return c?c.value:null}function pQ(e,t){let n=parseInt(e,10);Number.isNaN(n)&&(n=0);const r=parseInt(t,10)||0,i=n<0||Object.is(n,-0)?-r:r;return n*60+i}function iX(e){const t=Number(e);if(typeof e=="boolean"||e===""||!Number.isFinite(t))throw new ZA(`Invalid unit value ${e}`);return t}function mQ(e,t){const n={};for(const r in e)if(Np(e,r)){const i=e[r];if(i==null)continue;n[t(r)]=iX(i)}return n}function iC(e,t){const n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=e>=0?"+":"-";switch(t){case"short":return`${i}${Zi(n,2)}:${Zi(r,2)}`;case"narrow":return`${i}${n}${r>0?`:${r}`:""}`;case"techie":return`${i}${Zi(n,2)}${Zi(r,2)}`;default:throw new RangeError(`Value format ${t} is out of range for property format`)}}function IQ(e){return zwe(e,["hour","minute","second","millisecond"])}const qwe=["January","February","March","April","May","June","July","August","September","October","November","December"],AX=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Xwe=["J","F","M","A","M","J","J","A","S","O","N","D"];function sX(e){switch(e){case"narrow":return[...Xwe];case"short":return[...AX];case"long":return[...qwe];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const aX=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],lX=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Vwe=["M","T","W","T","F","S","S"];function cX(e){switch(e){case"narrow":return[...Vwe];case"short":return[...lX];case"long":return[...aX];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const uX=["AM","PM"],Kwe=["Before Christ","Anno Domini"],Zwe=["BC","AD"],$we=["B","A"];function dX(e){switch(e){case"narrow":return[...$we];case"short":return[...Zwe];case"long":return[...Kwe];default:return null}}function exe(e){return uX[e.hour<12?0:1]}function txe(e,t){return cX(t)[e.weekday-1]}function nxe(e,t){return sX(t)[e.month-1]}function rxe(e,t){return dX(t)[e.year<0?0:1]}function oxe(e,t,n="always",r=!1){const i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},A=["hours","minutes","seconds"].indexOf(e)===-1;if(n==="auto"&&A){const B=e==="days";switch(t){case 1:return B?"tomorrow":`next ${i[e][0]}`;case-1:return B?"yesterday":`last ${i[e][0]}`;case 0:return B?"today":`this ${i[e][0]}`}}const l=Object.is(t,-0)||t<0,c=Math.abs(t),f=c===1,h=i[e],I=r?f?h[1]:h[2]||h[1]:f?i[e][0]:e;return l?`${c} ${I} ago`:`in ${c} ${I}`}function fX(e,t){let n="";for(const r of e)r.literal?n+=r.val:n+=t(r.val);return n}const ixe={D:aQ,DD:gq,DDD:hq,DDDD:pq,t:mq,tt:Iq,ttt:Cq,tttt:Eq,T:Bq,TT:yq,TTT:vq,TTTT:bq,f:Qq,ff:xq,fff:kq,ffff:Sq,F:wq,FF:_q,FFF:Dq,FFFF:Rq};class $A{static create(t,n={}){return new $A(t,n)}static parseFormat(t){let n=null,r="",i=!1;const A=[];for(let l=0;l0||i)&&A.push({literal:i||/^\s+$/.test(r),val:r===""?"'":r}),n=null,r="",i=!i):i||c===n?r+=c:(r.length>0&&A.push({literal:/^\s+$/.test(r),val:r}),r=c,n=c)}return r.length>0&&A.push({literal:i||/^\s+$/.test(r),val:r}),A}static macroTokenToFormatOpts(t){return ixe[t]}constructor(t,n){this.opts=n,this.loc=t,this.systemLoc=null}formatWithSystemDefault(t,n){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(t,{...this.opts,...n}).format()}dtFormatter(t,n={}){return this.loc.dtFormatter(t,{...this.opts,...n})}formatDateTime(t,n){return this.dtFormatter(t,n).format()}formatDateTimeParts(t,n){return this.dtFormatter(t,n).formatToParts()}formatInterval(t,n){return this.dtFormatter(t.start,n).dtf.formatRange(t.start.toJSDate(),t.end.toJSDate())}resolvedOptions(t,n){return this.dtFormatter(t,n).resolvedOptions()}num(t,n=0,r=void 0){if(this.opts.forceSimple)return Zi(t,n);const i={...this.opts};return n>0&&(i.padTo=n),r&&(i.signDisplay=r),this.loc.numberFormatter(i).format(t)}formatDateTimeFromString(t,n){const r=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",A=(D,S)=>this.loc.extract(t,D,S),l=D=>t.isOffsetFixed&&t.offset===0&&D.allowZ?"Z":t.isValid?t.zone.formatOffset(t.ts,D.format):"",c=()=>r?exe(t):A({hour:"numeric",hourCycle:"h12"},"dayperiod"),f=(D,S)=>r?nxe(t,D):A(S?{month:D}:{month:D,day:"numeric"},"month"),h=(D,S)=>r?txe(t,D):A(S?{weekday:D}:{weekday:D,month:"long",day:"numeric"},"weekday"),I=D=>{const S=$A.macroTokenToFormatOpts(D);return S?this.formatWithSystemDefault(t,S):D},B=D=>r?rxe(t,D):A({era:D},"era"),v=D=>{switch(D){case"S":return this.num(t.millisecond);case"u":case"SSS":return this.num(t.millisecond,3);case"s":return this.num(t.second);case"ss":return this.num(t.second,2);case"uu":return this.num(Math.floor(t.millisecond/10),2);case"uuu":return this.num(Math.floor(t.millisecond/100));case"m":return this.num(t.minute);case"mm":return this.num(t.minute,2);case"h":return this.num(t.hour%12===0?12:t.hour%12);case"hh":return this.num(t.hour%12===0?12:t.hour%12,2);case"H":return this.num(t.hour);case"HH":return this.num(t.hour,2);case"Z":return l({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return l({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return l({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return t.zone.offsetName(t.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return t.zone.offsetName(t.ts,{format:"long",locale:this.loc.locale});case"z":return t.zoneName;case"a":return c();case"d":return i?A({day:"numeric"},"day"):this.num(t.day);case"dd":return i?A({day:"2-digit"},"day"):this.num(t.day,2);case"c":return this.num(t.weekday);case"ccc":return h("short",!0);case"cccc":return h("long",!0);case"ccccc":return h("narrow",!0);case"E":return this.num(t.weekday);case"EEE":return h("short",!1);case"EEEE":return h("long",!1);case"EEEEE":return h("narrow",!1);case"L":return i?A({month:"numeric",day:"numeric"},"month"):this.num(t.month);case"LL":return i?A({month:"2-digit",day:"numeric"},"month"):this.num(t.month,2);case"LLL":return f("short",!0);case"LLLL":return f("long",!0);case"LLLLL":return f("narrow",!0);case"M":return i?A({month:"numeric"},"month"):this.num(t.month);case"MM":return i?A({month:"2-digit"},"month"):this.num(t.month,2);case"MMM":return f("short",!1);case"MMMM":return f("long",!1);case"MMMMM":return f("narrow",!1);case"y":return i?A({year:"numeric"},"year"):this.num(t.year);case"yy":return i?A({year:"2-digit"},"year"):this.num(t.year.toString().slice(-2),2);case"yyyy":return i?A({year:"numeric"},"year"):this.num(t.year,4);case"yyyyyy":return i?A({year:"numeric"},"year"):this.num(t.year,6);case"G":return B("short");case"GG":return B("long");case"GGGGG":return B("narrow");case"kk":return this.num(t.weekYear.toString().slice(-2),2);case"kkkk":return this.num(t.weekYear,4);case"W":return this.num(t.weekNumber);case"WW":return this.num(t.weekNumber,2);case"n":return this.num(t.localWeekNumber);case"nn":return this.num(t.localWeekNumber,2);case"ii":return this.num(t.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(t.localWeekYear,4);case"o":return this.num(t.ordinal);case"ooo":return this.num(t.ordinal,3);case"q":return this.num(t.quarter);case"qq":return this.num(t.quarter,2);case"X":return this.num(Math.floor(t.ts/1e3));case"x":return this.num(t.ts);default:return I(D)}};return fX($A.parseFormat(n),v)}formatDurationFromString(t,n){const r=this.opts.signMode==="negativeLargestOnly"?-1:1,i=I=>{switch(I[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},A=(I,B)=>v=>{const D=i(v);if(D){const S=B.isNegativeDuration&&D!==B.largestUnit?r:1;let R;return this.opts.signMode==="negativeLargestOnly"&&D!==B.largestUnit?R="never":this.opts.signMode==="all"?R="always":R="auto",this.num(I.get(D)*S,v.length,R)}else return v},l=$A.parseFormat(n),c=l.reduce((I,{literal:B,val:v})=>B?I:I.concat(v),[]),f=t.shiftTo(...c.map(i).filter(I=>I)),h={isNegativeDuration:f<0,largestUnit:Object.keys(f.values)[0]};return fX(l,A(f,h))}}const gX=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Op(...e){const t=e.reduce((n,r)=>n+r.source,"");return RegExp(`^${t}$`)}function jp(...e){return t=>e.reduce(([n,r,i],A)=>{const[l,c,f]=A(t,i);return[{...n,...l},c||r,f]},[{},null,1]).slice(0,2)}function Lp(e,...t){if(e==null)return[null,null];for(const[n,r]of t){const i=n.exec(e);if(i)return r(i)}return[null,null]}function hX(...e){return(t,n)=>{const r={};let i;for(i=0;iD!==void 0&&(S||D&&I)?-D:D;return[{years:v(Fg(n)),months:v(Fg(r)),weeks:v(Fg(i)),days:v(Fg(A)),hours:v(Fg(l)),minutes:v(Fg(c)),seconds:v(Fg(f),f==="-0"),milliseconds:v(US(h),B)}]}const Ixe={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function zS(e,t,n,r,i,A,l){const c={year:t.length===2?HS(tf(t)):tf(t),month:AX.indexOf(n)+1,day:tf(r),hour:tf(i),minute:tf(A)};return l&&(c.second=tf(l)),e&&(c.weekday=e.length>3?aX.indexOf(e)+1:lX.indexOf(e)+1),c}const Cxe=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function Exe(e){const[,t,n,r,i,A,l,c,f,h,I,B]=e,v=zS(t,i,r,n,A,l,c);let D;return f?D=Ixe[f]:h?D=0:D=pQ(I,B),[v,new Qs(D)]}function Bxe(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const yxe=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,vxe=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,bxe=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function CX(e){const[,t,n,r,i,A,l,c]=e;return[zS(t,i,r,n,A,l,c),Qs.utcInstance]}function Qxe(e){const[,t,n,r,i,A,l,c]=e;return[zS(t,c,n,r,i,A,l),Qs.utcInstance]}const wxe=Op(sxe,JS),xxe=Op(axe,JS),_xe=Op(lxe,JS),kxe=Op(mX),EX=jp(gxe,Up,AC,sC),Dxe=jp(cxe,Up,AC,sC),Sxe=jp(uxe,Up,AC,sC),Rxe=jp(Up,AC,sC);function Txe(e){return Lp(e,[wxe,EX],[xxe,Dxe],[_xe,Sxe],[kxe,Rxe])}function Mxe(e){return Lp(Bxe(e),[Cxe,Exe])}function Nxe(e){return Lp(e,[yxe,CX],[vxe,CX],[bxe,Qxe])}function Fxe(e){return Lp(e,[pxe,mxe])}const Oxe=jp(Up);function jxe(e){return Lp(e,[hxe,Oxe])}const Lxe=Op(dxe,fxe),Pxe=Op(IX),Uxe=jp(Up,AC,sC);function Gxe(e){return Lp(e,[Lxe,EX],[Pxe,Uxe])}const BX="Invalid Duration",yX={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},Hxe={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...yX},ul=146097/400,Gp=146097/4800,Yxe={years:{quarters:4,months:12,weeks:ul/7,days:ul,hours:ul*24,minutes:ul*24*60,seconds:ul*24*60*60,milliseconds:ul*24*60*60*1e3},quarters:{months:3,weeks:ul/28,days:ul/4,hours:ul*24/4,minutes:ul*24*60/4,seconds:ul*24*60*60/4,milliseconds:ul*24*60*60*1e3/4},months:{weeks:Gp/7,days:Gp,hours:Gp*24,minutes:Gp*24*60,seconds:Gp*24*60*60,milliseconds:Gp*24*60*60*1e3},...yX},Og=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],Jxe=Og.slice(0).reverse();function C0(e,t,n=!1){const r={values:n?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix};return new Nr(r)}function vX(e,t){let n=t.milliseconds??0;for(const r of Jxe.slice(1))t[r]&&(n+=t[r]*e[r].milliseconds);return n}function bX(e,t){const n=vX(e,t)<0?-1:1;Og.reduceRight((r,i)=>{if($n(t[i]))return r;if(r){const A=t[r]*n,l=e[i][r],c=Math.floor(A/l);t[i]+=c*n,t[r]-=c*l*n}return i},null),Og.reduce((r,i)=>{if($n(t[i]))return r;if(r){const A=t[r]%1;t[r]-=A,t[i]+=A*e[r][i]}return i},null)}function QX(e){const t={};for(const[n,r]of Object.entries(e))r!==0&&(t[n]=r);return t}class Nr{constructor(t){const n=t.conversionAccuracy==="longterm"||!1;let r=n?Yxe:Hxe;t.matrix&&(r=t.matrix),this.values=t.values,this.loc=t.loc||bo.create(),this.conversionAccuracy=n?"longterm":"casual",this.invalid=t.invalid||null,this.matrix=r,this.isLuxonDuration=!0}static fromMillis(t,n){return Nr.fromObject({milliseconds:t},n)}static fromObject(t,n={}){if(t==null||typeof t!="object")throw new ZA(`Duration.fromObject: argument expected to be an object, got ${t===null?"null":typeof t}`);return new Nr({values:mQ(t,Nr.normalizeUnit),loc:bo.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(t){if(ef(t))return Nr.fromMillis(t);if(Nr.isDuration(t))return t;if(typeof t=="object")return Nr.fromObject(t);throw new ZA(`Unknown duration argument ${t} of type ${typeof t}`)}static fromISO(t,n){const[r]=Fxe(t);return r?Nr.fromObject(r,n):Nr.invalid("unparsable",`the input "${t}" can't be parsed as ISO 8601`)}static fromISOTime(t,n){const[r]=jxe(t);return r?Nr.fromObject(r,n):Nr.invalid("unparsable",`the input "${t}" can't be parsed as ISO 8601`)}static invalid(t,n=null){if(!t)throw new ZA("need to specify a reason the Duration is invalid");const r=t instanceof ic?t:new ic(t,n);if(Si.throwOnInvalid)throw new mwe(r);return new Nr({invalid:r})}static normalizeUnit(t){const n={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[t&&t.toLowerCase()];if(!n)throw new fq(t);return n}static isDuration(t){return t&&t.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(t,n={}){const r={...n,floor:n.round!==!1&&n.floor!==!1};return this.isValid?$A.create(this.loc,r).formatDurationFromString(this,t):BX}toHuman(t={}){if(!this.isValid)return BX;const n=t.showZeros!==!1,r=Og.map(i=>{const A=this.values[i];return $n(A)||A===0&&!n?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...t,unit:i.slice(0,-1)}).format(A)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:t.listStyle||"narrow",...t}).format(r)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let t="P";return this.years!==0&&(t+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(t+=this.months+this.quarters*3+"M"),this.weeks!==0&&(t+=this.weeks+"W"),this.days!==0&&(t+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(t+="T"),this.hours!==0&&(t+=this.hours+"H"),this.minutes!==0&&(t+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(t+=GS(this.seconds+this.milliseconds/1e3,3)+"S"),t==="P"&&(t+="T0S"),t}toISOTime(t={}){if(!this.isValid)return null;const n=this.toMillis();return n<0||n>=864e5?null:(t={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...t,includeOffset:!1},Gn.fromMillis(n,{zone:"UTC"}).toISOTime(t))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?vX(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(t){if(!this.isValid)return this;const n=Nr.fromDurationLike(t),r={};for(const i of Og)(Np(n.values,i)||Np(this.values,i))&&(r[i]=n.get(i)+this.get(i));return C0(this,{values:r},!0)}minus(t){if(!this.isValid)return this;const n=Nr.fromDurationLike(t);return this.plus(n.negate())}mapUnits(t){if(!this.isValid)return this;const n={};for(const r of Object.keys(this.values))n[r]=iX(t(this.values[r],r));return C0(this,{values:n},!0)}get(t){return this[Nr.normalizeUnit(t)]}set(t){if(!this.isValid)return this;const n={...this.values,...mQ(t,Nr.normalizeUnit)};return C0(this,{values:n})}reconfigure({locale:t,numberingSystem:n,conversionAccuracy:r,matrix:i}={}){const A={loc:this.loc.clone({locale:t,numberingSystem:n}),matrix:i,conversionAccuracy:r};return C0(this,A)}as(t){return this.isValid?this.shiftTo(t).get(t):NaN}normalize(){if(!this.isValid)return this;const t=this.toObject();return bX(this.matrix,t),C0(this,{values:t},!0)}rescale(){if(!this.isValid)return this;const t=QX(this.normalize().shiftToAll().toObject());return C0(this,{values:t},!0)}shiftTo(...t){if(!this.isValid)return this;if(t.length===0)return this;t=t.map(l=>Nr.normalizeUnit(l));const n={},r={},i=this.toObject();let A;for(const l of Og)if(t.indexOf(l)>=0){A=l;let c=0;for(const h in r)c+=this.matrix[h][l]*r[h],r[h]=0;ef(i[l])&&(c+=i[l]);const f=Math.trunc(c);n[l]=f,r[l]=(c*1e3-f*1e3)/1e3}else ef(i[l])&&(r[l]=i[l]);for(const l in r)r[l]!==0&&(n[A]+=l===A?r[l]:r[l]/this.matrix[A][l]);return bX(this.matrix,n),C0(this,{values:n},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const t={};for(const n of Object.keys(this.values))t[n]=this.values[n]===0?0:-this.values[n];return C0(this,{values:t},!0)}removeZeros(){if(!this.isValid)return this;const t=QX(this.values);return C0(this,{values:t},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(t){if(!this.isValid||!t.isValid||!this.loc.equals(t.loc))return!1;function n(r,i){return r===void 0||r===0?i===void 0||i===0:r===i}for(const r of Og)if(!n(this.values[r],t.values[r]))return!1;return!0}}const Hp="Invalid Interval";function zxe(e,t){return!e||!e.isValid?Ri.invalid("missing or invalid start"):!t||!t.isValid?Ri.invalid("missing or invalid end"):tt:!1}isBefore(t){return this.isValid?this.e<=t:!1}contains(t){return this.isValid?this.s<=t&&this.e>t:!1}set({start:t,end:n}={}){return this.isValid?Ri.fromDateTimes(t||this.s,n||this.e):this}splitAt(...t){if(!this.isValid)return[];const n=t.map(cC).filter(l=>this.contains(l)).sort((l,c)=>l.toMillis()-c.toMillis()),r=[];let{s:i}=this,A=0;for(;i+this.e?this.e:l;r.push(Ri.fromDateTimes(i,c)),i=c,A+=1}return r}splitBy(t){const n=Nr.fromDurationLike(t);if(!this.isValid||!n.isValid||n.as("milliseconds")===0)return[];let{s:r}=this,i=1,A;const l=[];for(;rf*i));A=+c>+this.e?this.e:c,l.push(Ri.fromDateTimes(r,A)),r=A,i+=1}return l}divideEqually(t){return this.isValid?this.splitBy(this.length()/t).slice(0,t):[]}overlaps(t){return this.e>t.s&&this.s=t.e:!1}equals(t){return!this.isValid||!t.isValid?!1:this.s.equals(t.s)&&this.e.equals(t.e)}intersection(t){if(!this.isValid)return this;const n=this.s>t.s?this.s:t.s,r=this.e=r?null:Ri.fromDateTimes(n,r)}union(t){if(!this.isValid)return this;const n=this.st.e?this.e:t.e;return Ri.fromDateTimes(n,r)}static merge(t){const[n,r]=t.sort((i,A)=>i.s-A.s).reduce(([i,A],l)=>A?A.overlaps(l)||A.abutsStart(l)?[i,A.union(l)]:[i.concat([A]),l]:[i,l],[[],null]);return r&&n.push(r),n}static xor(t){let n=null,r=0;const i=[],A=t.map(f=>[{time:f.s,type:"s"},{time:f.e,type:"e"}]),l=Array.prototype.concat(...A),c=l.sort((f,h)=>f.time-h.time);for(const f of c)r+=f.type==="s"?1:-1,r===1?n=f.time:(n&&+n!=+f.time&&i.push(Ri.fromDateTimes(n,f.time)),n=null);return Ri.merge(i)}difference(...t){return Ri.xor([this].concat(t)).map(n=>this.intersection(n)).filter(n=>n&&!n.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:Hp}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(t=aQ,n={}){return this.isValid?$A.create(this.s.loc.clone(n),t).formatInterval(this):Hp}toISO(t){return this.isValid?`${this.s.toISO(t)}/${this.e.toISO(t)}`:Hp}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Hp}toISOTime(t){return this.isValid?`${this.s.toISOTime(t)}/${this.e.toISOTime(t)}`:Hp}toFormat(t,{separator:n=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(t)}${n}${this.e.toFormat(t)}`:Hp}toDuration(t,n){return this.isValid?this.e.diff(this.s,t,n):Nr.invalid(this.invalidReason)}mapEndpoints(t){return Ri.fromDateTimes(t(this.s),t(this.e))}}class CQ{static hasDST(t=Si.defaultZone){const n=Gn.now().setZone(t).set({month:12});return!t.isUniversal&&n.offset!==n.set({month:6}).offset}static isValidIANAZone(t){return I0.isValidZone(t)}static normalizeZone(t){return $d(t,Si.defaultZone)}static getStartOfWeek({locale:t=null,locObj:n=null}={}){return(n||bo.create(t)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:t=null,locObj:n=null}={}){return(n||bo.create(t)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:t=null,locObj:n=null}={}){return(n||bo.create(t)).getWeekendDays().slice()}static months(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null,outputCalendar:A="gregory"}={}){return(i||bo.create(n,r,A)).months(t)}static monthsFormat(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null,outputCalendar:A="gregory"}={}){return(i||bo.create(n,r,A)).months(t,!0)}static weekdays(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null}={}){return(i||bo.create(n,r,null)).weekdays(t)}static weekdaysFormat(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null}={}){return(i||bo.create(n,r,null)).weekdays(t,!0)}static meridiems({locale:t=null}={}){return bo.create(t).meridiems()}static eras(t="short",{locale:n=null}={}){return bo.create(n,null,"gregory").eras(t)}static features(){return{relative:eX(),localeWeek:tX()}}}function wX(e,t){const n=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),r=n(t)-n(e);return Math.floor(Nr.fromMillis(r).as("days"))}function Wxe(e,t,n){const r=[["years",(f,h)=>h.year-f.year],["quarters",(f,h)=>h.quarter-f.quarter+(h.year-f.year)*4],["months",(f,h)=>h.month-f.month+(h.year-f.year)*12],["weeks",(f,h)=>{const I=wX(f,h);return(I-I%7)/7}],["days",wX]],i={},A=e;let l,c;for(const[f,h]of r)n.indexOf(f)>=0&&(l=f,i[f]=h(e,t),c=A.plus(i),c>t?(i[f]--,e=A.plus(i),e>t&&(c=e,i[f]--,e=A.plus(i))):e=c);return[e,i,c,l]}function qxe(e,t,n,r){let[i,A,l,c]=Wxe(e,t,n);const f=t-i,h=n.filter(B=>["hours","minutes","seconds","milliseconds"].indexOf(B)>=0);h.length===0&&(l0?Nr.fromMillis(f,r).shiftTo(...h).plus(I):I}const Xxe="missing Intl.DateTimeFormat.formatToParts support";function fo(e,t=n=>n){return{regex:e,deser:([n])=>t(Lwe(n))}}const Vxe="\xA0",xX=`[ ${Vxe}]`,_X=new RegExp(xX,"g");function Kxe(e){return e.replace(/\./g,"\\.?").replace(_X,xX)}function kX(e){return e.replace(/\./g,"").replace(_X," ").toLowerCase()}function Ac(e,t){return e===null?null:{regex:RegExp(e.map(Kxe).join("|")),deser:([n])=>e.findIndex(r=>kX(n)===kX(r))+t}}function DX(e,t){return{regex:e,deser:([,n,r])=>pQ(n,r),groups:t}}function EQ(e){return{regex:e,deser:([t])=>t}}function Zxe(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function $xe(e,t){const n=oc(t),r=oc(t,"{2}"),i=oc(t,"{3}"),A=oc(t,"{4}"),l=oc(t,"{6}"),c=oc(t,"{1,2}"),f=oc(t,"{1,3}"),h=oc(t,"{1,6}"),I=oc(t,"{1,9}"),B=oc(t,"{2,4}"),v=oc(t,"{4,6}"),D=R=>({regex:RegExp(Zxe(R.val)),deser:([F])=>F,literal:!0}),S=(R=>{if(e.literal)return D(R);switch(R.val){case"G":return Ac(t.eras("short"),0);case"GG":return Ac(t.eras("long"),0);case"y":return fo(h);case"yy":return fo(B,HS);case"yyyy":return fo(A);case"yyyyy":return fo(v);case"yyyyyy":return fo(l);case"M":return fo(c);case"MM":return fo(r);case"MMM":return Ac(t.months("short",!0),1);case"MMMM":return Ac(t.months("long",!0),1);case"L":return fo(c);case"LL":return fo(r);case"LLL":return Ac(t.months("short",!1),1);case"LLLL":return Ac(t.months("long",!1),1);case"d":return fo(c);case"dd":return fo(r);case"o":return fo(f);case"ooo":return fo(i);case"HH":return fo(r);case"H":return fo(c);case"hh":return fo(r);case"h":return fo(c);case"mm":return fo(r);case"m":return fo(c);case"q":return fo(c);case"qq":return fo(r);case"s":return fo(c);case"ss":return fo(r);case"S":return fo(f);case"SSS":return fo(i);case"u":return EQ(I);case"uu":return EQ(c);case"uuu":return fo(n);case"a":return Ac(t.meridiems(),0);case"kkkk":return fo(A);case"kk":return fo(B,HS);case"W":return fo(c);case"WW":return fo(r);case"E":case"c":return fo(n);case"EEE":return Ac(t.weekdays("short",!1),1);case"EEEE":return Ac(t.weekdays("long",!1),1);case"ccc":return Ac(t.weekdays("short",!0),1);case"cccc":return Ac(t.weekdays("long",!0),1);case"Z":case"ZZ":return DX(new RegExp(`([+-]${c.source})(?::(${r.source}))?`),2);case"ZZZ":return DX(new RegExp(`([+-]${c.source})(${r.source})?`),2);case"z":return EQ(/[a-z_+-/]{1,256}?/i);case" ":return EQ(/[^\S\n\r]/);default:return D(R)}})(e)||{invalidReason:Xxe};return S.token=e,S}const e_e={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function t_e(e,t,n){const{type:r,value:i}=e;if(r==="literal"){const f=/^\s+$/.test(i);return{literal:!f,val:f?" ":i}}const A=t[r];let l=r;r==="hour"&&(t.hour12!=null?l=t.hour12?"hour12":"hour24":t.hourCycle!=null?t.hourCycle==="h11"||t.hourCycle==="h12"?l="hour12":l="hour24":l=n.hour12?"hour12":"hour24");let c=e_e[l];if(typeof c=="object"&&(c=c[A]),c)return{literal:!1,val:c}}function n_e(e){return[`^${e.map(t=>t.regex).reduce((t,n)=>`${t}(${n.source})`,"")}$`,e]}function r_e(e,t,n){const r=e.match(t);if(r){const i={};let A=1;for(const l in n)if(Np(n,l)){const c=n[l],f=c.groups?c.groups+1:1;!c.literal&&c.token&&(i[c.token.val[0]]=c.deser(r.slice(A,A+f))),A+=f}return[r,i]}else return[r,{}]}function o_e(e){const t=i=>{switch(i){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let n=null,r;return $n(e.z)||(n=I0.create(e.z)),$n(e.Z)||(n||(n=new Qs(e.Z)),r=e.Z),$n(e.q)||(e.M=(e.q-1)*3+1),$n(e.h)||(e.h<12&&e.a===1?e.h+=12:e.h===12&&e.a===0&&(e.h=0)),e.G===0&&e.y&&(e.y=-e.y),$n(e.u)||(e.S=US(e.u)),[Object.keys(e).reduce((i,A)=>{const l=t(A);return l&&(i[l]=e[A]),i},{}),n,r]}let WS=null;function i_e(){return WS||(WS=Gn.fromMillis(1555555555555)),WS}function A_e(e,t){if(e.literal)return e;const n=$A.macroTokenToFormatOpts(e.val),r=MX(n,t);return r==null||r.includes(void 0)?e:r}function SX(e,t){return Array.prototype.concat(...e.map(n=>A_e(n,t)))}class RX{constructor(t,n){if(this.locale=t,this.format=n,this.tokens=SX($A.parseFormat(n),t),this.units=this.tokens.map(r=>$xe(r,t)),this.disqualifyingUnit=this.units.find(r=>r.invalidReason),!this.disqualifyingUnit){const[r,i]=n_e(this.units);this.regex=RegExp(r,"i"),this.handlers=i}}explainFromTokens(t){if(this.isValid){const[n,r]=r_e(t,this.regex,this.handlers),[i,A,l]=r?o_e(r):[null,null,void 0];if(Np(r,"a")&&Np(r,"H"))throw new Mp("Can't include meridiem when specifying 24-hour format");return{input:t,tokens:this.tokens,regex:this.regex,rawMatches:n,matches:r,result:i,zone:A,specificOffset:l}}else return{input:t,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function TX(e,t,n){return new RX(e,n).explainFromTokens(t)}function s_e(e,t,n){const{result:r,zone:i,specificOffset:A,invalidReason:l}=TX(e,t,n);return[r,i,A,l]}function MX(e,t){if(!e)return null;const n=$A.create(t,e).dtFormatter(i_e()),r=n.formatToParts(),i=n.resolvedOptions();return r.map(A=>t_e(A,e,i))}const qS="Invalid DateTime",NX=864e13;function aC(e){return new ic("unsupported zone",`the zone "${e.name}" is not supported`)}function XS(e){return e.weekData===null&&(e.weekData=dQ(e.c)),e.weekData}function VS(e){return e.localWeekData===null&&(e.localWeekData=dQ(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function jg(e,t){const n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new Gn({...n,...t,old:n})}function FX(e,t,n){let r=e-t*60*1e3;const i=n.offset(r);if(t===i)return[r,t];r-=(i-t)*60*1e3;const A=n.offset(r);return i===A?[r,i]:[e-Math.min(i,A)*60*1e3,Math.max(i,A)]}function BQ(e,t){e+=t*60*1e3;const n=new Date(e);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function yQ(e,t,n){return FX(hQ(e),t,n)}function OX(e,t){const n=e.o,r=e.c.year+Math.trunc(t.years),i=e.c.month+Math.trunc(t.months)+Math.trunc(t.quarters)*3,A={...e.c,year:r,month:i,day:Math.min(e.c.day,gQ(r,i))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},l=Nr.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),c=hQ(A);let[f,h]=FX(c,n,e.zone);return l!==0&&(f+=l,h=e.zone.offset(f)),{ts:f,o:h}}function Yp(e,t,n,r,i,A){const{setZone:l,zone:c}=n;if(e&&Object.keys(e).length!==0||t){const f=t||c,h=Gn.fromObject(e,{...n,zone:f,specificOffset:A});return l?h:h.setZone(c)}else return Gn.invalid(new ic("unparsable",`the input "${i}" can't be parsed as ${r}`))}function vQ(e,t,n=!0){return e.isValid?$A.create(bo.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function KS(e,t,n){const r=e.c.year>9999||e.c.year<0;let i="";if(r&&e.c.year>=0&&(i+="+"),i+=Zi(e.c.year,r?6:4),n==="year")return i;if(t){if(i+="-",i+=Zi(e.c.month),n==="month")return i;i+="-"}else if(i+=Zi(e.c.month),n==="month")return i;return i+=Zi(e.c.day),i}function jX(e,t,n,r,i,A,l){let c=!n||e.c.millisecond!==0||e.c.second!==0,f="";switch(l){case"day":case"month":case"year":break;default:if(f+=Zi(e.c.hour),l==="hour")break;if(t){if(f+=":",f+=Zi(e.c.minute),l==="minute")break;c&&(f+=":",f+=Zi(e.c.second))}else{if(f+=Zi(e.c.minute),l==="minute")break;c&&(f+=Zi(e.c.second))}if(l==="second")break;c&&(!r||e.c.millisecond!==0)&&(f+=".",f+=Zi(e.c.millisecond,3))}return i&&(e.isOffsetFixed&&e.offset===0&&!A?f+="Z":e.o<0?(f+="-",f+=Zi(Math.trunc(-e.o/60)),f+=":",f+=Zi(Math.trunc(-e.o%60))):(f+="+",f+=Zi(Math.trunc(e.o/60)),f+=":",f+=Zi(Math.trunc(e.o%60)))),A&&(f+="["+e.zone.ianaName+"]"),f}const LX={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},a_e={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},l_e={ordinal:1,hour:0,minute:0,second:0,millisecond:0},bQ=["year","month","day","hour","minute","second","millisecond"],c_e=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],u_e=["year","ordinal","hour","minute","second","millisecond"];function QQ(e){const t={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[e.toLowerCase()];if(!t)throw new fq(e);return t}function PX(e){switch(e.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return QQ(e)}}function d_e(e){if(lC===void 0&&(lC=Si.now()),e.type!=="iana")return e.offset(lC);const t=e.name;let n=ZS.get(t);return n===void 0&&(n=e.offset(lC),ZS.set(t,n)),n}function UX(e,t){const n=$d(t.zone,Si.defaultZone);if(!n.isValid)return Gn.invalid(aC(n));const r=bo.fromObject(t);let i,A;if($n(e.year))i=Si.now();else{for(const f of bQ)$n(e[f])&&(e[f]=LX[f]);const l=Zq(e)||$q(e);if(l)return Gn.invalid(l);const c=d_e(n);[i,A]=yQ(e,c,n)}return new Gn({ts:i,zone:n,loc:r,o:A})}function GX(e,t,n){const r=$n(n.round)?!0:n.round,i=$n(n.rounding)?"trunc":n.rounding,A=(c,f)=>(c=GS(c,r||n.calendary?0:2,n.calendary?"round":i),t.loc.clone(n).relFormatter(n).format(c,f)),l=c=>n.calendary?t.hasSame(e,c)?0:t.startOf(c).diff(e.startOf(c),c).get(c):t.diff(e,c).get(c);if(n.unit)return A(l(n.unit),n.unit);for(const c of n.units){const f=l(c);if(Math.abs(f)>=1)return A(f,c)}return A(e>t?-0:0,n.units[n.units.length-1])}function HX(e){let t={},n;return e.length>0&&typeof e[e.length-1]=="object"?(t=e[e.length-1],n=Array.from(e).slice(0,e.length-1)):n=Array.from(e),[t,n]}let lC;const ZS=new Map;class Gn{constructor(t){const n=t.zone||Si.defaultZone;let r=t.invalid||(Number.isNaN(t.ts)?new ic("invalid input"):null)||(n.isValid?null:aC(n));this.ts=$n(t.ts)?Si.now():t.ts;let i=null,A=null;if(!r)if(t.old&&t.old.ts===this.ts&&t.old.zone.equals(n))[i,A]=[t.old.c,t.old.o];else{const l=ef(t.o)&&!t.old?t.o:n.offset(this.ts);i=BQ(this.ts,l),r=Number.isNaN(i.year)?new ic("invalid input"):null,i=r?null:i,A=r?null:l}this._zone=n,this.loc=t.loc||bo.create(),this.invalid=r,this.weekData=null,this.localWeekData=null,this.c=i,this.o=A,this.isLuxonDateTime=!0}static now(){return new Gn({})}static local(){const[t,n]=HX(arguments),[r,i,A,l,c,f,h]=n;return UX({year:r,month:i,day:A,hour:l,minute:c,second:f,millisecond:h},t)}static utc(){const[t,n]=HX(arguments),[r,i,A,l,c,f,h]=n;return t.zone=Qs.utcInstance,UX({year:r,month:i,day:A,hour:l,minute:c,second:f,millisecond:h},t)}static fromJSDate(t,n={}){const r=Ywe(t)?t.valueOf():NaN;if(Number.isNaN(r))return Gn.invalid("invalid input");const i=$d(n.zone,Si.defaultZone);return i.isValid?new Gn({ts:r,zone:i,loc:bo.fromObject(n)}):Gn.invalid(aC(i))}static fromMillis(t,n={}){if(ef(t))return t<-NX||t>NX?Gn.invalid("Timestamp out of range"):new Gn({ts:t,zone:$d(n.zone,Si.defaultZone),loc:bo.fromObject(n)});throw new ZA(`fromMillis requires a numerical input, but received a ${typeof t} with value ${t}`)}static fromSeconds(t,n={}){if(ef(t))return new Gn({ts:t*1e3,zone:$d(n.zone,Si.defaultZone),loc:bo.fromObject(n)});throw new ZA("fromSeconds requires a numerical input")}static fromObject(t,n={}){t=t||{};const r=$d(n.zone,Si.defaultZone);if(!r.isValid)return Gn.invalid(aC(r));const i=bo.fromObject(n),A=mQ(t,PX),{minDaysInFirstWeek:l,startOfWeek:c}=Kq(A,i),f=Si.now(),h=$n(n.specificOffset)?r.offset(f):n.specificOffset,I=!$n(A.ordinal),B=!$n(A.year),v=!$n(A.month)||!$n(A.day),D=B||v,S=A.weekYear||A.weekNumber;if((D||I)&&S)throw new Mp("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(v&&I)throw new Mp("Can't mix ordinal dates with month/day");const R=S||A.weekday&&!D;let F,N,M=BQ(f,h);R?(F=c_e,N=a_e,M=dQ(M,l,c)):I?(F=u_e,N=l_e,M=LS(M)):(F=bQ,N=LX);let P=!1;for(const K of F){const se=A[K];$n(se)?P?A[K]=N[K]:A[K]=M[K]:P=!0}const G=R?Uwe(A,l,c):I?Gwe(A):Zq(A),J=G||$q(A);if(J)return Gn.invalid(J);const W=R?Xq(A,l,c):I?Vq(A):A,[q,$]=yQ(W,h,r),oe=new Gn({ts:q,zone:r,o:$,loc:i});return A.weekday&&D&&t.weekday!==oe.weekday?Gn.invalid("mismatched weekday",`you can't specify both a weekday of ${A.weekday} and a date of ${oe.toISO()}`):oe.isValid?oe:Gn.invalid(oe.invalid)}static fromISO(t,n={}){const[r,i]=Txe(t);return Yp(r,i,n,"ISO 8601",t)}static fromRFC2822(t,n={}){const[r,i]=Mxe(t);return Yp(r,i,n,"RFC 2822",t)}static fromHTTP(t,n={}){const[r,i]=Nxe(t);return Yp(r,i,n,"HTTP",n)}static fromFormat(t,n,r={}){if($n(t)||$n(n))throw new ZA("fromFormat requires an input string and a format");const{locale:i=null,numberingSystem:A=null}=r,l=bo.fromOpts({locale:i,numberingSystem:A,defaultToEN:!0}),[c,f,h,I]=s_e(l,t,n);return I?Gn.invalid(I):Yp(c,f,r,`format ${n}`,t,h)}static fromString(t,n,r={}){return Gn.fromFormat(t,n,r)}static fromSQL(t,n={}){const[r,i]=Gxe(t);return Yp(r,i,n,"SQL",t)}static invalid(t,n=null){if(!t)throw new ZA("need to specify a reason the DateTime is invalid");const r=t instanceof ic?t:new ic(t,n);if(Si.throwOnInvalid)throw new hwe(r);return new Gn({invalid:r})}static isDateTime(t){return t&&t.isLuxonDateTime||!1}static parseFormatForOpts(t,n={}){const r=MX(t,bo.fromObject(n));return r?r.map(i=>i?i.val:null).join(""):null}static expandFormat(t,n={}){return SX($A.parseFormat(t),bo.fromObject(n)).map(r=>r.val).join("")}static resetCache(){lC=void 0,ZS.clear()}get(t){return this[t]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?XS(this).weekYear:NaN}get weekNumber(){return this.isValid?XS(this).weekNumber:NaN}get weekday(){return this.isValid?XS(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?VS(this).weekday:NaN}get localWeekNumber(){return this.isValid?VS(this).weekNumber:NaN}get localWeekYear(){return this.isValid?VS(this).weekYear:NaN}get ordinal(){return this.isValid?LS(this.c).ordinal:NaN}get monthShort(){return this.isValid?CQ.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?CQ.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?CQ.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?CQ.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const t=864e5,n=6e4,r=hQ(this.c),i=this.zone.offset(r-t),A=this.zone.offset(r+t),l=this.zone.offset(r-i*n),c=this.zone.offset(r-A*n);if(l===c)return[this];const f=r-l*n,h=r-c*n,I=BQ(f,l),B=BQ(h,c);return I.hour===B.hour&&I.minute===B.minute&&I.second===B.second&&I.millisecond===B.millisecond?[jg(this,{ts:f}),jg(this,{ts:h})]:[this]}get isInLeapYear(){return rC(this.year)}get daysInMonth(){return gQ(this.year,this.month)}get daysInYear(){return this.isValid?Fp(this.year):NaN}get weeksInWeekYear(){return this.isValid?oC(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?oC(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(t={}){const{locale:n,numberingSystem:r,calendar:i}=$A.create(this.loc.clone(t),t).resolvedOptions(this);return{locale:n,numberingSystem:r,outputCalendar:i}}toUTC(t=0,n={}){return this.setZone(Qs.instance(t),n)}toLocal(){return this.setZone(Si.defaultZone)}setZone(t,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(t=$d(t,Si.defaultZone),t.equals(this.zone))return this;if(t.isValid){let i=this.ts;if(n||r){const A=t.offset(this.ts),l=this.toObject();[i]=yQ(l,A,t)}return jg(this,{ts:i,zone:t})}else return Gn.invalid(aC(t))}reconfigure({locale:t,numberingSystem:n,outputCalendar:r}={}){const i=this.loc.clone({locale:t,numberingSystem:n,outputCalendar:r});return jg(this,{loc:i})}setLocale(t){return this.reconfigure({locale:t})}set(t){if(!this.isValid)return this;const n=mQ(t,PX),{minDaysInFirstWeek:r,startOfWeek:i}=Kq(n,this.loc),A=!$n(n.weekYear)||!$n(n.weekNumber)||!$n(n.weekday),l=!$n(n.ordinal),c=!$n(n.year),f=!$n(n.month)||!$n(n.day),h=c||f,I=n.weekYear||n.weekNumber;if((h||l)&&I)throw new Mp("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(f&&l)throw new Mp("Can't mix ordinal dates with month/day");let B;A?B=Xq({...dQ(this.c,r,i),...n},r,i):$n(n.ordinal)?(B={...this.toObject(),...n},$n(n.day)&&(B.day=Math.min(gQ(B.year,B.month),B.day))):B=Vq({...LS(this.c),...n});const[v,D]=yQ(B,this.o,this.zone);return jg(this,{ts:v,o:D})}plus(t){if(!this.isValid)return this;const n=Nr.fromDurationLike(t);return jg(this,OX(this,n))}minus(t){if(!this.isValid)return this;const n=Nr.fromDurationLike(t).negate();return jg(this,OX(this,n))}startOf(t,{useLocaleWeeks:n=!1}={}){if(!this.isValid)return this;const r={},i=Nr.normalizeUnit(t);switch(i){case"years":r.month=1;case"quarters":case"months":r.day=1;case"weeks":case"days":r.hour=0;case"hours":r.minute=0;case"minutes":r.second=0;case"seconds":r.millisecond=0;break}if(i==="weeks")if(n){const A=this.loc.getStartOfWeek(),{weekday:l}=this;l=3&&(f+="T"),f+=jX(this,c,n,r,i,A,l),f}toISODate({format:t="extended",precision:n="day"}={}){return this.isValid?KS(this,t==="extended",QQ(n)):null}toISOWeekDate(){return vQ(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:t=!1,suppressSeconds:n=!1,includeOffset:r=!0,includePrefix:i=!1,extendedZone:A=!1,format:l="extended",precision:c="milliseconds"}={}){return this.isValid?(c=QQ(c),(i&&bQ.indexOf(c)>=3?"T":"")+jX(this,l==="extended",n,t,r,A,c)):null}toRFC2822(){return vQ(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return vQ(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?KS(this,!0):null}toSQLTime({includeOffset:t=!0,includeZone:n=!1,includeOffsetSpace:r=!0}={}){let i="HH:mm:ss.SSS";return(n||t)&&(r&&(i+=" "),n?i+="z":t&&(i+="ZZ")),vQ(this,i,!0)}toSQL(t={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(t)}`:null}toString(){return this.isValid?this.toISO():qS}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(t={}){if(!this.isValid)return{};const n={...this.c};return t.includeConfig&&(n.outputCalendar=this.outputCalendar,n.numberingSystem=this.loc.numberingSystem,n.locale=this.loc.locale),n}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(t,n="milliseconds",r={}){if(!this.isValid||!t.isValid)return Nr.invalid("created by diffing an invalid DateTime");const i={locale:this.locale,numberingSystem:this.numberingSystem,...r},A=Jwe(n).map(Nr.normalizeUnit),l=t.valueOf()>this.valueOf(),c=l?this:t,f=l?t:this,h=qxe(c,f,A,i);return l?h.negate():h}diffNow(t="milliseconds",n={}){return this.diff(Gn.now(),t,n)}until(t){return this.isValid?Ri.fromDateTimes(this,t):this}hasSame(t,n,r){if(!this.isValid)return!1;const i=t.valueOf(),A=this.setZone(t.zone,{keepLocalTime:!0});return A.startOf(n,r)<=i&&i<=A.endOf(n,r)}equals(t){return this.isValid&&t.isValid&&this.valueOf()===t.valueOf()&&this.zone.equals(t.zone)&&this.loc.equals(t.loc)}toRelative(t={}){if(!this.isValid)return null;const n=t.base||Gn.fromObject({},{zone:this.zone}),r=t.padding?thisn.valueOf(),Math.min)}static max(...t){if(!t.every(Gn.isDateTime))throw new ZA("max requires all arguments be DateTimes");return nX(t,n=>n.valueOf(),Math.max)}static fromFormatExplain(t,n,r={}){const{locale:i=null,numberingSystem:A=null}=r,l=bo.fromOpts({locale:i,numberingSystem:A,defaultToEN:!0});return TX(l,t,n)}static fromStringExplain(t,n,r={}){return Gn.fromFormatExplain(t,n,r)}static buildFormatParser(t,n={}){const{locale:r=null,numberingSystem:i=null}=n,A=bo.fromOpts({locale:r,numberingSystem:i,defaultToEN:!0});return new RX(A,t)}static fromFormatParser(t,n,r={}){if($n(t)||$n(n))throw new ZA("fromFormatParser requires an input string and a format parser");const{locale:i=null,numberingSystem:A=null}=r,l=bo.fromOpts({locale:i,numberingSystem:A,defaultToEN:!0});if(!l.equals(n.locale))throw new ZA(`fromFormatParser called with a locale of ${l}, but the format parser was created for ${n.locale}`);const{result:c,zone:f,specificOffset:h,invalidReason:I}=n.explainFromTokens(t);return I?Gn.invalid(I):Yp(c,f,r,`format ${n.format}`,t,h)}static get DATE_SHORT(){return aQ}static get DATE_MED(){return gq}static get DATE_MED_WITH_WEEKDAY(){return Iwe}static get DATE_FULL(){return hq}static get DATE_HUGE(){return pq}static get TIME_SIMPLE(){return mq}static get TIME_WITH_SECONDS(){return Iq}static get TIME_WITH_SHORT_OFFSET(){return Cq}static get TIME_WITH_LONG_OFFSET(){return Eq}static get TIME_24_SIMPLE(){return Bq}static get TIME_24_WITH_SECONDS(){return yq}static get TIME_24_WITH_SHORT_OFFSET(){return vq}static get TIME_24_WITH_LONG_OFFSET(){return bq}static get DATETIME_SHORT(){return Qq}static get DATETIME_SHORT_WITH_SECONDS(){return wq}static get DATETIME_MED(){return xq}static get DATETIME_MED_WITH_SECONDS(){return _q}static get DATETIME_MED_WITH_WEEKDAY(){return Cwe}static get DATETIME_FULL(){return kq}static get DATETIME_FULL_WITH_SECONDS(){return Dq}static get DATETIME_HUGE(){return Sq}static get DATETIME_HUGE_WITH_SECONDS(){return Rq}}function cC(e){if(Gn.isDateTime(e))return e;if(e&&e.valueOf&&ef(e.valueOf()))return Gn.fromJSDate(e);if(e&&typeof e=="object")return Gn.fromObject(e);throw new ZA(`Unknown datetime argument: ${e}, of type ${typeof e}`)}let su,$S,eR,au,uC,wQ,Lg,xQ,tR,nR,YX,JX,zX,WX,qX,XX,VX,rR,KX,ZX,$X,eV,tV,nV,rV,oV,iV,AV,sV,aV,lV,cV,uV,dV,fV,gV,hV,pV,mV,IV,CV,oR,iR,AR,sR,aR,lR,cR,uR,dR,fR,gR,hR,pR,mR,IR,CR,EV,BV,ER,BR,yR,vR,bR,QR,yV,vV,bV,QV,wV,xV,wR,xR,_R,kR,DR,SR,RR,TR,MR,_V,kV,DV,NR,FR,SV,OR,jR,LR,RV,PR,TV,MV,NV,FV,OV,jV,_Q,UR,GR,HR,YR,JR,zR,WR,LV,PV,UV,GV,qR,XR,VR,KR,E0,kQ,ZR,HV,YV,JV,Qo,DQ,nf,Pg,B0,zV,SQ,$R,RQ,TQ,dC,lu,WV,qV,e5,XV,MQ,t5,n5,NQ,r5,o5,i5,A5,s5,a5,VV,KV,ZV,FQ,$V,eK,tK,nK,rK,oK,iK,OQ,l5,AK,sK,aK,lK,cK,fC,jQ,LQ,c5,u5,uK,d5,f5,dK,fK,gK,g5,h5,p5,m5,I5,C5,hK,pK,mK,IK,CK,EK,BK,yK,vK,bK,QK,wK,xK,_K,kK,DK,SK,RK,TK,MK,NK,FK,OK,jK,LK,PK;su="#67B873",Fc="#E5484D",$S="#C567EA",eR="#2A7EDF",au="#557AE0",uC="#1CE7C2",wQ="#B2BCC9",Lg="#67696A",xQ="#8E909D",tR="#B4B4B4",nR="#949494",YX="rgba(250, 250, 250, 0.12)",JX="rgba(250, 250, 250, 0.05)",zX="#24262B",WX="#F7F8F8",qX="#1C2129",XX="#333333",VX="#F7F7F7",rR=nR,KX="#00205F",ZX="#010102",$X="#03030C",eV="#A7A7A7",tV="#121213",nV=uC,rV="#3BA158",oV="#030312",iV="#020C12",AV="#120212",sV="#120212",aV="#252D2C",lV="#175E51",cV="#2D2B25",uV="#6A510C",dV="#E6B11E",fV="#2D2525",gV="#5E1717",hV="#CE3636",pV="#A2A2A2",mV="#454545",IV="#C8B3B3",CV="#686868",oR="#171765ff",iR="linear-gradient(270deg, #1414B8 -1.75%, #090952 101.75%)",AR="#8F8FED",sR="#0E0E8E",aR="#0C171D",lR="linear-gradient(270deg, #1481B8 0%, #093952 100%)",cR="#47B4EB",uR="#0F3F57",dR="#150915",fR="linear-gradient(270deg, #8B0E8B 0%, #250425 112.5%)",gR="#C06AC0",hR="#570F57",pR="#091515",mR=`linear-gradient(270deg, ${uC} 0%, #0C6B5A 100%)`,IR="#2EC9C9",CR="#0C6B5A",EV="rgba(16, 129, 108, 0.53)",BV="#ffffff1a",ER="#3972C9",BR="#74AFEA",yR="#0F1313",vR="#1CE7C2",bR="#163454",QR="#89603E",yV="#EF5F00",vV="#F76B15",bV="#0D9B8A",QV="#53B9AB",wV="#0588F0",xV="#0090FF",wR=uC,xR="#E7B81C",_R="#1C96E7",kR="#E7601C",DR="#9D1CE7",SR="#E71C88",RR="#898989",TR="#3CFF73",MR="#FFA73C",_V="#FF7878",kV="#FF9D0A",DV="#FFC267",NR="#141720",Vu="#BDF3FF",PB="#6F77C0",FR="#363A63",Qk="#20788C",SV="#167B91",OR="#006851",jR="#19307C",LR="#743F4D",RV="#919191",MB="#55BA83",NB="#D94343",PR="#232A38",TV="#676767",MV="#E13131",NV="#5F6FA9",FV="#A2A2A2",OV="#DB8F38",jV="#CACACA",_Q="#858585",UR="#312D42",GR="#792C2C",HR="#163454",YR="#89603E",JR="#3DB9CF",zR="#1CE7C2",WR="#FF5353",LV="#FAFAFA",PV="#3CB4FF",UV="#142D53",GV="#FF5353",qR="#494D73",XR="#23639E",VR="#5C5555",KR="#452909",E0="#C6C6C6",kQ="#183A5A",ZR="#10273D",HV="#7CE198",YV="#A4A3A3",JV="#1B659933",Qo="#777b84",DQ="#2C3235",nf="#D19DFF",Pg="#4CCCE6",B0="#1FD8A4",zV="#6A6A6E",SQ=Lg,$R="rgba(250, 250, 250, 0.05)",RQ="#30A46C",TQ="#E5484D",dC="#FF8DCC",lu="#9EB1FF",WV="#292929",qV="#9e9e9e",e5="#1d6fba",XV="#84858a",MQ="rgba(0, 0, 0, .5)",t5="rgba(125, 94, 84, .5)",n5="#A18072",NQ="#6C4E62",r5="rgba(158, 108, 0, .5)",o5="#836A21",i5="rgba(96, 100, 108, .5)",A5="#B5B2BC",s5="rgba(17, 50, 100, .5)",a5="#0090FF",VV="#41B9D3",KV="#008970",ZV="#a94dde",FQ="#AFB2C2",$V="#717171",eK="#B6ADAD",tK="#424242",nK="rgba(114, 114, 114, 0.15)",rK="#6AAFFF",oK="#FF7072",iK="#646464",OQ="#676767",l5="#8A8A8A",AK="#CBCBCB",sK="#1190CF",aK="#6CB1D3",lK="#967DC8",cK="#6D6F71",fC="#871616",jQ="#1d863b",LQ="#1d6286",c5="#1CE7C2",u5="#076B59",uK="#313131",d5="#666666",f5=LQ,dK="#19457A",fK="#FFF",gK="var(--gray-10)",g5="var(--teal-9)",h5="var(--cyan-9)",p5="var(--red-8)",m5="var(--sky-8)",I5="var(--green-9)",C5="var(--indigo-10)",hK="var(--blue-9)",pK="#15181e",mK="#9aabc3",IK="#250f0f",CK="#283551",EK="#3b0c0c",BK="#e3efff",yK="#484D53B2",vK="#070A13",bK="#070B14 ",QK="rgba(42, 126, 223, 0.5)",wK="rgba(125, 125, 125, 0.50)",xK="#2A7EDF",_K="#070a13",kK="#0D0D0D",DK="#250f0f",SK="#002163",RK="#3b0c0c",TK="#848484",MK="#A0A0A0",NK="#ccc",FK="#878787",OK="rgba(191, 135, 253, 0.13)",jK="#283551",LK="#37a4bc",PK=Object.freeze(Object.defineProperty({__proto__:null,appTeal:uC,bootProgressCatchupBackgroundColor:sV,bootProgressFullSnapshotBackgroundColor:iV,bootProgressGossipBackgroundColor:oV,bootProgressGossipBarsColor:aV,bootProgressGossipFilledBarColor:lV,bootProgressGossipHighBarColor:fV,bootProgressGossipHighFilledBarColor:gV,bootProgressGossipHighThresholdBarColor:hV,bootProgressGossipMidBarColor:cV,bootProgressGossipMidFilledBarColor:uV,bootProgressGossipMidThresholdBarColor:dV,bootProgressIncrSnapshotBackgroundColor:AV,bootProgressPrimaryTextColor:pV,bootProgressSecondaryTextColor:mV,bootProgressSnapshotPctColor:IV,bootProgressSnapshotUnitsColor:CV,cardBackgroundColor:NR,chartAxisColor:Qo,chartGridColor:DQ,chartGridStrokeColor:$R,circularProgressPathColor:f5,circularProgressTrailColor:d5,clusterDevelopmentColor:_R,clusterDevnetColor:kR,clusterMainnetBetaColor:wR,clusterPythnetColor:DR,clusterPythtestColor:SR,clusterTestnetColor:xR,clusterUnknownColor:RR,computeUnitsColor:nf,connectedColor:TR,connectingColor:MR,containerBackgroundColor:JX,containerBorderColor:YX,dropdownBackgroundColor:zX,dropdownButtonTextColor:WX,elapsedTimeColor:zV,epochNotLiveColor:PV,epochSkippedSlotColor:GV,epochSliderProgressColor:UV,epochTextColor:LV,errorToggleColor:TQ,fadedText:XV,failureColor:Fc,feesColor:Pg,firstTurbineSlotColor:ER,focusedBorderColor:e5,gossipDelinquentPubkeyColor:cK,gridLineColor:UR,gridTicksColor:_Q,headerColor:Vu,headerLabelTextColor:nR,iconButtonColor:tR,incomePerCuToggleControlColor:lu,latestTurbineSlotColor:BR,missingSlotColor:yR,mySlotsColor:eR,mySlotsOnColor:rK,navButtonInactiveTextColor:rR,navButtonTextColor:VX,needsReplaySlotColor:bR,nextColor:$S,nextSlotValueColor:jV,nonDelinquentChartColor:FR,nonDelinquentColor:PB,nonVoteColor:su,popoverBackgroundColor:qX,primaryTextColor:wQ,progressBackgroundColor:SV,progressBarCompleteCatchupColor:CR,progressBarCompleteFullSnapshotColor:uR,progressBarCompleteGossipColor:sR,progressBarCompleteIncSnapshotColor:hR,progressBarInProgressCatchupBackground:mR,progressBarInProgressCatchupBorder:IR,progressBarInProgressFullSnapshotBackground:lR,progressBarInProgressFullSnapshotBorder:cR,progressBarInProgressGossipBackground:iR,progressBarInProgressGossipBorder:AR,progressBarInProgressIncSnapshotBackground:fR,progressBarInProgressIncSnapshotBorder:gR,progressBarIncompleteCatchupColor:pR,progressBarIncompleteFullSnapshotColor:aR,progressBarIncompleteGossipColor:oR,progressBarIncompleteIncSnapshotColor:dR,regularTextColor:xQ,repairedNeedsReplaySlotColor:QR,repairedSlotsBoldTextColor:vV,repairedSlotsTextColor:yV,replayedSlotColor:vR,replayedSlotsBoldTextColor:QV,replayedSlotsTextColor:bV,requestedToggleControlColor:dC,rowSeparatorBackgroundColor:XX,sankeyBaseLabelColor:E0,sankeyDroppedLinkColor:VR,sankeyIncomingLinkColor:XR,sankeyLinkGradientEndColor:kQ,sankeyLinkGradientMiddleColor:ZR,sankeyRetainedLinkColor:KR,sankeyStartEndNodeColor:qR,sankeySuccessRateColor:HV,searchDisabledBackgroundColor:nK,searchDisabledTextColor:tK,searchIconColor:FQ,searchLabelColor:$V,searchSlotsOnLabelColor:eK,secondaryTextColor:Lg,shredReceivedRepairColor:YR,shredReceivedTurbineColor:HR,shredRepairRequestedColor:GR,shredReplayStartedColor:JR,shredReplayedColor:zR,shredSkippedColor:WR,skipRateLabelColor:iK,skippedSlotsOnColor:oK,slotCardHeaderTextColor:AK,slotCardSectionBackgroundColor:OQ,slotCardSectionColor:l5,slotDetailsBackgroundColor:pK,slotDetailsClickableSlotColor:hK,slotDetailsColor:mK,slotDetailsDisabledSlotBorderColor:yK,slotDetailsEarliestSlotColor:g5,slotDetailsFeesSlotColor:m5,slotDetailsMySlotsNotSelectedColor:dK,slotDetailsQuickSearchTextColor:gK,slotDetailsRecentSlotColor:h5,slotDetailsRewardsSlotColor:C5,slotDetailsSearchLabelColor:fK,slotDetailsSelectedBackgroundColor:CK,slotDetailsSelectedColor:BK,slotDetailsSkippedBackgroundColor:IK,slotDetailsSkippedSelectedBackgroundColor:EK,slotDetailsSkippedSlotColor:p5,slotDetailsTipsSlotColor:I5,slotNavBackgroundColor:ZX,slotNavFilterBackgroundColor:KX,slotSelectorItemBackgroundColor:JV,slotSelectorTextColor:YV,slotStatusBlue:LQ,slotStatusDullTeal:u5,slotStatusGray:uK,slotStatusGreen:jQ,slotStatusRed:fC,slotStatusTeal:c5,slotTextActiveLinkColor:aK,slotTextLinkColor:sK,slotTextVisitedLinkColor:lK,slotsListBackgroundColor:_K,slotsListCurrentSlotBoxShadowColor:OK,slotsListCurrentSlotNumberBackgroundColor:jK,slotsListFutureSlotBackgroundColor:kK,slotsListFutureSlotColor:FK,slotsListMySlotBackgroundColor:bK,slotsListMySlotsBorderColor:QK,slotsListMySlotsSelectedBorderColor:xK,slotsListNextLeaderProgressBarColor:LK,slotsListNotProcessedMySlotsBorderColor:wK,slotsListPastSlotColor:MK,slotsListPastSlotNumberColor:TK,slotsListSelectedBackgroundColor:SK,slotsListSkippedBackgroundColor:DK,slotsListSkippedSelectedBackgroundColor:RK,slotsListSlotBackgroundColor:vK,slotsListSlotColor:NK,snapshotAreaChartDark:EV,snapshotAreaChartGridLineColor:BV,startLineColor:SQ,startupBackgroundColor:$X,startupCompleteStepColor:rV,startupProgressBackgroundColor:tV,startupProgressTealColor:nV,startupTextColor:eV,successToggleColor:RQ,summaryAgaveTextColor:ZV,summaryFdTextColor:KV,summaryMySlotsColor:VV,tileBackgroundBlueColor:NV,tileBackgroundRedColor:MV,tileBusyGreenColor:MB,tileBusyRedColor:NB,tilePrimaryStatValueColor:OV,tileSparklineBackgroundColor:PR,tileSparklineRangeTextColor:TV,tileSubHeaderColor:FV,tipsColor:B0,toastConnectingEndColor:DV,toastConnectingStartColor:kV,toastDisconnectedColor:_V,toggleItemBackgroundColor:WV,toggleItemTextColor:qV,totalValidatorsColor:Qk,transactionAxisTextColor:RV,transactionDefaultColor:MQ,transactionExecuteColor:i5,transactionExecuteTextColor:A5,transactionFailedPathColor:LR,transactionLoadingColor:r5,transactionLoadingTextColor:o5,transactionNonVotePathColor:OR,transactionPostExecuteColor:s5,transactionPostExecuteTextColor:a5,transactionPreloadingColor:t5,transactionPreloadingTextColor:n5,transactionValidateColor:NQ,transactionVotePathColor:jR,turbineSlotsBoldTextColor:xV,turbineSlotsTextColor:wV,votesColor:au},Symbol.toStringTag,{value:"Module"}));function E5(e,t){return e.leader_slots.reduce((n,r,i)=>(e.staked_pubkeys[r]===t&&n.push(i*vo+e.start_slot),n),[])}function es(e){return e-e%vo}const B5=[{unit:"years",suffix:"y"},{unit:"months",suffix:"m"},{unit:"weeks",suffix:"w"},{unit:"days",suffix:"d"},{unit:"hours",suffix:"h"},{unit:"minutes",suffix:"m"},{unit:"seconds",suffix:"s"}];function f_e(e,t){if(t!=null&&t.showOnlyTwoSignificantUnits){const n=B5.findIndex(({unit:r})=>!!e[r]);return B5.slice(n,n+2).map(({unit:r,suffix:i})=>[e[r],i])}return B5.filter(({unit:n})=>t!=null&&t.omitSeconds&&n==="seconds"?!1:!!e[n]).map(({unit:n,suffix:r})=>[e[n],r])}function UK(e,t){if(!e)return;if(e.toMillis()<1e3)return[[0,"s"]];const n=f_e(e,t);return n.length?n:[[0,"s"]]}function Ug(e,t){const n=UK(e,t);return n?n.map(([r,i])=>`${r}${i}`).join(" "):"Never"}function g_e(e,t={showSeconds:!0}){if(!e)return"Never";if(e.toMillis()<0)return"0s";let n="";return e.years&&(n&&(n+=" "),n+=`${e.years}y`),e.months&&(n&&(n+=" "),n+=`${e.months}m`),e.weeks&&(n&&(n+=" "),n+=`${e.weeks}w`),e.days&&(n&&(n+=" "),n+=`${e.days}d`),e.hours&&(n&&(n+=" "),n+=`${e.hours}h`),e.minutes&&(n&&(n+=" "),n+=`${e.minutes}m`),e.seconds&&t.showSeconds&&(n&&(n+=" "),n+=`${e.seconds}s`),n||(n="0s"),n}let gC=Gn.now();setInterval(()=>{gC=Gn.now()},1e3);function PQ(e){return e!==void 0}const Jp=e=>e>=18446744073709552e3?0:e;function GK(e){return e.vote.reduce((t,{activated_stake:n})=>t+n,0n)}function hC(e,t){if(e===void 0)return;const n=Number(e)/ga;return n<1?n.toLocaleString(void 0,{maximumFractionDigits:t}):n<100?n.toLocaleString(void 0,{maximumFractionDigits:2}):n.toLocaleString(void 0,{maximumFractionDigits:0})}function UQ(e,t){const n=hC(e,t);if(n!==void 0)return`${n}\xA0SOL`}const h_e=e=>Array.isArray(e);function p_e(e){if(navigator.clipboard){navigator.clipboard.writeText(e);return}const t=document.createElement("textarea");t.value=e,t.style.position="absolute",t.style.left="-999999px",document.body.appendChild(t),t.select();try{document.execCommand("copy")||console.error("Failed to copy text",e)}catch(n){console.error("Failed to copy text",e,n)}finally{document.body.removeChild(t)}}function m_e(e){const t=e.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}function GQ(e,t){return e.txn_landed[t]&&![5,6].includes(e.txn_error_code[t])?e.txn_priority_fee[t]+e.txn_transaction_fee[t]:0n}function HQ(e,t){return e.txn_landed[t]&&e.txn_error_code[t]===0?e.txn_tips[t]:0n}function y0(e,t){return GQ(e,t)+HQ(e,t)}function y5(e){return e.split(":")[0]}function v5(e){switch(e){case"mainnet-beta":return wR;case"testnet":return xR;case"development":return _R;case"devnet":return kR;case"pythnet":return DR;case"pythtest":return SR;case"unknown":case void 0:return RR}}function HK(e){const t=e*8;return t<1e3?{value:t,unit:"bit"}:t<1e6?{value:b5(t/1e3),unit:"Kbit"}:t<1e9?{value:b5(t/1e6),unit:"Mbit"}:{value:b5(t/1e9),unit:"Gbit"}}function b5(e){return e>=9.5?Math.round(e):Math.round(e*10)/10}const _a=$e(void 0),I_e=$e(null,(e,t,n)=>{var f;const r=e(vi);if(!r)return;if(n=n.trim(),!n){t(_a,void 0),t(wo,void 0);return}const i=parseInt(n,10);if(!isNaN(i)&&i>=r.start_slot&&i<=r.end_slot){t(_a,void 0),t(wo,i);return}if(n.length<3){t(_a,[]),t(wo,void 0);return}const A=n.split(/[,;]/).map(h=>h.trim().toLowerCase()).filter(h=>!!h),l=(f=e(sZ))==null?void 0:f.filter(({name:h,pubkey:I})=>A.some(B=>(h==null?void 0:h.includes(B))||I.toLowerCase().includes(B))).map(({pubkey:h})=>h);if(!(l!=null&&l.length)){t(_a,[]),t(wo,void 0);return}const c=l.flatMap(h=>E5(r,h)).sort();t(_a,c)}),C_e=$e(null,(e,t)=>{const n=e(_a);if(!n)return;const r=e(wo),i=e(dl),A=n.map(f=>Math.abs(f-(r??i??0))),l=Math.min(...A),c=Math.max(A.indexOf(l),0);t(wo,n[c])}),E_e=$e(null,(e,t,n)=>{const r=e(wo),i=e(_a),A=e(dl);if(A!==void 0)if(i!=null&&i.length)if(r!==void 0){const l=i.map(h=>Math.abs(h-r)),c=Math.min(...l),f=Math.max(l.indexOf(c),0);if(f>=0){const h=Math.min(Math.max(f+Math.trunc(n/4),0),i.length-1);t(wo,i[h])}}else t(C_e);else r!==void 0?t(wo,r+n):t(wo,n+A+vo*3)});var Gg=(e=>(e.Valid="valid",e.NotReady="invalid",e.OutsideEpoch="outside-epoch",e.BeforeFirstProcessed="before-first-processed",e.Future="future",e.NotYou="not-you",e))(Gg||{});function YK(e,t,n,r,i){return e===void 0?"valid":!t||!n||r===void 0||i===void 0?"invalid":e=i?"future":"valid":"not-you"}const pC=function(){const e=$e(),t=$e(!1);return $e(n=>{const r=n(vi),i=n(e),A=n(eA),l=n(v0),c=n($i),f=YK(i,r,A,l,c);return{slot:i,state:f,isValid:f==="valid",isInitialized:n(t)}},(n,r,i,A)=>{const l=n(eA),c=n(v0),f=n($i);if(!A||!l||c===void 0||f===void 0){r(e,void 0);return}r(e,i),r(t,!0),YK(i,A,l,c,f)==="valid"&&i!==void 0&&r(wo,i)})}(),Vr=$e(e=>{const{slot:t,isValid:n}=e(pC);return n?t:void 0});var OA=(e=>(e.Count="Count",e.Pct="Pct %",e.Rate="Rate",e))(OA||{});const zp=$e("Count"),JK=$e(e=>{if(!e(Vr))return e(jb)}),B_e=$e(e=>{const t=e(JK),n=e(Qp);return t==null?void 0:t.reduce((r,i,A)=>{var f;const l=n==null?void 0:n[A];if(!l)return r;const c=CS.safeParse(l.kind);return c.error||(r[f=c.data]??(r[f]=[]),r[c.data].push(i)),r},{})}),y_e=$e(e=>{const t=e(Qp),n=["snapld","snapdc","snapin"];if(!t)return;const r=t.reduce((i,A,l)=>{const c=CS.safeParse(A.kind);if(c.error||!n.includes(c.data))return i;const f=i.get(c.data)??[];return f.push(l),i.set(c.data,f),i},new Map);return Array.from(r.entries()).map(([i,A])=>[i,A])}),v_e=$e(e=>{const t=e(jb),n=e(y_e);if(!(!t||!n))return n.reduce((r,[i,A])=>(r[i]=A.map(l=>t[l]),r),{})}),b_e=$e(e=>{var t;return e(Vr)?void 0:e(zp)==="Rate"?e(WK):(t=e(rS))==null?void 0:t.waterfall}),zK=sl([]),WK=$e(e=>{var A;if(e(zp)!=="Rate")return;const t=e(zK);if(t.length<2)return(A=t[0])==null?void 0:A.waterfall;const n=t[t.length-1],r=t[0],i=(n.ts-r.ts)/1e3;return bW(n.waterfall,l=>{for(const c in l.in)if(Object.prototype.hasOwnProperty.call(l.in,c)){const f=l.in[c]-r.waterfall.in[c];l.in[c]=Math.trunc(f/i)}for(const c in l.out)if(Object.prototype.hasOwnProperty.call(l.out,c)){const f=l.out[c]-r.waterfall.out[c];l.out[c]=Math.trunc(f/i)}})},(e,t,n)=>{t(zK,r=>{const i=performance.now();for(n&&r.push({waterfall:n,ts:i});r.length&&i-r[0].ts>1e3;)r.shift();const A=Object.values(r[r.length-1].waterfall.in);for(;r.length>1&&Object.values(r[0].waterfall.in).some((l,c)=>A[c]-l<0);)r.shift()})}),Q_e=$e(!1),mC=$e(e=>{const t=e(Qp);return sr.countBy(t,n=>n.kind)}),w_e={};function Q5(e,t){let n=null;const r=new Map,i=new Set,A=c=>{let f;if(f=r.get(c),f!==void 0)if(n!=null&&n(f[1],c))A.remove(c);else return f[0];const h=e(c);return r.set(c,[h,Date.now()]),l("CREATE",c,h),h},l=(c,f,h)=>{for(const I of i)I({type:c,param:f,atom:h})};return A.unstable_listen=c=>(i.add(c),()=>{i.delete(c)}),A.getParams=()=>r.keys(),A.remove=c=>{{if(!r.has(c))return;const[f]=r.get(c);r.delete(c),l("REMOVE",c,f)}},A.setShouldRemove=c=>{if(n=c,!!n)for(const[f,[h,I]]of r)n(I,f)&&(r.delete(f),l("REMOVE",f,h))},A}const x_e=e=>typeof(e==null?void 0:e.then)=="function";function __e(e=()=>{try{return window.localStorage}catch(n){(w_e?"production":void 0)!=="production"&&typeof window<"u"&&console.warn(n);return}},t){var n;let r,i;const A={getItem:(f,h)=>{var I,B;const v=S=>{if(S=S||"",r!==S){try{i=JSON.parse(S,t==null?void 0:t.reviver)}catch{return h}r=S}return i},D=(B=(I=e())==null?void 0:I.getItem(f))!=null?B:null;return x_e(D)?D.then(v):v(D)},setItem:(f,h)=>{var I;return(I=e())==null?void 0:I.setItem(f,JSON.stringify(h,void 0))},removeItem:f=>{var h;return(h=e())==null?void 0:h.removeItem(f)}},l=f=>(h,I,B)=>f(h,v=>{let D;try{D=JSON.parse(v||"")}catch{D=B}I(D)});let c;try{c=(n=e())==null?void 0:n.subscribe}catch{}return!c&&typeof window<"u"&&typeof window.addEventListener=="function"&&window.Storage&&(c=(f,h)=>{if(!(e()instanceof window.Storage))return()=>{};const I=B=>{B.storageArea===e()&&B.key===f&&h(B.newValue)};return window.addEventListener("storage",I),()=>{window.removeEventListener("storage",I)}}),c&&(A.subscribe=l(c)),A}__e();var k_e={isEqual:!0,isMatchingKey:!0,isPromise:!0,maxSize:!0,onCacheAdd:!0,onCacheChange:!0,onCacheHit:!0,transformKey:!0},D_e=Array.prototype.slice;function YQ(e){var t=e.length;return t?t===1?[e[0]]:t===2?[e[0],e[1]]:t===3?[e[0],e[1],e[2]]:D_e.call(e,0):[]}function S_e(e){var t={};for(var n in e)k_e[n]||(t[n]=e[n]);return t}function R_e(e){return typeof e=="function"&&e.isMemoized}function T_e(e,t){return e===t||e!==e&&t!==t}function qK(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n}var M_e=function(){function e(t){this.keys=[],this.values=[],this.options=t;var n=typeof t.isMatchingKey=="function";n?this.getKeyIndex=this._getKeyIndexFromMatchingKey:t.maxSize>1?this.getKeyIndex=this._getKeyIndexForMany:this.getKeyIndex=this._getKeyIndexForSingle,this.canTransformKey=typeof t.transformKey=="function",this.shouldCloneArguments=this.canTransformKey||n,this.shouldUpdateOnAdd=typeof t.onCacheAdd=="function",this.shouldUpdateOnChange=typeof t.onCacheChange=="function",this.shouldUpdateOnHit=typeof t.onCacheHit=="function"}return Object.defineProperty(e.prototype,"size",{get:function(){return this.keys.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"snapshot",{get:function(){return{keys:YQ(this.keys),size:this.size,values:YQ(this.values)}},enumerable:!1,configurable:!0}),e.prototype._getKeyIndexFromMatchingKey=function(t){var n=this.options,r=n.isMatchingKey,i=n.maxSize,A=this.keys,l=A.length;if(!l)return-1;if(r(A[0],t))return 0;if(i>1){for(var c=1;c1){for(var f=0;f1){for(var l=0;l=f&&(i.length=A.length=f)},e.prototype.updateAsyncCache=function(t){var n=this,r=this.options,i=r.onCacheChange,A=r.onCacheHit,l=this.keys[0],c=this.values[0];this.values[0]=c.then(function(f){return n.shouldUpdateOnHit&&A(n,n.options,t),n.shouldUpdateOnChange&&i(n,n.options,t),f},function(f){var h=n.getKeyIndex(l);throw h!==-1&&(n.keys.splice(h,1),n.values.splice(h,1)),f})},e}();function Hg(e,t){if(t===void 0&&(t={}),R_e(e))return Hg(e.fn,qK(e.options,t));if(typeof e!="function")throw new TypeError("You must pass a function to `memoize`.");var n=t.isEqual,r=n===void 0?T_e:n,i=t.isMatchingKey,A=t.isPromise,l=A===void 0?!1:A,c=t.maxSize,f=c===void 0?1:c,h=t.onCacheAdd,I=t.onCacheChange,B=t.onCacheHit,v=t.transformKey,D=qK({isEqual:r,isMatchingKey:i,isPromise:l,maxSize:f,onCacheAdd:h,onCacheChange:I,onCacheHit:B,transformKey:v},S_e(t)),S=new M_e(D),R=S.keys,F=S.values,N=S.canTransformKey,M=S.shouldCloneArguments,P=S.shouldUpdateOnAdd,G=S.shouldUpdateOnChange,J=S.shouldUpdateOnHit,W=function(){var q=M?YQ(arguments):arguments;N&&(q=v(q));var $=R.length?S.getKeyIndex(q):-1;if($!==-1)J&&B(S,D,W),$&&(S.orderByLru(R[$],F[$],$),G&&I(S,D,W));else{var oe=e.apply(this,arguments),K=M?q:YQ(arguments);S.orderByLru(K,oe,R.length),l&&S.updateAsyncCache(W),P&&h(S,D,W),G&&I(S,D,W)}return F[0]};return W.cache=S,W.fn=e,W.isMemoized=!0,W.options=D,W}let Yg;Oc=$e(()=>{const e=JW.safeParse("Frankendancer".trim());return e.error?Au.Frankendancer:e.data}),Yg=$e(),$e();const N_e=$e(!1),XK=$e(),w5=sl([]),vi=$e(e=>{const t=e($i),n=e(w5);if(!n.length||t===void 0)return;const r=n.find(({start_slot:i,end_slot:A})=>t>=i&&t<=A);if(r)return r},(e,t,n)=>{t(w5,r=>{r.push(n)})}),F_e=$e(e=>{const t=e(vi);return t?e(w5).find(n=>n.epoch===(t==null?void 0:t.epoch)+1):void 0}),[wo,O_e]=function(){const e=$e();return[$e(t=>t(e),(t,n,r)=>{const i=t(vi);if(!i)return;const A=r===void 0?void 0:sr.clamp(es(r),i.start_slot,i.end_slot);n(e,A)}),$e(t=>t(e)===void 0)]}(),x5=sl({}),j_e=Hg(e=>$e(t=>e!==void 0&&t(x5)[e]||"incomplete"),{maxSize:1e3});var IC=(e=>(e.AllSlots="All Slots",e.MySlots="My Slots",e))(IC||{});const Wp=function(){const e=$e();return $e(t=>t(e)??"All Slots",(t,n,r)=>{n(e,r);const i=t(Vr);n(wo,i??void 0)})}(),L_e=$e(null,(e,t,n,r)=>{(r==="completed"||r==="optimistically_confirmed"||r==="rooted")&&t($i,n+1),t(x5,i=>{i[n]=r})}),VK=10,P_e=$e(e=>{const t=e(eA),n=e(Vr);if(t===void 0||n===void 0)return;const r=t.indexOf(es(n));if(r!==-1)return t.slice(Math.max(r-VK,0),r+VK)}),JQ=1e3,U_e=$e(null,(e,t)=>{const n=e(wo),r=e(P_e),i=e($i),A=e(_a),l=e(eA),c=e(Wp),f=n??i;f!==void 0&&t(x5,h=>{const I=f-JQ/2,B=f+JQ/2,v=Object.keys(h);for(const D of v){const S=Number(D),R=es(S);A!=null&&A.includes(R)||r!=null&&r.includes(R)||c==="My Slots"&&(l!=null&&l.includes(R))||!isNaN(S)&&(SB)&&delete h[S]}})}),zQ=sl({}),_5=Q5(e=>$e(t=>{var n;return e!==void 0?(n=t(zQ)[e])==null?void 0:n.publish:void 0})),KK=Q5(e=>$e(t=>e!==void 0?t(zQ)[e]:void 0)),G_e=$e(null,(e,t,n)=>{const r=n.publish.slot;t(zQ,i=>{var A,l,c,f,h,I,B;n.transactions??(n.transactions=(A=i[r])==null?void 0:A.transactions),n.tile_primary_metric??(n.tile_primary_metric=(l=i[r])==null?void 0:l.tile_primary_metric),n.tile_timers??(n.tile_timers=(c=i[r])==null?void 0:c.tile_timers),n.waterfall??(n.waterfall=(f=i[r])==null?void 0:f.waterfall),n.scheduler_counts??(n.scheduler_counts=(h=i[r])==null?void 0:h.scheduler_counts),n.limits??(n.limits=(I=i[r])==null?void 0:I.limits),n.scheduler_stats??(n.scheduler_stats=(B=i[r])==null?void 0:B.scheduler_stats),i[r]=n})}),H_e=$e(null,(e,t)=>{const n=e(wo),r=e(Vr),i=e($i),A=e(_a),l=n??i,c=e(Wp),f=e(eA);l!==void 0&&t(zQ,h=>{const I=l-JQ/2,B=l+JQ/2,v=Object.keys(h);for(const D of v){const S=Number(D),R=es(S);A!=null&&A.length&&A.includes(R)||r!==void 0&&R===es(r)||c==="My Slots"&&(f!=null&&f.includes(R))||!isNaN(S)&&(SB)&&(delete h[S],_5.remove(S))}})}),v0=$e(e=>{var t;if(e(Oc)===Au.Frankendancer){const n=e(nc);return(n==null?void 0:n.ledger_max_slot)==null?void 0:n.ledger_max_slot+1}return((t=e(Wd))==null?void 0:t.catching_up_first_replay_slot)??void 0}),ZK=$e(e=>{const t=e(eA),n=e(v0);if(!t||n===void 0)return;const r=t.findIndex(i=>i>=n);return r!==-1?r:void 0});$e(e=>{const t=e(eA),n=e(ZK);return n?t==null?void 0:t[n]:void 0});let WQ,k5,$i,eA,$K,qp,CC,eZ,D5,tZ,dl,S5,R5,nZ,rZ,oZ,iZ,T5,AZ,sZ,aZ,Jg,M5,N5,F5,lZ,cZ,uZ,dZ,qQ,rf,fZ,XQ,gZ,VQ,Xp,O5,hZ,zg,pZ,EC,j5,mZ,L5,P5,IZ,CZ,EZ,U5;WQ=$e(e=>{const t=e(eA),n=e(qp);return n?t==null?void 0:t[n-1]:void 0}),k5=$e(void 0),$i=$e(e=>e(k5),(e,t,n)=>{const r=e(CC);(r===void 0||n>=r)&&t(CC,n),t(k5,i=>Math.max(n,i??0))}),eA=$e(e=>{const t=e(vi),n=e(wg);if(!(!t||!n))return E5(t,n)}),$K=$e(e=>{const t=e(F_e),n=e(wg);if(!(!t||!n))return E5(t,n)}),qp=$e(void 0),CC=$e(e=>{const t=e(eA),n=e(qp);if(!(!t||n===void 0))return t[n]},(e,t,n)=>{const r=e(eA);r!=null&&t(qp,i=>{let A=i??0;for((r[A-1]??0)>n&&(A=0);A=r.length))return A})}),eZ=$e(e=>{const t=e($K);if(t)return t[0]}),D5=$e(e=>{const t=e(eA),n=e(qp);if(t)return n===void 0?t[t.length-1]:t[n-1]}),tZ=$e(e=>{const t=e($i),n=e(D5);return t===void 0||n===void 0?!1:t>=n&&t<=n+vo}),dl=$e(e=>{const t=e($i);if(t!=null)return es(t)}),jl=sl({}),S5=$e(e=>Object.values(e(jl))),R5=Q5(e=>$e(t=>e!==void 0?t(jl)[e]:void 0)),nZ=$e(null,(e,t,n)=>{n!=null&&n.length&&t(jl,r=>{for(const i of n)r[i.identity_pubkey]=i})}),rZ=$e(null,(e,t,n)=>{n!=null&&n.length&&t(jl,r=>{for(const i of n)r[i.identity_pubkey]=sr.merge(r[i.identity_pubkey],i)})}),oZ=3e5,iZ=$e(null,(e,t,n)=>{n!=null&&n.length&&(t(jl,r=>{for(const i of n)r[i.identity_pubkey]&&(r[i.identity_pubkey].removed=!0,R5.remove(i.identity_pubkey))}),setTimeout(()=>{t(jl,r=>{for(const i of n)r[i.identity_pubkey]&&delete r[i.identity_pubkey]})},oZ))}),E2=$e(e=>{const t=e(jl);if(!t)return;const n=Object.values(t).filter(c=>!c.removed),r=n.filter(c=>c.vote.every(f=>!f.activated_stake)&&!!c.gossip),i=n.filter(c=>c.vote.some(f=>f.activated_stake)),A=n.reduce((c,f)=>f.vote.reduce((h,I)=>I.delinquent?h:h+I.activated_stake,0n)+c,0n),l=n.reduce((c,f)=>f.vote.reduce((h,I)=>I.delinquent?h+I.activated_stake:h,0n)+c,0n);return{rpcCount:r.length,validatorCount:i.length,activeStake:A,delinquentStake:l}}),T5=$e(e=>{const t=e(jl),n=e(wg),r=e(E2);if(!t||!n||!r)return;const i=t[n];if(i)return GK(i)}),AZ=$e(e=>{const t=e(E2),n=e(T5);if(!(n===void 0||!t)&&t.activeStake+t.delinquentStake)return Number(n)/Number(t.activeStake+t.delinquentStake)*100}),sZ=$e(e=>{const t=e(vi),n=e(jl);return!t||!n?void 0:[...new Set(t.leader_slots.map(r=>t.staked_pubkeys[r]))].map(r=>{var i,A,l;return{pubkey:r,name:(l=(A=(i=n[r])==null?void 0:i.info)==null?void 0:A.name)==null?void 0:l.toLowerCase()}})}),aZ=Hg(e=>$e(t=>{if(e===void 0)return!0;const n=t($i);return n===void 0||e>=n}),{maxSize:1e3}),Jg=$e(e=>{const t=e(nS);if(!t)return 450;const n=Math.trunc(t/1e6);return Math.max(50,Math.min(n,1e4))}),M5=sl({}),N5=$e(e=>{const t=e(vi);if(t)return e(M5)[t.epoch]},(e,t,n)=>{t(M5,r=>{r[n.epoch]=n})}),F5=$e(e=>{const t=e($i);if(t===void 0)return null;const n=e(wo);return n===void 0?"Live":es(n)===es(t)?"Current":n>t?"Future":"Past"}),[lZ,cZ,uZ,dZ]=function(){const e=sl(new Set);return[$e(t=>t(e)),$e(null,(t,n,r)=>{n(e,i=>{for(const A of r)i.add(A)})}),$e(null,(t,n,r)=>{n(e,i=>{i.delete(r)})}),$e(null,(t,n,r,i)=>{n(e,A=>{const l=new Set;for(const c of A)ci||l.add(c);return l})})]}(),qQ=$e(null),rf=$e(e=>{var t,n;return((t=e(Wd))==null?void 0:t.loading_incremental_snapshot_slot)??((n=e(Wd))==null?void 0:n.loading_full_snapshot_slot)}),fZ=$e(e=>{const t=e(rf),n=e(XQ);return t!=null&&!!n.size}),[XQ,gZ,VQ,Xp]=function(){const e=sl(new Set),t=$e(),n=$e();return[$e(r=>r(e)),$e(null,(r,i,A)=>{i(e,l=>{A.forEach(c=>{l.add(c),i(t,f=>f?Math.min(f,c):c),i(n,f=>f?Math.max(f,c):c)})})}),$e(r=>r(t)),$e(r=>r(n))]}(),[O5,hZ]=function(){const e=sl(new Set);return[$e(t=>t(e)),$e(null,(t,n,r)=>{n(e,i=>{r.forEach(A=>{i.add(A)})})})]}(),Im=$e(e=>{var t;return(t=e(Wd))==null?void 0:t.phase}),[zg,pZ]=function(){const e=$e(!0),t=$e();return[$e(n=>n(e),(n,r,i)=>{r(e,i),r(t,i?void 0:n(Xp)??-1)}),$e(n=>n(t))]}(),EC=$e(!0),j5=$e(null),mZ=$e(e=>{const t=e(zg);if(!t)return!1;const n=e(Oc);return n===Au.Frankendancer?t:n===Au.Firedancer?t&&e(EC):!0}),L5=$e(e=>{const t=e(Wd);if(!t)return 0;switch(t.phase){case uA.joining_gossip:return 0;case uA.loading_full_snapshot:{const n=t.loading_full_snapshot_total_bytes_compressed,r=t.loading_full_snapshot_insert_bytes_decompressed,i=t.loading_full_snapshot_decompress_bytes_compressed,A=t.loading_full_snapshot_decompress_bytes_decompressed;if(!r||!i||!A||!n)return 0;const l=r*(i/A);return Math.min(100,l/n*100)}case uA.loading_incremental_snapshot:{const n=t.loading_incremental_snapshot_total_bytes_compressed,r=t.loading_incremental_snapshot_insert_bytes_decompressed,i=t.loading_incremental_snapshot_decompress_bytes_decompressed,A=t.loading_incremental_snapshot_decompress_bytes_decompressed;if(!r||!i||!A||!n)return 0;const l=r*(i/A);return Math.min(100,l/n*100)}case uA.catching_up:{const n=e(rf),r=e(Xp),i=e(KI);if(n==null||r==null||i==null)return 0;const A=r-n+1;return A?100*(i-n+1)/A:0}case uA.running:return 0}}),P5="/assets/firedancer-D_J0EzUc.svg",IZ="/assets/frankendancer-0Top5G94.svg",CZ="_text_o41r7_1",EZ="_container_o41r7_6",U5={text:CZ,container:EZ};function Y_e({label:e,hide:t}){const n=t?{visibility:"hidden"}:{};return p.jsx(Fe,{gap:"2",align:"center",style:n,className:U5.container,children:p.jsx(Se,{className:U5.text,children:e})})}const J_e="_container_1tszc_1",z_e="_text_1tszc_11",BZ={container:J_e,text:z_e};function W_e({label:e,hide:t,rightChildren:n,bottomChildren:r}){const i=t?{visibility:"hidden"}:{};return p.jsxs("div",{className:BZ.container,style:i,children:[p.jsx(Fe,{justify:"center",align:"center",children:p.jsx(nb,{})}),p.jsxs(Fe,{gap:"2",align:"center",children:[p.jsxs(Se,{className:BZ.text,children:[e,"..."]}),p.jsx(Bo,{flexGrow:"1"}),n]}),r&&p.jsxs(p.Fragment,{children:[p.jsx("div",{}),r]})]})}const q_e="data:image/svg+xml,%3csvg%20width='14'%20height='11'%20viewBox='0%200%2014%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.75%208.6748L12.6953%200.729492L13.75%201.78418L4.75%2010.7842L0.566406%206.60059L1.62109%205.5459L4.75%208.6748Z'%20fill='%231D863B'/%3e%3c/svg%3e",X_e="_text_1ont6_1",V_e="_container_1ont6_7",yZ={text:X_e,container:V_e};function K_e({label:e,hide:t}){const n=t?{visibility:"hidden"}:{};return p.jsxs(Fe,{gap:"2",align:"center",style:n,className:yZ.container,children:[p.jsx("img",{src:q_e,alt:"complete"}),p.jsx(Se,{className:yZ.text,children:e})]})}const Z_e="_label_1ojid_1",$_e="_value_1ojid_6",vZ={label:Z_e,value:$_e};function b0({label:e,value:t}){return p.jsxs(Fe,{gap:"1",flexGrow:"1",children:[p.jsx(Se,{className:vZ.label,children:e}),p.jsx(Se,{className:vZ.value,children:t??"-"})]})}function e4e(){const e=Me(nc);return e?p.jsxs(Fe,{children:[p.jsx(b0,{label:"Current Slot",value:e.ledger_slot}),p.jsx(b0,{label:"Max Slot",value:e.ledger_max_slot})]}):null}const t4e="_progress_gtr5g_1",n4e="_text_gtr5g_11",KQ={progress:t4e,text:n4e};let bZ={};const QZ=new WeakMap,wZ={metric:[{from:0,to:1e3,unit:"B",long:"bytes"},{from:1e3,to:1e6,unit:"kB",long:"kilobytes"},{from:1e6,to:1e9,unit:"MB",long:"megabytes"},{from:1e9,to:1e12,unit:"GB",long:"gigabytes"},{from:1e12,to:1e15,unit:"TB",long:"terabytes"},{from:1e15,to:1e18,unit:"PB",long:"petabytes"},{from:1e18,to:1e21,unit:"EB",long:"exabytes"},{from:1e21,to:1e24,unit:"ZB",long:"zettabytes"},{from:1e24,to:1e27,unit:"YB",long:"yottabytes"}],metric_octet:[{from:0,to:1e3,unit:"o",long:"octets"},{from:1e3,to:1e6,unit:"ko",long:"kilooctets"},{from:1e6,to:1e9,unit:"Mo",long:"megaoctets"},{from:1e9,to:1e12,unit:"Go",long:"gigaoctets"},{from:1e12,to:1e15,unit:"To",long:"teraoctets"},{from:1e15,to:1e18,unit:"Po",long:"petaoctets"},{from:1e18,to:1e21,unit:"Eo",long:"exaoctets"},{from:1e21,to:1e24,unit:"Zo",long:"zettaoctets"},{from:1e24,to:1e27,unit:"Yo",long:"yottaoctets"}],iec:[{from:0,to:Math.pow(1024,1),unit:"B",long:"bytes"},{from:Math.pow(1024,1),to:Math.pow(1024,2),unit:"KiB",long:"kibibytes"},{from:Math.pow(1024,2),to:Math.pow(1024,3),unit:"MiB",long:"mebibytes"},{from:Math.pow(1024,3),to:Math.pow(1024,4),unit:"GiB",long:"gibibytes"},{from:Math.pow(1024,4),to:Math.pow(1024,5),unit:"TiB",long:"tebibytes"},{from:Math.pow(1024,5),to:Math.pow(1024,6),unit:"PiB",long:"pebibytes"},{from:Math.pow(1024,6),to:Math.pow(1024,7),unit:"EiB",long:"exbibytes"},{from:Math.pow(1024,7),to:Math.pow(1024,8),unit:"ZiB",long:"zebibytes"},{from:Math.pow(1024,8),to:Math.pow(1024,9),unit:"YiB",long:"yobibytes"}],iec_octet:[{from:0,to:Math.pow(1024,1),unit:"o",long:"octets"},{from:Math.pow(1024,1),to:Math.pow(1024,2),unit:"Kio",long:"kibioctets"},{from:Math.pow(1024,2),to:Math.pow(1024,3),unit:"Mio",long:"mebioctets"},{from:Math.pow(1024,3),to:Math.pow(1024,4),unit:"Gio",long:"gibioctets"},{from:Math.pow(1024,4),to:Math.pow(1024,5),unit:"Tio",long:"tebioctets"},{from:Math.pow(1024,5),to:Math.pow(1024,6),unit:"Pio",long:"pebioctets"},{from:Math.pow(1024,6),to:Math.pow(1024,7),unit:"Eio",long:"exbioctets"},{from:Math.pow(1024,7),to:Math.pow(1024,8),unit:"Zio",long:"zebioctets"},{from:Math.pow(1024,8),to:Math.pow(1024,9),unit:"Yio",long:"yobioctets"}]};class r4e{constructor(t,n){n=Object.assign({units:"metric",precision:1,locale:void 0},bZ,n),QZ.set(this,n),Object.assign(wZ,n.customUnits);const r=t<0?"-":"";t=Math.abs(t);const i=wZ[n.units];if(i){const A=i.find(l=>t>=l.from&&t{if(!t)return"";const l=Ul(t,{units:"iec"}),c=e?e/t:0,f=Number(l.value);return`${isNaN(f)?"0":(f*c).toFixed(1)} / ${l.toString()}`};return p.jsx(Fe,{children:p.jsxs(Fe,{direction:"column",children:[p.jsx(Bo,{minHeight:"10px"}),p.jsx(Cg,{value:r,className:KQ.progress}),p.jsxs(Fe,{minHeight:"10px",children:[p.jsx(Se,{className:KQ.text,children:A()}),p.jsx(Bo,{flexGrow:"1"}),p.jsxs(Se,{className:KQ.text,children:["~",Ug(i)]})]})]})})}function o4e(){const e=Me(nc);if(e)return p.jsx(xZ,{currentBytes:e.downloading_full_snapshot_current_bytes,totalBytes:e.downloading_full_snapshot_total_bytes,remainingSecs:e.downloading_full_snapshot_remaining_secs})}function i4e(){const e=Me(nc);if(e)return p.jsx(xZ,{currentBytes:e.downloading_incremental_snapshot_current_bytes,totalBytes:e.downloading_incremental_snapshot_total_bytes,remainingSecs:e.downloading_incremental_snapshot_remaining_secs})}var G5=yC(),fr=e=>BC(e,G5),H5=yC();fr.write=e=>BC(e,H5);var ZQ=yC();fr.onStart=e=>BC(e,ZQ);var Y5=yC();fr.onFrame=e=>BC(e,Y5);var J5=yC();fr.onFinish=e=>BC(e,J5);var Vp=[];fr.setTimeout=(e,t)=>{const n=fr.now()+t,r=()=>{const A=Vp.findIndex(l=>l.cancel==r);~A&&Vp.splice(A,1),Af-=~A?1:0},i={time:n,handler:e,cancel:r};return Vp.splice(_Z(n),0,i),Af+=1,kZ(),i};var _Z=e=>~(~Vp.findIndex(t=>t.time>e)||~Vp.length);fr.cancel=e=>{ZQ.delete(e),Y5.delete(e),J5.delete(e),G5.delete(e),H5.delete(e)},fr.sync=e=>{W5=!0,fr.batchedUpdates(e),W5=!1},fr.throttle=e=>{let t;function n(){try{e(...t)}finally{t=null}}function r(...i){t=i,fr.onStart(n)}return r.handler=e,r.cancel=()=>{ZQ.delete(n),t=null},r};var z5=typeof window<"u"?window.requestAnimationFrame:()=>{};fr.use=e=>z5=e,fr.now=typeof performance<"u"?()=>performance.now():Date.now,fr.batchedUpdates=e=>e(),fr.catch=console.error,fr.frameLoop="always",fr.advance=()=>{fr.frameLoop!=="demand"?console.warn("Cannot call the manual advancement of rafz whilst frameLoop is not set as demand"):SZ()};var of=-1,Af=0,W5=!1;function BC(e,t){W5?(t.delete(e),e(0)):(t.add(e),kZ())}function kZ(){of<0&&(of=0,fr.frameLoop!=="demand"&&z5(DZ))}function A4e(){of=-1}function DZ(){~of&&(z5(DZ),fr.batchedUpdates(SZ))}function SZ(){const e=of;of=fr.now();const t=_Z(of);if(t&&(RZ(Vp.splice(0,t),n=>n.handler()),Af-=t),!Af){A4e();return}ZQ.flush(),G5.flush(e?Math.min(64,of-e):16.667),Y5.flush(),H5.flush(),J5.flush()}function yC(){let e=new Set,t=e;return{add(n){Af+=t==e&&!e.has(n)?1:0,e.add(n)},delete(n){return Af-=t==e&&e.has(n)?1:0,e.delete(n)},flush(n){t.size&&(e=new Set,Af-=t.size,RZ(t,r=>r(n)&&e.add(r)),Af+=e.size,t=e)}}}function RZ(e,t){e.forEach(n=>{try{t(n)}catch(r){fr.catch(r)}})}var s4e=Object.defineProperty,a4e=(e,t)=>{for(var n in t)s4e(e,n,{get:t[n],enumerable:!0})},sc={};a4e(sc,{assign:()=>c4e,colors:()=>sf,createStringInterpolator:()=>V5,skipAnimation:()=>MZ,to:()=>TZ,willAdvance:()=>K5});function q5(){}var l4e=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),jt={arr:Array.isArray,obj:e=>!!e&&e.constructor.name==="Object",fun:e=>typeof e=="function",str:e=>typeof e=="string",num:e=>typeof e=="number",und:e=>e===void 0};function Q0(e,t){if(jt.arr(e)){if(!jt.arr(t)||e.length!==t.length)return!1;for(let n=0;ne.forEach(t);function cu(e,t,n){if(jt.arr(e)){for(let r=0;rjt.und(e)?[]:jt.arr(e)?e:[e];function vC(e,t){if(e.size){const n=Array.from(e);e.clear(),lr(n,t)}}var bC=(e,...t)=>vC(e,n=>n(...t)),X5=()=>typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),V5,TZ,sf=null,MZ=!1,K5=q5,c4e=e=>{e.to&&(TZ=e.to),e.now&&(fr.now=e.now),e.colors!==void 0&&(sf=e.colors),e.skipAnimation!=null&&(MZ=e.skipAnimation),e.createStringInterpolator&&(V5=e.createStringInterpolator),e.requestAnimationFrame&&fr.use(e.requestAnimationFrame),e.batchedUpdates&&(fr.batchedUpdates=e.batchedUpdates),e.willAdvance&&(K5=e.willAdvance),e.frameLoop&&(fr.frameLoop=e.frameLoop)},QC=new Set,fl=[],Z5=[],$Q=0,ew={get idle(){return!QC.size&&!fl.length},start(e){$Q>e.priority?(QC.add(e),fr.onStart(u4e)):(NZ(e),fr($5))},advance:$5,sort(e){if($Q)fr.onFrame(()=>ew.sort(e));else{const t=fl.indexOf(e);~t&&(fl.splice(t,1),FZ(e))}},clear(){fl=[],QC.clear()}};function u4e(){QC.forEach(NZ),QC.clear(),fr($5)}function NZ(e){fl.includes(e)||FZ(e)}function FZ(e){fl.splice(d4e(fl,t=>t.priority>e.priority),0,e)}function $5(e){const t=Z5;for(let n=0;n0}function d4e(e,t){const n=e.findIndex(t);return n<0?e.length:n}var f4e={transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199},ac="[-+]?\\d*\\.?\\d+",tw=ac+"%";function nw(...e){return"\\(\\s*("+e.join(")\\s*,\\s*(")+")\\s*\\)"}var g4e=new RegExp("rgb"+nw(ac,ac,ac)),h4e=new RegExp("rgba"+nw(ac,ac,ac,ac)),p4e=new RegExp("hsl"+nw(ac,tw,tw)),m4e=new RegExp("hsla"+nw(ac,tw,tw,ac)),I4e=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,C4e=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,E4e=/^#([0-9a-fA-F]{6})$/,B4e=/^#([0-9a-fA-F]{8})$/;function y4e(e){let t;return typeof e=="number"?e>>>0===e&&e>=0&&e<=4294967295?e:null:(t=E4e.exec(e))?parseInt(t[1]+"ff",16)>>>0:sf&&sf[e]!==void 0?sf[e]:(t=g4e.exec(e))?(Kp(t[1])<<24|Kp(t[2])<<16|Kp(t[3])<<8|255)>>>0:(t=h4e.exec(e))?(Kp(t[1])<<24|Kp(t[2])<<16|Kp(t[3])<<8|LZ(t[4]))>>>0:(t=I4e.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+"ff",16)>>>0:(t=B4e.exec(e))?parseInt(t[1],16)>>>0:(t=C4e.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+t[4]+t[4],16)>>>0:(t=p4e.exec(e))?(OZ(jZ(t[1]),rw(t[2]),rw(t[3]))|255)>>>0:(t=m4e.exec(e))?(OZ(jZ(t[1]),rw(t[2]),rw(t[3]))|LZ(t[4]))>>>0:null}function eT(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<.16666666666666666?e+(t-e)*6*n:n<.5?t:n<.6666666666666666?e+(t-e)*(.6666666666666666-n)*6:e}function OZ(e,t,n){const r=n<.5?n*(1+t):n+t-n*t,i=2*n-r,A=eT(i,r,e+1/3),l=eT(i,r,e),c=eT(i,r,e-1/3);return Math.round(A*255)<<24|Math.round(l*255)<<16|Math.round(c*255)<<8}function Kp(e){const t=parseInt(e,10);return t<0?0:t>255?255:t}function jZ(e){return(parseFloat(e)%360+360)%360/360}function LZ(e){const t=parseFloat(e);return t<0?0:t>1?255:Math.round(t*255)}function rw(e){const t=parseFloat(e);return t<0?0:t>100?1:t/100}function PZ(e){let t=y4e(e);if(t===null)return e;t=t||0;const n=(t&4278190080)>>>24,r=(t&16711680)>>>16,i=(t&65280)>>>8,A=(t&255)/255;return`rgba(${n}, ${r}, ${i}, ${A})`}var wC=(e,t,n)=>{if(jt.fun(e))return e;if(jt.arr(e))return wC({range:e,output:t,extrapolate:n});if(jt.str(e.output[0]))return V5(e);const r=e,i=r.output,A=r.range||[0,1],l=r.extrapolateLeft||r.extrapolate||"extend",c=r.extrapolateRight||r.extrapolate||"extend",f=r.easing||(h=>h);return h=>{const I=b4e(h,A);return v4e(h,A[I],A[I+1],i[I],i[I+1],f,l,c,r.map)}};function v4e(e,t,n,r,i,A,l,c,f){let h=f?f(e):e;if(hn){if(c==="identity")return h;c==="clamp"&&(h=n)}return r===i?r:t===n?e<=t?r:i:(t===-1/0?h=-h:n===1/0?h=h-t:h=(h-t)/(n-t),h=A(h),r===-1/0?h=-h:i===1/0?h=h+r:h=h*(i-r)+r,h)}function b4e(e,t){for(var n=1;n=e);++n);return n-1}var Q4e={linear:e=>e},xC=Symbol.for("FluidValue.get"),Zp=Symbol.for("FluidValue.observers"),gl=e=>!!(e&&e[xC]),Ks=e=>e&&e[xC]?e[xC]():e,UZ=e=>e[Zp]||null;function w4e(e,t){e.eventObserved?e.eventObserved(t):e(t)}function _C(e,t){const n=e[Zp];n&&n.forEach(r=>{w4e(r,t)})}var GZ=class{constructor(e){if(!e&&!(e=this.get))throw Error("Unknown getter");x4e(this,e)}},x4e=(e,t)=>HZ(e,xC,t);function $p(e,t){if(e[xC]){let n=e[Zp];n||HZ(e,Zp,n=new Set),n.has(t)||(n.add(t),e.observerAdded&&e.observerAdded(n.size,t))}return t}function kC(e,t){const n=e[Zp];if(n&&n.has(t)){const r=n.size-1;r?n.delete(t):e[Zp]=null,e.observerRemoved&&e.observerRemoved(r,t)}}var HZ=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),ow=/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,_4e=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi,YZ=new RegExp(`(${ow.source})(%|[a-z]+)`,"i"),k4e=/rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi,iw=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/,JZ=e=>{const[t,n]=D4e(e);if(!t||X5())return e;const r=window.getComputedStyle(document.documentElement).getPropertyValue(t);return r?r.trim():n&&n.startsWith("--")?window.getComputedStyle(document.documentElement).getPropertyValue(n)||e:n&&iw.test(n)?JZ(n):n||e},D4e=e=>{const t=iw.exec(e);if(!t)return[,];const[,n,r]=t;return[n,r]},tT,S4e=(e,t,n,r,i)=>`rgba(${Math.round(t)}, ${Math.round(n)}, ${Math.round(r)}, ${i})`,zZ=e=>{tT||(tT=sf?new RegExp(`(${Object.keys(sf).join("|")})(?!\\w)`,"g"):/^\b$/);const t=e.output.map(i=>Ks(i).replace(iw,JZ).replace(_4e,PZ).replace(tT,PZ)),n=t.map(i=>i.match(ow).map(Number)),r=n[0].map((i,A)=>n.map(l=>{if(!(A in l))throw Error('The arity of each "output" value must be equal');return l[A]})).map(i=>wC({...e,output:i}));return i=>{var c;const A=!YZ.test(t[0])&&((c=t.find(f=>YZ.test(f)))==null?void 0:c.replace(ow,""));let l=0;return t[0].replace(ow,()=>`${r[l++](i)}${A||""}`).replace(k4e,S4e)}},nT="react-spring: ",WZ=e=>{const t=e;let n=!1;if(typeof t!="function")throw new TypeError(`${nT}once requires a function parameter`);return(...r)=>{n||(t(...r),n=!0)}},R4e=WZ(console.warn);function T4e(){R4e(`${nT}The "interpolate" function is deprecated in v9 (use "to" instead)`)}var M4e=WZ(console.warn);function N4e(){M4e(`${nT}Directly calling start instead of using the api object is deprecated in v9 (use ".start" instead), this will be removed in later 0.X.0 versions`)}function Aw(e){return jt.str(e)&&(e[0]=="#"||/\d/.test(e)||!X5()&&iw.test(e)||e in(sf||{}))}var Wg=X5()?x.useEffect:x.useLayoutEffect,F4e=()=>{const e=x.useRef(!1);return Wg(()=>(e.current=!0,()=>{e.current=!1}),[]),e};function rT(){const e=x.useState()[1],t=F4e();return()=>{t.current&&e(Math.random())}}function O4e(e,t){const[n]=x.useState(()=>({inputs:t,result:e()})),r=x.useRef(),i=r.current;let A=i;return A?t&&A.inputs&&j4e(t,A.inputs)||(A={inputs:t,result:e()}):A=n,x.useEffect(()=>{r.current=A,i==n&&(n.inputs=n.result=void 0)},[A]),A.result}function j4e(e,t){if(e.length!==t.length)return!1;for(let n=0;nx.useEffect(e,L4e),L4e=[];function iT(e){const t=x.useRef();return x.useEffect(()=>{t.current=e}),t.current}var DC=Symbol.for("Animated:node"),P4e=e=>!!e&&e[DC]===e,uu=e=>e&&e[DC],AT=(e,t)=>l4e(e,DC,t),sw=e=>e&&e[DC]&&e[DC].getPayload(),qZ=class{constructor(){AT(this,this)}getPayload(){return this.payload||[]}},SC=class extends qZ{constructor(e){super(),this._value=e,this.done=!0,this.durationProgress=0,jt.num(this._value)&&(this.lastPosition=this._value)}static create(e){return new SC(e)}getPayload(){return[this]}getValue(){return this._value}setValue(e,t){return jt.num(e)&&(this.lastPosition=e,t&&(e=Math.round(e/t)*t,this.done&&(this.lastPosition=e))),this._value===e?!1:(this._value=e,!0)}reset(){const{done:e}=this;this.done=!1,jt.num(this._value)&&(this.elapsedTime=0,this.durationProgress=0,this.lastPosition=this._value,e&&(this.lastVelocity=null),this.v0=null)}},RC=class extends SC{constructor(e){super(0),this._string=null,this._toString=wC({output:[e,e]})}static create(e){return new RC(e)}getValue(){return this._string??(this._string=this._toString(this._value))}setValue(e){if(jt.str(e)){if(e==this._string)return!1;this._string=e,this._value=1}else if(super.setValue(e))this._string=null;else return!1;return!0}reset(e){e&&(this._toString=wC({output:[this.getValue(),e]})),this._value=0,super.reset()}},aw={dependencies:null},lw=class extends qZ{constructor(e){super(),this.source=e,this.setValue(e)}getValue(e){const t={};return cu(this.source,(n,r)=>{P4e(n)?t[r]=n.getValue(e):gl(n)?t[r]=Ks(n):e||(t[r]=n)}),t}setValue(e){this.source=e,this.payload=this._makePayload(e)}reset(){this.payload&&lr(this.payload,e=>e.reset())}_makePayload(e){if(e){const t=new Set;return cu(e,this._addToPayload,t),Array.from(t)}}_addToPayload(e){aw.dependencies&&gl(e)&&aw.dependencies.add(e);const t=sw(e);t&&lr(t,n=>this.add(n))}},XZ=class extends lw{constructor(e){super(e)}static create(e){return new XZ(e)}getValue(){return this.source.map(e=>e.getValue())}setValue(e){const t=this.getPayload();return e.length==t.length?t.map((n,r)=>n.setValue(e[r])).some(Boolean):(super.setValue(e.map(U4e)),!0)}};function U4e(e){return(Aw(e)?RC:SC).create(e)}function sT(e){const t=uu(e);return t?t.constructor:jt.arr(e)?XZ:Aw(e)?RC:SC}var VZ=(e,t)=>{const n=!jt.fun(e)||e.prototype&&e.prototype.isReactComponent;return x.forwardRef((r,i)=>{const A=x.useRef(null),l=n&&x.useCallback(S=>{A.current=Y4e(i,S)},[i]),[c,f]=H4e(r,t),h=rT(),I=()=>{const S=A.current;n&&!S||(S?t.applyAnimatedValues(S,c.getValue(!0)):!1)===!1&&h()},B=new G4e(I,f),v=x.useRef();Wg(()=>(v.current=B,lr(f,S=>$p(S,B)),()=>{v.current&&(lr(v.current.deps,S=>kC(S,v.current)),fr.cancel(v.current.update))})),x.useEffect(I,[]),oT(()=>()=>{const S=v.current;lr(S.deps,R=>kC(R,S))});const D=t.getComponentProps(c.getValue());return x.createElement(e,{...D,ref:l})})},G4e=class{constructor(e,t){this.update=e,this.deps=t}eventObserved(e){e.type=="change"&&fr.write(this.update)}};function H4e(e,t){const n=new Set;return aw.dependencies=n,e.style&&(e={...e,style:t.createAnimatedStyle(e.style)}),e=new lw(e),aw.dependencies=null,[e,n]}function Y4e(e,t){return e&&(jt.fun(e)?e(t):e.current=t),t}var KZ=Symbol.for("AnimatedComponent"),J4e=(e,{applyAnimatedValues:t=()=>!1,createAnimatedStyle:n=i=>new lw(i),getComponentProps:r=i=>i}={})=>{const i={applyAnimatedValues:t,createAnimatedStyle:n,getComponentProps:r},A=l=>{const c=ZZ(l)||"Anonymous";return jt.str(l)?l=A[l]||(A[l]=VZ(l,i)):l=l[KZ]||(l[KZ]=VZ(l,i)),l.displayName=`Animated(${c})`,l};return cu(e,(l,c)=>{jt.arr(e)&&(c=ZZ(l)),A[c]=A(l)}),{animated:A}},ZZ=e=>jt.str(e)?e:e&&jt.str(e.displayName)?e.displayName:jt.fun(e)&&e.name||null;function Zs(e,...t){return jt.fun(e)?e(...t):e}var TC=(e,t)=>e===!0||!!(t&&e&&(jt.fun(e)?e(t):ws(e).includes(t))),$Z=(e,t)=>jt.obj(e)?t&&e[t]:e,e$=(e,t)=>e.default===!0?e[t]:e.default?e.default[t]:void 0,z4e=e=>e,cw=(e,t=z4e)=>{let n=W4e;e.default&&e.default!==!0&&(e=e.default,n=Object.keys(e));const r={};for(const i of n){const A=t(e[i],i);jt.und(A)||(r[i]=A)}return r},W4e=["config","onProps","onStart","onChange","onPause","onResume","onRest"],q4e={config:1,from:1,to:1,ref:1,loop:1,reset:1,pause:1,cancel:1,reverse:1,immediate:1,default:1,delay:1,onProps:1,onStart:1,onChange:1,onPause:1,onResume:1,onRest:1,onResolve:1,items:1,trail:1,sort:1,expires:1,initial:1,enter:1,update:1,leave:1,children:1,onDestroyed:1,keys:1,callId:1,parentId:1};function X4e(e){const t={};let n=0;if(cu(e,(r,i)=>{q4e[i]||(t[i]=r,n++)}),n)return t}function aT(e){const t=X4e(e);if(t){const n={to:t};return cu(e,(r,i)=>i in t||(n[i]=r)),n}return{...e}}function MC(e){return e=Ks(e),jt.arr(e)?e.map(MC):Aw(e)?sc.createStringInterpolator({range:[0,1],output:[e,e]})(1):e}function t$(e){for(const t in e)return!0;return!1}function lT(e){return jt.fun(e)||jt.arr(e)&&jt.obj(e[0])}function cT(e,t){var n;(n=e.ref)==null||n.delete(e),t==null||t.delete(e)}function n$(e,t){var n;t&&e.ref!==t&&((n=e.ref)==null||n.delete(e),t.add(e),e.ref=t)}var uT={default:{tension:170,friction:26},gentle:{tension:120,friction:14},wobbly:{tension:180,friction:12},stiff:{tension:210,friction:20},slow:{tension:280,friction:60},molasses:{tension:280,friction:120}},dT={...uT.default,mass:1,damping:1,easing:Q4e.linear,clamp:!1},V4e=class{constructor(){this.velocity=0,Object.assign(this,dT)}};function K4e(e,t,n){n&&(n={...n},r$(n,t),t={...n,...t}),r$(e,t),Object.assign(e,t);for(const l in dT)e[l]==null&&(e[l]=dT[l]);let{frequency:r,damping:i}=e;const{mass:A}=e;return jt.und(r)||(r<.01&&(r=.01),i<0&&(i=0),e.tension=Math.pow(2*Math.PI/r,2)*A,e.friction=4*Math.PI*i*A/r),e}function r$(e,t){if(!jt.und(t.decay))e.duration=void 0;else{const n=!jt.und(t.tension)||!jt.und(t.friction);(n||!jt.und(t.frequency)||!jt.und(t.damping)||!jt.und(t.mass))&&(e.duration=void 0,e.decay=void 0),n&&(e.frequency=void 0)}}var o$=[],Z4e=class{constructor(){this.changed=!1,this.values=o$,this.toValues=null,this.fromValues=o$,this.config=new V4e,this.immediate=!1}};function i$(e,{key:t,props:n,defaultProps:r,state:i,actions:A}){return new Promise((l,c)=>{let f,h,I=TC(n.cancel??(r==null?void 0:r.cancel),t);if(I)D();else{jt.und(n.pause)||(i.paused=TC(n.pause,t));let S=r==null?void 0:r.pause;S!==!0&&(S=i.paused||TC(S,t)),f=Zs(n.delay||0,t),S?(i.resumeQueue.add(v),A.pause()):(A.resume(),v())}function B(){i.resumeQueue.add(v),i.timeouts.delete(h),h.cancel(),f=h.time-fr.now()}function v(){f>0&&!sc.skipAnimation?(i.delayed=!0,h=fr.setTimeout(D,f),i.pauseQueue.add(B),i.timeouts.add(h)):D()}function D(){i.delayed&&(i.delayed=!1),i.pauseQueue.delete(B),i.timeouts.delete(h),e<=(i.cancelId||0)&&(I=!0);try{A.start({...n,callId:e,cancel:I},l)}catch(S){c(S)}}})}var fT=(e,t)=>t.length==1?t[0]:t.some(n=>n.cancelled)?e1(e.get()):t.every(n=>n.noop)?A$(e.get()):lc(e.get(),t.every(n=>n.finished)),A$=e=>({value:e,noop:!0,finished:!0,cancelled:!1}),lc=(e,t,n=!1)=>({value:e,finished:t,cancelled:n}),e1=e=>({value:e,cancelled:!0,finished:!1});function s$(e,t,n,r){const{callId:i,parentId:A,onRest:l}=t,{asyncTo:c,promise:f}=n;return!A&&e===c&&!t.reset?f:n.promise=(async()=>{n.asyncId=i,n.asyncTo=e;const h=cw(t,(F,N)=>N==="onRest"?void 0:F);let I,B;const v=new Promise((F,N)=>(I=F,B=N)),D=F=>{const N=i<=(n.cancelId||0)&&e1(r)||i!==n.asyncId&&lc(r,!1);if(N)throw F.result=N,B(F),F},S=(F,N)=>{const M=new a$,P=new l$;return(async()=>{if(sc.skipAnimation)throw NC(n),P.result=lc(r,!1),B(P),P;D(M);const G=jt.obj(F)?{...F}:{...N,to:F};G.parentId=i,cu(h,(W,q)=>{jt.und(G[q])&&(G[q]=W)});const J=await r.start(G);return D(M),n.paused&&await new Promise(W=>{n.resumeQueue.add(W)}),J})()};let R;if(sc.skipAnimation)return NC(n),lc(r,!1);try{let F;jt.arr(e)?F=(async N=>{for(const M of N)await S(M)})(e):F=Promise.resolve(e(S,r.stop.bind(r))),await Promise.all([F.then(I),v]),R=lc(r.get(),!0,!1)}catch(F){if(F instanceof a$)R=F.result;else if(F instanceof l$)R=F.result;else throw F}finally{i==n.asyncId&&(n.asyncId=A,n.asyncTo=A?c:void 0,n.promise=A?f:void 0)}return jt.fun(l)&&fr.batchedUpdates(()=>{l(R,r,r.item)}),R})()}function NC(e,t){vC(e.timeouts,n=>n.cancel()),e.pauseQueue.clear(),e.resumeQueue.clear(),e.asyncId=e.asyncTo=e.promise=void 0,t&&(e.cancelId=t)}var a$=class extends Error{constructor(){super("An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise.")}},l$=class extends Error{constructor(){super("SkipAnimationSignal")}},gT=e=>e instanceof hT,$4e=1,hT=class extends GZ{constructor(){super(...arguments),this.id=$4e++,this._priority=0}get priority(){return this._priority}set priority(e){this._priority!=e&&(this._priority=e,this._onPriorityChange(e))}get(){const e=uu(this);return e&&e.getValue()}to(...e){return sc.to(this,e)}interpolate(...e){return T4e(),sc.to(this,e)}toJSON(){return this.get()}observerAdded(e){e==1&&this._attach()}observerRemoved(e){e==0&&this._detach()}_attach(){}_detach(){}_onChange(e,t=!1){_C(this,{type:"change",parent:this,value:e,idle:t})}_onPriorityChange(e){this.idle||ew.sort(this),_C(this,{type:"priority",parent:this,priority:e})}},qg=Symbol.for("SpringPhase"),c$=1,pT=2,mT=4,IT=e=>(e[qg]&c$)>0,af=e=>(e[qg]&pT)>0,FC=e=>(e[qg]&mT)>0,u$=(e,t)=>t?e[qg]|=pT|c$:e[qg]&=~pT,d$=(e,t)=>t?e[qg]|=mT:e[qg]&=~mT,eke=class extends hT{constructor(e,t){if(super(),this.animation=new Z4e,this.defaultProps={},this._state={paused:!1,delayed:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._pendingCalls=new Set,this._lastCallId=0,this._lastToId=0,this._memoizedDuration=0,!jt.und(e)||!jt.und(t)){const n=jt.obj(e)?{...e}:{...t,from:e};jt.und(n.default)&&(n.default=!0),this.start(n)}}get idle(){return!(af(this)||this._state.asyncTo)||FC(this)}get goal(){return Ks(this.animation.to)}get velocity(){const e=uu(this);return e instanceof SC?e.lastVelocity||0:e.getPayload().map(t=>t.lastVelocity||0)}get hasAnimated(){return IT(this)}get isAnimating(){return af(this)}get isPaused(){return FC(this)}get isDelayed(){return this._state.delayed}advance(e){let t=!0,n=!1;const r=this.animation;let{toValues:i}=r;const{config:A}=r,l=sw(r.to);!l&&gl(r.to)&&(i=ws(Ks(r.to))),r.values.forEach((h,I)=>{if(h.done)return;const B=h.constructor==RC?1:l?l[I].lastPosition:i[I];let v=r.immediate,D=B;if(!v){if(D=h.lastPosition,A.tension<=0){h.done=!0;return}let S=h.elapsedTime+=e;const R=r.fromValues[I],F=h.v0!=null?h.v0:h.v0=jt.arr(A.velocity)?A.velocity[I]:A.velocity;let N;const M=A.precision||(R==B?.005:Math.min(1,Math.abs(B-R)*.001));if(jt.und(A.duration))if(A.decay){const P=A.decay===!0?.998:A.decay,G=Math.exp(-(1-P)*S);D=R+F/(1-P)*(1-G),v=Math.abs(h.lastPosition-D)<=M,N=F*G}else{N=h.lastVelocity==null?F:h.lastVelocity;const P=A.restVelocity||M/10,G=A.clamp?0:A.bounce,J=!jt.und(G),W=R==B?h.v0>0:RP,!(!q&&(v=Math.abs(B-D)<=M,v)));++se){J&&($=D==B||D>B==W,$&&(N=-N*G,D=B));const Ee=-A.tension*1e-6*(D-B),ie=-A.friction*.001*N,Ae=(Ee+ie)/A.mass;N=N+Ae*oe,D=D+N*oe}}else{let P=1;A.duration>0&&(this._memoizedDuration!==A.duration&&(this._memoizedDuration=A.duration,h.durationProgress>0&&(h.elapsedTime=A.duration*h.durationProgress,S=h.elapsedTime+=e)),P=(A.progress||0)+S/this._memoizedDuration,P=P>1?1:P<0?0:P,h.durationProgress=P),D=R+A.easing(P)*(B-R),N=(D-h.lastPosition)/e,v=P==1}h.lastVelocity=N,Number.isNaN(D)&&(console.warn("Got NaN while animating:",this),v=!0)}l&&!l[I].done&&(v=!1),v?h.done=!0:t=!1,h.setValue(D,A.round)&&(n=!0)});const c=uu(this),f=c.getValue();if(t){const h=Ks(r.to);(f!==h||n)&&!A.decay?(c.setValue(h),this._onChange(h)):n&&A.decay&&this._onChange(f),this._stop()}else n&&this._onChange(f)}set(e){return fr.batchedUpdates(()=>{this._stop(),this._focus(e),this._set(e)}),this}pause(){this._update({pause:!0})}resume(){this._update({pause:!1})}finish(){if(af(this)){const{to:e,config:t}=this.animation;fr.batchedUpdates(()=>{this._onStart(),t.decay||this._set(e,!1),this._stop()})}return this}update(e){return(this.queue||(this.queue=[])).push(e),this}start(e,t){let n;return jt.und(e)?(n=this.queue||[],this.queue=[]):n=[jt.obj(e)?e:{...t,to:e}],Promise.all(n.map(r=>this._update(r))).then(r=>fT(this,r))}stop(e){const{to:t}=this.animation;return this._focus(this.get()),NC(this._state,e&&this._lastCallId),fr.batchedUpdates(()=>this._stop(t,e)),this}reset(){this._update({reset:!0})}eventObserved(e){e.type=="change"?this._start():e.type=="priority"&&(this.priority=e.priority+1)}_prepareNode(e){const t=this.key||"";let{to:n,from:r}=e;n=jt.obj(n)?n[t]:n,(n==null||lT(n))&&(n=void 0),r=jt.obj(r)?r[t]:r,r==null&&(r=void 0);const i={to:n,from:r};return IT(this)||(e.reverse&&([n,r]=[r,n]),r=Ks(r),jt.und(r)?uu(this)||this._set(n):this._set(r)),i}_update({...e},t){const{key:n,defaultProps:r}=this;e.default&&Object.assign(r,cw(e,(l,c)=>/^on/.test(c)?$Z(l,n):l)),h$(this,e,"onProps"),LC(this,"onProps",e,this);const i=this._prepareNode(e);if(Object.isFrozen(this))throw Error("Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?");const A=this._state;return i$(++this._lastCallId,{key:n,props:e,defaultProps:r,state:A,actions:{pause:()=>{FC(this)||(d$(this,!0),bC(A.pauseQueue),LC(this,"onPause",lc(this,OC(this,this.animation.to)),this))},resume:()=>{FC(this)&&(d$(this,!1),af(this)&&this._resume(),bC(A.resumeQueue),LC(this,"onResume",lc(this,OC(this,this.animation.to)),this))},start:this._merge.bind(this,i)}}).then(l=>{if(e.loop&&l.finished&&!(t&&l.noop)){const c=f$(e);if(c)return this._update(c,!0)}return l})}_merge(e,t,n){if(t.cancel)return this.stop(!0),n(e1(this));const r=!jt.und(e.to),i=!jt.und(e.from);if(r||i)if(t.callId>this._lastToId)this._lastToId=t.callId;else return n(e1(this));const{key:A,defaultProps:l,animation:c}=this,{to:f,from:h}=c;let{to:I=f,from:B=h}=e;i&&!r&&(!t.default||jt.und(I))&&(I=B),t.reverse&&([I,B]=[B,I]);const v=!Q0(B,h);v&&(c.from=B),B=Ks(B);const D=!Q0(I,f);D&&this._focus(I);const S=lT(t.to),{config:R}=c,{decay:F,velocity:N}=R;(r||i)&&(R.velocity=0),t.config&&!S&&K4e(R,Zs(t.config,A),t.config!==l.config?Zs(l.config,A):void 0);let M=uu(this);if(!M||jt.und(I))return n(lc(this,!0));const P=jt.und(t.reset)?i&&!t.default:!jt.und(B)&&TC(t.reset,A),G=P?B:this.get(),J=MC(I),W=jt.num(J)||jt.arr(J)||Aw(J),q=!S&&(!W||TC(l.immediate||t.immediate,A));if(D){const se=sT(I);if(se!==M.constructor)if(q)M=this._set(J);else throw Error(`Cannot animate between ${M.constructor.name} and ${se.name}, as the "to" prop suggests`)}const $=M.constructor;let oe=gl(I),K=!1;if(!oe){const se=P||!IT(this)&&v;(D||se)&&(K=Q0(MC(G),J),oe=!K),(!Q0(c.immediate,q)&&!q||!Q0(R.decay,F)||!Q0(R.velocity,N))&&(oe=!0)}if(K&&af(this)&&(c.changed&&!P?oe=!0:oe||this._stop(f)),!S&&((oe||gl(f))&&(c.values=M.getPayload(),c.toValues=gl(I)?null:$==RC?[1]:ws(J)),c.immediate!=q&&(c.immediate=q,!q&&!P&&this._set(f)),oe)){const{onRest:se}=c;lr(nke,ie=>h$(this,t,ie));const Ee=lc(this,OC(this,f));bC(this._pendingCalls,Ee),this._pendingCalls.add(n),c.changed&&fr.batchedUpdates(()=>{var ie;c.changed=!P,se==null||se(Ee,this),P?Zs(l.onRest,Ee):(ie=c.onStart)==null||ie.call(c,Ee,this)})}P&&this._set(G),S?n(s$(t.to,t,this._state,this)):oe?this._start():af(this)&&!D?this._pendingCalls.add(n):n(A$(G))}_focus(e){const t=this.animation;e!==t.to&&(UZ(this)&&this._detach(),t.to=e,UZ(this)&&this._attach())}_attach(){let e=0;const{to:t}=this.animation;gl(t)&&($p(t,this),gT(t)&&(e=t.priority+1)),this.priority=e}_detach(){const{to:e}=this.animation;gl(e)&&kC(e,this)}_set(e,t=!0){const n=Ks(e);if(!jt.und(n)){const r=uu(this);if(!r||!Q0(n,r.getValue())){const i=sT(n);!r||r.constructor!=i?AT(this,i.create(n)):r.setValue(n),r&&fr.batchedUpdates(()=>{this._onChange(n,t)})}}return uu(this)}_onStart(){const e=this.animation;e.changed||(e.changed=!0,LC(this,"onStart",lc(this,OC(this,e.to)),this))}_onChange(e,t){t||(this._onStart(),Zs(this.animation.onChange,e,this)),Zs(this.defaultProps.onChange,e,this),super._onChange(e,t)}_start(){const e=this.animation;uu(this).reset(Ks(e.to)),e.immediate||(e.fromValues=e.values.map(t=>t.lastPosition)),af(this)||(u$(this,!0),FC(this)||this._resume())}_resume(){sc.skipAnimation?this.finish():ew.start(this)}_stop(e,t){if(af(this)){u$(this,!1);const n=this.animation;lr(n.values,i=>{i.done=!0}),n.toValues&&(n.onChange=n.onPause=n.onResume=void 0),_C(this,{type:"idle",parent:this});const r=t?e1(this.get()):lc(this.get(),OC(this,e??n.to));bC(this._pendingCalls,r),n.changed&&(n.changed=!1,LC(this,"onRest",r,this))}}};function OC(e,t){const n=MC(t),r=MC(e.get());return Q0(r,n)}function f$(e,t=e.loop,n=e.to){const r=Zs(t);if(r){const i=r!==!0&&aT(r),A=(i||e).reverse,l=!i||i.reset;return jC({...e,loop:t,default:!1,pause:void 0,to:!A||lT(n)?n:void 0,from:l?e.from:void 0,reset:l,...i})}}function jC(e){const{to:t,from:n}=e=aT(e),r=new Set;return jt.obj(t)&&g$(t,r),jt.obj(n)&&g$(n,r),e.keys=r.size?Array.from(r):null,e}function tke(e){const t=jC(e);return jt.und(t.default)&&(t.default=cw(t)),t}function g$(e,t){cu(e,(n,r)=>n!=null&&t.add(r))}var nke=["onStart","onRest","onChange","onPause","onResume"];function h$(e,t,n){e.animation[n]=t[n]!==e$(t,n)?$Z(t[n],e.key):void 0}function LC(e,t,...n){var r,i,A,l;(i=(r=e.animation)[t])==null||i.call(r,...n),(l=(A=e.defaultProps)[t])==null||l.call(A,...n)}var rke=["onStart","onChange","onRest"],oke=1,p$=class{constructor(e,t){this.id=oke++,this.springs={},this.queue=[],this._lastAsyncId=0,this._active=new Set,this._changed=new Set,this._started=!1,this._state={paused:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._events={onStart:new Map,onChange:new Map,onRest:new Map},this._onFrame=this._onFrame.bind(this),t&&(this._flush=t),e&&this.start({default:!0,...e})}get idle(){return!this._state.asyncTo&&Object.values(this.springs).every(e=>e.idle&&!e.isDelayed&&!e.isPaused)}get item(){return this._item}set item(e){this._item=e}get(){const e={};return this.each((t,n)=>e[n]=t.get()),e}set(e){for(const t in e){const n=e[t];jt.und(n)||this.springs[t].set(n)}}update(e){return e&&this.queue.push(jC(e)),this}start(e){let{queue:t}=this;return e?t=ws(e).map(jC):this.queue=[],this._flush?this._flush(this,t):(B$(this,t),CT(this,t))}stop(e,t){if(e!==!!e&&(t=e),t){const n=this.springs;lr(ws(t),r=>n[r].stop(!!e))}else NC(this._state,this._lastAsyncId),this.each(n=>n.stop(!!e));return this}pause(e){if(jt.und(e))this.start({pause:!0});else{const t=this.springs;lr(ws(e),n=>t[n].pause())}return this}resume(e){if(jt.und(e))this.start({pause:!1});else{const t=this.springs;lr(ws(e),n=>t[n].resume())}return this}each(e){cu(this.springs,e)}_onFrame(){const{onStart:e,onChange:t,onRest:n}=this._events,r=this._active.size>0,i=this._changed.size>0;(r&&!this._started||i&&!this._started)&&(this._started=!0,vC(e,([c,f])=>{f.value=this.get(),c(f,this,this._item)}));const A=!r&&this._started,l=i||A&&n.size?this.get():null;i&&t.size&&vC(t,([c,f])=>{f.value=l,c(f,this,this._item)}),A&&(this._started=!1,vC(n,([c,f])=>{f.value=l,c(f,this,this._item)}))}eventObserved(e){if(e.type=="change")this._changed.add(e.parent),e.idle||this._active.add(e.parent);else if(e.type=="idle")this._active.delete(e.parent);else return;fr.onFrame(this._onFrame)}};function CT(e,t){return Promise.all(t.map(n=>m$(e,n))).then(n=>fT(e,n))}async function m$(e,t,n){const{keys:r,to:i,from:A,loop:l,onRest:c,onResolve:f}=t,h=jt.obj(t.default)&&t.default;l&&(t.loop=!1),i===!1&&(t.to=null),A===!1&&(t.from=null);const I=jt.arr(i)||jt.fun(i)?i:void 0;I?(t.to=void 0,t.onRest=void 0,h&&(h.onRest=void 0)):lr(rke,R=>{const F=t[R];if(jt.fun(F)){const N=e._events[R];t[R]=({finished:M,cancelled:P})=>{const G=N.get(F);G?(M||(G.finished=!1),P&&(G.cancelled=!0)):N.set(F,{value:null,finished:M||!1,cancelled:P||!1})},h&&(h[R]=t[R])}});const B=e._state;t.pause===!B.paused?(B.paused=t.pause,bC(t.pause?B.pauseQueue:B.resumeQueue)):B.paused&&(t.pause=!0);const v=(r||Object.keys(e.springs)).map(R=>e.springs[R].start(t)),D=t.cancel===!0||e$(t,"cancel")===!0;(I||D&&B.asyncId)&&v.push(i$(++e._lastAsyncId,{props:t,state:B,actions:{pause:q5,resume:q5,start(R,F){D?(NC(B,e._lastAsyncId),F(e1(e))):(R.onRest=c,F(s$(I,R,B,e)))}}})),B.paused&&await new Promise(R=>{B.resumeQueue.add(R)});const S=fT(e,await Promise.all(v));if(l&&S.finished&&!(n&&S.noop)){const R=f$(t,l,i);if(R)return B$(e,[R]),m$(e,R,!0)}return f&&fr.batchedUpdates(()=>f(S,e,e.item)),S}function ET(e,t){const n={...e.springs};return t&&lr(ws(t),r=>{jt.und(r.keys)&&(r=jC(r)),jt.obj(r.to)||(r={...r,to:void 0}),E$(n,r,i=>C$(i))}),I$(e,n),n}function I$(e,t){cu(t,(n,r)=>{e.springs[r]||(e.springs[r]=n,$p(n,e))})}function C$(e,t){const n=new eke;return n.key=e,t&&$p(n,t),n}function E$(e,t,n){t.keys&&lr(t.keys,r=>{(e[r]||(e[r]=n(r)))._prepareNode(t)})}function B$(e,t){lr(t,n=>{E$(e.springs,n,r=>C$(r,e))})}var PC=({children:e,...t})=>{const n=x.useContext(uw),r=t.pause||!!n.pause,i=t.immediate||!!n.immediate;t=O4e(()=>({pause:r,immediate:i}),[r,i]);const{Provider:A}=uw;return x.createElement(A,{value:t},e)},uw=ike(PC,{});PC.Provider=uw.Provider,PC.Consumer=uw.Consumer;function ike(e,t){return Object.assign(e,x.createContext(t)),e.Provider._context=e,e.Consumer._context=e,e}var y$=()=>{const e=[],t=function(r){N4e();const i=[];return lr(e,(A,l)=>{if(jt.und(r))i.push(A.start());else{const c=n(r,A,l);c&&i.push(A.start(c))}}),i};t.current=e,t.add=function(r){e.includes(r)||e.push(r)},t.delete=function(r){const i=e.indexOf(r);~i&&e.splice(i,1)},t.pause=function(){return lr(e,r=>r.pause(...arguments)),this},t.resume=function(){return lr(e,r=>r.resume(...arguments)),this},t.set=function(r){lr(e,(i,A)=>{const l=jt.fun(r)?r(A,i):r;l&&i.set(l)})},t.start=function(r){const i=[];return lr(e,(A,l)=>{if(jt.und(r))i.push(A.start());else{const c=this._getProps(r,A,l);c&&i.push(A.start(c))}}),i},t.stop=function(){return lr(e,r=>r.stop(...arguments)),this},t.update=function(r){return lr(e,(i,A)=>i.update(this._getProps(r,i,A))),this};const n=function(r,i,A){return jt.fun(r)?r(A,i):r};return t._getProps=n,t};function v$(e,t,n){const r=jt.fun(t)&&t;r&&!n&&(n=[]);const i=x.useMemo(()=>r||arguments.length==3?y$():void 0,[]),A=x.useRef(0),l=rT(),c=x.useMemo(()=>({ctrls:[],queue:[],flush(N,M){const P=ET(N,M);return A.current>0&&!c.queue.length&&!Object.keys(P).some(G=>!N.springs[G])?CT(N,M):new Promise(G=>{I$(N,P),c.queue.push(()=>{G(CT(N,M))}),l()})}}),[]),f=x.useRef([...c.ctrls]),h=[],I=iT(e)||0;x.useMemo(()=>{lr(f.current.slice(e,I),N=>{cT(N,i),N.stop(!0)}),f.current.length=e,B(I,e)},[e]),x.useMemo(()=>{B(0,Math.min(I,e))},n);function B(N,M){for(let P=N;PET(N,h[M])),D=x.useContext(PC),S=iT(D),R=D!==S&&t$(D);Wg(()=>{A.current++,c.ctrls=f.current;const{queue:N}=c;N.length&&(c.queue=[],lr(N,M=>M())),lr(f.current,(M,P)=>{i==null||i.add(M),R&&M.start({default:D});const G=h[P];G&&(n$(M,G.ref),M.ref?M.queue.push(G):M.start(G))})}),oT(()=>()=>{lr(c.ctrls,N=>N.stop(!0))});const F=v.map(N=>({...N}));return i?[F,i]:F}function lf(e,t){const n=jt.fun(e),[[r],i]=v$(1,n?e:[e],n?[]:t);return n||arguments.length==2?[r,i]:r}function BT(e,t,n){const r=jt.fun(t)&&t,{reset:i,sort:A,trail:l=0,expires:c=!0,exitBeforeEnter:f=!1,onDestroyed:h,ref:I,config:B}=r?r():t,v=x.useMemo(()=>r||arguments.length==3?y$():void 0,[]),D=ws(e),S=[],R=x.useRef(null),F=i?null:R.current;Wg(()=>{R.current=S}),oT(()=>(lr(S,Ae=>{v==null||v.add(Ae.ctrl),Ae.ctrl.ref=v}),()=>{lr(R.current,Ae=>{Ae.expired&&clearTimeout(Ae.expirationId),cT(Ae.ctrl,v),Ae.ctrl.stop(!0)})}));const N=ske(D,r?r():t,F),M=i&&R.current||[];Wg(()=>lr(M,({ctrl:Ae,item:Be,key:ae})=>{cT(Ae,v),Zs(h,Be,ae)}));const P=[];if(F&&lr(F,(Ae,Be)=>{Ae.expired?(clearTimeout(Ae.expirationId),M.push(Ae)):(Be=P[Be]=N.indexOf(Ae.key),~Be&&(S[Be]=Ae))}),lr(D,(Ae,Be)=>{S[Be]||(S[Be]={key:N[Be],item:Ae,phase:"mount",ctrl:new p$},S[Be].ctrl.item=Ae)}),P.length){let Ae=-1;const{leave:Be}=r?r():t;lr(P,(ae,Ce)=>{const de=F[Ce];~ae?(Ae=S.indexOf(de),S[Ae]={...de,item:D[ae]}):Be&&S.splice(++Ae,0,de)})}jt.fun(A)&&S.sort((Ae,Be)=>A(Ae.item,Be.item));let G=-l;const J=rT(),W=cw(t),q=new Map,$=x.useRef(new Map),oe=x.useRef(!1);lr(S,(Ae,Be)=>{const ae=Ae.key,Ce=Ae.phase,de=r?r():t;let ge,be;const Te=Zs(de.delay||0,ae);if(Ce=="mount")ge=de.enter,be="enter";else{const We=N.indexOf(ae)<0;if(Ce!="leave")if(We)ge=de.leave,be="leave";else if(ge=de.update)be="update";else return;else if(!We)ge=de.enter,be="enter";else return}if(ge=Zs(ge,Ae.item,Be),ge=jt.obj(ge)?aT(ge):{to:ge},!ge.config){const We=B||W.config;ge.config=Zs(We,Ae.item,Be,be)}G+=l;const me={...W,delay:Te+G,ref:I,immediate:de.immediate,reset:!1,...ge};if(be=="enter"&&jt.und(me.from)){const We=r?r():t,De=jt.und(We.initial)||F?We.from:We.initial;me.from=Zs(De,Ae.item,Be)}const{onResolve:Ye}=me;me.onResolve=We=>{Zs(Ye,We);const De=R.current,_e=De.find(xe=>xe.key===ae);if(_e&&!(We.cancelled&&_e.phase!="update")&&_e.ctrl.idle){const xe=De.every(ve=>ve.ctrl.idle);if(_e.phase=="leave"){const ve=Zs(c,_e.item);if(ve!==!1){const Ue=ve===!0?0:ve;if(_e.expired=!0,!xe&&Ue>0){Ue<=2147483647&&(_e.expirationId=setTimeout(J,Ue));return}}}xe&&De.some(ve=>ve.expired)&&($.current.delete(_e),f&&(oe.current=!0),J())}};const rt=ET(Ae.ctrl,me);be==="leave"&&f?$.current.set(Ae,{phase:be,springs:rt,payload:me}):q.set(Ae,{phase:be,springs:rt,payload:me})});const K=x.useContext(PC),se=iT(K),Ee=K!==se&&t$(K);Wg(()=>{Ee&&lr(S,Ae=>{Ae.ctrl.start({default:K})})},[K]),lr(q,(Ae,Be)=>{if($.current.size){const ae=S.findIndex(Ce=>Ce.key===Be.key);S.splice(ae,1)}}),Wg(()=>{lr($.current.size?$.current:q,({phase:Ae,payload:Be},ae)=>{const{ctrl:Ce}=ae;ae.phase=Ae,v==null||v.add(Ce),Ee&&Ae=="enter"&&Ce.start({default:K}),Be&&(n$(Ce,Be.ref),(Ce.ref||v)&&!oe.current?Ce.update(Be):(Ce.start(Be),oe.current&&(oe.current=!1)))})},i?void 0:n);const ie=Ae=>x.createElement(x.Fragment,null,S.map((Be,ae)=>{const{springs:Ce}=q.get(Be)||Be.ctrl,de=Ae({...Ce},Be.item,Be,ae);return de&&de.type?x.createElement(de.type,{...de.props,key:jt.str(Be.key)||jt.num(Be.key)?Be.key:Be.ctrl.id,ref:de.ref}):de}));return v?[ie,v]:ie}var Ake=1;function ske(e,{key:t,keys:n=t},r){if(n===null){const i=new Set;return e.map(A=>{const l=r&&r.find(c=>c.item===A&&c.phase!=="leave"&&!i.has(c));return l?(i.add(l),l.key):Ake++})}return jt.und(n)?e:jt.fun(n)?e.map(n):ws(n)}var b$=class extends hT{constructor(e,t){super(),this.source=e,this.idle=!0,this._active=new Set,this.calc=wC(...t);const n=this._get(),r=sT(n);AT(this,r.create(n))}advance(e){const t=this._get(),n=this.get();Q0(t,n)||(uu(this).setValue(t),this._onChange(t,this.idle)),!this.idle&&Q$(this._active)&&yT(this)}_get(){const e=jt.arr(this.source)?this.source.map(Ks):ws(Ks(this.source));return this.calc(...e)}_start(){this.idle&&!Q$(this._active)&&(this.idle=!1,lr(sw(this),e=>{e.done=!1}),sc.skipAnimation?(fr.batchedUpdates(()=>this.advance()),yT(this)):ew.start(this))}_attach(){let e=1;lr(ws(this.source),t=>{gl(t)&&$p(t,this),gT(t)&&(t.idle||this._active.add(t),e=Math.max(e,t.priority+1))}),this.priority=e,this._start()}_detach(){lr(ws(this.source),e=>{gl(e)&&kC(e,this)}),this._active.clear(),yT(this)}eventObserved(e){e.type=="change"?e.idle?this.advance():(this._active.add(e.parent),this._start()):e.type=="idle"?this._active.delete(e.parent):e.type=="priority"&&(this.priority=ws(this.source).reduce((t,n)=>Math.max(t,(gT(n)?n.priority:0)+1),0))}};function ake(e){return e.idle!==!1}function Q$(e){return!e.size||Array.from(e).every(ake)}function yT(e){e.idle||(e.idle=!0,lr(sw(e),t=>{t.done=!0}),_C(e,{type:"idle",parent:e}))}var t1=(e,...t)=>new b$(e,t);sc.assign({createStringInterpolator:zZ,to:(e,t)=>new b$(e,t)});var w$=/^--/;function lke(e,t){return t==null||typeof t=="boolean"||t===""?"":typeof t=="number"&&t!==0&&!w$.test(e)&&!(UC.hasOwnProperty(e)&&UC[e])?t+"px":(""+t).trim()}var x$={};function cke(e,t){if(!e.nodeType||!e.setAttribute)return!1;const n=e.nodeName==="filter"||e.parentNode&&e.parentNode.nodeName==="filter",{className:r,style:i,children:A,scrollTop:l,scrollLeft:c,viewBox:f,...h}=t,I=Object.values(h),B=Object.keys(h).map(v=>n||e.hasAttribute(v)?v:x$[v]||(x$[v]=v.replace(/([A-Z])/g,D=>"-"+D.toLowerCase())));A!==void 0&&(e.textContent=A);for(const v in i)if(i.hasOwnProperty(v)){const D=lke(v,i[v]);w$.test(v)?e.style.setProperty(v,D):e.style[v]=D}B.forEach((v,D)=>{e.setAttribute(v,I[D])}),r!==void 0&&(e.className=r),l!==void 0&&(e.scrollTop=l),c!==void 0&&(e.scrollLeft=c),f!==void 0&&e.setAttribute("viewBox",f)}var UC={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},uke=(e,t)=>e+t.charAt(0).toUpperCase()+t.substring(1),dke=["Webkit","Ms","Moz","O"];UC=Object.keys(UC).reduce((e,t)=>(dke.forEach(n=>e[uke(n,t)]=e[t]),e),UC);var fke=/^(matrix|translate|scale|rotate|skew)/,gke=/^(translate)/,hke=/^(rotate|skew)/,vT=(e,t)=>jt.num(e)&&e!==0?e+t:e,dw=(e,t)=>jt.arr(e)?e.every(n=>dw(n,t)):jt.num(e)?e===t:parseFloat(e)===t,pke=class extends lw{constructor({x:e,y:t,z:n,...r}){const i=[],A=[];(e||t||n)&&(i.push([e||0,t||0,n||0]),A.push(l=>[`translate3d(${l.map(c=>vT(c,"px")).join(",")})`,dw(l,0)])),cu(r,(l,c)=>{if(c==="transform")i.push([l||""]),A.push(f=>[f,f===""]);else if(fke.test(c)){if(delete r[c],jt.und(l))return;const f=gke.test(c)?"px":hke.test(c)?"deg":"";i.push(ws(l)),A.push(c==="rotate3d"?([h,I,B,v])=>[`rotate3d(${h},${I},${B},${vT(v,f)})`,dw(v,0)]:h=>[`${c}(${h.map(I=>vT(I,f)).join(",")})`,dw(h,c.startsWith("scale")?1:0)])}}),i.length&&(r.transform=new mke(i,A)),super(r)}},mke=class extends GZ{constructor(e,t){super(),this.inputs=e,this.transforms=t,this._value=null}get(){return this._value||(this._value=this._get())}_get(){let e="",t=!0;return lr(this.inputs,(n,r)=>{const i=Ks(n[0]),[A,l]=this.transforms[r](jt.arr(i)?i:n.map(Ks));e+=" "+A,t=t&&l}),t?"none":e}observerAdded(e){e==1&&lr(this.inputs,t=>lr(t,n=>gl(n)&&$p(n,this)))}observerRemoved(e){e==0&&lr(this.inputs,t=>lr(t,n=>gl(n)&&kC(n,this)))}eventObserved(e){e.type=="change"&&(this._value=null),_C(this,e)}},Ike=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"];sc.assign({batchedUpdates:Yc.unstable_batchedUpdates,createStringInterpolator:zZ,colors:f4e});var Cke=J4e(Ike,{applyAnimatedValues:cke,createAnimatedStyle:e=>new pke(e),getComponentProps:({scrollTop:e,scrollLeft:t,...n})=>n}),$s=Cke.animated;function Eke(){const e=Me(nc);if(!e)return;const t=e.downloading_full_snapshot_throughput?`${Ul(e.downloading_full_snapshot_throughput).toString()}/s`:"-";return p.jsxs(Fe,{children:[p.jsx(b0,{label:"Peer",value:e.downloading_full_snapshot_peer}),p.jsx(b0,{label:"Slot",value:e.downloading_full_snapshot_slot}),p.jsx(b0,{label:"Throughput",value:t})]})}function Bke(){const e=Me(nc);return e?p.jsx(b0,{label:"Slot",value:e.waiting_for_supermajority_slot}):null}function yke(){const e=Me(nc);return e?p.jsx(Cg,{value:e.waiting_for_supermajority_stake_percent||0,className:KQ.progress}):null}function vke(){const e=Me(nc);if(!e)return;const t=e.downloading_incremental_snapshot_throughput?`${Ul(e.downloading_incremental_snapshot_throughput).toString()}/s`:"-";return p.jsxs(Fe,{children:[p.jsx(b0,{label:"Peer",value:e.downloading_incremental_snapshot_peer}),p.jsx(b0,{label:"Slot",value:e.downloading_incremental_snapshot_slot}),p.jsx(b0,{label:"Throughput",value:t})]})}const _$=[{step:"initializing"},{step:"searching_for_full_snapshot"},{step:"downloading_full_snapshot",rightChildren:p.jsx(o4e,{}),bottomChildren:p.jsx(Eke,{})},{step:"searching_for_incremental_snapshot"},{step:"downloading_incremental_snapshot",rightChildren:p.jsx(i4e,{}),bottomChildren:p.jsx(vke,{})},{step:"cleaning_blockstore"},{step:"cleaning_accounts"},{step:"loading_ledger"},{step:"processing_ledger",bottomChildren:p.jsx(e4e,{})},{step:"starting_services"},{step:"waiting_for_supermajority",rightChildren:p.jsx(yke,{}),bottomChildren:p.jsx(Bke,{}),optional:!0},{step:"running"}];function bke(){const e=Me(Oc),t=Me(nc),[n,r]=il(zg),i=Me(jl),A=!!Object.values(i).length,[l,c]=x.useState();x.useEffect(()=>{(t==null?void 0:t.phase)!=="running"&&r(!0),c(v=>t?t.phase==="running":v)},[r,t]);const f=l===!0||l===void 0;x.useEffect(()=>{A&&(t==null?void 0:t.phase)==="running"&&r(!1)},[A,r,n,t==null?void 0:t.phase]);const h=Math.max(0,_$.findIndex(({step:v})=>v===(t==null?void 0:t.phase))),[I,B]=lf(()=>({from:{opacity:n?1:0,zIndex:n?1:-1}}));return x.useEffect(()=>{B.stop(),n?B.start({from:{opacity:1,zIndex:1}}):B.start({from:{opacity:1,zIndex:1},to:{opacity:0,zIndex:-1}})},[B,n]),p.jsx($s.div,{className:lS.outerContainer,style:I,children:p.jsxs(Fe,{direction:"column",gap:"4",className:lS.innerContainer,children:[p.jsx(Bo,{flexGrow:"1"}),p.jsx("img",{src:e===Au.Firedancer?P5:IZ,alt:"fd",height:"50px",style:{marginBottom:"28px"}}),_$.map(({step:v,rightChildren:D,bottomChildren:S,optional:R},F)=>{if(R&&v!==(t==null?void 0:t.phase))return null;const N=Qke(v);return F===h?p.jsx(W_e,{label:N,hide:f,rightChildren:D,bottomChildren:S},v):Ft!==void 0).map((t,n)=>t==="for"?t:t==="rpc"?"RPC":(n===0?t[0].toUpperCase():t[0])+t.slice(1)).join(" ")}const wke="_container_e8h4h_1",xke="_blur_e8h4h_4",k$={container:wke,blur:xke};function D$(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t(e[t]={...n,index:r},e),{});function Pke({stepIndex:e}){const t=Me(L5);return p.jsx(Fe,{className:bT.progressBar,children:Object.values(QT).map(({name:n,estimatedPct:r,completeColor:i,inProgressBackground:A,incompleteColor:l,borderColor:c},f)=>{const h=`${r*100}%`;if(f===e)return p.jsx("div",{className:bT.currentStep,style:{width:h,background:l,borderColor:c},children:p.jsx("div",{className:bT.progressingBar,style:{transform:`scaleX(${t/100})`,background:A}})},n);const I=f=0)&&(n[i]=e[i]);return n}let S$,wT,R$,xT,T$,M$,N$,F$,O$,j$,L$,P$,U$,G$,H$,Y$,J$,fw,z$,W$,q$,X$,V$,K$,Z$,$$,eee,_T,tee,nee,ree,oee,iee,Aee,see,aee,lee,cee,uee,kT,dee,fee,gee,hee;S$=["color"],wT=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,S$);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M7.5 2C7.77614 2 8 2.22386 8 2.5L8 11.2929L11.1464 8.14645C11.3417 7.95118 11.6583 7.95118 11.8536 8.14645C12.0488 8.34171 12.0488 8.65829 11.8536 8.85355L7.85355 12.8536C7.75979 12.9473 7.63261 13 7.5 13C7.36739 13 7.24021 12.9473 7.14645 12.8536L3.14645 8.85355C2.95118 8.65829 2.95118 8.34171 3.14645 8.14645C3.34171 7.95118 3.65829 7.95118 3.85355 8.14645L7 11.2929L7 2.5C7 2.22386 7.22386 2 7.5 2Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),R$=["color"],xT=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,R$);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M7.14645 2.14645C7.34171 1.95118 7.65829 1.95118 7.85355 2.14645L11.8536 6.14645C12.0488 6.34171 12.0488 6.65829 11.8536 6.85355C11.6583 7.04882 11.3417 7.04882 11.1464 6.85355L8 3.70711L8 12.5C8 12.7761 7.77614 13 7.5 13C7.22386 13 7 12.7761 7 12.5L7 3.70711L3.85355 6.85355C3.65829 7.04882 3.34171 7.04882 3.14645 6.85355C2.95118 6.65829 2.95118 6.34171 3.14645 6.14645L7.14645 2.14645Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),T$=["color"],Ek=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,T$);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M4.18179 6.18181C4.35753 6.00608 4.64245 6.00608 4.81819 6.18181L7.49999 8.86362L10.1818 6.18181C10.3575 6.00608 10.6424 6.00608 10.8182 6.18181C10.9939 6.35755 10.9939 6.64247 10.8182 6.81821L7.81819 9.81821C7.73379 9.9026 7.61934 9.95001 7.49999 9.95001C7.38064 9.95001 7.26618 9.9026 7.18179 9.81821L4.18179 6.81821C4.00605 6.64247 4.00605 6.35755 4.18179 6.18181Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),M$=["color"],bk=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,M$);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M4.18179 8.81819C4.00605 8.64245 4.00605 8.35753 4.18179 8.18179L7.18179 5.18179C7.26618 5.0974 7.38064 5.04999 7.49999 5.04999C7.61933 5.04999 7.73379 5.0974 7.81819 5.18179L10.8182 8.18179C10.9939 8.35753 10.9939 8.64245 10.8182 8.81819C10.6424 8.99392 10.3575 8.99392 10.1818 8.81819L7.49999 6.13638L4.81819 8.81819C4.64245 8.99392 4.35753 8.99392 4.18179 8.81819Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),N$=["color"],F$=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,N$);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),O$=["color"],j$=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,O$);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),L$=["color"],P$=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,L$);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M3.13523 8.84197C3.3241 9.04343 3.64052 9.05363 3.84197 8.86477L7.5 5.43536L11.158 8.86477C11.3595 9.05363 11.6759 9.04343 11.8648 8.84197C12.0536 8.64051 12.0434 8.32409 11.842 8.13523L7.84197 4.38523C7.64964 4.20492 7.35036 4.20492 7.15803 4.38523L3.15803 8.13523C2.95657 8.32409 2.94637 8.64051 3.13523 8.84197Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),U$=["color"],G$=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,U$);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M1 9.50006C1 10.3285 1.67157 11.0001 2.5 11.0001H4L4 10.0001H2.5C2.22386 10.0001 2 9.7762 2 9.50006L2 2.50006C2 2.22392 2.22386 2.00006 2.5 2.00006L9.5 2.00006C9.77614 2.00006 10 2.22392 10 2.50006V4.00002H5.5C4.67158 4.00002 4 4.67159 4 5.50002V12.5C4 13.3284 4.67158 14 5.5 14H12.5C13.3284 14 14 13.3284 14 12.5V5.50002C14 4.67159 13.3284 4.00002 12.5 4.00002H11V2.50006C11 1.67163 10.3284 1.00006 9.5 1.00006H2.5C1.67157 1.00006 1 1.67163 1 2.50006V9.50006ZM5 5.50002C5 5.22388 5.22386 5.00002 5.5 5.00002H12.5C12.7761 5.00002 13 5.22388 13 5.50002V12.5C13 12.7762 12.7761 13 12.5 13H5.5C5.22386 13 5 12.7762 5 12.5V5.50002Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),H$=["color"],Y$=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,H$);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M13.15 7.49998C13.15 4.66458 10.9402 1.84998 7.50002 1.84998C4.72167 1.84998 3.34849 3.9064 2.76335 5H4.5C4.77614 5 5 5.22386 5 5.5C5 5.77614 4.77614 6 4.5 6H1.5C1.22386 6 1 5.77614 1 5.5V2.5C1 2.22386 1.22386 2 1.5 2C1.77614 2 2 2.22386 2 2.5V4.31318C2.70453 3.07126 4.33406 0.849976 7.50002 0.849976C11.5628 0.849976 14.15 4.18537 14.15 7.49998C14.15 10.8146 11.5628 14.15 7.50002 14.15C5.55618 14.15 3.93778 13.3808 2.78548 12.2084C2.16852 11.5806 1.68668 10.839 1.35816 10.0407C1.25306 9.78536 1.37488 9.49315 1.63024 9.38806C1.8856 9.28296 2.17781 9.40478 2.2829 9.66014C2.56374 10.3425 2.97495 10.9745 3.4987 11.5074C4.47052 12.4963 5.83496 13.15 7.50002 13.15C10.9402 13.15 13.15 10.3354 13.15 7.49998ZM7.5 4.00001C7.77614 4.00001 8 4.22387 8 4.50001V7.29291L9.85355 9.14646C10.0488 9.34172 10.0488 9.65831 9.85355 9.85357C9.65829 10.0488 9.34171 10.0488 9.14645 9.85357L7.14645 7.85357C7.05268 7.7598 7 7.63262 7 7.50001V4.50001C7 4.22387 7.22386 4.00001 7.5 4.00001Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),J$=["color"],fw=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,J$);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M12.8536 2.85355C13.0488 2.65829 13.0488 2.34171 12.8536 2.14645C12.6583 1.95118 12.3417 1.95118 12.1464 2.14645L7.5 6.79289L2.85355 2.14645C2.65829 1.95118 2.34171 1.95118 2.14645 2.14645C1.95118 2.34171 1.95118 2.65829 2.14645 2.85355L6.79289 7.5L2.14645 12.1464C1.95118 12.3417 1.95118 12.6583 2.14645 12.8536C2.34171 13.0488 2.65829 13.0488 2.85355 12.8536L7.5 8.20711L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L8.20711 7.5L12.8536 2.85355Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),z$=["color"],W$=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,z$);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),q$=["color"],X$=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,q$);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M11.1464 6.85355C11.3417 7.04882 11.6583 7.04882 11.8536 6.85355C12.0488 6.65829 12.0488 6.34171 11.8536 6.14645L7.85355 2.14645C7.65829 1.95118 7.34171 1.95118 7.14645 2.14645L3.14645 6.14645C2.95118 6.34171 2.95118 6.65829 3.14645 6.85355C3.34171 7.04882 3.65829 7.04882 3.85355 6.85355L7.5 3.20711L11.1464 6.85355ZM11.1464 12.8536C11.3417 13.0488 11.6583 13.0488 11.8536 12.8536C12.0488 12.6583 12.0488 12.3417 11.8536 12.1464L7.85355 8.14645C7.65829 7.95118 7.34171 7.95118 7.14645 8.14645L3.14645 12.1464C2.95118 12.3417 2.95118 12.6583 3.14645 12.8536C3.34171 13.0488 3.65829 13.0488 3.85355 12.8536L7.5 9.20711L11.1464 12.8536Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),V$=["color"],K$=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,V$);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M2 2.5C2 2.22386 2.22386 2 2.5 2H5.5C5.77614 2 6 2.22386 6 2.5C6 2.77614 5.77614 3 5.5 3H3V5.5C3 5.77614 2.77614 6 2.5 6C2.22386 6 2 5.77614 2 5.5V2.5ZM9 2.5C9 2.22386 9.22386 2 9.5 2H12.5C12.7761 2 13 2.22386 13 2.5V5.5C13 5.77614 12.7761 6 12.5 6C12.2239 6 12 5.77614 12 5.5V3H9.5C9.22386 3 9 2.77614 9 2.5ZM2.5 9C2.77614 9 3 9.22386 3 9.5V12H5.5C5.77614 12 6 12.2239 6 12.5C6 12.7761 5.77614 13 5.5 13H2.5C2.22386 13 2 12.7761 2 12.5V9.5C2 9.22386 2.22386 9 2.5 9ZM12.5 9C12.7761 9 13 9.22386 13 9.5V12.5C13 12.7761 12.7761 13 12.5 13H9.5C9.22386 13 9 12.7761 9 12.5C9 12.2239 9.22386 12 9.5 12H12V9.5C12 9.22386 12.2239 9 12.5 9Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),Z$=["color"],$$=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,Z$);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M5.5 2C5.77614 2 6 2.22386 6 2.5V5.5C6 5.77614 5.77614 6 5.5 6H2.5C2.22386 6 2 5.77614 2 5.5C2 5.22386 2.22386 5 2.5 5H5V2.5C5 2.22386 5.22386 2 5.5 2ZM9.5 2C9.77614 2 10 2.22386 10 2.5V5H12.5C12.7761 5 13 5.22386 13 5.5C13 5.77614 12.7761 6 12.5 6H9.5C9.22386 6 9 5.77614 9 5.5V2.5C9 2.22386 9.22386 2 9.5 2ZM2 9.5C2 9.22386 2.22386 9 2.5 9H5.5C5.77614 9 6 9.22386 6 9.5V12.5C6 12.7761 5.77614 13 5.5 13C5.22386 13 5 12.7761 5 12.5V10H2.5C2.22386 10 2 9.77614 2 9.5ZM9 9.5C9 9.22386 9.22386 9 9.5 9H12.5C12.7761 9 13 9.22386 13 9.5C13 9.77614 12.7761 10 12.5 10H10V12.5C10 12.7761 9.77614 13 9.5 13C9.22386 13 9 12.7761 9 12.5V9.5Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),eee=["color"],_T=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,eee);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),tee=["color"],nee=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,tee);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M2.25 7.5C2.25 7.22386 2.47386 7 2.75 7H12.25C12.5261 7 12.75 7.22386 12.75 7.5C12.75 7.77614 12.5261 8 12.25 8H2.75C2.47386 8 2.25 7.77614 2.25 7.5Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),ree=["color"],oee=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,ree);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M8 2.75C8 2.47386 7.77614 2.25 7.5 2.25C7.22386 2.25 7 2.47386 7 2.75V7H2.75C2.47386 7 2.25 7.22386 2.25 7.5C2.25 7.77614 2.47386 8 2.75 8H7V12.25C7 12.5261 7.22386 12.75 7.5 12.75C7.77614 12.75 8 12.5261 8 12.25V8H12.25C12.5261 8 12.75 7.77614 12.75 7.5C12.75 7.22386 12.5261 7 12.25 7H8V2.75Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),iee=["color"],Aee=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,iee);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M7.49991 0.876892C3.84222 0.876892 0.877075 3.84204 0.877075 7.49972C0.877075 11.1574 3.84222 14.1226 7.49991 14.1226C11.1576 14.1226 14.1227 11.1574 14.1227 7.49972C14.1227 3.84204 11.1576 0.876892 7.49991 0.876892ZM1.82707 7.49972C1.82707 4.36671 4.36689 1.82689 7.49991 1.82689C10.6329 1.82689 13.1727 4.36671 13.1727 7.49972C13.1727 10.6327 10.6329 13.1726 7.49991 13.1726C4.36689 13.1726 1.82707 10.6327 1.82707 7.49972ZM7.50003 4C7.77617 4 8.00003 4.22386 8.00003 4.5V7H10.5C10.7762 7 11 7.22386 11 7.5C11 7.77614 10.7762 8 10.5 8H8.00003V10.5C8.00003 10.7761 7.77617 11 7.50003 11C7.22389 11 7.00003 10.7761 7.00003 10.5V8H4.50003C4.22389 8 4.00003 7.77614 4.00003 7.5C4.00003 7.22386 4.22389 7 4.50003 7H7.00003V4.5C7.00003 4.22386 7.22389 4 7.50003 4Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),see=["color"],aee=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,see);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M4.85355 2.14645C5.04882 2.34171 5.04882 2.65829 4.85355 2.85355L3.70711 4H9C11.4853 4 13.5 6.01472 13.5 8.5C13.5 10.9853 11.4853 13 9 13H5C4.72386 13 4.5 12.7761 4.5 12.5C4.5 12.2239 4.72386 12 5 12H9C10.933 12 12.5 10.433 12.5 8.5C12.5 6.567 10.933 5 9 5H3.70711L4.85355 6.14645C5.04882 6.34171 5.04882 6.65829 4.85355 6.85355C4.65829 7.04882 4.34171 7.04882 4.14645 6.85355L2.14645 4.85355C1.95118 4.65829 1.95118 4.34171 2.14645 4.14645L4.14645 2.14645C4.34171 1.95118 4.65829 1.95118 4.85355 2.14645Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),lee=["color"],cee=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,lee);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M3.89949 9.49998C3.89949 9.72089 3.7204 9.89997 3.49949 9.89997C3.27857 9.89997 3.09949 9.72089 3.09949 9.49998L3.09949 2.46566L1.78233 3.78282C1.62612 3.93903 1.37285 3.93903 1.21664 3.78282C1.06043 3.62661 1.06043 3.37334 1.21664 3.21713L3.21664 1.21713C3.29166 1.14212 3.3934 1.09998 3.49949 1.09998C3.60557 1.09998 3.70732 1.14212 3.78233 1.21713L5.78233 3.21713C5.93854 3.37334 5.93854 3.62661 5.78233 3.78282C5.62612 3.93903 5.37285 3.93903 5.21664 3.78282L3.89949 2.46566L3.89949 9.49998ZM8.49998 1.99998C8.22383 1.99998 7.99998 2.22383 7.99998 2.49998C7.99998 2.77612 8.22383 2.99998 8.49998 2.99998H14.5C14.7761 2.99998 15 2.77612 15 2.49998C15 2.22383 14.7761 1.99998 14.5 1.99998H8.49998ZM8.49998 4.99998C8.22383 4.99998 7.99998 5.22383 7.99998 5.49998C7.99998 5.77612 8.22383 5.99998 8.49998 5.99998H14.5C14.7761 5.99998 15 5.77612 15 5.49998C15 5.22383 14.7761 4.99998 14.5 4.99998H8.49998ZM7.99998 8.49998C7.99998 8.22383 8.22383 7.99998 8.49998 7.99998H14.5C14.7761 7.99998 15 8.22383 15 8.49998C15 8.77612 14.7761 8.99998 14.5 8.99998H8.49998C8.22383 8.99998 7.99998 8.77612 7.99998 8.49998Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),uee=["color"],kT=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,uee);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M7.49998 0.849976C7.22383 0.849976 6.99998 1.07383 6.99998 1.34998V3.52234C6.99998 3.79848 7.22383 4.02234 7.49998 4.02234C7.77612 4.02234 7.99998 3.79848 7.99998 3.52234V1.8718C10.8862 2.12488 13.15 4.54806 13.15 7.49998C13.15 10.6204 10.6204 13.15 7.49998 13.15C4.37957 13.15 1.84998 10.6204 1.84998 7.49998C1.84998 6.10612 2.35407 4.83128 3.19049 3.8459C3.36919 3.63538 3.34339 3.31985 3.13286 3.14115C2.92234 2.96245 2.60681 2.98825 2.42811 3.19877C1.44405 4.35808 0.849976 5.86029 0.849976 7.49998C0.849976 11.1727 3.82728 14.15 7.49998 14.15C11.1727 14.15 14.15 11.1727 14.15 7.49998C14.15 3.82728 11.1727 0.849976 7.49998 0.849976ZM6.74049 8.08072L4.22363 4.57237C4.15231 4.47295 4.16346 4.33652 4.24998 4.25C4.33649 4.16348 4.47293 4.15233 4.57234 4.22365L8.08069 6.74051C8.56227 7.08599 8.61906 7.78091 8.19998 8.2C7.78089 8.61909 7.08597 8.56229 6.74049 8.08072Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),dee=["color"],fee=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,dee);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159ZM4.25 6.5C4.25 6.22386 4.47386 6 4.75 6H6V4.75C6 4.47386 6.22386 4.25 6.5 4.25C6.77614 4.25 7 4.47386 7 4.75V6H8.25C8.52614 6 8.75 6.22386 8.75 6.5C8.75 6.77614 8.52614 7 8.25 7H7V8.25C7 8.52614 6.77614 8.75 6.5 8.75C6.22386 8.75 6 8.52614 6 8.25V7H4.75C4.47386 7 4.25 6.77614 4.25 6.5Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),gee=["color"],hee=x.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=bi(e,gee);return x.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),x.createElement("path",{d:"M6.5 10C8.433 10 10 8.433 10 6.5C10 4.567 8.433 3 6.5 3C4.567 3 3 4.567 3 6.5C3 8.433 4.567 10 6.5 10ZM6.5 11C7.56251 11 8.53901 10.6318 9.30884 10.0159L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L10.0159 9.30884C10.6318 8.53901 11 7.56251 11 6.5C11 4.01472 8.98528 2 6.5 2C4.01472 2 2 4.01472 2 6.5C2 8.98528 4.01472 11 6.5 11ZM4.75 6C4.47386 6 4.25 6.22386 4.25 6.5C4.25 6.77614 4.47386 7 4.75 7H8.25C8.52614 7 8.75 6.77614 8.75 6.5C8.75 6.22386 8.52614 6 8.25 6H4.75Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))});const DT="/assets/firedancer_logo-CrgwxzPk.svg",Uke="_cluster-container_c8wbz_1",Gke="_cluster_c8wbz_1",Hke="_cluster-name_c8wbz_19",Yke="_ws-status-icon_c8wbz_25",gw={clusterContainer:Uke,cluster:Gke,clusterName:Hke,wsStatusIcon:Yke},Jke="data:image/svg+xml,%3csvg%20width='10'%20height='15'%20viewBox='0%200%2010%2015'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8.06927%203.73828C8.44427%203.73828%208.78412%203.90234%209.08881%204.23047C9.39349%204.53516%209.54584%204.875%209.54584%205.25V9.36328L6.90912%2012V14.25H3.18256V12L0.545837%209.36328V5.25C0.545837%204.875%200.698181%204.53516%201.00287%204.23047C1.30756%203.90234%201.6474%203.73828%202.0224%203.73828H2.05756V0.75H3.53412V3.73828H6.55756V0.75H8.03412L8.06927%203.73828Z'%20fill='%233CFF73'/%3e%3c/svg%3e",zke="data:image/svg+xml,%3csvg%20width='14'%20height='15'%20viewBox='0%200%2014%2015'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M3.41406%203.41406C8.96875%208.99219%2012.3438%2012.3672%2013.5391%2013.5391L12.5898%2014.4883L9.25%2011.1484L8.86328%2011.5V13.75H5.13672V11.5L2.5%208.86328V4.75C2.5%204.63281%202.51172%204.53906%202.53516%204.46875L0.0390625%201.9375L0.988281%200.988281L3.37891%203.41406H3.41406ZM11.5%208.86328L11.1484%209.25L4.01172%202.11328V0.25H5.48828V3.23828H8.51172V0.25H9.98828V3.23828C10.3633%203.23828%2010.7031%203.40234%2011.0078%203.73047C11.3359%204.03516%2011.5%204.375%2011.5%204.75V8.86328Z'%20fill='%23FFA73C'/%3e%3c/svg%3e",Wke="data:image/svg+xml,%3csvg%20width='14'%20height='15'%20viewBox='0%200%2014%2015'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M3.41406%203.41406C8.96875%208.99219%2012.3438%2012.3672%2013.5391%2013.5391L12.5898%2014.4883L9.25%2011.1484L8.86328%2011.5V13.75H5.13672V11.5L2.5%208.86328V4.75C2.5%204.63281%202.51172%204.53906%202.53516%204.46875L0.0390625%201.9375L0.988281%200.988281L3.37891%203.41406H3.41406ZM11.5%208.86328L11.1484%209.25L4.01172%202.11328V0.25H5.48828V3.23828H8.51172V0.25H9.98828V3.23828C10.3633%203.23828%2010.7031%203.40234%2011.0078%203.73047C11.3359%204.03516%2011.5%204.375%2011.5%204.75V8.86328Z'%20fill='%23E5484D'/%3e%3c/svg%3e";var xs=(e=>(e.Disconnected="disconnected",e.Connecting="connecting",e.Connected="connected",e))(xs||{});const hw=$e(xs.Disconnected),pee={[p0.balanced]:"\u2696\uFE0F",[p0.perf]:"\u26A1",[p0.revenue]:"\u{1F680}"},GC=2;function mee(){const e=Me(Nb),t=Me(QW),n=Me(wW),r=Me(hw);if(!e&&!t)return null;let i=Wke;r===xs.Connected?i=Jke:r===xs.Connecting&&(i=zke);let A=e;return e==="mainnet-beta"&&(A="mainnet"),p.jsxs(Fe,{width:`${AQ+GC}px`,className:gw.clusterContainer,gap:"5px",ml:`-${GC}px`,p:`${GC}px 5px ${GC}px ${GC}px`,children:[p.jsxs(Fe,{className:gw.cluster,flexGrow:"1",direction:"column",align:"center",style:{background:v5(e)},children:[p.jsx(Zo,{content:"Cluster the validator is joined to",children:p.jsx(Se,{className:gw.clusterName,children:A})}),p.jsx(Zo,{content:`Current validator software version. Commit Hash: ${n||"unknown"}`,children:p.jsxs(Se,{children:["v",t]})})]}),p.jsx(Zo,{content:`GUI is currently ${r} ${r===xs.Disconnected?"from":"to"} the validator`,children:p.jsx("img",{src:i,className:gw.wsStatusIcon,alt:"ws status"})}),p.jsx(Vke,{}),p.jsx(Kke,{})]})}function qke(){const e=Me(Nb),t=v5(e);return p.jsx("div",{style:{background:t,height:Rp,width:"100%"}})}function Xke(e){switch(e.status){case"connected":return TR;case"connecting":return MR;case"disconnected":return Fc}}function Vke(){const e=Me(sS);if(!e)return null;const t=Xke(e);return p.jsx(Zo,{content:`Currently ${e.status} ${e.status==="disconnected"?"from":"to"} ${e.name} - ${e.url} (${e.ip})`,children:p.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",children:[p.jsx("rect",{x:"0.957031",y:"0.478027",width:"46.6736",height:"46.6736",rx:"23.3368",fill:t}),p.jsx("circle",{cx:"24.29",cy:"23.5771",r:"18.6313",stroke:t,strokeWidth:"1.62011"}),p.jsx("path",{d:"M26.1499 19.0332C24.8137 19.9555 23.3768 20.2715 21.842 19.9795C20.3046 19.6893 19.0833 18.8857 18.1757 17.5706L16.8251 15.6137L18.7625 14.2765L20.1131 16.2334C20.6504 17.012 21.3676 17.4839 22.2672 17.6474C23.1642 17.8126 24.0091 17.6217 24.7967 17.0781L28.2146 14.7043C29.301 13.9499 30.7935 14.2212 31.5448 15.3097L26.1499 19.0332Z",fill:t}),p.jsx("path",{d:"M28.7658 25.5351C27.8418 24.1963 27.5235 22.7579 27.8126 21.2226C28.0999 19.6846 28.9007 18.464 30.2133 17.558L32.1665 16.21L33.5062 18.1511L31.5531 19.4991C30.776 20.0355 30.3057 20.7523 30.1439 21.6522C29.9803 22.5495 30.1726 23.3953 30.7172 24.1844L33.1006 27.6163C33.8536 28.7006 33.5828 30.1903 32.4963 30.9402L28.7658 25.5351Z",fill:t}),p.jsx("path",{d:"M22.2392 28.1641C23.5755 27.2418 25.0123 26.9258 26.5471 27.2178C28.0846 27.508 29.3058 28.3116 30.2135 29.6267L31.5641 31.5835L29.6267 32.9207L28.2761 30.9638C27.7387 30.1853 27.0215 29.7134 26.1219 29.5499C25.2249 29.3846 24.38 29.5756 23.5924 30.1191L20.1745 32.4929C19.0882 33.2474 17.5956 32.9761 16.8443 31.8875L22.2392 28.1641Z",fill:t}),p.jsx("path",{d:"M19.7405 21.8316C20.6645 23.1704 20.9829 24.6088 20.6938 26.1441C20.4065 27.6821 19.6056 28.9027 18.293 29.8087L16.3398 31.1567L15.0001 29.2156L16.9533 27.8676C17.7304 27.3312 18.2007 26.6144 18.3625 25.7145C18.5261 24.8172 18.3338 23.9714 17.7892 23.1823L15.4058 19.7504C14.6527 18.6661 14.9235 17.1764 16.01 16.4265L19.7405 21.8316Z",fill:t})]})})}function Kke(){const e="12px",t=Me(Fb);if(!t)return;const n=pee[t];if(t===p0.balanced)return p.jsx(Zo,{content:"Transaction scheduler strategy: balanced",children:p.jsx("div",{style:{margin:"0 -3px 0 0",fontSize:e},children:n})});if(t===p0.perf)return p.jsx(Zo,{content:"Transaction scheduler strategy: performance",children:p.jsx("div",{style:{margin:"0 -3px 0 -1px",fontSize:e},children:n})});if(t===p0.revenue)return p.jsx(Zo,{content:"Transaction scheduler strategy: revenue",children:p.jsx("div",{style:{margin:"0 -3px 0 0",fontSize:e},children:n})})}const Zke="_identity-key-container_1frrj_5",$ke="_identity-key-text_1frrj_10",Iee={identityKeyContainer:Zke,identityKeyText:$ke},Cee="data:image/svg+xml,%3csvg%20width='30'%20height='30'%20viewBox='0%200%2030%2030'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='29'%20height='29'%20rx='4.5'%20fill='%233E3E3E'%20stroke='%23505050'/%3e%3cpath%20d='M15.1194%2013.4056H15.2241C15.8292%2013.4056%2016.3528%2013.6267%2016.7949%2014.0688C17.2371%2014.511%2017.4582%2015.0346%2017.4582%2015.6396V15.7793L15.1194%2013.4056ZM11.908%2013.999C11.6287%2014.5575%2011.4891%2015.1044%2011.4891%2015.6396C11.4891%2016.6636%2011.8498%2017.5479%2012.5712%2018.2926C13.3159%2019.014%2014.2002%2019.3747%2015.2241%2019.3747C15.7594%2019.3747%2016.3062%2019.235%2016.8647%2018.9558L15.7128%2017.8039C15.5266%2017.8504%2015.3637%2017.8737%2015.2241%2017.8737C14.6191%2017.8737%2014.0955%2017.6526%2013.6533%2017.2104C13.2112%2016.7683%2012.9901%2016.2447%2012.9901%2015.6396C12.9901%2015.5%2013.0134%2015.3371%2013.0599%2015.1509L11.908%2013.999ZM7.78895%209.87999L8.73144%208.9375L21.9262%2022.1323L20.9838%2023.0748C20.8674%2022.9584%2020.4951%2022.5977%2019.8667%2021.9927C19.2617%2021.3876%2018.7963%2020.9222%2018.4705%2020.5964C17.4698%2021.0153%2016.3877%2021.2247%2015.2241%2021.2247C13.3857%2021.2247%2011.7218%2020.7128%2010.2324%2019.6888C8.74307%2018.6649%207.67259%2017.3152%207.021%2015.6396C7.27698%2015.0346%207.67259%2014.3713%208.20783%2013.6499C8.76634%2012.9053%209.30158%2012.3351%209.81355%2011.9395C9.53429%2011.6602%209.13868%2011.2646%208.62671%2010.7527C8.13802%2010.2407%207.85876%209.9498%207.78895%209.87999ZM15.2241%2011.9046C14.7587%2011.9046%2014.3049%2011.9977%2013.8628%2012.1838L12.257%2010.5781C13.1646%2010.2291%2014.1536%2010.0545%2015.2241%2010.0545C17.0626%2010.0545%2018.7148%2010.5665%2020.1809%2011.5904C21.6703%2012.6144%2022.7407%2013.9641%2023.3923%2015.6396C22.8338%2017.0126%2021.9844%2018.1878%2020.8441%2019.1652L18.6799%2017.001C18.8661%2016.5588%2018.9592%2016.1051%2018.9592%2015.6396C18.9592%2014.6157%2018.5868%2013.743%2017.8421%2013.0216C17.1207%2012.2769%2016.2481%2011.9046%2015.2241%2011.9046Z'%20fill='%23C7C7C7'/%3e%3c/svg%3e",e6e="/assets/privateYou-DnAsYVZD.svg",t6e=jbe(),Eee=Hg(e=>t6e(e||null),{maxSize:1e3}),n6e="_hide_1etvv_1",Bee={hide:n6e};function fu({url:e,size:t,hideFallback:n,hideTooltip:r=!1,isYou:i}){const[A,l]=il(Eee(e)),[c,f]=x.useState(A),[h,I]=x.useState(!1),B={width:`${t}px`,height:`${t}px`};if(!e||c){if(n)return p.jsx("div",{style:B});if(i){const D=p.jsx("img",{src:e6e,style:B});return r?D:p.jsx(Zo,{content:"Your current validator",children:D})}return p.jsx("img",{src:Cee,alt:"private",style:B})}const v=()=>{l(),f(!0)};return p.jsxs(p.Fragment,{children:[p.jsx("img",{className:An({[Bee.hide]:!h}),style:B,onError:v,onLoad:()=>I(!0),src:e}),p.jsx("img",{className:An({[Bee.hide]:h}),style:B,src:Cee,alt:"private"})]})}function ST(e){return Me(R5(e))}function HC(){const e=Me(wg);return{peer:ST(e),identityKey:e}}function r6e(){return p.jsxs(Fe,{justify:"between",gap:"3",align:"center",children:[p.jsxs(Fe,{gap:"2",align:"start",flexShrink:"0",children:[p.jsx("img",{src:DT,alt:"fd"}),p.jsx(mee,{})]}),p.jsxs(Fe,{gap:"2",align:"center",flexShrink:"1",children:[p.jsx(o6e,{}),p.jsx(i6e,{})]})]})}function o6e(){var n;const{peer:e,identityKey:t}=HC();return p.jsxs(Fe,{gap:"2",align:"center",flexShrink:"1",className:Iee.identityKeyContainer,children:[p.jsx(fu,{url:(n=e==null?void 0:e.info)==null?void 0:n.icon_url,size:24,isYou:!0}),p.jsx(Zo,{content:"The validators identity public key",children:p.jsx(Se,{className:Iee.identityKeyText,children:t})})]})}function i6e(){const e=It(EC),t=Me(j5),n=Me(XK),r=x.useCallback(()=>{if(!t||!n)return;const{bottom:i,left:A,width:l,height:c}=t.getBoundingClientRect();n.style.setProperty("--transform-origin",`${Math.round(A+l/2)}px ${Math.round(i-c/2)}px`),e(!1)},[n,t,e]);return p.jsx(rl,{variant:"ghost",onClick:r,color:"gray",style:{margin:0},children:p.jsx(fw,{color:"white"})})}const A6e="_card_uwnzc_1",s6e="_value_uwnzc_17",a6e="_bar-title_uwnzc_26",l6e="_bar-value_uwnzc_34",n1={card:A6e,value:s6e,barTitle:a6e,barValue:l6e},c6e="_bars_1sjsg_1",u6e="_threshold_1sjsg_7",d6e="_filled_1sjsg_10",f6e="_mid_1sjsg_14",g6e="_high_1sjsg_24",YC={bars:c6e,threshold:u6e,filled:d6e,mid:f6e,high:g6e};var h6e=function(){},RT=typeof window<"u",p6e=function(e){return(e+1)%1e6};function yee(){var e=x.useReducer(p6e,0),t=e[1];return t}let vee,TT,bee,Xg,Qee,wee,cc,xee,ts,JC,zC;vee=RT?x.useLayoutEffect:x.useEffect,TT=function(e){x.useEffect(e,[])},bee=0,Xg={},Qee=function(e,t){var n,r=bee++;if(Xg[t])Xg[t].listeners[r]=e;else{var i=setInterval(function(){for(var A=Xg[t].listeners,l=!1,c,f=0,h=Object.values(A);f{const h=f>=i*.95,I=!h&&f>=i*.85;return p.jsx("rect",{x:f*(l/i),width:WC,height:Ree,ry:WC*2,className:An({[YC.threshold]:f===A,[YC.filled]:f2&&i[0]&&i[0][1]<=r-n;)i.shift();return i}Cm=function(e,t=500){const[n,r]=x.useState([]);x.useEffect(()=>{e!=null&&r(A=>Nee(A,e,t))},[e,t]),cc(()=>{r(A=>{const l=performance.now(),c=A[A.length-1];return c&&c[1]{r([])},[]);return{valuePerSecond:x.useMemo(()=>{if(!(n.length<=1))return 1e3*(n[n.length-1][0]-n[0][0])/(n[n.length-1][1]-n[0][1])},[n]),reset:i}};const j6e=e=>x.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},x.createElement("path",{d:"M2 20h20v-4H2v4zm2-3h2v2H4v-2zM2 4v4h20V4H2zm4 3H4V5h2v2zm-4 7h20v-4H2v4zm2-3h2v2H4v-2z"})),FT=Hg((e,t,n)=>new Intl.NumberFormat(void 0,{minimumFractionDigits:n?e:0,maximumFractionDigits:e,minimumSignificantDigits:!n&&t?1:t,maximumSignificantDigits:t}),{maxSize:100});function r1(e,t){const{trailingZeroes:n=!0,decimalsOnZero:r=!1}=t;if(e===0&&!r)return"0";let i;if("decimals"in t){const c=typeof t.decimals=="function"?t.decimals(e):t.decimals;i=FT(c,void 0,n)}else{const{significantDigits:c,exactIntegers:f}=t;f&&Math.abs(e)>Math.pow(10,c)?i=FT(0,void 0,n):i=FT(void 0,c||1,n)}let A="";t.useSuffix&&([e,A]=L6e(e));const l=i.format(e);return l==="-0"?"0":l+A}function L6e(e){if(isFinite(e)){const t=Math.abs(e);if(t>=1e12)return[e/1e12,"T"];if(t>=1e9)return[e/1e9,"B"];if(t>=1e6)return[e/1e6,"M"];if(t>=1e3)return[e/1e3,"K"]}return[e,""]}const P6e=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",minimumFractionDigits:1,maximumFractionDigits:1}),U6e=3e8;function OT({title:e,completed:t,total:n,showAccountRate:r=!1,cumulativeAccounts:i,footerText:A}){const l=Me(Im),{valuePerSecond:c,reset:f}=Cm(t,1e3);x.useEffect(()=>{f()},[l,f]);const h=c==null?void 0:Ul(c),I=t==null?void 0:Ul(t),B=n==null?void 0:Ul(n);return p.jsxs(zf,{className:An(dA.card,dA.throughputCard),children:[p.jsxs(Fe,{justify:"between",align:"center",className:dA.cardHeader,children:[p.jsx(Se,{className:An(dA.title,dA.ellipsis),children:e}),r&&p.jsx(G6e,{cumulativeAccounts:i}),p.jsxs("div",{className:dA.total,children:[p.jsx(jT,{value:I==null?void 0:I.value,unit:I==null?void 0:I.unit}),p.jsx(Se,{children:" / "}),p.jsx(jT,{value:B==null?void 0:B.value,unit:B==null?void 0:B.unit})]}),p.jsxs("span",{className:dA.throughput,children:[p.jsx(Se,{className:dA.snapshotPctText,children:(h==null?void 0:h.value)??"--"})," ",p.jsxs(Se,{className:dA.secondaryColor,children:[h==null?void 0:h.unit,"/sec"]})]})]}),p.jsx(MT,{value:c??0,max:U6e}),A&&p.jsxs(Fe,{align:"center",gap:"10px",wrap:"nowrap",className:dA.footer,children:[p.jsx(j6e,{}),p.jsx(Se,{className:An(dA.footerText,dA.ellipsis),children:A})]})]})}function jT({value:e,unit:t}){return p.jsxs(p.Fragment,{children:[p.jsx(Se,{children:e??"--"}),t&&p.jsxs(p.Fragment,{children:[" ",p.jsx(Se,{className:dA.secondaryColor,children:t})]})]})}function G6e({cumulativeAccounts:e}){const t=Me(Im),{valuePerSecond:n,reset:r}=Cm(e,1e3);x.useEffect(()=>{r()},[t,r]);const i=x.useMemo(()=>{if(n!=null)return P6e.format(n)},[n]);return p.jsx("div",{className:dA.accountsRate,children:p.jsx(jT,{value:i,unit:"Accounts / sec"})})}const pw=2;function Fee({isLive:e,tileCount:t,liveIdlePerTile:n,queryIdlePerTile:r}){var h;const i=x.useMemo(()=>new Array(t).fill(0),[t]),A=n==null?void 0:n.filter(I=>I!==-1).map(I=>1-I),l=r==null?void 0:r.map(I=>{const B=I.filter(v=>v!==-1);if(B.length)return 1-sr.mean(B)}).filter(I=>I!==void 0),c=i.map((I,B)=>{const v=r==null?void 0:r.map(D=>1-D[B]).filter(D=>D!==void 0&&D<=1);if(v!=null&&v.length)return sr.mean(v)}),f=(h=e?A:c)==null?void 0:h.filter(I=>I!==void 0&&I<=1);return{avgBusy:f!=null&&f.length?sr.mean(f):void 0,aggQueryBusyPerTs:l,tileCountArr:i,liveBusyPerTile:A,busy:f}}const Oee=[0,1];function jee({value:e,queryBusy:t,rollingWindowMs:n,height:r,width:i,updateIntervalMs:A,stopShifting:l}){const[c,f]=x.useState([]);return cc(()=>{l||t!=null&&t.length||f(h=>{const I=[...h,e];return I.length>=Math.trunc(n/A)&&I.shift(),I})},A),{scaledDataPoints:x.useMemo(()=>{const h=t??c,I=i/h.length;return h.reduce((B,v,D)=>(v===void 0||B.push({x:D*I,y:(1-v)*(r-pw)+pw/2}),B),[])},[t,c,i,r]),range:Oee}}const H6e="_range-label_1w97g_1",Lee={rangeLabel:H6e};function LT({value:e,queryBusy:t,includeBg:n}){const[r,{width:i}]=cf(),A=24,{scaledDataPoints:l,range:c}=jee({value:e,queryBusy:t,rollingWindowMs:1600,height:A,width:i,updateIntervalMs:10});return p.jsx(yk,{svgRef:r,scaledDataPoints:l,range:c,height:A,background:n?void 0:""})}yk=function({svgRef:e,scaledDataPoints:t,range:n=Oee,showRange:r=!1,height:i,background:A=PR}){const l=t.map(({x:f,y:h})=>`${f},${h}`).join(" "),c=x.useMemo(()=>{const f=n[1]-n[0],h=(i-pw*2)/f,I=h*(n[1]-1);return[I+h,I]},[i,n]);return p.jsxs(p.Fragment,{children:[p.jsxs("svg",{ref:e,xmlns:"http://www.w3.org/2000/svg",width:"100%",height:`${i}px`,fill:"none",style:{background:A},children:[p.jsx("polyline",{points:l,stroke:"url(#paint0_linear_2971_11300)",widths:2,strokeWidth:pw,strokeLinecap:"round"}),p.jsx("defs",{children:p.jsxs("linearGradient",{id:"paint0_linear_2971_11300",x1:"59.5",y1:c[0],x2:"59.5",y2:c[1],gradientUnits:"userSpaceOnUse",children:[p.jsx("stop",{stopColor:MB}),p.jsx("stop",{offset:"1",stopColor:NB})]})})]}),r&&p.jsxs(p.Fragment,{children:[p.jsxs("div",{className:Lee.rangeLabel,style:{top:0},children:[Math.round(n[1]*100),"%"]}),p.jsxs("div",{className:Lee.rangeLabel,style:{bottom:0},children:[Math.round(n[0]*100),"%"]})]})]})};const Y6e="_busy_1fw9w_1",J6e={busy:Y6e};function mw({busy:e,className:t}){const n=e!==void 0?Math.trunc(e*100):void 0;return p.jsx(Fe,{gap:"1",align:"end",children:p.jsxs(Se,{className:t??J6e.busy,style:{color:`color-mix(in srgb, ${MB}, ${NB} ${n}%)`},children:[n??"-","%"]})})}const Iw=20,Pee=Iw*6+1,Uee=Iw*15+1,z6e=6e3,W6e=10;function PT({title:e,tileType:t,isComplete:n}){const r=Me(mC),i=Me(v_e),{avgBusy:A}=Fee({isLive:!0,tileCount:r[t],liveIdlePerTile:i==null?void 0:i[t]}),{scaledDataPoints:l,range:c}=jee({value:A,rollingWindowMs:z6e,height:Pee,width:Uee,updateIntervalMs:W6e,stopShifting:n});return p.jsxs(zf,{className:An(dA.card,dA.sparklineCard),children:[p.jsxs(Fe,{justify:"between",align:"center",children:[p.jsx(Se,{className:dA.snapshotTileTitle,children:e}),p.jsx(mw,{busy:A,className:dA.snapshotTileBusy})]}),p.jsx(Fe,{className:dA.sparklineContainer,style:{width:`${Uee}px`,backgroundSize:`${Iw}px ${Iw}px`},children:p.jsx(yk,{scaledDataPoints:l,range:c,showRange:!0,height:Pee,background:"transparent"})})]})}const UT="5";function q6e(e){const{loading_full_snapshot_total_bytes_compressed:t,loading_full_snapshot_read_bytes_compressed:n,loading_full_snapshot_decompress_bytes_compressed:r,loading_full_snapshot_decompress_bytes_decompressed:i,loading_full_snapshot_insert_bytes_decompressed:A,loading_full_snapshot_read_path:l,loading_full_snapshot_insert_accounts:c,loading_incremental_snapshot_total_bytes_compressed:f,loading_incremental_snapshot_read_bytes_compressed:h,loading_incremental_snapshot_decompress_bytes_compressed:I,loading_incremental_snapshot_decompress_bytes_decompressed:B,loading_incremental_snapshot_insert_bytes_decompressed:v,loading_incremental_snapshot_read_path:D,loading_incremental_snapshot_insert_accounts:S}=e;return e.phase===uA.loading_full_snapshot||!f?{totalBytes:t,readBytes:n,readPath:l,decompressCompressedBytes:r,decompressDecompressedBytes:i,insertBytes:A,insertAccounts:c}:{totalBytes:f,readBytes:h,readPath:D,decompressCompressedBytes:I,decompressDecompressedBytes:B,insertBytes:v,insertAccounts:S}}function X6e(){const e=Me(Wd);if(!e)return;const{totalBytes:t,readBytes:n,readPath:r,decompressCompressedBytes:i,decompressDecompressedBytes:A,insertBytes:l,insertAccounts:c}=q6e(e),f=l&&i&&A?l*(i/A):0;return p.jsxs(Fe,{direction:"column",gap:"40px",children:[p.jsxs(Fe,{gap:UT,children:[p.jsx(OT,{title:"Reading",completed:n,total:t,footerText:r}),p.jsx(PT,{title:"CPU Utilization",tileType:"snapld",isComplete:!!n&&n===t})]}),p.jsxs(Fe,{gap:UT,children:[p.jsx(OT,{title:"Decompressing",completed:i,total:t}),p.jsx(PT,{title:"CPU Utilization",tileType:"snapdc",isComplete:!!i&&i===t})]}),p.jsxs(Fe,{gap:UT,children:[p.jsx(OT,{title:"Inserting",completed:f,total:t,showAccountRate:!0,cumulativeAccounts:c}),p.jsx(PT,{title:"CPU Utilization",tileType:"snapin",isComplete:!!f&&f===t})]})]})}function Gee(e){const t=Me(xW),n=yee();if(cc(n,e),!!t)return gC.diff(Gn.fromMillis(Math.trunc(Number(t.startupTimeNanos)/1e6))).rescale()}let hl;typeof window<"u"?hl=window:typeof self<"u"?hl=self:hl=global;let GT=null,HT=null;const Hee=20,YT=hl.clearTimeout,Yee=hl.setTimeout,JT=hl.cancelAnimationFrame||hl.mozCancelAnimationFrame||hl.webkitCancelAnimationFrame,Jee=hl.requestAnimationFrame||hl.mozRequestAnimationFrame||hl.webkitRequestAnimationFrame;JT==null||Jee==null?(GT=YT,HT=function(e){return Yee(e,Hee)}):(GT=function([e,t]){JT(e),YT(t)},HT=function(e){const t=Jee(function(){YT(n),e()}),n=Yee(function(){JT(t),e()},Hee);return[t,n]});function V6e(e){let t,n,r,i,A,l,c;const f=typeof document<"u"&&document.attachEvent;if(!f){l=function(R){const F=R.__resizeTriggers__,N=F.firstElementChild,M=F.lastElementChild,P=N.firstElementChild;M.scrollLeft=M.scrollWidth,M.scrollTop=M.scrollHeight,P.style.width=N.offsetWidth+1+"px",P.style.height=N.offsetHeight+1+"px",N.scrollLeft=N.scrollWidth,N.scrollTop=N.scrollHeight},A=function(R){return R.offsetWidth!==R.__resizeLast__.width||R.offsetHeight!==R.__resizeLast__.height},c=function(R){if(R.target.className&&typeof R.target.className.indexOf=="function"&&R.target.className.indexOf("contract-trigger")<0&&R.target.className.indexOf("expand-trigger")<0)return;const F=this;l(this),this.__resizeRAF__&>(this.__resizeRAF__),this.__resizeRAF__=HT(function(){A(F)&&(F.__resizeLast__.width=F.offsetWidth,F.__resizeLast__.height=F.offsetHeight,F.__resizeListeners__.forEach(function(N){N.call(F,R)}))})};let I=!1,B="";r="animationstart";const v="Webkit Moz O ms".split(" ");let D="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),S="";{const R=document.createElement("fakeelement");if(R.style.animationName!==void 0&&(I=!0),I===!1){for(let F=0;F div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',v=I.head||I.getElementsByTagName("head")[0],D=I.createElement("style");D.id="detectElementResize",D.type="text/css",e!=null&&D.setAttribute("nonce",e),D.styleSheet?D.styleSheet.cssText=B:D.appendChild(I.createTextNode(B)),v.appendChild(D)}};return{addResizeListener:function(I,B){if(f)I.attachEvent("onresize",B);else{if(!I.__resizeTriggers__){const v=I.ownerDocument,D=hl.getComputedStyle(I);D&&D.position==="static"&&(I.style.position="relative"),h(v),I.__resizeLast__={},I.__resizeListeners__=[],(I.__resizeTriggers__=v.createElement("div")).className="resize-triggers";const S=v.createElement("div");S.className="expand-trigger",S.appendChild(v.createElement("div"));const R=v.createElement("div");R.className="contract-trigger",I.__resizeTriggers__.appendChild(S),I.__resizeTriggers__.appendChild(R),I.appendChild(I.__resizeTriggers__),l(I),I.addEventListener("scroll",c,!0),r&&(I.__resizeTriggers__.__animationListener__=function(F){F.animationName===n&&l(I)},I.__resizeTriggers__.addEventListener(r,I.__resizeTriggers__.__animationListener__))}I.__resizeListeners__.push(B)}},removeResizeListener:function(I,B){if(f)I.detachEvent("onresize",B);else if(I.__resizeListeners__.splice(I.__resizeListeners__.indexOf(B),1),!I.__resizeListeners__.length){I.removeEventListener("scroll",c,!0),I.__resizeTriggers__.__animationListener__&&(I.__resizeTriggers__.removeEventListener(r,I.__resizeTriggers__.__animationListener__),I.__resizeTriggers__.__animationListener__=null);try{I.__resizeTriggers__=!I.removeChild(I.__resizeTriggers__)}catch{}}}}}hs=class extends x.Component{constructor(...e){super(...e),this.state={height:this.props.defaultHeight||0,width:this.props.defaultWidth||0},this._autoSizer=null,this._detectElementResize=null,this._didLogDeprecationWarning=!1,this._parentNode=null,this._resizeObserver=null,this._timeoutId=null,this._onResize=()=>{this._timeoutId=null;const{disableHeight:t,disableWidth:n,onResize:r}=this.props;if(this._parentNode){const i=window.getComputedStyle(this._parentNode)||{},A=parseFloat(i.paddingLeft||"0"),l=parseFloat(i.paddingRight||"0"),c=parseFloat(i.paddingTop||"0"),f=parseFloat(i.paddingBottom||"0"),h=this._parentNode.getBoundingClientRect(),I=h.height-c-f,B=h.width-A-l;if(!t&&this.state.height!==I||!n&&this.state.width!==B){this.setState({height:I,width:B});const v=()=>{this._didLogDeprecationWarning||(this._didLogDeprecationWarning=!0,console.warn("scaledWidth and scaledHeight parameters have been deprecated; use width and height instead"))};typeof r=="function"&&r({height:I,width:B,get scaledHeight(){return v(),I},get scaledWidth(){return v(),B}})}}},this._setRef=t=>{this._autoSizer=t}}componentDidMount(){const{nonce:e}=this.props,t=this._autoSizer?this._autoSizer.parentNode:null;if(t!=null&&t.ownerDocument&&t.ownerDocument.defaultView&&t instanceof t.ownerDocument.defaultView.HTMLElement){this._parentNode=t;const n=t.ownerDocument.defaultView.ResizeObserver;n!=null?(this._resizeObserver=new n(()=>{this._timeoutId=setTimeout(this._onResize,0)}),this._resizeObserver.observe(t)):(this._detectElementResize=V6e(e),this._detectElementResize.addResizeListener(t,this._onResize)),this._onResize()}}componentWillUnmount(){this._parentNode&&(this._detectElementResize&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize),this._timeoutId!==null&&clearTimeout(this._timeoutId),this._resizeObserver&&this._resizeObserver.disconnect())}render(){const{children:e,defaultHeight:t,defaultWidth:n,disableHeight:r=!1,disableWidth:i=!1,doNotBailOutOnEmptyChildren:A=!1,nonce:l,onResize:c,style:f={},tagName:h="div",...I}=this.props,{height:B,width:v}=this.state,D={overflow:"visible"},S={};let R=!1;return r||(B===0&&(R=!0),D.height=0,S.height=B,S.scaledHeight=B),i||(v===0&&(R=!0),D.width=0,S.width=v,S.scaledWidth=v),A&&(R=!1),x.createElement(h,{ref:this._setRef,style:{...D,...f},...I},!R&&e(S))}};const K6e=!0,fA="u-",Z6e="uplot",$6e=fA+"hz",e3e=fA+"vt",t3e=fA+"title",n3e=fA+"wrap",r3e=fA+"under",o3e=fA+"over",i3e=fA+"axis",Vg=fA+"off",A3e=fA+"select",s3e=fA+"cursor-x",a3e=fA+"cursor-y",l3e=fA+"cursor-pt",c3e=fA+"legend",u3e=fA+"live",d3e=fA+"inline",f3e=fA+"series",g3e=fA+"marker",zee=fA+"label",h3e=fA+"value",qC="width",XC="height",VC="top",Wee="bottom",o1="left",zT="right",WT="#000",qee=WT+"0",qT="mousemove",Xee="mousedown",XT="mouseup",Vee="mouseenter",Kee="mouseleave",Zee="dblclick",p3e="resize",m3e="scroll",$ee="change",Cw="dppxchange",VT="--",i1=typeof window<"u",KT=i1?document:null,A1=i1?window:null,I3e=i1?navigator:null;let go,Ew;function ZT(){let e=devicePixelRatio;go!=e&&(go=e,Ew&&tM($ee,Ew,ZT),Ew=matchMedia(`(min-resolution: ${go-.001}dppx) and (max-resolution: ${go+.001}dppx)`),Kg($ee,Ew,ZT),A1.dispatchEvent(new CustomEvent(Cw)))}function ka(e,t){if(t!=null){let n=e.classList;!n.contains(t)&&n.add(t)}}function $T(e,t){let n=e.classList;n.contains(t)&&n.remove(t)}function si(e,t,n){e.style[t]=n+"px"}function uc(e,t,n,r){let i=KT.createElement(e);return t!=null&&ka(i,t),n==null||n.insertBefore(i,r),i}function pl(e,t){return uc("div",e,t)}const ete=new WeakMap;function gu(e,t,n,r,i){let A="translate("+t+"px,"+n+"px)",l=ete.get(e);A!=l&&(e.style.transform=A,ete.set(e,A),t<0||n<0||t>r||n>i?ka(e,Vg):$T(e,Vg))}const tte=new WeakMap;function nte(e,t,n){let r=t+n,i=tte.get(e);r!=i&&(tte.set(e,r),e.style.background=t,e.style.borderColor=n)}const rte=new WeakMap;function ote(e,t,n,r){let i=t+""+n,A=rte.get(e);i!=A&&(rte.set(e,i),e.style.height=n+"px",e.style.width=t+"px",e.style.marginLeft=r?-t/2+"px":0,e.style.marginTop=r?-n/2+"px":0)}const eM={passive:!0},C3e={...eM,capture:!0};function Kg(e,t,n,r){t.addEventListener(e,n,r?C3e:eM)}function tM(e,t,n,r){t.removeEventListener(e,n,eM)}i1&&ZT();function dc(e,t,n,r){let i;n=n||0,r=r||t.length-1;let A=r<=2147483647;for(;r-n>1;)i=A?n+r>>1:Sa((n+r)/2),t[i]{let i=-1,A=-1;for(let l=n;l<=r;l++)if(e(t[l])){i=l;break}for(let l=r;l>=n;l--)if(e(t[l])){A=l;break}return[i,A]}}const Ate=e=>e!=null,ste=e=>e!=null&&e>0,Bw=ite(Ate),E3e=ite(ste);function B3e(e,t,n,r=0,i=!1){let A=i?E3e:Bw,l=i?ste:Ate;[t,n]=A(e,t,n);let c=e[t],f=e[t];if(t>-1)if(r==1)c=e[t],f=e[n];else if(r==-1)c=e[n],f=e[t];else for(let h=t;h<=n;h++){let I=e[h];l(I)&&(If&&(f=I))}return[c??Jo,f??-Jo]}function yw(e,t,n,r){let i=cte(e),A=cte(t);e==t&&(i==-1?(e*=n,t/=n):(e/=n,t*=n));let l=n==10?w0:ute,c=i==1?Sa:ml,f=A==1?ml:Sa,h=c(l(gA(e))),I=f(l(gA(t))),B=s1(n,h),v=s1(n,I);return n==10&&(h<0&&(B=zo(B,-h)),I<0&&(v=zo(v,-I))),r||n==2?(e=B*i,t=v*A):(e=Ite(e,B),t=Qw(t,v)),[e,t]}function nM(e,t,n,r){let i=yw(e,t,n,r);return e==0&&(i[0]=0),t==0&&(i[1]=0),i}const rM=.1,ate={mode:3,pad:rM},KC={pad:0,soft:null,mode:0},y3e={min:KC,max:KC};function vw(e,t,n,r){return ww(n)?lte(e,t,n):(KC.pad=n,KC.soft=r?0:null,KC.mode=r?3:0,lte(e,t,y3e))}function Ao(e,t){return e??t}function v3e(e,t,n){for(t=Ao(t,0),n=Ao(n,e.length-1);t<=n;){if(e[t]!=null)return!0;t++}return!1}function lte(e,t,n){let r=n.min,i=n.max,A=Ao(r.pad,0),l=Ao(i.pad,0),c=Ao(r.hard,-Jo),f=Ao(i.hard,Jo),h=Ao(r.soft,Jo),I=Ao(i.soft,-Jo),B=Ao(r.mode,0),v=Ao(i.mode,0),D=t-e,S=w0(D),R=_s(gA(e),gA(t)),F=w0(R),N=gA(F-S);(D<10000000000000001e-40||N>10)&&(D=0,(e==0||t==0)&&(D=10000000000000001e-40,B==2&&h!=Jo&&(A=0),v==2&&I!=-Jo&&(l=0)));let M=D||R||1e3,P=w0(M),G=s1(10,Sa(P)),J=M*(D==0?e==0?.1:1:A),W=zo(Ite(e-J,G/10),24),q=e>=h&&(B==1||B==3&&W<=h||B==2&&W>=h)?h:Jo,$=_s(c,W=q?q:fc(q,W)),oe=M*(D==0?t==0?.1:1:l),K=zo(Qw(t+oe,G/10),24),se=t<=I&&(v==1||v==3&&K>=I||v==2&&K<=I)?I:-Jo,Ee=fc(f,K>se&&t<=se?se:_s(se,K));return $==Ee&&$==0&&(Ee=100),[$,Ee]}const b3e=new Intl.NumberFormat(i1?I3e.language:"en-US"),oM=e=>b3e.format(e),Da=Math,bw=Da.PI,gA=Da.abs,Sa=Da.floor,hA=Da.round,ml=Da.ceil,fc=Da.min,_s=Da.max,s1=Da.pow,cte=Da.sign,w0=Da.log10,ute=Da.log2,Q3e=(e,t=1)=>Da.sinh(e)*t,iM=(e,t=1)=>Da.asinh(e/t),Jo=1/0;function dte(e){return(w0((e^e>>31)-(e>>31))|0)+1}function AM(e,t,n){return fc(_s(e,t),n)}function fte(e){return typeof e=="function"}function Gr(e){return fte(e)?e:()=>e}const w3e=()=>{},gte=e=>e,hte=(e,t)=>t,x3e=e=>null,pte=e=>!0,mte=(e,t)=>e==t,_3e=/\.\d*?(?=9{6,}|0{6,})/gm,Zg=e=>{if(Ete(e)||uf.has(e))return e;const t=`${e}`,n=t.match(_3e);if(n==null)return e;let r=n[0].length-1;if(t.indexOf("e-")!=-1){let[i,A]=t.split("e");return+`${Zg(i)}e${A}`}return zo(e,r)};function $g(e,t){return Zg(zo(Zg(e/t))*t)}function Qw(e,t){return Zg(ml(Zg(e/t))*t)}function Ite(e,t){return Zg(Sa(Zg(e/t))*t)}function zo(e,t=0){if(Ete(e))return e;let n=10**t,r=e*n*(1+Number.EPSILON);return hA(r)/n}const uf=new Map;function Cte(e){return((""+e).split(".")[1]||"").length}function ZC(e,t,n,r){let i=[],A=r.map(Cte);for(let l=t;l=0?0:c)+(l>=A[h]?0:A[h]),v=e==10?I:zo(I,B);i.push(v),uf.set(v,B)}}return i}const $C={},sM=[],a1=[null,null],df=Array.isArray,Ete=Number.isInteger,k3e=e=>e===void 0;function Bte(e){return typeof e=="string"}function ww(e){let t=!1;if(e!=null){let n=e.constructor;t=n==null||n==Object}return t}function D3e(e){return e!=null&&typeof e=="object"}const S3e=Object.getPrototypeOf(Uint8Array),yte="__proto__";function l1(e,t=ww){let n;if(df(e)){let r=e.find(i=>i!=null);if(df(r)||t(r)){n=Array(e.length);for(let i=0;iA){for(i=l-1;i>=0&&e[i]==null;)e[i--]=null;for(i=l+1;il-c)],i=r[0].length,A=new Map;for(let l=0;l"u"?e=>Promise.resolve().then(e):queueMicrotask;function j3e(e){let t=e[0],n=t.length,r=Array(n);for(let A=0;At[A]-t[l]);let i=[];for(let A=0;A=r&&e[i]==null;)i--;if(i<=r)return!0;const A=_s(1,Sa((i-r+1)/t));for(let l=e[r],c=r+A;c<=i;c+=A){const f=e[c];if(f!=null){if(f<=l)return!1;l=f}}return!0}const vte=["January","February","March","April","May","June","July","August","September","October","November","December"],bte=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function Qte(e){return e.slice(0,3)}const U3e=bte.map(Qte),G3e=vte.map(Qte),H3e={MMMM:vte,MMM:G3e,WWWW:bte,WWW:U3e};function eE(e){return(e<10?"0":"")+e}function Y3e(e){return(e<10?"00":e<100?"0":"")+e}const J3e={YYYY:e=>e.getFullYear(),YY:e=>(e.getFullYear()+"").slice(2),MMMM:(e,t)=>t.MMMM[e.getMonth()],MMM:(e,t)=>t.MMM[e.getMonth()],MM:e=>eE(e.getMonth()+1),M:e=>e.getMonth()+1,DD:e=>eE(e.getDate()),D:e=>e.getDate(),WWWW:(e,t)=>t.WWWW[e.getDay()],WWW:(e,t)=>t.WWW[e.getDay()],HH:e=>eE(e.getHours()),H:e=>e.getHours(),h:e=>{let t=e.getHours();return t==0?12:t>12?t-12:t},AA:e=>e.getHours()>=12?"PM":"AM",aa:e=>e.getHours()>=12?"pm":"am",a:e=>e.getHours()>=12?"p":"a",mm:e=>eE(e.getMinutes()),m:e=>e.getMinutes(),ss:e=>eE(e.getSeconds()),s:e=>e.getSeconds(),fff:e=>Y3e(e.getMilliseconds())};function aM(e,t){t=t||H3e;let n=[],r=/\{([a-z]+)\}|[^{]+/gi,i;for(;i=r.exec(e);)n.push(i[0][0]=="{"?J3e[i[1]]:i[0]);return A=>{let l="";for(let c=0;ce%1==0,xw=[1,2,2.5,5],q3e=ZC(10,-32,0,xw),xte=ZC(10,0,32,xw),X3e=xte.filter(wte),eh=q3e.concat(xte),lM=` -`,_te="{YYYY}",kte=lM+_te,Dte="{M}/{D}",tE=lM+Dte,_w=tE+"/{YY}",Ste="{aa}",V3e="{h}:{mm}",c1=V3e+Ste,Rte=lM+c1,Tte=":{ss}",xo=null;function Mte(e){let t=e*1e3,n=t*60,r=n*60,i=r*24,A=i*30,l=i*365,c=(e==1?ZC(10,0,3,xw).filter(wte):ZC(10,-3,0,xw)).concat([t,t*5,t*10,t*15,t*30,n,n*5,n*10,n*15,n*30,r,r*2,r*3,r*4,r*6,r*8,r*12,i,i*2,i*3,i*4,i*5,i*6,i*7,i*8,i*9,i*10,i*15,A,A*2,A*3,A*4,A*6,l,l*2,l*5,l*10,l*25,l*50,l*100]);const f=[[l,_te,xo,xo,xo,xo,xo,xo,1],[i*28,"{MMM}",kte,xo,xo,xo,xo,xo,1],[i,Dte,kte,xo,xo,xo,xo,xo,1],[r,"{h}"+Ste,_w,xo,tE,xo,xo,xo,1],[n,c1,_w,xo,tE,xo,xo,xo,1],[t,Tte,_w+" "+c1,xo,tE+" "+c1,xo,Rte,xo,1],[e,Tte+".{fff}",_w+" "+c1,xo,tE+" "+c1,xo,Rte,xo,1]];function h(I){return(B,v,D,S,R,F)=>{let N=[],M=R>=l,P=R>=A&&R=i?i:R,oe=Sa(D)-Sa(J),K=q+oe+Qw(J-q,$);N.push(K);let se=I(K),Ee=se.getHours()+se.getMinutes()/n+se.getSeconds()/r,ie=R/r,Ae=B.axes[v]._space,Be=F/Ae;for(;K=zo(K+R,e==1?0:3),!(K>S);)if(ie>1){let ae=Sa(zo(Ee+ie,6))%24,Ce=I(K).getHours()-ae;Ce>1&&(Ce=-1),K-=Ce*r,Ee=(Ee+ie)%24;let de=N[N.length-1];zo((K-de)/R,3)*Be>=.7&&N.push(K)}else N.push(K)}return N}}return[c,f,h]}const[K3e,Z3e,$3e]=Mte(1),[e8e,t8e,n8e]=Mte(.001);ZC(2,-53,53,[1]);function Nte(e,t){return e.map(n=>n.map((r,i)=>i==0||i==8||r==null?r:t(i==1||n[8]==0?r:n[1]+r)))}function Fte(e,t){return(n,r,i,A,l)=>{let c=t.find(S=>l>=S[0])||t[t.length-1],f,h,I,B,v,D;return r.map(S=>{let R=e(S),F=R.getFullYear(),N=R.getMonth(),M=R.getDate(),P=R.getHours(),G=R.getMinutes(),J=R.getSeconds(),W=F!=f&&c[2]||N!=h&&c[3]||M!=I&&c[4]||P!=B&&c[5]||G!=v&&c[6]||J!=D&&c[7]||c[1];return f=F,h=N,I=M,B=P,v=G,D=J,W(R)})}}function r8e(e,t){let n=aM(t);return(r,i,A,l,c)=>i.map(f=>n(e(f)))}function cM(e,t,n){return new Date(e,t,n)}function Ote(e,t){return t(e)}const o8e="{YYYY}-{MM}-{DD} {h}:{mm}{aa}";function jte(e,t){return(n,r,i,A)=>A==null?VT:t(e(r))}function i8e(e,t){let n=e.series[t];return n.width?n.stroke(e,t):n.points.width?n.points.stroke(e,t):null}function A8e(e,t){return e.series[t].fill(e,t)}const s8e={show:!0,live:!0,isolate:!1,mount:w3e,markers:{show:!0,width:2,stroke:i8e,fill:A8e,dash:"solid"},idx:null,idxs:null,values:[]};function a8e(e,t){let n=e.cursor.points,r=pl(),i=n.size(e,t);si(r,qC,i),si(r,XC,i);let A=i/-2;si(r,"marginLeft",A),si(r,"marginTop",A);let l=n.width(e,t,i);return l&&si(r,"borderWidth",l),r}function l8e(e,t){let n=e.series[t].points;return n._fill||n._stroke}function c8e(e,t){let n=e.series[t].points;return n._stroke||n._fill}function u8e(e,t){return e.series[t].points.size}const uM=[0,0];function d8e(e,t,n){return uM[0]=t,uM[1]=n,uM}function kw(e,t,n,r=!0){return i=>{i.button==0&&(!r||i.target==t)&&n(i)}}function dM(e,t,n,r=!0){return i=>{(!r||i.target==t)&&n(i)}}const f8e={show:!0,x:!0,y:!0,lock:!1,move:d8e,points:{one:!1,show:a8e,size:u8e,width:0,stroke:c8e,fill:l8e},bind:{mousedown:kw,mouseup:kw,click:kw,dblclick:kw,mousemove:dM,mouseleave:dM,mouseenter:dM},drag:{setScale:!0,x:!0,y:!1,dist:0,uni:null,click:(e,t)=>{t.stopPropagation(),t.stopImmediatePropagation()},_x:!1,_y:!1},focus:{dist:(e,t,n,r,i)=>r-i,prox:-1,bias:0},hover:{skip:[void 0],prox:null,bias:0},left:-10,top:-10,idx:null,dataIdx:null,idxs:null,event:null},Lte={show:!0,stroke:"rgba(0,0,0,0.07)",width:2},fM=tA({},Lte,{filter:hte}),Pte=tA({},fM,{size:10}),Ute=tA({},Lte,{show:!1}),gM='12px system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',Gte="bold "+gM,Hte=1.5,Yte={show:!0,scale:"x",stroke:WT,space:50,gap:5,alignTo:1,size:50,labelGap:0,labelSize:30,labelFont:Gte,side:2,grid:fM,ticks:Pte,border:Ute,font:gM,lineGap:Hte,rotate:0},g8e="Value",h8e="Time",Jte={show:!0,scale:"x",auto:!1,sorted:1,min:Jo,max:-Jo,idxs:[]};function p8e(e,t,n,r,i){return t.map(A=>A==null?"":oM(A))}function m8e(e,t,n,r,i,A,l){let c=[],f=uf.get(i)||0;n=l?n:zo(Qw(n,i),f);for(let h=n;h<=r;h=zo(h+i,f))c.push(Object.is(h,-0)?0:h);return c}function hM(e,t,n,r,i,A,l){const c=[],f=e.scales[e.axes[t].scale].log,h=f==10?w0:ute,I=Sa(h(n));i=s1(f,I),f==10&&(i=eh[dc(i,eh)]);let B=n,v=i*f;f==10&&(v=eh[dc(v,eh)]);do c.push(B),B=B+i,f==10&&!uf.has(B)&&(B=zo(B,uf.get(i))),B>=v&&(i=B,v=i*f,f==10&&(v=eh[dc(v,eh)]));while(B<=r);return c}function I8e(e,t,n,r,i,A,l){let c=e.scales[e.axes[t].scale].asinh,f=r>c?hM(e,t,_s(c,n),r,i):[c],h=r>=0&&n<=0?[0]:[];return(n<-c?hM(e,t,_s(c,-r),-n,i):[c]).reverse().map(I=>-I).concat(h,f)}const zte=/./,C8e=/[12357]/,E8e=/[125]/,Wte=/1/,pM=(e,t,n,r)=>e.map((i,A)=>t==4&&i==0||A%r==0&&n.test(i.toExponential()[i<0?1:0])?i:null);function B8e(e,t,n,r,i){let A=e.axes[n],l=A.scale,c=e.scales[l],f=e.valToPos,h=A._space,I=f(10,l),B=f(9,l)-I>=h?zte:f(7,l)-I>=h?C8e:f(5,l)-I>=h?E8e:Wte;if(B==Wte){let v=gA(f(1,l)-I);if(vi,Kte={show:!0,auto:!0,sorted:0,gaps:Vte,alpha:1,facets:[tA({},Xte,{scale:"x"}),tA({},Xte,{scale:"y"})]},Zte={scale:"y",auto:!0,sorted:0,show:!0,spanGaps:!1,gaps:Vte,alpha:1,points:{show:Q8e,filter:null},values:null,min:Jo,max:-Jo,idxs:[],path:null,clip:null};function w8e(e,t,n,r,i){return n/10}const $te={time:K6e,auto:!0,distr:1,log:10,asinh:1,min:null,max:null,dir:1,ori:0},x8e=tA({},$te,{time:!1,ori:1}),ene={};function tne(e,t){let n=ene[e];return n||(n={key:e,plots:[],sub(r){n.plots.push(r)},unsub(r){n.plots=n.plots.filter(i=>i!=r)},pub(r,i,A,l,c,f,h){for(let I=0;I{let N=l.pxRound;const M=h.dir*(h.ori==0?1:-1),P=h.ori==0?d1:f1;let G,J;M==1?(G=n,J=r):(G=r,J=n);let W=N(B(c[G],h,R,D)),q=N(v(f[G],I,F,S)),$=N(B(c[J],h,R,D)),oe=N(v(A==1?I.max:I.min,I,F,S)),K=new Path2D(i);return P(K,$,oe),P(K,W,oe),P(K,W,q),K})}function Dw(e,t,n,r,i,A){let l=null;if(e.length>0){l=new Path2D;const c=t==0?Tw:EM;let f=n;for(let B=0;Bv[0]){let D=v[0]-f;D>0&&c(l,f,r,D,r+A),f=v[1]}}let h=n+i-f,I=10;h>0&&c(l,f,r-I/2,h,r+A+I)}return l}function k8e(e,t,n){let r=e[e.length-1];r&&r[0]==t?r[1]=n:e.push([t,n])}function CM(e,t,n,r,i,A,l){let c=[],f=e.length;for(let h=i==1?n:r;h>=n&&h<=r;h+=i)if(t[h]===null){let I=h,B=h;if(i==1)for(;++h<=r&&t[h]===null;)B=h;else for(;--h>=n&&t[h]===null;)B=h;let v=A(e[I]),D=B==I?v:A(e[B]),S=I-i;v=l<=0&&S>=0&&S=0&&R>=0&&R=v&&c.push([v,D])}return c}function nne(e){return e==0?gte:e==1?hA:t=>$g(t,e)}function rne(e){let t=e==0?Sw:Rw,n=e==0?(i,A,l,c,f,h)=>{i.arcTo(A,l,c,f,h)}:(i,A,l,c,f,h)=>{i.arcTo(l,A,f,c,h)},r=e==0?(i,A,l,c,f)=>{i.rect(A,l,c,f)}:(i,A,l,c,f)=>{i.rect(l,A,f,c)};return(i,A,l,c,f,h=0,I=0)=>{h==0&&I==0?r(i,A,l,c,f):(h=fc(h,c/2,f/2),I=fc(I,c/2,f/2),t(i,A+h,l),n(i,A+c,l,A+c,l+f,h),n(i,A+c,l+f,A,l+f,I),n(i,A,l+f,A,l,I),n(i,A,l,A+c,l,h),i.closePath())}}const Sw=(e,t,n)=>{e.moveTo(t,n)},Rw=(e,t,n)=>{e.moveTo(n,t)},d1=(e,t,n)=>{e.lineTo(t,n)},f1=(e,t,n)=>{e.lineTo(n,t)},Tw=rne(0),EM=rne(1),one=(e,t,n,r,i,A)=>{e.arc(t,n,r,i,A)},ine=(e,t,n,r,i,A)=>{e.arc(n,t,r,i,A)},Ane=(e,t,n,r,i,A,l)=>{e.bezierCurveTo(t,n,r,i,A,l)},sne=(e,t,n,r,i,A,l)=>{e.bezierCurveTo(n,t,i,r,l,A)};function ane(e){return(t,n,r,i,A)=>th(t,n,(l,c,f,h,I,B,v,D,S,R,F)=>{let{pxRound:N,points:M}=l,P,G;h.ori==0?(P=Sw,G=one):(P=Rw,G=ine);const J=zo(M.width*go,3);let W=(M.size-M.width)/2*go,q=zo(W*2,3),$=new Path2D,oe=new Path2D,{left:K,top:se,width:Ee,height:ie}=t.bbox;Tw(oe,K-q,se-q,Ee+q*2,ie+q*2);const Ae=Be=>{if(f[Be]!=null){let ae=N(B(c[Be],h,R,D)),Ce=N(v(f[Be],I,F,S));P($,ae+W,Ce),G($,ae,Ce,W,0,bw*2)}};if(A)A.forEach(Ae);else for(let Be=r;Be<=i;Be++)Ae(Be);return{stroke:J>0?$:null,fill:$,clip:oe,flags:u1|mM}})}function lne(e){return(t,n,r,i,A,l)=>{r!=i&&(A!=r&&l!=r&&e(t,n,r),A!=i&&l!=i&&e(t,n,i),e(t,n,l))}}const D8e=lne(d1),S8e=lne(f1);function cne(e){const t=Ao(e==null?void 0:e.alignGaps,0);return(n,r,i,A)=>th(n,r,(l,c,f,h,I,B,v,D,S,R,F)=>{[i,A]=Bw(f,i,A);let N=l.pxRound,M=Ee=>N(B(Ee,h,R,D)),P=Ee=>N(v(Ee,I,F,S)),G,J;h.ori==0?(G=d1,J=D8e):(G=f1,J=S8e);const W=h.dir*(h.ori==0?1:-1),q={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:u1},$=q.stroke;let oe=!1;if(A-i>=R*4){let Ee=me=>n.posToVal(me,h.key,!0),ie=null,Ae=null,Be,ae,Ce,de=M(c[W==1?i:A]),ge=M(c[i]),be=M(c[A]),Te=Ee(W==1?ge+1:be-1);for(let me=W==1?i:A;me>=i&&me<=A;me+=W){let Ye=c[me],rt=(W==1?YeTe)?de:M(Ye),We=f[me];rt==de?We!=null?(ae=We,ie==null?(G($,rt,P(ae)),Be=ie=Ae=ae):aeAe&&(Ae=ae)):We===null&&(oe=!0):(ie!=null&&J($,de,P(ie),P(Ae),P(Be),P(ae)),We!=null?(ae=We,G($,rt,P(ae)),ie=Ae=Be=ae):(ie=Ae=null,We===null&&(oe=!0)),de=rt,Te=Ee(de+W))}ie!=null&&ie!=Ae&&Ce!=de&&J($,de,P(ie),P(Ae),P(Be),P(ae))}else for(let Ee=W==1?i:A;Ee>=i&&Ee<=A;Ee+=W){let ie=f[Ee];ie===null?oe=!0:ie!=null&&G($,M(c[Ee]),P(ie))}let[K,se]=IM(n,r);if(l.fill!=null||K!=0){let Ee=q.fill=new Path2D($),ie=l.fillTo(n,r,l.min,l.max,K),Ae=P(ie),Be=M(c[i]),ae=M(c[A]);W==-1&&([ae,Be]=[Be,ae]),G(Ee,ae,Ae),G(Ee,Be,Ae)}if(!l.spanGaps){let Ee=[];oe&&Ee.push(...CM(c,f,i,A,W,M,t)),q.gaps=Ee=l.gaps(n,r,i,A,Ee),q.clip=Dw(Ee,h.ori,D,S,R,F)}return se!=0&&(q.band=se==2?[x0(n,r,i,A,$,-1),x0(n,r,i,A,$,1)]:x0(n,r,i,A,$,se)),q})}function R8e(e){const t=Ao(e.align,1),n=Ao(e.ascDesc,!1),r=Ao(e.alignGaps,0),i=Ao(e.extend,!1);return(A,l,c,f)=>th(A,l,(h,I,B,v,D,S,R,F,N,M,P)=>{[c,f]=Bw(B,c,f);let G=h.pxRound,{left:J,width:W}=A.bbox,q=be=>G(S(be,v,M,F)),$=be=>G(R(be,D,P,N)),oe=v.ori==0?d1:f1;const K={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:u1},se=K.stroke,Ee=v.dir*(v.ori==0?1:-1);let ie=$(B[Ee==1?c:f]),Ae=q(I[Ee==1?c:f]),Be=Ae,ae=Ae;i&&t==-1&&(ae=J,oe(se,ae,ie)),oe(se,Ae,ie);for(let be=Ee==1?c:f;be>=c&&be<=f;be+=Ee){let Te=B[be];if(Te==null)continue;let me=q(I[be]),Ye=$(Te);t==1?oe(se,me,ie):oe(se,Be,Ye),oe(se,me,Ye),ie=Ye,Be=me}let Ce=Be;i&&t==1&&(Ce=J+W,oe(se,Ce,ie));let[de,ge]=IM(A,l);if(h.fill!=null||de!=0){let be=K.fill=new Path2D(se),Te=h.fillTo(A,l,h.min,h.max,de),me=$(Te);oe(be,Ce,me),oe(be,ae,me)}if(!h.spanGaps){let be=[];be.push(...CM(I,B,c,f,Ee,q,r));let Te=h.width*go/2,me=n||t==1?Te:-Te,Ye=n||t==-1?-Te:Te;be.forEach(rt=>{rt[0]+=me,rt[1]+=Ye}),K.gaps=be=h.gaps(A,l,c,f,be),K.clip=Dw(be,v.ori,F,N,M,P)}return ge!=0&&(K.band=ge==2?[x0(A,l,c,f,se,-1),x0(A,l,c,f,se,1)]:x0(A,l,c,f,se,ge)),K})}function une(e,t,n,r,i,A,l=Jo){if(e.length>1){let c=null;for(let f=0,h=1/0;f{}),{fill:B,stroke:v}=h;return(D,S,R,F)=>th(D,S,(N,M,P,G,J,W,q,$,oe,K,se)=>{let Ee=N.pxRound,ie=n,Ae=r*go,Be=c*go,ae=f*go,Ce,de;G.ori==0?[Ce,de]=A(D,S):[de,Ce]=A(D,S);const ge=G.dir*(G.ori==0?1:-1);let be=G.ori==0?Tw:EM,Te=G.ori==0?I:(Ve,Nt,tn,en,no,gr,ho)=>{I(Ve,Nt,tn,no,en,ho,gr)},me=Ao(D.bands,sM).find(Ve=>Ve.series[0]==S),Ye=me!=null?me.dir:0,rt=N.fillTo(D,S,N.min,N.max,Ye),We=Ee(q(rt,J,se,oe)),De,_e,xe,ve=K,Ue=Ee(N.width*go),At=!1,He=null,gt=null,ut=null,bt=null;B!=null&&(Ue==0||v!=null)&&(At=!0,He=B.values(D,S,R,F),gt=new Map,new Set(He).forEach(Ve=>{Ve!=null&>.set(Ve,new Path2D)}),Ue>0&&(ut=v.values(D,S,R,F),bt=new Map,new Set(ut).forEach(Ve=>{Ve!=null&&bt.set(Ve,new Path2D)})));let{x0:zt,size:ce}=h;if(zt!=null&&ce!=null){ie=1,M=zt.values(D,S,R,F),zt.unit==2&&(M=M.map(Nt=>D.posToVal($+Nt*K,G.key,!0)));let Ve=ce.values(D,S,R,F);ce.unit==2?_e=Ve[0]*K:_e=W(Ve[0],G,K,$)-W(0,G,K,$),ve=une(M,P,W,G,K,$,ve),xe=ve-_e+Ae}else ve=une(M,P,W,G,K,$,ve),xe=ve*l+Ae,_e=ve-xe;xe<1&&(xe=0),Ue>=_e/2&&(Ue=0),xe<5&&(Ee=gte);let mn=xe>0,Yn=ve-xe-(mn?Ue:0);_e=Ee(AM(Yn,ae,Be)),De=(ie==0?_e/2:ie==ge?0:_e)-ie*ge*((ie==0?Ae/2:0)+(mn?Ue/2:0));const yn={stroke:null,fill:null,clip:null,band:null,gaps:null,flags:0},fe=At?null:new Path2D;let dn=null;if(me!=null)dn=D.data[me.series[1]];else{let{y0:Ve,y1:Nt}=h;Ve!=null&&Nt!=null&&(P=Nt.values(D,S,R,F),dn=Ve.values(D,S,R,F))}let _t=Ce*_e,Pt=de*_e;for(let Ve=ge==1?R:F;Ve>=R&&Ve<=F;Ve+=ge){let Nt=P[Ve];if(Nt==null)continue;if(dn!=null){let Uo=dn[Ve]??0;if(Nt-Uo==0)continue;We=q(Uo,J,se,oe)}let tn=G.distr!=2||h!=null?M[Ve]:Ve,en=W(tn,G,K,$),no=q(Ao(Nt,rt),J,se,oe),gr=Ee(en-De),ho=Ee(_s(no,We)),ro=Ee(fc(no,We)),zr=ho-ro;if(Nt!=null){let Uo=Nt<0?Pt:_t,Qi=Nt<0?_t:Pt;At?(Ue>0&&ut[Ve]!=null&&be(bt.get(ut[Ve]),gr,ro+Sa(Ue/2),_e,_s(0,zr-Ue),Uo,Qi),He[Ve]!=null&&be(gt.get(He[Ve]),gr,ro+Sa(Ue/2),_e,_s(0,zr-Ue),Uo,Qi)):be(fe,gr,ro+Sa(Ue/2),_e,_s(0,zr-Ue),Uo,Qi),Te(D,S,Ve,gr-Ue/2,ro,_e+Ue,zr)}}return Ue>0?yn.stroke=At?bt:fe:At||(yn._fill=N.width==0?N._fill:N._stroke??N._fill,yn.width=0),yn.fill=At?gt:fe,yn})}function M8e(e,t){const n=Ao(t==null?void 0:t.alignGaps,0);return(r,i,A,l)=>th(r,i,(c,f,h,I,B,v,D,S,R,F,N)=>{[A,l]=Bw(h,A,l);let M=c.pxRound,P=Ce=>M(v(Ce,I,F,S)),G=Ce=>M(D(Ce,B,N,R)),J,W,q;I.ori==0?(J=Sw,q=d1,W=Ane):(J=Rw,q=f1,W=sne);const $=I.dir*(I.ori==0?1:-1);let oe=P(f[$==1?A:l]),K=oe,se=[],Ee=[];for(let Ce=$==1?A:l;Ce>=A&&Ce<=l;Ce+=$)if(h[Ce]!=null){let de=f[Ce],ge=P(de);se.push(K=ge),Ee.push(G(h[Ce]))}const ie={stroke:e(se,Ee,J,q,W,M),fill:null,clip:null,band:null,gaps:null,flags:u1},Ae=ie.stroke;let[Be,ae]=IM(r,i);if(c.fill!=null||Be!=0){let Ce=ie.fill=new Path2D(Ae),de=c.fillTo(r,i,c.min,c.max,Be),ge=G(de);q(Ce,K,ge),q(Ce,oe,ge)}if(!c.spanGaps){let Ce=[];Ce.push(...CM(f,h,A,l,$,P,n)),ie.gaps=Ce=c.gaps(r,i,A,l,Ce),ie.clip=Dw(Ce,I.ori,S,R,F,N)}return ae!=0&&(ie.band=ae==2?[x0(r,i,A,l,Ae,-1),x0(r,i,A,l,Ae,1)]:x0(r,i,A,l,Ae,ae)),ie})}function N8e(e){return M8e(F8e,e)}function F8e(e,t,n,r,i,A){const l=e.length;if(l<2)return null;const c=new Path2D;if(n(c,e[0],t[0]),l==2)r(c,e[1],t[1]);else{let f=Array(l),h=Array(l-1),I=Array(l-1),B=Array(l-1);for(let v=0;v0!=h[v]>0?f[v]=0:(f[v]=3*(B[v-1]+B[v])/((2*B[v]+B[v-1])/h[v-1]+(B[v]+2*B[v-1])/h[v]),isFinite(f[v])||(f[v]=0));f[l-1]=h[l-2];for(let v=0;v{Kr.pxRatio=go}));const O8e=cne(),j8e=ane();function fne(e,t,n,r){return(r?[e[0],e[1]].concat(e.slice(2)):[e[0]].concat(e.slice(1))).map((i,A)=>yM(i,A,t,n))}function L8e(e,t){return e.map((n,r)=>r==0?{}:tA({},t,n))}function yM(e,t,n,r){return tA({},t==0?n:r,e)}function gne(e,t,n){return t==null?a1:[t,n]}const P8e=gne;function U8e(e,t,n){return t==null?a1:vw(t,n,rM,!0)}function hne(e,t,n,r){return t==null?a1:yw(t,n,e.scales[r].log,!1)}const G8e=hne;function pne(e,t,n,r){return t==null?a1:nM(t,n,e.scales[r].log,!1)}const H8e=pne;function Y8e(e,t,n,r,i){let A=_s(dte(e),dte(t)),l=t-e,c=dc(i/r*l,n);do{let f=n[c],h=r*f/l;if(h>=i&&A+(f<5?uf.get(f):0)<=17)return[f,h]}while(++c(t=hA((n=+i)*go))+"px"),[e,t,n]}function J8e(e){e.show&&[e.font,e.labelFont].forEach(t=>{let n=zo(t[2]*go,1);t[0]=t[0].replace(/[0-9.]+px/,n+"px"),t[1]=n})}function Kr(e,t,n){const r={mode:Ao(e.mode,1)},i=r.mode;function A(X,te,re,ye){let Le=te.valToPct(X);return ye+re*(te.dir==-1?1-Le:Le)}function l(X,te,re,ye){let Le=te.valToPct(X);return ye+re*(te.dir==-1?Le:1-Le)}function c(X,te,re,ye){return te.ori==0?A(X,te,re,ye):l(X,te,re,ye)}r.valToPosH=A,r.valToPosV=l;let f=!1;r.status=0;const h=r.root=pl(Z6e);if(e.id!=null&&(h.id=e.id),ka(h,e.class),e.title){let X=pl(t3e,h);X.textContent=e.title}const I=uc("canvas"),B=r.ctx=I.getContext("2d"),v=pl(n3e,h);Kg("click",v,X=>{X.target===S&&(Lo!=Fa||Do!=cs)&&So.click(r,X)},!0);const D=r.under=pl(r3e,v);v.appendChild(I);const S=r.over=pl(o3e,v);e=l1(e);const R=+Ao(e.pxAlign,1),F=nne(R);(e.plugins||[]).forEach(X=>{X.opts&&(e=X.opts(r,e)||e)});const N=e.ms||.001,M=r.series=i==1?fne(e.series||[],Jte,Zte,!1):L8e(e.series||[null],Kte),P=r.axes=fne(e.axes||[],Yte,qte,!0),G=r.scales={},J=r.bands=e.bands||[];J.forEach(X=>{X.fill=Gr(X.fill||null),X.dir=Ao(X.dir,-1)});const W=i==2?M[1].facets[0].scale:M[0].scale,q={axes:ur,series:xf},$=(e.drawOrder||["axes","series"]).map(X=>q[X]);function oe(X){const te=X.distr==3?re=>w0(re>0?re:X.clamp(r,re,X.min,X.max,X.key)):X.distr==4?re=>iM(re,X.asinh):X.distr==100?re=>X.fwd(re):re=>re;return re=>{let ye=te(re),{_min:Le,_max:Ke}=X,ct=Ke-Le;return(ye-Le)/ct}}function K(X){let te=G[X];if(te==null){let re=(e.scales||$C)[X]||$C;if(re.from!=null){K(re.from);let ye=tA({},G[re.from],re,{key:X});ye.valToPct=oe(ye),G[X]=ye}else{te=G[X]=tA({},X==W?$te:x8e,re),te.key=X;let ye=te.time,Le=te.range,Ke=df(Le);if((X!=W||i==2&&!ye)&&(Ke&&(Le[0]==null||Le[1]==null)&&(Le={min:Le[0]==null?ate:{mode:1,hard:Le[0],soft:Le[0]},max:Le[1]==null?ate:{mode:1,hard:Le[1],soft:Le[1]}},Ke=!1),!Ke&&ww(Le))){let ct=Le;Le=(Qt,St,Bt)=>St==null?a1:vw(St,Bt,ct)}te.range=Gr(Le||(ye?P8e:X==W?te.distr==3?G8e:te.distr==4?H8e:gne:te.distr==3?hne:te.distr==4?pne:U8e)),te.auto=Gr(Ke?!1:te.auto),te.clamp=Gr(te.clamp||w8e),te._min=te._max=null,te.valToPct=oe(te)}}}K("x"),K("y"),i==1&&M.forEach(X=>{K(X.scale)}),P.forEach(X=>{K(X.scale)});for(let X in e.scales)K(X);const se=G[W],Ee=se.distr;let ie,Ae;se.ori==0?(ka(h,$6e),ie=A,Ae=l):(ka(h,e3e),ie=l,Ae=A);const Be={};for(let X in G){let te=G[X];(te.min!=null||te.max!=null)&&(Be[X]={min:te.min,max:te.max},te.min=te.max=null)}const ae=e.tzDate||(X=>new Date(hA(X/N))),Ce=e.fmtDate||aM,de=N==1?$3e(ae):n8e(ae),ge=Fte(ae,Nte(N==1?Z3e:t8e,Ce)),be=jte(ae,Ote(o8e,Ce)),Te=[],me=r.legend=tA({},s8e,e.legend),Ye=r.cursor=tA({},f8e,{drag:{y:i==2}},e.cursor),rt=me.show,We=Ye.show,De=me.markers;me.idxs=Te,De.width=Gr(De.width),De.dash=Gr(De.dash),De.stroke=Gr(De.stroke),De.fill=Gr(De.fill);let _e,xe,ve,Ue=[],At=[],He,gt=!1,ut={};if(me.live){const X=M[1]?M[1].values:null;gt=X!=null,He=gt?X(r,1,0):{_:0};for(let te in He)ut[te]=VT}if(rt)if(_e=uc("table",c3e,h),ve=uc("tbody",null,_e),me.mount(r,_e),gt){xe=uc("thead",null,_e,ve);let X=uc("tr",null,xe);uc("th",null,X);for(var bt in He)uc("th",zee,X).textContent=bt}else ka(_e,d3e),me.live&&ka(_e,u3e);const zt={show:!0},ce={show:!1};function mn(X,te){if(te==0&&(gt||!me.live||i==2))return a1;let re=[],ye=uc("tr",f3e,ve,ve.childNodes[te]);ka(ye,X.class),X.show||ka(ye,Vg);let Le=uc("th",null,ye);if(De.show){let Qt=pl(g3e,Le);if(te>0){let St=De.width(r,te);St&&(Qt.style.border=St+"px "+De.dash(r,te)+" "+De.stroke(r,te)),Qt.style.background=De.fill(r,te)}}let Ke=pl(zee,Le);X.label instanceof HTMLElement?Ke.appendChild(X.label):Ke.textContent=X.label,te>0&&(De.show||(Ke.style.color=X.width>0?De.stroke(r,te):De.fill(r,te)),yn("click",Le,Qt=>{if(Ye._lock)return;bn(Qt);let St=M.indexOf(X);if((Qt.ctrlKey||Qt.metaKey)!=me.isolate){let Bt=M.some((an,fn)=>fn>0&&fn!=St&&an.show);M.forEach((an,fn)=>{fn>0&&IA(fn,Bt?fn==St?zt:ce:zt,!0,Fr.setSeries)})}else IA(St,{show:!X.show},!0,Fr.setSeries)},!1),ot&&yn(Vee,Le,Qt=>{Ye._lock||(bn(Qt),IA(M.indexOf(X),Dl,!0,Fr.setSeries))},!1));for(var ct in He){let Qt=uc("td",h3e,ye);Qt.textContent="--",re.push(Qt)}return[ye,re]}const Yn=new Map;function yn(X,te,re,ye=!0){const Le=Yn.get(te)||{},Ke=Ye.bind[X](r,te,re,ye);Ke&&(Kg(X,te,Le[X]=Ke),Yn.set(te,Le))}function fe(X,te,re){const ye=Yn.get(te)||{};for(let Le in ye)(X==null||Le==X)&&(tM(Le,te,ye[Le]),delete ye[Le]);X==null&&Yn.delete(te)}let dn=0,_t=0,Pt=0,Ve=0,Nt=0,tn=0,en=Nt,no=tn,gr=Pt,ho=Ve,ro=0,zr=0,Uo=0,Qi=0;r.bbox={};let jA=!1,LA=!1,ti=!1,Ti=!1,Ts=!1,Xo=!1;function mA(X,te,re){(re||X!=r.width||te!=r.height)&&Ms(X,te),Hr(!1),ti=!0,LA=!0,Ns()}function Ms(X,te){r.width=dn=Pt=X,r.height=_t=Ve=te,Nt=tn=0,kt(),Zt();let re=r.bbox;ro=re.left=$g(Nt*go,.5),zr=re.top=$g(tn*go,.5),Uo=re.width=$g(Pt*go,.5),Qi=re.height=$g(Ve*go,.5)}const ls=3;function nt(){let X=!1,te=0;for(;!X;){te++;let re=vt(te),ye=nn(te);X=te==ls||re&&ye,X||(Ms(r.width,r.height),LA=!0)}}function ft({width:X,height:te}){mA(X,te)}r.setSize=ft;function kt(){let X=!1,te=!1,re=!1,ye=!1;P.forEach((Le,Ke)=>{if(Le.show&&Le._show){let{side:ct,_size:Qt}=Le,St=ct%2,Bt=Le.label!=null?Le.labelSize:0,an=Qt+Bt;an>0&&(St?(Pt-=an,ct==3?(Nt+=an,ye=!0):re=!0):(Ve-=an,ct==0?(tn+=an,X=!0):te=!0))}}),In[0]=X,In[1]=re,In[2]=te,In[3]=ye,Pt-=Wr[1]+Wr[3],Nt+=Wr[3],Ve-=Wr[2]+Wr[0],tn+=Wr[0]}function Zt(){let X=Nt+Pt,te=tn+Ve,re=Nt,ye=tn;function Le(Ke,ct){switch(Ke){case 1:return X+=ct,X-ct;case 2:return te+=ct,te-ct;case 3:return re-=ct,re+ct;case 0:return ye-=ct,ye+ct}}P.forEach((Ke,ct)=>{if(Ke.show&&Ke._show){let Qt=Ke.side;Ke._pos=Le(Qt,Ke._size),Ke.label!=null&&(Ke._lpos=Le(Qt,Ke.labelSize))}})}if(Ye.dataIdx==null){let X=Ye.hover,te=X.skip=new Set(X.skip??[]);te.add(void 0);let re=X.prox=Gr(X.prox),ye=X.bias??(X.bias=0);Ye.dataIdx=(Le,Ke,ct,Qt)=>{if(Ke==0)return ct;let St=ct,Bt=re(Le,Ke,ct,Qt)??Jo,an=Bt>=0&&Bt0;)te.has(tr[vn])||(dr=vn);if(ye==0||ye==1)for(vn=ct;Pn==null&&vn++Bt&&(St=null);return St}}const bn=X=>{Ye.event=X};Ye.idxs=Te,Ye._lock=!1;let Qe=Ye.points;Qe.show=Gr(Qe.show),Qe.size=Gr(Qe.size),Qe.stroke=Gr(Qe.stroke),Qe.width=Gr(Qe.width),Qe.fill=Gr(Qe.fill);const Oe=r.focus=tA({},e.focus||{alpha:.3},Ye.focus),ot=Oe.prox>=0,et=ot&&Qe.one;let Ct=[],ht=[],Ot=[];function Qn(X,te){let re=Qe.show(r,te);if(re instanceof HTMLElement)return ka(re,l3e),ka(re,X.class),gu(re,-10,-10,Pt,Ve),S.insertBefore(re,Ct[te]),re}function dt(X,te){if(i==1||te>0){let re=i==1&&G[X.scale].time,ye=X.value;X.value=re?Bte(ye)?jte(ae,Ote(ye,Ce)):ye||be:ye||v8e,X.label=X.label||(re?h8e:g8e)}if(et||te>0){X.width=X.width==null?1:X.width,X.paths=X.paths||O8e||x3e,X.fillTo=Gr(X.fillTo||_8e),X.pxAlign=+Ao(X.pxAlign,R),X.pxRound=nne(X.pxAlign),X.stroke=Gr(X.stroke||null),X.fill=Gr(X.fill||null),X._stroke=X._fill=X._paths=X._focus=null;let re=b8e(_s(1,X.width),1),ye=X.points=tA({},{size:re,width:_s(1,re*.2),stroke:X.stroke,space:re*2,paths:j8e,_stroke:null,_fill:null},X.points);ye.show=Gr(ye.show),ye.filter=Gr(ye.filter),ye.fill=Gr(ye.fill),ye.stroke=Gr(ye.stroke),ye.paths=Gr(ye.paths),ye.pxAlign=X.pxAlign}if(rt){let re=mn(X,te);Ue.splice(te,0,re[0]),At.splice(te,0,re[1]),me.values.push(null)}if(We){Te.splice(te,0,null);let re=null;et?te==0&&(re=Qn(X,te)):te>0&&(re=Qn(X,te)),Ct.splice(te,0,re),ht.splice(te,0,0),Ot.splice(te,0,0)}xi("addSeries",te)}function Wt(X,te){te=te??M.length,X=i==1?yM(X,te,Jte,Zte):yM(X,te,{},Kte),M.splice(te,0,X),dt(M[te],te)}r.addSeries=Wt;function sn(X){if(M.splice(X,1),rt){me.values.splice(X,1),At.splice(X,1);let te=Ue.splice(X,1)[0];fe(null,te.firstChild),te.remove()}We&&(Te.splice(X,1),Ct.splice(X,1)[0].remove(),ht.splice(X,1),Ot.splice(X,1)),xi("delSeries",X)}r.delSeries=sn;const In=[!1,!1,!1,!1];function br(X,te){if(X._show=X.show,X.show){let re=X.side%2,ye=G[X.scale];ye==null&&(X.scale=re?M[1].scale:W,ye=G[X.scale]);let Le=ye.time;X.size=Gr(X.size),X.space=Gr(X.space),X.rotate=Gr(X.rotate),df(X.incrs)&&X.incrs.forEach(ct=>{!uf.has(ct)&&uf.set(ct,Cte(ct))}),X.incrs=Gr(X.incrs||(ye.distr==2?X3e:Le?N==1?K3e:e8e:eh)),X.splits=Gr(X.splits||(Le&&ye.distr==1?de:ye.distr==3?hM:ye.distr==4?I8e:m8e)),X.stroke=Gr(X.stroke),X.grid.stroke=Gr(X.grid.stroke),X.ticks.stroke=Gr(X.ticks.stroke),X.border.stroke=Gr(X.border.stroke);let Ke=X.values;X.values=df(Ke)&&!df(Ke[0])?Gr(Ke):Le?df(Ke)?Fte(ae,Nte(Ke,Ce)):Bte(Ke)?r8e(ae,Ke):Ke||ge:Ke||p8e,X.filter=Gr(X.filter||(ye.distr>=3&&ye.log==10?B8e:ye.distr==3&&ye.log==2?y8e:hte)),X.font=mne(X.font),X.labelFont=mne(X.labelFont),X._size=X.size(r,null,te,0),X._space=X._rotate=X._incrs=X._found=X._splits=X._values=null,X._size>0&&(In[te]=!0,X._el=pl(i3e,v))}}function po(X,te,re,ye){let[Le,Ke,ct,Qt]=re,St=te%2,Bt=0;return St==0&&(Qt||Ke)&&(Bt=te==0&&!Le||te==2&&!ct?hA(Yte.size/3):0),St==1&&(Le||ct)&&(Bt=te==1&&!Ke||te==3&&!Qt?hA(qte.size/2):0),Bt}const mr=r.padding=(e.padding||[po,po,po,po]).map(X=>Gr(Ao(X,po))),Wr=r._padding=mr.map((X,te)=>X(r,te,In,0));let Rn,y=null,Ft=null;const o=i==1?M[0].idxs:null;let m=null,Kt=!1;function On(X,te){if(t=X??[],r.data=r._data=t,i==2){Rn=0;for(let re=1;re=0,Xo=!0,Ns()}}r.setData=On;function PA(){Kt=!0;let X,te;i==1&&(Rn>0?(y=o[0]=0,Ft=o[1]=Rn-1,X=t[0][y],te=t[0][Ft],Ee==2?(X=y,te=Ft):X==te&&(Ee==3?[X,te]=yw(X,X,se.log,!1):Ee==4?[X,te]=nM(X,X,se.log,!1):se.time?te=X+hA(86400/N):[X,te]=vw(X,te,rM,!0))):(y=o[0]=X=null,Ft=o[1]=te=null)),iA(W,X,te)}let jo,Tn,Aa,jn,wi,Nu,Fu,_l,H,ni;function Yt(X,te,re,ye,Le,Ke){X??(X=qee),re??(re=sM),ye??(ye="butt"),Le??(Le=qee),Ke??(Ke="round"),X!=jo&&(B.strokeStyle=jo=X),Le!=Tn&&(B.fillStyle=Tn=Le),te!=Aa&&(B.lineWidth=Aa=te),Ke!=wi&&(B.lineJoin=wi=Ke),ye!=Nu&&(B.lineCap=Nu=ye),re!=jn&&B.setLineDash(jn=re)}function Na(X,te,re,ye){te!=Tn&&(B.fillStyle=Tn=te),X!=Fu&&(B.font=Fu=X),re!=_l&&(B.textAlign=_l=re),ye!=H&&(B.textBaseline=H=ye)}function Mn(X,te,re,ye,Le=0){if(ye.length>0&&X.auto(r,Kt)&&(te==null||te.min==null)){let Ke=Ao(y,0),ct=Ao(Ft,ye.length-1),Qt=re.min==null?B3e(ye,Ke,ct,Le,X.distr==3):[re.min,re.max];X.min=fc(X.min,re.min=Qt[0]),X.max=_s(X.max,re.max=Qt[1])}}const rA={min:null,max:null};function sa(){for(let ye in G){let Le=G[ye];Be[ye]==null&&(Le.min==null||Be[W]!=null&&Le.auto(r,Kt))&&(Be[ye]=rA)}for(let ye in G){let Le=G[ye];Be[ye]==null&&Le.from!=null&&Be[Le.from]!=null&&(Be[ye]=rA)}Be[W]!=null&&Hr(!0);let X={};for(let ye in Be){let Le=Be[ye];if(Le!=null){let Ke=X[ye]=l1(G[ye],D3e);if(Le.min!=null)tA(Ke,Le);else if(ye!=W||i==2)if(Rn==0&&Ke.from==null){let ct=Ke.range(r,null,null,ye);Ke.min=ct[0],Ke.max=ct[1]}else Ke.min=Jo,Ke.max=-Jo}}if(Rn>0){M.forEach((ye,Le)=>{if(i==1){let Ke=ye.scale,ct=Be[Ke];if(ct==null)return;let Qt=X[Ke];if(Le==0){let St=Qt.range(r,Qt.min,Qt.max,Ke);Qt.min=St[0],Qt.max=St[1],y=dc(Qt.min,t[0]),Ft=dc(Qt.max,t[0]),Ft-y>1&&(t[0][y]Qt.max&&Ft--),ye.min=m[y],ye.max=m[Ft]}else ye.show&&ye.auto&&Mn(Qt,ct,ye,t[Le],ye.sorted);ye.idxs[0]=y,ye.idxs[1]=Ft}else if(Le>0&&ye.show&&ye.auto){let[Ke,ct]=ye.facets,Qt=Ke.scale,St=ct.scale,[Bt,an]=t[Le],fn=X[Qt],Xn=X[St];fn!=null&&Mn(fn,Be[Qt],Ke,Bt,Ke.sorted),Xn!=null&&Mn(Xn,Be[St],ct,an,ct.sorted),ye.min=ct.min,ye.max=ct.max}});for(let ye in X){let Le=X[ye],Ke=Be[ye];if(Le.from==null&&(Ke==null||Ke.min==null)){let ct=Le.range(r,Le.min==Jo?null:Le.min,Le.max==-Jo?null:Le.max,ye);Le.min=ct[0],Le.max=ct[1]}}}for(let ye in X){let Le=X[ye];if(Le.from!=null){let Ke=X[Le.from];if(Ke.min==null)Le.min=Le.max=null;else{let ct=Le.range(r,Ke.min,Ke.max,ye);Le.min=ct[0],Le.max=ct[1]}}}let te={},re=!1;for(let ye in X){let Le=X[ye],Ke=G[ye];if(Ke.min!=Le.min||Ke.max!=Le.max){Ke.min=Le.min,Ke.max=Le.max;let ct=Ke.distr;Ke._min=ct==3?w0(Ke.min):ct==4?iM(Ke.min,Ke.asinh):ct==100?Ke.fwd(Ke.min):Ke.min,Ke._max=ct==3?w0(Ke.max):ct==4?iM(Ke.max,Ke.asinh):ct==100?Ke.fwd(Ke.max):Ke.max,te[ye]=re=!0}}if(re){M.forEach((ye,Le)=>{i==2?Le>0&&te.y&&(ye._paths=null):te[ye.scale]&&(ye._paths=null)});for(let ye in te)ti=!0,xi("setScale",ye);We&&Ye.left>=0&&(Ti=Xo=!0)}for(let ye in Be)Be[ye]=null}function UA(X){let te=AM(y-1,0,Rn-1),re=AM(Ft+1,0,Rn-1);for(;X[te]==null&&te>0;)te--;for(;X[re]==null&&re0){let X=M.some(te=>te._focus)&&ni!=Oe.alpha;X&&(B.globalAlpha=ni=Oe.alpha),M.forEach((te,re)=>{if(re>0&&te.show&&(xc(re,!1),xc(re,!0),te._paths==null)){let ye=ni;ni!=te.alpha&&(B.globalAlpha=ni=te.alpha);let Le=i==2?[0,t[re][0].length-1]:UA(t[re]);te._paths=te.paths(r,re,Le[0],Le[1]),ni!=ye&&(B.globalAlpha=ni=ye)}}),M.forEach((te,re)=>{if(re>0&&te.show){let ye=ni;ni!=te.alpha&&(B.globalAlpha=ni=te.alpha),te._paths!=null&&Jn(re,!1);{let Le=te._paths!=null?te._paths.gaps:null,Ke=te.points.show(r,re,y,Ft,Le),ct=te.points.filter(r,re,Ke,Le);(Ke||ct)&&(te.points._paths=te.points.paths(r,re,y,Ft,ct),Jn(re,!0))}ni!=ye&&(B.globalAlpha=ni=ye),xi("drawSeries",re)}}),X&&(B.globalAlpha=ni=1)}}function xc(X,te){let re=te?M[X].points:M[X];re._stroke=re.stroke(r,X),re._fill=re.fill(r,X)}function Jn(X,te){let re=te?M[X].points:M[X],{stroke:ye,fill:Le,clip:Ke,flags:ct,_stroke:Qt=re._stroke,_fill:St=re._fill,_width:Bt=re.width}=re._paths;Bt=zo(Bt*go,3);let an=null,fn=Bt%2/2;te&&St==null&&(St=Bt>0?"#fff":Qt);let Xn=re.pxAlign==1&&fn>0;if(Xn&&B.translate(fn,fn),!te){let Qr=ro-Bt/2,tr=zr-Bt/2,dr=Uo+Bt,Pn=Qi+Bt;an=new Path2D,an.rect(Qr,tr,dr,Pn)}te?kc(Qt,Bt,re.dash,re.cap,St,ye,Le,ct,Ke):_c(X,Qt,Bt,re.dash,re.cap,St,ye,Le,ct,an,Ke),Xn&&B.translate(-fn,-fn)}function _c(X,te,re,ye,Le,Ke,ct,Qt,St,Bt,an){let fn=!1;St!=0&&J.forEach((Xn,Qr)=>{if(Xn.series[0]==X){let tr=M[Xn.series[1]],dr=t[Xn.series[1]],Pn=(tr._paths||$C).band;df(Pn)&&(Pn=Xn.dir==1?Pn[0]:Pn[1]);let vn,Ro=null;tr.show&&Pn&&v3e(dr,y,Ft)?(Ro=Xn.fill(r,Qr)||Ke,vn=tr._paths.clip):Pn=null,kc(te,re,ye,Le,Ro,ct,Qt,St,Bt,an,vn,Pn),fn=!0}}),fn||kc(te,re,ye,Le,Ke,ct,Qt,St,Bt,an)}const Ou=u1|mM;function kc(X,te,re,ye,Le,Ke,ct,Qt,St,Bt,an,fn){Yt(X,te,re,ye,Le),(St||Bt||fn)&&(B.save(),St&&B.clip(St),Bt&&B.clip(Bt)),fn?(Qt&Ou)==Ou?(B.clip(fn),an&&B.clip(an),Ie(Le,ct),ee(X,Ke,te)):Qt&mM?(Ie(Le,ct),B.clip(fn),ee(X,Ke,te)):Qt&u1&&(B.save(),B.clip(fn),an&&B.clip(an),Ie(Le,ct),B.restore(),ee(X,Ke,te)):(Ie(Le,ct),ee(X,Ke,te)),(St||Bt||fn)&&B.restore()}function ee(X,te,re){re>0&&(te instanceof Map?te.forEach((ye,Le)=>{B.strokeStyle=jo=Le,B.stroke(ye)}):te!=null&&X&&B.stroke(te))}function Ie(X,te){te instanceof Map?te.forEach((re,ye)=>{B.fillStyle=Tn=ye,B.fill(re)}):te!=null&&X&&B.fill(te)}function Re(X,te,re,ye){let Le=P[X],Ke;if(ye<=0)Ke=[0,0];else{let ct=Le._space=Le.space(r,X,te,re,ye),Qt=Le._incrs=Le.incrs(r,X,te,re,ye,ct);Ke=Y8e(te,re,Qt,ye,ct)}return Le._found=Ke}function it(X,te,re,ye,Le,Ke,ct,Qt,St,Bt){let an=ct%2/2;R==1&&B.translate(an,an),Yt(Qt,ct,St,Bt,Qt),B.beginPath();let fn,Xn,Qr,tr,dr=Le+(ye==0||ye==3?-Ke:Ke);re==0?(Xn=Le,tr=dr):(fn=Le,Qr=dr);for(let Pn=0;Pn{if(!re.show)return;let Le=G[re.scale];if(Le.min==null){re._show&&(te=!1,re._show=!1,Hr(!1));return}else re._show||(te=!1,re._show=!0,Hr(!1));let Ke=re.side,ct=Ke%2,{min:Qt,max:St}=Le,[Bt,an]=Re(ye,Qt,St,ct==0?Pt:Ve);if(an==0)return;let fn=Le.distr==2,Xn=re._splits=re.splits(r,ye,Qt,St,Bt,an,fn),Qr=Le.distr==2?Xn.map(vn=>m[vn]):Xn,tr=Le.distr==2?m[Xn[1]]-m[Xn[0]]:Bt,dr=re._values=re.values(r,re.filter(r,Qr,ye,an,tr),ye,an,tr);re._rotate=Ke==2?re.rotate(r,dr,ye,an):0;let Pn=re._size;re._size=ml(re.size(r,dr,ye,X)),Pn!=null&&re._size!=Pn&&(te=!1)}),te}function nn(X){let te=!0;return mr.forEach((re,ye)=>{let Le=re(r,ye,In,X);Le!=Wr[ye]&&(te=!1),Wr[ye]=Le}),te}function ur(){for(let X=0;Xm[co]):Qr,dr=an.distr==2?m[Qr[1]]-m[Qr[0]]:St,Pn=te.ticks,vn=te.border,Ro=Pn.show?Pn.size:0,Dr=hA(Ro*go),Oi=hA((te.alignTo==2?te._size-Ro-te.gap:te.gap)*go),nr=te._rotate*-bw/180,Pe=F(te._pos*go),lt=(Dr+Oi)*Qt,tt=Pe+lt;Ke=ye==0?tt:0,Le=ye==1?tt:0;let Xt=te.font[0],kn=te.align==1?o1:te.align==2?zT:nr>0?o1:nr<0?zT:ye==0?"center":re==3?zT:o1,rr=nr||ye==1?"middle":re==2?VC:Wee;Na(Xt,ct,kn,rr);let qr=te.font[1]*te.lineGap,rn=Qr.map(co=>F(c(co,an,fn,Xn))),Vo=te._values;for(let co=0;co{re>0&&(te._paths=null,X&&(i==1?(te.min=null,te.max=null):te.facets.forEach(ye=>{ye.min=null,ye.max=null})))})}let Mi=!1,Ni=!1,di=[];function pB(){Ni=!1;for(let X=0;X0&&queueMicrotask(pB)}r.batch=A2;function H0(){if(jA&&(sa(),jA=!1),ti&&(nt(),ti=!1),LA){if(si(D,o1,Nt),si(D,VC,tn),si(D,qC,Pt),si(D,XC,Ve),si(S,o1,Nt),si(S,VC,tn),si(S,qC,Pt),si(S,XC,Ve),si(v,qC,dn),si(v,XC,_t),I.width=hA(dn*go),I.height=hA(_t*go),P.forEach(({_el:X,_show:te,_size:re,_pos:ye,side:Le})=>{if(X!=null)if(te){let Ke=Le===3||Le===0?re:0,ct=Le%2==1;si(X,ct?"left":"top",ye-Ke),si(X,ct?"width":"height",re),si(X,ct?"top":"left",ct?tn:Nt),si(X,ct?"height":"width",ct?Ve:Pt),$T(X,Vg)}else ka(X,Vg)}),jo=Tn=Aa=wi=Nu=Fu=_l=H=jn=null,ni=1,Sc(!0),Nt!=en||tn!=no||Pt!=gr||Ve!=ho){Hr(!1);let X=Pt/gr,te=Ve/ho;if(We&&!Ti&&Ye.left>=0){Ye.left*=X,Ye.top*=te,oo&&gu(oo,hA(Ye.left),0,Pt,Ve),ju&&gu(ju,0,hA(Ye.top),Pt,Ve);for(let re=0;re=0&&Io.width>0){Io.left*=X,Io.width*=X,Io.top*=te,Io.height*=te;for(let re in W0)si(Dc,re,Io[re])}en=Nt,no=tn,gr=Pt,ho=Ve}xi("setSize"),LA=!1}dn>0&&_t>0&&(B.clearRect(0,0,I.width,I.height),xi("drawClear"),$.forEach(X=>X()),xi("draw")),Io.show&&Ts&&(Go(Io),Ts=!1),We&&Ti&&(QA(null,!0,!1),Ti=!1),me.show&&me.live&&Xo&&(Co(),Xo=!1),f||(f=!0,r.status=1,xi("ready")),Kt=!1,Mi=!1}r.redraw=(X,te)=>{ti=te||!1,X!==!1?iA(W,se.min,se.max):Ns()};function Y0(X,te){let re=G[X];if(re.from==null){if(Rn==0){let ye=re.range(r,te.min,te.max,X);te.min=ye[0],te.max=ye[1]}if(te.min>te.max){let ye=te.min;te.min=te.max,te.max=ye}if(Rn>1&&te.min!=null&&te.max!=null&&te.max-te.min<1e-16)return;X==W&&re.distr==2&&Rn>0&&(te.min=dc(te.min,t[0]),te.max=dc(te.max,t[0]),te.min==te.max&&te.max++),Be[X]=te,jA=!0,Ns()}}r.setScale=Y0;let _f,kf,oo,ju,Df,Am,Fa,cs,ko,mo,Lo,Do,oA=!1;const So=Ye.drag;let ri=So.x,lo=So.y;We&&(Ye.x&&(_f=pl(s3e,S)),Ye.y&&(kf=pl(a3e,S)),se.ori==0?(oo=_f,ju=kf):(oo=kf,ju=_f),Lo=Ye.left,Do=Ye.top);const Io=r.select=tA({show:!0,over:!0,left:0,width:0,top:0,height:0},e.select),Dc=Io.show?pl(A3e,Io.over?S:D):null;function Go(X,te){if(Io.show){for(let re in X)Io[re]=X[re],re in W0&&si(Dc,re,X[re]);te!==!1&&xi("setSelect")}}r.setSelect=Go;function Sf(X){if(M[X].show)rt&&$T(Ue[X],Vg);else if(rt&&ka(Ue[X],Vg),We){let te=et?Ct[0]:Ct[X];te!=null&&gu(te,-10,-10,Pt,Ve)}}function iA(X,te,re){Y0(X,{min:te,max:re})}function IA(X,te,re,ye){te.focus!=null&&Yr(X),te.show!=null&&M.forEach((Le,Ke)=>{Ke>0&&(X==Ke||X==null)&&(Le.show=te.show,Sf(Ke),i==2?(iA(Le.facets[0].scale,null,null),iA(Le.facets[1].scale,null,null)):iA(Le.scale,null,null),Ns())}),re!==!1&&xi("setSeries",X,te),ye&&Hu("setSeries",r,X,te)}r.setSeries=IA;function Fs(X,te){tA(J[X],te)}function GA(X,te){X.fill=Gr(X.fill||null),X.dir=Ao(X.dir,-1),te=te??J.length,J.splice(te,0,X)}function Rf(X){X==null?J.length=0:J.splice(X,1)}r.addBand=GA,r.setBand=Fs,r.delBand=Rf;function Tf(X,te){M[X].alpha=te,We&&Ct[X]!=null&&(Ct[X].style.opacity=te),rt&&Ue[X]&&(Ue[X].style.opacity=te)}let aa,la,kl;const Dl={focus:!0};function Yr(X){if(X!=kl){let te=X==null,re=Oe.alpha!=1;M.forEach((ye,Le)=>{if(i==1||Le>0){let Ke=te||Le==0||Le==X;ye._focus=te?null:Ke,re&&Tf(Le,Ke?1:Oe.alpha)}}),kl=X,re&&Ns()}}rt&&ot&&yn(Kee,_e,X=>{Ye._lock||(bn(X),kl!=null&&IA(null,Dl,!0,Fr.setSeries))});function Os(X,te,re){let ye=G[te];re&&(X=X/go-(ye.ori==1?tn:Nt));let Le=Pt;ye.ori==1&&(Le=Ve,X=Le-X),ye.dir==-1&&(X=Le-X);let Ke=ye._min,ct=ye._max,Qt=X/Le,St=Ke+(ct-Ke)*Qt,Bt=ye.distr;return Bt==3?s1(10,St):Bt==4?Q3e(St,ye.asinh):Bt==100?ye.bwd(St):St}function HA(X,te){let re=Os(X,W,te);return dc(re,t[0],y,Ft)}r.valToIdx=X=>dc(X,t[0]),r.posToIdx=HA,r.posToVal=Os,r.valToPos=(X,te,re)=>G[te].ori==0?A(X,G[te],re?Uo:Pt,re?ro:0):l(X,G[te],re?Qi:Ve,re?zr:0),r.setCursor=(X,te,re)=>{Lo=X.left,Do=X.top,QA(null,te,re)};function s2(X,te){si(Dc,o1,Io.left=X),si(Dc,qC,Io.width=te)}function Mf(X,te){si(Dc,VC,Io.top=X),si(Dc,XC,Io.height=te)}let us=se.ori==0?s2:Mf,Sl=se.ori==1?s2:Mf;function Ji(){if(rt&&me.live)for(let X=i==2?1:0;X{Te[ye]=re}):k3e(X.idx)||Te.fill(X.idx),me.idx=Te[0]),rt&&me.live){for(let re=0;re0||i==1&&!gt)&&Rl(re,Te[re]);Ji()}Xo=!1,te!==!1&&xi("setLegend")}r.setLegend=Co;function Rl(X,te){let re=M[X],ye=X==0&&Ee==2?m:t[X],Le;gt?Le=re.values(r,X,te)??ut:(Le=re.value(r,te==null?null:ye[te],X,te),Le=Le==null?ut:{_:Le}),me.values[X]=Le}function QA(X,te,re){ko=Lo,mo=Do,[Lo,Do]=Ye.move(r,Lo,Do),Ye.left=Lo,Ye.top=Do,We&&(oo&&gu(oo,hA(Lo),0,Pt,Ve),ju&&gu(ju,0,hA(Do),Pt,Ve));let ye,Le=y>Ft;aa=Jo,la=null;let Ke=se.ori==0?Pt:Ve,ct=se.ori==1?Pt:Ve;if(Lo<0||Rn==0||Le){ye=Ye.idx=null;for(let Qt=0;Qt0&&Ro.show){let lt=nr==null?-10:nr==ye?Bt:ie(i==1?t[0][nr]:t[vn][0][nr],se,Ke,0),tt=Pe==null?-10:Ae(Pe,i==1?G[Ro.scale]:G[Ro.facets[1].scale],ct,0);if(ot&&Pe!=null){let Xt=se.ori==1?Lo:Do,kn=gA(Oe.dist(r,vn,nr,tt,Xt));if(kn=0?1:-1,Vo=qr>=0?1:-1;Vo==rn&&(Vo==1?rr==1?Pe>=qr:Pe<=qr:rr==1?Pe<=qr:Pe>=qr)&&(aa=kn,la=vn)}else aa=kn,la=vn}}if(Xo||et){let Xt,kn;se.ori==0?(Xt=lt,kn=tt):(Xt=tt,kn=lt);let rr,qr,rn,Vo,fs,co,zi=!0,Tl=Qe.bbox;if(Tl!=null){zi=!1;let fi=Tl(r,vn);rn=fi.left,Vo=fi.top,rr=fi.width,qr=fi.height}else rn=Xt,Vo=kn,rr=qr=Qe.size(r,vn);if(co=Qe.fill(r,vn),fs=Qe.stroke(r,vn),et)vn==la&&aa<=Oe.prox&&(an=rn,fn=Vo,Xn=rr,Qr=qr,tr=zi,dr=co,Pn=fs);else{let fi=Ct[vn];fi!=null&&(ht[vn]=rn,Ot[vn]=Vo,ote(fi,rr,qr,zi),nte(fi,co,fs),gu(fi,ml(rn),ml(Vo),Pt,Ve))}}}}if(et){let vn=Oe.prox,Ro=kl==null?aa<=vn:aa>vn||la!=kl;if(Xo||Ro){let Dr=Ct[0];Dr!=null&&(ht[0]=an,Ot[0]=fn,ote(Dr,Xn,Qr,tr),nte(Dr,dr,Pn),gu(Dr,ml(an),ml(fn),Pt,Ve))}}}if(Io.show&&oA)if(X!=null){let[Qt,St]=Fr.scales,[Bt,an]=Fr.match,[fn,Xn]=X.cursor.sync.scales,Qr=X.cursor.drag;if(ri=Qr._x,lo=Qr._y,ri||lo){let{left:tr,top:dr,width:Pn,height:vn}=X.select,Ro=X.scales[fn].ori,Dr=X.posToVal,Oi,nr,Pe,lt,tt,Xt=Qt!=null&&Bt(Qt,fn),kn=St!=null&&an(St,Xn);Xt&&ri?(Ro==0?(Oi=tr,nr=Pn):(Oi=dr,nr=vn),Pe=G[Qt],lt=ie(Dr(Oi,fn),Pe,Ke,0),tt=ie(Dr(Oi+nr,fn),Pe,Ke,0),us(fc(lt,tt),gA(tt-lt))):us(0,Ke),kn&&lo?(Ro==1?(Oi=tr,nr=Pn):(Oi=dr,nr=vn),Pe=G[St],lt=Ae(Dr(Oi,Xn),Pe,ct,0),tt=Ae(Dr(Oi+nr,Xn),Pe,ct,0),Sl(fc(lt,tt),gA(tt-lt))):Sl(0,ct)}else Nf()}else{let Qt=gA(ko-Df),St=gA(mo-Am);if(se.ori==1){let Xn=Qt;Qt=St,St=Xn}ri=So.x&&Qt>=So.dist,lo=So.y&&St>=So.dist;let Bt=So.uni;Bt!=null?ri&&lo&&(ri=Qt>=Bt,lo=St>=Bt,!ri&&!lo&&(St>Qt?lo=!0:ri=!0)):So.x&&So.y&&(ri||lo)&&(ri=lo=!0);let an,fn;ri&&(se.ori==0?(an=Fa,fn=Lo):(an=cs,fn=Do),us(fc(an,fn),gA(fn-an)),lo||Sl(0,ct)),lo&&(se.ori==1?(an=Fa,fn=Lo):(an=cs,fn=Do),Sl(fc(an,fn),gA(fn-an)),ri||us(0,Ke)),!ri&&!lo&&(us(0,0),Sl(0,0))}if(So._x=ri,So._y=lo,X==null){if(re){if(Gu!=null){let[Qt,St]=Fr.scales;Fr.values[0]=Qt!=null?Os(se.ori==0?Lo:Do,Qt):null,Fr.values[1]=St!=null?Os(se.ori==1?Lo:Do,St):null}Hu(qT,r,Lo,Do,Pt,Ve,ye)}if(ot){let Qt=re&&Fr.setSeries,St=Oe.prox;kl==null?aa<=St&&IA(la,Dl,!0,Qt):aa>St?IA(null,Dl,!0,Qt):la!=kl&&IA(la,Dl,!0,Qt)}}Xo&&(me.idx=ye,Co()),te!==!1&&xi("setCursor")}let Oa=null;Object.defineProperty(r,"rect",{get(){return Oa==null&&Sc(!1),Oa}});function Sc(X=!1){X?Oa=null:(Oa=S.getBoundingClientRect(),xi("syncRect",Oa))}function J0(X,te,re,ye,Le,Ke,ct){Ye._lock||oA&&X!=null&&X.movementX==0&&X.movementY==0||(z0(X,te,re,ye,Le,Ke,ct,!1,X!=null),X!=null?QA(null,!0,!0):QA(te,!0,!1))}function z0(X,te,re,ye,Le,Ke,ct,Qt,St){if(Oa==null&&Sc(!1),bn(X),X!=null)re=X.clientX-Oa.left,ye=X.clientY-Oa.top;else{if(re<0||ye<0){Lo=-10,Do=-10;return}let[Bt,an]=Fr.scales,fn=te.cursor.sync,[Xn,Qr]=fn.values,[tr,dr]=fn.scales,[Pn,vn]=Fr.match,Ro=te.axes[0].side%2==1,Dr=se.ori==0?Pt:Ve,Oi=se.ori==1?Pt:Ve,nr=Ro?Ke:Le,Pe=Ro?Le:Ke,lt=Ro?ye:re,tt=Ro?re:ye;if(tr!=null?re=Pn(Bt,tr)?c(Xn,G[Bt],Dr,0):-10:re=Dr*(lt/nr),dr!=null?ye=vn(an,dr)?c(Qr,G[an],Oi,0):-10:ye=Oi*(tt/Pe),se.ori==1){let Xt=re;re=ye,ye=Xt}}St&&(te==null||te.cursor.event.type==qT)&&((re<=1||re>=Pt-1)&&(re=$g(re,Pt)),(ye<=1||ye>=Ve-1)&&(ye=$g(ye,Ve))),Qt?(Df=re,Am=ye,[Fa,cs]=Ye.move(r,re,ye)):(Lo=re,Do=ye)}const W0={width:0,height:0,left:0,top:0};function Nf(){Go(W0,!1)}let Rc,ds,q0,Ff;function a2(X,te,re,ye,Le,Ke,ct){oA=!0,ri=lo=So._x=So._y=!1,z0(X,te,re,ye,Le,Ke,ct,!0,!1),X!=null&&(yn(XT,KT,X0,!1),Hu(Xee,r,Fa,cs,Pt,Ve,null));let{left:Qt,top:St,width:Bt,height:an}=Io;Rc=Qt,ds=St,q0=Bt,Ff=an}function X0(X,te,re,ye,Le,Ke,ct){oA=So._x=So._y=!1,z0(X,te,re,ye,Le,Ke,ct,!1,!0);let{left:Qt,top:St,width:Bt,height:an}=Io,fn=Bt>0||an>0,Xn=Rc!=Qt||ds!=St||q0!=Bt||Ff!=an;if(fn&&Xn&&Go(Io),So.setScale&&fn&&Xn){let Qr=Qt,tr=Bt,dr=St,Pn=an;if(se.ori==1&&(Qr=St,tr=an,dr=Qt,Pn=Bt),ri&&iA(W,Os(Qr,W),Os(Qr+tr,W)),lo)for(let vn in G){let Ro=G[vn];vn!=W&&Ro.from==null&&Ro.min!=Jo&&iA(vn,Os(dr+Pn,vn),Os(dr,vn))}Nf()}else Ye.lock&&(Ye._lock=!Ye._lock,QA(te,!0,X!=null));X!=null&&(fe(XT,KT),Hu(XT,r,Lo,Do,Pt,Ve,null))}function Of(X,te,re,ye,Le,Ke,ct){if(Ye._lock)return;bn(X);let Qt=oA;if(oA){let St=!0,Bt=!0,an=10,fn,Xn;se.ori==0?(fn=ri,Xn=lo):(fn=lo,Xn=ri),fn&&Xn&&(St=Lo<=an||Lo>=Pt-an,Bt=Do<=an||Do>=Ve-an),fn&&St&&(Lo=Lo{let Le=Fr.match[2];re=Le(r,te,re),re!=-1&&IA(re,ye,!0,!1)},We&&(yn(Xee,S,a2),yn(qT,S,J0),yn(Vee,S,X=>{bn(X),Sc(!1)}),yn(Kee,S,Of),yn(Zee,S,Fi),BM.add(r),r.syncRect=Sc);const Pu=r.hooks=e.hooks||{};function xi(X,te,re){Ni?di.push([X,te,re]):X in Pu&&Pu[X].forEach(ye=>{ye.call(null,r,te,re)})}(e.plugins||[]).forEach(X=>{for(let te in X.hooks)Pu[te]=(Pu[te]||[]).concat(X.hooks[te])});const Uu=(X,te,re)=>re,Fr=tA({key:null,setSeries:!1,filters:{pub:pte,sub:pte},scales:[W,M[1]?M[1].scale:null],match:[mte,mte,Uu],values:[null,null]},Ye.sync);Fr.match.length==2&&Fr.match.push(Uu),Ye.sync=Fr;const Gu=Fr.key,ja=tne(Gu);function Hu(X,te,re,ye,Le,Ke,ct){Fr.filters.pub(X,te,re,ye,Le,Ke,ct)&&ja.pub(X,te,re,ye,Le,Ke,ct)}ja.sub(r);function l2(X,te,re,ye,Le,Ke,ct){Fr.filters.sub(X,te,re,ye,Le,Ke,ct)&&Ht[X](null,te,re,ye,Le,Ke,ct)}r.pub=l2;function sm(){ja.unsub(r),BM.delete(r),Yn.clear(),tM(Cw,A1,Lu),h.remove(),_e==null||_e.remove(),xi("destroy")}r.destroy=sm;function c2(){xi("init",e,t),On(t||e.data,!1),Be[W]?Y0(W,Be[W]):PA(),Ts=Io.show&&(Io.width>0||Io.height>0),Ti=Xo=!0,mA(e.width,e.height)}return M.forEach(dt),P.forEach(br),n?n instanceof HTMLElement?(n.appendChild(h),c2()):n(r,c2):c2(),r}Kr.assign=tA,Kr.fmtNum=oM,Kr.rangeNum=vw,Kr.rangeLog=yw,Kr.rangeAsinh=nM,Kr.orient=th,Kr.pxRatio=go,Kr.join=F3e,Kr.fmtDate=aM,Kr.tzDate=W3e,Kr.sync=tne;{Kr.addGap=k8e,Kr.clipGaps=Dw;let e=Kr.paths={points:ane};e.linear=cne,e.stepped=R8e,e.bars=T8e,e.spline=N8e}Object.is||Object.defineProperty(Object,"is",{value:(e,t)=>e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t});const z8e=(e,t)=>{const{width:n,height:r,...i}=e,{width:A,height:l,...c}=t;let f="keep";if((r!==l||n!==A)&&(f="update"),Object.keys(i).length!==Object.keys(c).length)return"create";for(const h of Object.keys(i))if(!Object.is(i[h],c[h])){f="create";break}return f},W8e=(e,t)=>e.length!==t.length?!1:e.every((n,r)=>{const i=t[r];if(n.length!==i.length)return!1;if(Array.isArray(n))return n.every((A,l)=>A===i[l])});function Mw(e,t,n,r,i,A){return e>r?(t=i,n=A):tA&&(n=A,t=A-e),[t,n]}function g1(e,t,n,r){var i=this,A=x.useRef(null),l=x.useRef(0),c=x.useRef(0),f=x.useRef(null),h=x.useRef([]),I=x.useRef(),B=x.useRef(),v=x.useRef(e),D=x.useRef(!0);v.current=e;var S=typeof window<"u",R=!t&&t!==0&&S;if(typeof e!="function")throw new TypeError("Expected a function");t=+t||0;var F=!!(n=n||{}).leading,N=!("trailing"in n)||!!n.trailing,M="maxWait"in n,P="debounceOnServer"in n&&!!n.debounceOnServer,G=M?Math.max(+n.maxWait||0,t):null;x.useEffect(function(){return D.current=!0,function(){D.current=!1}},[]);var J=x.useMemo(function(){var W=function(ie){var Ae=h.current,Be=I.current;return h.current=I.current=null,l.current=ie,c.current=c.current||ie,B.current=v.current.apply(Be,Ae)},q=function(ie,Ae){R&&cancelAnimationFrame(f.current),f.current=R?requestAnimationFrame(ie):setTimeout(ie,Ae)},$=function(ie){if(!D.current)return!1;var Ae=ie-A.current;return!A.current||Ae>=t||Ae<0||M&&ie-l.current>=G},oe=function(ie){return f.current=null,N&&h.current?W(ie):(h.current=I.current=null,B.current)},K=function ie(){var Ae=Date.now();if(F&&c.current===l.current&&se(),$(Ae))return oe(Ae);if(D.current){var Be=t-(Ae-A.current),ae=M?Math.min(Be,G-(Ae-l.current)):Be;q(ie,ae)}},se=function(){r&&r({})},Ee=function(){if(S||P){var ie=Date.now(),Ae=$(ie);if(h.current=[].slice.call(arguments),I.current=i,A.current=ie,Ae){if(!f.current&&D.current)return l.current=A.current,q(K,t),F?W(A.current):B.current;if(M)return q(K,t),W(A.current)}return f.current||q(K,t),B.current}};return Ee.cancel=function(){var ie=f.current;ie&&(R?cancelAnimationFrame(f.current):clearTimeout(f.current)),l.current=0,h.current=A.current=I.current=f.current=null,ie&&r&&r({})},Ee.isPending=function(){return!!f.current},Ee.flush=function(){return f.current?oe(Date.now()):B.current},Ee},[F,M,t,G,N,R,S,P,r]);return J}function q8e(e,t){return e===t}Nj=function(e,t,n){var r=n&&n.equalityFn||q8e,i=x.useRef(e),A=x.useState({})[1],l=g1(x.useCallback(function(f){i.current=f,A({})},[A]),t,n,A),c=x.useRef(e);return r(c.current,e)||(l(e),c.current=e),[i.current,l]};function gc(e,t,n){var r=n===void 0?{}:n,i=r.leading,A=r.trailing;return g1(e,t,{maxWait:t,leading:i===void 0||i,trailing:A===void 0||A})}const Ine=$e({}),Nw=$e(null,(e,t,n,r)=>{const{chartId:i,isMatchingChartId:A}=r||{},l=e(Ine);if(i&&l[i])n(l[i],i);else for(const[c,f]of Object.entries(l))A&&!A(c)||n(f,c)}),X8e="_uplot_1swaw_1",V8e={uplot:X8e};function _0({id:e,options:t,data:n,target:r,onDelete:i,onCreate:A,resetScales:l=!0,className:c}){var P,G;const f=x.useRef(null),h=x.useRef(null),I=x.useRef(t),B=x.useRef(r),v=x.useRef(n),D=x.useRef(A),S=x.useRef(i),R=It(Ine);x.useEffect(()=>{D.current=A,S.current=i});const F=x.useCallback(J=>{var W;J&&((W=S.current)==null||W.call(S,J),J.destroy(),f.current=null,R(q=>{const $={...q};return delete $[e],$}))},[e,R]),N=x.useCallback(()=>{var W;const J=new Kr(I.current,v.current,B.current||h.current);f.current=J,R(q=>({...q,[e]:J})),(W=D.current)==null||W.call(D,J)},[e,R]);x.useEffect(()=>(N(),()=>{F(f.current)}),[N,F]),x.useEffect(()=>{if(I.current!==t){const J=z8e(I.current,t);I.current=t,!f.current||J==="create"?(F(f.current),N()):J==="update"&&f.current.setSize({width:t.width,height:t.height})}},[t,N,F]),x.useEffect(()=>{v.current!==n&&(f.current?W8e(v.current,n)||(l?f.current.setData(n,!0):(f.current.setData(n,!1),f.current.redraw())):(v.current=n,N()),v.current=n)},[n,l,N]),x.useEffect(()=>(B.current!==r&&(B.current=r,N()),()=>F(f.current)),[r,N,F]);const M=gc(()=>{requestAnimationFrame(()=>{var J;return(J=f.current)==null?void 0:J.setSize({width:I.current.width,height:I.current.height})})},500,{leading:!0,trailing:!0});return(t.height!==((P=f.current)==null?void 0:P.height)||t.width!==((G=f.current)==null?void 0:G.width))&&M(),r?null:p.jsx("div",{id:e,ref:h,className:An(V8e.uplot,c)})}function Cne(e,t,n,r){if(!n)return 0;const i=Math.ceil((e-t+1)/n);return Math.min(i-1,r)}function vM(e,t){return t==null?!1:e<=t}function Ene(e,t){return t.has(e)}function Bne(e,t){return t.has(e)}function bM(e,t,n){for(let r=t;r>=e;r--)if(n(r))return!0;return!1}function K8e(e,t,n,r,i,A,l){return A?BR:i?ER:bM(e,t,c=>!vM(c,n)&&!Ene(c,r)&&!Bne(c,l))?yR:bM(e,t,c=>!vM(c,n)&&Ene(c,r))?QR:bM(e,t,c=>!vM(c,n)&&Bne(c,l))?bR:vR}const Z8e=Vs(),yne=4,$8e=yne;function eDe(e,t){return{hooks:{drawSeries:[n=>{if(e.current==null||!t.current)return;const r=n.ctx;r.save();const i=n.bbox.top,A=n.bbox.height,l=yne*window.devicePixelRatio,c=$8e*window.devicePixelRatio,f=Math.trunc((n.bbox.width+c)/(l+c)),h=e.current/f,{startSlot:I,repairSlots:B,latestReplaySlot:v,firstTurbineSlot:D,latestTurbineSlot:S,turbineSlots:R}=t.current,F=Cne(S,I,h,f-1),N=Cne(D,I,h,f-1),M=Z8e.get(qQ);M==null||M.style.setProperty("--turbine-start-x",`${QM(N,l,c)/window.devicePixelRatio}px`),M==null||M.style.setProperty("--turbine-head-x",`${QM(F,l,c)/window.devicePixelRatio}px`);for(let P=0;P<=F;P++){const G=P*h,J=I+Math.trunc(G),W=(P+1)*h,q=Math.min(S,I+Math.ceil(W)-1),$=QM(P,l,c),oe=K8e(J,q,v,B,P===N,P===F,R),K=l/2;tDe(r,oe,$,i,l,A,K)}r.restore()}]}}}function QM(e,t,n){return e*(t+n)}function tDe(e,t,n,r,i,A,l){e.fillStyle=t,e.beginPath(),e.arc(n+l,r+l,l,Math.PI,1.5*Math.PI),e.arc(n+i-l,r+l,l,1.5*Math.PI,0),e.arc(n+i-l,r+A-l,l,0,.5*Math.PI),e.arc(n+l,r+A-l,l,.5*Math.PI,Math.PI),e.closePath(),e.fill()}const vne=1e4;function nDe(){const e=x.useRef(),t=Me(rf),n=Me(Xp),r=Me(KI),i=r??(t==null?void 0:t-1),{valuePerSecond:A}=Cm(i,vne),{valuePerSecond:l}=Cm(n,vne);return x.useEffect(()=>{t==null||n==null||e.current!=null||(e.current=bne(400,100,t,r,n))},[r,n,t,e]),cc(()=>{const c=e.current;if(t==null||n==null||e.current==null||A==null||l==null||!c)return;const f=bne(A,l,t,r,n);if(!f||f>=c)return;const h=Math.min(.15*c,c-f);e.current=c-h},500),e}function bne(e,t,n,r,i){const A=r??n-1;if(A===i)return i-n;if(e<=t)return;const l=A-n+1,c=e*(i-A)/(e-t);return l+c}const rDe=[[0],[null]];function oDe(){const e=Me(rf),t=Me(O5),n=Me(XQ),r=Me(VQ),i=Me(Xp),A=Me(KI),l=x.useRef(),c=x.useRef(),f=nDe(),h=x.useMemo(()=>({width:0,height:0,scales:{x:{time:!1}},axes:[{show:!1},{show:!1}],series:[{},{points:{show:!1}}],cursor:{x:!1,y:!1},legend:{show:!1},plugins:[eDe(f,l)]}),[l,f]),I=x.useCallback(D=>{c.current=D},[]),B=x.useCallback(D=>{var S;l.current=D,(S=c.current)==null||S.redraw()},[]),v=gc(B,100,{trailing:!0});if(x.useEffect(()=>{e==null||!n.size||r==null||i==null||v({startSlot:e,repairSlots:t,turbineSlots:n,firstTurbineSlot:r,latestTurbineSlot:i,latestReplaySlot:A})},[r,A,i,t,e,v,n]),!(e==null||!n.size||r==null||i==null))return p.jsx(Bo,{height:"77px",children:p.jsx(hs,{children:({height:D,width:S})=>(h.width=S,h.height=D,p.jsx(_0,{id:"catching-up-slot-bars",options:h,data:rDe,onCreate:I}))})})}const iDe="_card_1ej0q_1",ADe="_secondary-color_1ej0q_11",sDe="_bold_1ej0q_15",aDe="_ellipsis_1ej0q_19",lDe="_labels-row_1ej0q_25",cDe="_dynamic-gap_1ej0q_37",uDe="_left-labels_1ej0q_51",dDe="_right-labels_1ej0q_54",fDe="_replayed_1ej0q_60",gDe="_repaired_1ej0q_67",hDe="_received-by-turbine_1ej0q_74",pDe="_turbine-label_1ej0q_81",mDe="_start_1ej0q_89",IDe="_head_1ej0q_93",CDe="_equation_1ej0q_98",EDe="_footer-row_1ej0q_103",BDe="_left-footer_1ej0q_115",yDe="_footer-title_1ej0q_122",vDe="_footer-value_1ej0q_127",Oo={card:iDe,secondaryColor:ADe,bold:sDe,ellipsis:aDe,labelsRow:lDe,dynamicGap:cDe,leftLabels:uDe,rightLabels:dDe,replayed:fDe,repaired:gDe,receivedByTurbine:hDe,turbineLabel:pDe,start:mDe,head:IDe,equation:CDe,footerRow:EDe,leftFooter:BDe,footerTitle:yDe,footerValue:vDe};function bDe(){const e=Me(rf);if(e)return p.jsxs(Fe,{className:Oo.footerRow,children:[p.jsxs(Fe,{className:Oo.leftFooter,children:[p.jsxs(Se,{className:An(Oo.footerValue,Oo.ellipsis),children:[p.jsx(Se,{className:Oo.secondaryColor,children:"Slot "}),e]}),p.jsx(Se,{className:An(Oo.footerTitle,Oo.ellipsis),children:"Repair"})]}),p.jsx(Se,{className:An(Oo.rightFooter,Oo.footerTitle,Oo.ellipsis),children:"Turbine"})]})}function QDe(){const e=Me(rf),t=Me(VQ),n=Me(Xp);if(e==null||t==null||n==null)return;const r=t-e>=n-t;return p.jsxs(Fe,{className:Oo.labelsRow,children:[p.jsxs(Fe,{className:Oo.leftLabels,children:[r&&p.jsx(Qne,{}),p.jsx(wne,{slot:t})]}),p.jsxs(Fe,{className:Oo.rightLabels,children:[!r&&p.jsx(Qne,{}),p.jsx(wne,{slot:n,isHead:!0})]})]})}function wM({value:e,label:t,className:n}){return p.jsxs(Se,{className:An(n,Oo.ellipsis),children:[p.jsxs(Se,{className:Oo.bold,children:[e," "]}),t]})}function Qne(){const e=Me(rf),t=Me(XQ),n=Me(O5),r=Me(KI);if(!(e==null||!t.size))return p.jsxs(Fe,{justify:"center",flexGrow:"1",minWidth:"0",align:"end",className:Oo.equation,children:[p.jsx(wM,{className:Oo.replayed,value:r?r-e+1:0,label:"Slots Replayed"}),p.jsx("div",{className:Oo.dynamicGap}),p.jsx(Se,{children:" : "}),p.jsx("div",{className:Oo.dynamicGap}),p.jsxs(Fe,{gap:"2px",align:"center",minWidth:"0",children:[p.jsx(Se,{children:"( "}),p.jsx(wM,{className:Oo.repaired,value:n.size,label:"Repaired"}),p.jsx(Se,{children:" + "}),p.jsx(wM,{className:Oo.receivedByTurbine,value:t.size,label:"Received by Turbine"}),p.jsx(Se,{children:" ) "})]})]})}function wne({isHead:e=!1,slot:t}){const n=Me(qQ),[r,{width:i}]=cf();return x.useEffect(()=>{n==null||n.style.setProperty(e?"--turbine-head-label-width":"--turbine-start-label-width",`${i}px`)},[n,e,i]),p.jsxs(Fe,{ref:r,direction:"column",className:An(Oo.turbineLabel,e?Oo.head:Oo.start),children:[p.jsx(Se,{className:Oo.bold,children:e?"Turbine Head":"Turbine Start"}),p.jsx(Se,{children:t})]})}const Fw=1e4,xne=50,wDe={[wa.shred_repair_request]:GR,[wa.shred_received_turbine]:HR,[wa.shred_received_repair]:YR,[wa.shred_replay_start]:JR,[wa.shred_replayed]:zR},_ne=[wa.shred_replayed,wa.shred_replay_start,wa.shred_received_repair,wa.shred_received_turbine,wa.shred_repair_request];function kne(){const e=$e(),t=$e();return{range:$e(n=>n(t)),slotsShreds:$e(n=>n(e)),addShredEvents:$e(null,(n,r,{reference_slot:i,reference_ts:A,slot_delta:l,shred_idx:c,event:f,event_ts_delta:h})=>{let I=n(t);r(e,B=>{const v=B??{referenceTs:Math.round(Number(A)/BS),slots:{}};for(let D=0;D{if(i){r(t,void 0),r(e,void 0);return}r(e,A=>{const l=n(t);if(!A||!l)return;if(l.max-l.min>50)for(let f=l.min;f<=l.max-50;f++)A.slots[f]&&delete A.slots[f];else{const f=new Date().getTime()-A.referenceTs,h=Fw+xne;let I=!1;for(let B=l.max;B>=l.min;B--){const v=A.slots[B];v&&(!I&&v.completionTsDelta!=null&&f-v.completionTsDelta>h&&(I=!0),I&&delete A.slots[B])}}const c=Object.keys(A.slots).map(f=>parseInt(f));return r(t,f=>{if(!(!f||!c.length))return f.min=Math.min(...c),f}),A})})}}const xM=kne(),_M=kne(),xDe=$e(null,(e,t,{reference_slot:n,reference_ts:r,slot_delta:i,shred_idx:A,event:l,event_ts_delta:c})=>{const f=e(VQ);if(f==null)return;const h={reference_slot:n,reference_ts:r,slot_delta:[],shred_idx:[],event:[],event_ts_delta:[]},I={reference_slot:n,reference_ts:r,slot_delta:[],shred_idx:[],event:[],event_ts_delta:[]};for(let B=0;B{const n=e(hw)===xs.Disconnected;t(xM.deleteSlots,n),t(_M.deleteSlots,n)});function kDe(e){return e?xM:_M}function DDe(e,t,n){const r=n??new Array;return r[e]=Math.min(t,r[e]??t),r}function SDe(e,t,n,r){const i=r??{shreds:[]};return t===wa.slot_complete?(i.completionTsDelta=Math.min(n,i.completionTsDelta??n),i):e==null?(console.error("Missing shred ID"),i):(i.minEventTsDelta=Math.min(n,i.minEventTsDelta??n),i.shreds[e]=DDe(t,n,i.shreds[e]),i)}const Ow=Vs(),kM="x";function RDe(e,t,n){return{hooks:{draw:[r=>{const i=kDe(e),A=Ow.get(i.slotsShreds),l=Ow.get(i.range),c=Ow.get(lZ);if(!A||!l)return;const f=Ow.get(pZ);if(n&&f==null)return;const h=new Date().getTime()-xne-A.referenceTs,I=n&&f!=null?Math.max(f,l.min):l.min,B=l.max;r.ctx.save(),r.ctx.rect(r.bbox.left,r.bbox.top,r.bbox.width,r.bbox.height),r.ctx.clip();const v=P=>r.valToPos(P,kM,!0),{maxShreds:D,orderedSlotNumbers:S}=TDe(I,B,A,r.scales[kM],h),R=r.bbox.height,F=sr.clamp(R/D,1,10),N=Math.trunc(R/F),M=D/N;for(const P of S){const G={},J=A.slots[P],W=c.has(P);for(let q=0;q{const A=[];let l=0;for(let c=e;c<=t;c++){const f=n.slots[c];!f||!f.shreds.length||f.minEventTsDelta==null||r.max!=null&&f.minEventTsDelta-i>r.max||r.min!=null&&f.completionTsDelta!=null&&f.completionTsDelta-i=F)continue;const J=f?WR:wDe[N]??"transparent";e[J]??(e[J]=[]),e[J].push(c||f?[G,h,I]:[G,h,F-G]),F=G}}function NDe(e,t,n){for(const r of _ne){const i=FDe(e,t,n,A=>(A==null?void 0:A[r])!=null);if(i!==-1)return i}return e}function FDe(e,t,n,r){for(let i=e;i{const e=[LDe];for(;e[e.length-1]{A.current=h},[]),f=x.useMemo(()=>({width:0,height:0,scales:{x:{time:!1},y:{time:!1,range:[0,1]}},series:[{},{}],cursor:{show:!1,drag:{x:!1,y:!1}},legend:{show:!1},axes:[{incrs:UDe,size:30,ticks:{opacity:.2,stroke:Qo,size:5,width:1/devicePixelRatio},values:(h,I)=>I.map(B=>B===0?"now":`${(B/1e3).toFixed(1)}s`),grid:{stroke:UR,width:1/devicePixelRatio},stroke:_Q},{size:0,values:()=>[],grid:{filter:()=>[0],stroke:_Q,width:1}}],plugins:[RDe(r,n,i)]}),[r,n,i]);return kee(h=>{var I;A&&(l.current==null||h-l.current>=ODe)&&(l.current=h,(I=A.current)==null||I.redraw(!0,!1))}),p.jsx("div",{style:{height:`${t}px`},children:p.jsx(hs,{children:({height:h,width:I})=>(f.width=I,f.height=h,p.jsx(_0,{id:e,options:f,data:jDe,onCreate:c}))})})}const Dne=280;function GDe(){const e=It(qQ);if(Me(fZ))return p.jsxs(Fe,{direction:"column",gap:"20px",children:[p.jsxs(Fe,{ref:e,direction:"column",gap:"5px",children:[p.jsx(QDe,{}),p.jsx(oDe,{}),p.jsx(bDe,{})]}),p.jsxs(zf,{className:Oo.card,children:[p.jsx(Se,{className:Oo.title,children:"Shreds before turbine start"}),p.jsx(DM,{chartId:"catching-up-before-turbine-shreds",chartHeight:Dne,drawOnlyBeforeFirstTurbine:!0,drawOnlyDots:!0})]}),p.jsxs(zf,{className:Oo.card,children:[p.jsx(Se,{className:Oo.title,children:"Shreds from turbine start"}),p.jsx(DM,{chartId:"catching-up-from-turbine-shreds",chartHeight:Dne,drawOnlyDots:!0})]})]})}const HDe={[uA.joining_gossip]:du.gossip,[uA.loading_full_snapshot]:du.fullSnapshot,[uA.loading_incremental_snapshot]:du.incrSnapshot,[uA.catching_up]:du.catchingUp};function YDe(){const e=It(zg),t=Me(Im);return x.useEffect(()=>{e(t!=="running")},[e,t]),p.jsxs(p.Fragment,{children:[t&&p.jsx(JDe,{phase:t}),p.jsx(B6e,{})]})}function JDe({phase:e}){const t=It(XK),n=Me(zg),r=Me(EC),i=e?HDe[e]:"";return p.jsxs(dD,{ref:A=>t(A),maxWidth:dq,className:An(du.container,i,{[du.collapsed]:!n||!r}),p:"4",children:[p.jsx(WDe,{phase:e}),p.jsxs(Bo,{pt:"6",flexGrow:"1",children:[e===uA.joining_gossip&&p.jsx(I6e,{}),(e===uA.loading_full_snapshot||e===uA.loading_incremental_snapshot)&&p.jsx(X6e,{}),e===uA.catching_up&&p.jsx(GDe,{})]})]})}function zDe(){const e=Gee(1e3);return p.jsx(Se,{children:e==null?"--":g_e(e)})}function WDe({phase:e}){const t=QT[e],n=Me(L5),r=x.useMemo(()=>Object.values(QT).reduce((i,{index:A,estimatedPct:l})=>(A{setTimeout(()=>r(!1),3e3)});const[i,A]=lf(()=>({from:Sne}));x.useEffect(()=>{n||(e===xs.Connecting||e===xs.Disconnected?A.start({to:eSe}):A.start({to:Sne}))},[A,n,e]);const l=Rne(e,t);if(l)return p.jsx($s.div,{className:nE.container,style:i,children:p.jsx("div",{className:`${nE.toast} ${l.className}`,children:p.jsx(Se,{className:nE.text,children:l.text})})})}const nSe="_slots-list_1sk8v_1",rSe="_hidden_1sk8v_3",oSe="_no-slots-text_1sk8v_8",SM={slotsList:nSe,hidden:rSe,noSlotsText:oSe};var RM={exports:{}},h1=typeof Reflect=="object"?Reflect:null,Tne=h1&&typeof h1.apply=="function"?h1.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)},jw;h1&&typeof h1.ownKeys=="function"?jw=h1.ownKeys:Object.getOwnPropertySymbols?jw=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:jw=function(e){return Object.getOwnPropertyNames(e)};function iSe(e){console&&console.warn&&console.warn(e)}var Mne=Number.isNaN||function(e){return e!==e};function Po(){Po.init.call(this)}RM.exports=Po,RM.exports.once=lSe,Po.EventEmitter=Po,Po.prototype._events=void 0,Po.prototype._eventsCount=0,Po.prototype._maxListeners=void 0;var Nne=10;function Lw(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(Po,"defaultMaxListeners",{enumerable:!0,get:function(){return Nne},set:function(e){if(typeof e!="number"||e<0||Mne(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");Nne=e}}),Po.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Po.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||Mne(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function Fne(e){return e._maxListeners===void 0?Po.defaultMaxListeners:e._maxListeners}Po.prototype.getMaxListeners=function(){return Fne(this)},Po.prototype.emit=function(e){for(var t=[],n=1;n0&&(A=t[0]),A instanceof Error)throw A;var l=new Error("Unhandled error."+(A?" ("+A.message+")":""));throw l.context=A,l}var c=i[e];if(c===void 0)return!1;if(typeof c=="function")Tne(c,this,t);else for(var f=c.length,h=Une(c,f),n=0;n0&&l.length>i&&!l.warned){l.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+l.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=l.length,iSe(c)}return e}Po.prototype.addListener=function(e,t){return One(this,e,t,!1)},Po.prototype.on=Po.prototype.addListener,Po.prototype.prependListener=function(e,t){return One(this,e,t,!0)};function ASe(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function jne(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=ASe.bind(r);return i.listener=n,r.wrapFn=i,i}Po.prototype.once=function(e,t){return Lw(t),this.on(e,jne(this,e,t)),this},Po.prototype.prependOnceListener=function(e,t){return Lw(t),this.prependListener(e,jne(this,e,t)),this},Po.prototype.removeListener=function(e,t){var n,r,i,A,l;if(Lw(t),r=this._events,r===void 0)return this;if(n=r[e],n===void 0)return this;if(n===t||n.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if(typeof n!="function"){for(i=-1,A=n.length-1;A>=0;A--)if(n[A]===t||n[A].listener===t){l=n[A].listener,i=A;break}if(i<0)return this;i===0?n.shift():sSe(n,i),n.length===1&&(r[e]=n[0]),r.removeListener!==void 0&&this.emit("removeListener",e,l||t)}return this},Po.prototype.off=Po.prototype.removeListener,Po.prototype.removeAllListeners=function(e){var t,n,r;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var i=Object.keys(n),A;for(r=0;r=0;r--)this.removeListener(e,t[r]);return this};function Lne(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?aSe(i):Une(i,i.length)}Po.prototype.listeners=function(e){return Lne(this,e,!0)},Po.prototype.rawListeners=function(e){return Lne(this,e,!1)},Po.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):Pne.call(e,t)},Po.prototype.listenerCount=Pne;function Pne(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}Po.prototype.eventNames=function(){return this._eventsCount>0?jw(this._events):[]};function Une(e,t){for(var n=new Array(t),r=0;r{const r=i=>n.current(i);return t.addListener(TM,r),()=>{t.removeListener(TM,r)}},[t])}const fSe=Hg((e,t,n)=>sr.throttle(()=>{switch(n){case"publish":{e({topic:"slot",key:"query",id:1,params:{slot:t}});break}case"detailed":{e({topic:"slot",key:"query_detailed",id:2,params:{slot:t}});break}case"transactions":{e({topic:"slot",key:"query_transactions",id:3,params:{slot:t}});break}}},5e3,{trailing:!1}),{maxSize:250});function FM(e,t,n){const r=jB(),i=Me(aZ(e)),A=x.useCallback(()=>{!e||i||n||fSe(r,e,t)()},[t,i,e,n,r]);x.useEffect(()=>{const f=setTimeout(()=>A(),250);return()=>{clearTimeout(f)}},[A]);const[l,c]=x.useState(!0);return JC(()=>{setTimeout(()=>c(!1),3e3)}),{hasWaitedForData:!l}}function Il(e){const t=Me(_5(e)),n=!!t,{hasWaitedForData:r}=FM(e,"publish",n);return{publish:t,hasWaitedForData:r}}function k0(e){const t=Me(KK(e)),n=!!(t!=null&&t.waterfall)&&!!(t!=null&&t.tile_timers)&&!!(t!=null&&t.tile_primary_metric)&&!!t.scheduler_counts&&!!t.scheduler_stats&&!!t.limits,{hasWaitedForData:r}=FM(e,"detailed",n);return{response:t,hasWaitedForData:r}}function hc(e){const t=Me(KK(e)),n=!!(t!=null&&t.transactions),{hasWaitedForData:r}=FM(e,"transactions",n);return{response:t,hasWaitedForData:r}}const gSe="_slot-group-container_rqu2r_1",hSe="_slot-group_rqu2r_1",pSe="_left-column_rqu2r_13",mSe="_future_rqu2r_19",ISe="_you_rqu2r_27",CSe="_current_rqu2r_35",ESe="_slot-name_rqu2r_42",BSe="_skipped_rqu2r_46",ySe="_current-slot-row_rqu2r_56",vSe="_past_rqu2r_62",bSe="_processed_rqu2r_73",QSe="_selected_rqu2r_86",wSe="_ellipsis_rqu2r_104",xSe="_progress-bar_rqu2r_110",_Se="_slot-item-content_rqu2r_118",kSe="_placeholder_rqu2r_126",DSe="_slot-statuses_rqu2r_130",SSe="_slot-status_rqu2r_130",RSe="_slot-status-progress_rqu2r_139",TSe="_tall_rqu2r_147",MSe="_short_rqu2r_154",NSe="_scroll-placeholder-item_rqu2r_169",_r={slotGroupContainer:gSe,slotGroup:hSe,leftColumn:pSe,future:mSe,you:ISe,current:CSe,slotName:ESe,skipped:BSe,currentSlotRow:ySe,past:vSe,processed:bSe,selected:QSe,ellipsis:wSe,progressBar:xSe,slotItemContent:_Se,placeholder:kSe,slotStatuses:DSe,slotStatus:SSe,slotStatusProgress:RSe,tall:TSe,short:MSe,scrollPlaceholderItem:NSe};function OM(e){const t=Me(vi);if(!t)return;const n=e-t.start_slot,r=Math.trunc(n/4);return t.staked_pubkeys[t.leader_slots[r]]}function pc(e){var f,h;const t=Me(wg),n=OM(e),r=ST(n??""),i=t===n,A=((f=r==null?void 0:r.info)==null?void 0:f.name)??(i?"You":"Private"),l=(h=r==null?void 0:r.gossip)==null?void 0:h.version,c=l?l[0]==="0"?"Frankendancer":"Agave":void 0;return{pubkey:n,peer:r,isLeader:i,name:A,client:c,version:l}}const FSe="data:image/svg+xml,%3csvg%20width='11'%20height='12'%20viewBox='0%200%2011%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='1'%20width='10'%20height='10'%20rx='5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='1'%20width='10'%20height='10'%20rx='5'%20stroke='%23646464'/%3e%3cpath%20d='M5.18018%207.1123L4.45947%208.39453H3.14014L2.73682%206.97754L3.45752%206.11035L5.18018%207.1123ZM7.31885%204.79102L8.28369%208.39453H5.93213L4.03174%205.07129L5.25342%203.60547L7.31885%204.79102Z'%20fill='%23ABABAB'/%3e%3c/svg%3e",OSe="/assets/firedancer_logo_circle-D9jlxCje.svg",jSe="/assets/frankendancer_logo_circle-D5z79vwQ.svg",LSe="_small-icon_5aexa_1",PSe="_large-icon_5aexa_6",USe={smallIcon:LSe,largeIcon:PSe},jM=x.memo(function({slot:e,size:t}){const{client:n}=pc(e),r=An(USe[`${t}Icon`]);return n?n==="Firedancer"?p.jsx("img",{src:OSe,alt:"Firedancer Logo",className:r}):n==="Frankendancer"?p.jsx("img",{src:jSe,alt:"Frankendancer Logo",className:r}):p.jsx("img",{src:FSe,alt:"Anza Logo",className:r}):p.jsx("div",{className:r})}),GSe=Hg(e=>$e(t=>{var r;const n=es(e);for(let i=0;i{I(D=>{if(!l)return D;if(!D)return l;const S=D-l;return S>10?D-Math.trunc(S/2):S>4?D:S<-4?D-Math.trunc(S/2):D+1})},f);const B=x.useMemo(()=>{if(!(A==null||h==null))return Nr.fromMillis(f*(A-h)).rescale()},[h,A,f]),v=x.useMemo(()=>{if(n==null||A==null||h==null)return;const D=A-n,S=(h-n)/D*100;return S<0||S>100?0:S},[h,A,n]);return e&&c?{progressSinceLastLeader:100,nextSlotText:"Now",nextLeaderSlot:l}:{progressSinceLastLeader:v??0,nextSlotText:Ug(B,t),nextLeaderSlot:A}}function HSe(e){return Me(Yne)?p.jsx("div",{className:_r.placeholder}):p.jsx(YSe,{...e})}const Jne=$e(e=>{const t=e(dl),n=e(v0);if(!e(eA)||t===void 0||n===void 0)return;const r=e(CC);return function(i){return{isCurrentSlotGroup:t<=i&&iMath.ceil(t/46),[t]);if(!(np.jsx(KSe,{},A))})}const KSe=x.memo(function(){return p.jsx(Bo,{height:"46px",className:_r.slotGroupContainer,children:p.jsx("div",{className:An(_r.slotGroup,_r.scrollPlaceholderItem)})})});function Uw({slot:e,iconSize:t=15}){var A;const{peer:n,isLeader:r,name:i}=pc(e);return p.jsxs(Fe,{gap:"4px",minWidth:"0",children:[p.jsx(fu,{url:(A=n==null?void 0:n.info)==null?void 0:A.icon_url,size:t,isYou:r,hideTooltip:!0}),p.jsx(Se,{className:An(_r.slotName,_r.ellipsis),children:i})]})}function rE({firstSlot:e,isCurrentSlot:t=!1,isPastSlot:n=!1}){return p.jsx(Fe,{className:An(_r.slotStatuses,{[_r.tall]:t,[_r.short]:!t&&!n}),direction:"column",justify:"between",children:Array.from({length:vo}).map((r,i)=>{const A=e+(vo-1)-i;return t?p.jsx(ZSe,{slot:A},i):n?p.jsx($Se,{slot:A},i):p.jsx(PM,{},i)})})}function PM({borderColor:e,backgroundColor:t,slotDuration:n}){return p.jsx(Fe,{className:_r.slotStatus,style:{borderColor:e,backgroundColor:t},children:n&&p.jsx("div",{style:{"--slot-duration":`${n}ms`},className:_r.slotStatusProgress})})}function Wne(e){if(!e)return{};if(e.skipped)return{backgroundColor:fC};switch(e.level){case"incomplete":return{};case"completed":return{borderColor:jQ};case"optimistically_confirmed":return{backgroundColor:jQ};case"finalized":case"rooted":return{backgroundColor:c5}}}function ZSe({slot:e}){const t=Me($i),n=Il(e),r=Me(Jg),i=x.useMemo(()=>e===t,[e,t]),A=x.useMemo(()=>i?{borderColor:LQ}:Wne(n.publish),[i,n.publish]);return p.jsx(PM,{borderColor:A.borderColor,backgroundColor:A.backgroundColor,slotDuration:i?r:void 0})}function $Se({slot:e}){const t=Il(e),n=Me(Vr),r=x.useMemo(()=>{var A;const i=Wne(t.publish);return((A=t==null?void 0:t.publish)==null?void 0:A.level)==="rooted"&&(n===void 0||es(e)!==es(n))&&(i.backgroundColor=u5),i},[t.publish,n,e]);return p.jsx(PM,{borderColor:r.borderColor,backgroundColor:r.backgroundColor})}const Gw=0,ff=1,p1=2,qne=4;function Xne(e){return()=>e}function eRe(e){e()}function oE(e,t){return n=>e(t(n))}function Vne(e,t){return()=>e(t)}function tRe(e,t){return n=>e(t,n)}function UM(e){return e!==void 0}function nRe(...e){return()=>{e.map(eRe)}}function m1(){}function Hw(e,t){return t(e),e}function rRe(e,t){return t(e)}function ai(...e){return e}function _o(e,t){return e(ff,t)}function Cr(e,t){e(Gw,t)}function GM(e){e(p1)}function Ui(e){return e(qne)}function Dn(e,t){return _o(e,tRe(t,Gw))}function mc(e,t){const n=e(ff,r=>{n(),t(r)});return n}function Kne(e){let t,n;return r=>i=>{t=i,n&&clearTimeout(n),n=setTimeout(()=>{r(t)},e)}}function Zne(e,t){return e===t}function li(e=Zne){let t;return n=>r=>{e(t,r)||(t=r,n(r))}}function er(e){return t=>n=>{e(n)&&t(n)}}function gn(e){return t=>oE(t,e)}function hu(e){return t=>()=>{t(e)}}function Dt(e,...t){const n=oRe(...t);return(r,i)=>{switch(r){case p1:GM(e);return;case ff:return _o(e,n(i))}}}function pu(e,t){return n=>r=>{n(t=e(t,r))}}function nh(e){return t=>n=>{e>0?e--:t(n)}}function D0(e){let t=null,n;return r=>i=>{t=i,!n&&(n=setTimeout(()=>{n=void 0,r(t)},e))}}function kr(...e){const t=new Array(e.length);let n=0,r=null;const i=Math.pow(2,e.length)-1;return e.forEach((A,l)=>{const c=Math.pow(2,l);_o(A,f=>{const h=n;n=n|c,t[l]=f,h!==i&&n===i&&r&&(r(),r=null)})}),A=>l=>{const c=()=>{A([l].concat(t))};n===i?c():r=c}}function oRe(...e){return t=>e.reduceRight(rRe,t)}function iRe(e){let t,n;const r=()=>t==null?void 0:t();return function(i,A){switch(i){case ff:return A?n===A?void 0:(r(),n=A,t=_o(e,A),t):(r(),m1);case p1:r(),n=null;return}}}function Jt(e){let t=e;const n=Jr();return(r,i)=>{switch(r){case Gw:t=i;break;case ff:{i(t);break}case qne:return t}return n(r,i)}}function ns(e,t){return Hw(Jt(t),n=>Dn(e,n))}function Jr(){const e=[];return(t,n)=>{switch(t){case Gw:e.slice().forEach(r=>{r(n)});return;case p1:e.splice(0,e.length);return;case ff:return e.push(n),()=>{const r=e.indexOf(n);r>-1&&e.splice(r,1)}}}}function Ra(e){return Hw(Jr(),t=>Dn(e,t))}function so(e,t=[],{singleton:n}={singleton:!0}){return{constructor:e,dependencies:t,id:ARe(),singleton:n}}const ARe=()=>Symbol();function sRe(e){const t=new Map,n=({constructor:r,dependencies:i,id:A,singleton:l})=>{if(l&&t.has(A))return t.get(A);const c=r(i.map(f=>n(f)));return l&&t.set(A,c),c};return n(e)}function nA(...e){const t=Jr(),n=new Array(e.length);let r=0;const i=Math.pow(2,e.length)-1;return e.forEach((A,l)=>{const c=Math.pow(2,l);_o(A,f=>{n[l]=f,r=r|c,r===i&&Cr(t,n)})}),function(A,l){switch(A){case p1:{GM(t);return}case ff:return r===i&&l(n),_o(t,l)}}}function Kn(e,t=Zne){return Dt(e,li(t))}function HM(...e){return function(t,n){switch(t){case p1:return;case ff:return nRe(...e.map(r=>_o(r,n)))}}}var ea=(e=>(e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e))(ea||{});const aRe={0:"debug",3:"error",1:"log",2:"warn"},lRe=()=>typeof globalThis>"u"?window:globalThis,gf=so(()=>{const e=Jt(3);return{log:Jt((t,n,r=1)=>{var i;const A=(i=lRe().VIRTUOSO_LOG_LEVEL)!=null?i:Ui(e);r>=A&&console[aRe[r]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",t,n)}),logLevel:e}},[],{singleton:!0});function mu(e,t,n){return YM(e,t,n).callbackRef}function YM(e,t,n){const r=Et.useRef(null);let i=l=>{};const A=Et.useMemo(()=>typeof ResizeObserver<"u"?new ResizeObserver(l=>{const c=()=>{const f=l[0].target;f.offsetParent!==null&&e(f)};n?c():requestAnimationFrame(c)}):null,[e,n]);return i=l=>{l&&t?(A==null||A.observe(l),r.current=l):(r.current&&(A==null||A.unobserve(r.current)),r.current=null)},{callbackRef:i,ref:r}}function $ne(e,t,n,r,i,A,l,c,f){const h=Et.useCallback(I=>{const B=cRe(I.children,t,c?"offsetWidth":"offsetHeight",i);let v=I.parentElement;for(;!v.dataset.virtuosoScroller;)v=v.parentElement;const D=v.lastElementChild.dataset.viewportType==="window";let S;D&&(S=v.ownerDocument.defaultView);const R=l?c?l.scrollLeft:l.scrollTop:D?c?S.scrollX||S.document.documentElement.scrollLeft:S.scrollY||S.document.documentElement.scrollTop:c?v.scrollLeft:v.scrollTop,F=l?c?l.scrollWidth:l.scrollHeight:D?c?S.document.documentElement.scrollWidth:S.document.documentElement.scrollHeight:c?v.scrollWidth:v.scrollHeight,N=l?c?l.offsetWidth:l.offsetHeight:D?c?S.innerWidth:S.innerHeight:c?v.offsetWidth:v.offsetHeight;r({scrollHeight:F,scrollTop:Math.max(R,0),viewportHeight:N}),A==null||A(c?ere("column-gap",getComputedStyle(I).columnGap,i):ere("row-gap",getComputedStyle(I).rowGap,i)),B!==null&&e(B)},[e,t,i,A,l,r,c]);return YM(h,n,f)}function cRe(e,t,n,r){const i=e.length;if(i===0)return null;const A=[];for(let l=0;l{if(!(f!=null&&f.offsetParent))return;const h=f.getBoundingClientRect(),I=h.width;let B,v;if(t){const D=t.getBoundingClientRect(),S=h.top-D.top;v=D.height-Math.max(0,S),B=S+t.scrollTop}else{const D=l.current.ownerDocument.defaultView;v=D.innerHeight-Math.max(0,h.top),B=h.top+D.scrollY}r.current={offsetTop:B,visibleHeight:v,visibleWidth:I},e(r.current)},[e,t]),{callbackRef:A,ref:l}=YM(i,!0,n),c=Et.useCallback(()=>{i(l.current)},[i,l]);return Et.useEffect(()=>{var f;if(t){t.addEventListener("scroll",c);const h=new ResizeObserver(()=>{requestAnimationFrame(c)});return h.observe(t),()=>{t.removeEventListener("scroll",c),h.unobserve(t)}}else{const h=(f=l.current)==null?void 0:f.ownerDocument.defaultView;return h==null||h.addEventListener("scroll",c),h==null||h.addEventListener("resize",c),()=>{h==null||h.removeEventListener("scroll",c),h==null||h.removeEventListener("resize",c)}}},[c,t,l]),A}const ks=so(()=>{const e=Jr(),t=Jr(),n=Jt(0),r=Jr(),i=Jt(0),A=Jr(),l=Jr(),c=Jt(0),f=Jt(0),h=Jt(0),I=Jt(0),B=Jr(),v=Jr(),D=Jt(!1),S=Jt(!1),R=Jt(!1);return Dn(Dt(e,gn(({scrollTop:F})=>F)),t),Dn(Dt(e,gn(({scrollHeight:F})=>F)),l),Dn(t,i),{deviation:n,fixedFooterHeight:h,fixedHeaderHeight:f,footerHeight:I,headerHeight:c,horizontalDirection:S,scrollBy:v,scrollContainerState:e,scrollHeight:l,scrollingInProgress:D,scrollTo:B,scrollTop:t,skipAnimationFrameInResizeObserver:R,smoothScrollTargetReached:r,statefulScrollTop:i,viewportHeight:A}},[],{singleton:!0}),iE={lvl:0};function tre(e,t){const n=e.length;if(n===0)return[];let{index:r,value:i}=t(e[0]);const A=[];for(let l=1;lt&&(c=c.concat(WM(i,t,n))),r>=t&&r<=n&&c.push({k:r,v:l}),r<=n&&(c=c.concat(WM(A,t,n))),c}function Jw(e){const{l:t,lvl:n,r}=e;if(r.lvl>=n-1&&t.lvl>=n-1)return e;if(n>r.lvl+1){if(qM(t))return Are(pA(e,{lvl:n-1}));if(!Wo(t)&&!Wo(t.r))return pA(t.r,{l:pA(t,{r:t.r.l}),lvl:n,r:pA(e,{l:t.r.r,lvl:n-1})});throw new Error("Unexpected empty nodes")}else{if(qM(e))return XM(pA(e,{lvl:n-1}));if(!Wo(r)&&!Wo(r.l)){const i=r.l,A=qM(i)?r.lvl-1:r.lvl;return pA(i,{l:pA(e,{lvl:n-1,r:i.l}),lvl:i.lvl+1,r:XM(pA(r,{l:i.r,lvl:A}))})}else throw new Error("Unexpected empty nodes")}}function pA(e,t){return ore(t.k!==void 0?t.k:e.k,t.v!==void 0?t.v:e.v,t.lvl!==void 0?t.lvl:e.lvl,t.l!==void 0?t.l:e.l,t.r!==void 0?t.r:e.r)}function nre(e){return Wo(e.r)?e.l:Jw(pA(e,{r:nre(e.r)}))}function qM(e){return Wo(e)||e.lvl>e.r.lvl}function rre(e){return Wo(e.r)?[e.k,e.v]:rre(e.r)}function ore(e,t,n,r=iE,i=iE){return{k:e,l:r,lvl:n,r:i,v:t}}function ire(e){return XM(Are(e))}function Are(e){const{l:t}=e;return!Wo(t)&&t.lvl===e.lvl?pA(t,{r:pA(e,{l:t.r})}):e}function XM(e){const{lvl:t,r:n}=e;return!Wo(n)&&!Wo(n.r)&&n.lvl===t&&n.r.lvl===t?pA(n,{l:pA(e,{r:n.l}),lvl:t+1}):e}function uRe(e){return tre(e,({k:t,v:n})=>({index:t,value:n}))}function sre(e,t){return!!(e&&e.startIndex===t.startIndex&&e.endIndex===t.endIndex)}function sE(e,t){return!!(e&&e[0]===t[0]&&e[1]===t[1])}const VM=so(()=>({recalcInProgress:Jt(!1)}),[],{singleton:!0});function are(e,t,n){return e[zw(e,t,n)]}function zw(e,t,n,r=0){let i=e.length-1;for(;r<=i;){const A=Math.floor((r+i)/2),l=e[A],c=n(l,t);if(c===0)return A;if(c===-1){if(i-r<2)return A-1;i=A-1}else{if(i===r)return A;r=A+1}}throw new Error(`Failed binary finding record in array - ${e.join(",")}, searched for ${t}`)}function dRe(e,t,n,r){const i=zw(e,t,r),A=zw(e,n,r,i);return e.slice(i,A+1)}function Cc(e,t){return Math.round(e.getBoundingClientRect()[t])}function Ww(e){return!Wo(e.groupOffsetTree)}function KM({index:e},t){return t===e?0:t=B||A===v)&&(e=zM(e,B)):(h=v!==A,f=!0),I>i&&i>=B&&v!==A&&(e=Ta(e,i+1,v));h&&(e=Ta(e,l,A))}return[e,n]}function hRe(e){return typeof e.groupIndex<"u"}function pRe({offset:e},t){return t===e?0:t0?c+n:c}function lre(e,t){if(!Ww(t))return e;let n=0;for(;t.groupIndices[n]<=e+n;)n++;return e+n}function cre(e,t,n){if(hRe(e))return t.groupIndices[e.groupIndex]+1;{const r=e.index==="LAST"?n:e.index;let i=lre(r,t);return i=Math.max(0,i,Math.min(n,i)),i}}function mRe(e,t,n,r=0){return r>0&&(t=Math.max(t,are(e,r,KM).offset)),tre(dRe(e,t,n,pRe),ERe)}function IRe(e,[t,n,r,i]){t.length>0&&r("received item sizes",t,ea.DEBUG);const A=e.sizeTree;let l=A,c=0;if(n.length>0&&Wo(A)&&t.length===2){const v=t[0].size,D=t[1].size;l=n.reduce((S,R)=>Ta(Ta(S,R,v),R+1,D),l)}else[l,c]=gRe(l,t);if(l===A)return e;const{lastIndex:f,lastOffset:h,lastSize:I,offsetTree:B}=ZM(e.offsetTree,c,l,i);return{groupIndices:n,groupOffsetTree:n.reduce((v,D)=>Ta(v,D,aE(D,B,i)),I1()),lastIndex:f,lastOffset:h,lastSize:I,offsetTree:B,sizeTree:l}}function CRe(e){return rh(e).map(({k:t,v:n},r,i)=>{const A=i[r+1];return{endIndex:A?A.k-1:1/0,size:n,startIndex:t}})}function ure(e,t){let n=0,r=0;for(;ni.start===r&&(i.end===t||i.end===1/0)&&i.value===n}const yRe={offsetHeight:"height",offsetWidth:"width"},Iu=so(([{log:e},{recalcInProgress:t}])=>{const n=Jr(),r=Jr(),i=ns(r,0),A=Jr(),l=Jr(),c=Jt(0),f=Jt([]),h=Jt(void 0),I=Jt(void 0),B=Jt((J,W)=>Cc(J,yRe[W])),v=Jt(void 0),D=Jt(0),S=fRe(),R=ns(Dt(n,kr(f,e,D),pu(IRe,S),li()),S),F=ns(Dt(f,li(),pu((J,W)=>({current:W,prev:J.current}),{current:[],prev:[]}),gn(({prev:J})=>J)),[]);Dn(Dt(f,er(J=>J.length>0),kr(R,D),gn(([J,W,q])=>{const $=J.reduce((oe,K,se)=>Ta(oe,K,aE(K,W.offsetTree,q)||se),I1());return{...W,groupIndices:J,groupOffsetTree:$}})),R),Dn(Dt(r,kr(R),er(([J,{lastIndex:W}])=>J[{endIndex:W,size:q,startIndex:J}])),n),Dn(h,I);const N=ns(Dt(h,gn(J=>J===void 0)),!0);Dn(Dt(I,er(J=>J!==void 0&&Wo(Ui(R).sizeTree)),gn(J=>[{endIndex:0,size:J,startIndex:0}])),n);const M=Ra(Dt(n,kr(R),pu(({sizes:J},[W,q])=>({changed:q!==J,sizes:q}),{changed:!1,sizes:S}),gn(J=>J.changed)));_o(Dt(c,pu((J,W)=>({diff:J.prev-W,prev:W}),{diff:0,prev:0}),gn(J=>J.diff)),J=>{const{groupIndices:W}=Ui(R);if(J>0)Cr(t,!0),Cr(A,J+ure(J,W));else if(J<0){const q=Ui(F);q.length>0&&(J-=ure(-J,q)),Cr(l,J)}}),_o(Dt(c,kr(e)),([J,W])=>{J<0&&W("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value",{firstItemIndex:c},ea.ERROR)});const P=Ra(A);Dn(Dt(A,kr(R),gn(([J,W])=>{const q=W.groupIndices.length>0,$=[],oe=W.lastSize;if(q){const K=AE(W.sizeTree,0);let se=0,Ee=0;for(;se{let Ce=Ae.ranges;return Ae.prevSize!==0&&(Ce=[...Ae.ranges,{endIndex:Be+J-1,size:Ae.prevSize,startIndex:Ae.prevIndex}]),{prevIndex:Be+J,prevSize:ae,ranges:Ce}},{prevIndex:J,prevSize:0,ranges:$}).ranges}return rh(W.sizeTree).reduce((K,{k:se,v:Ee})=>({prevIndex:se+J,prevSize:Ee,ranges:[...K.ranges,{endIndex:se+J-1,size:K.prevSize,startIndex:K.prevIndex}]}),{prevIndex:0,prevSize:oe,ranges:[]}).ranges})),n);const G=Ra(Dt(l,kr(R,D),gn(([J,{offsetTree:W},q])=>{const $=-J;return aE($,W,q)})));return Dn(Dt(l,kr(R,D),gn(([J,W,q])=>{if(W.groupIndices.length>0){if(Wo(W.sizeTree))return W;let $=I1();const oe=Ui(F);let K=0,se=0,Ee=0;for(;K<-J;){Ee=oe[se];const ie=oe[se+1]-Ee-1;se++,K+=ie+1}if($=rh(W.sizeTree).reduce((ie,{k:Ae,v:Be})=>Ta(ie,Math.max(0,Ae+J),Be),$),K!==-J){const ie=AE(W.sizeTree,Ee);$=Ta($,0,ie);const Ae=Ic(W.sizeTree,-J+1)[1];$=Ta($,1,Ae)}return{...W,sizeTree:$,...ZM(W.offsetTree,0,$,q)}}else{const $=rh(W.sizeTree).reduce((oe,{k:K,v:se})=>Ta(oe,Math.max(0,K+J),se),I1());return{...W,sizeTree:$,...ZM(W.offsetTree,0,$,q)}}})),R),{beforeUnshiftWith:P,data:v,defaultItemSize:I,firstItemIndex:c,fixedItemSize:h,gap:D,groupIndices:f,itemSize:B,listRefresh:M,shiftWith:l,shiftWithOffset:G,sizeRanges:n,sizes:R,statefulTotalCount:i,totalCount:r,trackItemSizes:N,unshiftWith:A}},ai(gf,VM),{singleton:!0});function vRe(e){return e.reduce((t,n)=>(t.groupIndices.push(t.totalCount),t.totalCount+=n+1,t),{groupIndices:[],totalCount:0})}const dre=so(([{groupIndices:e,sizes:t,totalCount:n},{headerHeight:r,scrollTop:i}])=>{const A=Jr(),l=Jr(),c=Ra(Dt(A,gn(vRe)));return Dn(Dt(c,gn(f=>f.totalCount)),n),Dn(Dt(c,gn(f=>f.groupIndices)),e),Dn(Dt(nA(i,t,r),er(([f,h])=>Ww(h)),gn(([f,h,I])=>Ic(h.groupOffsetTree,Math.max(f-I,0),"v")[0]),li(),gn(f=>[f])),l),{groupCounts:A,topItemsIndexes:l}},ai(Iu,ks)),hf=so(([{log:e}])=>{const t=Jt(!1),n=Ra(Dt(t,er(r=>r),li()));return _o(t,r=>{r&&Ui(e)("props updated",{},ea.DEBUG)}),{didMount:n,propsReady:t}},ai(gf),{singleton:!0}),bRe=typeof document<"u"&&"scrollBehavior"in document.documentElement.style;function fre(e){const t=typeof e=="number"?{index:e}:e;return t.align||(t.align="start"),(!t.behavior||!bRe)&&(t.behavior="auto"),t.offset||(t.offset=0),t}const lE=so(([{gap:e,listRefresh:t,sizes:n,totalCount:r},{fixedFooterHeight:i,fixedHeaderHeight:A,footerHeight:l,headerHeight:c,scrollingInProgress:f,scrollTo:h,smoothScrollTargetReached:I,viewportHeight:B},{log:v}])=>{const D=Jr(),S=Jr(),R=Jt(0);let F=null,N=null,M=null;function P(){F&&(F(),F=null),M&&(M(),M=null),N&&(clearTimeout(N),N=null),Cr(f,!1)}return Dn(Dt(D,kr(n,B,r,R,c,l,v),kr(e,A,i),gn(([[G,J,W,q,$,oe,K,se],Ee,ie,Ae])=>{const Be=fre(G),{align:ae,behavior:Ce,offset:de}=Be,ge=q-1,be=cre(Be,J,ge);let Te=aE(be,J.offsetTree,Ee)+oe;ae==="end"?(Te+=ie+Ic(J.sizeTree,be)[1]-W+Ae,be===ge&&(Te+=K)):ae==="center"?Te+=(ie+Ic(J.sizeTree,be)[1]-W+Ae)/2:Te-=$,de&&(Te+=de);const me=Ye=>{P(),Ye?(se("retrying to scroll to",{location:G},ea.DEBUG),Cr(D,G)):(Cr(S,!0),se("list did not change, scroll successful",{},ea.DEBUG))};if(P(),Ce==="smooth"){let Ye=!1;M=_o(t,rt=>{Ye=Ye||rt}),F=mc(I,()=>{me(Ye)})}else F=mc(Dt(t,QRe(150)),me);return N=setTimeout(()=>{P()},1200),Cr(f,!0),se("scrolling from index to",{behavior:Ce,index:be,top:Te},ea.DEBUG),{behavior:Ce,top:Te}})),h),{scrollTargetReached:S,scrollToIndex:D,topListHeight:R}},ai(Iu,ks,gf),{singleton:!0});function QRe(e){return t=>{const n=setTimeout(()=>{t(!1)},e);return r=>{r&&(t(!0),clearTimeout(n))}}}function $M(e,t){e==0?t():requestAnimationFrame(()=>{$M(e-1,t)})}function eN(e,t){const n=t-1;return typeof e=="number"?e:e.index==="LAST"?n:e.index}const cE=so(([{defaultItemSize:e,listRefresh:t,sizes:n},{scrollTop:r},{scrollTargetReached:i,scrollToIndex:A},{didMount:l}])=>{const c=Jt(!0),f=Jt(0),h=Jt(!0);return Dn(Dt(l,kr(f),er(([I,B])=>!!B),hu(!1)),c),Dn(Dt(l,kr(f),er(([I,B])=>!!B),hu(!1)),h),_o(Dt(nA(t,l),kr(c,n,e,h),er(([[,I],B,{sizeTree:v},D,S])=>I&&(!Wo(v)||UM(D))&&!B&&!S),kr(f)),([,I])=>{mc(i,()=>{Cr(h,!0)}),$M(4,()=>{mc(r,()=>{Cr(c,!0)}),Cr(A,I)})}),{initialItemFinalLocationReached:h,initialTopMostItemIndex:f,scrolledToInitialItem:c}},ai(Iu,ks,lE,hf),{singleton:!0});function gre(e,t){return Math.abs(e-t)<1.01}const uE="up",dE="down",wRe="none",xRe={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollHeight:0,scrollTop:0,viewportHeight:0}},_Re=0,fE=so(([{footerHeight:e,headerHeight:t,scrollBy:n,scrollContainerState:r,scrollTop:i,viewportHeight:A}])=>{const l=Jt(!1),c=Jt(!0),f=Jr(),h=Jr(),I=Jt(4),B=Jt(_Re),v=ns(Dt(HM(Dt(Kn(i),nh(1),hu(!0)),Dt(Kn(i),nh(1),hu(!1),Kne(100))),li()),!1),D=ns(Dt(HM(Dt(n,hu(!0)),Dt(n,hu(!1),Kne(200))),li()),!1);Dn(Dt(nA(Kn(i),Kn(B)),gn(([M,P])=>M<=P),li()),c),Dn(Dt(c,D0(50)),h);const S=Ra(Dt(nA(r,Kn(A),Kn(t),Kn(e),Kn(I)),pu((M,[{scrollHeight:P,scrollTop:G},J,W,q,$])=>{const oe=G+J-P>-$,K={scrollHeight:P,scrollTop:G,viewportHeight:J};if(oe){let Ee,ie;return G>M.state.scrollTop?(Ee="SCROLLED_DOWN",ie=M.state.scrollTop-G):(Ee="SIZE_DECREASED",ie=M.state.scrollTop-G||M.scrollTopDelta),{atBottom:!0,atBottomBecause:Ee,scrollTopDelta:ie,state:K}}let se;return K.scrollHeight>M.state.scrollHeight?se="SIZE_INCREASED":JM&&M.atBottom===P.atBottom))),R=ns(Dt(r,pu((M,{scrollHeight:P,scrollTop:G,viewportHeight:J})=>{if(gre(M.scrollHeight,P))return{changed:!1,jump:0,scrollHeight:P,scrollTop:G};{const W=P-(G+J)<1;return M.scrollTop!==G&&W?{changed:!0,jump:M.scrollTop-G,scrollHeight:P,scrollTop:G}:{changed:!0,jump:0,scrollHeight:P,scrollTop:G}}},{changed:!1,jump:0,scrollHeight:0,scrollTop:0}),er(M=>M.changed),gn(M=>M.jump)),0);Dn(Dt(S,gn(M=>M.atBottom)),l),Dn(Dt(l,D0(50)),f);const F=Jt(dE);Dn(Dt(r,gn(({scrollTop:M})=>M),li(),pu((M,P)=>Ui(D)?{direction:M.direction,prevScrollTop:P}:{direction:PM.direction)),F),Dn(Dt(r,D0(50),hu(wRe)),F);const N=Jt(0);return Dn(Dt(v,er(M=>!M),hu(0)),N),Dn(Dt(i,D0(100),kr(v),er(([M,P])=>!!P),pu(([M,P],[G])=>[P,G],[0,0]),gn(([M,P])=>P-M)),N),{atBottomState:S,atBottomStateChange:f,atBottomThreshold:I,atTopStateChange:h,atTopThreshold:B,isAtBottom:l,isAtTop:c,isScrolling:v,lastJumpDueToItemResize:R,scrollDirection:F,scrollVelocity:N}},ai(ks)),qw="top",Xw="bottom",hre="none";function pre(e,t,n){return typeof e=="number"?n===uE&&t===qw||n===dE&&t===Xw?e:0:n===uE?t===qw?e.main:e.reverse:t===Xw?e.main:e.reverse}function mre(e,t){var n;return typeof e=="number"?e:(n=e[t])!=null?n:0}const tN=so(([{deviation:e,fixedHeaderHeight:t,headerHeight:n,scrollTop:r,viewportHeight:i}])=>{const A=Jr(),l=Jt(0),c=Jt(0),f=Jt(0),h=ns(Dt(nA(Kn(r),Kn(i),Kn(n),Kn(A,sE),Kn(f),Kn(l),Kn(t),Kn(e),Kn(c)),gn(([I,B,v,[D,S],R,F,N,M,P])=>{const G=I-M,J=F+N,W=Math.max(v-G,0);let q=hre;const $=mre(P,qw),oe=mre(P,Xw);return D-=M,D+=v+N,S+=v+N,S-=M,D>I+J-$&&(q=uE),SI!=null),li(sE)),[0,0]);return{increaseViewportBy:c,listBoundary:A,overscan:f,topListHeight:l,visibleRange:h}},ai(ks),{singleton:!0});function kRe(e,t,n){if(Ww(t)){const r=lre(e,t);return[{index:Ic(t.groupOffsetTree,r)[0],offset:0,size:0},{data:n==null?void 0:n[0],index:r,offset:0,size:0}]}return[{data:n==null?void 0:n[0],index:e,offset:0,size:0}]}const nN={bottom:0,firstItemIndex:0,items:[],offsetBottom:0,offsetTop:0,top:0,topItems:[],topListHeight:0,totalCount:0};function Vw(e,t,n,r,i,A){const{lastIndex:l,lastOffset:c,lastSize:f}=i;let h=0,I=0;if(e.length>0){h=e[0].offset;const R=e[e.length-1];I=R.offset+R.size}const B=n-l,v=c+B*f+(B-1)*r,D=h,S=v-I;return{bottom:I,firstItemIndex:A,items:Cre(e,i,A),offsetBottom:S,offsetTop:h,top:D,topItems:Cre(t,i,A),topListHeight:t.reduce((R,F)=>F.size+R,0),totalCount:n}}function Ire(e,t,n,r,i,A){let l=0;if(n.groupIndices.length>0)for(const I of n.groupIndices){if(I-l>=e)break;l++}const c=e+l,f=eN(t,c),h=Array.from({length:c}).map((I,B)=>({data:A[B+f],index:B+f,offset:0,size:0}));return Vw(h,[],c,i,n,r)}function Cre(e,t,n){if(e.length===0)return[];if(!Ww(t))return e.map(h=>({...h,index:h.index+n,originalIndex:h.index}));const r=e[0].index,i=e[e.length-1].index,A=[],l=Yw(t.groupOffsetTree,r,i);let c,f=0;for(const h of e){(!c||c.end{const R=Jt([]),F=Jt(0),N=Jr();Dn(A.topItemsIndexes,R);const M=ns(Dt(nA(D,S,Kn(f,sE),Kn(i),Kn(r),Kn(h),I,Kn(R),Kn(t),Kn(n),e),er(([W,q,,$,,,,,,,oe])=>{const K=oe&&oe.length!==$;return W&&!q&&!K}),gn(([,,[W,q],$,oe,K,se,Ee,ie,Ae,Be])=>{const ae=oe,{offsetTree:Ce,sizeTree:de}=ae,ge=Ui(F);if($===0)return{...nN,totalCount:$};if(W===0&&q===0)return ge===0?{...nN,totalCount:$}:Ire(ge,K,oe,ie,Ae,Be||[]);if(Wo(de))return ge>0?null:Vw(kRe(eN(K,$),ae,Be),[],$,Ae,ae,ie);const be=[];if(Ee.length>0){const We=Ee[0],De=Ee[Ee.length-1];let _e=0;for(const xe of Yw(de,We,De)){const ve=xe.value,Ue=Math.max(xe.start,We),At=Math.min(xe.end,De);for(let He=Ue;He<=At;He++)be.push({data:Be==null?void 0:Be[He],index:He,offset:_e,size:ve}),_e+=ve}}if(!se)return Vw([],be,$,Ae,ae,ie);const Te=Ee.length>0?Ee[Ee.length-1]+1:0,me=mRe(Ce,W,q,Te);if(me.length===0)return null;const Ye=$-1,rt=Hw([],We=>{for(const De of me){const _e=De.value;let xe=_e.offset,ve=De.start;const Ue=_e.size;if(_e.offset=q);He++)We.push({data:Be==null?void 0:Be[He],index:He,offset:xe,size:Ue}),xe+=Ue+Ae}});return Vw(rt,be,$,Ae,ae,ie)}),er(W=>W!==null),li()),nN);Dn(Dt(e,er(UM),gn(W=>W==null?void 0:W.length)),i),Dn(Dt(M,gn(W=>W.topListHeight)),B),Dn(B,c),Dn(Dt(M,gn(W=>[W.top,W.bottom])),l),Dn(Dt(M,gn(W=>W.items)),N);const P=Ra(Dt(M,er(({items:W})=>W.length>0),kr(i,e),er(([{items:W},q])=>W[W.length-1].originalIndex===q-1),gn(([,W,q])=>[W-1,q]),li(sE),gn(([W])=>W))),G=Ra(Dt(M,D0(200),er(({items:W,topItems:q})=>W.length>0&&W[0].originalIndex===q.length),gn(({items:W})=>W[0].index),li())),J=Ra(Dt(M,er(({items:W})=>W.length>0),gn(({items:W})=>{let q=0,$=W.length-1;for(;W[q].type==="group"&&q<$;)q++;for(;W[$].type==="group"&&$>q;)$--;return{endIndex:W[$].index,startIndex:W[q].index}}),li(sre)));return{endReached:P,initialItemCount:F,itemsRendered:N,listState:M,rangeChanged:J,startReached:G,topItemsIndexes:R,...v}},ai(Iu,dre,tN,cE,lE,fE,hf,VM),{singleton:!0}),Ere=so(([{fixedFooterHeight:e,fixedHeaderHeight:t,footerHeight:n,headerHeight:r},{listState:i}])=>{const A=Jr(),l=ns(Dt(nA(n,e,r,t,i),gn(([c,f,h,I,B])=>c+f+h+I+B.offsetBottom+B.bottom)),0);return Dn(Kn(l),A),{totalListHeight:l,totalListHeightChanged:A}},ai(ks,oh),{singleton:!0}),DRe=so(([{viewportHeight:e},{totalListHeight:t}])=>{const n=Jt(!1),r=ns(Dt(nA(n,e,t),er(([i])=>i),gn(([,i,A])=>Math.max(0,i-A)),D0(0),li()),0);return{alignToBottom:n,paddingTopAddition:r}},ai(ks,Ere),{singleton:!0}),Bre=so(()=>({context:Jt(null)})),SRe=({itemBottom:e,itemTop:t,locationParams:{align:n,behavior:r,...i},viewportBottom:A,viewportTop:l})=>tA?{...i,align:n??"end",behavior:r}:null,yre=so(([{gap:e,sizes:t,totalCount:n},{fixedFooterHeight:r,fixedHeaderHeight:i,headerHeight:A,scrollingInProgress:l,scrollTop:c,viewportHeight:f},{scrollToIndex:h}])=>{const I=Jr();return Dn(Dt(I,kr(t,f,n,A,i,r,c),kr(e),gn(([[B,v,D,S,R,F,N,M],P])=>{const{align:G,behavior:J,calculateViewLocation:W=SRe,done:q,...$}=B,oe=cre(B,v,S-1),K=aE(oe,v.offsetTree,P)+R+F,se=K+Ic(v.sizeTree,oe)[1],Ee=M+F,ie=M+D-N,Ae=W({itemBottom:se,itemTop:K,locationParams:{align:G,behavior:J,...$},viewportBottom:ie,viewportTop:Ee});return Ae?q&&mc(Dt(l,er(Be=>!Be),nh(Ui(l)?1:2)),q):q&&q(),Ae}),er(B=>B!==null)),h),{scrollIntoView:I}},ai(Iu,ks,lE,oh,gf),{singleton:!0});function vre(e){return e?e==="smooth"?"smooth":"auto":!1}const RRe=(e,t)=>typeof e=="function"?vre(e(t)):t&&vre(e),TRe=so(([{listRefresh:e,totalCount:t,fixedItemSize:n,data:r},{atBottomState:i,isAtBottom:A},{scrollToIndex:l},{scrolledToInitialItem:c},{didMount:f,propsReady:h},{log:I},{scrollingInProgress:B},{context:v},{scrollIntoView:D}])=>{const S=Jt(!1),R=Jr();let F=null;function N(J){Cr(l,{align:"end",behavior:J,index:"LAST"})}_o(Dt(nA(Dt(Kn(t),nh(1)),f),kr(Kn(S),A,c,B),gn(([[J,W],q,$,oe,K])=>{let se=W&&oe,Ee="auto";return se&&(Ee=RRe(q,$||K),se=se&&!!Ee),{followOutputBehavior:Ee,shouldFollow:se,totalCount:J}}),er(({shouldFollow:J})=>J)),({followOutputBehavior:J,totalCount:W})=>{F&&(F(),F=null),Ui(n)?requestAnimationFrame(()=>{Ui(I)("following output to ",{totalCount:W},ea.DEBUG),N(J)}):F=mc(e,()=>{Ui(I)("following output to ",{totalCount:W},ea.DEBUG),N(J),F=null})});function M(J){const W=mc(i,q=>{J&&!q.atBottom&&q.notAtBottomBecause==="SIZE_INCREASED"&&!F&&(Ui(I)("scrolling to bottom due to increased size",{},ea.DEBUG),N("auto"))});setTimeout(W,100)}_o(Dt(nA(Kn(S),t,h),er(([J,,W])=>J&&W),pu(({value:J},[,W])=>({refreshed:J===W,value:W}),{refreshed:!1,value:0}),er(({refreshed:J})=>J),kr(S,t)),([,J])=>{Ui(c)&&M(J!==!1)}),_o(R,()=>{M(Ui(S)!==!1)}),_o(nA(Kn(S),i),([J,W])=>{J&&!W.atBottom&&W.notAtBottomBecause==="VIEWPORT_HEIGHT_DECREASING"&&N("auto")});const P=Jt(null),G=Jr();return Dn(HM(Dt(Kn(r),gn(J=>{var W;return(W=J==null?void 0:J.length)!=null?W:0})),Dt(Kn(t))),G),_o(Dt(nA(Dt(G,nh(1)),f),kr(Kn(P),c,B,v),gn(([[J,W],q,$,oe,K])=>W&&$&&(q==null?void 0:q({context:K,totalCount:J,scrollingInProgress:oe}))),er(J=>!!J),D0(0)),J=>{F&&(F(),F=null),Ui(n)?requestAnimationFrame(()=>{Ui(I)("scrolling into view",{}),Cr(D,J)}):F=mc(e,()=>{Ui(I)("scrolling into view",{}),Cr(D,J),F=null})}),{autoscrollToBottom:R,followOutput:S,scrollIntoViewOnChange:P}},ai(Iu,fE,lE,cE,hf,gf,ks,Bre,yre)),MRe=so(([{data:e,firstItemIndex:t,gap:n,sizes:r},{initialTopMostItemIndex:i},{initialItemCount:A,listState:l},{didMount:c}])=>(Dn(Dt(c,kr(A),er(([,f])=>f!==0),kr(i,r,t,n,e),gn(([[,f],h,I,B,v,D=[]])=>Ire(f,h,I,B,v,D))),l),{}),ai(Iu,cE,oh,hf),{singleton:!0}),NRe=so(([{didMount:e},{scrollTo:t},{listState:n}])=>{const r=Jt(0);return _o(Dt(e,kr(r),er(([,i])=>i!==0),gn(([,i])=>({top:i}))),i=>{mc(Dt(n,nh(1),er(A=>A.items.length>1)),()=>{requestAnimationFrame(()=>{Cr(t,i)})})}),{initialScrollTop:r}},ai(hf,ks,oh),{singleton:!0}),bre=so(([{scrollVelocity:e}])=>{const t=Jt(!1),n=Jr(),r=Jt(!1);return Dn(Dt(e,kr(r,t,n),er(([i,A])=>!!A),gn(([i,A,l,c])=>{const{enter:f,exit:h}=A;if(l){if(h(i,c))return!1}else if(f(i,c))return!0;return l}),li()),t),_o(Dt(nA(t,e,n),kr(r)),([[i,A,l],c])=>{i&&c&&c.change&&c.change(A,l)}),{isSeeking:t,scrollSeekConfiguration:r,scrollSeekRangeChanged:n,scrollVelocity:e}},ai(fE),{singleton:!0}),rN=so(([{scrollContainerState:e,scrollTo:t}])=>{const n=Jr(),r=Jr(),i=Jr(),A=Jt(!1),l=Jt(void 0);return Dn(Dt(nA(n,r),gn(([{scrollHeight:c,scrollTop:f,viewportHeight:h},{offsetTop:I}])=>({scrollHeight:c,scrollTop:Math.max(0,f-I),viewportHeight:h}))),e),Dn(Dt(t,kr(r),gn(([c,{offsetTop:f}])=>({...c,top:c.top+f}))),i),{customScrollParent:l,useWindowScroll:A,windowScrollContainerState:n,windowScrollTo:i,windowViewportRect:r}},ai(ks)),FRe=so(([{sizeRanges:e,sizes:t},{headerHeight:n,scrollTop:r},{initialTopMostItemIndex:i},{didMount:A},{useWindowScroll:l,windowScrollContainerState:c,windowViewportRect:f}])=>{const h=Jr(),I=Jt(void 0),B=Jt(null),v=Jt(null);return Dn(c,B),Dn(f,v),_o(Dt(h,kr(t,r,l,B,v,n)),([D,S,R,F,N,M,P])=>{const G=CRe(S.sizeTree);F&&N!==null&&M!==null&&(R=N.scrollTop-M.offsetTop),R-=P,D({ranges:G,scrollTop:R})}),Dn(Dt(I,er(UM),gn(ORe)),i),Dn(Dt(A,kr(I),er(([,D])=>D!==void 0),li(),gn(([,D])=>D.ranges)),e),{getState:h,restoreStateFrom:I}},ai(Iu,ks,cE,hf,rN));function ORe(e){return{align:"start",index:0,offset:e.scrollTop}}const jRe=so(([{topItemsIndexes:e}])=>{const t=Jt(0);return Dn(Dt(t,er(n=>n>=0),gn(n=>Array.from({length:n}).map((r,i)=>i))),e),{topItemCount:t}},ai(oh));function Qre(e){let t=!1,n;return()=>(t||(t=!0,n=e()),n)}const LRe=Qre(()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent)),PRe=so(([{deviation:e,scrollBy:t,scrollingInProgress:n,scrollTop:r},{isAtBottom:i,isScrolling:A,lastJumpDueToItemResize:l,scrollDirection:c},{listState:f},{beforeUnshiftWith:h,gap:I,shiftWithOffset:B,sizes:v},{log:D},{recalcInProgress:S}])=>{const R=Ra(Dt(f,kr(l),pu(([,N,M,P],[{bottom:G,items:J,offsetBottom:W,totalCount:q},$])=>{const oe=G+W;let K=0;return M===q&&N.length>0&&J.length>0&&(J[0].originalIndex===0&&N[0].originalIndex===0||(K=oe-P,K!==0&&(K+=$))),[K,J,q,oe]},[0,[],0,0]),er(([N])=>N!==0),kr(r,c,n,i,D,S),er(([,N,M,P,,,G])=>!G&&!P&&N!==0&&M===uE),gn(([[N],,,,,M])=>(M("Upward scrolling compensation",{amount:N},ea.DEBUG),N))));function F(N){N>0?(Cr(t,{behavior:"auto",top:-N}),Cr(e,0)):(Cr(e,0),Cr(t,{behavior:"auto",top:-N}))}return _o(Dt(R,kr(e,A)),([N,M,P])=>{P&&LRe()?Cr(e,M-N):F(-N)}),_o(Dt(nA(ns(A,!1),e,S),er(([N,M,P])=>!N&&!P&&M!==0),gn(([N,M])=>M),D0(1)),F),Dn(Dt(B,gn(N=>({top:-N}))),t),_o(Dt(h,kr(v,I),gn(([N,{groupIndices:M,lastSize:P,sizeTree:G},J])=>{function W(q){return q*(P+J)}if(M.length===0)return W(N);{let q=0;const $=AE(G,0);let oe=0,K=0;for(;oeN&&(q-=$,se=N-oe+1),oe+=se,q+=W(se),K++}return q}})),N=>{Cr(e,N),requestAnimationFrame(()=>{Cr(t,{top:N}),requestAnimationFrame(()=>{Cr(e,0),Cr(S,!1)})})}),{deviation:e}},ai(ks,fE,oh,Iu,gf,VM)),URe=so(([e,t,n,r,i,A,l,c,f,h,I])=>({...e,...t,...n,...r,...i,...A,...l,...c,...f,...h,...I}),ai(tN,MRe,hf,bre,Ere,NRe,DRe,rN,yre,gf,Bre)),wre=so(([{data:e,defaultItemSize:t,firstItemIndex:n,fixedItemSize:r,gap:i,groupIndices:A,itemSize:l,sizeRanges:c,sizes:f,statefulTotalCount:h,totalCount:I,trackItemSizes:B},{initialItemFinalLocationReached:v,initialTopMostItemIndex:D,scrolledToInitialItem:S},R,F,N,{listState:M,topItemsIndexes:P,...G},{scrollToIndex:J},W,{topItemCount:q},{groupCounts:$},oe])=>(Dn(G.rangeChanged,oe.scrollSeekRangeChanged),Dn(Dt(oe.windowViewportRect,gn(K=>K.visibleHeight)),R.viewportHeight),{data:e,defaultItemHeight:t,firstItemIndex:n,fixedItemHeight:r,gap:i,groupCounts:$,initialItemFinalLocationReached:v,initialTopMostItemIndex:D,scrolledToInitialItem:S,sizeRanges:c,topItemCount:q,topItemsIndexes:P,totalCount:I,...N,groupIndices:A,itemSize:l,listState:M,scrollToIndex:J,statefulTotalCount:h,trackItemSizes:B,...G,...oe,...R,sizes:f,...F}),ai(Iu,cE,ks,FRe,TRe,oh,lE,PRe,jRe,dre,URe));function GRe(e,t){const n={},r={};let i=0;const A=e.length;for(;i(N[M]=P=>{const G=F[t.methods[M]];Cr(G,P)},N),{})}function I(F){return l.reduce((N,M)=>(N[M]=iRe(F[t.events[M]]),N),{})}const B=Et.forwardRef((F,N)=>{const{children:M,...P}=F,[G]=Et.useState(()=>Hw(sRe(e),q=>{f(q,P)})),[J]=Et.useState(Vne(I,G));Kw(()=>{for(const q of l)q in P&&_o(J[q],P[q]);return()=>{Object.values(J).map(GM)}},[P,J,G]),Kw(()=>{f(G,P)}),Et.useImperativeHandle(N,Xne(h(G)));const W=n;return p.jsx(c.Provider,{value:G,children:n?p.jsx(W,{...GRe([...r,...i,...l],P),children:M}):M})}),v=F=>{const N=Et.useContext(c);return Et.useCallback(M=>{Cr(N[F],M)},[N,F])},D=F=>{const N=Et.useContext(c)[F],M=Et.useCallback(P=>_o(N,P),[N]);return Et.useSyncExternalStore(M,()=>Ui(N),()=>Ui(N))},S=F=>{const N=Et.useContext(c)[F],[M,P]=Et.useState(Vne(Ui,N));return Kw(()=>_o(N,G=>{G!==M&&P(Xne(G))}),[N,M]),M},R=Et.version.startsWith("18")?D:S;return{Component:B,useEmitter:(F,N)=>{const M=Et.useContext(c)[F];Kw(()=>_o(M,N),[N,M])},useEmitterValue:R,usePublisher:v}}const Zw=Et.createContext(void 0),xre=Et.createContext(void 0),_re=typeof document<"u"?Et.useLayoutEffect:Et.useEffect;function iN(e){return"self"in e}function HRe(e){return"body"in e}function kre(e,t,n,r=m1,i,A){const l=Et.useRef(null),c=Et.useRef(null),f=Et.useRef(null),h=Et.useCallback(v=>{let D,S,R;const F=v.target;if(HRe(F)||iN(F)){const M=iN(F)?F:F.defaultView;R=A?M.scrollX:M.scrollY,D=A?M.document.documentElement.scrollWidth:M.document.documentElement.scrollHeight,S=A?M.innerWidth:M.innerHeight}else R=A?F.scrollLeft:F.scrollTop,D=A?F.scrollWidth:F.scrollHeight,S=A?F.offsetWidth:F.offsetHeight;const N=()=>{e({scrollHeight:D,scrollTop:Math.max(R,0),viewportHeight:S})};v.suppressFlushSync?N():oU.flushSync(N),c.current!==null&&(R===c.current||R<=0||R===D-S)&&(c.current=null,t(!0),f.current&&(clearTimeout(f.current),f.current=null))},[e,t,A]);Et.useEffect(()=>{const v=i||l.current;return r(i||l.current),h({suppressFlushSync:!0,target:v}),v.addEventListener("scroll",h,{passive:!0}),()=>{r(null),v.removeEventListener("scroll",h)}},[l,h,n,r,i]);function I(v){const D=l.current;if(!D||(A?"offsetWidth"in D&&D.offsetWidth===0:"offsetHeight"in D&&D.offsetHeight===0))return;const S=v.behavior==="smooth";let R,F,N;iN(D)?(F=Math.max(Cc(D.document.documentElement,A?"width":"height"),A?D.document.documentElement.scrollWidth:D.document.documentElement.scrollHeight),R=A?D.innerWidth:D.innerHeight,N=A?window.scrollX:window.scrollY):(F=D[A?"scrollWidth":"scrollHeight"],R=Cc(D,A?"width":"height"),N=D[A?"scrollLeft":"scrollTop"]);const M=F-R;if(v.top=Math.ceil(Math.max(Math.min(M,v.top),0)),gre(R,F)||v.top===N){e({scrollHeight:F,scrollTop:N,viewportHeight:R}),S&&t(!0);return}S?(c.current=v.top,f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{f.current=null,c.current=null,t(!0)},1e3)):c.current=null,A&&(v={behavior:v.behavior,left:v.top}),D.scrollTo(v)}function B(v){A&&(v={behavior:v.behavior,left:v.top}),l.current.scrollBy(v)}return{scrollByCallback:B,scrollerRef:l,scrollToCallback:I}}const AN="-webkit-sticky",Dre="sticky",sN=Qre(()=>{if(typeof document>"u")return Dre;const e=document.createElement("div");return e.style.position=AN,e.style.position===AN?AN:Dre});function aN(e){return e}const YRe=so(()=>{const e=Jt(c=>`Item ${c}`),t=Jt(c=>`Group ${c}`),n=Jt({}),r=Jt(aN),i=Jt("div"),A=Jt(m1),l=(c,f=null)=>ns(Dt(n,gn(h=>h[c]),li()),f);return{components:n,computeItemKey:r,EmptyPlaceholder:l("EmptyPlaceholder"),FooterComponent:l("Footer"),GroupComponent:l("Group","div"),groupContent:t,HeaderComponent:l("Header"),HeaderFooterTag:i,ItemComponent:l("Item","div"),itemContent:e,ListComponent:l("List","div"),ScrollerComponent:l("Scroller","div"),scrollerRef:A,ScrollSeekPlaceholder:l("ScrollSeekPlaceholder"),TopItemListComponent:l("TopItemList")}}),JRe=so(([e,t])=>({...e,...t}),ai(wre,YRe)),zRe=({height:e})=>p.jsx("div",{style:{height:e}}),WRe={overflowAnchor:"none",position:sN(),zIndex:1},Sre={overflowAnchor:"none"},qRe={...Sre,display:"inline-block",height:"100%"},Rre=Et.memo(function({showTopList:e=!1}){const t=cr("listState"),n=Ma("sizeRanges"),r=cr("useWindowScroll"),i=cr("customScrollParent"),A=Ma("windowScrollContainerState"),l=Ma("scrollContainerState"),c=i||r?A:l,f=cr("itemContent"),h=cr("context"),I=cr("groupContent"),B=cr("trackItemSizes"),v=cr("itemSize"),D=cr("log"),S=Ma("gap"),R=cr("horizontalDirection"),{callbackRef:F}=$ne(n,v,B,e?m1:c,D,S,i,R,cr("skipAnimationFrameInResizeObserver")),[N,M]=Et.useState(0);$w("deviation",Ae=>{N!==Ae&&M(Ae)});const P=cr("EmptyPlaceholder"),G=cr("ScrollSeekPlaceholder")||zRe,J=cr("ListComponent"),W=cr("ItemComponent"),q=cr("GroupComponent"),$=cr("computeItemKey"),oe=cr("isSeeking"),K=cr("groupIndices").length>0,se=cr("alignToBottom"),Ee=cr("initialItemFinalLocationReached"),ie=e?{}:{boxSizing:"border-box",...R?{display:"inline-block",height:"100%",marginLeft:N!==0?N:se?"auto":0,paddingLeft:t.offsetTop,paddingRight:t.offsetBottom,whiteSpace:"nowrap"}:{marginTop:N!==0?N:se?"auto":0,paddingBottom:t.offsetBottom,paddingTop:t.offsetTop},...Ee?{}:{visibility:"hidden"}};return!e&&t.totalCount===0&&P?p.jsx(P,{...ci(P,h)}):p.jsx(J,{...ci(J,h),"data-testid":e?"virtuoso-top-item-list":"virtuoso-item-list",ref:F,style:ie,children:(e?t.topItems:t.items).map(Ae=>{const Be=Ae.originalIndex,ae=$(Be+t.firstItemIndex,Ae.data,h);return oe?x.createElement(G,{...ci(G,h),height:Ae.size,index:Ae.index,key:ae,type:Ae.type||"item",...Ae.type==="group"?{}:{groupIndex:Ae.groupIndex}}):Ae.type==="group"?x.createElement(q,{...ci(q,h),"data-index":Be,"data-item-index":Ae.index,"data-known-size":Ae.size,key:ae,style:WRe},I(Ae.index,h)):x.createElement(W,{...ci(W,h),...Tre(W,Ae.data),"data-index":Be,"data-item-group-index":Ae.groupIndex,"data-item-index":Ae.index,"data-known-size":Ae.size,key:ae,style:R?qRe:Sre},K?f(Ae.index,Ae.groupIndex,Ae.data,h):f(Ae.index,Ae.data,h))})})}),XRe={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},VRe={outline:"none",overflowX:"auto",position:"relative"},C1=e=>({height:"100%",position:"absolute",top:0,width:"100%",...e?{display:"flex",flexDirection:"column"}:{}}),KRe={position:sN(),top:0,width:"100%",zIndex:1};function ci(e,t){if(typeof e!="string")return{context:t}}function Tre(e,t){return{item:typeof e=="string"?void 0:t}}const ZRe=Et.memo(function(){const e=cr("HeaderComponent"),t=Ma("headerHeight"),n=cr("HeaderFooterTag"),r=mu(Et.useMemo(()=>A=>{t(Cc(A,"height"))},[t]),!0,cr("skipAnimationFrameInResizeObserver")),i=cr("context");return e?p.jsx(n,{ref:r,children:p.jsx(e,{...ci(e,i)})}):null}),$Re=Et.memo(function(){const e=cr("FooterComponent"),t=Ma("footerHeight"),n=cr("HeaderFooterTag"),r=mu(Et.useMemo(()=>A=>{t(Cc(A,"height"))},[t]),!0,cr("skipAnimationFrameInResizeObserver")),i=cr("context");return e?p.jsx(n,{ref:r,children:p.jsx(e,{...ci(e,i)})}):null});function lN({useEmitter:e,useEmitterValue:t,usePublisher:n}){return Et.memo(function({children:r,style:i,context:A,...l}){const c=n("scrollContainerState"),f=t("ScrollerComponent"),h=n("smoothScrollTargetReached"),I=t("scrollerRef"),B=t("horizontalDirection")||!1,{scrollByCallback:v,scrollerRef:D,scrollToCallback:S}=kre(c,h,f,I,void 0,B);return e("scrollTo",S),e("scrollBy",v),p.jsx(f,{"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,ref:D,style:{...B?VRe:XRe,...i},tabIndex:0,...l,...ci(f,A),children:r})})}function cN({useEmitter:e,useEmitterValue:t,usePublisher:n}){return Et.memo(function({children:r,style:i,context:A,...l}){const c=n("windowScrollContainerState"),f=t("ScrollerComponent"),h=n("smoothScrollTargetReached"),I=t("totalListHeight"),B=t("deviation"),v=t("customScrollParent"),D=Et.useRef(null),S=t("scrollerRef"),{scrollByCallback:R,scrollerRef:F,scrollToCallback:N}=kre(c,h,f,S,v);return _re(()=>{var M;return F.current=v||((M=D.current)==null?void 0:M.ownerDocument.defaultView),()=>{F.current=null}},[F,v]),e("windowScrollTo",N),e("scrollBy",R),p.jsx(f,{ref:D,"data-virtuoso-scroller":!0,style:{position:"relative",...i,...I!==0?{height:I+B}:{}},...l,...ci(f,A),children:r})})}let Mre,Nre,Fre,Ore,jre,$w,cr,Ma,Lre,Pre,Ure,Gre,Hre,Yre,Jre,zre,uN,dN,Wre,qre,Xre,Vre,Kre,ex,pr,Cl,Zre,$re,fN,eoe,gN,gE,E1,tx,hN;Mre=({children:e})=>{const t=Et.useContext(Zw),n=Ma("viewportHeight"),r=Ma("fixedItemHeight"),i=cr("alignToBottom"),A=cr("horizontalDirection"),l=Et.useMemo(()=>oE(n,f=>Cc(f,A?"width":"height")),[n,A]),c=mu(l,!0,cr("skipAnimationFrameInResizeObserver"));return Et.useEffect(()=>{t&&(n(t.viewportHeight),r(t.itemHeight))},[t,n,r]),p.jsx("div",{"data-viewport-type":"element",ref:c,style:C1(i),children:e})},Nre=({children:e})=>{const t=Et.useContext(Zw),n=Ma("windowViewportRect"),r=Ma("fixedItemHeight"),i=cr("customScrollParent"),A=JM(n,i,cr("skipAnimationFrameInResizeObserver")),l=cr("alignToBottom");return Et.useEffect(()=>{t&&(r(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,r]),p.jsx("div",{"data-viewport-type":"window",ref:A,style:C1(l),children:e})},Fre=({children:e})=>{const t=cr("TopItemListComponent")||"div",n=cr("headerHeight"),r={...KRe,marginTop:`${n}px`},i=cr("context");return p.jsx(t,{style:r,...ci(t,i),children:e})},Ore=Et.memo(function(e){const t=cr("useWindowScroll"),n=cr("topItemsIndexes").length>0,r=cr("customScrollParent"),i=cr("context");return p.jsxs(r||t?Pre:Lre,{...e,context:i,children:[n&&p.jsx(Fre,{children:p.jsx(Rre,{showTopList:!0})}),p.jsxs(r||t?Nre:Mre,{children:[p.jsx(ZRe,{}),p.jsx(Rre,{}),p.jsx($Re,{})]})]})}),{Component:jre,useEmitter:$w,useEmitterValue:cr,usePublisher:Ma}=oN(JRe,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",scrollIntoViewOnChange:"scrollIntoViewOnChange",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",groupCounts:"groupCounts",topItemCount:"topItemCount",firstItemIndex:"firstItemIndex",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"HeaderFooterTag",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",horizontalDirection:"horizontalDirection",skipAnimationFrameInResizeObserver:"skipAnimationFrameInResizeObserver"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",autoscrollToBottom:"autoscrollToBottom",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},Ore),Lre=lN({useEmitter:$w,useEmitterValue:cr,usePublisher:Ma}),Pre=cN({useEmitter:$w,useEmitterValue:cr,usePublisher:Ma}),Ure=jre,Gre=so(()=>{const e=Jt(h=>p.jsxs("td",{children:["Item $",h]})),t=Jt(null),n=Jt(h=>p.jsxs("td",{colSpan:1e3,children:["Group ",h]})),r=Jt(null),i=Jt(null),A=Jt({}),l=Jt(aN),c=Jt(m1),f=(h,I=null)=>ns(Dt(A,gn(B=>B[h]),li()),I);return{components:A,computeItemKey:l,context:t,EmptyPlaceholder:f("EmptyPlaceholder"),FillerRow:f("FillerRow"),fixedFooterContent:i,fixedHeaderContent:r,itemContent:e,groupContent:n,ScrollerComponent:f("Scroller","div"),scrollerRef:c,ScrollSeekPlaceholder:f("ScrollSeekPlaceholder"),TableBodyComponent:f("TableBody","tbody"),TableComponent:f("Table","table"),TableFooterComponent:f("TableFoot","tfoot"),TableHeadComponent:f("TableHead","thead"),TableRowComponent:f("TableRow","tr"),GroupComponent:f("Group","tr")}}),Hre=so(([e,t])=>({...e,...t}),ai(wre,Gre)),Yre=({height:e})=>p.jsx("tr",{children:p.jsx("td",{style:{height:e}})}),Jre=({height:e})=>p.jsx("tr",{children:p.jsx("td",{style:{border:0,height:e,padding:0}})}),zre={overflowAnchor:"none"},uN={position:sN(),zIndex:2,overflowAnchor:"none"},dN=Et.memo(function({showTopList:e=!1}){const t=pr("listState"),n=pr("computeItemKey"),r=pr("firstItemIndex"),i=pr("context"),A=pr("isSeeking"),l=pr("fixedHeaderHeight"),c=pr("groupIndices").length>0,f=pr("itemContent"),h=pr("groupContent"),I=pr("ScrollSeekPlaceholder")||Yre,B=pr("GroupComponent"),v=pr("TableRowComponent"),D=(e?t.topItems:[]).reduce((R,F,N)=>(N===0?R.push(F.size):R.push(R[N-1]+F.size),R),[]),S=(e?t.topItems:t.items).map(R=>{const F=R.originalIndex,N=n(F+r,R.data,i),M=e?F===0?0:D[F-1]:0;return A?x.createElement(I,{...ci(I,i),height:R.size,index:R.index,key:N,type:R.type||"item"}):R.type==="group"?x.createElement(B,{...ci(B,i),"data-index":F,"data-item-index":R.index,"data-known-size":R.size,key:N,style:{...uN,top:l}},h(R.index,i)):x.createElement(v,{...ci(v,i),...Tre(v,R.data),"data-index":F,"data-item-index":R.index,"data-known-size":R.size,"data-item-group-index":R.groupIndex,key:N,style:e?{...uN,top:l+M}:zre},c?f(R.index,R.groupIndex,R.data,i):f(R.index,R.data,i))});return p.jsx(p.Fragment,{children:S})}),Wre=Et.memo(function(){const e=pr("listState"),t=pr("topItemsIndexes").length>0,n=Cl("sizeRanges"),r=pr("useWindowScroll"),i=pr("customScrollParent"),A=Cl("windowScrollContainerState"),l=Cl("scrollContainerState"),c=i||r?A:l,f=pr("trackItemSizes"),h=pr("itemSize"),I=pr("log"),{callbackRef:B,ref:v}=$ne(n,h,f,c,I,void 0,i,!1,pr("skipAnimationFrameInResizeObserver")),[D,S]=Et.useState(0);ex("deviation",K=>{D!==K&&(v.current.style.marginTop=`${K}px`,S(K))});const R=pr("EmptyPlaceholder"),F=pr("FillerRow")||Jre,N=pr("TableBodyComponent"),M=pr("paddingTopAddition"),P=pr("statefulTotalCount"),G=pr("context");if(P===0&&R)return p.jsx(R,{...ci(R,G)});const J=(t?e.topItems:[]).reduce((K,se)=>K+se.size,0),W=e.offsetTop+M+D-J,q=e.offsetBottom,$=W>0?p.jsx(F,{context:G,height:W},"padding-top"):null,oe=q>0?p.jsx(F,{context:G,height:q},"padding-bottom"):null;return p.jsxs(N,{"data-testid":"virtuoso-item-list",ref:B,...ci(N,G),children:[$,t&&p.jsx(dN,{showTopList:!0}),p.jsx(dN,{}),oe]})}),qre=({children:e})=>{const t=Et.useContext(Zw),n=Cl("viewportHeight"),r=Cl("fixedItemHeight"),i=mu(Et.useMemo(()=>oE(n,A=>Cc(A,"height")),[n]),!0,pr("skipAnimationFrameInResizeObserver"));return Et.useEffect(()=>{t&&(n(t.viewportHeight),r(t.itemHeight))},[t,n,r]),p.jsx("div",{"data-viewport-type":"element",ref:i,style:C1(!1),children:e})},Xre=({children:e})=>{const t=Et.useContext(Zw),n=Cl("windowViewportRect"),r=Cl("fixedItemHeight"),i=pr("customScrollParent"),A=JM(n,i,pr("skipAnimationFrameInResizeObserver"));return Et.useEffect(()=>{t&&(r(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,r]),p.jsx("div",{"data-viewport-type":"window",ref:A,style:C1(!1),children:e})},Vre=Et.memo(function(e){const t=pr("useWindowScroll"),n=pr("customScrollParent"),r=Cl("fixedHeaderHeight"),i=Cl("fixedFooterHeight"),A=pr("fixedHeaderContent"),l=pr("fixedFooterContent"),c=pr("context"),f=mu(Et.useMemo(()=>oE(r,N=>Cc(N,"height")),[r]),!0,pr("skipAnimationFrameInResizeObserver")),h=mu(Et.useMemo(()=>oE(i,N=>Cc(N,"height")),[i]),!0,pr("skipAnimationFrameInResizeObserver")),I=n||t?$re:Zre,B=n||t?Xre:qre,v=pr("TableComponent"),D=pr("TableHeadComponent"),S=pr("TableFooterComponent"),R=A?p.jsx(D,{ref:f,style:{position:"sticky",top:0,zIndex:2},...ci(D,c),children:A()},"TableHead"):null,F=l?p.jsx(S,{ref:h,style:{bottom:0,position:"sticky",zIndex:1},...ci(S,c),children:l()},"TableFoot"):null;return p.jsx(I,{...e,...ci(I,c),children:p.jsx(B,{children:p.jsxs(v,{style:{borderSpacing:0,overflowAnchor:"none"},...ci(v,c),children:[R,p.jsx(Wre,{},"TableBody"),F]})})})}),{Component:Kre,useEmitter:ex,useEmitterValue:pr,usePublisher:Cl}=oN(Hre,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",firstItemIndex:"firstItemIndex",itemContent:"itemContent",groupContent:"groupContent",fixedHeaderContent:"fixedHeaderContent",fixedFooterContent:"fixedFooterContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",topItemCount:"topItemCount",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",groupCounts:"groupCounts",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},Vre),Zre=lN({useEmitter:ex,useEmitterValue:pr,usePublisher:Cl}),$re=cN({useEmitter:ex,useEmitterValue:pr,usePublisher:Cl}),Yde=Kre,fN={bottom:0,itemHeight:0,items:[],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},eoe={bottom:0,itemHeight:0,items:[{index:0}],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},{ceil:gN,floor:gE,max:E1,min:tx,round:hN}=Math;function toe(e,t,n){return Array.from({length:t-e+1}).map((r,i)=>({data:n===null?null:n[i+e],index:i+e}))}function e5e(e){return{...eoe,items:e}}function nx(e,t){return e&&e.width===t.width&&e.height===t.height}function t5e(e,t){return e&&e.column===t.column&&e.row===t.row}const n5e=so(([{increaseViewportBy:e,listBoundary:t,overscan:n,visibleRange:r},{footerHeight:i,headerHeight:A,scrollBy:l,scrollContainerState:c,scrollTo:f,scrollTop:h,smoothScrollTargetReached:I,viewportHeight:B},v,D,{didMount:S,propsReady:R},{customScrollParent:F,useWindowScroll:N,windowScrollContainerState:M,windowScrollTo:P,windowViewportRect:G},J])=>{const W=Jt(0),q=Jt(0),$=Jt(fN),oe=Jt({height:0,width:0}),K=Jt({height:0,width:0}),se=Jr(),Ee=Jr(),ie=Jt(0),Ae=Jt(null),Be=Jt({column:0,row:0}),ae=Jr(),Ce=Jr(),de=Jt(!1),ge=Jt(0),be=Jt(!0),Te=Jt(!1),me=Jt(!1);_o(Dt(S,kr(ge),er(([xe,ve])=>!!ve)),()=>{Cr(be,!1)}),_o(Dt(nA(S,be,K,oe,ge,Te),er(([xe,ve,Ue,At,,He])=>xe&&!ve&&Ue.height!==0&&At.height!==0&&!He)),([,,,,xe])=>{Cr(Te,!0),$M(1,()=>{Cr(se,xe)}),mc(Dt(h),()=>{Cr(t,[0,0]),Cr(be,!0)})}),Dn(Dt(Ce,er(xe=>xe!=null&&xe.scrollTop>0),hu(0)),q),_o(Dt(S,kr(Ce),er(([,xe])=>xe!=null)),([,xe])=>{xe&&(Cr(oe,xe.viewport),Cr(K,xe.item),Cr(Be,xe.gap),xe.scrollTop>0&&(Cr(de,!0),mc(Dt(h,nh(1)),ve=>{Cr(de,!1)}),Cr(f,{top:xe.scrollTop})))}),Dn(Dt(oe,gn(({height:xe})=>xe)),B),Dn(Dt(nA(Kn(oe,nx),Kn(K,nx),Kn(Be,(xe,ve)=>xe&&xe.column===ve.column&&xe.row===ve.row),Kn(h)),gn(([xe,ve,Ue,At])=>({gap:Ue,item:ve,scrollTop:At,viewport:xe}))),ae),Dn(Dt(nA(Kn(W),r,Kn(Be,t5e),Kn(K,nx),Kn(oe,nx),Kn(Ae),Kn(q),Kn(de),Kn(be),Kn(ge)),er(([,,,,,,,xe])=>!xe),gn(([xe,[ve,Ue],At,He,gt,ut,bt,,zt,ce])=>{const{column:mn,row:Yn}=At,{height:yn,width:fe}=He,{width:dn}=gt;if(bt===0&&(xe===0||dn===0))return fN;if(fe===0){const ho=eN(ce,xe),ro=ho+Math.max(bt-1,0);return e5e(toe(ho,ro,ut))}const _t=noe(dn,fe,mn);let Pt,Ve;zt?ve===0&&Ue===0&&bt>0?(Pt=0,Ve=bt-1):(Pt=_t*gE((ve+Yn)/(yn+Yn)),Ve=_t*gN((Ue+Yn)/(yn+Yn))-1,Ve=tx(xe-1,E1(Ve,_t-1)),Pt=tx(Ve,E1(0,Pt))):(Pt=0,Ve=-1);const Nt=toe(Pt,Ve,ut),{bottom:tn,top:en}=roe(gt,At,He,Nt),no=gN(xe/_t),gr=no*yn+(no-1)*Yn-tn;return{bottom:tn,itemHeight:yn,items:Nt,itemWidth:fe,offsetBottom:gr,offsetTop:en,top:en}})),$),Dn(Dt(Ae,er(xe=>xe!==null),gn(xe=>xe.length)),W),Dn(Dt(nA(oe,K,$,Be),er(([xe,ve,{items:Ue}])=>Ue.length>0&&ve.height!==0&&xe.height!==0),gn(([xe,ve,{items:Ue},At])=>{const{bottom:He,top:gt}=roe(xe,At,ve,Ue);return[gt,He]}),li(sE)),t);const Ye=Jt(!1);Dn(Dt(h,kr(Ye),gn(([xe,ve])=>ve||xe!==0)),Ye);const rt=Ra(Dt(nA($,W),er(([{items:xe}])=>xe.length>0),kr(Ye),er(([[xe,ve],Ue])=>{const At=xe.items[xe.items.length-1].index===ve-1;return(Ue||xe.bottom>0&&xe.itemHeight>0&&xe.offsetBottom===0&&xe.items.length===ve)&&At}),gn(([[,xe]])=>xe-1),li())),We=Ra(Dt(Kn($),er(({items:xe})=>xe.length>0&&xe[0].index===0),hu(0),li())),De=Ra(Dt(Kn($),kr(de),er(([{items:xe},ve])=>xe.length>0&&!ve),gn(([{items:xe}])=>({endIndex:xe[xe.length-1].index,startIndex:xe[0].index})),li(sre),D0(0)));Dn(De,D.scrollSeekRangeChanged),Dn(Dt(se,kr(oe,K,W,Be),gn(([xe,ve,Ue,At,He])=>{const gt=fre(xe),{align:ut,behavior:bt,offset:zt}=gt;let ce=gt.index;ce==="LAST"&&(ce=At-1),ce=E1(0,ce,tx(At-1,ce));let mn=pN(ve,He,Ue,ce);return ut==="end"?mn=hN(mn-ve.height+Ue.height):ut==="center"&&(mn=hN(mn-ve.height/2+Ue.height/2)),zt&&(mn+=zt),{behavior:bt,top:mn}})),f);const _e=ns(Dt($,gn(xe=>xe.offsetBottom+xe.bottom)),0);return Dn(Dt(G,gn(xe=>({height:xe.visibleHeight,width:xe.visibleWidth}))),oe),{customScrollParent:F,data:Ae,deviation:ie,footerHeight:i,gap:Be,headerHeight:A,increaseViewportBy:e,initialItemCount:q,itemDimensions:K,overscan:n,restoreStateFrom:Ce,scrollBy:l,scrollContainerState:c,scrollHeight:Ee,scrollTo:f,scrollToIndex:se,scrollTop:h,smoothScrollTargetReached:I,totalCount:W,useWindowScroll:N,viewportDimensions:oe,windowScrollContainerState:M,windowScrollTo:P,windowViewportRect:G,...D,gridState:$,horizontalDirection:me,initialTopMostItemIndex:ge,totalListHeight:_e,...v,endReached:rt,propsReady:R,rangeChanged:De,startReached:We,stateChanged:ae,stateRestoreInProgress:de,...J}},ai(tN,ks,fE,bre,hf,rN,gf));function noe(e,t,n){return E1(1,gE((e+n)/(gE(t)+n)))}function roe(e,t,n,r){const{height:i}=n;if(i===void 0||r.length===0)return{bottom:0,top:0};const A=pN(e,t,n,r[0].index);return{bottom:pN(e,t,n,r[r.length-1].index)+i,top:A}}function pN(e,t,n,r){const i=noe(e.width,n.width,t.column),A=gE(r/i),l=A*n.height+E1(0,A-1)*t.row;return l>0?l+t.row:l}const r5e=so(()=>{const e=Jt(B=>`Item ${B}`),t=Jt({}),n=Jt(null),r=Jt("virtuoso-grid-item"),i=Jt("virtuoso-grid-list"),A=Jt(aN),l=Jt("div"),c=Jt(m1),f=(B,v=null)=>ns(Dt(t,gn(D=>D[B]),li()),v),h=Jt(!1),I=Jt(!1);return Dn(Kn(I),h),{components:t,computeItemKey:A,context:n,FooterComponent:f("Footer"),HeaderComponent:f("Header"),headerFooterTag:l,itemClassName:r,ItemComponent:f("Item","div"),itemContent:e,listClassName:i,ListComponent:f("List","div"),readyStateChanged:h,reportReadyState:I,ScrollerComponent:f("Scroller","div"),scrollerRef:c,ScrollSeekPlaceholder:f("ScrollSeekPlaceholder","div")}}),o5e=so(([e,t])=>({...e,...t}),ai(n5e,r5e)),i5e=Et.memo(function(){const e=pi("gridState"),t=pi("listClassName"),n=pi("itemClassName"),r=pi("itemContent"),i=pi("computeItemKey"),A=pi("isSeeking"),l=El("scrollHeight"),c=pi("ItemComponent"),f=pi("ListComponent"),h=pi("ScrollSeekPlaceholder"),I=pi("context"),B=El("itemDimensions"),v=El("gap"),D=pi("log"),S=pi("stateRestoreInProgress"),R=El("reportReadyState"),F=mu(Et.useMemo(()=>N=>{const M=N.parentElement.parentElement.scrollHeight;l(M);const P=N.firstChild;if(P){const{height:G,width:J}=P.getBoundingClientRect();B({height:G,width:J})}v({column:ioe("column-gap",getComputedStyle(N).columnGap,D),row:ioe("row-gap",getComputedStyle(N).rowGap,D)})},[l,B,v,D]),!0,!1);return _re(()=>{e.itemHeight>0&&e.itemWidth>0&&R(!0)},[e]),S?null:p.jsx(f,{className:t,ref:F,...ci(f,I),"data-testid":"virtuoso-item-list",style:{paddingBottom:e.offsetBottom,paddingTop:e.offsetTop},children:e.items.map(N=>{const M=i(N.index,N.data,I);return A?p.jsx(h,{...ci(h,I),height:e.itemHeight,index:N.index,width:e.itemWidth},M):x.createElement(c,{...ci(c,I),className:n,"data-index":N.index,key:M},r(N.index,N.data,I))})})}),A5e=Et.memo(function(){const e=pi("HeaderComponent"),t=El("headerHeight"),n=pi("headerFooterTag"),r=mu(Et.useMemo(()=>A=>{t(Cc(A,"height"))},[t]),!0,!1),i=pi("context");return e?p.jsx(n,{ref:r,children:p.jsx(e,{...ci(e,i)})}):null}),s5e=Et.memo(function(){const e=pi("FooterComponent"),t=El("footerHeight"),n=pi("headerFooterTag"),r=mu(Et.useMemo(()=>A=>{t(Cc(A,"height"))},[t]),!0,!1),i=pi("context");return e?p.jsx(n,{ref:r,children:p.jsx(e,{...ci(e,i)})}):null}),a5e=({children:e})=>{const t=Et.useContext(xre),n=El("itemDimensions"),r=El("viewportDimensions"),i=mu(Et.useMemo(()=>A=>{r(A.getBoundingClientRect())},[r]),!0,!1);return Et.useEffect(()=>{t&&(r({height:t.viewportHeight,width:t.viewportWidth}),n({height:t.itemHeight,width:t.itemWidth}))},[t,r,n]),p.jsx("div",{ref:i,style:C1(!1),children:e})},l5e=({children:e})=>{const t=Et.useContext(xre),n=El("windowViewportRect"),r=El("itemDimensions"),i=pi("customScrollParent"),A=JM(n,i,!1);return Et.useEffect(()=>{t&&(r({height:t.itemHeight,width:t.itemWidth}),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:t.viewportWidth}))},[t,n,r]),p.jsx("div",{ref:A,style:C1(!1),children:e})},c5e=Et.memo(function({...e}){const t=pi("useWindowScroll"),n=pi("customScrollParent"),r=n||t?d5e:u5e,i=n||t?l5e:a5e,A=pi("context");return p.jsx(r,{...e,...ci(r,A),children:p.jsxs(i,{children:[p.jsx(A5e,{}),p.jsx(i5e,{}),p.jsx(s5e,{})]})})}),{useEmitter:ooe,useEmitterValue:pi,usePublisher:El}=oN(o5e,{optional:{context:"context",totalCount:"totalCount",overscan:"overscan",itemContent:"itemContent",components:"components",computeItemKey:"computeItemKey",data:"data",initialItemCount:"initialItemCount",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",listClassName:"listClassName",itemClassName:"itemClassName",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",restoreStateFrom:"restoreStateFrom",initialTopMostItemIndex:"initialTopMostItemIndex",increaseViewportBy:"increaseViewportBy"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",stateChanged:"stateChanged",readyStateChanged:"readyStateChanged"}},c5e),u5e=lN({useEmitter:ooe,useEmitterValue:pi,usePublisher:El}),d5e=cN({useEmitter:ooe,useEmitterValue:pi,usePublisher:El});function ioe(e,t,n){return t!=="normal"&&!(t!=null&&t.endsWith("px"))&&n(`${e} was not resolved to pixel value correctly`,t,ea.WARN),t==="normal"?0:parseInt(t??"0",10)}const f5e="_container_1l1zm_1",g5e="_button_1l1zm_5",Aoe={container:f5e,button:g5e};function h5e(){const e=It(wo),t=Me(F5);return t==="Live"?null:p.jsx("div",{className:Aoe.container,children:p.jsxs(nl,{className:Aoe.button,style:{zIndex:3},onClick:()=>{e(void 0)},children:[p.jsx(Se,{children:"Skip to RT"}),t==="Past"?p.jsx(xT,{}):p.jsx(wT,{})]})})}const rx={Overview:"/","Slot Details":"/slotDetails",Schedule:"/leaderSchedule",Gossip:"/gossip"};function hE(){const e=tbe();return x.useMemo(()=>{const t=Object.entries(rx).find(([n,r])=>e.pathname===r);return t?t[0]:"Overview"},[e.pathname])}const p5e=e=>e,m5e={top:24,bottom:0};function I5e({width:e,height:t}){const n=hE(),r=Me(Wp),i=Me(vi),A=Me(pC).isInitialized;return!i||n==="Slot Details"&&!A?null:r===IC.MySlots?p.jsx(v5e,{width:e,height:t},i.epoch):p.jsx(y5e,{width:e,height:t},i.epoch)}function soe({width:e,height:t,slotGroupsDescending:n,getSlotAtIndex:r,getIndexForSlot:i}){const A=x.useRef(null),l=x.useRef(null),c=x.useRef(null),[f,h]=x.useState(!0),[I,B]=x.useState(0);x.useEffect(()=>{const N=setTimeout(()=>{h(!1)},100);return()=>clearTimeout(N)},[]);const v=It(wo),D=n.length,S=g1(()=>{},100),{rangeChanged:R,scrollSeekConfiguration:F}=x.useMemo(()=>{const N=({startIndex:M})=>{c.current=M+1};return{rangeChanged:N,scrollSeekConfiguration:{enter:M=>Math.abs(M)>1500,exit:M=>Math.abs(M)<500,change:(M,P)=>N(P)}}},[c]);return x.useEffect(()=>{if(!A.current)return;const N=A.current,M=sr.throttle(()=>{if(c.current===null)return;S();const G=Math.min(c.current+$b,D-1),J=r(G);v(J)},50,{leading:!0,trailing:!0}),P=()=>{M()};return N.addEventListener("wheel",P),N.addEventListener("touchmove",P),()=>{N.removeEventListener("wheel",P),N.removeEventListener("touchmove",P)}},[r,S,v,D,c]),p.jsxs(Bo,{ref:A,position:"relative",width:`${e}px`,height:`${t}px`,children:[p.jsx(E5e,{listRef:l,getIndexForSlot:i}),p.jsx(B5e,{listRef:l,getIndexForSlot:i,debouncedScroll:S}),p.jsx(VSe,{width:e,height:t,totalListHeight:I}),p.jsx(h5e,{}),p.jsx(Ure,{ref:l,className:An(SM.slotsList,{[SM.hidden]:f}),width:e,height:t,data:n,totalCount:D,increaseViewportBy:m5e,defaultItemHeight:42,skipAnimationFrameInResizeObserver:!0,computeItemKey:p5e,itemContent:(N,M)=>p.jsx(HSe,{leaderSlotForGroup:M}),rangeChanged:R,components:{ScrollSeekPlaceholder:C5e},scrollSeekConfiguration:F,totalListHeightChanged:N=>B(N)})]})}const C5e=x.memo(function(){return null});function E5e({listRef:e,getIndexForSlot:t}){const n=Me(dl),r=Me(O_e);return x.useEffect(()=>{if(!r||n===void 0||!e.current)return;const i=t(n)-$b;e.current.scrollToIndex({index:i>0?i:0,align:"start"})},[r,n,t,e]),null}function B5e({listRef:e,getIndexForSlot:t,debouncedScroll:n}){const r=x.useRef(null),i=Me(wo);return x.useEffect(()=>{if(i===void 0||!e.current||n.isPending())return;const A=Math.max(0,t(i)-$b),l=r.current;return r.current=requestAnimationFrame(()=>{var c;l!==null&&cancelAnimationFrame(l),(c=e.current)==null||c.scrollToIndex({index:A,align:"start"})}),()=>{r.current!==null&&(cancelAnimationFrame(r.current),r.current=null)}},[t,i,e,n]),null}function y5e({width:e,height:t}){const n=Me(vi),r=x.useMemo(()=>{if(!n)return[];const l=n.end_slot-n.start_slot+1;return Array.from({length:Math.ceil(l/vo)},(c,f)=>n.end_slot-f*vo-(vo-1))},[n]),i=x.useCallback(l=>r[l],[r]),A=x.useCallback(l=>!n||ln.end_slot?-1:Math.trunc((n.end_slot-l)/vo),[n]);return p.jsx(soe,{width:e,height:t,slotGroupsDescending:r,getSlotAtIndex:i,getIndexForSlot:A})}function v5e({width:e,height:t}){const n=Me(eA),r=x.useMemo(()=>(n==null?void 0:n.toReversed())??[],[n]),i=x.useMemo(()=>r.reduce((c,f,h)=>(c[f]=h,c),{}),[r]),A=x.useCallback(c=>r[c],[r]),l=x.useCallback(c=>!r.length||c>=r[0]?0:c<=r[r.length-1]?r.length-1:i[es(c)]??r.findIndex(f=>f<=c),[r,i]);return n?n.length===0?p.jsx(Fe,{width:`${e}px`,height:`${t}px`,justify:"center",align:"center",children:p.jsxs(Se,{className:SM.noSlotsText,children:["No Slots",p.jsx("br",{}),"Available"]})}):p.jsx(soe,{width:e,height:t,slotGroupsDescending:r,getSlotAtIndex:A,getIndexForSlot:l}):null}const b5e="data:image/svg+xml,%3csvg%20width='13'%20height='11'%20viewBox='0%200%2013%2011'%20fill='%233CB4FF'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6.54688%203.17578H7.42188V5.63672L9.47266%206.86719L9.03516%207.57812L6.54688%206.07422V3.17578ZM3.40234%201.78125C4.44141%200.760417%205.68099%200.25%207.12109%200.25C8.5612%200.25%209.79167%200.760417%2010.8125%201.78125C11.8516%202.80208%2012.3711%204.04167%2012.3711%205.5C12.3711%206.95833%2011.8516%208.19792%2010.8125%209.21875C9.79167%2010.2396%208.5612%2010.75%207.12109%2010.75C6.51953%2010.75%205.85417%2010.6042%205.125%2010.3125C4.41406%2010.0026%203.84896%209.63802%203.42969%209.21875L4.25%208.37109C5.05208%209.17318%206.00911%209.57422%207.12109%209.57422C8.2513%209.57422%209.21745%209.18229%2010.0195%208.39844C10.8216%207.59635%2011.2227%206.63021%2011.2227%205.5C11.2227%204.36979%2010.8216%203.41276%2010.0195%202.62891C9.21745%201.82682%208.2513%201.42578%207.12109%201.42578C5.99089%201.42578%205.02474%201.82682%204.22266%202.62891C3.4388%203.41276%203.04688%204.36979%203.04688%205.5H4.79688L2.44531%207.85156L2.39062%207.76953L0.121094%205.5H1.87109C1.87109%204.04167%202.38151%202.80208%203.40234%201.78125Z'/%3e%3c/svg%3e",Q5e="data:image/svg+xml,%3csvg%20width='11'%20height='11'%20viewBox='0%200%2011%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M5.84766%203.17578V5.63672L7.87109%206.86719L7.46094%207.57812L4.97266%206.07422V3.17578H5.84766ZM10.7969%204.40625H6.83203L8.44531%202.76562C7.64323%201.96354%206.67708%201.5625%205.54688%201.5625C4.4349%201.54427%203.47786%201.92708%202.67578%202.71094C2.34766%203.03906%202.0651%203.48568%201.82812%204.05078C1.59115%204.59766%201.47266%205.09896%201.47266%205.55469C1.47266%206.01042%201.59115%206.52083%201.82812%207.08594C2.0651%207.63281%202.34766%208.07031%202.67578%208.39844C3.00391%208.72656%203.45052%209.00911%204.01562%209.24609C4.58073%209.48307%205.09115%209.60156%205.54688%209.60156C6.0026%209.60156%206.51302%209.48307%207.07812%209.24609C7.66146%209.00911%208.11719%208.72656%208.44531%208.39844C9.22917%207.61458%209.62109%206.66667%209.62109%205.55469H10.7969C10.7969%206.99479%2010.2865%208.21615%209.26562%209.21875C8.24479%2010.2396%207.00521%2010.75%205.54688%2010.75C4.08854%2010.75%202.84896%2010.2396%201.82812%209.21875C0.807292%208.21615%200.296875%207.00391%200.296875%205.58203C0.296875%204.14193%200.807292%202.91146%201.82812%201.89062C2.2474%201.47135%202.8125%201.11589%203.52344%200.824219C4.2526%200.514323%204.91797%200.359375%205.51953%200.359375C6.12109%200.359375%206.77734%200.514323%207.48828%200.824219C8.21745%201.11589%208.79167%201.47135%209.21094%201.89062L10.7969%200.25V4.40625Z'%20fill='%233CB4FF'/%3e%3c/svg%3e",w5e="_status-indicator_e3wc7_1",x5e="_status-indicator-live_e3wc7_6",_5e="_status-indicator-not-live_e3wc7_10",k5e="_dot-icon_e3wc7_22",ox={statusIndicator:w5e,statusIndicatorLive:x5e,statusIndicatorNotLive:_5e,dotIcon:k5e},aoe={Live:"RT",Past:"PT",Current:"CT",Future:"FT"};function D5e(){const e=Me(F5),t=x.useMemo(()=>e?e==="Live"?p.jsx(Zo,{content:"Following the current leader slot",disableHoverableContent:!0,children:p.jsx(Se,{children:aoe[e]})}):p.jsx(Zo,{content:`Focused on ${e.toLowerCase()} slot`,disableHoverableContent:!0,children:p.jsx(Se,{children:aoe[e]})}):null,[e]),n=x.useMemo(()=>e?p.jsx(Zo,{content:e,disableHoverableContent:!0,children:e==="Live"?p.jsx("div",{className:ox.dotIcon}):p.jsx("img",{style:{marginLeft:"-1px"},width:"6px",src:e==="Past"?b5e:Q5e,alt:e})}):null,[e]);return e?p.jsxs(Fe,{justify:"center",align:"center",className:An(ox.statusIndicator,e==="Live"?ox.statusIndicatorLive:ox.statusIndicatorNotLive),children:[t,n]}):null}const S5e="_nav-filter-toggle-group_148xa_1",R5e="_lg_148xa_47",T5e="_toggle-button_148xa_43",M5e="_floating_148xa_61",N5e="_mirror_148xa_75",F5e="_slot-nav-container_148xa_81",O5e="_nav-background_148xa_85",ih={navFilterToggleGroup:S5e,lg:R5e,toggleButton:T5e,floating:M5e,mirror:N5e,slotNavContainer:F5e,navBackground:O5e};function j5e(){const[e,t]=il(Wp),n=x.useCallback(r=>{r&&t(r)},[t]);return p.jsx(Fe,{height:`${rQ}px`,width:"100%",children:p.jsxs(K8,{type:"single",value:e,"aria-label":"Slots List Toggle",onValueChange:n,className:ih.navFilterToggleGroup,children:[p.jsx(dp,{value:IC.AllSlots,"aria-label":"All Slots toggle",tabIndex:0,children:p.jsx(Se,{children:"All Slots"})}),p.jsx(dp,{value:IC.MySlots,"aria-label":"My Slots toggle",tabIndex:0,children:p.jsx(Se,{children:"My Slots"})})]})})}const L5e="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='20px'%20viewBox='0%20-960%20960%20960'%20width='20px'%20fill='%23FF5353'%3e%3cpath%20d='m48-144%20432-720%20432%20720H48Zm431.79-120q15.21%200%2025.71-10.29t10.5-25.5q0-15.21-10.29-25.71t-25.5-10.5q-15.21%200-25.71%2010.29t-10.5%2025.5q0%2015.21%2010.29%2025.71t25.5%2010.5ZM444-384h72v-192h-72v192Z'/%3e%3c/svg%3e",P5e="data:image/svg+xml,%3csvg%20width='10'%20height='11'%20viewBox='0%200%2010%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6.39453%201.5H9.67578V7.32422H5.57422L5.35547%206.17578H2.07422V10.25H0.925781V0.324219H6.17578L6.39453%201.5Z'%20fill='%231DB247'/%3e%3c/svg%3e",U5e="_epoch-progress_niumw_1",G5e="_clickable_niumw_8",H5e="_leader-slot_niumw_12",Y5e="_before-start_niumw_21",J5e="_skipped-slot_niumw_26",z5e="_skipped-slot-icon_niumw_36",W5e="_first-processed-slot_niumw_45",q5e="_first-processed-slot-icon_niumw_56",X5e="_slider-root_niumw_65",V5e="_slider-track_niumw_76",K5e="_slider-thumb_niumw_82",Z5e="_collapsed_niumw_92",$5e="_hide_niumw_106",eTe="_show_niumw_115",vA={epochProgress:U5e,clickable:G5e,leaderSlot:H5e,beforeStart:Y5e,skippedSlot:J5e,skippedSlotIcon:z5e,firstProcessedSlot:W5e,firstProcessedSlotIcon:q5e,sliderRoot:X5e,sliderTrack:V5e,sliderThumb:K5e,collapsed:Z5e,hide:$5e,show:eTe};var tTe=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],mN=tTe.join(","),loe=typeof Element>"u",pE=loe?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,ix=!loe&&Element.prototype.getRootNode?function(e){var t;return e==null||(t=e.getRootNode)===null||t===void 0?void 0:t.call(e)}:function(e){return e==null?void 0:e.ownerDocument},mE=function(e,t){var n;t===void 0&&(t=!0);var r=e==null||(n=e.getAttribute)===null||n===void 0?void 0:n.call(e,"inert"),i=r===""||r==="true",A=i||t&&e&&mE(e.parentNode);return A},nTe=function(e){var t,n=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return n===""||n==="true"},rTe=function(e,t,n){if(mE(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(mN));return t&&pE.call(e,mN)&&r.unshift(e),r=r.filter(n),r},IN=function(e,t,n){for(var r=[],i=Array.from(e);i.length;){var A=i.shift();if(!mE(A,!1))if(A.tagName==="SLOT"){var l=A.assignedElements(),c=l.length?l:A.children,f=IN(c,!0,n);n.flatten?r.push.apply(r,f):r.push({scopeParent:A,candidates:f})}else{var h=pE.call(A,mN);h&&n.filter(A)&&(t||!e.includes(A))&&r.push(A);var I=A.shadowRoot||typeof n.getShadowRoot=="function"&&n.getShadowRoot(A),B=!mE(I,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(A));if(I&&B){var v=IN(I===!0?A.children:I.children,!0,n);n.flatten?r.push.apply(r,v):r.push({scopeParent:A,candidates:v})}else i.unshift.apply(i,A.children)}}return r},coe=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},uoe=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||nTe(e))&&!coe(e)?0:e.tabIndex},oTe=function(e,t){var n=uoe(e);return n<0&&t&&!coe(e)?0:n},iTe=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},doe=function(e){return e.tagName==="INPUT"},ATe=function(e){return doe(e)&&e.type==="hidden"},sTe=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(n){return n.tagName==="SUMMARY"});return t},aTe=function(e,t){for(var n=0;nsummary:first-of-type"),l=A?e.parentElement:e;if(pE.call(l,"details:not([open]) *"))return!0;if(!n||n==="full"||n==="full-native"||n==="legacy-full"){if(typeof r=="function"){for(var c=e;e;){var f=e.parentElement,h=ix(e);if(f&&!f.shadowRoot&&r(f)===!0)return foe(e);e.assignedSlot?e=e.assignedSlot:!f&&h!==e.ownerDocument?e=h.host:e=f}e=c}if(dTe(e))return!e.getClientRects().length;if(n!=="legacy-full")return!0}else if(n==="non-zero-area")return foe(e);return!1},gTe=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var n=0;n=0)},hoe=function(e){var t=[],n=[];return e.forEach(function(r,i){var A=!!r.scopeParent,l=A?r.scopeParent:r,c=oTe(l,A),f=A?hoe(r.candidates):l;c===0?A?t.push.apply(t,f):t.push(l):n.push({documentOrder:i,tabIndex:c,item:r,isScope:A,content:f})}),n.sort(iTe).reduce(function(r,i){return i.isScope?r.push.apply(r,i.content):r.push(i.content),r},[]).concat(t)},poe=function(e,t){t=t||{};var n;return t.getShadowRoot?n=IN([e],t.includeContainer,{filter:goe.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:pTe}):n=rTe(e,t.includeContainer,goe.bind(null,t)),hoe(n)};function mTe(){return/apple/i.test(navigator.vendor)}function ITe(e){let t=e.activeElement;for(;((n=t)==null||(n=n.shadowRoot)==null?void 0:n.activeElement)!=null;){var n;t=t.shadowRoot.activeElement}return t}function CTe(e,t){if(!e||!t)return!1;const n=t.getRootNode==null?void 0:t.getRootNode();if(e.contains(t))return!0;if(n&&s8(n)){let r=t;for(;r;){if(e===r)return!0;r=r.parentNode||r.host}}return!1}function CN(e){return(e==null?void 0:e.ownerDocument)||document}var ETe=typeof document<"u",BTe=function(){},Ah=ETe?x.useLayoutEffect:BTe;const yTe={...y2},vTe=yTe.useInsertionEffect,bTe=vTe||(e=>e());function QTe(e){const t=x.useRef(()=>{});return bTe(()=>{t.current=e}),x.useCallback(function(){for(var n=arguments.length,r=new Array(n),i=0;i({getShadowRoot:!0,displayCheck:typeof ResizeObserver=="function"&&ResizeObserver.toString().includes("[native code]")?"full":"none"});function Ioe(e,t){const n=poe(e,moe()),r=n.length;if(r===0)return;const i=ITe(CN(e)),A=n.indexOf(i),l=A===-1?t===1?0:r-1:A+t;return n[l]}function wTe(e){return Ioe(CN(e).body,1)||e}function xTe(e){return Ioe(CN(e).body,-1)||e}function EN(e,t){const n=t||e.currentTarget,r=e.relatedTarget;return!r||!CTe(n,r)}function _Te(e){poe(e,moe()).forEach(t=>{t.dataset.tabindex=t.getAttribute("tabindex")||"",t.setAttribute("tabindex","-1")})}function Coe(e){e.querySelectorAll("[data-tabindex]").forEach(t=>{const n=t.dataset.tabindex;delete t.dataset.tabindex,n?t.setAttribute("tabindex",n):t.removeAttribute("tabindex")})}const kTe={...y2};let Eoe=!1,DTe=0;const Boe=()=>"floating-ui-"+Math.random().toString(36).slice(2,6)+DTe++;function STe(){const[e,t]=x.useState(()=>Eoe?Boe():void 0);return Ah(()=>{e==null&&t(Boe())},[]),x.useEffect(()=>{Eoe=!0},[]),e}const RTe=kTe.useId,yoe=RTe||STe;function TTe(){const e=new Map;return{emit(t,n){var r;(r=e.get(t))==null||r.forEach(i=>i(n))},on(t,n){e.has(t)||e.set(t,new Set),e.get(t).add(n)},off(t,n){var r;(r=e.get(t))==null||r.delete(n)}}}const MTe=x.createContext(null),NTe=x.createContext(null),FTe=()=>{var e;return((e=x.useContext(MTe))==null?void 0:e.id)||null},OTe=()=>x.useContext(NTe);function voe(e){return"data-floating-ui-"+e}const boe={border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"fixed",whiteSpace:"nowrap",width:"1px",top:0,left:0},Qoe=x.forwardRef(function(e,t){const[n,r]=x.useState();Ah(()=>{mTe()&&r("button")},[]);const i={ref:t,tabIndex:0,role:n,"aria-hidden":n?void 0:!0,[voe("focus-guard")]:"",style:boe};return p.jsx("span",{...e,...i})}),woe=x.createContext(null),xoe=voe("portal");function jTe(e){e===void 0&&(e={});const{id:t,root:n}=e,r=yoe(),i=PTe(),[A,l]=x.useState(null),c=x.useRef(null);return Ah(()=>()=>{A==null||A.remove(),queueMicrotask(()=>{c.current=null})},[A]),Ah(()=>{if(!r||c.current)return;const f=t?document.getElementById(t):null;if(!f)return;const h=document.createElement("div");h.id=r,h.setAttribute(xoe,""),f.appendChild(h),c.current=h,l(h)},[t,r]),Ah(()=>{if(n===null||!r||c.current)return;let f=n||(i==null?void 0:i.portalNode);f&&!A8(f)&&(f=f.current),f=f||document.body;let h=null;t&&(h=document.createElement("div"),h.id=t,f.appendChild(h));const I=document.createElement("div");I.id=r,I.setAttribute(xoe,""),f=h||f,f.appendChild(I),c.current=I,l(I)},[t,n,r,i]),A}function LTe(e){const{children:t,id:n,root:r,preserveTabOrder:i=!0}=e,A=jTe({id:n,root:r}),[l,c]=x.useState(null),f=x.useRef(null),h=x.useRef(null),I=x.useRef(null),B=x.useRef(null),v=l==null?void 0:l.modal,D=l==null?void 0:l.open,S=!!l&&!l.modal&&l.open&&i&&!!(r||A);return x.useEffect(()=>{if(!A||!i||v)return;function R(F){A&&EN(F)&&(F.type==="focusin"?Coe:_Te)(A)}return A.addEventListener("focusin",R,!0),A.addEventListener("focusout",R,!0),()=>{A.removeEventListener("focusin",R,!0),A.removeEventListener("focusout",R,!0)}},[A,i,v]),x.useEffect(()=>{A&&(D||Coe(A))},[D,A]),p.jsxs(woe.Provider,{value:x.useMemo(()=>({preserveTabOrder:i,beforeOutsideRef:f,afterOutsideRef:h,beforeInsideRef:I,afterInsideRef:B,portalNode:A,setFocusManagerState:c}),[i,A]),children:[S&&A&&p.jsx(Qoe,{"data-type":"outside",ref:f,onFocus:R=>{if(EN(R,A)){var F;(F=I.current)==null||F.focus()}else{const N=l?l.domReference:null,M=xTe(N);M==null||M.focus()}}}),S&&A&&p.jsx("span",{"aria-owns":A.id,style:boe}),A&&Yc.createPortal(t,A),S&&A&&p.jsx(Qoe,{"data-type":"outside",ref:h,onFocus:R=>{if(EN(R,A)){var F;(F=B.current)==null||F.focus()}else{const N=l?l.domReference:null,M=wTe(N);M==null||M.focus(),l!=null&&l.closeOnFocusOut&&(l==null||l.onOpenChange(!1,R.nativeEvent,"focus-out"))}}})]})}const PTe=()=>x.useContext(woe);function UTe(e){const{open:t=!1,onOpenChange:n,elements:r}=e,i=yoe(),A=x.useRef({}),[l]=x.useState(()=>TTe()),c=FTe()!=null,[f,h]=x.useState(r.reference),I=QTe((D,S,R)=>{A.current.openEvent=D?S:void 0,l.emit("openchange",{open:D,event:S,reason:R,nested:c}),n==null||n(D,S,R)}),B=x.useMemo(()=>({setPositionReference:h}),[]),v=x.useMemo(()=>({reference:f||r.reference||null,floating:r.floating||null,domReference:r.reference}),[f,r.reference,r.floating]);return x.useMemo(()=>({dataRef:A,open:t,onOpenChange:I,elements:v,events:l,floatingId:i,refs:B}),[t,I,v,l,i,B])}function GTe(e){e===void 0&&(e={});const{nodeId:t}=e,n=UTe({...e,elements:{reference:null,floating:null,...e.elements}}),r=e.rootContext||n,i=r.elements,[A,l]=x.useState(null),[c,f]=x.useState(null),h=(i==null?void 0:i.domReference)||A,I=x.useRef(null),B=OTe();Ah(()=>{h&&(I.current=h)},[h]);const v=CG({...e,elements:{...i,...c&&{reference:c}}}),D=x.useCallback(M=>{const P=Es(M)?{getBoundingClientRect:()=>M.getBoundingClientRect(),getClientRects:()=>M.getClientRects(),contextElement:M}:M;f(P),v.refs.setReference(P)},[v.refs]),S=x.useCallback(M=>{(Es(M)||M===null)&&(I.current=M,l(M)),(Es(v.refs.reference.current)||v.refs.reference.current===null||M!==null&&!Es(M))&&v.refs.setReference(M)},[v.refs]),R=x.useMemo(()=>({...v.refs,setReference:S,setPositionReference:D,domReference:I}),[v.refs,S,D]),F=x.useMemo(()=>({...v.elements,domReference:h}),[v.elements,h]),N=x.useMemo(()=>({...v,...r,refs:R,elements:F,nodeId:t}),[v,R,F,t,r]);return Ah(()=>{r.dataRef.current.floatingContext=N;const M=B==null?void 0:B.nodesRef.current.find(P=>P.id===t);M&&(M.context=N)}),x.useMemo(()=>({...v,context:N,refs:R,elements:F}),[v,R,F,N])}function HTe(e,t,n=window){const r=x.useRef(t);x.useEffect(()=>{r.current=t});const i=h_e(e)?e:[e];x.useEffect(()=>{if(!r.current||!n||!n.addEventListener||i.length===0)return;const A=l=>{var c;return(c=r.current)==null?void 0:c.call(r,l)};return i.forEach(l=>n.addEventListener(l,A,{passive:!1})),()=>{i.forEach(l=>n.removeEventListener(l,A,!1))}},[...i,n])}function B1(){const e=ts(bS),[t,n]=il(N_e),r=hE()==="Schedule",i=r||!t,A=r;return{isNarrowScreen:e,showNav:i,setIsNavCollapsed:n,showOnlyEpochBar:A,blurBackground:e&&!t&&!A,occupyRowWidth:A||!e&&!t}}const BN=10800;function sh({slot:e,epochStartSlot:t,epochEndSlot:n}){if(!e||t===void 0||n===void 0||t===n)return 0;e=Math.min(Math.max(e,t),n);const r=n-t;return(e-t)/r}function YTe(e){return Math.trunc(e*BN)}function JTe(e,t,n){if(e===void 0||t===void 0||n===void 0)return;const r=e/BN,i=n-t;return Math.trunc(i*r)+t}function zTe(e,t){return sh(t)}function WTe(e,t){if(!e||!t)return 3e3;const n=e.end_slot-e.start_slot;return n<1e4?300:n<5e4?1e3:n<1e5?3e3:n<2e5?5e3:n<3e5?1e4:n<4e5?15e3:3e4}function _oe(e,t){return e.length?e.reduce((n,r,i)=>{if(i===0)return n;const A=n[n.length-1];return Math.abs(r.pct-A.pct){if(h){const S=setTimeout(()=>{I(!1)},100);return()=>{clearTimeout(S)}}},[h]);const B=x.useCallback(S=>{t(S),I(!0)},[t]),v=x.useCallback(S=>{const R=JTe(S[0],e==null?void 0:e.start_slot,e==null?void 0:e.end_slot);R!==void 0&&B(R)},[e==null?void 0:e.end_slot,e==null?void 0:e.start_slot,B]),D=gc(v,100,{trailing:!0});return HTe("pointerup",()=>{i.current=!1,A(!1)}),p.jsx(Fe,{direction:"column",width:"100%",flexGrow:"1",align:"center",ref:l,children:p.jsxs(rJ,{orientation:"vertical",className:vA.sliderRoot,style:{marginTop:`${f}px`},value:n,onValueChange:S=>{i.current=!0,r(S),D(S),A(!0)},onValueCommit:()=>{i.current=!1,D.flush(),A(!1)},max:BN,children:[p.jsxs(oJ,{className:vA.sliderTrack,children:[p.jsx(KTe,{isSliderChangingValueRef:i,setSliderValue:r},e==null?void 0:e.epoch),p.jsx(rMe,{updateSlot:B,slotHeight:f}),p.jsx(AMe,{updateSlot:B}),p.jsx(lMe,{updateSlot:B})]}),p.jsx(ZTe,{isOpen:h})]})})}function VTe({isSliderChangingValueRef:e,setSliderValue:t}){const n=Me(vi),r=Me(WQ),i=Me(dl),A=Me(wo),l=Me(Wp),[c,f]=x.useReducer(zTe,{slot:i,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot},sh),h=x.useMemo(()=>WTe(n,c),[n,c]);return cc(()=>{x.startTransition(()=>{f({slot:i,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot})})},h),x.useEffect(()=>{if(e.current)return;const I=A?sh({slot:A,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot}):l===IC.MySlots?sh({slot:r,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot}):c,B=YTe(I);t(v=>v[0]===B?v:[B])},[n==null?void 0:n.end_slot,n==null?void 0:n.start_slot,c,e,t,A,l,r]),p.jsx(Bo,{className:vA.epochProgress,height:`${c*100}%`})}const KTe=x.memo(VTe);function ZTe({isOpen:e}){const t=Me(wo),{showNav:n}=B1(),{refs:r,elements:i,floatingStyles:A,update:l}=GTe({placement:"right",middleware:[EG(5)]});return x.useEffect(()=>{if(i.reference&&i.floating)return hG(i.reference,i.floating,l,{animationFrame:!0})},[i,l]),p.jsxs(p.Fragment,{children:[p.jsx(iJ,{ref:r.setReference,className:An(vA.sliderThumb,{[vA.collapsed]:!n})}),p.jsx(LTe,{id:"app",children:p.jsx(Se,{size:"1",ref:r.setFloating,style:A,className:An("rt-TooltipContent","rt-TooltipText",e?vA.show:vA.hide),children:t})})]})}const $Te=e=>$e(t=>{const n=t(dl);return e>(n??0)});function eMe({slot:e,pct:t,height:n,updateSlot:r}){const i=Me(v0),A=Me(x.useMemo(()=>$Te(e),[e])),l=f=>h=>{h.stopPropagation(),h.preventDefault(),r(f)},c=i?e{if(!n||!(r!=null&&r.length))return;const A=r.map(l=>({slot:l,pct:sh({slot:l,epochStartSlot:n.start_slot,epochEndSlot:n.end_slot})}));return _oe(A,.005)},[n,r]);return p.jsx(p.Fragment,{children:i==null?void 0:i.map(({slot:A,pct:l})=>p.jsx(tMe,{slot:A,pct:l,height:t,updateSlot:e},A))})}const rMe=x.memo(nMe);function oMe({slot:e,pct:t,updateSlot:n}){const r=i=>A=>{A.stopPropagation(),A.preventDefault(),n(i)};return p.jsx(p.Fragment,{children:p.jsx("div",{className:An(vA.skippedSlot,vA.clickable),style:{bottom:`${t*100}%`},onPointerDown:r(e),children:p.jsx("img",{src:L5e,alt:"skipped slot",className:An(vA.skippedSlotIcon,vA.clickable),style:{bottom:"-3px"},onPointerDown:r(e)})})})}function iMe({updateSlot:e}){const t=Me(vi),n=Me(ZI),r=x.useMemo(()=>{if(!t||!(n!=null&&n.length))return;const i=n.map(A=>({slot:A,pct:sh({slot:A,epochStartSlot:t.start_slot,epochEndSlot:t.end_slot})}));return _oe(i,.005)},[t,n]);return p.jsx(p.Fragment,{children:r==null?void 0:r.map(({slot:i,pct:A})=>p.jsx(oMe,{slot:i,pct:A,updateSlot:e},i))})}const AMe=x.memo(iMe);function sMe({slot:e,pct:t,updateSlot:n}){const r=i=>A=>{A.stopPropagation(),A.preventDefault(),n(i)};return p.jsxs(p.Fragment,{children:[p.jsx(Bo,{className:An(vA.firstProcessedSlot,vA.clickable),style:{bottom:`${t*100}%`},onPointerDown:r(e)}),p.jsx("img",{src:P5e,alt:"first processed slot",className:An(vA.firstProcessedSlotIcon,vA.clickable),style:{bottom:`calc(${t*100}%)`},onPointerDown:r(e)})]})}function aMe({updateSlot:e}){const t=Me(vi),n=Me(v0),r=x.useMemo(()=>{if(!(!n||!t))return sh({slot:n,epochStartSlot:t.start_slot,epochEndSlot:t.end_slot})},[t,n]);return!r||!n?null:p.jsx(sMe,{slot:n,pct:r,updateSlot:e})}const lMe=x.memo(aMe),cMe=e=>x.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},x.createElement("path",{d:"M13 7h9v2h-9zm0 8h9v2h-9zm3-4h6v2h-6zm-3 1L8 7v4H2v2h6v4z"}));function yN({isFloating:e,isLarge:t}){const{showNav:n,setIsNavCollapsed:r,showOnlyEpochBar:i}=B1(),A=`${t?cq:rQ}px`;return i?p.jsx("div",{style:{height:A,width:A}}):p.jsx(rl,{size:"1",onClick:()=>r(l=>!l),className:An(ih.toggleButton,{[ih.floating]:e}),style:{height:A,width:A},children:p.jsx(cMe,{className:An({[ih.lg]:t,[ih.mirror]:n})})})}const koe=Rp+Tp;function uMe(){const e=ts(bS),{showNav:t,occupyRowWidth:n,showOnlyEpochBar:r}=B1(),i=t?iQ:0,A=x.useMemo(()=>r?vS:uq,[r]);return p.jsx("div",{style:{flexShrink:0,width:n?`${A}px`:"0"},children:p.jsxs(Fe,{width:t?`${A+i}px`:"0",overflow:"hidden",className:An("sticky",ih.slotNavContainer,{[ih.navBackground]:!r}),style:{zIndex:Kd-1},top:`${koe}px`,height:`calc(100vh - ${koe}px)`,ml:`${-i}px`,pl:`${i}px`,pb:"2",children:[p.jsxs(Fe,{flexShrink:"0",direction:"column",width:`${oQ}px`,pt:e?"0":`${rQ+m0}px`,children:[e&&p.jsx("div",{style:{marginBottom:`${m0}px`},children:p.jsx(yN,{})}),p.jsx(D5e,{}),p.jsx(qTe,{})]}),!r&&p.jsxs(Fe,{ml:`${tC}px`,direction:"column",width:`${AQ}px`,flexShrink:"0",gap:`${m0}px`,children:[p.jsx(j5e,{}),p.jsx(Fe,{flexGrow:"1",children:p.jsx(hs,{children:({height:l,width:c})=>p.jsx(I5e,{width:c,height:l})})})]})]})})}const dMe="_container_1gsu5_1",fMe="_dropdown-menu_1gsu5_7",gMe="_pointer_1gsu5_11",hMe="_label_1gsu5_18",pMe="_value_1gsu5_23",mMe="_value-suffix_1gsu5_28",IMe="_horizontal_1gsu5_34",pf={container:dMe,dropdownMenu:fMe,pointer:gMe,label:hMe,value:pMe,valueSuffix:mMe,horizontal:IMe},CMe="_popover-content_l5gtm_1",EMe={popoverContent:CMe};function Doe({children:e,content:t,isOpen:n,onOpenChange:r}){const i=Me(Yg);return p.jsxs(_8,{open:n,onOpenChange:r,children:[p.jsxs(Fe,{children:[p.jsx(zH,{asChild:!0,children:e}),p.jsx(k8,{})]}),p.jsx(D8,{container:i,children:p.jsx(S8,{className:EMe.popoverContent,style:{zIndex:Kd},sideOffset:5,tabIndex:void 0,children:t})})]})}function BMe(){var l;const{peer:e,identityKey:t}=HC(),n=ts("(min-width: 473px)"),r=ts("(min-width: 608px)"),i=ts("(min-width: 1100px)"),A=ts("(max-width: 1330px)");return x.useEffect(()=>{var f;let c=document.title;(f=e==null?void 0:e.info)!=null&&f.name?c+=` | ${e.info.name}`:t&&(c+=` | ${t}`),document.title=c},[t,e]),p.jsx(yMe,{showDropdown:!0,children:p.jsxs("div",{className:An(pf.container,pf.horizontal,pf.pointer),children:[p.jsx(fu,{url:(l=e==null?void 0:e.info)==null?void 0:l.icon_url,size:28,isYou:!0}),n&&p.jsx(S0,{label:"Validator Name",tooltip:"The validators identity public key",children:A?`${t==null?void 0:t.substring(0,8)}...`:t}),r&&p.jsxs(p.Fragment,{children:[p.jsx(Toe,{}),p.jsx(Roe,{})]}),i&&p.jsxs(p.Fragment,{children:[p.jsx(Noe,{}),p.jsx(Moe,{}),p.jsx(Soe,{})]})]})})}function yMe({showDropdown:e,children:t}){return e?p.jsx(Doe,{content:p.jsx(vMe,{}),children:t}):t}function vMe(){var n;const{peer:e,identityKey:t}=HC();return p.jsxs(Fe,{direction:"column",wrap:"wrap",gap:"2",className:An(pf.container,pf.dropdownMenu),style:{zIndex:Kd},children:[p.jsxs(Fe,{gap:"2",children:[p.jsx(fu,{url:(n=e==null?void 0:e.info)==null?void 0:n.icon_url,size:24,isYou:!0}),p.jsx(S0,{label:"Validator Name",tooltip:"The validators identity public key",children:t})]}),p.jsx(Toe,{}),p.jsx(Roe,{}),p.jsx(Noe,{}),p.jsx(Moe,{}),p.jsx(Soe,{}),p.jsx(bMe,{}),p.jsx(QMe,{})]})}function bMe(){var t;const{peer:e}=HC();return p.jsx(S0,{label:"Vote Pubkey",tooltip:"The public key of vote account, encoded in base58",children:(t=e==null?void 0:e.vote[0])==null?void 0:t.vote_account})}function QMe(){const e=Me(kW),t=hC(e);return p.jsx(p.Fragment,{children:p.jsx(S0,{label:"Vote Balance",tooltip:"Account balance of this validators vote account. The balance is on the highest slot of the currently active fork of the validator.",children:p.jsx(y1,{value:t,suffix:"SOL"})})})}function Soe(){const e=Me(_W),t=hC(e);return p.jsx(S0,{label:"Identity Balance",tooltip:"Account balance of this validators identity account. The balance is on the highest slot of the currently active fork of the validator.",children:p.jsx(y1,{value:t,suffix:"SOL"})})}function Roe(){const e=Me(AZ),t=e===void 0?void 0:r1(e,{significantDigits:4,trailingZeroes:!1});return p.jsx(S0,{label:"Stake %",tooltip:"What percentage of total stake is delegated to this validator",children:p.jsx(y1,{value:t,suffix:"%"})})}function Toe(){const e=Me(T5),t=hC(e);return p.jsx(S0,{label:"Stake Amount",tooltip:"Amount of total stake that is delegated to this validator",children:p.jsx(y1,{value:t,suffix:"SOL"})})}function Moe(){var n;const{peer:e}=HC(),t=e==null?void 0:e.vote.reduce((r,i)=>i.activated_stake>r.maxStake?{maxStake:i.activated_stake,commission:i.commission}:r,{maxStake:0n,commission:void 0});return p.jsx(S0,{label:"Commission",children:p.jsx(y1,{value:(n=t==null?void 0:t.commission)==null?void 0:n.toLocaleString(),suffix:"%"})})}function Noe(){const e=Gee(6e4),t=e?UK(e,{omitSeconds:!0}):void 0;return p.jsx(S0,{label:"Uptime",children:t==null?void 0:t.map(([n,r],i)=>p.jsxs(x.Fragment,{children:[i!==0&&"\xA0",p.jsx(y1,{value:n,suffix:r,excludeSpace:!0})]},`${n}${r}`))})}function S0({label:e,tooltip:t,children:n}){if(!n)return null;const r=p.jsx("div",{className:pf.value,children:n});return p.jsxs(Fe,{direction:"column",children:[p.jsx(Se,{className:pf.label,children:e}),t?p.jsx(Zo,{content:t,children:r}):r]})}function y1({value:e,suffix:t,valueColor:n,excludeSpace:r}){return p.jsxs(p.Fragment,{children:[p.jsxs("span",{style:{color:n},children:[e,!r&&"\xA0"]}),p.jsx("span",{className:pf.valueSuffix,children:t})]})}const wMe="_nav-link_t5vcc_1",xMe="_icon_t5vcc_11",_Me="_dropdown-icon_t5vcc_16",kMe="_active_t5vcc_26",DMe="_nav-dropdown-content_t5vcc_32",IE={navLink:wMe,icon:xMe,dropdownIcon:_Me,active:kMe,navDropdownContent:DMe},SMe=e=>x.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},x.createElement("path",{d:"M21 5.47 12 12 7.62 7.62 3 11V8.52L7.83 5l4.38 4.38L21 3v2.47zM21 15h-4.7l-4.17 3.34L6 12.41l-3 2.13V17l2.8-2 6.2 6 5-4h4v-2z"})),RMe=e=>x.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},x.createElement("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"})),TMe=e=>x.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},x.createElement("path",{d:"M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zM9 14H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm-8 4H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2z"})),MMe=e=>x.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},x.createElement("path",{d:"M18 11v2h4v-2h-4zm-2 6.61c.96.71 2.21 1.65 3.2 2.39.4-.53.8-1.07 1.2-1.6-.99-.74-2.24-1.68-3.2-2.4-.4.54-.8 1.08-1.2 1.61zM20.4 5.6c-.4-.53-.8-1.07-1.2-1.6-.99.74-2.24 1.68-3.2 2.4.4.53.8 1.07 1.2 1.6.96-.72 2.21-1.65 3.2-2.4zM4 9c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1v4h2v-4h1l5 3V6L8 9H4zm11.5 3c0-1.33-.58-2.53-1.5-3.35v6.69c.92-.81 1.5-2.01 1.5-3.34z"})),NMe=e=>x.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},x.createElement("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"}));function FMe(){const e=Me(eA),t=Me(dl),n=Me(wo),r=It(wo),[i,A]=x.useMemo(()=>{if(e===void 0)return[-1,-1];const l=e.findIndex(f=>f>(n??t??0));let c=l-1;return c===e.findIndex(f=>f===(n??t??0))&&c--,[c,l]},[t,e,n]);return x.useMemo(()=>({navPrevLeaderSlot:(l=1)=>{if(i>-1&&l>0){const c=e==null?void 0:e[i-l+1];c!==void 0&&r(c)}},navNextLeaderSlot:(l=1)=>{if(A>-1&&l>0){const c=e==null?void 0:e[A+l-1];c!==void 0&&r(c)}}}),[e,A,i,r])}const OMe={Overview:SMe,Schedule:TMe,Gossip:MMe,"Slot Details":RMe},Ax=x.forwardRef(({label:e,isActive:t,showDropdownIcon:n=!1,isLink:r,...i},A)=>{const l=Me(Nb),c=v5(l),f=OMe[e],h=rx[e],I=x.useMemo(()=>{const B=t?c:rR;return p.jsxs(p.Fragment,{children:[p.jsx(f,{className:IE.icon,fill:B}),e,n&&p.jsx(NMe,{className:IE.dropdownIcon,fill:B})]})},[f,c,t,e,n]);return p.jsx(nl,{ref:A,...i,size:"2",variant:"soft",color:"gray",className:An(IE.navLink,{[IE.active]:t}),style:{color:t?c:void 0},asChild:r,children:r?p.jsx(vg,{to:h,children:I}):I})});Ax.displayName="NavButton";function jMe(){const e=hE();return p.jsx(Fe,{gap:`${m0}px`,children:Object.keys(rx).map(t=>{const n=t;return p.jsx(Ax,{label:n,isActive:e===n,isLink:!0},n)})})}function LMe(){const e=Me(Yg),t=hE(),n=Me(Oc);return p.jsxs(xH,{children:[p.jsx(_H,{asChild:!0,children:p.jsx(Ax,{label:t,isActive:!0,showDropdownIcon:!0,isLink:!1},t)}),p.jsx(w8,{container:e,children:p.jsx(kH,{side:"bottom",sideOffset:5,className:IE.navDropdownContent,style:{zIndex:Kd},children:Object.keys(rx).map(r=>{const i=r;if(!(i==="Gossip"&&n!=="Firedancer"))return p.jsx(DH,{asChild:!0,children:p.jsx(Ax,{label:i,isActive:i===t,isLink:!0},i)},i)})})})]})}function PMe(){const e=FMe();return x.useEffect(()=>{const t=n=>{n.code==="ArrowLeft"?e.navPrevLeaderSlot():n.code==="ArrowRight"&&e.navNextLeaderSlot()};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[e]),null}const Foe="/assets/frankendancer_logo-CHyfJ772.svg",UMe="_logo_1ml9x_1",GMe={logo:UMe};function HMe(){const e=Me(Oc);return p.jsx(ib,{children:p.jsx(vg,{to:"/",children:p.jsx("img",{className:GMe.logo,width:oQ,src:e===Au.Firedancer?DT:Foe,alt:e===Au.Firedancer?"Firedancer":"Frankendancer"})})})}function Ooe(){const{setIsNavCollapsed:e}=B1();return p.jsx("div",{onClick:()=>e(!0),className:"blur",style:{zIndex:Kd-2}})}const YMe="_nav-background_1g8mz_5",JMe={navBackground:YMe};function zMe(){const e=ts("(max-width: 900px)"),t=ts("(max-width: 401px)"),{isNarrowScreen:n,blurBackground:r,showNav:i,showOnlyEpochBar:A}=B1(),l=!i&&t,c="3px";return p.jsxs("div",{className:"sticky",style:{top:0,backgroundColor:"var(--color-background)",zIndex:Kd},children:[p.jsx(qke,{}),p.jsxs(Bo,{px:"2",className:"app-width-container",children:[p.jsxs(Fe,{height:`${Tp}px`,align:"center",children:[p.jsxs(Fe,{className:An({[JMe.navBackground]:i&&!A}),height:"100%",align:"center",gapX:l?c:`${tC}px`,pr:l?c:`${m0}px`,ml:`${-iQ}px`,pl:`${iQ}px`,children:[n&&!i&&p.jsx(yN,{isLarge:!0}),p.jsx(HMe,{}),p.jsx(mee,{})]}),p.jsxs(Fe,{position:"relative",gapX:l?c:`${nQ}px`,height:"100%",flexGrow:"1",align:"center",justify:"between",pl:l?c:`${nQ-m0}px`,children:[p.jsx(PMe,{}),e?p.jsx(LMe,{}):p.jsx(jMe,{}),p.jsxs(Fe,{gap:"3",align:"center",children:[p.jsx(BMe,{}),p.jsx(WMe,{})]}),r&&p.jsx(Ooe,{})]})]}),!n&&p.jsx("div",{style:{position:"relative"},children:p.jsx("div",{style:{position:"absolute",top:0,left:0},children:p.jsx(yN,{isFloating:!i})})})]})]})}function WMe(){const e=Me(zg),t=It(EC),n=It(j5);return e?p.jsx(rl,{ref:n,variant:"ghost",color:"gray",onClick:()=>t(!0),children:p.jsx(kT,{})}):null}const v1=Gve({component:qMe});function qMe(){const e=Me(mZ);return p.jsxs(p.Fragment,{children:[p.jsx(tSe,{}),p.jsx(qDe,{children:p.jsxs("div",{id:"scroll-container",style:{position:"relative",height:"100dvh",maxHeight:e?"100vh":"unset",overflowY:e?"hidden":"auto",willChange:"scroll-position",contain:"paint",isolation:"isolate"},children:[p.jsx(zMe,{}),p.jsxs(Fe,{className:"app-width-container",px:"2",position:"relative",children:[p.jsx(uMe,{}),p.jsx(XMe,{})]})]})})]})}function XMe(){const e=hE()==="Schedule",{setIsNavCollapsed:t,isNarrowScreen:n,occupyRowWidth:r,blurBackground:i}=B1();return x.useEffect(()=>{t(n)},[n,t]),p.jsxs(Bo,{position:"relative",flexGrow:"1",minWidth:"0",pb:"2",pl:e||!r?"0px":`${nQ-m0}px`,children:[p.jsx(tW,{}),i&&p.jsx(Ooe,{})]})}const joe=e=>{const t="input"in e?e.input:"input",n="output"in e?e.output:"output",r="schema"in e?e.schema._input:e._input,i="schema"in e?e.schema._output:e._output;return{types:{input:t==="output"?i:r,output:n==="input"?r:i},parse:A=>"schema"in e?e.schema.parse(A):e.parse(A)}},vN=(e,t)=>cQe().pipe(e.catch(t)),VMe="_text_nk1yn_1",KMe={text:VMe};function mf({text:e}){return p.jsx(Se,{className:KMe.text,children:e})}var ZMe=typeof kA=="object"&&kA&&kA.Object===Object&&kA,Loe=ZMe,$Me=Loe,eNe=typeof self=="object"&&self&&self.Object===Object&&self,tNe=$Me||eNe||Function("return this")(),Cu=tNe,nNe=Cu,rNe=nNe.Symbol,b1=rNe,Poe=b1,Uoe=Object.prototype,oNe=Uoe.hasOwnProperty,iNe=Uoe.toString,CE=Poe?Poe.toStringTag:void 0;function ANe(e){var t=oNe.call(e,CE),n=e[CE];try{e[CE]=void 0;var r=!0}catch{}var i=iNe.call(e);return r&&(t?e[CE]=n:delete e[CE]),i}var sNe=ANe,aNe=Object.prototype,lNe=aNe.toString;function cNe(e){return lNe.call(e)}var uNe=cNe,Goe=b1,dNe=sNe,fNe=uNe,gNe="[object Null]",hNe="[object Undefined]",Hoe=Goe?Goe.toStringTag:void 0;function pNe(e){return e==null?e===void 0?hNe:gNe:Hoe&&Hoe in Object(e)?dNe(e):fNe(e)}var ah=pNe;function mNe(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var R0=mNe,INe=ah,CNe=R0,ENe="[object AsyncFunction]",BNe="[object Function]",yNe="[object GeneratorFunction]",vNe="[object Proxy]";function bNe(e){if(!CNe(e))return!1;var t=INe(e);return t==BNe||t==yNe||t==ENe||t==vNe}var sx=bNe;const Yoe=Ci(sx);var QNe=Cu,wNe=QNe["__core-js_shared__"],xNe=wNe,bN=xNe,Joe=function(){var e=/[^.]+$/.exec(bN&&bN.keys&&bN.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function _Ne(e){return!!Joe&&Joe in e}var kNe=_Ne,DNe=Function.prototype,SNe=DNe.toString;function RNe(e){if(e!=null){try{return SNe.call(e)}catch{}try{return e+""}catch{}}return""}var zoe=RNe,TNe=sx,MNe=kNe,NNe=R0,FNe=zoe,ONe=/[\\^$.*+?()[\]{}|]/g,jNe=/^\[object .+?Constructor\]$/,LNe=Function.prototype,PNe=Object.prototype,UNe=LNe.toString,GNe=PNe.hasOwnProperty,HNe=RegExp("^"+UNe.call(GNe).replace(ONe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function YNe(e){if(!NNe(e)||MNe(e))return!1;var t=TNe(e)?HNe:jNe;return t.test(FNe(e))}var JNe=YNe;function zNe(e,t){return e==null?void 0:e[t]}var WNe=zNe,qNe=JNe,XNe=WNe;function VNe(e,t){var n=XNe(e,t);return qNe(n)?n:void 0}var lh=VNe,KNe=lh,ZNe=KNe(Object,"create"),ax=ZNe,Woe=ax;function $Ne(){this.__data__=Woe?Woe(null):{},this.size=0}var eFe=$Ne;function tFe(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var nFe=tFe,rFe=ax,oFe="__lodash_hash_undefined__",iFe=Object.prototype,AFe=iFe.hasOwnProperty;function sFe(e){var t=this.__data__;if(rFe){var n=t[e];return n===oFe?void 0:n}return AFe.call(t,e)?t[e]:void 0}var aFe=sFe,lFe=ax,cFe=Object.prototype,uFe=cFe.hasOwnProperty;function dFe(e){var t=this.__data__;return lFe?t[e]!==void 0:uFe.call(t,e)}var fFe=dFe,gFe=ax,hFe="__lodash_hash_undefined__";function pFe(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=gFe&&t===void 0?hFe:t,this}var mFe=pFe,IFe=eFe,CFe=nFe,EFe=aFe,BFe=fFe,yFe=mFe;function Q1(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}var LFe=jFe,PFe=lx;function UFe(e,t){var n=this.__data__,r=PFe(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var GFe=UFe,HFe=QFe,YFe=TFe,JFe=FFe,zFe=LFe,WFe=GFe;function w1(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}var Xoe=G9e;function H9e(e,t,n){for(var r=-1,i=e==null?0:e.length;++r=aOe){var h=t?null:AOe(e);if(h)return sOe(h);l=!1,i=iOe,f=new nOe}else f=t?[]:c;e:for(;++r0&&B.height>0,F=Math.round(n[0]),N=Math.round(n[1]);R&&(r==="top"?(F-=B.width/2,N-=B.height+14):r==="right"?(F+=14,N-=B.height/2):r==="bottom"?(F-=B.width/2,N+=14):r==="left"?(F-=B.width+14,N-=B.height/2):r==="center"&&(F-=B.width/2,N-=B.height/2),D={transform:tie(F,N)},v.current||(S=!0),v.current=[F,N]);var M=lf({to:D,config:f,immediate:!c||S}),P=ch({},EOe,A.tooltip.wrapper,{transform:(t=M.transform)!=null?t:tie(F,N),opacity:M.transform?1:0});return p.jsx($s.div,{ref:I,style:P,children:i})});nie.displayName="TooltipWrapper";var SN=x.memo(function(e){var t=e.size,n=t===void 0?12:t,r=e.color,i=e.style;return p.jsx("span",{style:ch({display:"block",width:n,height:n,background:r},i===void 0?{}:i)})}),RN=x.memo(function(e){var t,n=e.id,r=e.value,i=e.format,A=e.enableChip,l=A!==void 0&&A,c=e.color,f=e.renderContent,h=ta(),I=NF(i);if(typeof f=="function")t=f();else{var B=r;I!==void 0&&B!==void 0&&(B=I(B)),t=p.jsxs("div",{style:h.tooltip.basic,children:[l&&p.jsx(SN,{color:c,style:h.tooltip.chip}),B!==void 0?p.jsxs("span",{children:[n,": ",p.jsx("strong",{children:""+B})]}):n]})}return p.jsx("div",{style:h.tooltip.container,children:t})}),BOe={width:"100%",borderCollapse:"collapse"},yOe=x.memo(function(e){var t,n=e.title,r=e.rows,i=r===void 0?[]:r,A=e.renderContent,l=ta();return i.length?(t=typeof A=="function"?A():p.jsxs("div",{children:[n&&n,p.jsx("table",{style:ch({},BOe,l.tooltip.table),children:p.jsx("tbody",{children:i.map(function(c,f){return p.jsx("tr",{children:c.map(function(h,I){return p.jsx("td",{style:l.tooltip.tableCell,children:h},I)})},f)})})})]}),p.jsx("div",{style:l.tooltip.container,children:t})):null});yOe.displayName="TableTooltip";var TN=x.memo(function(e){var t=e.x0,n=e.x1,r=e.y0,i=e.y1,A=ta(),l=Cf(),c=l.animate,f=l.config,h=x.useMemo(function(){return ch({},A.crosshair.line,{pointerEvents:"none"})},[A.crosshair.line]),I=lf({x1:t,x2:n,y1:r,y2:i,config:f,immediate:!c});return p.jsx($s.line,ch({},I,{fill:"none",style:h}))});TN.displayName="CrosshairLine";var vOe=x.memo(function(e){var t,n,r=e.width,i=e.height,A=e.type,l=e.x,c=e.y;return A==="cross"?(t={x0:l,x1:l,y0:0,y1:i},n={x0:0,x1:r,y0:c,y1:c}):A==="top-left"?(t={x0:l,x1:l,y0:0,y1:c},n={x0:0,x1:l,y0:c,y1:c}):A==="top"?t={x0:l,x1:l,y0:0,y1:c}:A==="top-right"?(t={x0:l,x1:l,y0:0,y1:c},n={x0:l,x1:r,y0:c,y1:c}):A==="right"?n={x0:l,x1:r,y0:c,y1:c}:A==="bottom-right"?(t={x0:l,x1:l,y0:c,y1:i},n={x0:l,x1:r,y0:c,y1:c}):A==="bottom"?t={x0:l,x1:l,y0:c,y1:i}:A==="bottom-left"?(t={x0:l,x1:l,y0:c,y1:i},n={x0:0,x1:l,y0:c,y1:c}):A==="left"?n={x0:0,x1:l,y0:c,y1:c}:A==="x"?t={x0:l,x1:l,y0:0,y1:i}:A==="y"&&(n={x0:0,x1:r,y0:c,y1:c}),p.jsxs(p.Fragment,{children:[t&&p.jsx(TN,{x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1}),n&&p.jsx(TN,{x0:n.x0,x1:n.x1,y0:n.y0,y1:n.y1})]})});vOe.displayName="Crosshair";var rie=x.createContext({showTooltipAt:function(){},showTooltipFromEvent:function(){},hideTooltip:function(){}}),MN={isVisible:!1,position:[null,null],content:null,anchor:null},oie=x.createContext(MN),bOe=function(e){var t=x.useState(MN),n=t[0],r=t[1],i=x.useCallback(function(c,f,h){var I=f[0],B=f[1];h===void 0&&(h="top"),r({isVisible:!0,position:[I,B],anchor:h,content:c})},[r]),A=x.useCallback(function(c,f,h){h===void 0&&(h="top");var I=e.current.getBoundingClientRect(),B=e.current.offsetWidth,v=B===I.width?1:B/I.width,D="touches"in f?f.touches[0]:f,S=D.clientX,R=D.clientY,F=(S-I.left)*v,N=(R-I.top)*v;h!=="left"&&h!=="right"||(h=F-1&&e%1==0&&e<=Fje}var UN=Oje,jje=sx,Lje=UN;function Pje(e){return e!=null&&Lje(e.length)&&!jje(e)}var hx=Pje,Uje=hx,Gje=Eu;function Hje(e){return Gje(e)&&Uje(e)}var Iie=Hje,px={exports:{}};function Yje(){return!1}var Jje=Yje;px.exports,function(e,t){var n=Cu,r=Jje,i=t&&!t.nodeType&&t,A=i&&!0&&e&&!e.nodeType&&e,l=A&&A.exports===i,c=l?n.Buffer:void 0,f=c?c.isBuffer:void 0,h=f||r;e.exports=h}(px,px.exports);var mx=px.exports,zje=ah,Wje=LN,qje=Eu,Xje="[object Object]",Vje=Function.prototype,Kje=Object.prototype,Cie=Vje.toString,Zje=Kje.hasOwnProperty,$je=Cie.call(Object);function e7e(e){if(!qje(e)||zje(e)!=Xje)return!1;var t=Wje(e);if(t===null)return!0;var n=Zje.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&Cie.call(n)==$je}var Eie=e7e;const BE=Ci(Eie);var t7e=ah,n7e=UN,r7e=Eu,o7e="[object Arguments]",i7e="[object Array]",A7e="[object Boolean]",s7e="[object Date]",a7e="[object Error]",l7e="[object Function]",c7e="[object Map]",u7e="[object Number]",d7e="[object Object]",f7e="[object RegExp]",g7e="[object Set]",h7e="[object String]",p7e="[object WeakMap]",m7e="[object ArrayBuffer]",I7e="[object DataView]",C7e="[object Float32Array]",E7e="[object Float64Array]",B7e="[object Int8Array]",y7e="[object Int16Array]",v7e="[object Int32Array]",b7e="[object Uint8Array]",Q7e="[object Uint8ClampedArray]",w7e="[object Uint16Array]",x7e="[object Uint32Array]",ui={};ui[C7e]=ui[E7e]=ui[B7e]=ui[y7e]=ui[v7e]=ui[b7e]=ui[Q7e]=ui[w7e]=ui[x7e]=!0,ui[o7e]=ui[i7e]=ui[m7e]=ui[A7e]=ui[I7e]=ui[s7e]=ui[a7e]=ui[l7e]=ui[c7e]=ui[u7e]=ui[d7e]=ui[f7e]=ui[g7e]=ui[h7e]=ui[p7e]=!1;function _7e(e){return r7e(e)&&n7e(e.length)&&!!ui[t7e(e)]}var k7e=_7e;function D7e(e){return function(t){return e(t)}}var Ix=D7e,Cx={exports:{}};Cx.exports,function(e,t){var n=Loe,r=t&&!t.nodeType&&t,i=r&&!0&&e&&!e.nodeType&&e,A=i&&i.exports===r,l=A&&n.process,c=function(){try{var f=i&&i.require&&i.require("util").types;return f||l&&l.binding&&l.binding("util")}catch{}}();e.exports=c}(Cx,Cx.exports);var GN=Cx.exports,S7e=k7e,R7e=Ix,Bie=GN,yie=Bie&&Bie.isTypedArray,T7e=yie?R7e(yie):S7e,HN=T7e;function M7e(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var vie=M7e,N7e=ON,F7e=EE,O7e=Object.prototype,j7e=O7e.hasOwnProperty;function L7e(e,t,n){var r=e[t];(!(j7e.call(e,t)&&F7e(r,n))||n===void 0&&!(t in e))&&N7e(e,t,n)}var YN=L7e,P7e=YN,U7e=ON;function G7e(e,t,n,r){var i=!n;n||(n={});for(var A=-1,l=t.length;++A-1&&e%1==0&&e0){if(++t>=ZLe)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var nPe=tPe,rPe=KLe,oPe=nPe,iPe=oPe(rPe),Mie=iPe,APe=Die,sPe=Rie,aPe=Mie;function lPe(e,t){return aPe(sPe(e,t,APe),e+"")}var Nie=lPe,cPe=EE,uPe=hx,dPe=Ex,fPe=R0;function gPe(e,t,n){if(!fPe(n))return!1;var r=typeof t;return(r=="number"?uPe(n)&&dPe(t,n.length):r=="string"&&t in n)?cPe(n[t],e):!1}var hPe=gPe,pPe=Nie,mPe=hPe;function IPe(e){return pPe(function(t,n){var r=-1,i=n.length,A=i>1?n[i-1]:void 0,l=i>2?n[2]:void 0;for(A=e.length>3&&typeof A=="function"?(i--,A):void 0,l&&mPe(n[0],n[1],l)&&(A=i<3?void 0:A,i=1),t=Object(t);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?vx(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?vx(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=yUe.exec(e))?new rs(t[1],t[2],t[3],1):(t=vUe.exec(e))?new rs(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=bUe.exec(e))?vx(t[1],t[2],t[3],t[4]):(t=QUe.exec(e))?vx(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=wUe.exec(e))?Zie(t[1],t[2]/100,t[3]/100,1):(t=xUe.exec(e))?Zie(t[1],t[2]/100,t[3]/100,t[4]):Jie.hasOwnProperty(e)?qie(Jie[e]):e==="transparent"?new rs(NaN,NaN,NaN,0):null}function qie(e){return new rs(e>>16&255,e>>8&255,e&255,1)}function vx(e,t,n,r){return r<=0&&(e=t=n=NaN),new rs(e,t,n,r)}function Xie(e){return e instanceof k1||(e=XN(e)),e?(e=e.rgb(),new rs(e.r,e.g,e.b,e.opacity)):new rs}function dh(e,t,n,r){return arguments.length===1?Xie(e):new rs(e,t,n,r??1)}function rs(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}yx(rs,dh,qN(k1,{brighter(e){return e=e==null?D1:Math.pow(D1,e),new rs(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?uh:Math.pow(uh,e),new rs(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new rs(fh(this.r),fh(this.g),fh(this.b),bx(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Vie,formatHex:Vie,formatHex8:DUe,formatRgb:Kie,toString:Kie}));function Vie(){return`#${gh(this.r)}${gh(this.g)}${gh(this.b)}`}function DUe(){return`#${gh(this.r)}${gh(this.g)}${gh(this.b)}${gh((isNaN(this.opacity)?1:this.opacity)*255)}`}function Kie(){const e=bx(this.opacity);return`${e===1?"rgb(":"rgba("}${fh(this.r)}, ${fh(this.g)}, ${fh(this.b)}${e===1?")":`, ${e})`}`}function bx(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function fh(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function gh(e){return e=fh(e),(e<16?"0":"")+e.toString(16)}function Zie(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Bc(e,t,n,r)}function $ie(e){if(e instanceof Bc)return new Bc(e.h,e.s,e.l,e.opacity);if(e instanceof k1||(e=XN(e)),!e)return new Bc;if(e instanceof Bc)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),A=Math.max(t,n,r),l=NaN,c=A-i,f=(A+i)/2;return c?(t===A?l=(n-r)/c+(n0&&f<1?0:l,new Bc(l,c,f,e.opacity)}function SUe(e,t,n,r){return arguments.length===1?$ie(e):new Bc(e,t,n,r??1)}function Bc(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}yx(Bc,SUe,qN(k1,{brighter(e){return e=e==null?D1:Math.pow(D1,e),new Bc(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?uh:Math.pow(uh,e),new Bc(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new rs(VN(e>=240?e-240:e+120,i,r),VN(e,i,r),VN(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new Bc(eAe(this.h),Qx(this.s),Qx(this.l),bx(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=bx(this.opacity);return`${e===1?"hsl(":"hsla("}${eAe(this.h)}, ${Qx(this.s)*100}%, ${Qx(this.l)*100}%${e===1?")":`, ${e})`}`}}));function eAe(e){return e=(e||0)%360,e<0?e+360:e}function Qx(e){return Math.max(0,Math.min(1,e||0))}function VN(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const RUe=Math.PI/180,TUe=180/Math.PI;var tAe=-.14861,KN=1.78277,ZN=-.29227,wx=-.90649,wE=1.97294,nAe=wE*wx,rAe=wE*KN,oAe=KN*ZN-wx*tAe;function MUe(e){if(e instanceof hh)return new hh(e.h,e.s,e.l,e.opacity);e instanceof rs||(e=Xie(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(oAe*r+nAe*t-rAe*n)/(oAe+nAe-rAe),A=r-i,l=(wE*(n-i)-ZN*A)/wx,c=Math.sqrt(l*l+A*A)/(wE*i*(1-i)),f=c?Math.atan2(l,A)*TUe-120:NaN;return new hh(f<0?f+360:f,c,i,e.opacity)}function yu(e,t,n,r){return arguments.length===1?MUe(e):new hh(e,t,n,r??1)}function hh(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}yx(hh,yu,qN(k1,{brighter(e){return e=e==null?D1:Math.pow(D1,e),new hh(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?uh:Math.pow(uh,e),new hh(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*RUe,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new rs(255*(t+n*(tAe*r+KN*i)),255*(t+n*(ZN*r+wx*i)),255*(t+n*(wE*r)),this.opacity)}}));function NUe(e,t,n,r,i){var A=e*e,l=A*e;return((1-3*e+3*A-l)*t+(4-6*A+3*l)*n+(1+3*e+3*A-3*l)*r+l*i)/6}function FUe(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],A=e[r+1],l=r>0?e[r-1]:2*i-A,c=r()=>e;function iAe(e,t){return function(n){return e+n*t}}function OUe(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function jUe(e,t){var n=t-e;return n?iAe(e,n>180||n<-180?n-360*Math.round(n/360):n):$N(isNaN(e)?t:e)}function LUe(e){return(e=+e)==1?R1:function(t,n){return n-t?OUe(t,n,e):$N(isNaN(t)?n:t)}}function R1(e,t){var n=t-e;return n?iAe(e,n):$N(isNaN(e)?t:e)}(function e(t){var n=LUe(t);function r(i,A){var l=n((i=dh(i)).r,(A=dh(A)).r),c=n(i.g,A.g),f=n(i.b,A.b),h=R1(i.opacity,A.opacity);return function(I){return i.r=l(I),i.g=c(I),i.b=f(I),i.opacity=h(I),i+""}}return r.gamma=e,r})(1);function PUe(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),A=new Array(n),l,c;for(l=0;ln&&(A=t.slice(n,A),c[l]?c[l]+=A:c[++l]=A),(r=r[0])===(i=i[0])?c[l]?c[l]+=i:c[++l]=i:(c[++l]=null,f.push({i:l,x:GUe(r,i)})),n=tF.lastIndex;return n=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n=i)&&(n=i)}return n}function cAe(e,t){let n;if(t===void 0)for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function rF(e,t){let n=0;if(t===void 0)for(let r of e)(r=+r)&&(n+=r);else{let r=-1;for(let i of e)(i=+t(i,++r,e))&&(n+=i)}return n}function oGe(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}const uAe=Symbol("implicit");Ll=function(){var e=new sAe,t=[],n=[],r=uAe;function i(A){let l=e.get(A);if(l===void 0){if(r!==uAe)return r;e.set(A,l=t.push(A)-1)}return n[l%n.length]}return i.domain=function(A){if(!arguments.length)return t.slice();t=[],e=new sAe;for(const l of A)e.has(l)||e.set(l,t.push(l)-1);return i},i.range=function(A){return arguments.length?(n=Array.from(A),i):n.slice()},i.unknown=function(A){return arguments.length?(r=A,i):r},i.copy=function(){return Ll(t,n).unknown(r)},oGe.apply(i,arguments),i};function iGe(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function xx(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function AGe(e){return e=xx(Math.abs(e)),e?e[1]:NaN}function sGe(e,t){return function(n,r){for(var i=n.length,A=[],l=0,c=e[0],f=0;i>0&&c>0&&(f+c+1>r&&(c=Math.max(1,r-f)),A.push(n.substring(i-=c,i+c)),!((f+=c+1)>r));)c=e[l=(l+1)%e.length];return A.reverse().join(t)}}function aGe(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var lGe=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function oF(e){if(!(t=lGe.exec(e)))throw new Error("invalid format: "+e);var t;return new iF({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}oF.prototype=iF.prototype;function iF(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}iF.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function cGe(e){e:for(var t=e.length,n=1,r=-1,i;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var dAe;function uGe(e,t){var n=xx(e,t);if(!n)return e+"";var r=n[0],i=n[1],A=i-(dAe=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,l=r.length;return A===l?r:A>l?r+new Array(A-l+1).join("0"):A>0?r.slice(0,A)+"."+r.slice(A):"0."+new Array(1-A).join("0")+xx(e,Math.max(0,t+A-1))[0]}function fAe(e,t){var n=xx(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const gAe={"%":function(e,t){return(e*100).toFixed(t)},b:function(e){return Math.round(e).toString(2)},c:function(e){return e+""},d:iGe,e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},g:function(e,t){return e.toPrecision(t)},o:function(e){return Math.round(e).toString(8)},p:function(e,t){return fAe(e*100,t)},r:fAe,s:uGe,X:function(e){return Math.round(e).toString(16).toUpperCase()},x:function(e){return Math.round(e).toString(16)}};function hAe(e){return e}var pAe=Array.prototype.map,mAe=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function dGe(e){var t=e.grouping===void 0||e.thousands===void 0?hAe:sGe(pAe.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal+"",A=e.numerals===void 0?hAe:aGe(pAe.call(e.numerals,String)),l=e.percent===void 0?"%":e.percent+"",c=e.minus+"",f=e.nan===void 0?"NaN":e.nan+"";function h(B){B=oF(B);var v=B.fill,D=B.align,S=B.sign,R=B.symbol,F=B.zero,N=B.width,M=B.comma,P=B.precision,G=B.trim,J=B.type;J==="n"?(M=!0,J="g"):gAe[J]||(P===void 0&&(P=12),G=!0,J="g"),(F||v==="0"&&D==="=")&&(F=!0,v="0",D="=");var W=R==="$"?n:R==="#"&&/[boxX]/.test(J)?"0"+J.toLowerCase():"",q=R==="$"?r:/[%p]/.test(J)?l:"",$=gAe[J],oe=/[defgprs%]/.test(J);P=P===void 0?6:/[gprs]/.test(J)?Math.max(1,Math.min(21,P)):Math.max(0,Math.min(20,P));function K(se){var Ee=W,ie=q,Ae,Be,ae;if(J==="c")ie=$(se)+ie,se="";else{se=+se;var Ce=se<0||1/se<0;if(se=isNaN(se)?f:$(Math.abs(se),P),G&&(se=cGe(se)),Ce&&+se==0&&S!=="+"&&(Ce=!1),Ee=(Ce?S==="("?S:c:S==="-"||S==="("?"":S)+Ee,ie=(J==="s"?mAe[8+dAe/3]:"")+ie+(Ce&&S==="("?")":""),oe){for(Ae=-1,Be=se.length;++Aeae||ae>57){ie=(ae===46?i+se.slice(Ae+1):se.slice(Ae))+ie,se=se.slice(0,Ae);break}}}M&&!F&&(se=t(se,1/0));var de=Ee.length+se.length+ie.length,ge=de>1)+Ee+se+ie+ge.slice(de);break;default:se=ge+Ee+se+ie;break}return A(se)}return K.toString=function(){return B+""},K}function I(B,v){var D=h((B=oF(B),B.type="f",B)),S=Math.max(-8,Math.min(8,Math.floor(AGe(v)/3)))*3,R=Math.pow(10,-S),F=mAe[8+S/3];return function(N){return D(R*N)+F}}return{format:h,formatPrefix:I}}var _x,IAe;fGe({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function fGe(e){return _x=dGe(e),IAe=_x.format,_x.formatPrefix,_x}var AF=new Date,sF=new Date;function T0(e,t,n,r){function i(A){return e(A=arguments.length===0?new Date:new Date(+A)),A}return i.floor=function(A){return e(A=new Date(+A)),A},i.ceil=function(A){return e(A=new Date(A-1)),t(A,1),e(A),A},i.round=function(A){var l=i(A),c=i.ceil(A);return A-l0))return f;do f.push(h=new Date(+A)),t(A,c),e(A);while(h=l)for(;e(l),!A(l);)l.setTime(l-1)},function(l,c){if(l>=l)if(c<0)for(;++c<=0;)for(;t(l,-1),!A(l););else for(;--c>=0;)for(;t(l,1),!A(l););})},n&&(i.count=function(A,l){return AF.setTime(+A),sF.setTime(+l),e(AF),e(sF),Math.floor(n(AF,sF))},i.every=function(A){return A=Math.floor(A),!isFinite(A)||!(A>0)?null:A>1?i.filter(r?function(l){return r(l)%A===0}:function(l){return i.count(0,l)%A===0}):i}),i}const gGe=1e3,aF=gGe*60,hGe=aF*60,lF=hGe*24,CAe=lF*7;var cF=T0(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*aF)/lF,e=>e.getDate()-1);cF.range;function ph(e){return T0(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*aF)/CAe})}var EAe=ph(0),kx=ph(1),pGe=ph(2),mGe=ph(3),T1=ph(4),IGe=ph(5),CGe=ph(6);EAe.range,kx.range,pGe.range,mGe.range,T1.range,IGe.range,CGe.range;var mh=T0(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()});mh.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:T0(function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n*e)})},mh.range;var uF=T0(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/lF},function(e){return e.getUTCDate()-1});uF.range;function Ih(e){return T0(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/CAe})}var BAe=Ih(0),Dx=Ih(1),EGe=Ih(2),BGe=Ih(3),M1=Ih(4),yGe=Ih(5),vGe=Ih(6);BAe.range,Dx.range,EGe.range,BGe.range,M1.range,yGe.range,vGe.range;var Ch=T0(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()});Ch.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:T0(function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})},Ch.range;function dF(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function fF(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function xE(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function bGe(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,A=e.days,l=e.shortDays,c=e.months,f=e.shortMonths,h=_E(i),I=kE(i),B=_E(A),v=kE(A),D=_E(l),S=kE(l),R=_E(c),F=kE(c),N=_E(f),M=kE(f),P={a:Ce,A:de,b:ge,B:be,c:null,d:xAe,e:xAe,f:WGe,g:rHe,G:iHe,H:YGe,I:JGe,j:zGe,L:_Ae,m:qGe,M:XGe,p:Te,q:me,Q:MAe,s:NAe,S:VGe,u:KGe,U:ZGe,V:$Ge,w:eHe,W:tHe,x:null,X:null,y:nHe,Y:oHe,Z:AHe,"%":TAe},G={a:Ye,A:rt,b:We,B:De,c:null,d:DAe,e:DAe,f:cHe,g:EHe,G:yHe,H:sHe,I:aHe,j:lHe,L:SAe,m:uHe,M:dHe,p:_e,q:xe,Q:MAe,s:NAe,S:fHe,u:gHe,U:hHe,V:pHe,w:mHe,W:IHe,x:null,X:null,y:CHe,Y:BHe,Z:vHe,"%":TAe},J={a:K,A:se,b:Ee,B:ie,c:Ae,d:QAe,e:QAe,f:PGe,g:bAe,G:vAe,H:wAe,I:wAe,j:FGe,L:LGe,m:NGe,M:OGe,p:oe,q:MGe,Q:GGe,s:HGe,S:jGe,u:kGe,U:DGe,V:SGe,w:_Ge,W:RGe,x:Be,X:ae,y:bAe,Y:vAe,Z:TGe,"%":UGe};P.x=W(n,P),P.X=W(r,P),P.c=W(t,P),G.x=W(n,G),G.X=W(r,G),G.c=W(t,G);function W(ve,Ue){return function(At){var He=[],gt=-1,ut=0,bt=ve.length,zt,ce,mn;for(At instanceof Date||(At=new Date(+At));++gt53)return null;"w"in He||(He.w=1),"Z"in He?(ut=fF(xE(He.y,0,1)),bt=ut.getUTCDay(),ut=bt>4||bt===0?Dx.ceil(ut):Dx(ut),ut=uF.offset(ut,(He.V-1)*7),He.y=ut.getUTCFullYear(),He.m=ut.getUTCMonth(),He.d=ut.getUTCDate()+(He.w+6)%7):(ut=dF(xE(He.y,0,1)),bt=ut.getDay(),ut=bt>4||bt===0?kx.ceil(ut):kx(ut),ut=cF.offset(ut,(He.V-1)*7),He.y=ut.getFullYear(),He.m=ut.getMonth(),He.d=ut.getDate()+(He.w+6)%7)}else("W"in He||"U"in He)&&("w"in He||(He.w="u"in He?He.u%7:"W"in He?1:0),bt="Z"in He?fF(xE(He.y,0,1)).getUTCDay():dF(xE(He.y,0,1)).getDay(),He.m=0,He.d="W"in He?(He.w+6)%7+He.W*7-(bt+5)%7:He.w+He.U*7-(bt+6)%7);return"Z"in He?(He.H+=He.Z/100|0,He.M+=He.Z%100,fF(He)):dF(He)}}function $(ve,Ue,At,He){for(var gt=0,ut=Ue.length,bt=At.length,zt,ce;gt=bt)return-1;if(zt=Ue.charCodeAt(gt++),zt===37){if(zt=Ue.charAt(gt++),ce=J[zt in yAe?Ue.charAt(gt++):zt],!ce||(He=ce(ve,At,He))<0)return-1}else if(zt!=At.charCodeAt(He++))return-1}return He}function oe(ve,Ue,At){var He=h.exec(Ue.slice(At));return He?(ve.p=I.get(He[0].toLowerCase()),At+He[0].length):-1}function K(ve,Ue,At){var He=D.exec(Ue.slice(At));return He?(ve.w=S.get(He[0].toLowerCase()),At+He[0].length):-1}function se(ve,Ue,At){var He=B.exec(Ue.slice(At));return He?(ve.w=v.get(He[0].toLowerCase()),At+He[0].length):-1}function Ee(ve,Ue,At){var He=N.exec(Ue.slice(At));return He?(ve.m=M.get(He[0].toLowerCase()),At+He[0].length):-1}function ie(ve,Ue,At){var He=R.exec(Ue.slice(At));return He?(ve.m=F.get(He[0].toLowerCase()),At+He[0].length):-1}function Ae(ve,Ue,At){return $(ve,t,Ue,At)}function Be(ve,Ue,At){return $(ve,n,Ue,At)}function ae(ve,Ue,At){return $(ve,r,Ue,At)}function Ce(ve){return l[ve.getDay()]}function de(ve){return A[ve.getDay()]}function ge(ve){return f[ve.getMonth()]}function be(ve){return c[ve.getMonth()]}function Te(ve){return i[+(ve.getHours()>=12)]}function me(ve){return 1+~~(ve.getMonth()/3)}function Ye(ve){return l[ve.getUTCDay()]}function rt(ve){return A[ve.getUTCDay()]}function We(ve){return f[ve.getUTCMonth()]}function De(ve){return c[ve.getUTCMonth()]}function _e(ve){return i[+(ve.getUTCHours()>=12)]}function xe(ve){return 1+~~(ve.getUTCMonth()/3)}return{format:function(ve){var Ue=W(ve+="",P);return Ue.toString=function(){return ve},Ue},parse:function(ve){var Ue=q(ve+="",!1);return Ue.toString=function(){return ve},Ue},utcFormat:function(ve){var Ue=W(ve+="",G);return Ue.toString=function(){return ve},Ue},utcParse:function(ve){var Ue=q(ve+="",!0);return Ue.toString=function(){return ve},Ue}}}var yAe={"-":"",_:" ",0:"0"},bA=/^\s*\d+/,QGe=/^%/,wGe=/[\\^$*+?|[\]().{}]/g;function ao(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",A=i.length;return r+(A[t.toLowerCase(),n]))}function _Ge(e,t,n){var r=bA.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function kGe(e,t,n){var r=bA.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function DGe(e,t,n){var r=bA.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function SGe(e,t,n){var r=bA.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function RGe(e,t,n){var r=bA.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function vAe(e,t,n){var r=bA.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function bAe(e,t,n){var r=bA.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function TGe(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function MGe(e,t,n){var r=bA.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function NGe(e,t,n){var r=bA.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function QAe(e,t,n){var r=bA.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function FGe(e,t,n){var r=bA.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function wAe(e,t,n){var r=bA.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function OGe(e,t,n){var r=bA.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function jGe(e,t,n){var r=bA.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function LGe(e,t,n){var r=bA.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function PGe(e,t,n){var r=bA.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function UGe(e,t,n){var r=QGe.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function GGe(e,t,n){var r=bA.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function HGe(e,t,n){var r=bA.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function xAe(e,t){return ao(e.getDate(),t,2)}function YGe(e,t){return ao(e.getHours(),t,2)}function JGe(e,t){return ao(e.getHours()%12||12,t,2)}function zGe(e,t){return ao(1+cF.count(mh(e),e),t,3)}function _Ae(e,t){return ao(e.getMilliseconds(),t,3)}function WGe(e,t){return _Ae(e,t)+"000"}function qGe(e,t){return ao(e.getMonth()+1,t,2)}function XGe(e,t){return ao(e.getMinutes(),t,2)}function VGe(e,t){return ao(e.getSeconds(),t,2)}function KGe(e){var t=e.getDay();return t===0?7:t}function ZGe(e,t){return ao(EAe.count(mh(e)-1,e),t,2)}function kAe(e){var t=e.getDay();return t>=4||t===0?T1(e):T1.ceil(e)}function $Ge(e,t){return e=kAe(e),ao(T1.count(mh(e),e)+(mh(e).getDay()===4),t,2)}function eHe(e){return e.getDay()}function tHe(e,t){return ao(kx.count(mh(e)-1,e),t,2)}function nHe(e,t){return ao(e.getFullYear()%100,t,2)}function rHe(e,t){return e=kAe(e),ao(e.getFullYear()%100,t,2)}function oHe(e,t){return ao(e.getFullYear()%1e4,t,4)}function iHe(e,t){var n=e.getDay();return e=n>=4||n===0?T1(e):T1.ceil(e),ao(e.getFullYear()%1e4,t,4)}function AHe(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+ao(t/60|0,"0",2)+ao(t%60,"0",2)}function DAe(e,t){return ao(e.getUTCDate(),t,2)}function sHe(e,t){return ao(e.getUTCHours(),t,2)}function aHe(e,t){return ao(e.getUTCHours()%12||12,t,2)}function lHe(e,t){return ao(1+uF.count(Ch(e),e),t,3)}function SAe(e,t){return ao(e.getUTCMilliseconds(),t,3)}function cHe(e,t){return SAe(e,t)+"000"}function uHe(e,t){return ao(e.getUTCMonth()+1,t,2)}function dHe(e,t){return ao(e.getUTCMinutes(),t,2)}function fHe(e,t){return ao(e.getUTCSeconds(),t,2)}function gHe(e){var t=e.getUTCDay();return t===0?7:t}function hHe(e,t){return ao(BAe.count(Ch(e)-1,e),t,2)}function RAe(e){var t=e.getUTCDay();return t>=4||t===0?M1(e):M1.ceil(e)}function pHe(e,t){return e=RAe(e),ao(M1.count(Ch(e),e)+(Ch(e).getUTCDay()===4),t,2)}function mHe(e){return e.getUTCDay()}function IHe(e,t){return ao(Dx.count(Ch(e)-1,e),t,2)}function CHe(e,t){return ao(e.getUTCFullYear()%100,t,2)}function EHe(e,t){return e=RAe(e),ao(e.getUTCFullYear()%100,t,2)}function BHe(e,t){return ao(e.getUTCFullYear()%1e4,t,4)}function yHe(e,t){var n=e.getUTCDay();return e=n>=4||n===0?M1(e):M1.ceil(e),ao(e.getUTCFullYear()%1e4,t,4)}function vHe(){return"+0000"}function TAe(){return"%"}function MAe(e){return+e}function NAe(e){return Math.floor(+e/1e3)}var N1,FAe;bHe({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function bHe(e){return N1=bGe(e),FAe=N1.format,N1.parse,N1.utcFormat,N1.utcParse,N1}function Er(e){for(var t=e.length/6|0,n=new Array(t),r=0;rUUe(e[e.length-1]);var Eh=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(Er);const Px=qo(Eh);var Bh=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(Er);const Ux=qo(Bh);var yh=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(Er);const Gx=qo(yh);var vh=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(Er);const Hx=qo(vh);var bh=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(Er);const Yx=qo(bh);var Qh=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(Er);const Jx=qo(Qh);var wh=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(Er);const zx=qo(wh);var xh=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(Er);const Wx=qo(xh);var _h=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(Er);const qx=qo(_h);var kh=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(Er);const Xx=qo(kh);var Dh=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(Er);const Vx=qo(Dh);var Sh=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(Er);const Kx=qo(Sh);var Rh=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(Er);const Zx=qo(Rh);var Th=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(Er);const $x=qo(Th);var Mh=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(Er);const e_=qo(Mh);var Nh=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(Er);const t_=qo(Nh);var Fh=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(Er);const n_=qo(Fh);var Oh=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(Er);const r_=qo(Oh);var jh=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(Er);const o_=qo(jh);var Lh=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(Er);const i_=qo(Lh);var Ph=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(Er);const A_=qo(Ph);var Uh=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(Er);const s_=qo(Uh);var Gh=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(Er);const a_=qo(Gh);var Hh=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(Er);const l_=qo(Hh);var Yh=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(Er);const c_=qo(Yh);var Jh=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(Er);const u_=qo(Jh);var zh=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(Er);const d_=qo(zh);function f_(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-e*(35.34-e*(2381.73-e*(6402.7-e*(7024.72-e*2710.57)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+e*(170.73+e*(52.82-e*(131.46-e*(176.58-e*67.37)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+e*(442.36-e*(2482.43-e*(6167.24-e*(6614.94-e*2475.67)))))))+")"}const g_=nF(yu(300,.5,0),yu(-240,.5,1));var h_=nF(yu(-100,.75,.35),yu(80,1.5,.8)),p_=nF(yu(260,.75,.35),yu(80,1.5,.8)),m_=yu();function I_(e){(e<0||e>1)&&(e-=Math.floor(e));var t=Math.abs(e-.5);return m_.h=360*e-100,m_.s=1.5-1.5*t,m_.l=.8-.9*t,m_+""}var C_=dh(),QHe=Math.PI/3,wHe=Math.PI*2/3;function E_(e){var t;return e=(.5-e)*Math.PI,C_.r=255*(t=Math.sin(e))*t,C_.g=255*(t=Math.sin(e+QHe))*t,C_.b=255*(t=Math.sin(e+wHe))*t,C_+""}function B_(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+e*(1172.33-e*(10793.56-e*(33300.12-e*(38394.49-e*14825.05)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+e*(557.33+e*(1225.33-e*(3574.96-e*(1073.77+e*707.56)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+e*(3211.1-e*(15327.97-e*(27814-e*(22569.18-e*6838.66)))))))+")"}function y_(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}const v_=y_(Er("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));var b_=y_(Er("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),Q_=y_(Er("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),w_=y_(Er("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),xHe=xN,_He=Xoe,kHe=Voe,DHe=Oie,SHe=Ix,RHe=_N,THe=200;function MHe(e,t,n,r){var i=-1,A=_He,l=!0,c=e.length,f=[],h=t.length;if(!c)return f;n&&(t=DHe(t,SHe(n))),r?(A=kHe,l=!1):t.length>=THe&&(A=RHe,l=!1,t=new xHe(t));e:for(;++i1?0:e<-1?SE:Math.acos(e)}function LAe(e){return e>=1?x_:e<=-1?-x_:Math.asin(e)}const hF=Math.PI,pF=2*hF,qh=1e-6,HHe=pF-qh;function PAe(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return PAe;const n=10**t;return function(r){this._+=r[0];for(let i=1,A=r.length;iqh)if(!(Math.abs(I*c-f*h)>qh)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let v=n-A,D=r-l,S=c*c+f*f,R=v*v+D*D,F=Math.sqrt(S),N=Math.sqrt(B),M=i*Math.tan((hF-Math.acos((S+B-R)/(2*F*N)))/2),P=M/N,G=M/F;Math.abs(P-1)>qh&&this._append`L${e+P*h},${t+P*I}`,this._append`A${i},${i},0,0,${+(I*v>h*D)},${this._x1=e+G*c},${this._y1=t+G*f}`}}arc(e,t,n,r,i,A){if(e=+e,t=+t,n=+n,A=!!A,n<0)throw new Error(`negative radius: ${n}`);let l=n*Math.cos(r),c=n*Math.sin(r),f=e+l,h=t+c,I=1^A,B=A?r-i:i-r;this._x1===null?this._append`M${f},${h}`:(Math.abs(this._x1-f)>qh||Math.abs(this._y1-h)>qh)&&this._append`L${f},${h}`,n&&(B<0&&(B=B%pF+pF),B>HHe?this._append`A${n},${n},0,1,${I},${e-l},${t-c}A${n},${n},0,1,${I},${this._x1=f},${this._y1=h}`:B>qh&&this._append`A${n},${n},0,${+(B>=hF)},${I},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}};function UAe(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new JHe(t)}function zHe(e){return e.innerRadius}function WHe(e){return e.outerRadius}function qHe(e){return e.startAngle}function XHe(e){return e.endAngle}function VHe(e){return e&&e.padAngle}function KHe(e,t,n,r,i,A,l,c){var f=n-e,h=r-t,I=l-i,B=c-A,v=B*f-I*h;if(!(v*vAe*Ae+Be*Be&&($=K,oe=se),{cx:$,cy:oe,x01:-I,y01:-B,x11:$*(i/J-1),y11:oe*(i/J-1)}}function ZHe(){var e=zHe,t=WHe,n=Gi(0),r=null,i=qHe,A=XHe,l=VHe,c=null,f=UAe(h);function h(){var I,B,v=+e.apply(this,arguments),D=+t.apply(this,arguments),S=i.apply(this,arguments)-x_,R=A.apply(this,arguments)-x_,F=jAe(R-S),N=R>S;if(c||(c=I=f()),Dis))c.moveTo(0,0);else if(F>__-is)c.moveTo(D*Wh(S),D*vu(S)),c.arc(0,0,D,S,R,!N),v>is&&(c.moveTo(v*Wh(R),v*vu(R)),c.arc(0,0,v,R,S,N));else{var M=S,P=R,G=S,J=R,W=F,q=F,$=l.apply(this,arguments)/2,oe=$>is&&(r?+r.apply(this,arguments):F1(v*v+D*D)),K=gF(jAe(D-v)/2,+n.apply(this,arguments)),se=K,Ee=K,ie,Ae;if(oe>is){var Be=LAe(oe/v*vu($)),ae=LAe(oe/D*vu($));(W-=Be*2)>is?(Be*=N?1:-1,G+=Be,J-=Be):(W=0,G=J=(S+R)/2),(q-=ae*2)>is?(ae*=N?1:-1,M+=ae,P-=ae):(q=0,M=P=(S+R)/2)}var Ce=D*Wh(M),de=D*vu(M),ge=v*Wh(J),be=v*vu(J);if(K>is){var Te=D*Wh(P),me=D*vu(P),Ye=v*Wh(G),rt=v*vu(G),We;if(Fis?Ee>is?(ie=k_(Ye,rt,Ce,de,D,Ee,N),Ae=k_(Te,me,ge,be,D,Ee,N),c.moveTo(ie.cx+ie.x01,ie.cy+ie.y01),Eeis)||!(W>is)?c.lineTo(ge,be):se>is?(ie=k_(ge,be,Te,me,v,-se,N),Ae=k_(Ce,de,Ye,rt,v,-se,N),c.lineTo(ie.cx+ie.x01,ie.cy+ie.y01),see?1:t>=e?0:NaN}function nYe(e){return e}function rYe(){var e=nYe,t=tYe,n=null,r=Gi(0),i=Gi(__),A=Gi(0);function l(c){var f,h=(c=GAe(c)).length,I,B,v=0,D=new Array(h),S=new Array(h),R=+r.apply(this,arguments),F=Math.min(__,Math.max(-__,i.apply(this,arguments)-R)),N,M=Math.min(Math.abs(F)/h,A.apply(this,arguments)),P=M*(F<0?-1:1),G;for(f=0;f0&&(v+=G);for(t!=null?D.sort(function(J,W){return t(S[J],S[W])}):n!=null&&D.sort(function(J,W){return n(c[J],c[W])}),f=0,B=v?(F-h*P)/v:0;f0?G*B:0)+P,S[I]={data:c[I],index:f,value:G,startAngle:R,endAngle:N,padAngle:M};return S}return l.value=function(c){return arguments.length?(e=typeof c=="function"?c:Gi(+c),l):e},l.sortValues=function(c){return arguments.length?(t=c,n=null,l):t},l.sort=function(c){return arguments.length?(n=c,t=null,l):n},l.startAngle=function(c){return arguments.length?(r=typeof c=="function"?c:Gi(+c),l):r},l.endAngle=function(c){return arguments.length?(i=typeof c=="function"?c:Gi(+c),l):i},l.padAngle=function(c){return arguments.length?(A=typeof c=="function"?c:Gi(+c),l):A},l}function If(){}function D_(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function S_(e){this._context=e}S_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:D_(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:D_(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function oYe(e){return new S_(e)}function JAe(e){this._context=e}JAe.prototype={areaStart:If,areaEnd:If,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:D_(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function iYe(e){return new JAe(e)}function zAe(e){this._context=e}zAe.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:D_(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function AYe(e){return new zAe(e)}function WAe(e,t){this._basis=new S_(e),this._beta=t}WAe.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,n=e.length-1;if(n>0)for(var r=e[0],i=t[0],A=e[n]-r,l=t[n]-i,c=-1,f;++c<=n;)f=c/n,this._basis.point(this._beta*e[c]+(1-this._beta)*(r+f*A),this._beta*t[c]+(1-this._beta)*(i+f*l));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};const sYe=function e(t){function n(r){return t===1?new S_(r):new WAe(r,t)}return n.beta=function(r){return e(+r)},n}(.85);function R_(e,t,n){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-n),e._x2,e._y2)}function IF(e,t){this._context=e,this._k=(1-t)/6}IF.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:R_(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:R_(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const aYe=function e(t){function n(r){return new IF(r,t)}return n.tension=function(r){return e(+r)},n}(0);function CF(e,t){this._context=e,this._k=(1-t)/6}CF.prototype={areaStart:If,areaEnd:If,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:R_(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const lYe=function e(t){function n(r){return new CF(r,t)}return n.tension=function(r){return e(+r)},n}(0);function EF(e,t){this._context=e,this._k=(1-t)/6}EF.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:R_(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const cYe=function e(t){function n(r){return new EF(r,t)}return n.tension=function(r){return e(+r)},n}(0);function BF(e,t,n){var r=e._x1,i=e._y1,A=e._x2,l=e._y2;if(e._l01_a>is){var c=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,f=3*e._l01_a*(e._l01_a+e._l12_a);r=(r*c-e._x0*e._l12_2a+e._x2*e._l01_2a)/f,i=(i*c-e._y0*e._l12_2a+e._y2*e._l01_2a)/f}if(e._l23_a>is){var h=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,I=3*e._l23_a*(e._l23_a+e._l12_a);A=(A*h+e._x1*e._l23_2a-t*e._l12_2a)/I,l=(l*h+e._y1*e._l23_2a-n*e._l12_2a)/I}e._context.bezierCurveTo(r,i,A,l,e._x2,e._y2)}function qAe(e,t){this._context=e,this._alpha=t}qAe.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:BF(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const uYe=function e(t){function n(r){return t?new qAe(r,t):new IF(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function XAe(e,t){this._context=e,this._alpha=t}XAe.prototype={areaStart:If,areaEnd:If,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:BF(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const dYe=function e(t){function n(r){return t?new XAe(r,t):new CF(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function VAe(e,t){this._context=e,this._alpha=t}VAe.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:BF(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const fYe=function e(t){function n(r){return t?new VAe(r,t):new EF(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function KAe(e){this._context=e}KAe.prototype={areaStart:If,areaEnd:If,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function gYe(e){return new KAe(e)}function ZAe(e){return e<0?-1:1}function $Ae(e,t,n){var r=e._x1-e._x0,i=t-e._x1,A=(e._y1-e._y0)/(r||i<0&&-0),l=(n-e._y1)/(i||r<0&&-0),c=(A*i+l*r)/(r+i);return(ZAe(A)+ZAe(l))*Math.min(Math.abs(A),Math.abs(l),.5*Math.abs(c))||0}function ese(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function yF(e,t,n){var r=e._x0,i=e._y0,A=e._x1,l=e._y1,c=(A-r)/3;e._context.bezierCurveTo(r+c,i+c*t,A-c,l-c*n,A,l)}function T_(e){this._context=e}T_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:yF(this,this._t0,ese(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,yF(this,ese(this,n=$Ae(this,e,t)),n);break;default:yF(this,this._t0,n=$Ae(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function tse(e){this._context=new nse(e)}(tse.prototype=Object.create(T_.prototype)).point=function(e,t){T_.prototype.point.call(this,t,e)};function nse(e){this._context=e}nse.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,i,A){this._context.bezierCurveTo(t,e,r,n,A,i)}};function rse(e){return new T_(e)}function ose(e){return new tse(e)}function ise(e){this._context=e}ise.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=Ase(e),i=Ase(t),A=0,l=1;l=0;--t)i[t]=(l[t]-i[t+1])/A[t];for(A[n-1]=(e[n]+i[n-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function pYe(e){return new M_(e,.5)}function mYe(e){return new M_(e,0)}function IYe(e){return new M_(e,1)}var CYe=Gie,EYe=Yie,BYe=Bx;function yYe(e,t,n){for(var r=-1,i=t.length,A={};++r0&&n(c)?t>1?lse(c,t-1,n,r,i):WYe(i,c):r||(i[i.length]=c)}return i}var XYe=lse,VYe=XYe;function KYe(e){var t=e==null?0:e.length;return t?VYe(e,1):[]}var ZYe=KYe,$Ye=ZYe,eJe=Rie,tJe=Mie;function nJe(e){return tJe(eJe(e,void 0,$Ye),e+"")}var rJe=nJe,oJe=UYe,iJe=rJe,AJe=iJe(function(e,t){return e==null?{}:oJe(e,t)}),sJe=AJe;const aJe=Ci(sJe);function lJe(e,t){for(var n=-1,r=e==null?0:e.length;++nc))return!1;var h=A.get(e),I=A.get(t);if(h&&I)return h==t&&I==e;var B=-1,v=!0,D=n&hJe?new uJe:void 0;for(A.set(e,t),A.set(t,e);++B=0||(i[n]=e[n]);return i}var Vze=["axis.ticks.text","axis.legend.text","legends.title.text","legends.text","legends.ticks.text","legends.title.text","labels.text","dots.text","markers.text","annotations.text"],Kze=function(e,t){return yc({},t,e)},Zze=function(e,t){var n=bPe({},e,t);return Vze.forEach(function(r){bE(n,r,Kze(Bl(n,r),n.text))}),n},Tse=x.createContext(),Mse=function(e){var t=e.children,n=e.animate,r=n===void 0||n,i=e.config,A=i===void 0?"default":i,l=x.useMemo(function(){var c=ZUe(A)?uT[A]:A;return{animate:r,config:c}},[r,A]);return p.jsx(Tse.Provider,{value:l,children:t})},O_={animate:Ze.bool,motionConfig:Ze.oneOfType([Ze.oneOf(Object.keys(uT)),Ze.shape({mass:Ze.number,tension:Ze.number,friction:Ze.number,clamp:Ze.bool,precision:Ze.number,velocity:Ze.number,duration:Ze.number,easing:Ze.func})])};Mse.propTypes={children:Ze.node.isRequired,animate:O_.animate,config:O_.motionConfig};var Cf=function(){return x.useContext(Tse)},$ze=function(e){var t=Cf(),n=t.animate,r=t.config,i=function(c){var f=x.useRef();return x.useEffect(function(){f.current=c},[c]),f.current}(e),A=x.useMemo(function(){return JUe(i,e)},[i,e]),l=lf({from:{value:0},to:{value:1},reset:!0,config:r,immediate:!n}).value;return t1(l,A)},eWe={nivo:["#d76445","#f47560","#e8c1a0","#97e3d5","#61cdbb","#00b0a7"],BrBG:Ln(Eh),PRGn:Ln(Bh),PiYG:Ln(yh),PuOr:Ln(vh),RdBu:Ln(bh),RdGy:Ln(Qh),RdYlBu:Ln(wh),RdYlGn:Ln(xh),spectral:Ln(_h),blues:Ln(Uh),greens:Ln(Gh),greys:Ln(Hh),oranges:Ln(zh),purples:Ln(Yh),reds:Ln(Jh),BuGn:Ln(kh),BuPu:Ln(Dh),GnBu:Ln(Sh),OrRd:Ln(Rh),PuBuGn:Ln(Th),PuBu:Ln(Mh),PuRd:Ln(Nh),RdPu:Ln(Fh),YlGnBu:Ln(Oh),YlGn:Ln(jh),YlOrBr:Ln(Lh),YlOrRd:Ln(Ph)},tWe=Object.keys(eWe);Ln(Eh),Ln(Bh),Ln(yh),Ln(vh),Ln(bh),Ln(Qh),Ln(wh),Ln(xh),Ln(_h),Ln(Uh),Ln(Gh),Ln(Hh),Ln(zh),Ln(Yh),Ln(Jh),Ln(kh),Ln(Dh),Ln(Sh),Ln(Rh),Ln(Th),Ln(Mh),Ln(Nh),Ln(Fh),Ln(Oh),Ln(jh),Ln(Lh),Ln(Ph),Ze.oneOfType([Ze.oneOf(tWe),Ze.func,Ze.arrayOf(Ze.string)]);var nWe={basis:oYe,basisClosed:iYe,basisOpen:AYe,bundle:sYe,cardinal:aYe,cardinalClosed:lYe,cardinalOpen:cYe,catmullRom:uYe,catmullRomClosed:dYe,catmullRomOpen:fYe,linear:YAe,linearClosed:gYe,monotoneX:rse,monotoneY:ose,natural:hYe,step:pYe,stepAfter:IYe,stepBefore:mYe},MF=Object.keys(nWe);MF.filter(function(e){return e.endsWith("Closed")}),OAe(MF,"bundle","basisClosed","basisOpen","cardinalClosed","cardinalOpen","catmullRomClosed","catmullRomOpen","linearClosed"),OAe(MF,"bundle","basisClosed","basisOpen","cardinalClosed","cardinalOpen","catmullRomClosed","catmullRomOpen","linearClosed"),Ze.shape({top:Ze.number,right:Ze.number,bottom:Ze.number,left:Ze.number}).isRequired;var rWe=["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"];Ze.oneOf(rWe),Ll(DE);var oWe={top:0,right:0,bottom:0,left:0},Nse=function(e,t,n){return n===void 0&&(n={}),x.useMemo(function(){var r=yc({},oWe,n);return{margin:r,innerWidth:e-r.left-r.right,innerHeight:t-r.top-r.bottom,outerWidth:e,outerHeight:t}},[e,t,n.top,n.right,n.bottom,n.left])},iWe=function(){var e=x.useRef(null),t=x.useState({left:0,top:0,width:0,height:0}),n=t[0],r=t[1],i=x.useState(function(){return typeof ResizeObserver>"u"?null:new ResizeObserver(function(A){var l=A[0];return r(l.contentRect)})})[0];return x.useEffect(function(){return e.current&&i!==null&&i.observe(e.current),function(){i!==null&&i.disconnect()}},[]),[e,n]},AWe=function(e){return x.useMemo(function(){return Zze(Xze,e)},[e])},sWe=function(e){return typeof e=="function"?e:typeof e=="string"?e.indexOf("time:")===0?FAe(e.slice("5")):IAe(e):function(t){return""+t}},NF=function(e){return x.useMemo(function(){return sWe(e)},[e])},Fse=x.createContext(),aWe={},Ose=function(e){var t=e.theme,n=t===void 0?aWe:t,r=e.children,i=AWe(n);return p.jsx(Fse.Provider,{value:i,children:r})};Ose.propTypes={children:Ze.node.isRequired,theme:Ze.object};var ta=function(){return x.useContext(Fse)},lWe=["outlineWidth","outlineColor","outlineOpacity"],jse=function(e){return e.outlineWidth,e.outlineColor,e.outlineOpacity,TF(e,lWe)},Lse=function(e){var t=e.children,n=e.condition,r=e.wrapper;return n?x.cloneElement(r,{},t):t};Lse.propTypes={children:Ze.node.isRequired,condition:Ze.bool.isRequired,wrapper:Ze.element.isRequired};var cWe={position:"relative"},FF=function(e){var t=e.children,n=e.theme,r=e.renderWrapper,i=r===void 0||r,A=e.isInteractive,l=A===void 0||A,c=e.animate,f=e.motionConfig,h=x.useRef(null);return p.jsx(Ose,{theme:n,children:p.jsx(Mse,{animate:c,config:f,children:p.jsx(_Oe,{container:h,children:p.jsxs(Lse,{condition:i,wrapper:p.jsx("div",{style:cWe,ref:h}),children:[t,l&&p.jsx(xOe,{})]})})})})};FF.propTypes={children:Ze.element.isRequired,isInteractive:Ze.bool,renderWrapper:Ze.bool,theme:Ze.object,animate:Ze.bool,motionConfig:Ze.oneOfType([Ze.string,O_.motionConfig])},Ze.func.isRequired,Ze.bool,Ze.bool,Ze.object.isRequired,Ze.bool.isRequired,Ze.oneOfType([Ze.string,O_.motionConfig]),Ze.func.isRequired;var uWe=["id","colors"],Pse=function(e){var t=e.id,n=e.colors,r=TF(e,uWe);return p.jsx("linearGradient",yc({id:t,x1:0,x2:0,y1:0,y2:1},r,{children:n.map(function(i){var A=i.offset,l=i.color,c=i.opacity;return p.jsx("stop",{offset:A+"%",stopColor:l,stopOpacity:c!==void 0?c:1},A)})}))};Pse.propTypes={id:Ze.string.isRequired,colors:Ze.arrayOf(Ze.shape({offset:Ze.number.isRequired,color:Ze.string.isRequired,opacity:Ze.number})).isRequired,gradientTransform:Ze.string};var Use={linearGradient:Pse},RE={color:"#000000",background:"#ffffff",size:4,padding:4,stagger:!1},OF=x.memo(function(e){var t=e.id,n=e.background,r=n===void 0?RE.background:n,i=e.color,A=i===void 0?RE.color:i,l=e.size,c=l===void 0?RE.size:l,f=e.padding,h=f===void 0?RE.padding:f,I=e.stagger,B=I===void 0?RE.stagger:I,v=c+h,D=c/2,S=h/2;return B===!0&&(v=2*c+2*h),p.jsxs("pattern",{id:t,width:v,height:v,patternUnits:"userSpaceOnUse",children:[p.jsx("rect",{width:v,height:v,fill:r}),p.jsx("circle",{cx:S+D,cy:S+D,r:D,fill:A}),B&&p.jsx("circle",{cx:1.5*h+c+D,cy:1.5*h+c+D,r:D,fill:A})]})});OF.displayName="PatternDots",OF.propTypes={id:Ze.string.isRequired,color:Ze.string.isRequired,background:Ze.string.isRequired,size:Ze.number.isRequired,padding:Ze.number.isRequired,stagger:Ze.bool.isRequired};var M0=function(e){return e*Math.PI/180},jF=function(e){return 180*e/Math.PI},dWe=function(e){return e.startAngle+(e.endAngle-e.startAngle)/2},j1=function(e,t){return{x:Math.cos(e)*t,y:Math.sin(e)*t}},TE={spacing:5,rotation:0,background:"#000000",color:"#ffffff",lineWidth:2},LF=x.memo(function(e){var t=e.id,n=e.spacing,r=n===void 0?TE.spacing:n,i=e.rotation,A=i===void 0?TE.rotation:i,l=e.background,c=l===void 0?TE.background:l,f=e.color,h=f===void 0?TE.color:f,I=e.lineWidth,B=I===void 0?TE.lineWidth:I,v=Math.round(A)%360,D=Math.abs(r);v>180?v-=360:v>90?v-=180:v<-180?v+=360:v<-90&&(v+=180);var S,R=D,F=D;return v===0?S=` - M 0 0 L `+R+` 0 - M 0 `+F+" L "+R+" "+F+` - `:v===90?S=` - M 0 0 L 0 `+F+` - M `+R+" 0 L "+R+" "+F+` - `:(R=Math.abs(D/Math.sin(M0(v))),F=D/Math.sin(M0(90-v)),S=v>0?` - M 0 `+-F+" L "+2*R+" "+F+` - M `+-R+" "+-F+" L "+R+" "+F+` - M `+-R+" 0 L "+R+" "+2*F+` - `:` - M `+-R+" "+F+" L "+R+" "+-F+` - M `+-R+" "+2*F+" L "+2*R+" "+-F+` - M 0 `+2*F+" L "+2*R+` 0 - `),p.jsxs("pattern",{id:t,width:R,height:F,patternUnits:"userSpaceOnUse",children:[p.jsx("rect",{width:R,height:F,fill:c,stroke:"rgba(255, 0, 0, 0.1)",strokeWidth:0}),p.jsx("path",{d:S,strokeWidth:B,stroke:h,strokeLinecap:"square"})]})});LF.displayName="PatternLines",LF.propTypes={id:Ze.string.isRequired,spacing:Ze.number.isRequired,rotation:Ze.number.isRequired,background:Ze.string.isRequired,color:Ze.string.isRequired,lineWidth:Ze.number.isRequired};var ME={color:"#000000",background:"#ffffff",size:4,padding:4,stagger:!1},PF=x.memo(function(e){var t=e.id,n=e.color,r=n===void 0?ME.color:n,i=e.background,A=i===void 0?ME.background:i,l=e.size,c=l===void 0?ME.size:l,f=e.padding,h=f===void 0?ME.padding:f,I=e.stagger,B=I===void 0?ME.stagger:I,v=c+h,D=h/2;return B===!0&&(v=2*c+2*h),p.jsxs("pattern",{id:t,width:v,height:v,patternUnits:"userSpaceOnUse",children:[p.jsx("rect",{width:v,height:v,fill:A}),p.jsx("rect",{x:D,y:D,width:c,height:c,fill:r}),B&&p.jsx("rect",{x:1.5*h+c,y:1.5*h+c,width:c,height:c,fill:r})]})});PF.displayName="PatternSquares",PF.propTypes={id:Ze.string.isRequired,color:Ze.string.isRequired,background:Ze.string.isRequired,size:Ze.number.isRequired,padding:Ze.number.isRequired,stagger:Ze.bool.isRequired};var Gse={patternDots:OF,patternLines:LF,patternSquares:PF},fWe=["type"],UF=yc({},Use,Gse),Hse=function(e){var t=e.defs;return!t||t.length<1?null:p.jsx("defs",{"aria-hidden":!0,children:t.map(function(n){var r=n.type,i=TF(n,fWe);return UF[r]?x.createElement(UF[r],yc({key:i.id},i)):null})})};Hse.propTypes={defs:Ze.arrayOf(Ze.shape({type:Ze.oneOf(Object.keys(UF)).isRequired,id:Ze.string.isRequired}))};var gWe=x.memo(Hse),GF=function(e){var t=e.width,n=e.height,r=e.margin,i=e.defs,A=e.children,l=e.role,c=e.ariaLabel,f=e.ariaLabelledBy,h=e.ariaDescribedBy,I=e.isFocusable,B=ta();return p.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:t,height:n,role:l,"aria-label":c,"aria-labelledby":f,"aria-describedby":h,focusable:I,tabIndex:I?0:void 0,children:[p.jsx(gWe,{defs:i}),p.jsx("rect",{width:t,height:n,fill:B.background}),p.jsx("g",{transform:"translate("+r.left+","+r.top+")",children:A})]})};GF.propTypes={width:Ze.number.isRequired,height:Ze.number.isRequired,margin:Ze.shape({top:Ze.number.isRequired,left:Ze.number.isRequired}).isRequired,defs:Ze.array,children:Ze.oneOfType([Ze.arrayOf(Ze.node),Ze.node]).isRequired,role:Ze.string,isFocusable:Ze.bool,ariaLabel:Ze.string,ariaLabelledBy:Ze.string,ariaDescribedBy:Ze.string};var Yse=function(e){var t=e.size,n=e.color,r=e.borderWidth,i=e.borderColor;return p.jsx("circle",{r:t/2,fill:n,stroke:i,strokeWidth:r,style:{pointerEvents:"none"}})};Yse.propTypes={size:Ze.number.isRequired,color:Ze.string.isRequired,borderWidth:Ze.number.isRequired,borderColor:Ze.string.isRequired};var hWe=x.memo(Yse),Jse=function(e){var t=e.x,n=e.y,r=e.symbol,i=r===void 0?hWe:r,A=e.size,l=e.datum,c=e.color,f=e.borderWidth,h=e.borderColor,I=e.label,B=e.labelTextAnchor,v=B===void 0?"middle":B,D=e.labelYOffset,S=D===void 0?-12:D,R=ta(),F=Cf(),N=F.animate,M=F.config,P=lf({transform:"translate("+t+", "+n+")",config:M,immediate:!N});return p.jsxs($s.g,{transform:P.transform,style:{pointerEvents:"none"},children:[x.createElement(i,{size:A,color:c,datum:l,borderWidth:f,borderColor:h}),I&&p.jsx("text",{textAnchor:v,y:S,style:jse(R.dots.text),children:I})]})};Jse.propTypes={x:Ze.number.isRequired,y:Ze.number.isRequired,datum:Ze.object.isRequired,size:Ze.number.isRequired,color:Ze.string.isRequired,borderWidth:Ze.number.isRequired,borderColor:Ze.string.isRequired,symbol:Ze.oneOfType([Ze.func,Ze.object]),label:Ze.oneOfType([Ze.string,Ze.number]),labelTextAnchor:Ze.oneOf(["start","middle","end"]),labelYOffset:Ze.number},x.memo(Jse);var zse=function(e){var t=e.width,n=e.height,r=e.axis,i=e.scale,A=e.value,l=e.lineStyle,c=e.textStyle,f=e.legend,h=e.legendNode,I=e.legendPosition,B=I===void 0?"top-right":I,v=e.legendOffsetX,D=v===void 0?14:v,S=e.legendOffsetY,R=S===void 0?14:S,F=e.legendOrientation,N=F===void 0?"horizontal":F,M=ta(),P=0,G=0,J=0,W=0;if(r==="y"?(J=i(A),G=t):(P=i(A),W=n),f&&!h){var q=function($){var oe=$.axis,K=$.width,se=$.height,Ee=$.position,ie=$.offsetX,Ae=$.offsetY,Be=$.orientation,ae=0,Ce=0,de=Be==="vertical"?-90:0,ge="start";if(oe==="x")switch(Ee){case"top-left":ae=-ie,Ce=Ae,ge="end";break;case"top":Ce=-Ae,ge=Be==="horizontal"?"middle":"start";break;case"top-right":ae=ie,Ce=Ae,ge=Be==="horizontal"?"start":"end";break;case"right":ae=ie,Ce=se/2,ge=Be==="horizontal"?"start":"middle";break;case"bottom-right":ae=ie,Ce=se-Ae,ge="start";break;case"bottom":Ce=se+Ae,ge=Be==="horizontal"?"middle":"end";break;case"bottom-left":Ce=se-Ae,ae=-ie,ge=Be==="horizontal"?"end":"start";break;case"left":ae=-ie,Ce=se/2,ge=Be==="horizontal"?"end":"middle"}else switch(Ee){case"top-left":ae=ie,Ce=-Ae,ge="start";break;case"top":ae=K/2,Ce=-Ae,ge=Be==="horizontal"?"middle":"start";break;case"top-right":ae=K-ie,Ce=-Ae,ge=Be==="horizontal"?"end":"start";break;case"right":ae=K+ie,ge=Be==="horizontal"?"start":"middle";break;case"bottom-right":ae=K-ie,Ce=Ae,ge="end";break;case"bottom":ae=K/2,Ce=Ae,ge=Be==="horizontal"?"middle":"end";break;case"bottom-left":ae=ie,Ce=Ae,ge=Be==="horizontal"?"start":"end";break;case"left":ae=-ie,ge=Be==="horizontal"?"end":"middle"}return{x:ae,y:Ce,rotation:de,textAnchor:ge}}({axis:r,width:t,height:n,position:B,offsetX:D,offsetY:R,orientation:N});h=p.jsx("text",{transform:"translate("+q.x+", "+q.y+") rotate("+q.rotation+")",textAnchor:q.textAnchor,dominantBaseline:"central",style:c,children:f})}return p.jsxs("g",{transform:"translate("+P+", "+J+")",children:[p.jsx("line",{x1:0,x2:G,y1:0,y2:W,stroke:M.markers.lineColor,strokeWidth:M.markers.lineStrokeWidth,style:l}),h]})};zse.propTypes={width:Ze.number.isRequired,height:Ze.number.isRequired,axis:Ze.oneOf(["x","y"]).isRequired,scale:Ze.func.isRequired,value:Ze.oneOfType([Ze.number,Ze.string,Ze.instanceOf(Date)]).isRequired,lineStyle:Ze.object,textStyle:Ze.object,legend:Ze.string,legendPosition:Ze.oneOf(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"]),legendOffsetX:Ze.number.isRequired,legendOffsetY:Ze.number.isRequired,legendOrientation:Ze.oneOf(["horizontal","vertical"]).isRequired};var pWe=x.memo(zse),Wse=function(e){var t=e.markers,n=e.width,r=e.height,i=e.xScale,A=e.yScale;return t&&t.length!==0?t.map(function(l,c){return p.jsx(pWe,yc({},l,{width:n,height:r,scale:l.axis==="y"?A:i}),c)}):null};Wse.propTypes={width:Ze.number.isRequired,height:Ze.number.isRequired,xScale:Ze.func.isRequired,yScale:Ze.func.isRequired,markers:Ze.arrayOf(Ze.shape({axis:Ze.oneOf(["x","y"]).isRequired,value:Ze.oneOfType([Ze.number,Ze.string,Ze.instanceOf(Date)]).isRequired,lineStyle:Ze.object,textStyle:Ze.object}))},x.memo(Wse);var mWe=function(e){return Yoe(e)?e:function(t){return Bl(t,e)}},NE=function(e){return x.useMemo(function(){return mWe(e)},[e])},IWe=Object.keys(Use),CWe=Object.keys(Gse),EWe=function(e,t,n){if(e==="*")return!0;if(Yoe(e))return e(t);if(BE(e)){var r=n?Bl(t,n):t;return qze(aJe(r,Object.keys(e)),e)}return!1},BWe=function(e,t,n,r){var i={},A=i.dataKey,l=i.colorKey,c=l===void 0?"color":l,f=i.targetKey,h=f===void 0?"fill":f,I=[],B={};return e.length&&t.length&&(I=[].concat(e),t.forEach(function(v){for(var D=function(){var R=n[S],F=R.id,N=R.match;if(EWe(N,v,A)){var M=e.find(function(K){return K.id===F});if(M){if(CWe.includes(M.type))if(M.background==="inherit"||M.color==="inherit"){var P=Bl(v,c),G=M.background,J=M.color,W=F;M.background==="inherit"&&(W=W+".bg."+P,G=P),M.color==="inherit"&&(W=W+".fg."+P,J=P),bE(v,h,"url(#"+W+")"),B[W]||(I.push(yc({},M,{id:W,background:G,color:J})),B[W]=1)}else bE(v,h,"url(#"+F+")");else if(IWe.includes(M.type))if(M.colors.map(function(K){return K.color}).includes("inherit")){var q=Bl(v,c),$=F,oe=yc({},M,{colors:M.colors.map(function(K,se){return K.color!=="inherit"?K:($=$+"."+se+"."+q,yc({},K,{color:K.color==="inherit"?q:K.color}))})});oe.id=$,bE(v,h,"url(#"+$+")"),B[$]||(I.push(oe),B[$]=1)}else bE(v,h,"url(#"+F+")")}return"break"}},S=0;Sp.jsx(RN,{id:e.label,enableChip:!0,color:e.color}),HF={container:{display:"flex",alignItems:"center"},sourceChip:{marginRight:7},targetChip:{marginLeft:7,marginRight:7}},LWe=({link:e})=>p.jsx(RN,{id:p.jsxs("span",{style:HF.container,children:[p.jsx(SN,{color:e.source.color,style:HF.sourceChip}),p.jsx("strong",{children:e.source.label})," > ",p.jsx("strong",{children:e.target.label}),p.jsx(SN,{color:e.target.color,style:HF.targetChip}),p.jsx("strong",{children:e.formattedValue})]})});function PWe(e){return e.target.depth}function UWe(e){return e.depth}function GWe(e,t){return t-1-e.height}function Vse(e,t){return e.sourceLinks.length?e.depth:t-1}function HWe(e){return e.targetLinks.length?e.depth:e.sourceLinks.length?cAe(e.sourceLinks,PWe)-1:0}function L_(e){return function(){return e}}var Mt=(e=>(e.IncPackCranked="Crank:inc",e.IncPackRetained="Buffered:inc",e.IncResolvRetained="Unresolved:inc",e.IncQuic="QUIC",e.IncUdp="UDP",e.IncGossip="Gossip",e.IncBlockEngine="Jito",e.SlotStart="Received",e.SlotEnd="Packed",e.End="End",e.Networking="networking:tile",e.QUIC="QUIC:tile",e.Verification="verify:tile",e.Dedup="dedup:tile",e.Resolv="resolv:tile",e.Pack="pack:tile",e.Bank="bank:tile",e.NetOverrun="Too slow:net",e.QUICOverrun="Too slow:quic",e.QUICInvalid="Malformed:quic",e.QUICTooManyFrags="Out of buffers:quic",e.QUICAbandoned="Abandoned:quic",e.VerifyOverrun="Too slow:verify",e.VerifyParse="Unparseable",e.VerifyFailed="Bad signature",e.VerifyDuplicate="Duplicate:verify",e.DedupDeuplicate="Duplicate:dedup",e.ResolvFailed="Bad LUT",e.ResolvExpired="Expired:resolv",e.ResolvNoLedger="No ledger",e.ResolvRetained="Unresolved:resolv",e.PackInvalid="Unpackable",e.PackInvalidBundle="Bad Bundle",e.PackExpired="Expired:pack",e.PackAlreadyExecuted="AlreadyExecuted:pack",e.PackRetained="Buffered:pack",e.PackLeaderSlow="Buffer full",e.PackWaitFull="Storage full",e.BankInvalid="Unexecutable",e.BankNonceAlreadyAdvanced="NonceAlreadyAdvanced",e.BankNonceAdvanceFailed="NonceAdvanceFailed",e.BankNonceWrongBlockhash="NonceWrongBlockhash",e.BlockSuccess="Success",e.BlockFailure="Failure",e.Votes="Votes",e.NonVoteSuccess="Non-vote Success",e.NonVoteFailure="Non-vote Failure",e))(Mt||{});const YWe=["Received","Packed"],Kse=["networking:tile","QUIC:tile","verify:tile","dedup:tile","resolv:tile","pack:tile","bank:tile"],Zse=["Too slow:net","Too slow:quic","Malformed:quic","Out of buffers:quic","Abandoned:quic","Too slow:verify","Unparseable","Bad signature","Duplicate:verify","Duplicate:dedup","Bad LUT","Expired:resolv","No ledger","Unresolved:resolv","Unpackable","Bad Bundle","Expired:pack","AlreadyExecuted:pack","Buffered:pack","Buffer full","Storage full","Unexecutable","NonceAlreadyAdvanced","NonceAdvanceFailed","NonceWrongBlockhash"],$se=["QUIC","UDP"],YF=["Buffered:inc","Buffered:pack","Unresolved:inc","Unresolved:resolv"],eae=["Success","Non-vote Success"],tae=["Failure","Non-vote Failure"],JWe=[{id:"QUIC"},{id:"UDP"},{id:"Buffered:pack",labelPositionOverride:"right"},{id:"Unresolved:resolv",labelPositionOverride:"right"},{id:"Too slow:net",labelPositionOverride:"right"},{id:"Too slow:quic",labelPositionOverride:"right"},{id:"Malformed:quic",labelPositionOverride:"right"},{id:"Out of buffers:quic",labelPositionOverride:"right"},{id:"Abandoned:quic",labelPositionOverride:"right"},{id:"Too slow:verify",labelPositionOverride:"right"},{id:"Unparseable",labelPositionOverride:"right"},{id:"Bad signature",labelPositionOverride:"right"},{id:"Duplicate:verify",labelPositionOverride:"right"},{id:"Duplicate:dedup",labelPositionOverride:"right"},{id:"Bad LUT",labelPositionOverride:"right"},{id:"Expired:resolv",labelPositionOverride:"right"},{id:"No ledger",labelPositionOverride:"right"},{id:"Unpackable",labelPositionOverride:"right"},{id:"Bad Bundle",labelPositionOverride:"right"},{id:"Expired:pack",labelPositionOverride:"right"},{id:"AlreadyExecuted:pack",labelPositionOverride:"right"},{id:"Buffer full",labelPositionOverride:"right"},{id:"Storage full",labelPositionOverride:"right"},{id:"Unexecutable",labelPositionOverride:"right"},{id:"NonceAlreadyAdvanced",labelPositionOverride:"right"},{id:"NonceAdvanceFailed",labelPositionOverride:"right"},{id:"NonceWrongBlockhash",labelPositionOverride:"right"},{id:"Received",alignLabelBottom:!0,labelPositionOverride:"right"},{id:"QUIC:tile",alignLabelBottom:!0},{id:"verify:tile",alignLabelBottom:!0},{id:"dedup:tile",alignLabelBottom:!0},{id:"resolv:tile",alignLabelBottom:!0},{id:"Gossip"},{id:"Jito"},{id:"Unresolved:inc",labelPositionOverride:"left"},{id:"Crank:inc",labelPositionOverride:"left"},{id:"Buffered:inc",labelPositionOverride:"left"},{id:"pack:tile",alignLabelBottom:!0},{id:"bank:tile",alignLabelBottom:!0},{id:"End",hideLabel:!0},{id:"Packed",alignLabelBottom:!0,labelPositionOverride:"left"},{id:"Failure"},{id:"Success"},{id:"Votes"},{id:"Non-vote Failure"},{id:"Non-vote Success"}],zWe=Vs(),WWe=1,nae=-1e3,rae=12,qWe=30,XWe=3e3,VWe=2;function oae(e,t){return P_(e.source,t.source)||e.index-t.index}function iae(e,t){return P_(e.target,t.target)||e.index-t.index}function P_(e,t){return e.y0-t.y0}function Aae(e){return e.value}function KWe(e){return e.index}function ZWe(e){return e.nodes}function $We(e){return e.links}function sae(e,t){const n=e.get(t);if(!n)throw new Error("missing: "+t);return n}function aae({nodes:e}){for(const t of e){let n=t.y0,r=n;for(const i of t.sourceLinks)i.y0=n+i.width/2,n+=i.width;for(const i of t.targetLinks)i.y1=r+i.width/2,r+=i.width}}function eqe(){let e=0,t=0,n=1,r=1,i=24,A=8,l,c=KWe,f=Vse,h,I,B=ZWe,v=$We,D=6;function S(){const ae={nodes:B.apply(null,arguments),links:v.apply(null,arguments)};return R(ae),F(ae),N(ae),M(ae),J(ae),aae(ae),Be(ae),ae}S.update=function(ae){return aae(ae),ae},S.nodeId=function(ae){return arguments.length?(c=typeof ae=="function"?ae:L_(ae),S):c},S.nodeAlign=function(ae){return arguments.length?(f=typeof ae=="function"?ae:L_(ae),S):f},S.nodeSort=function(ae){return arguments.length?(h=ae,S):h},S.nodeWidth=function(ae){return arguments.length?(i=+ae,S):i},S.nodePadding=function(ae){return arguments.length?(A=l=+ae,S):A},S.nodes=function(ae){return arguments.length?(B=typeof ae=="function"?ae:L_(ae),S):B},S.links=function(ae){return arguments.length?(v=typeof ae=="function"?ae:L_(ae),S):v},S.linkSort=function(ae){return arguments.length?(I=ae,S):I},S.size=function(ae){return arguments.length?(e=t=0,n=+ae[0],r=+ae[1],S):[n-e,r-t]},S.extent=function(ae){return arguments.length?(e=+ae[0][0],n=+ae[1][0],t=+ae[0][1],r=+ae[1][1],S):[[e,t],[n,r]]},S.iterations=function(ae){return arguments.length?(D=+ae,S):D};function R({nodes:ae,links:Ce}){for(const[ge,be]of ae.entries())be.index=ge,be.sourceLinks=[],be.targetLinks=[];const de=new Map(ae.map((ge,be)=>[c(ge,be,ae),ge]));for(const[ge,be]of Ce.entries()){be.index=ge;let{source:Te,target:me}=be;typeof Te!="object"&&(Te=be.source=sae(de,Te)),typeof me!="object"&&(me=be.target=sae(de,me)),Te.sourceLinks.push(be),me.targetLinks.push(be)}if(I!=null)for(const{sourceLinks:ge,targetLinks:be}of ae)ge.sort(I),be.sort(I)}function F({nodes:ae}){for(const Ce of ae)if(Ce.fixedValue===void 0){let de=-1/0;Ce.sourceLinks.length&&(de=Math.max(rF(Ce.sourceLinks,Aae))),Ce.targetLinks.length&&(de=Math.max(rF(Ce.targetLinks,Aae))),de===-1/0&&(de=0),Ce.value=de}else Ce.value=Ce.fixedValue}function N({nodes:ae}){const Ce=ae.length;let de=new Set(ae),ge=new Set,be=0;for(;de.size;){for(const Te of de){Te.depth=be;for(const{target:me}of Te.sourceLinks)ge.add(me)}if(++be>Ce)throw new Error("circular link");de=ge,ge=new Set}}function M({nodes:ae}){const Ce=ae.length;let de=new Set(ae),ge=new Set,be=0;for(;de.size;){for(const Te of de){Te.height=be;for(const{source:me}of Te.targetLinks)ge.add(me)}if(++be>Ce)throw new Error("circular link");de=ge,ge=new Set}}function P({nodes:ae}){const Ce=lAe(ae,Ye=>Ye.depth)+1;let de=(n-e-i)/(Ce-1);const ge=de/VWe,be=new Array(Ce),Te=e+ge,me=n-ge;de=(me-Te-i)/(Ce-1-2);for(const Ye of ae){let rt=f.call(null,Ye,Ce);const We=Math.max(0,Math.min(Ce-1,Math.floor(rt)));Ye.layer=We,We===1?Ye.x0=e+ge:We<1?Ye.x0=e+We*ge:We===Ce-1?Ye.x0=me+ge:Ye.x0=Te+(We-1)*de,Ye.x1=Ye.x0+WWe,be[We]?be[We].push(Ye):be[We]=[Ye]}if(h)for(const Ye of be)Ye.sort(h);return be}function G(ae){const Ce=zWe.get(zp)===OA.Pct,de=cAe(ae,ge=>(r-t-(ge.length-1)*l)/rF(ge,be=>Math.max(be.value,Ce?1:XWe)));for(let ge=0;gede.length)-1)),G(Ce);for(let de=0;de0))continue;let We=(Ye/rt-me.y0)*Ce+rae;me.y0+=We,me.y1+=We,me.id===Mt.SlotStart&&(me.y0=t+(r-t)/6,me.y1=me.y0+me.height),me.id===Mt.SlotEnd&&(me.y1=r-(r-t)/6,me.y0=me.y1-me.height),se(me)}h===void 0&&Te.sort(P_),$(Te,de)}}function q(ae,Ce,de){for(let ge=ae.length,be=ge-2;be>=0;--be){const Te=ae[be];for(const me of Te){let Ye=0,rt=0;for(const{target:De,value:_e}of me.sourceLinks){let xe=(_e?Math.abs(_e):1)*(De.layer-me.layer);Ye+=Ae(me,De)*xe,rt+=xe}if(!(rt>0))continue;let We=(Ye/rt-me.y0)*Ce-rae;me.y0+=We,me.y1+=We,me.id===Mt.SlotStart&&(me.y0=t+(r-t)/6,me.y1=me.y0+me.height),me.id===Mt.SlotEnd&&(me.y1=r-(r-t)/6,me.y0=me.y1-me.height),se(me)}h===void 0&&Te.sort(P_),$(Te,de)}}function $(ae,Ce){const de=ae.length>>1,ge=ae[de];K(ae,ge.y0-l,de-1,Ce),oe(ae,ge.y1+l,de+1,Ce),K(ae,r,ae.length-1,Ce),oe(ae,t,0,Ce)}function oe(ae,Ce,de,ge){for(;de1e-6&&(be.y0+=Te,be.y1+=Te),Ce=be.y1+l}}function K(ae,Ce,de,ge){for(;de>=0;--de){const be=ae[de],Te=(be.y1-Ce)*ge;Te>1e-6&&(be.y0-=Te,be.y1-=Te),Ce=be.y0-l}}function se({sourceLinks:ae,targetLinks:Ce}){if(I===void 0){for(const{source:{sourceLinks:de}}of Ce)de.sort(iae);for(const{target:{targetLinks:de}}of ae)de.sort(oae)}}function Ee(ae){if(I===void 0)for(const{sourceLinks:Ce,targetLinks:de}of ae)Ce.sort(iae),de.sort(oae)}function ie(ae,Ce){let de=ae.y0-(ae.sourceLinks.length-1)*l/2;for(const{target:ge,width:be}of ae.sourceLinks){if(ge===Ce)break;de+=be+l}for(const{source:ge,width:be,target:{id:Te}}of Ce.targetLinks){if(Te.includes("Dropped")&&(de-=qWe),ge===ae)break;de-=be}return de}function Ae(ae,Ce){let de=Ce.y0-(Ce.targetLinks.length-1)*l/2;for(const{source:ge,width:be}of Ce.targetLinks){if(ge===ae)break;de+=be+l}for(const{target:ge,width:be}of ae.sourceLinks){if(ge===Ce)break;de-=be}return de}function Be(ae){const Ce=ae.nodes.reduce((de,ge)=>Math.max(de,ge.y1),0);ae.nodes.forEach(de=>{YWe.includes(de.id)&&(de.y0=0,de.y1=Ce,de.height=Ce)})}return S}const tqe={center:HWe,justify:Vse,start:UWe,end:GWe},nqe=e=>tqe[e],Zr={layout:"horizontal",align:"center",sort:"auto",colors:{scheme:"nivo"},nodeOpacity:.75,nodeHoverOpacity:1,nodeHoverOthersOpacity:.15,nodeThickness:12,nodeInnerPadding:0,nodeBorderWidth:1,nodeBorderColor:{from:"color",modifiers:[["darker",.5]]},nodeBorderRadius:0,linkOpacity:.25,linkHoverOpacity:.6,linkHoverOthersOpacity:.15,linkContract:0,linkBlendMode:"multiply",enableLinkGradient:!1,enableLabels:!0,label:"id",labelPosition:"inside",labelPadding:9,labelOrientation:"horizontal",labelTextColor:{from:"color",modifiers:[["darker",.8]]},isInteractive:!0,nodeTooltip:jWe,linkTooltip:LWe,legends:[],layers:["links","nodes","labels","legends"],role:"img",animate:!0,motionConfig:"gentle"};function rqe(e,t){for(var n=-1,r=e==null?0:e.length;++ne.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}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 G_(){return G_=Object.assign?Object.assign.bind():function(e){for(var t=1;t11))throw new Error("Invalid size '"+e.size+"' for diverging color scheme '"+e.scheme+"', must be between 3~11");var c=Ll(JF[e.scheme][e.size||11]),f=function(B){return c(n(B))};return f.scale=c,f}if(HVe(e.scheme)){if(e.size!==void 0&&(e.size<3||e.size>9))throw new Error("Invalid size '"+e.size+"' for sequential color scheme '"+e.scheme+"', must be between 3~9");var h=Ll(JF[e.scheme][e.size||9]),I=function(B){return h(n(B))};return I.scale=h,I}}throw new Error("Invalid colors, when using an object, you should either pass a 'datum' or a 'scheme' property")}return function(){return e}},XVe=function(e,t){return x.useMemo(function(){return qVe(e,t)},[e,t])};const VVe=e=>e.id,KVe=({data:e,formatValue:t,layout:n,alignFunction:r,sortFunction:i,linkSortMode:A,nodeThickness:l,nodeSpacing:c,nodeInnerPadding:f,width:h,height:I,getColor:B,getLabel:v})=>{const D=eqe().nodeAlign(r).nodeSort(i).linkSort(A).nodeWidth(l).nodePadding(c).size(n==="horizontal"?[h,I]:[I,h]).nodeId(VVe),S=MVe(e);return D(S),S.nodes.forEach(R=>{if(R.color=B(R),R.label=v(R),R.formattedValue=t(R.value),n==="horizontal")R.x=R.x0+f,R.y=R.y0,R.width=Math.max(R.x1-R.x0-f*2,0),R.height=Math.max(R.y1-R.y0,0);else{R.x=R.y0,R.y=R.x0+f,R.width=Math.max(R.y1-R.y0,0),R.height=Math.max(R.x1-R.x0-f*2,0);const F=R.x0,N=R.x1;R.x0=R.y0,R.x1=R.y1,R.y0=F,R.y1=N}}),S.links.forEach(R=>{R.formattedValue=t(R.value),R.color=R.source.color,R.pos0=R.y0,R.pos1=R.y1,R.thickness=R.width,delete R.y0,delete R.y1,delete R.width}),S},ZVe=({data:e,valueFormat:t,layout:n,width:r,height:i,sort:A,align:l,colors:c,nodeThickness:f,nodeSpacing:h,nodeInnerPadding:I,nodeBorderColor:B,label:v,labelTextColor:D})=>{const[S,R]=x.useState(null),[F,N]=x.useState(null),M=x.useMemo(()=>{if(A!=="auto")return A==="input"?null:A==="ascending"?(ie,Ae)=>ie.value-Ae.value:A==="descending"?(ie,Ae)=>Ae.value-ie.value:A},[A]),P=A==="input"?null:void 0,G=x.useMemo(()=>typeof l=="function"?l:nqe(l),[l]),J=XVe(c,"id"),W=bae(B),q=NE(v),$=bae(D),oe=NF(t),{nodes:K,links:se}=x.useMemo(()=>KVe({data:e,formatValue:oe,layout:n,alignFunction:G,sortFunction:M,linkSortMode:P,nodeThickness:f,nodeSpacing:h,nodeInnerPadding:I,width:r,height:i,getColor:J,getLabel:q}),[e,oe,n,G,M,P,f,h,I,r,i,J,q]),Ee=x.useMemo(()=>K.map(ie=>({id:ie.id,label:ie.label,color:ie.color})),[K]);return{nodes:K,links:se,legendData:Ee,getNodeBorderColor:W,currentNode:S,setCurrentNode:R,currentLink:F,setCurrentLink:N,getLabelTextColor:$}};function zF(){const e=Cf();return e.config.tension=200,e}const $Ve=({node:e,x:t,y:n,width:r,height:i,color:A,opacity:l,borderWidth:c,borderRadius:f,setCurrent:h,isInteractive:I,onClick:B,tooltip:v})=>{const{animate:D,config:S}=zF(),R=lf({x:t,y:n,width:r,height:i,opacity:l,color:A,config:S,immediate:!D}),{showTooltipFromEvent:F,hideTooltip:N}=NN(),M=x.useCallback(W=>{h(e),F(x.createElement(v,{node:e}),W,"left")},[h,e,F,v]),P=x.useCallback(W=>{F(x.createElement(v,{node:e}),W,"left")},[F,e,v]),G=x.useCallback(()=>{h(null),N()},[h,N]),J=x.useCallback(W=>{B==null||B(e,W)},[B,e]);return p.jsx($s.rect,{x:R.x,y:R.y,rx:f,ry:f,width:R.width.to(W=>Math.max(W,0)),height:R.height.to(W=>Math.max(W,0)),fill:R.color,fillOpacity:R.opacity,strokeWidth:c,stroke:qR,strokeOpacity:l,onMouseEnter:I?M:void 0,onMouseMove:I?P:void 0,onMouseLeave:I?G:void 0,onClick:I?J:void 0})},eKe=({nodes:e,nodeOpacity:t,nodeHoverOpacity:n,nodeHoverOthersOpacity:r,borderWidth:i,getBorderColor:A,borderRadius:l,setCurrentNode:c,currentNode:f,currentLink:h,isCurrentNode:I,isInteractive:B,onClick:v,tooltip:D})=>{const S=R=>!f&&!h?t:I(R)?n:r;return p.jsx(p.Fragment,{children:e.map(R=>p.jsx($Ve,{node:R,x:R.x,y:R.y,width:R.width,height:R.height,color:R.color,opacity:S(R),borderWidth:i,borderColor:A(R),borderRadius:l,setCurrent:c,isInteractive:B,onClick:v,tooltip:D},R.id))})},tKe=()=>{const e=mF().curve(rse);return(t,n)=>{const r=Math.max(1,t.thickness-n*2),i=Math.max(1,r/2),A=(t.target.x0-t.source.x1)*.12,l=[[t.source.x1,t.pos0-i],[t.source.x1+A,t.pos0-i],[t.target.x0-A,t.pos1-i],[t.target.x0,t.pos1-i],[t.target.x0,t.pos1+i],[t.target.x0-A,t.pos1+i],[t.source.x1+A,t.pos0+i],[t.source.x1,t.pos0+i],[t.source.x1,t.pos0-i]];return e(l)+"Z"}},nKe=()=>{const e=mF().curve(ose);return(t,n)=>{const r=Math.max(1,t.thickness-n*2)/2,i=(t.target.y0-t.source.y1)*.12,A=[[t.pos0+r,t.source.y1],[t.pos0+r,t.source.y1+i],[t.pos1+r,t.target.y0-i],[t.pos1+r,t.target.y0],[t.pos1-r,t.target.y0],[t.pos1-r,t.target.y0-i],[t.pos0-r,t.source.y1+i],[t.pos0-r,t.source.y1],[t.pos0+r,t.source.y1]];return e(A)+"Z"}},rKe=({id:e,layout:t})=>{let n;return t==="horizontal"?n={x1:"0%",x2:"100%",y1:"0%",y2:"0%"}:n={x1:"0%",x2:"0%",y1:"0%",y2:"100%"},p.jsxs("linearGradient",{id:e,spreadMethod:"pad",...n,children:[p.jsx("stop",{stopColor:kQ}),p.jsx("stop",{offset:"0.24",stopColor:ZR}),p.jsx("stop",{offset:"1",stopColor:kQ})]})};function Qae(e,t){const[n,r]=x.useState(!1),i=x.useRef();return x.useEffect(()=>{[...$se,Mt.SlotStart].includes(e)||(t?(i.current&&(clearTimeout(i.current),i.current=void 0),r(!0)):i.current||(i.current=setTimeout(()=>{r(!1),i.current=void 0},3e3)))},[e,r,t]),!!t||n}const oKe=({link:e,layout:t,path:n,color:r,opacity:i,enableGradient:A,setCurrent:l,tooltip:c,isInteractive:f,onClick:h})=>{const I=`${e.source.id}.${e.target.id}.${e.index}`,{animate:B,config:v}=zF(),D=$ze(n),S=lf({color:r,opacity:i,config:v,immediate:!B}),{showTooltipFromEvent:R,hideTooltip:F}=NN(),N=x.useCallback(W=>{l(e),R(x.createElement(c,{link:e}),W,"left")},[l,e,R,c]),M=x.useCallback(W=>{R(x.createElement(c,{link:e}),W,"left")},[R,e,c]),P=x.useCallback(()=>{l(null),F()},[l,F]),G=x.useCallback(W=>{h==null||h(e,W)},[h,e]);let J;return $se.includes(e.source.id)?J=XR:YF.includes(e.source.id)||YF.includes(e.target.id)?J=KR:eae.includes(e.target.id)?J=su:tae.includes(e.target.id)?J=Fc:e.target.id===Mt.Votes?J=au:Zse.includes(e.target.id)&&(J=VR),Qae(e.target.id,e.value)?p.jsxs(p.Fragment,{children:[A&&p.jsx(rKe,{id:I,layout:t,startColor:e.startColor||e.source.color,endColor:e.endColor||e.target.color}),p.jsx($s.path,{fill:J??(A?`url("#${encodeURI(I)}")`:S.color),d:D,fillOpacity:S.opacity,onMouseEnter:f?N:void 0,onMouseMove:f?M:void 0,onMouseLeave:f?P:void 0,onClick:f?G:void 0})]}):null},iKe=({links:e,layout:t,linkOpacity:n,linkHoverOpacity:r,linkHoverOthersOpacity:i,linkContract:A,linkBlendMode:l,enableLinkGradient:c,setCurrentLink:f,currentLink:h,currentNode:I,isCurrentLink:B,isInteractive:v,onClick:D,tooltip:S})=>{const R=N=>!I&&!h?n:B(N)?r:i,F=x.useMemo(()=>t==="horizontal"?tKe():nKe(),[t]);return p.jsx(p.Fragment,{children:e.map(N=>p.jsx(oKe,{link:N,layout:t,path:F(N,A),color:N.color,opacity:R(N),blendMode:l,enableGradient:c,setCurrent:f,isInteractive:v,onClick:D,tooltip:S},`${N.source.id}.${N.target.id}.${N.index}`))})};function AKe({children:e,node:t,value:n}){return Qae(t,n)?e:null}const sKe=Vs();function aKe(){switch(sKe.get(zp)){case OA.Pct:return"%";case OA.Rate:return"/s";case OA.Count:return""}}const lKe=({nodes:e,layout:t,width:n,height:r,labelPosition:i,labelPadding:A,labelOrientation:l})=>{const c=ta(),f=l==="vertical"?-90:0,h=e.filter(D=>!D.hideLabel).map(D=>{let S,R,F;return t==="horizontal"?(R=D.y+D.height/2-5,D.alignLabelBottom&&(R=D.y1),Kse.includes(D.id)?(S=D.x0+(D.x1-D.x0)/2,R=R+10,F="middle"):D.labelPositionOverride==="right"?(S=D.x1+A,F=l==="vertical"?"middle":"start"):D.labelPositionOverride==="left"?(S=D.x-A,F=l==="vertical"?"middle":"end"):D.x({transform:`translate(${D.x}, ${D.y}) rotate(${f})`,config:B,immediate:!I})));return p.jsx(p.Fragment,{children:v.map((D,S)=>{var P,G;const R=h[S],[F,N]=cKe(R.label,R.value),M=(P=R.label.split(":")[0])==null?void 0:P.trim();return p.jsx(AKe,{node:R.label,value:R.value,children:p.jsxs($s.text,{dominantBaseline:"central",textAnchor:R.textAnchor,transform:D.transform,style:{...c.labels.text,pointerEvents:"none",whiteSpace:"pre-line",fontSize:"14px",fontFamily:"Inter Tight"},children:[uKe(M).map((J,W)=>p.jsx("tspan",{x:"0",dy:W===0?"0em":"1em",style:{fill:F},children:J},J)),p.jsxs("tspan",{x:"0",dy:"1em",style:{fill:N},children:[(G=R.value)==null?void 0:G.toLocaleString(),aKe()]})]},R.id)},R.id)})})};function cKe(e,t){return t?YF.includes(e)?[E0,E0]:eae.includes(e)?[E0,su]:Kse.includes(e)?[Lg,Lg]:Zse.includes(e)||tae.includes(e)?[E0,Fc]:e===Mt.Votes?[E0,au]:[E0,E0]:[Lg,Lg]}function uKe(e){if(e.length<17||!e.includes(" "))return[e];const t=Math.trunc(e.length/2),n=e.lastIndexOf(" ",t),r=e.indexOf(" ",t+1),i=t-n{const{margin:rt,innerWidth:We,innerHeight:De,outerWidth:_e,outerHeight:xe}=Nse(A,l,c),{nodes:ve,links:Ue,legendData:At,getNodeBorderColor:He,currentNode:gt,setCurrentNode:ut,currentLink:bt,setCurrentLink:zt,getLabelTextColor:ce}=ZVe({data:e,valueFormat:t,layout:n,width:We,height:De,sort:r,align:i,colors:f,nodeThickness:h,nodeSpacing:I,nodeInnerPadding:B,nodeBorderColor:v,label:Ee,labelTextColor:ie});let mn=()=>!1,Yn=()=>!1;if(bt&&(mn=({id:dn})=>dn===bt.source.id||dn===bt.target.id,Yn=({source:dn,target:_t})=>dn.id===bt.source.id&&_t.id===bt.target.id),gt){let dn=[gt.id];Ue.filter(({source:_t,target:Pt})=>_t.id===gt.id||Pt.id===gt.id).forEach(({source:_t,target:Pt})=>{dn.push(_t.id),dn.push(Pt.id)}),dn=gOe(dn),mn=({id:_t})=>dn.includes(_t),Yn=({source:_t,target:Pt})=>_t.id===gt.id||Pt.id===gt.id}const yn={links:Ue,nodes:ve,margin:rt,width:A,height:l,outerWidth:_e,outerHeight:xe},fe={links:null,nodes:null,labels:null,legends:null};return ge.includes("links")&&(fe.links=p.jsx(iKe,{links:Ue,layout:n,linkContract:J,linkOpacity:M,linkHoverOpacity:P,linkHoverOthersOpacity:G,linkBlendMode:W,enableLinkGradient:q,setCurrentLink:zt,currentNode:gt,currentLink:bt,isCurrentLink:Yn,isInteractive:ae,onClick:Ce,tooltip:Be},"links")),ge.includes("nodes")&&(fe.nodes=p.jsx(eKe,{nodes:ve,nodeOpacity:D,nodeHoverOpacity:S,nodeHoverOthersOpacity:R,borderWidth:F,borderRadius:N,getBorderColor:He,setCurrentNode:ut,currentNode:gt,currentLink:bt,isCurrentNode:mn,isInteractive:ae,onClick:Ce,tooltip:Ae},"nodes")),ge.includes("labels")&&$&&(fe.labels=p.jsx(lKe,{nodes:ve,layout:n,width:We,height:De,labelPosition:oe,labelPadding:K,labelOrientation:se,getLabelTextColor:ce},"labels")),ge.includes("legends")&&(fe.legends=p.jsx(x.Fragment,{children:de.map((dn,_t)=>p.jsx(Xse,{...dn,containerWidth:We,containerHeight:De,data:At},`legend${_t}`))},"legends")),p.jsx(GF,{width:_e,height:xe,margin:rt,role:be,ariaLabel:Te,ariaLabelledBy:me,ariaDescribedBy:Ye,children:ge.map((dn,_t)=>typeof dn=="function"?p.jsx(x.Fragment,{children:x.createElement(dn,yn)},_t):(fe==null?void 0:fe[dn])??null)})},fKe=({isInteractive:e=Zr.isInteractive,animate:t=Zr.animate,motionConfig:n=Zr.motionConfig,theme:r,renderWrapper:i,...A})=>p.jsx(FF,{animate:t,isInteractive:e,motionConfig:n,renderWrapper:i,theme:r,children:p.jsx(dKe,{isInteractive:e,...A})});function wae({displayType:e,durationNanos:t,totalIncoming:n}){return function(r){switch(e){case OA.Count:return r;case OA.Pct:{let i=Math.max(0,Math.round(r/n*1e4)/100);return!i&&r&&(i=.01),i}case OA.Rate:{if(!t)return r;const i=t/1e9;return Math.trunc(r/i)}}}}function gKe(e){return e.net_overrun}function hKe(e){return e.quic_overrun+e.quic_frag_drop+e.quic_abandoned+e.tpu_quic_invalid+e.tpu_udp_invalid}function pKe(e){return e.verify_overrun+e.verify_parse+e.verify_failed+e.verify_duplicate}function mKe(e){return e.dedup_duplicate}function IKe(e,t){return e.resolv_expired+e.resolv_lut_failed+e.resolv_no_ledger+e.resolv_ancient+t}function CKe(e){return e.pack_invalid+e.pack_already_executed+e.pack_invalid_bundle+e.pack_expired+e.pack_leader_slow+e.pack_retained+e.pack_wait_full}function xae(e,t){const n=Math.min(e.in.resolv_retained,e.out.resolv_retained),r=e.in.resolv_retained-n,i=e.out.resolv_retained-n,A=e.in.quic+e.in.udp-gKe(e.out),l=A-hKe(e.out),c=e.in.block_engine+e.in.gossip+l-pKe(e.out),f=c-mKe(e.out),h=r+f-IKe(e.out,i),I=e.in.pack_retained+e.in.pack_cranked+h-CKe(e.out),B=I-e.out.bank_invalid-e.out.bank_nonce_already_advanced-e.out.bank_nonce_advance_failed-e.out.bank_nonce_wrong_blockhash;return[{source:Mt.IncQuic,target:Mt.SlotStart,value:t(e.in.quic)},{source:Mt.IncUdp,target:Mt.SlotStart,value:t(e.in.udp)},{source:Mt.SlotStart,target:Mt.NetOverrun,value:t(e.out.net_overrun)},{source:Mt.SlotStart,target:Mt.QUIC,value:t(A)},{source:Mt.QUIC,target:Mt.QUICOverrun,value:t(e.out.quic_overrun)},{source:Mt.QUIC,target:Mt.QUICInvalid,value:t(e.out.tpu_quic_invalid+e.out.tpu_udp_invalid)},{source:Mt.QUIC,target:Mt.QUICTooManyFrags,value:t(e.out.quic_frag_drop)},{source:Mt.QUIC,target:Mt.QUICAbandoned,value:t(e.out.quic_abandoned)},{source:Mt.QUIC,target:Mt.Verification,value:t(l)},{source:Mt.IncGossip,target:Mt.Verification,value:t(e.in.gossip)},{source:Mt.IncBlockEngine,target:Mt.Verification,value:t(e.in.block_engine)},{source:Mt.Verification,target:Mt.VerifyOverrun,value:t(e.out.verify_overrun)},{source:Mt.Verification,target:Mt.VerifyParse,value:t(e.out.verify_parse)},{source:Mt.Verification,target:Mt.VerifyFailed,value:t(e.out.verify_failed)},{source:Mt.Verification,target:Mt.VerifyDuplicate,value:t(e.out.verify_duplicate)},{source:Mt.Verification,target:Mt.Dedup,value:t(c)},{source:Mt.Dedup,target:Mt.DedupDeuplicate,value:t(e.out.dedup_duplicate)},{source:Mt.Dedup,target:Mt.Resolv,value:t(f)},{source:Mt.IncResolvRetained,target:Mt.Resolv,value:t(r)},{source:Mt.Resolv,target:Mt.ResolvRetained,value:t(i)},{source:Mt.Resolv,target:Mt.ResolvFailed,value:t(e.out.resolv_lut_failed)},{source:Mt.Resolv,target:Mt.ResolvExpired,value:t(e.out.resolv_expired+e.out.resolv_ancient)},{source:Mt.Resolv,target:Mt.ResolvNoLedger,value:t(e.out.resolv_no_ledger)},{source:Mt.Resolv,target:Mt.Pack,value:t(h)},{source:Mt.IncPackCranked,target:Mt.Pack,value:t(e.in.pack_cranked)},{source:Mt.IncPackRetained,target:Mt.Pack,value:t(e.in.pack_retained)},{source:Mt.Pack,target:Mt.PackRetained,value:t(e.out.pack_retained)},{source:Mt.Pack,target:Mt.PackInvalid,value:t(e.out.pack_invalid)},{source:Mt.Pack,target:Mt.PackInvalidBundle,value:t(e.out.pack_invalid_bundle)},{source:Mt.Pack,target:Mt.PackExpired,value:t(e.out.pack_expired)},{source:Mt.Pack,target:Mt.PackAlreadyExecuted,value:t(e.out.pack_already_executed)},{source:Mt.Pack,target:Mt.PackLeaderSlow,value:t(e.out.pack_leader_slow)},{source:Mt.Pack,target:Mt.PackWaitFull,value:t(e.out.pack_wait_full)},{source:Mt.Pack,target:Mt.Bank,value:t(I)},{source:Mt.Bank,target:Mt.BankInvalid,value:t(e.out.bank_invalid)},{source:Mt.Bank,target:Mt.BankNonceAlreadyAdvanced,value:t(e.out.bank_nonce_already_advanced)},{source:Mt.Bank,target:Mt.BankNonceAdvanceFailed,value:t(e.out.bank_nonce_advance_failed)},{source:Mt.Bank,target:Mt.BankNonceWrongBlockhash,value:t(e.out.bank_nonce_wrong_blockhash)},{source:Mt.Bank,target:Mt.End,value:t(B)},{source:Mt.End,target:Mt.SlotEnd,value:t(B)}]}function EKe(e,t){const n=sr.sum(Object.values(e.in)),r=wae({displayType:t,durationNanos:void 0,totalIncoming:n});return[...xae(e,r),{source:Mt.SlotEnd,target:Mt.BlockFailure,value:r(e.out.block_fail)},{source:Mt.SlotEnd,target:Mt.BlockSuccess,value:r(e.out.block_success)}]}function BKe(e,t,n,r,i,A,l){const c=sr.sum(Object.values(e.in)),f=wae({displayType:t,durationNanos:n,totalIncoming:c}),h=(r??0)+(i??0);return[...xae(e,f),{source:Mt.SlotEnd,target:Mt.Votes,value:f(h)},{source:Mt.SlotEnd,target:Mt.NonVoteFailure,value:f(l??0)},{source:Mt.SlotEnd,target:Mt.NonVoteSuccess,value:f(A??0)}]}function yKe(){const e=Me(Vr);return p.jsx(vKe,{slot:e},e)}function vKe({slot:e}){var A,l,c,f,h,I;const t=Me(zp),n=Me(b_e),r=k0(e),i=x.useMemo(()=>{var S,R,F,N,M,P;const B=n??((S=r.response)==null?void 0:S.waterfall);if(!B)return;const v=n?EKe(B,t):BKe(B,t,(R=r.response)==null?void 0:R.publish.duration_nanos,(F=r.response)==null?void 0:F.publish.success_vote_transaction_cnt,(N=r.response)==null?void 0:N.publish.failed_vote_transaction_cnt,(M=r.response)==null?void 0:M.publish.success_nonvote_transaction_cnt,(P=r.response)==null?void 0:P.publish.failed_nonvote_transaction_cnt),D=v.flatMap(G=>[G.source,G.target]);return{nodes:JWe.filter(G=>D.includes(G.id)),links:v}},[t,n,(A=r.response)==null?void 0:A.publish.duration_nanos,(l=r.response)==null?void 0:l.publish.failed_nonvote_transaction_cnt,(c=r.response)==null?void 0:c.publish.failed_vote_transaction_cnt,(f=r.response)==null?void 0:f.publish.success_nonvote_transaction_cnt,(h=r.response)==null?void 0:h.publish.success_vote_transaction_cnt,(I=r.response)==null?void 0:I.waterfall]);return!i||!i.links.length?r.hasWaitedForData?p.jsx(Fe,{justify:"center",align:"center",height:"100%",children:p.jsx(Se,{children:"No waterfall avaliable for this slot"})}):p.jsx(Fe,{justify:"center",align:"center",height:"100%",children:p.jsx(nb,{style:{height:50,width:50}})}):p.jsx(hs,{children:({height:B,width:v})=>{const D=v<600;if(D){const S=B;B=v,v=S}return p.jsx(fKe,{height:B,width:v,data:i,margin:{top:10,right:n?100:D?145:130,bottom:35,left:85},align:"center",isInteractive:!1,nodeThickness:0,nodeSpacing:bKe(B),nodeBorderWidth:1,sort:"input",nodeBorderRadius:3,linkOpacity:1,enableLinkGradient:!0,labelPosition:"outside",labelPadding:16})}})}function bKe(e){return e<275?32:e<300?36:e<325?40:e<350?48:52}const QKe="_container_k3j09_1",_ae={container:QKe},wKe="_card_1hfwx_1",kae={card:wKe};function bu({children:e,hideChildren:t,includeBg:n=!0,...r}){return p.jsx("div",{className:An(kae.card,{[kae.includeBg]:n}),...r,children:!t&&e})}const xKe="_header_1npds_1",_Ke="_subHeader_1npds_5",kKe="_tile-container_1npds_11",DKe="_tile_1npds_11",FE={header:xKe,subHeader:_Ke,tileContainer:kKe,tile:DKe},SKe="_stat-container_1hzk8_1",RKe="_label_1hzk8_10",TKe="_value-container_1hzk8_15",MKe="_value_1hzk8_15",H_={statContainer:SKe,label:RKe,valueContainer:TKe,value:MKe};function NKe({type:e,label:t}){var f,h,I;const n=Me(Vr),r=!n,i=Me(oS),A=k0(r?void 0:n),l=r?(f=i==null?void 0:i.tile_primary_metric)==null?void 0:f[e]:(I=(h=A.response)==null?void 0:h.tile_primary_metric)==null?void 0:I[e],c=e==="net_in"||e==="net_out"?{minWidth:"55px"}:void 0;return p.jsxs("div",{className:H_.statContainer,children:[p.jsx(Se,{className:H_.label,children:t}),p.jsx("div",{className:H_.valueContainer,style:c,children:p.jsx(Se,{className:H_.value,children:FKe(e,l)})})]})}function FKe(e,t){if(t===void 0||t===-1)return"-";if(e==="net_in"||e==="net_out"){const n=t*8,r=Ul(t*8,{precision:n>1e9?2:0}),i=Number(r.value);if(!t)return"0";const A=r.unit.replace("B","b");return`${i} ${A}/s`}if(e==="bundle_rx_delay_millis_p90"||e==="bundle_rtt_smoothed_millis")return`${Math.max(1,Math.round(t))} ms`;if(e==="verify"||e==="dedup"||e==="pack"){if(t<.01&&t>0)return`${(t*100).toFixed(2)}%`;{const n=t*100;return`${Math.trunc(n)}%`}}return t.toLocaleString()}const OKe="_btn_1lb0v_1",jKe={btn:OKe};let WF=!1;function LKe({children:e,tileCountArr:t,liveBusyPerTile:n,queryIdlePerTile:r,width:i,header:A}){const l=t.length>1,[c,f]=il(Q_e);return l?p.jsxs(hz,{open:c,onOpenChange:h=>{WF||(f(h),WF=!0,setTimeout(()=>WF=!1,10))},defaultOpen:!1,children:[p.jsx(pz,{children:c?p.jsx("div",{}):p.jsx(nl,{className:jKe.btn,children:e})}),p.jsx(mz,{width:`${i}px`,size:"1",side:"top",sideOffset:-17,align:"center",children:p.jsxs(Fe,{gap:"3",direction:"column",children:[A,n?n.map((h,I)=>p.jsxs(Fe,{children:[p.jsx(LT,{value:h}),p.jsx(mw,{busy:h})]},I)):t==null?void 0:t.map((h,I)=>{const B=r==null?void 0:r.map(v=>v[I]!==void 0&&v[I]!==-1?1-v[I]:void 0).filter(PQ);if(B!=null&&B.length)return p.jsxs(Fe,{children:[p.jsx(LT,{queryBusy:B}),p.jsx(mw,{busy:sr.mean(B)})]},I)})]})})]}):p.jsx(Fe,{gap:"1",children:e})}function Ds({header:e,subHeader:t,tileCount:n,statLabel:r,liveIdlePerTile:i,queryIdlePerTile:A,metricType:l,includeBg:c=!0}){const[f,{width:h}]=cf(),I=Me(Vr)===void 0,{avgBusy:B,aggQueryBusyPerTs:v,tileCountArr:D,liveBusyPerTile:S,busy:R}=Fee({isLive:I,tileCount:n,liveIdlePerTile:i,queryIdlePerTile:A});return p.jsx(Fe,{ref:f,children:p.jsx(bu,{includeBg:c,children:p.jsxs(Fe,{direction:"column",justify:"between",height:"100%",gap:"1",children:[p.jsx(Dae,{header:e,subHeader:t,statLabel:r,metricType:l}),p.jsx(Bo,{flexGrow:"1"}),p.jsx(LT,{value:B,queryBusy:v,includeBg:c}),p.jsxs(LKe,{tileCountArr:D,liveBusyPerTile:S,queryIdlePerTile:A,width:h,header:p.jsx(Dae,{header:e,subHeader:t,statLabel:r,metricType:l}),children:[p.jsx("div",{className:FE.tileContainer,children:D.map((F,N)=>{const M=R==null?void 0:R[N];return M===void 0?p.jsx("div",{className:FE.tile,style:{background:"gray"}},N):p.jsx("div",{className:FE.tile,style:{"--busy":`${M*100}%`}},N)})}),p.jsx(mw,{busy:B})]})]})})})}function Dae({header:e,subHeader:t,metricType:n,statLabel:r}){return p.jsxs(Fe,{justify:"between",gap:"1",children:[p.jsxs(Fe,{direction:"column",gap:"0",children:[p.jsx(Se,{className:FE.header,children:e}),t&&p.jsx(Se,{className:FE.subHeader,children:t})]}),n&&p.jsx(NKe,{type:n,label:r})]})}function Sae(){var c;const e=Me(Vr),t=!e,n=Me(Qp),r=Me(mC),i=Me(B_e),A=k0(e),l=x.useMemo(()=>{var f,h;if(!(!((h=(f=A.response)==null?void 0:f.tile_timers)!=null&&h.length)||t||!n))return A.response.tile_timers.reduce((I,B)=>{var D;if(!B.tile_timers.length)return I;const v={};B.tile_timers.length!==n.length&&console.warn("Length mismatch between tiles and time timers",B.tile_timers,n);for(let S=0;St(OA.Count),children:"Count"}),p.jsx(dp,{className:Ef.toggleGroupItem,value:OA.Pct,"aria-label":OA.Pct,onClick:()=>t(OA.Pct),children:"Pct %"}),p.jsx(dp,{className:Ef.toggleGroupItem,value:OA.Rate,"aria-label":OA.Rate,onClick:()=>t(OA.Rate),children:"Rate"})]}),p.jsx(VKe,{})]})}function VKe(){var A;const[e,t]=x.useState(!0),n=Me(Vr),r=k0(n),i=x.useMemo(()=>{var v;if(!((v=r.response)!=null&&v.publish))return;const l=r.response.publish.transaction_fee?r1(Number(r.response.publish.transaction_fee)/ga,{decimals:Ki}):"0",c=r.response.publish.transaction_fee?(Number(r.response.publish.transaction_fee)/ga).toFixed(9):"0",f=r.response.publish.priority_fee?r1(Number(r.response.publish.priority_fee)/ga,{decimals:Ki}):"0",h=r.response.publish.priority_fee?(Number(r.response.publish.priority_fee)/ga).toFixed(9):"0",I=r.response.publish.tips?r1(Number(r.response.publish.tips)/ga,{decimals:Ki}):"0",B=r.response.publish.tips?(Number(r.response.publish.tips)/ga).toFixed(9):"0";return{computeUnits:Jp(r.response.publish.compute_units??0),transactionFeeFull:c,transactionFeeRounded:l,priorityFeeFull:h,priorityFeeRounded:f,tips:B,tipsRounded:I}},[r.response]);if(n)return p.jsxs(Fe,{direction:"column",gap:"1",className:Ef.statsContainer,children:[p.jsxs(nl,{size:"2",variant:"outline",className:Ef.slotStatsToggleButton,onClick:()=>t(l=>!l),children:["Metrics"," ",e?p.jsx(nee,{style:{width:10,height:10}}):p.jsx(oee,{style:{width:10,height:10}})]}),e&&p.jsxs("div",{className:Ef.stats,children:[p.jsx(Se,{color:"cyan",children:"Priority Fees"}),p.jsx(Zo,{content:i!=null&&i.priorityFeeFull?`${i==null?void 0:i.priorityFeeFull} SOL`:null,children:p.jsx(Se,{align:"right",color:"cyan",children:(i==null?void 0:i.priorityFeeRounded)??"-"})}),p.jsx(Se,{color:"indigo",children:"Transaction Fees"}),p.jsx(Zo,{content:i!=null&&i.transactionFeeFull?`${i==null?void 0:i.transactionFeeFull} SOL`:null,children:p.jsx(Se,{align:"right",color:"indigo",children:(i==null?void 0:i.transactionFeeRounded)??"-"})}),p.jsx(Se,{color:"jade",children:"Tips"}),p.jsx(Zo,{content:i!=null&&i.tips?`${i==null?void 0:i.tips} SOL`:null,children:p.jsx(Se,{align:"right",color:"jade",children:(i==null?void 0:i.tipsRounded)??"-"})}),p.jsx("div",{style:{gridColumn:"span 2"},children:p.jsx(Bf,{my:"0"})}),p.jsx(Se,{color:"plum",children:"Compute Units"}),p.jsx(Se,{align:"right",color:"plum",children:((A=i==null?void 0:i.computeUnits)==null?void 0:A.toLocaleString())??"-"})]})]})}const KKe="_slot-performance-container_6u4bp_1",ZKe="_sankey-container_6u4bp_5",$Ke="_slot-sankey-container_6u4bp_11",qF={slotPerformanceContainer:KKe,sankeyContainer:ZKe,slotSankeyContainer:$Ke};function Rae(){return p.jsx(bu,{children:p.jsxs(Fe,{direction:"column",gap:"1",className:qF.slotPerformanceContainer,children:[p.jsx(Fe,{gap:"3",children:p.jsx(mf,{text:"TPU Waterfall"})}),p.jsx(eZe,{}),p.jsx(PKe,{})]})})}function eZe(){return p.jsxs("div",{className:qF.sankeyContainer,children:[p.jsx(XKe,{}),p.jsx("div",{className:qF.slotSankeyContainer,children:p.jsx(yKe,{})})]})}const tZe="_chart_102uq_43",nZe={chart:tZe},rZe="_chart_1kfdz_1",Tae={chart:rZe};function XF(){return{hooks:{init:[e=>{const t=e.root.querySelectorAll(".u-axis")[0];t&&t.addEventListener("mousedown",n=>{const r=n.clientX,i=e.axes[0].scale;if(i===void 0)return;const A=e.scales[i],{min:l,max:c}=A,f=((c??0)-(l??0))/(e.bbox.width/Kr.pxRatio),h=B=>{const v=(B.clientX-r)*f;if(!e.data[0].length)return;const D=e.data[0][0]??0,S=e.data[0][e.data[0].length-1]??0;e.setScale(i,{min:Math.max(D,B.shiftKey?(l??0)-v:(l??0)+v),max:Math.min(S,(c??0)+v)})},I=()=>{document.removeEventListener("mousemove",h),document.removeEventListener("mousemove",I)};document.addEventListener("mousemove",h),document.addEventListener("mouseup",I)})}]}}}const Mae="banks",yl="lamports",vc="computeUnits",jr="x",Nae=$e(),Fae=$e(0),Oae=$e(0),jae=$e(!0),Lae=$e(void 0),Pae=$e(e=>{const t=e(Lae);return t===void 0?e(Fb)===p0.balanced:t},(e,t,n)=>{t(Lae,n)}),oZe=Vs(),VF=1/9,KF=[{color:"42 126 223"},{color:"30 156 80"},{color:"30 156 80",opacity:.05},{color:"174 85 17",opacity:.05},{color:"244 5 5",opacity:.05},{color:"244 5 5",opacity:.1}],ZF=e=>KF[e]??KF[KF.length-1];function Uae({computeUnits:e,bankCount:t,tEnd:n,maxComputeUnits:r}){return Math.round((e-r)/t/VF+n)}function iZe(e,t,n){const r=[];function i(A,l,c,f){const h=(A.x-l.x)*(c.y-f.y)-(A.y-l.y)*(c.x-f.x);if(h===0)return;const I=((A.x-c.x)*(c.y-f.y)-(A.y-c.y)*(c.x-f.x))/h,B=((A.x-c.x)*(A.y-l.y)-(A.y-c.y)*(A.x-l.x))/h;if(!(I<0||I>1||B<0||B>1))return{x:A.x+I*(l.x-A.x),y:A.y+I*(l.y-A.y)}}for(const A of e){const l=i(t,n,A[0],A[1]);l&&r.push(l)}if(r.length)return r.length!==2&&console.debug(r),r.sort((A,l)=>A.x-l.x)}function AZe(e,t,n,r,i){const A=Number(n.target_end_timestamp_nanos-n.start_timestamp_nanos),l=e.min??0,c=e.max??A,f=t.max??r,h=t.min??0,I=[[{x:l,y:f},{x:c,y:f}],[{x:l,y:f},{x:l,y:h}],[{x:l,y:h},{x:c,y:h}],[{x:c,y:f},{x:c,y:h}]],B=[];for(let v=1;v<=i;v++){const D=Uae({computeUnits:0,tEnd:A,maxComputeUnits:r,bankCount:v}),S=Uae({computeUnits:r,tEnd:A,maxComputeUnits:r,bankCount:v}),R=iZe(I,{x:D,y:0},{x:S,y:r});R&&B.push({line:R,bankCount:v})}return B}function Gae(e){return[{x:e.left,y:e.top+e.height},{x:e.left+e.width,y:e.top+e.height},{x:e.left+e.width,y:e.top},{x:e.left,y:e.top}]}function vl(e,t){return Math.abs(e-t)<2}function sZe(e,t,n){const r=Gae(e),i=[...t,...n];for(const l of r)((l.x>=t[0].x||vl(l.x,t[0].x))&&(l.x<=n[0].x||vl(l.x,n[0].x))&&(l.y>=t[0].y||vl(l.y,t[0].y))&&(l.y<=n[0].y||vl(l.y,n[0].y))||(l.x>=t[1].x||vl(l.x,t[1].x))&&(l.x<=n[1].x||vl(l.x,n[1].x))&&(l.y>=t[1].y||vl(l.y,t[1].y))&&(l.y<=n[1].y||vl(l.y,n[1].y)))&&i.push(l);const A={x:i.reduce((l,c)=>l+c.x,0)/i.length,y:i.reduce((l,c)=>l+c.y,0)/i.length};return i.sort((l,c)=>{const f=Math.atan2(l.y-A.y,l.x-A.x),h=Math.atan2(c.y-A.y,c.x-A.x);return f-h}),i}function aZe(e,t,n,r,i){if(!i.opacity)return;const A=sZe(t,n,r);if(A.length>1){e.beginPath(),e.moveTo(A[0].x,A[0].y);for(let l=1;l{window.addEventListener("dppxchange",$F)},destroy:()=>{window.removeEventListener("dppxchange",$F)},drawSeries:[(r,i)=>{if(r.series[i].label!=="Active Bank")return;const A=e.current,l=t.current,c=n.current;if(A===null||l===null||c===null)return;const f=r.ctx;f.save();const h=!oZe.get(Pae),I=Number(A.target_end_timestamp_nanos-A.start_timestamp_nanos),B=Math.trunc(l+.05*I*VF),v=h?[]:AZe(r.scales[jr],r.scales[vc],A,B,c);v.unshift({line:[{x:r.scales[jr].min??0,y:l},{x:r.scales[jr].max??45e7,y:l}],bankCount:0});const D=[];$F(),f.font=Hae;const S={x:-100,y:30};for(let R=0;RKr.pxRatio*50||vl(M,r.bbox.left)&&Math.abs(P-S.y)>Kr.pxRatio*20){f.save();const q=Math.atan2(J-P,G-M);f.translate(M,P),f.rotate(q),f.fillStyle=f.strokeStyle;const $=`${N-1} Bank${N===2?"":"s"} Active`;f.measureText($).width<=r.bbox.left+r.bbox.width-M&&f.fillText($,4*Kr.pxRatio,-8*Kr.pxRatio),f.restore()}S.x=M,S.y=P}}if(D.length>0){D.unshift({line:[{x:r.bbox.left,y:vl(D[0].line[0].x,r.bbox.left)?D[0].line[0].y:r.bbox.top+r.bbox.height},{x:r.bbox.left,y:r.bbox.top}],bankCount:D[0].bankCount-1}),D.push({line:[{x:r.bbox.left+r.bbox.width,y:r.bbox.top+r.bbox.height},{x:r.bbox.left+r.bbox.width,y:vl(D[D.length-1].line[1].x,r.bbox.left+r.bbox.width)?D[D.length-1].line[1].y:r.bbox.top}],bankCount:D[D.length-1].bankCount+1});for(let R=1;RP||i===I.after&&n[I.offsetSize]>G)&&(i=P>G?I.before:I.after);var J=i===I.before?P:G,W=parseInt(h[I.maxSize]);(!W||J{const n=document.getElementById(Yae);n&&(OE=n)},drawSeries:[(t,n)=>{if(t.series[n].label!=="Active Bank"||(OE.style.display="none",e!==p0.revenue))return;const r=t.scales[jr],i=Math.round(t.valToPos(J_,jr,!0));if(r.min!==void 0&&J_r.max)return;const A=t.ctx;if(A.save(),A.beginPath(),A.strokeStyle=SQ,A.lineWidth=3,A.setLineDash([5,5]),A.moveTo(i,t.bbox.top),A.lineTo(i,t.bbox.top+t.bbox.height),A.stroke(),A.restore(),OE){const l={left:Math.round(t.valToPos(J_,jr,!1))+t.over.offsetLeft-Y_/2,top:t.over.offsetTop-Y_};Jae(OE,l,"center","bottom"),OE.style.display="block"}}]}}}let jE=!1;function zae(){return document.getElementById("scroll-container")??document.body}function e9({elId:e,showOnCursor:t,showPointer:n,closeTooltipElId:r}){let i,A,l,c,f=!1;function h(){const N=i.getBoundingClientRect();l=N.left,c=N.top}function I(){jE=!0,F.style.pointerEvents="auto",S(),setTimeout(()=>{var N;document.addEventListener("click",R),r&&((N=document.getElementById(r))==null||N.addEventListener("click",B))},0)}function B(){var N;jE=!1,F.style.pointerEvents="none",F.style.display="none",document.removeEventListener("click",R),r&&((N=document.getElementById(r))==null||N.removeEventListener("click",B))}const v=sr.throttle(B,100,{leading:!0,trailing:!0});function D(){n&&(document.body.style.cursor="pointer",document.body.addEventListener("click",I))}function S(){n&&(document.body.style.cursor="unset",document.body.removeEventListener("click",I))}function R(N){const M=document.getElementById(e);N.target&&(M!=null&&M.contains(N.target))||(B(),S())}let F;return{hooks:{init:N=>{const M=document.getElementById(e);M?F=M:(F=document.createElement("div"),F.id=e,document.body.appendChild(F)),F&&(F.style.display="none",F.style.pointerEvents="none",i=N.over,A=document.body,i.onmouseenter=()=>{f=!0},i.onmouseleave=()=>{f=!1,!jE&&(F.style.display="none",S(),jE=!1)},zae().addEventListener("scroll",v))},destroy:()=>{i.onmouseenter=null,i.onmouseleave=null,S(),B(),zae().removeEventListener("scroll",v)},setSize:()=>{h()},syncRect:()=>{h()},setCursor:N=>{if(!f||jE)return;const{left:M,top:P,idx:G}=N.cursor;if(M===void 0||P===void 0||G==null)return;const J=N.posToVal(M??0,jr),W={left:M+l+5,top:P+c};t(N,J,G)?(F.style.display="block",F.style.pointerEvents="none",D(),Jae(F,W,"right","start",{bound:A})):(F.style.display="none",S())},setScale:()=>{S(),B()}}}}function pZe(e){function t(n,r,i){const A=r>=n.data[0][i]?i:i-1;return e({elapsedTime:r,activeBanks:n.data[1][A],computeUnits:n.data[2][A],fees:n.data[3][A],tips:n.data[4][A]}),!0}return e9({elId:"cu-chart-tooltip",showOnCursor:t})}function t9(e){const t=e.factor||.75,n=.1;let r,i,A,l,c,f,h;return{hooks:{ready(I){r=I.scales.x.min??0,i=I.scales.x.max??0,A=I.scales.y.min??0,l=I.scales.y.max??0,c=i-r,f=l-A;const B=I.over;let v=B.getBoundingClientRect();h=new ResizeObserver(()=>{v=B.getBoundingClientRect()}),h.observe(B),B.addEventListener("wheel",D=>{if(D.ctrlKey||D.metaKey||D.shiftKey){if(D.preventDefault(),D.ctrlKey||D.metaKey){let{left:S,top:R}=I.cursor;S??(S=0),R??(R=0);const F=S/v.width,N=1-R/v.height,M=I.posToVal(S,jr),P=I.posToVal(R,"y"),G=(I.scales.x.max??0)-(I.scales.x.min??0),J=(I.scales.y.max??0)-(I.scales.y.min??0),W=D.deltaY<0?G*t:G/t;let q=M-F*W,$=q+W;[q,$]=Mw(W,q,$,c,r??0,i??0);const oe=D.deltaY<0?J*t:J/t;let K=P-N*oe,se=K+oe;[K,se]=Mw(oe,K,se,f,A??0,l??0),requestAnimationFrame(()=>I.batch(()=>{I.setScale(jr,{min:q,max:$})}))}else if(D.shiftKey){const S=(I.scales.x.max??0)-(I.scales.x.min??0);let R=S*n;D.deltaY>=0&&(R*=-1);const[F,N]=Mw(S,(I.scales.x.min??0)+R,(I.scales.x.max??0)+R,S,r??0,i??0);requestAnimationFrame(()=>I.setScale(jr,{min:F,max:N}))}}})},destroy(I){h==null||h.disconnect()}}}}const mZe=Vs();let n9=!1;function Wae(){return{hooks:{setScale:(e,t)=>{if(n9||t!==jr)return;const n=e.scales[jr];n9=!0;let r=n.min??0,i=n.max??0;if(i-r<100){const A=Math.trunc((i+r)/2);r=A-50,i=A+50}mZe.set(Nw,A=>{A.setScale(jr,{min:r,max:i})}),n9=!1}}}}const LE=2e6;function z_(e){if(!e)return 0;const t=e.txn_mb_end_timestamps_nanos.map(n=>Number(n-e.start_timestamp_nanos));return t.push(Number(e.target_end_timestamp_nanos-e.start_timestamp_nanos)),(sr.max(t)??0)+LE}const IZe=Vs();function CZe(){let e,t;return{hooks:{ready(n){e=n.scales.x.min??0,t=n.scales.x.max??0},setScale(n){IZe.set(jae,n.scales.x.min===e&&n.scales.x.max===t)}}}}function qae(e,t,n){const r=e.touches[0],i=r.clientX-n.left,A=r.clientY-n.top;if(e.touches.length===1)t.x=i,t.y=A,t.d=t.dx=t.dy=1;else{const l=e.touches[1],c=l.clientX-n.left,f=l.clientY-n.top,h=Math.min(i,c),I=Math.min(A,f),B=Math.max(i,c),v=Math.max(A,f);t.y=(I+v)/2,t.x=(h+B)/2,t.dx=B-h,t.dy=v-I,t.d=Math.sqrt(t.dx*t.dx+t.dy*t.dy)}}function r9(){let e,t,n,r,i,A;const l={x:0,y:0,dx:0,dy:0,d:0},c={x:0,y:0,dx:0,dy:0,d:0};let f=!1;return{hooks:{ready:h=>{r=h.scales.x.min??0,i=h.scales.x.max??0,n=i-r;function I(){const v=l.dx/c.dx,D=c.x/e.width,S=t*v;let R=A-D*S,F=R+S;[R,F]=Mw(S,R,F,n,r,i),h.batch(()=>{h.setScale(jr,{min:R,max:F})}),f=!1}function B(v){qae(v,c,e),f||(f=!0,requestAnimationFrame(I))}h.over.addEventListener("touchstart",function(v){h.scales[jr].max===void 0||h.scales[jr].min===void 0||(e=h.over.getBoundingClientRect(),t=h.scales[jr].max-h.scales[jr].min,A=h.posToVal(l.x,jr),qae(v,l,e),document.addEventListener("touchmove",B,{passive:!0}))}),h.over.addEventListener("touchend",function(v){document.removeEventListener("touchmove",B)})}}}}function EZe(e){const t=[...e.txn_mb_start_timestamps_nanos.map((f,h)=>({timestampNanos:Number(f-e.start_timestamp_nanos),txn_idx:h,isTxnStart:!0})),...e.txn_mb_end_timestamps_nanos.map((f,h)=>({timestampNanos:Number(f-e.start_timestamp_nanos),txn_idx:h,isTxnStart:!1}))].sort((f,h)=>f.timestampNanos-h.timestampNanos),n=[];let r=0,i=0,A=0;const l=t.reduce((f,h,I)=>{const B=h.txn_idx,v=e.txn_landed[B]?h.isTxnStart?e.txn_compute_units_requested[B]:-e.txn_compute_units_requested[B]+e.txn_compute_units_consumed[B]:0,D=h.isTxnStart?0:Number(GQ(e,B)),S=h.isTxnStart?0:Number(HQ(e,B));n[e.txn_bank_idx[B]]=h.isTxnStart;const R=n.filter(G=>G).length,F=f[0].length-1,N=(f[2][F]||0)+v,M=(f[3][F]||0)+D,P=(f[4][F]||0)+S;return R>A&&(A=R),N>i&&(i=N),M>r&&(r=M),P>r&&(r=P),I>0&&t[I-1].timestampNanos===h.timestampNanos?(f[1][F]=R,f[2][F]=N,f[3][F]=M,f[4][F]=P):(f[0].push(h.timestampNanos),f[1].push(R),f[2].push(N),f[3].push(M),f[4].push(P)),f},[[-LE],[0],[0],[0],[0]]),c=z_(e);return l.forEach(f=>{f.push(null)}),l[0][l[0].length-1]=c,{chartData:l,maxBankCount:A,maxComputeUnits:i,maxLamports:r}}const{stepped:o9}=Kr.paths,i9=o9==null?void 0:o9({align:1}),W_=(e,t,n,r)=>(i9==null?void 0:i9(e,t,n,r))??null,BZe="cu-chart";function yZe({slotTransactions:e,maxComputeUnits:t,bankTileCount:n,onCreate:r}){const i=It(Nae),A=It(Fae),l=It(Oae),c=x.useRef(e);c.current=e;const f=x.useRef(t);f.current=t;const h=x.useRef(n);h.current=n;const{chartData:I,maxBankCount:B,maxComputeUnits:v,maxLamports:D}=x.useMemo(()=>EZe(e),[e]),S=x.useCallback((F,N)=>!(F>0||N({width:0,height:0,class:Tae.chart,drawOrder:["axes","series"],cursor:{sync:{key:jr},points:{show:!1}},scales:{x:{time:!1},[vc]:{range:(F,N,M)=>{if(S(N,M))return[0,t+1e6];const P=Math.max(M-N,5e4);return[Math.max(N-P,0),Math.min(M+P,t+1e6)]}},[Mae]:{range:[0,B+1]},[yl]:{range:[0,D*1.1]}},axes:[{border:{show:!0,width:1/devicePixelRatio,stroke:Qo},stroke:Qo,grid:{width:1/devicePixelRatio,stroke:DQ},ticks:{width:1/devicePixelRatio,stroke:Qo,size:5},size:30,values:(F,N)=>N.map(M=>M/1e6+"ms"),space:100},{scale:vc,border:{show:!0,width:1/devicePixelRatio,stroke:Qo},stroke:Qo,grid:{width:1/devicePixelRatio,stroke:DQ},ticks:{width:1/devicePixelRatio,stroke:Qo,size:5},values:(F,N)=>N.map(M=>M/1e6+"M"),space:50,size(F,N,M,P){var $,oe;const G=F.axes[M];if(P>1)return G._size;let J=(($=G.ticks)==null?void 0:$.size)??0+(G.gap??0);J+=5;const W=(N??[]).reduce((K,se)=>se.length>K.length?se:K,"");W!==""&&(F.ctx.font=((oe=G.font)==null?void 0:oe[0])??"Inter Tight",J+=F.ctx.measureText(W).width/devicePixelRatio);const q=Math.ceil(J);return A(q),q}},{scale:yl,stroke:Qo,border:{show:!0,width:1/devicePixelRatio,stroke:Qo},ticks:{width:1/devicePixelRatio,stroke:Qo,size:5},values:(F,N)=>N.map(M=>M/ga+" SOL"),side:1,space:50,size(F,N,M,P){var $,oe;const G=F.axes[M];if(P>1)return G._size;let J=(($=G.ticks)==null?void 0:$.size)??0+(G.gap??0);J+=5;const W=(N??[]).reduce((K,se)=>se.length>K.length?se:K,"");W!==""&&(F.ctx.font=((oe=G.font)==null?void 0:oe[0])??"Inter Tight",J+=F.ctx.measureText(W).width/devicePixelRatio);const q=Math.ceil(J);return l(q),q}}],series:[{},{label:"Active Bank",stroke:"rgba(117, 77, 18, 1)",paths:W_,points:{show:!1},width:2/devicePixelRatio,scale:Mae},{label:"Compute Units",stroke:nf,paths:W_,points:{show:!1},width:2/devicePixelRatio,scale:vc},{label:"Fees",stroke:Pg,paths:W_,points:{show:!1},width:2/devicePixelRatio,scale:yl},{label:"Tips",stroke:B0,paths:W_,points:{show:!1},width:2/devicePixelRatio,scale:yl}],legend:{show:!1},plugins:[hZe(),cZe({slotTransactionsRef:c,maxComputeUnitsRef:f,bankTileCountRef:h}),XF(),t9({factor:.75}),pZe(i),Wae(),CZe(),r9()]}),[B,D,i,S,t,A,l]);return p.jsx("div",{style:{height:"100%"},children:p.jsx(hs,{children:({height:F,width:N})=>(R.width=N,R.height=F,p.jsx(p.Fragment,{children:p.jsx(_0,{id:BZe,options:R,data:I,onCreate:r})}))})})}const vZe="_tooltip_h8khk_1",bZe={tooltip:vZe};function A9({elId:e,children:t}){const n=Me(Yg);return p.jsx(vU,{container:n,id:e,className:bZe.tooltip,children:t})}const QZe="_tooltip_11ays_1",wZe="_active-banks_11ays_14",xZe="_compute-units_11ays_18",_Ze="_elapsed-time_11ays_22",kZe="_fees_11ays_26",DZe="_tips_11ays_30",SZe="_label_11ays_34",As={tooltip:QZe,activeBanks:wZe,computeUnits:xZe,elapsedTime:_Ze,fees:kZe,tips:DZe,label:SZe};function RZe(){var t;const e=Me(Nae);return p.jsx(A9,{elId:"cu-chart-tooltip",children:e&&p.jsxs("div",{className:As.tooltip,children:[p.jsx(Se,{className:An(As.activeBanks,As.label),children:"Active\xA0banks"}),p.jsx(Se,{className:As.activeBanks,children:e.activeBanks??"-"}),p.jsx(Se,{className:An(As.computeUnits,As.label),children:"Compute\xA0units"}),p.jsxs(Se,{className:As.computeUnits,children:[((t=e.computeUnits)==null?void 0:t.toLocaleString())??"-","\xA0CUs"]}),p.jsx(Se,{className:An(As.elapsedTime,As.label),children:"Time\xA0elapsed"}),p.jsx(Se,{className:As.elapsedTime,children:e.elapsedTime!=null?`${(e.elapsedTime/1e6).toLocaleString(void 0,{maximumFractionDigits:6})} ms`:"-"}),p.jsx(Se,{className:An(As.tips,As.label),children:"Tips"}),p.jsx(Se,{className:As.tips,children:UQ(BigInt(e.tips||0),Ki)}),p.jsx(Se,{className:An(As.fees,As.label),children:"Fees"}),p.jsx(Se,{className:As.fees,children:UQ(BigInt(e.fees||0),Ki)})]})})}const TZe="_button_1b3a4_1",s9={button:TZe};function MZe({onUplot:e}){const t=Me(jae);return p.jsxs(Fe,{gap:"3",align:"center",children:[p.jsx(ol,{orientation:"vertical",size:"2"}),p.jsxs(Fe,{gap:"1px",children:[p.jsx(rl,{variant:"soft",onClick:()=>e(n=>{const r=n.scales[jr].min??0,i=n.scales[jr].max??0,A=i-r;if(A<=0)return;const l=A*.2;n.setScale(jr,{min:r+l,max:i-l})}),className:s9.button,children:p.jsx(fee,{width:"18",height:"18"})}),p.jsx(rl,{variant:"soft",onClick:()=>e(n=>{const r=n.data[0][0],i=n.data[0].at(-1)??r,A=n.scales[jr].min??0,l=n.scales[jr].max??0,c=l-A;if(c<=0)return;const f=c*.2;n.setScale(jr,{min:Math.max(A-f,r),max:Math.min(l+f,i)})}),disabled:t,className:s9.button,children:p.jsx(hee,{width:"18",height:"18"})}),p.jsx(nl,{variant:"soft",onClick:()=>e(n=>n.setScale(jr,{min:n.data[0][0],max:n.data[0].at(-1)??0})),disabled:t,className:s9.button,children:p.jsx(aee,{width:"18",height:"18"})})]})]})}const NZe="_label_1q3ew_1",FZe={label:NZe};function OZe({checked:e,onCheckedChange:t,label:n,color:r}){return p.jsx(Fe,{align:"center",gap:"2",children:p.jsx(Se,{as:"label",className:FZe.label,style:{color:r},children:p.jsxs(Fe,{gap:"2",children:[p.jsx(CD,{checked:e,onCheckedChange:t,size:"1"}),n]})})})}function jZe({onUplot:e}){const[t,n]=il(Pae),r=i=>{n(i),e(A=>{A.redraw(!1,!1)})};return p.jsx(OZe,{label:"Show Projections",checked:t,onCheckedChange:r,color:wQ})}function LZe(){var l;const e=Me(Vr),t=hc(e),n=x.useRef(),r=Me(mC).bank,i=x.useCallback(c=>{n.current=c},[]),A=x.useCallback(c=>n.current&&c(n.current),[]);return!e||!((l=t.response)!=null&&l.transactions)?null:p.jsxs(p.Fragment,{children:[p.jsx(bu,{children:p.jsxs(Fe,{direction:"column",height:"100%",gap:"2",children:[p.jsxs(Fe,{gap:"3",children:[p.jsx(mf,{text:"Slot Progression"}),p.jsx(MZe,{onUplot:A}),p.jsx(jZe,{onUplot:A})]}),p.jsxs("div",{className:nZe.chart,children:[p.jsx(yZe,{slotTransactions:t.response.transactions,maxComputeUnits:t.response.publish.max_compute_units??eQ,bankTileCount:r,onCreate:i}),p.jsx(fZe,{})]})]})}),p.jsx(RZe,{})]})}function Xae(e,t){return Math.round(e*(t=10**t))/t}const PZe=1,Vae=(e,t,n,r,i)=>Xae(t+e*(n+i),6);function UZe(e,t,n,r,i){let A=(1-t)/(e-1);(isNaN(A)||A===1/0)&&(A=0);const l=0,c=t/e,f=Xae(c,6),h=f,I=f;if(r==null)for(let B=0;B=n&&e<=i&&t>=r&&t<=A}const Mu=class Mu{constructor(t,n,r,i,A=0){Xu(this,"x");Xu(this,"y");Xu(this,"w");Xu(this,"h");Xu(this,"l");Xu(this,"o");Xu(this,"q");this.x=t,this.y=n,this.w=r,this.h=i,this.l=A,this.o=[],this.q=null}split(){const t=this.w/2,n=this.h/2,r=this.l+1;this.q=[new Mu(this.x+t,this.y,t,n,r),new Mu(this.x,this.y,t,n,r),new Mu(this.x,this.y+n,t,n,r),new Mu(this.x+t,this.y+n,t,n,r)]}quads(t,n,r,i,A){if(!this.q)return;const l=this.x+this.w/2,c=this.y+this.h/2,f=nl,B=n+i>c;f&&I&&A(this.q[0]),h&&f&&A(this.q[1]),h&&B&&A(this.q[2]),I&&B&&A(this.q[3])}add(t){if(this.q)this.quads(t.x,t.y,t.w,t.h,n=>n.add(t));else if(this.o.push(t),this.o.length>Mu.MAX_OBJECTS&&this.lr.add(n));this.o.length=0}}get(t,n,r,i,A){for(const l of this.o)A(l);this.q&&this.quads(t,n,r,i,l=>l.get(t,n,r,i,A))}clear(){this.o.length=0,this.q=null}};Xu(Mu,"MAX_OBJECTS",10),Xu(Mu,"MAX_LEVELS",4);let a9=Mu;function Kae(e,t,n=Math.E){return e===0||t===0?0:((e<=0||t<=0)&&(console.error(e,t),console.error("Logarithms are only defined for positive numbers.")),n===Math.E?Math.log(e)-Math.log(t):Math.log(e)/Math.log(n)-Math.log(t)/Math.log(n))}function HZe(e,t){if(Math.trunc(e)!==e){let n=0;for(;Math.trunc(e)!==e;)e*=10,n++;return e/(Math.pow(10,n)*t)}else return e/t}var mi=(e=>(e.DEFAULT="All",e.PRELOADING="Pre-Loading",e.VALIDATE="Validate",e.LOADING="Loading",e.EXECUTE="Execute",e.POST_EXECUTE="Post-Execute",e))(mi||{});const YZe={All:MQ,"Pre-Loading":t5,Validate:NQ,Loading:r5,Execute:i5,"Post-Execute":s5},bc={All:MQ,"Pre-Loading":n5,Validate:NQ,Loading:o5,Execute:A5,"Post-Execute":a5};var Hi=(e=>(e[e.ERROR=0]="ERROR",e[e.MICROBLOCK=1]="MICROBLOCK",e[e.BUNDLE=2]="BUNDLE",e[e.LANDED=3]="LANDED",e[e.SIMPLE=4]="SIMPLE",e[e.FEES=5]="FEES",e[e.TIPS=6]="TIPS",e[e.CUS_CONSUMED=7]="CUS_CONSUMED",e[e.CUS_REQUESTED=8]="CUS_REQUESTED",e[e.INCOME_CUS=9]="INCOME_CUS",e))(Hi||{});const Zae="bank-";function $ae(e){return`${Zae}${e}`}function JZe(e,t){if(t<0||e.txn_mb_start_timestamps_nanos[t]===void 0)return;const n=e.start_timestamp_nanos,r=Number(e.txn_mb_start_timestamps_nanos[t]-n),i=Number(e.txn_preload_end_timestamps_nanos[t]-n),A=Number(e.txn_start_timestamps_nanos[t]-n),l=Number(e.txn_load_end_timestamps_nanos[t]-n),c=Number(e.txn_end_timestamps_nanos[t]-n),f=Number(e.txn_mb_end_timestamps_nanos[t]-n);return{mbStartTs:r,preloadTs:i,txnStartTs:A,loadEndTs:l,txnEndTs:c,mbEndTs:f}}function q_(e,t,n,r){const i={};for(let c=0;c+c).sort((c,f)=>c-f),l=[[-LE],[null],[null]];for(let c=0;c!I(e,h)))l[1].push(null),l[2].push(null);else if(l[1].push(h),h===null)l[2].push(null);else{const I=e.txn_microblock_id[h];l[2][l[2].length-1]===I||l[2][l[2].length-1]===void 0?l[2].push(void 0):l[2].push(I)}}l[0].push(n);for(let c=1;c{function r(A){return A.startsWith("bank-")}function i(A,l){const c=Number(l.replace(Zae,""));isNaN(c)||n(A,c)}t(Nw,i,{isMatchingChartId:r})}),zZe="landed";function WZe(e,t){return e.txn_landed[t]}const ele=$e([]),tle={},[PE,l9]=function(){const e=$e({...tle}),t=$e();return[$e(n=>n(e),(n,r,i)=>{if(r(e,i),Object.keys(i).length){const A=new Set;r(bl,l=>{var c;if((c=l.data[1])!=null&&c.length)for(let f=0;fn(t))]}();function qZe({baseChartData:e,transactions:t,value:n,filterEnum:r,filterFunc:i,mergeMatchingPoints:A}){const l=[null];let c=null;for(let f=1;f{const h={...n(PE)};f===void 0?delete h[e]:h[e]=(B,v)=>t(B,v,f);const I=q_(A,l,c,Object.values(h));r(PE,h),i.data.splice(1,1,I[1]),i.data.splice(2,1,I[2]),i.setData(i.data,!1),i.redraw(!0,!0)})}function X_(e,t){function n(r,i,A){switch(A){case"All":return!0;case"Yes":return t(r,i);case"No":return!t(r,i)}}return nle(e,n)}const XZe=X_("error",(e,t)=>e.txn_error_code[t]!==0),VZe=X_("bundle",(e,t)=>e.txn_from_bundle[t]),KZe=X_(zZe,WZe),ZZe=X_("simple",(e,t)=>e.txn_is_simple_vote[t]),$Ze=nle("arrival",(e,t,{min:n,max:r})=>{const i=Number(e.txn_arrival_timestamps_nanos[t]-e.start_timestamp_nanos);return(n===void 0||i>=n)&&i<=r});let V_={};function e$e(e,t){Object.values(V_).forEach(n=>n(e,t))}function t$e(){V_={}}function UE(e,t,n){return $e(null,(r,i,A,l,c,f)=>{function h(I,B){const v=I.data.length,D=r(ele),S=qZe({filterEnum:e,filterFunc:t,transactions:l,baseChartData:D[B],value:f,mergeMatchingPoints:n});I.data.splice(v,0,S),I.addSeries({...I.series[1],label:`${e}`},v),fle(I.series.filter(R=>R.show).length-1),I.setData(I.data,!1),r(K_)===void 0&&I.redraw(!0,!0)}V_[e]=h,h(A,c)})}const n$e=UE(Hi.FEES,(e,t)=>!!Number(e.txn_priority_fee[t]+e.txn_transaction_fee[t])),r$e=UE(Hi.TIPS,(e,t)=>!!Number(e.txn_tips[t])),o$e=UE(Hi.CUS_CONSUMED,(e,t)=>!!e.txn_compute_units_consumed[t]),i$e=UE(Hi.CUS_REQUESTED,(e,t,n)=>!!e.txn_compute_units_requested[t]),A$e=UE(Hi.INCOME_CUS,(e,t)=>e.txn_compute_units_consumed[t]>0&&Number(y0(e,t))/e.txn_compute_units_consumed[t]>0),GE=$e(null,(e,t,n,r)=>{const i=n.series.findIndex(A=>A.label===`${r}`);i!==-1&&(n.delSeries(i),n.data.splice(i,1),fle(n.data.length-1),n.setData(n.data,!1),e(K_)===void 0&&n.redraw(!0,!0),delete V_[r])}),c9=$e(1),K_=$e();function rle(e,t,n){return eole}function Ale(e,t,n=2){const r=10n**BigInt(n),i=e*r/t;return Number(i)/Number(r)}function e4(e,t){return function(n){return n.current?e(n.current).reduce((r,i,A)=>i>r?i:r,t):t}}const l$e=e4(e=>e.txn_priority_fee.map((t,n)=>t+e.txn_transaction_fee[n]),0n),c$e=e4(e=>e.txn_tips,0n),u$e=e4(e=>e.txn_compute_units_consumed,0),d$e=e4(e=>e.txn_compute_units_requested,0);function sle(e,t){if(!e.txn_landed[t])return 0;const n=e.txn_compute_units_consumed[t];return n?Number(y0(e,t))/n:0}function ale(e){const t=e.txn_priority_fee.reduce((r,i,A)=>{if(!e)return r;const l=sle(e,A);return r[l]??(r[l]=[]),r[l].push(A),r},{}),n=Object.keys(t).sort((r,i)=>Number(i)-Number(r));return{rankings:n.reduce((r,i,A)=>{const l=t[i];for(const c of l)r.set(c,A+1);return r},new Map),totalRanks:n.length}}function f$e(e){if(!e.current)return new Map;const{rankings:t,totalRanks:n}=ale(e.current);for(const[r,i]of t)t.set(r,(n-i+1)/n);return t}const g$e=1,h$e=PZe;let lle=0;const cle=.5,p$e=1.3;let L1;function u9(e){L1=e}let P1="";function ule(e){P1=e}let d9;function dle(e){d9=e}let F0=0;const fle=e=>{F0=e-1,Vs().set(c9,F0)};function m$e(e){let t=0n,n=0n,r=0,i=0,A=new Map;function l(){t=l$e(e)}function c(){n=c$e(e)}function f(){r=u$e(e)}function h(){i=d$e(e)}function I(){A=f$e(e)}F0=1;const B={mode:1,fill:(ie,Ae,Be,ae)=>{var Ce,de,ge;if(!e.current)return{fill:""};if(HE(Ae))return{fill:""};if(Z_(Ae))return{fill:YZe[s$e(ie,Be,e.current,ae)],brightness:d9===ie[N0][Be]?p$e:void 0};if($_(Ae))return{fill:""};if(ae===Hi.FEES){const be=ie[N0][Be]??-1,Te=e.current.txn_priority_fee[be]+e.current.txn_transaction_fee[be];if(!Te)return{fill:""};const me=Ale(Te,t,4);return{fill:`rgba(76, 204, 230, ${Math.max(Math.min(.8,me*4),.3)})`}}if(ae===Hi.TIPS){const be=ie[N0][Be]??-1,Te=(Ce=e.current)==null?void 0:Ce.txn_tips[be];if(!Te)return{fill:""};const me=Ale(Te,n,4);return{fill:`rgba(31, 216, 164, ${Math.max(Math.min(.8,me*4),.3)})`}}if(ae===Hi.CUS_REQUESTED){const be=ie[N0][Be]??-1,Te=(de=e.current)==null?void 0:de.txn_compute_units_requested[be];if(!Te)return{fill:""};const me=Te/i;return{fill:`rgba(255, 141, 204, ${Math.max(Math.min(.85,me),.2)})`}}if(ae===Hi.CUS_CONSUMED){const be=ie[N0][Be]??-1,Te=(ge=e.current)==null?void 0:ge.txn_compute_units_consumed[be];if(!Te)return{fill:""};const me=Te/r;return{fill:`rgba(209, 157, 255, ${Math.max(Math.min(.85,me),.2)})`}}if(ae===Hi.INCOME_CUS){const be=ie[N0][Be]??-1,Te=A.get(be)??0;return{fill:`rgba(158, 177, 255, ${Math.max(Math.min(.8,Te),.3)})`}}return{fill:""}},stroke:(ie,Ae,Be,ae)=>{var Ce,de,ge;if(HE(Ae)||Z_(Ae))return"";if($_(Ae)){const be=ie[N0][Be]??-1,Te=(Ce=e.current)==null?void 0:Ce.txn_error_code[be];return L1?Te===L1&&(!P1||((de=e.current)==null?void 0:de.txn_source_tpu[be])===P1)?"rgba(162,5,8, .8)":Te?"rgba(162,5,8, .1)":"rgba(19,173,79, .1)":P1?((ge=e.current)==null?void 0:ge.txn_source_tpu[be])===P1&&(!L1||Te===L1)?Te?"rgba(162,5,8, .8)":"rgba(19,173,79, .8)":Te?"rgba(162,5,8, .1)":"rgba(19,173,79, .1)":Te?"rgba(162,5,8, .5)":"rgba(19,173,79, .5)"}return""}},{mode:v,fill:D,stroke:S}=B;function R(ie,Ae,Be,ae){UZe(Ae,g$e,h$e,ie,(Ce,de,ge)=>{const be=Be*de,Te=Be*ge;ae(Ce,be,Te)})}const F=[.6,1/0];1-F[0];function N(){(F[1]??1/0)*Kr.pxRatio}N();const M=new Map,P=new Map;function G(ie){let Ae;const Be=d9!==void 0;Be&&(ie.filter=`brightness(${cle})`),M.forEach(({path:ae,brightness:Ce,fill:de})=>{de&&(Be&&Ce!==Ae&&(ie.filter=`brightness(${Ce??cle})`,Ae=Ce),ie.fillStyle=de,ie.fill(ae))}),ie.filter="",P.forEach((ae,Ce)=>{Ce&&(ie.strokeStyle=Ce,ie.stroke(ae))}),M.clear(),P.clear()}function J(ie,Ae,Be,ae,Ce,de,ge,be,Te,me,Ye,rt,We){var Ue,At,He;if(!e.current)return;const De=Ye+1,_e=D(ie,De,rt,We);let xe=M.get(_e.fill+_e.brightness);const ve=ie[N0][rt];if(ve!=null){if(ile(De)){if(We===Hi.FEES){const gt=e.current.txn_priority_fee[ve]+e.current.txn_transaction_fee[ve];if(gt!==void 0){let ut=1/Kae(Number(t),Number(gt),1.7);ut>.9&&(ut=.9),ut<.1&&(ut=.1);const bt=Te*ut,zt=Te-bt;Te-=zt,ge+=zt}}if(We===Hi.TIPS){const gt=(Ue=e.current)==null?void 0:Ue.txn_tips[ve];if(gt!==void 0){let ut=1/Kae(Number(n),Number(gt),1.7);ut>.9&&(ut=.9),ut<.1&&(ut=.1);const bt=Te*ut,zt=Te-bt;Te-=zt,ge+=zt}}if(We===Hi.CUS_CONSUMED){const gt=(At=e.current)==null?void 0:At.txn_compute_units_consumed[ve];if(gt!==void 0){let ut=gt/r;ut>.9&&(ut=.9),ut<.1&&(ut=.1);const bt=Te*ut,zt=Te-bt;Te-=zt,ge+=zt}}if(We===Hi.CUS_REQUESTED){const gt=(He=e.current)==null?void 0:He.txn_compute_units_requested[ve];if(gt!==void 0){let ut=gt/i;ut>.9&&(ut=.9),ut<.1&&(ut=.1);const bt=Te*ut,zt=Te-bt;Te-=zt,ge+=zt}}if(We===Hi.INCOME_CUS){let gt=A.get(ve)??0;gt>.9&&(gt=.95),gt<.1&&(gt=.1);const ut=Te*gt,bt=Te-ut;Te-=bt,ge+=bt}}if(xe==null&&M.set(_e.fill+_e.brightness,xe={path:new Path2D,fill:_e.fill,brightness:_e.brightness}),Be(xe.path,de,ge,be,Te),me){const gt=S(ie,De,rt,We);let ut=P.get(gt);ut==null&&P.set(gt,ut=new Path2D),Be(ut,de+me/2,ge+me/2,be-me,Te-me)}$_(De)||q.add({x:sr.round(de-ae),y:sr.round(ge-Ce),w:be,h:Te,sidx:Ye+(Ye>1?2:1),didx:rt})}}function W(ie,Ae,Be,ae){return Kr.orient(ie,Ae,(Ce,de,ge,be,Te,me,Ye,rt,We,De,_e,xe,ve,Ue)=>{const At=sr.round((Ce.width||0)*Kr.pxRatio);ie.ctx.save(),Ue(ie.ctx,ie.bbox.left,ie.bbox.top,ie.bbox.width,ie.bbox.height),ie.ctx.clip(),R(Ae-1,F0,_e,(He,gt,ut)=>{(HE(Ae)||Z_(Ae))&&ut&&(lle=ut),HE(Ae)||Z_(Ae)||(gt-=lle);for(let bt=0;bt=ie.bbox.left&&zt<=ie.bbox.left+ie.bbox.width){const Yn=ie.scales.x.min!=null&&ie.scales.x.max!=null?4e8/(ie.scales.x.max-ie.scales.x.min):void 0;J(ie.data,ie.ctx,Ue,rt,We,zt,sr.round(We+gt)+10,ile(Ae)?Math.max(3,Math.min(mn-zt,Yn??1)):mn-zt,sr.round(ut)-20,At,He,bt,ge[bt]??0)}bt=ce-1}}),ie.ctx.lineWidth=At,G(ie.ctx),ie.ctx.restore()}),null}let q;const $=Array(F0).fill(null),oe=Array(F0).fill(0),K=Array(F0).fill(0),se=Kr.fmtDate("{YYYY}-{MM}-{DD} {HH}:{mm}:{ss}");let Ee=null;return{hooks:{init:ie=>{Ee=ie.root.querySelector(".u-series:first-child .u-value"),window.addEventListener("dppxchange",N),l(),c(),f(),h(),I()},destroy:ie=>{window.removeEventListener("dppxchange",N)},drawClear:ie=>{q=q||new a9(0,0,ie.bbox.width,ie.bbox.height),q.clear(),ie.series.forEach(Ae=>{Ae._paths=null})},setCursor:ie=>{{const Ae=ie.posToVal(ie.cursor.left??0,jr);Ee&&(Ee.textContent=ie.scales.x.time?se(new Date(Ae*1e3)):Ae.toFixed(2))}}},opts:(ie,Ae)=>{Kr.assign(Ae,{cursor:{sync:{key:jr},y:!1,dataIdx:(Be,ae,Ce,de)=>{var be;if(HE(ae)||$_(ae))return Ce;const ge=sr.round(Be.cursor.left*Kr.pxRatio);if(ge>=0){const Te=oe[ae-1];$[ae-1]=null,q.get(ge,Te,1,1,me=>{GZe(ge,Te,me.x,me.y,me.x+me.w,me.y+me.h)&&($[ae-1]=me)})}return(be=$[ae-1])==null?void 0:be.didx},points:{fill:"rgba(255,255,255,0.2)",bbox:(Be,ae)=>{const Ce=$[ae-1],de={left:Ce?sr.round(Ce.x/devicePixelRatio):-10,top:Ce?sr.round(Ce.y/devicePixelRatio):-10,width:Ce?sr.round(Ce.w/devicePixelRatio):0,height:Ce?sr.round(Ce.h/devicePixelRatio):0},ge=sr.round((Be.bbox.left+Be.bbox.width)/devicePixelRatio)-de.left-10;return de.width>ge&&(de.width=ge),de}}},scales:{x:{range(Be,ae,Ce){return[ae,Ce]}},y:{range:[0,1]}}}),Ae.axes&&Kr.assign(Ae.axes[0],{splits:null,grid:{show:v!==2}}),Ae.axes&&Kr.assign(Ae.axes[1],{splits:(Be,ae)=>(R(null,F0,Be.bbox.height,(Ce,de,ge)=>{oe[Ce]=sr.round(de+ge/2),K[Ce]=Be.posToVal(oe[Ce]/Kr.pxRatio,"y")}),K),values:()=>Array(F0).fill(null).map((Be,ae)=>ie.series[ae+1].label),gap:5,size:0,grid:{show:!1},ticks:{show:!1},side:3}),Ae.series.forEach((Be,ae)=>{ae>0&&Kr.assign(Be,{paths:W,points:{show:!1}})})}}}const I$e="_group-label_e4egg_1",C$e="_min-text-width_e4egg_4",E$e="_group_e4egg_1",B$e="_item_e4egg_16",y$e="_item-color_e4egg_57",YE={groupLabel:I$e,minTextWidth:C$e,group:E$e,item:B$e,itemColor:y$e};function t4({label:e,options:t,defaultValue:n,onChange:r,optionColors:i,hasMinTextWidth:A}){const[l,c]=x.useState(n);return p.jsxs(Fe,{align:"center",children:[e&&p.jsx(Se,{className:An(YE.groupLabel,{[YE.minTextWidth]:A}),children:e}),p.jsx(K8,{className:YE.group,type:"single",value:l,"aria-label":e,onValueChange:f=>{f&&(c(f),r(f))},children:t.map(f=>p.jsxs(dp,{className:YE.item,value:f,"aria-label":f,children:[(i==null?void 0:i[f])&&p.jsx("div",{className:YE.itemColor,style:{background:i[f]}}),f]},f))})]})}const v$e="_label_1q3ew_1",f9={label:v$e};function JE({checked:e,onCheckedChange:t,label:n,color:r}){return p.jsx(Fe,{align:"center",gap:"2",children:p.jsx(Se,{as:"label",className:f9.label,style:{color:r},children:p.jsxs(Fe,{gap:"2",children:[p.jsx(CD,{checked:e,onCheckedChange:t,size:"1"}),n]})})})}const b$e="_slider_j7oas_1",Q$e="_arrival-label_j7oas_68",w$e="_minimize-button_j7oas_77",g9={slider:b$e,arrivalLabel:Q$e,minimizeButton:w$e},h9=$e(-1),p9=$e(mi.DEFAULT);var gle=1,x$e=.9,_$e=.8,k$e=.17,m9=.1,I9=.999,D$e=.9999,S$e=.99,R$e=/[\\\/_+.#"@\[\(\{&]/,T$e=/[\\\/_+.#"@\[\(\{&]/g,M$e=/[\s-]/,hle=/[\s-]/g;function C9(e,t,n,r,i,A,l){if(A===t.length)return i===e.length?gle:S$e;var c=`${i},${A}`;if(l[c]!==void 0)return l[c];for(var f=r.charAt(A),h=n.indexOf(f,i),I=0,B,v,D,S;h>=0;)B=C9(e,t,n,r,h+1,A+1,l),B>I&&(h===i?B*=gle:R$e.test(e.charAt(h-1))?(B*=_$e,D=e.slice(i,h-1).match(T$e),D&&i>0&&(B*=Math.pow(I9,D.length))):M$e.test(e.charAt(h-1))?(B*=x$e,S=e.slice(i,h-1).match(hle),S&&i>0&&(B*=Math.pow(I9,S.length))):(B*=k$e,i>0&&(B*=Math.pow(I9,h-i))),e.charAt(h)!==t.charAt(A)&&(B*=D$e)),(BB&&(B=v*m9)),B>I&&(I=B),h=n.indexOf(f,h+1);return l[c]=I,I}function ple(e){return e.toLowerCase().replace(hle," ")}function N$e(e,t,n){return e=n&&n.length>0?`${e+" "+n.join(" ")}`:e,C9(e,t,ple(e),ple(t),0,0,{})}var F$e=Symbol.for("react.lazy"),n4=y2[" use ".trim().toString()];function O$e(e){return typeof e=="object"&&e!==null&&"then"in e}function mle(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===F$e&&"_payload"in e&&O$e(e._payload)}function j$e(e){const t=L$e(e),n=x.forwardRef((r,i)=>{let{children:A,...l}=r;mle(A)&&typeof n4=="function"&&(A=n4(A._payload));const c=x.Children.toArray(A),f=c.find(U$e);if(f){const h=f.props.children,I=c.map(B=>B===f?x.Children.count(h)>1?x.Children.only(null):x.isValidElement(h)?h.props.children:null:B);return p.jsx(t,{...l,ref:i,children:x.isValidElement(h)?x.cloneElement(h,void 0,I):null})}return p.jsx(t,{...l,ref:i,children:A})});return n.displayName=`${e}.Slot`,n}function L$e(e){const t=x.forwardRef((n,r)=>{let{children:i,...A}=n;if(mle(i)&&typeof n4=="function"&&(i=n4(i._payload)),x.isValidElement(i)){const l=H$e(i),c=G$e(A,i.props);return i.type!==x.Fragment&&(c.ref=r?Vl(r,l):l),x.cloneElement(i,c)}return x.Children.count(i)>1?x.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var P$e=Symbol("radix.slottable");function U$e(e){return x.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===P$e}function G$e(e,t){const n={...t};for(const r in t){const i=e[r],A=t[r];/^on[A-Z]/.test(r)?i&&A?n[r]=(...l)=>{const c=A(...l);return i(...l),c}:i&&(n[r]=i):r==="style"?n[r]={...i,...A}:r==="className"&&(n[r]=[i,A].filter(Boolean).join(" "))}return{...e,...n}}function H$e(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Y$e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],yf=Y$e.reduce((e,t)=>{const n=j$e(`Primitive.${t}`),r=x.forwardRef((i,A)=>{const{asChild:l,...c}=i,f=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(f,{...c,ref:A})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),zE='[cmdk-group=""]',E9='[cmdk-group-items=""]',J$e='[cmdk-group-heading=""]',Ile='[cmdk-item=""]',Cle=`${Ile}:not([aria-disabled="true"])`,B9="cmdk-item-select",U1="data-value",z$e=(e,t,n)=>N$e(e,t,n),Ele=x.createContext(void 0),WE=()=>x.useContext(Ele),Ble=x.createContext(void 0),y9=()=>x.useContext(Ble),yle=x.createContext(void 0),vle=x.forwardRef((e,t)=>{let n=G1(()=>{var me,Ye;return{search:"",value:(Ye=(me=e.value)!=null?me:e.defaultValue)!=null?Ye:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=G1(()=>new Set),i=G1(()=>new Map),A=G1(()=>new Map),l=G1(()=>new Set),c=ble(e),{label:f,children:h,value:I,onValueChange:B,filter:v,shouldFilter:D,loop:S,disablePointerSelection:R=!1,vimBindings:F=!0,...N}=e,M=MA(),P=MA(),G=MA(),J=x.useRef(null),W=ret();Kh(()=>{if(I!==void 0){let me=I.trim();n.current.value=me,q.emit()}},[I]),Kh(()=>{W(6,ie)},[]);let q=x.useMemo(()=>({subscribe:me=>(l.current.add(me),()=>l.current.delete(me)),snapshot:()=>n.current,setState:(me,Ye,rt)=>{var We,De,_e,xe;if(!Object.is(n.current[me],Ye)){if(n.current[me]=Ye,me==="search")Ee(),K(),W(1,se);else if(me==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let ve=document.getElementById(G);ve?ve.focus():(We=document.getElementById(M))==null||We.focus()}if(W(7,()=>{var ve;n.current.selectedItemId=(ve=Ae())==null?void 0:ve.id,q.emit()}),rt||W(5,ie),((De=c.current)==null?void 0:De.value)!==void 0){let ve=Ye??"";(xe=(_e=c.current).onValueChange)==null||xe.call(_e,ve);return}}q.emit()}},emit:()=>{l.current.forEach(me=>me())}}),[]),$=x.useMemo(()=>({value:(me,Ye,rt)=>{var We;Ye!==((We=A.current.get(me))==null?void 0:We.value)&&(A.current.set(me,{value:Ye,keywords:rt}),n.current.filtered.items.set(me,oe(Ye,rt)),W(2,()=>{K(),q.emit()}))},item:(me,Ye)=>(r.current.add(me),Ye&&(i.current.has(Ye)?i.current.get(Ye).add(me):i.current.set(Ye,new Set([me]))),W(3,()=>{Ee(),K(),n.current.value||se(),q.emit()}),()=>{A.current.delete(me),r.current.delete(me),n.current.filtered.items.delete(me);let rt=Ae();W(4,()=>{Ee(),(rt==null?void 0:rt.getAttribute("id"))===me&&se(),q.emit()})}),group:me=>(i.current.has(me)||i.current.set(me,new Set),()=>{A.current.delete(me),i.current.delete(me)}),filter:()=>c.current.shouldFilter,label:f||e["aria-label"],getDisablePointerSelection:()=>c.current.disablePointerSelection,listId:M,inputId:G,labelId:P,listInnerRef:J}),[]);function oe(me,Ye){var rt,We;let De=(We=(rt=c.current)==null?void 0:rt.filter)!=null?We:z$e;return me?De(me,n.current.search,Ye):0}function K(){if(!n.current.search||c.current.shouldFilter===!1)return;let me=n.current.filtered.items,Ye=[];n.current.filtered.groups.forEach(We=>{let De=i.current.get(We),_e=0;De.forEach(xe=>{let ve=me.get(xe);_e=Math.max(ve,_e)}),Ye.push([We,_e])});let rt=J.current;Be().sort((We,De)=>{var _e,xe;let ve=We.getAttribute("id"),Ue=De.getAttribute("id");return((_e=me.get(Ue))!=null?_e:0)-((xe=me.get(ve))!=null?xe:0)}).forEach(We=>{let De=We.closest(E9);De?De.appendChild(We.parentElement===De?We:We.closest(`${E9} > *`)):rt.appendChild(We.parentElement===rt?We:We.closest(`${E9} > *`))}),Ye.sort((We,De)=>De[1]-We[1]).forEach(We=>{var De;let _e=(De=J.current)==null?void 0:De.querySelector(`${zE}[${U1}="${encodeURIComponent(We[0])}"]`);_e==null||_e.parentElement.appendChild(_e)})}function se(){let me=Be().find(rt=>rt.getAttribute("aria-disabled")!=="true"),Ye=me==null?void 0:me.getAttribute(U1);q.setState("value",Ye||void 0)}function Ee(){var me,Ye,rt,We;if(!n.current.search||c.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let De=0;for(let _e of r.current){let xe=(Ye=(me=A.current.get(_e))==null?void 0:me.value)!=null?Ye:"",ve=(We=(rt=A.current.get(_e))==null?void 0:rt.keywords)!=null?We:[],Ue=oe(xe,ve);n.current.filtered.items.set(_e,Ue),Ue>0&&De++}for(let[_e,xe]of i.current)for(let ve of xe)if(n.current.filtered.items.get(ve)>0){n.current.filtered.groups.add(_e);break}n.current.filtered.count=De}function ie(){var me,Ye,rt;let We=Ae();We&&(((me=We.parentElement)==null?void 0:me.firstChild)===We&&((rt=(Ye=We.closest(zE))==null?void 0:Ye.querySelector(J$e))==null||rt.scrollIntoView({block:"nearest"})),We.scrollIntoView({block:"nearest"}))}function Ae(){var me;return(me=J.current)==null?void 0:me.querySelector(`${Ile}[aria-selected="true"]`)}function Be(){var me;return Array.from(((me=J.current)==null?void 0:me.querySelectorAll(Cle))||[])}function ae(me){let Ye=Be()[me];Ye&&q.setState("value",Ye.getAttribute(U1))}function Ce(me){var Ye;let rt=Ae(),We=Be(),De=We.findIndex(xe=>xe===rt),_e=We[De+me];(Ye=c.current)!=null&&Ye.loop&&(_e=De+me<0?We[We.length-1]:De+me===We.length?We[0]:We[De+me]),_e&&q.setState("value",_e.getAttribute(U1))}function de(me){let Ye=Ae(),rt=Ye==null?void 0:Ye.closest(zE),We;for(;rt&&!We;)rt=me>0?tet(rt,zE):net(rt,zE),We=rt==null?void 0:rt.querySelector(Cle);We?q.setState("value",We.getAttribute(U1)):Ce(me)}let ge=()=>ae(Be().length-1),be=me=>{me.preventDefault(),me.metaKey?ge():me.altKey?de(1):Ce(1)},Te=me=>{me.preventDefault(),me.metaKey?ae(0):me.altKey?de(-1):Ce(-1)};return x.createElement(yf.div,{ref:t,tabIndex:-1,...N,"cmdk-root":"",onKeyDown:me=>{var Ye;(Ye=N.onKeyDown)==null||Ye.call(N,me);let rt=me.nativeEvent.isComposing||me.keyCode===229;if(!(me.defaultPrevented||rt))switch(me.key){case"n":case"j":{F&&me.ctrlKey&&be(me);break}case"ArrowDown":{be(me);break}case"p":case"k":{F&&me.ctrlKey&&Te(me);break}case"ArrowUp":{Te(me);break}case"Home":{me.preventDefault(),ae(0);break}case"End":{me.preventDefault(),ge();break}case"Enter":{me.preventDefault();let We=Ae();if(We){let De=new Event(B9);We.dispatchEvent(De)}}}}},x.createElement("label",{"cmdk-label":"",htmlFor:$.inputId,id:$.labelId,style:iet},f),r4(e,me=>x.createElement(Ble.Provider,{value:q},x.createElement(Ele.Provider,{value:$},me))))}),W$e=x.forwardRef((e,t)=>{var n,r;let i=MA(),A=x.useRef(null),l=x.useContext(yle),c=WE(),f=ble(e),h=(r=(n=f.current)==null?void 0:n.forceMount)!=null?r:l==null?void 0:l.forceMount;Kh(()=>{if(!h)return c.item(i,l==null?void 0:l.id)},[h]);let I=Qle(i,A,[e.value,e.children,A],e.keywords),B=y9(),v=vf(W=>W.value&&W.value===I.current),D=vf(W=>h||c.filter()===!1?!0:W.search?W.filtered.items.get(i)>0:!0);x.useEffect(()=>{let W=A.current;if(!(!W||e.disabled))return W.addEventListener(B9,S),()=>W.removeEventListener(B9,S)},[D,e.onSelect,e.disabled]);function S(){var W,q;R(),(q=(W=f.current).onSelect)==null||q.call(W,I.current)}function R(){B.setState("value",I.current,!0)}if(!D)return null;let{disabled:F,value:N,onSelect:M,forceMount:P,keywords:G,...J}=e;return x.createElement(yf.div,{ref:Vl(A,t),...J,id:i,"cmdk-item":"",role:"option","aria-disabled":!!F,"aria-selected":!!v,"data-disabled":!!F,"data-selected":!!v,onPointerMove:F||c.getDisablePointerSelection()?void 0:R,onClick:F?void 0:S},e.children)}),q$e=x.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...A}=e,l=MA(),c=x.useRef(null),f=x.useRef(null),h=MA(),I=WE(),B=vf(D=>i||I.filter()===!1?!0:D.search?D.filtered.groups.has(l):!0);Kh(()=>I.group(l),[]),Qle(l,c,[e.value,e.heading,f]);let v=x.useMemo(()=>({id:l,forceMount:i}),[i]);return x.createElement(yf.div,{ref:Vl(c,t),...A,"cmdk-group":"",role:"presentation",hidden:B?void 0:!0},n&&x.createElement("div",{ref:f,"cmdk-group-heading":"","aria-hidden":!0,id:h},n),r4(e,D=>x.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?h:void 0},x.createElement(yle.Provider,{value:v},D))))}),X$e=x.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=x.useRef(null),A=vf(l=>!l.search);return!n&&!A?null:x.createElement(yf.div,{ref:Vl(i,t),...r,"cmdk-separator":"",role:"separator"})}),V$e=x.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,A=y9(),l=vf(h=>h.search),c=vf(h=>h.selectedItemId),f=WE();return x.useEffect(()=>{e.value!=null&&A.setState("search",e.value)},[e.value]),x.createElement(yf.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":f.listId,"aria-labelledby":f.labelId,"aria-activedescendant":c,id:f.inputId,type:"text",value:i?e.value:l,onChange:h=>{i||A.setState("search",h.target.value),n==null||n(h.target.value)}})}),K$e=x.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...i}=e,A=x.useRef(null),l=x.useRef(null),c=vf(h=>h.selectedItemId),f=WE();return x.useEffect(()=>{if(l.current&&A.current){let h=l.current,I=A.current,B,v=new ResizeObserver(()=>{B=requestAnimationFrame(()=>{let D=h.offsetHeight;I.style.setProperty("--cmdk-list-height",D.toFixed(1)+"px")})});return v.observe(h),()=>{cancelAnimationFrame(B),v.unobserve(h)}}},[]),x.createElement(yf.div,{ref:Vl(A,t),...i,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":c,"aria-label":r,id:f.listId},r4(e,h=>x.createElement("div",{ref:Vl(l,f.listInnerRef),"cmdk-list-sizer":""},h)))}),Z$e=x.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:A,container:l,...c}=e;return x.createElement(rpe,{open:n,onOpenChange:r},x.createElement(ope,{container:l},x.createElement(ipe,{"cmdk-overlay":"",className:i}),x.createElement(Ape,{"aria-label":e.label,"cmdk-dialog":"",className:A},x.createElement(vle,{ref:t,...c}))))}),$$e=x.forwardRef((e,t)=>vf(n=>n.filtered.count===0)?x.createElement(yf.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),eet=x.forwardRef((e,t)=>{let{progress:n,children:r,label:i="Loading...",...A}=e;return x.createElement(yf.div,{ref:t,...A,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},r4(e,l=>x.createElement("div",{"aria-hidden":!0},l)))}),Qc=Object.assign(vle,{List:K$e,Item:W$e,Input:V$e,Group:q$e,Separator:X$e,Dialog:Z$e,Empty:$$e,Loading:eet});function tet(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function net(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function ble(e){let t=x.useRef(e);return Kh(()=>{t.current=e}),t}var Kh=typeof window>"u"?x.useEffect:x.useLayoutEffect;function G1(e){let t=x.useRef();return t.current===void 0&&(t.current=e()),t}function vf(e){let t=y9(),n=()=>e(t.snapshot());return x.useSyncExternalStore(t.subscribe,n,n)}function Qle(e,t,n,r=[]){let i=x.useRef(),A=WE();return Kh(()=>{var l;let c=(()=>{var h;for(let I of n){if(typeof I=="string")return I.trim();if(typeof I=="object"&&"current"in I)return I.current?(h=I.current.textContent)==null?void 0:h.trim():i.current}})(),f=r.map(h=>h.trim());A.value(e,c,f),(l=t.current)==null||l.setAttribute(U1,c),i.current=c}),i}var ret=()=>{let[e,t]=x.useState(),n=G1(()=>new Map);return Kh(()=>{n.current.forEach(r=>r()),n.current=new Map},[e]),(r,i)=>{n.current.set(r,i),t({})}};function oet(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function r4({asChild:e,children:t},n){return e&&x.isValidElement(t)?x.cloneElement(oet(t),{ref:t.ref},n(t.props.children)):n(t)}var iet={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const Aet="_dropdownButton_v1p8v_1",set="_input-container_v1p8v_6",aet="_sm_v1p8v_20",cet="_content_v1p8v_68",qE={dropdownButton:Aet,inputContainer:set,sm:aet,content:cet},uet="_text_1k6sv_1",det="_faded_1k6sv_7",fet="_ellipsis_1k6sv_11",v9={text:uet,faded:det,ellipsis:fet};function wle({textSegments:e,truncateLastSegment:t}){return p.jsx(Fe,{flexGrow:"1",minWidth:"0",maxWidth:"100%",wrap:"nowrap",className:v9.text,"aria-label":e.map(({text:n})=>n).join(""),children:e.map(({text:n,faded:r},i)=>n?p.jsx(Se,{className:An({[v9.faded]:r,[v9.ellipsis]:i===e.length-1&&t}),children:n},i):null)})}const XE=8,get=2,xle=2;function het(e,{signature:t,optionValue:n,txnIdxCount:r}){const i=r>1,A=e.trim().toLowerCase(),l=n.toLowerCase(),c=D=>{i&&D.push({text:`${eC}(${r})`,faded:!0})};if(A.length===l.length||A.length>XE){const D=[{text:`${t.substring(0,XE)}...${t.substring(t.length-XE)}`}];return c(D),D}const f=l.indexOf(A),h=f+A.length,I=[{start:0,end:Math.min(XE,t.length)},{start:Math.max(0,Math.min(f-xle,t.length)),end:Math.min(t.length,Math.min(h+xle,t.length))},{start:Math.max(0,t.length-XE),end:t.length}].filter(D=>D.end>D.start).sort((D,S)=>D.start-S.start),B=[];for(const D of I){if(!B.length){B.push({...D});continue}const S=B[B.length-1],R=D.start-S.end;R<=0||R<=get?S.end=Math.max(S.end,D.end):B.push({...D})}const v=[];for(let D=0;D0&&v.push({text:"...",faded:!0});const R=Math.max(S.start,Math.min(f,S.end)),F=Math.max(S.start,Math.min(h,S.end));F>R?(S.startD)}function pet(e){return function(t){return p.jsx(wle,{textSegments:het(t,e)})}}function _le(e,t){if(t=t.trim(),!t)return;if(t.includes(".")){const c=e.indexOf(t);return c<0?void 0:{startIdx:c,endIdx:c+t.length}}const n=[];let r="";for(let c=0;c="0"&&f<="9"&&(r+=f,n.push(c))}const i=r.indexOf(t);if(i<0)return;const A=n[i],l=n[i+t.length-1]+1;return{startIdx:A,endIdx:l}}function met(e,t,n){return function(r){const i=_le(e,r),A=t>1,l=(i==null?void 0:i.startIdx)??-1,c=(i==null?void 0:i.endIdx)??-1,f=[{text:e.substring(0,l),faded:!0},{text:e.substring(l,c)},{text:e.substring(c),faded:!0},{text:A?`${eC}(${t})`:"",faded:!0},{text:n?`${eC}${n}`:""}];return p.jsx(wle,{textSegments:f,truncateLastSegment:!0})}}const Iet=30,Cet=20,kle=["Txn Sig","IPv4"],Dle=["Income"],Sle=["Txn Sig","Error","Income","IPv4","TPU"],Eet={"Txn Sig":"2ZwHLf3Qw7ZE8s3PWW81ELCmGiVhaDS9LWMK4McGL9ySmqvTZSZf3S9EWks4TFbyJt7U6i5RPuLk7PgWVBdy9HY5",Error:"",Income:"Rank #",IPv4:"192.0.2.1",TPU:"udp"};function Rle({transactions:e,size:t="lg"}){const[n,r]=x.useState(!1),[i,A]=x.useState(!1),[l,c]=x.useState(""),[f,h]=Nj(l,500),[I,B]=x.useState(),[v,D]=x.useState("Txn Sig"),S=Me(l9),R=Me(S5),F=Me(Yg),N=It(bl),M=x.useRef(null),P=x.useRef(null),G=x.useRef(),J=x.useCallback(()=>{G.current&&(G.current.style.border="",G.current=void 0),dle(void 0),B(void 0),A(!1)},[]),W=x.useCallback(()=>{J(),c(""),h(""),N((De,_e)=>{De.setScale(jr,{min:De.data[0][0],max:De.data[0][De.data[0].length-1]})})},[J,h,N]);x.useEffect(()=>{S&&(I!=null&&I.txnIdxs.some(De=>!S.has(De)))&&W()},[S,W,I==null?void 0:I.txnIdxs]),x.useEffect(()=>{I===void 0&&Dle.includes(v)&&D(Sle[0])},[I,v]);const q=x.useCallback((De,_e,xe)=>De.reduce((ve,Ue,At)=>{var ut;if(S&&!S.has(At)||xe!=null&&xe(Ue))return ve;const He=((ut=ve[Ue])==null?void 0:ut.txnIdxs)??[];He.push(At);const gt=_e(Ue,He);return ve[Ue]=gt,ve},{}),[S]),$=x.useMemo(()=>q(e.txn_signature,(De,_e)=>{const xe=De.toLowerCase();return{getLabelEl:pet({signature:De,optionValue:xe,txnIdxCount:_e.length}),txnIdxs:_e,signatureLower:xe,signature:De}}),[q,e.txn_signature]),oe=x.useMemo(()=>q(e.txn_error_code,(De,_e)=>({txnIdxs:_e,label:tQ[De]}),De=>De===0),[q,e.txn_error_code]),K=x.useMemo(()=>{const De=R.reduce((_e,xe)=>{var Ue,At;if(!xe.gossip||!((Ue=xe.info)!=null&&Ue.name))return _e;const ve=Object.values(xe.gossip.sockets);for(const He of ve)_e.set(y5(He),(At=xe.info)==null?void 0:At.name);return _e},new Map);return q(e.txn_source_ipv4,(_e,xe)=>{var ve;return{getLabelEl:met(_e,xe.length,De.get(_e)),txnIdxs:xe,label:`${_e} ${De.get(_e)??""}`,queryValue:`${_e}${(ve=De.get(_e)??"")==null?void 0:ve.toLowerCase()}`}})},[q,R,e.txn_source_ipv4]),se=x.useMemo(()=>q(e.txn_source_tpu,(De,_e)=>({txnIdxs:_e,label:De})),[q,e.txn_source_tpu]),Ee=x.useMemo(()=>e.txn_transaction_fee.reduce((De,_e,xe)=>(S&&!S.has(xe)||De.push({txnIdx:xe,income:Number(y0(e,xe))}),De),[]).sort(({income:De},{income:_e})=>_e-De),[S,e]),ie=x.useCallback(De=>{var At,He,gt,ut;const _e=e.txn_bank_idx[De],xe=document.getElementById($ae(_e)),ve=(At=xe==null?void 0:xe.getElementsByClassName("u-over"))==null?void 0:At[0],Ue=(He=xe==null?void 0:xe.getElementsByTagName("canvas"))==null?void 0:He[0];if(xe&&ve&&Ue){if(!m_e(Ue)){Ue.scrollIntoView({block:"nearest"});const bt=Ue.getBoundingClientRect(),zt=(gt=document.getElementById("transaction-bars-controls"))==null?void 0:gt.getBoundingClientRect();zt&&zt.top-Yle<=0&&bt.top{if(_e!==zt){bt.redraw();return}const ce=bt.scales[jr],mn=ce.min??-1/0,Yn=ce.max??1/0,yn=Yn-mn,fe=e.txn_from_bundle[De]&&e.txn_microblock_id[De-1]!==e.txn_microblock_id[De],dn=e.txn_from_bundle[De]&&e.txn_microblock_id[De+1]!==e.txn_microblock_id[De],_t=Number((fe||!e.txn_from_bundle[De]?e.txn_mb_start_timestamps_nanos[De]:e.txn_preload_end_timestamps_nanos[De])-e.start_timestamp_nanos),Pt=Number((dn||!e.txn_from_bundle[De]?e.txn_mb_end_timestamps_nanos[De]:e.txn_end_timestamps_nanos[De])-e.start_timestamp_nanos),Ve=(Pt-_t)*Iet,Nt=(Pt-_t)*Cet,tn=PtYn,en=yn>Ve,no=yn{if(tn||en||no){let gr=Math.max(bt.data[0][0],_t-Ve/2);const ho=gr+Ve;ho>bt.data[0][bt.data[0].length-1]&&(gr=ho-Ve),bt.setScale(jr,{min:gr,max:ho})}dle(De)})})},[e,N]),Ae=x.useCallback((De,_e)=>{c(De),h(De),r(!1),A(!0);const xe=ve=>{const Ue={current:0,total:ve.length-1,txnIdxs:ve};B(Ue);const At=ve[Ue.current];ie(At)};switch(v){case"Txn Sig":{const ve=$[De].txnIdxs;xe(ve);break}case"Error":{if(_e!==void 0){const ve=oe[Number(_e)].txnIdxs;xe(ve)}break}case"IPv4":{const ve=K[_e??De];if(ve){const Ue=ve.txnIdxs;xe(Ue)}break}case"TPU":{if(_e!==void 0){const ve=se[_e].txnIdxs;xe(ve)}break}}},[h,v,$,ie,oe,K,se]),Be=De=>()=>{B(_e=>{if(!_e)return;let{current:xe,total:ve,txnIdxs:Ue}=_e;De==="prev"?xe--:De==="next"&&xe++,xe>ve&&(xe=0),xe<0&&(xe=ve);const At=Ue[xe];return ie(At),{current:xe,total:ve,txnIdxs:Ue}})},ae=De=>()=>{switch(D(De),W(),De){case"Txn Sig":case"IPv4":case"Error":case"TPU":{We.current=!0,r(!0),setTimeout(()=>{var _e;(_e=rt.current)==null||_e.focus()},250);break}case"Income":{const _e=Ee.map(({txnIdx:ve})=>ve);B({current:0,total:_e.length,txnIdxs:_e});const xe=_e[0];ie(xe);break}}},Ce=kle.includes(v),de=Ce&&l!==f,ge=n&&!Ce||!de,be=I&&I.total>0,Te=l||Dle.includes(v),me=!kle.includes(v),Ye=x.useRef(me);Ye.current=me;const rt=x.useRef(null),We=x.useRef(!1);return p.jsxs(Fe,{children:[p.jsxs(cz,{children:[p.jsx(uz,{children:p.jsxs(nl,{variant:"surface",className:qE.dropdownButton,onFocusCapture:De=>De.preventDefault(),onFocus:De=>{De.preventDefault()},children:[v,p.jsx(uD,{})]})}),p.jsx(fz,{onCloseAutoFocus:De=>De.preventDefault(),children:Sle.map(De=>p.jsx(gz,{onSelect:ae(De),children:De},De))})]}),p.jsx(Qc,{loop:!0,className:qE.root,shouldFilter:!1,ref:M,children:p.jsxs(_8,{open:n,onOpenChange:De=>{r(De)},children:[p.jsx(k8,{asChild:!0,children:p.jsxs(Fe,{align:"center",className:An(qE.inputContainer,"rt-TextFieldRoot","rt-variant-surface",{[qE.sm]:t==="sm"}),children:[p.jsx(Qc.Input,{placeholder:Eet[v],onFocus:De=>{r(!0)},value:l,onValueChange:De=>{c(De),J(),r(!0)},readOnly:me,ref:rt}),(be||Te)&&p.jsxs(Fe,{align:"center",children:[be&&p.jsxs(p.Fragment,{children:[p.jsxs(Se,{style:{paddingRight:"var(--space-2)",cursor:"default"},children:[I.current+1,"\xA0of\xA0",I.total+1]}),p.jsx(rl,{onClick:Be("prev"),variant:"ghost",onKeyDown:De=>{De.key==="Enter"&&Be("prev")()},children:p.jsx(P$,{})}),p.jsx(rl,{onClick:Be("next"),variant:"ghost",onKeyDown:De=>{De.key==="Enter"&&Be("next")()},children:p.jsx(j$,{})})]}),Te&&p.jsx(rl,{onClick:W,variant:"ghost",onKeyDown:De=>{De.key==="Enter"&&W()},children:p.jsx(fw,{})})]})]})}),p.jsx(D8,{container:F,children:p.jsx(S8,{className:qE.content,onOpenAutoFocus:De=>{We.current?setTimeout(()=>{We.current=!1},250):De.preventDefault()},onInteractOutside:De=>{(De.target===rt.current||We.current)&&De.preventDefault()},style:{outline:"unset"},children:p.jsxs(Qc.List,{ref:P,style:{maxHeight:"min(300px, var(--radix-popover-content-available-height))"},children:[l.length>1&&de&&p.jsx(Qc.Loading,{children:p.jsx(Se,{children:"Loading..."})}),ge&&p.jsxs(p.Fragment,{children:[v==="Txn Sig"&&p.jsx(Bet,{optionMap:$,inputValue:f,onSelect:Ae,showAllOptions:i}),v==="Error"&&p.jsx(Tle,{onSelect:Ae,optionMap:oe}),v==="IPv4"&&p.jsx(yet,{onSelect:Ae,optionMap:K,inputValue:f,showAllOptions:i}),v==="TPU"&&p.jsx(Tle,{onSelect:Ae,optionMap:se})]})]})})})]})})]})}const Bet=x.memo(function({optionMap:e,inputValue:t,onSelect:n,showAllOptions:r}){const i=x.useMemo(()=>Object.entries(e),[e]),A=t.toLowerCase();function l([,{signatureLower:h}]){return r||h.includes(A)}function c([,{signatureLower:h}]){return h===A?3:h.startsWith(A)||h.endsWith(A)?2:h.includes(A)?1:0}function f(h,I){return c(I)-c(h)}return p.jsxs(p.Fragment,{children:[!!i.length&&p.jsx(Qc.Group,{heading:"Results",children:i.filter(l).sort(f).map(([,{getLabelEl:h,signatureLower:I,signature:B}],v)=>{if(!(v>100))return p.jsx(Qc.Item,{value:I,onSelect:()=>{n(B)},children:h(r?"":t)},B)})}),p.jsx(Qc.Empty,{children:"No results found."})]})}),yet=x.memo(function({optionMap:e,inputValue:t,onSelect:n,showAllOptions:r}){const i=x.useMemo(()=>Object.entries(e),[e]),A=t.trim().toLowerCase();function l([,{label:h,queryValue:I}]){return r||!!_le(h,A)||I.includes(A)}function c([,{label:h,txnIdxs:I}]){return h===A?1/0:I.length>1?3+I.length:h.startsWith(A)||h.endsWith(A)?2:h.includes(A)?1:0}function f(h,I){return c(I)-c(h)}return p.jsxs(p.Fragment,{children:[!!i.length&&p.jsx(Qc.Group,{heading:"Results",children:i.filter(l).sort(f).map(([h,{getLabelEl:I,label:B}],v)=>{if(!(v>100))return p.jsx(Qc.Item,{value:B,onSelect:()=>{n(B,h)},children:I(r?"":t)},B)})}),p.jsx(Qc.Empty,{children:"No results found."})]})}),Tle=x.memo(function({onSelect:e,optionMap:t}){return x.useMemo(()=>Object.entries(t),[t]).map(([n,{label:r,txnIdxs:i}],A)=>p.jsx(Qc.Item,{onSelect:()=>{e(r,n)},children:p.jsxs(Se,{children:[r," (",i.length,")"]})},n))});function vet(e){const[t,n]=x.useState(!1);return p.jsxs(p.Fragment,{children:[p.jsx("div",{className:g9.minimizeButton,children:p.jsx(rl,{variant:"ghost",onClick:()=>n(r=>!r),children:t?p.jsx(Ek,{}):p.jsx(bk,{})})}),!t&&p.jsx(bet,{...e})]})}function bet(e){const{transactions:t,maxTs:n}=e,r=It(PE),i=It(c9),A=It(K_),l=It(h9),c=It(p9);return zC(()=>{r(tle),t$e(),i(1),A(void 0),u9(0),l(-1),c(mi.DEFAULT)}),ts("(max-width: 500px)")?p.jsx(Qet,{...e}):p.jsxs(Fe,{gap:"2",align:"center",wrap:"wrap",children:[p.jsx(ol,{orientation:"vertical",size:"2"}),p.jsx(Mle,{transactions:t,maxTs:n}),p.jsx(ol,{orientation:"vertical",size:"2"}),p.jsx(Fle,{transactions:t,maxTs:n}),p.jsx(ol,{orientation:"vertical",size:"2"}),p.jsx(Ole,{transactions:t,maxTs:n}),p.jsx(ol,{orientation:"vertical",size:"2"}),p.jsx(jle,{transactions:t,maxTs:n}),p.jsx(ol,{orientation:"vertical",size:"2"}),p.jsx(Lle,{transactions:t}),p.jsx(ol,{orientation:"vertical",size:"2"}),p.jsx(Ple,{transactions:t}),p.jsx(ol,{orientation:"vertical",size:"2"}),p.jsx(Gle,{transactions:t}),p.jsx(ol,{orientation:"vertical",size:"2"}),p.jsx(Nle,{transactions:t,maxTs:n}),p.jsx(ol,{orientation:"vertical",size:"2"}),p.jsx(Rle,{transactions:t})]})}function Qet({transactions:e,maxTs:t}){return p.jsxs(Fe,{direction:"column",gap:"3",children:[p.jsx(Mle,{transactions:e,maxTs:t}),p.jsx(Fle,{transactions:e,maxTs:t,isMobileView:!0}),p.jsx(Ole,{transactions:e,maxTs:t,isMobileView:!0}),p.jsx(jle,{transactions:e,maxTs:t,isMobileView:!0}),p.jsx(Lle,{transactions:e}),p.jsx(Ple,{transactions:e}),p.jsx("div",{style:{marginBottom:"8px"},children:p.jsx(Gle,{transactions:e})}),p.jsx(Nle,{transactions:e,maxTs:t}),p.jsx(Rle,{transactions:e,size:"sm"})]})}function Mle({transactions:e,maxTs:t}){const n=It(bl),r=It(XZe),[i,A]=x.useState("All");return p.jsxs(Fe,{gap:"2",children:[p.jsx(t4,{options:["All","Success","Errors"],optionColors:{Success:RQ,Errors:TQ},defaultValue:i,onChange:l=>{if(!l)return;A(l);const c=l==="Success"?"No":l==="Errors"?"Yes":"All";n((f,h)=>r(f,e,h,t,c))}}),p.jsx(wet,{transactions:e,isDisabled:i==="Success"})]})}function wet({transactions:e,isDisabled:t}){const n=It(Nw),r=Me(l9),[i,A]=x.useState("0"),l=x.useMemo(()=>{if(r!=null&&r.size){const c=e.txn_error_code.filter((f,h)=>r.has(h));return sr.groupBy(c)}return sr.groupBy(e.txn_error_code)},[r,e.txn_error_code]);return x.useEffect(()=>{l[L1]||(A("0"),u9(0))},[l]),p.jsxs(hD,{onValueChange:c=>{A(c),u9(Number(c)),n(f=>f.redraw())},size:"1",value:i,disabled:t,children:[p.jsx(pD,{placeholder:"Txn State",style:{height:"22px",width:"90px"}}),p.jsx(mD,{children:p.jsxs(ID,{children:[p.jsx(FI,{value:"0",children:"None"}),Object.keys(l).map(c=>c==="0"?null:p.jsxs(FI,{value:`${c}`,children:[tQ[c]," (",l[c].length,")"]},c))]})})]})}const b9="none";function Nle({transactions:e,maxTs:t}){const n=It(Nw),r=Me(l9),[i,A]=x.useState(b9),l=x.useMemo(()=>{if(r!=null&&r.size){const c=e.txn_source_tpu.filter((f,h)=>r.has(h));return sr.groupBy(c)}return sr.groupBy(e.txn_source_tpu)},[r,e.txn_source_tpu]);return x.useEffect(()=>{l[P1]||(A(""),ule(""))},[l]),p.jsxs(Fe,{gap:"2",align:"center",children:[p.jsx(Se,{className:f9.label,children:"TPU"}),p.jsxs(hD,{onValueChange:c=>{A(c),ule(c===b9?"":c),n(f=>f.redraw())},size:"1",value:i,children:[p.jsx(pD,{placeholder:"TPU",style:{height:"22px",width:"90px"}}),p.jsx(mD,{children:p.jsxs(ID,{children:[p.jsx(FI,{value:b9,children:"None"}),Object.keys(l).map(c=>p.jsxs(FI,{value:c,children:[c," (",l[c].length,")"]},c))]})})]})]})}function Fle({transactions:e,maxTs:t,isMobileView:n}){const r=It(bl),i=It(VZe);return p.jsx(t4,{label:"Bundle",options:["All","Yes","No"],defaultValue:"All",onChange:A=>A&&r((l,c)=>i(l,e,c,t,A)),hasMinTextWidth:n})}function Ole({transactions:e,maxTs:t,isMobileView:n}){const r=It(bl),i=It(KZe);return p.jsx(t4,{label:"Landed",options:["All","Yes","No"],defaultValue:"All",onChange:A=>A&&r((l,c)=>i(l,e,c,t,A)),hasMinTextWidth:n})}function jle({transactions:e,maxTs:t,isMobileView:n}){const r=It(bl),i=It(ZZe);return p.jsx(t4,{label:"Vote",options:["All","Yes","No"],defaultValue:"All",onChange:A=>A&&r((l,c)=>i(l,e,c,t,A)),hasMinTextWidth:n})}function Lle({transactions:e}){return p.jsxs(Fe,{gap:"2",children:[p.jsx(xet,{transactions:e}),p.jsx(_et,{transactions:e}),p.jsx(Ret,{transactions:e})]})}function xet({transactions:e}){const[t,n]=x.useState(!1),r=It(bl),i=It(n$e),A=It(GE),l=c=>{n(c),r((f,h)=>{c?i(f,e,h):A(f,Hi.FEES)})};return p.jsx(JE,{label:"Fees",checked:t,onCheckedChange:l,color:Pg})}function _et({transactions:e}){const[t,n]=x.useState(!1),r=It(bl),i=It(r$e),A=It(GE),l=c=>{n(c),r((f,h)=>{c?i(f,e,h):A(f,Hi.TIPS)})};return p.jsx(JE,{label:"Tips",checked:t,onCheckedChange:l,color:B0})}function Ple({transactions:e}){return p.jsxs(Fe,{gap:"2",children:[p.jsx(Se,{className:f9.label,children:"CU"}),p.jsx(ket,{transactions:e}),p.jsx(Det,{transactions:e})]})}function ket({transactions:e}){const[t,n]=x.useState(!1),r=It(bl),i=It(o$e),A=It(GE),l=c=>{n(c),r((f,h)=>{c?i(f,e,h):A(f,Hi.CUS_CONSUMED)})};return p.jsx(JE,{label:"Consumed",checked:t,onCheckedChange:l,color:nf})}function Det({transactions:e}){const[t,n]=x.useState(!1),r=It(bl),i=It(i$e),A=It(GE),l=c=>{n(c),r((f,h)=>{c?i(f,e,h):A(f,Hi.CUS_REQUESTED)})};return p.jsx(JE,{label:"Requested",checked:t,onCheckedChange:l,color:dC})}function Ret({transactions:e}){const[t,n]=x.useState(!1),r=It(bl),i=It(A$e),A=It(GE),l=c=>{n(c),r((f,h)=>{c?i(f,e,h):A(f,Hi.INCOME_CUS)})};return p.jsx(JE,{label:"Income per CU",checked:t,onCheckedChange:l,color:lu})}const Zh=12,Ule=100;function Tet({transactions:e,sliderMin:t,sliderMax:n,beforeZeroMulti:r,bboxWidth:i}){const A=x.useMemo(()=>{if(t>=n||!e.txn_arrival_timestamps_nanos.length)return;const l=n-t;function c(B){return B>=0?B:B/r}const f=e.txn_arrival_timestamps_nanos.reduce((B,v)=>{const D=(c(Number(v-e.start_timestamp_nanos))-t)/l,S=Math.trunc(D*Ule);return B[S]+=1,B},new Array(Ule).fill(0)),h=sr.max(f)??1,I=f.reduce((B,v,D)=>{const S=i*((D+1)/f.length),R=Zh-Zh*(v/h);return B+`${S},${R} `},"");return`0,${Zh}, ${I}, ${i},${Zh}`},[i,r,n,t,e.start_timestamp_nanos,e.txn_arrival_timestamps_nanos]);return p.jsx("svg",{height:`${Zh}px`,width:"100%",viewBox:`0 0 ${i} ${Zh}`,xmlns:"http://www.w3.org/2000/svg",style:{marginBottom:"-5px",borderRadius:"4px"},children:p.jsx("polyline",{points:A,fill:"rgba(186, 167, 255, 0.5)",stroke:"rgb(186, 167, 255)",strokeWidth:".5"})})}const o4=.3,Met=.025;function Gle({transactions:e}){const t=x.useMemo(()=>z_(e)-LE,[e]),[n,r]=x.useState(()=>{const G=z_(e),J=-Math.ceil(G*o4),W=G-LE;return[J,W]}),i=It(bl),A=It($Ze),[l,{width:c}]=cf();function f(G){return G<0?S*G:G}function h(G){if(!(G.length<2))return{min:f(G[0]),max:f(G[1])}}const I=`${Math.ceil(o4/(1+o4)*100)}%`,B=x.useMemo(()=>{if(!e.txn_arrival_timestamps_nanos.length)return 0;const G=e.txn_arrival_timestamps_nanos.reduce((J,W)=>W{requestAnimationFrame(()=>i((J,W)=>A(J,e,W,t,h(G))))},100,{leading:!1,trailing:!0});return p.jsxs(Fe,{align:"center",gap:"2",children:[p.jsx(Se,{className:g9.arrivalLabel,children:"Arrival"}),p.jsxs("div",{className:g9.slider,ref:l,style:{"--slot-start-pct":I,marginTop:`-${Zh+6}px`,"--min-value-label":`"${N}"`,"--max-value-label":`"${M}"`},children:[p.jsx(Tet,{transactions:e,sliderMin:R,sliderMax:t,beforeZeroMulti:S,bboxWidth:c}),p.jsx(Iz,{style:{"--slider-track-size":"4px"},value:n,min:R,max:t,onValueChange:G=>{const J=G[0]!==n[0]?0:1;Math.abs(G[J]){const q=W.valToPos(G[J],jr);W.setCursor({left:q,top:0})}),P(G)}})]})]})}function Net({transactionsRef:e,setTxnIdx:t,setTxnState:n}){function r(i,A,l){var h;let c=i.data[1][l];c==null&&i.data[1][l-1]!=null&&(c=i.data[1][l-1]);const f=((h=i.cursor.idxs)==null?void 0:h.length)&&i.cursor.idxs[1]===void 0;return c==null||!e.current||f?!1:(n(rle(A,e.current,c)),t(c),!0)}return e9({elId:"txn-bars-tooltip",closeTooltipElId:"txn-bars-tooltip-close",showOnCursor:r,showPointer:!0})}const i4=20;function Fet({bankIdx:e,transactions:t,maxTs:n,isFirstChart:r,isLastChart:i,hide:A,isSelected:l}){const c=r||i,f=Me(Fae)-i4,h=Me(Oae)-i4,I=It(h9),B=It(p9),v=x.useRef(null),D=x.useRef(t);D.current=t;const S=x.useMemo(()=>q_(t,e,n,Object.values(Vs().get(PE))),[e,n,t]),R=x.useCallback(M=>{M.setData(q_(t,e,n,Object.values(Vs().get(PE))),!1)},[e,n,t]),F=x.useMemo(()=>{if(S!=null&&S.length)return{width:0,height:0,class:Tae.chart,drawOrder:["series","axes"],scales:{x:{time:!1}},axes:[{stroke:Qo,values:(M,P)=>c?P.map(G=>HZe(G,1e6)+"ms"):[],size:c?40:0,space:100,grid:{stroke:$R},border:{show:!0,width:1/devicePixelRatio,stroke:Qo},ticks:{width:1/devicePixelRatio,stroke:Qo,size:5},side:r?0:2},{border:{show:!0,width:1/devicePixelRatio,stroke:Qo},stroke:"rgba(0,0,0,0)"}],legend:{markers:{width:0},show:!1},padding:[0,i4,0,i4],series:[{label:"Time"},{label:`Bank ${e}`},{}],plugins:[m$e(D),Net({transactionsRef:D,setTxnIdx:I,setTxnState:B}),XF(),t9({factor:.75}),Wae(),r9()],hooks:{ready:[M=>{requestAnimationFrame(()=>{e$e(M,e)})}]}}},[e,S==null?void 0:S.length,r,c,I,B]),N=Me(c9);return!S||!F||A?null:p.jsx("div",{style:{flex:1,marginLeft:`${f}px`,marginRight:`${h}px`,display:A?"none":"block",height:l?`${Math.max(2,N)*90+40}px`:c?"170px":"130px"},ref:v,children:p.jsx(hs,{children:({height:M,width:P})=>(F.width=P,F.height=M,p.jsx(p.Fragment,{children:p.jsx(_0,{id:$ae(e),options:F,data:S,onCreate:R})}))})})}const Oet="_container_14qh6_1",jet="_label_14qh6_10",Hle={container:Oet,label:jet};function Let({setSelected:e,bankIdx:t,isSelected:n}){return p.jsxs("div",{className:Hle.container,children:[p.jsxs(Se,{className:Hle.label,children:["Bank ",t]}),p.jsx(nl,{variant:"ghost",size:"1",onClick:()=>e(),children:n?p.jsx($$,{color:"grey"}):p.jsx(K$,{color:"grey"})})]})}const Pet=Rp+Tp,Yle=Pet+yS;function Uet(){var f,h,I,B,v;const e=Me(Vr),t=hc(e),n=x.useRef((f=t.response)==null?void 0:f.transactions);n.current=(h=t.response)==null?void 0:h.transactions;const r=Me(mC).bank,i=It(ele),A=x.useMemo(()=>{var D;return(D=t.response)!=null&&D.transactions?z_(t.response.transactions):0},[(I=t.response)==null?void 0:I.transactions]);x.useMemo(()=>{var S;if(!((S=t.response)!=null&&S.transactions))return;const D=[];for(let R=0;R{var R;if((R=t.response)!=null&&R.transactions&&!(l!==void 0&&l!==S))return p.jsxs("div",{style:{position:"relative"},children:[(l===void 0||l===S)&&p.jsx(Let,{bankIdx:S,setSelected:()=>c(F=>F===void 0?S:void 0),isSelected:l===S}),p.jsx(Fet,{bankIdx:S,transactions:t.response.transactions,maxTs:A,isFirstChart:S===0&&r>1,isLastChart:S===r-1||l!==void 0,isSelected:l===S,hide:l!==void 0&&l!==S},`${S}`)]},S)})]},e):null}const Get="_state_1f768_11",Het="_cu-bars_1f768_24",Yet="_duration-container_1f768_30",Jet="_unit_1f768_38",A4={state:Get,cuBars:Het,durationContainer:Yet,unit:Jet};function zet(){var l,c,f;const e=Me(Vr),t=hc(e),n=Me(h9),r=Me(p9),i=(l=t.response)==null?void 0:l.transactions,A=x.useMemo(()=>{if(!i||n<0||!i.txn_from_bundle[n])return;const h=i.txn_microblock_id[n],I=[];for(let B=0;B{var l;const A=n.find(c=>c.gossip?Object.values(c.gossip.sockets).some(f=>y5(f)===r):!1);if(A)return(l=A.info)!=null&&l.name?A.info.name.length>20?`${A.info.name.substring(0,20)}...`:A.info.name:`${A.identity_pubkey.substring(0,8)}...`},[r,n]);return p.jsxs(p.Fragment,{children:[p.jsx(Yi,{label:"IPv4 (tpu)",value:`${r} (${e.txn_source_tpu[t]})`}),i&&p.jsx(Yi,{label:"Validator",value:i})]})}function qet({transactions:e,txnIdx:t}){var A;const{rankings:n,totalRanks:r}=x.useMemo(()=>ale(e),[e]),i=n.has(t)?` (${n.get(t)} of ${r})`:"";return p.jsx(Yi,{label:"CU Income",value:`${(A=sle(e,t))==null?void 0:A.toLocaleString(void 0,{maximumFractionDigits:Ki})}${i}`,color:lu})}function Xet({transactions:e,txnIdx:t}){var r,i;const n=e.txn_compute_units_requested[t]?Math.trunc(e.txn_compute_units_consumed[t]/e.txn_compute_units_requested[t]*100):100;return p.jsxs(p.Fragment,{children:[p.jsx(Yi,{label:"CU Consumed",value:`${(r=e.txn_compute_units_consumed[t])==null?void 0:r.toLocaleString()}`,color:nf}),p.jsx(Yi,{label:"CU Requested",value:`${(i=e.txn_compute_units_requested[t])==null?void 0:i.toLocaleString()}`,color:dC}),p.jsx(qet,{transactions:e,txnIdx:t}),p.jsx(Fe,{children:p.jsxs("svg",{height:"8",fill:"none",className:A4.cuBars,xmlns:"http://www.w3.org/2000/svg",children:[p.jsx("rect",{height:"8",width:`${n}%`,opacity:.6,fill:nf}),p.jsx("rect",{height:"8",width:`${100-n}%`,x:`${n}%`,opacity:.2,fill:dC})]})})]})}function Vet({transactions:e,txnIdx:t,bundleTxnIdx:n}){const r=x.useMemo(()=>{if(t<0)return;let l=e.txn_mb_start_timestamps_nanos[t],c=e.txn_mb_end_timestamps_nanos[t],f=null;if(e.txn_from_bundle[t]&&(n!=null&&n.length)){const R=n.indexOf(t)??-1;n[R-1]>0&&(l=e.txn_preload_end_timestamps_nanos[t]);const F=n[R+1];F>0&&(c=e.txn_preload_end_timestamps_nanos[F]),f=e.txn_mb_end_timestamps_nanos[n[n.length-1]]-e.txn_mb_start_timestamps_nanos[n[0]]}const h=e.txn_preload_end_timestamps_nanos[t]-l,I=e.txn_start_timestamps_nanos[t]-e.txn_preload_end_timestamps_nanos[t],B=e.txn_load_end_timestamps_nanos[t]-e.txn_start_timestamps_nanos[t],v=e.txn_end_timestamps_nanos[t]-e.txn_load_end_timestamps_nanos[t],D=c-e.txn_end_timestamps_nanos[t],S=c-l;return{preLoading:h,validating:I,loading:B,execute:v,postExecute:D,total:S,bundleTotal:f}},[n,e,t]),i=x.useMemo(()=>{if(!r)return;const l=Number(r.total),c=Math.max(0,Number(r.preLoading)/l*100),f=Math.max(0,Number(r.validating)/l*100),h=Math.max(0,Number(r.loading)/l*100),I=Math.max(0,Number(r.execute)/l*100),B=Math.max(0,Number(r.postExecute)/l*100);return{preLoading:c,validating:f,loading:h,execute:I,postExecute:B}},[r]),A=x.useMemo(()=>{if(!r)return;const l=na(r.preLoading),c=na(r.validating),f=na(r.loading),h=na(r.execute),I=na(r.postExecute),B=na(r.total),v=r.bundleTotal!=null&&na(r.bundleTotal);return{preLoading:l,validating:c,loading:f,execute:h,postExecute:I,total:B,bundleTotal:v}},[r]);if(!(!r||!i||!A))return p.jsxs(p.Fragment,{children:[p.jsx(Bf,{}),p.jsx(Fe,{children:p.jsxs("svg",{height:"36",className:A4.durationContainer,xmlns:"http://www.w3.org/2000/svg",children:[p.jsx("rect",{height:"8",width:`${i.preLoading}%`,fill:bc[mi.PRELOADING]}),p.jsx("rect",{height:"8",width:`${i.validating}%`,fill:bc[mi.VALIDATE],x:`${i.preLoading}%`,y:"20%"}),p.jsx("rect",{height:"8",width:`${i.loading}%`,fill:bc[mi.LOADING],x:`${i.preLoading+i.validating}%`,y:"40%"}),p.jsx("rect",{height:"8",width:`${i.execute}%`,fill:bc[mi.EXECUTE],x:`${i.preLoading+i.validating+i.loading}%`,y:"60%"}),p.jsx("rect",{height:"8",width:`${i.postExecute}%`,fill:bc[mi.POST_EXECUTE],x:`${i.preLoading+i.validating+i.loading+i.execute}%`,y:"80%"})]})}),p.jsx(Yi,{label:mi.PRELOADING,color:bc[mi.PRELOADING],value:A.preLoading.value,unit:A.preLoading.unit}),p.jsx(Yi,{label:mi.VALIDATE,color:bc[mi.VALIDATE],value:A.validating.value,unit:A.validating.unit}),p.jsx(Yi,{label:mi.LOADING,color:bc[mi.LOADING],value:A.loading.value,unit:A.loading.unit}),p.jsx(Yi,{label:mi.EXECUTE,color:bc[mi.EXECUTE],value:A.execute.value,unit:A.execute.unit}),p.jsx(Yi,{label:mi.POST_EXECUTE,color:bc[mi.POST_EXECUTE],value:A.postExecute.value,unit:A.postExecute.unit}),p.jsx(Yi,{label:"Total",value:A.total.value,unit:A.total.unit}),r.bundleTotal&&A.bundleTotal&&p.jsx(Yi,{label:"Total (Bundle)",value:A.bundleTotal.value,unit:A.bundleTotal.unit})]})}function Ket({txnIdx:e,transactions:t}){const n=t.txn_error_code[e],r=n!==0;return p.jsx(Yi,{label:r?"Error":"Success",value:r?`${tQ[n]}`:"Yes",color:r?TQ:RQ})}function Yi({label:e,value:t,color:n,unit:r,copyValue:i}){const A=typeof t=="number"?t.toLocaleString():t,[l,c]=x.useState(!1),f=g1(()=>c(!1),1e3);return p.jsxs(Fe,{justify:"between",gap:"4",style:{"--color-override":n},children:[p.jsxs(Fe,{gap:"2",align:"center",children:[p.jsx(Se,{children:e}),i&&p.jsx(nl,{variant:"ghost",size:"1",onClick:h=>{p_e(i),c(!0),f(),h.stopPropagation()},children:l?p.jsx(F$,{color:"green",height:"14px"}):p.jsx(G$,{color:tR,height:"14px"})})]}),p.jsxs("span",{children:[p.jsx(Se,{children:A}),r&&p.jsx(Se,{className:A4.unit,children:r})]})]})}function Q9({value:e,append:t,...n}){let r=e?"Yes":"No";return t&&(r+=` ${t}`),p.jsx(Yi,{...n,value:r})}function Zet(){var n;const e=Me(Vr),t=hc(e);return!e||!((n=t.response)!=null&&n.transactions)?null:p.jsxs(p.Fragment,{children:[p.jsx(bu,{id:"txn-bars-card",children:p.jsx(Uet,{})}),p.jsx(zet,{})]})}function w9(){const e=H9.useSearch(),t=Bp({from:H9.fullPath}),n=x.useCallback(r=>{t({search:{slot:r},replace:!0})},[t]);return{selectedSlot:e==null?void 0:e.slot,setSelectedSlot:n}}const $et="_search-grid_gudx6_1",ett="_search-label_gudx6_5",ttt="_search-field_gudx6_11",ntt="_error-text_gudx6_15",rtt="_quick-search-card_gudx6_19",ott="_quick-search-header_gudx6_26",itt="_quick-search-slot_gudx6_37",Att="_clickable_gudx6_40",stt="_quick-search-metric_gudx6_51",Qu={searchGrid:$et,searchLabel:ett,searchField:ttt,errorText:ntt,quickSearchCard:rtt,quickSearchHeader:ott,quickSearchSlot:itt,clickable:Att,quickSearchMetric:stt},att=e=>x.createElement("svg",{width:18,height:18,viewBox:"0 0 18 18",fill:"#D86363",xmlns:"http://www.w3.org/2000/svg",...e},x.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.01469 6.00051C5.58562 6.03619 3 7.94365 3 12C3 12.5523 2.55228 13 2 13C1.44772 13 1 12.5523 1 12C1 6.90007 4.41438 4.05318 7.98531 4.00073C9.74494 3.97489 11.5153 4.63461 12.8432 6.00502C13.8812 7.07635 14.6101 8.5405 14.8821 10.3602L15.8896 8.9389C16.209 8.48833 16.8331 8.38198 17.2837 8.70137C17.7343 9.02075 17.8406 9.64492 17.5213 10.0955L15.0678 13.5568C14.7484 14.0073 14.1242 14.1137 13.6737 13.7943L10.2124 11.3408C9.76181 11.0214 9.65546 10.3973 9.97484 9.9467C10.2942 9.49613 10.9184 9.38978 11.369 9.70916L12.9263 10.8131C12.7275 9.27771 12.1449 8.15845 11.4068 7.39676C10.4847 6.44507 9.25506 5.9823 8.01469 6.00051ZM6.5 13C7.32843 13 8 12.3284 8 11.5C8 10.6716 7.32843 10 6.5 10C5.67157 10 5 10.6716 5 11.5C5 12.3284 5.67157 13 6.5 13Z"}));function ltt(e=!1){const t=jB();cc(()=>{t({topic:"slot",key:"query_rankings",id:32,params:{mine:e}})},5e3)}function Jle(e,t){const n=Il(e),r=yee();vk(r,1e3);const[i,A]=x.useState();x.useEffect(()=>{var c,f;(c=n.publish)!=null&&c.completed_time_nanos&&A(Gn.fromMillis(Math.trunc(Number((f=n.publish)==null?void 0:f.completed_time_nanos)/1e6)))},[n.publish]);const l=(()=>{if(i)return gC.diff(i).rescale()})();return{slotDateTime:i,timeAgoText:l?`${Ug(l,t)} ago`:void 0}}const zle=3,Wle=226,qle=40,Xle=20,ctt=2*Xle+zle*Wle+(zle-1)*qle;function utt(){const{selectedSlot:e,setSelectedSlot:t}=w9(),[n,r]=x.useState(e===void 0?"":String(e)),i=Me(vi),{isValid:A}=Me(pC),l=x.useCallback(()=>{t(n===""?void 0:Number(n))},[n,t]);return p.jsxs(Gl,{height:"100%",maxWidth:`${ctt}px`,justify:"center",m:"auto",gap:`${qle}px`,p:`${Xle}px`,columns:`repeat(auto-fit, ${Wle}px)`,className:Qu.searchGrid,children:[p.jsx(Fe,{direction:"column",gap:"8px",gridColumn:"1 / -1",asChild:!0,children:p.jsxs("form",{onSubmit:c=>{c.preventDefault(),l()},children:[p.jsx(uIe,{htmlFor:"searchSlotId",className:Qu.searchLabel,children:"Search Slot ID"}),p.jsx(yD,{id:"searchSlotId",className:Qu.searchField,placeholder:`e.g. ${(i==null?void 0:i.start_slot)??0}`,type:"number",step:"1",value:n,onChange:c=>r(c.target.value),size:"3",color:A?"teal":"red",autoFocus:!0,children:p.jsx(Ab,{side:"right",children:p.jsx(rl,{variant:"ghost",color:"gray",onClick:l,children:p.jsx(_T,{height:"16",width:"16"})})})}),!A&&p.jsx(mtt,{})]})}),p.jsx(dtt,{})]})}function x9(e){return`${hC(e,4)} SOL`}function dtt(){ltt(!0);const e=Me(aS),t=Me(eA),n=Me(ZK),r=Me(qp),{earliestQuickSlots:i,mostRecentQuickSlots:A}=x.useMemo(()=>{if(t===void 0||n===void 0)return{};const l=t.slice(n,r);return{earliestQuickSlots:l,mostRecentQuickSlots:l.toReversed()}},[n,t,r]);return p.jsxs(p.Fragment,{children:[p.jsx(H1,{icon:p.jsx(Y$,{}),label:"Earliest Slots",color:g5,slots:i}),p.jsx(H1,{icon:p.jsx(kT,{}),label:"Most Recent Slots",color:h5,slots:A}),p.jsx(H1,{icon:p.jsx(att,{}),label:"Last Skipped Slots",color:p5,slots:e==null?void 0:e.slots_largest_skipped}),p.jsx(H1,{icon:p.jsx(X$,{}),label:"Highest Fees",color:m5,slots:e==null?void 0:e.slots_largest_fees,metricOptions:{metrics:e==null?void 0:e.vals_largest_fees,metricsFmt:x9}}),p.jsx(H1,{icon:p.jsx(Aee,{}),label:"Highest Tips",color:I5,slots:e==null?void 0:e.slots_largest_tips,metricOptions:{metrics:e==null?void 0:e.vals_largest_tips,metricsFmt:x9}}),p.jsx(H1,{icon:p.jsx(cee,{}),label:"Highest Rewards",color:C5,slots:e==null?void 0:e.slots_largest_rewards,metricOptions:{metrics:e==null?void 0:e.vals_largest_rewards,metricsFmt:x9}})]})}function H1({icon:e,label:t,color:n,slots:r,metricOptions:i}){return p.jsxs(Fe,{direction:"column",className:Qu.quickSearchCard,p:"20px",gap:"20px",children:[p.jsxs(Fe,{direction:"column",gap:"10px",className:Qu.quickSearchHeader,style:{"--quick-search-color":n},children:[e,p.jsx(Se,{align:"left",children:t})]}),p.jsx(gtt,{slots:r,metricOptions:i})]})}const ftt=3;function gtt({slots:e,metricOptions:t}){const{setSelectedSlot:n}=w9();return p.jsx(Fe,{direction:"column",gap:"5px",children:Array.from({length:ftt}).map((r,i)=>{var l;const A=e==null?void 0:e[i];return p.jsxs(Fe,{justify:"between",children:[A===void 0?p.jsx(Se,{className:Qu.quickSearchSlot,children:"--"}):p.jsx(Se,{className:An(Qu.quickSearchSlot,Qu.clickable),onClick:()=>n(A),children:A}),p.jsx(Se,{className:Qu.quickSearchMetric,children:p.jsx(htt,{slot:A,metric:(l=t==null?void 0:t.metrics)==null?void 0:l[i],metricsFmt:t==null?void 0:t.metricsFmt})})]},i)})})}function htt({slot:e,metric:t,metricsFmt:n}){return e===void 0?"--":n?t===void 0?"--":n(t)??"--":p.jsx(ptt,{slot:e})}function ptt({slot:e}){const{timeAgoText:t}=Jle(e,{showOnlyTwoSignificantUnits:!0});return t}function mtt(){const{slot:e,state:t}=Me(pC),n=Me(vi),r=x.useMemo(()=>{switch(t){case Gg.NotReady:return`Slot ${e} validity cannot be determined because epoch and leader slot data is not available yet.`;case Gg.OutsideEpoch:return`Slot ${e} is outside this epoch. Please try again with a different ID between ${n==null?void 0:n.start_slot} - ${n==null?void 0:n.end_slot}.`;case Gg.NotYou:return`Slot ${e} belongs to another validator. Please try again with a slot number processed by you.`;case Gg.BeforeFirstProcessed:return`Slot ${e} is in this epoch but its details are unavailable because it was processed before the restart.`;case Gg.Future:return`Slot ${e} is valid but in the future. To view details, check again after it has been processed.`;case Gg.Valid:return""}},[n==null?void 0:n.end_slot,n==null?void 0:n.start_slot,e,t]);return p.jsx(Se,{size:"3",className:Qu.errorText,children:r})}const Itt="_slot-item-group_me6mb_1",Ctt="_disabled_me6mb_8",Ett="_is-selected_me6mb_12",Btt="_slot-item_me6mb_1",ytt="_selected-slot_me6mb_33",vtt="_skipped-slot_me6mb_39",btt="_fade_me6mb_48",Qtt="_fade-left_me6mb_55",wtt="_fade-right_me6mb_60",wu={slotItemGroup:Itt,disabled:Ctt,isSelected:Ett,slotItem:Btt,selectedSlot:ytt,skippedSlot:vtt,fade:btt,fadeLeft:Qtt,fadeRight:wtt};function Vle({onMeasured:e,children:t}){const n=Me(Yg),[r,i]=cf();return x.useEffect(()=>e(i),[i,e]),p.jsx(vU,{container:n,style:{position:"fixed",left:"-100000px",top:"-100000px",visibility:"hidden"},ref:r,"aria-hidden":"true",children:t})}var _9=function(e,t){return _9=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)r.hasOwnProperty(i)&&(n[i]=r[i])},_9(e,t)};function xtt(e,t){_9(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var _tt=100,ktt=100,Kle=50,k9=50,D9=50;function Zle(e){var t=e.className,n=e.counterClockwise,r=e.dashRatio,i=e.pathRadius,A=e.strokeWidth,l=e.style;return x.createElement("path",{className:t,style:Object.assign({},l,Stt({pathRadius:i,dashRatio:r,counterClockwise:n})),d:Dtt({pathRadius:i,counterClockwise:n}),strokeWidth:A,fillOpacity:0})}function Dtt(e){var t=e.pathRadius,n=e.counterClockwise,r=t,i=n?1:0;return` - M `+k9+","+D9+` - m 0,-`+r+` - a `+r+","+r+" "+i+" 1 1 0,"+2*r+` - a `+r+","+r+" "+i+" 1 1 0,-"+2*r+` - `}function Stt(e){var t=e.counterClockwise,n=e.dashRatio,r=e.pathRadius,i=Math.PI*2*r,A=(1-n)*i;return{strokeDasharray:i+"px "+i+"px",strokeDashoffset:(t?-A:A)+"px"}}var Rtt=function(e){xtt(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getBackgroundPadding=function(){return this.props.background?this.props.backgroundPadding:0},t.prototype.getPathRadius=function(){return Kle-this.props.strokeWidth/2-this.getBackgroundPadding()},t.prototype.getPathRatio=function(){var n=this.props,r=n.value,i=n.minValue,A=n.maxValue,l=Math.min(Math.max(r,i),A);return(l-i)/(A-i)},t.prototype.render=function(){var n=this.props,r=n.circleRatio,i=n.className,A=n.classes,l=n.counterClockwise,c=n.styles,f=n.strokeWidth,h=n.text,I=this.getPathRadius(),B=this.getPathRatio();return x.createElement("svg",{className:A.root+" "+i,style:c.root,viewBox:"0 0 "+_tt+" "+ktt,"data-test-id":"CircularProgressbar"},this.props.background?x.createElement("circle",{className:A.background,style:c.background,cx:k9,cy:D9,r:Kle}):null,x.createElement(Zle,{className:A.trail,counterClockwise:l,dashRatio:r,pathRadius:I,strokeWidth:f,style:c.trail}),x.createElement(Zle,{className:A.path,counterClockwise:l,dashRatio:B*r,pathRadius:I,strokeWidth:f,style:c.path}),h?x.createElement("text",{className:A.text,style:c.text,x:k9,y:D9},h):null)},t.defaultProps={background:!1,backgroundPadding:0,circleRatio:1,classes:{root:"CircularProgressbar",trail:"CircularProgressbar-trail",path:"CircularProgressbar-path",text:"CircularProgressbar-text",background:"CircularProgressbar-background"},counterClockwise:!1,className:"",maxValue:100,minValue:0,strokeWidth:8,styles:{root:{},trail:{},path:{},text:{},background:{}},text:""},t}(x.Component);function Ttt(e){var t=e.rotation,n=e.strokeLinecap,r=e.textColor,i=e.textSize,A=e.pathColor,l=e.pathTransition,c=e.pathTransitionDuration,f=e.trailColor,h=e.backgroundColor,I=t==null?void 0:"rotate("+t+"turn)",B=t==null?void 0:"center center";return{root:{},path:s4({stroke:A,strokeLinecap:n,transform:I,transformOrigin:B,transition:l,transitionDuration:c==null?void 0:c+"s"}),trail:s4({stroke:f,strokeLinecap:n,transform:I,transformOrigin:B}),text:s4({fill:r,fontSize:i}),background:s4({fill:h})}}function s4(e){return Object.keys(e).forEach(function(t){e[t]==null&&delete e[t]}),e}const Mtt="data:image/svg+xml,%3csvg%20width='12'%20height='13'%20viewBox='0%200%2012%2013'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6%200.675781C9.22656%200.675781%2011.8242%203.27344%2011.8242%206.5C11.8242%209.72656%209.22656%2012.3242%206%2012.3242C2.77344%2012.3242%200.175781%209.72656%200.175781%206.5C0.175781%203.27344%202.77344%200.675781%206%200.675781ZM6%2011.1758C8.57031%2011.1758%2010.6758%209.07031%2010.6758%206.5C10.6758%203.92969%208.57031%201.82422%206%201.82422C3.42969%201.82422%201.32422%203.92969%201.32422%206.5C1.32422%209.07031%203.42969%2011.1758%206%2011.1758ZM8.67969%203.92969L9.5%204.75L4.82422%209.42578L2.5%207.07422L3.32031%206.25391L4.82422%207.75781L8.67969%203.92969Z'%20fill='%231D863B'/%3e%3c/svg%3e",Ntt="data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='%231D863B'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.82422%208.92578L10.0742%203.67578L9.25391%202.82812L4.82422%207.25781L2.74609%205.17969L1.92578%206L4.82422%208.92578ZM1.87109%201.89844C3.01953%200.75%204.39583%200.175781%206%200.175781C7.60417%200.175781%208.97135%200.75%2010.1016%201.89844C11.25%203.02865%2011.8242%204.39583%2011.8242%206C11.8242%207.60417%2011.25%208.98047%2010.1016%2010.1289C8.97135%2011.2591%207.60417%2011.8242%206%2011.8242C4.39583%2011.8242%203.01953%2011.2591%201.87109%2010.1289C0.740885%208.98047%200.175781%207.60417%200.175781%206C0.175781%204.39583%200.740885%203.02865%201.87109%201.89844Z'/%3e%3c/svg%3e",Ftt="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='8.5'%20cy='2.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='4.5'%20cy='6.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='2.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='6.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='10.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='14.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='2.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='6.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='10.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='14.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='12.5'%20cy='6.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3cline%20x1='8.35355'%20y1='1.64645'%20x2='13.3536'%20y2='6.64645'%20stroke='%231CE7C2'/%3e%3cline%20x1='3.64645'%20y1='6.64645'%20x2='8.64645'%20y2='1.64645'%20stroke='%231CE7C2'/%3e%3cline%20x1='12.4642'%20y1='6.8143'%20x2='14.4642'%20y2='11.8143'%20stroke='%231CE7C2'/%3e%3cline%20x1='10.5358'%20y1='11.8143'%20x2='12.5356'%20y2='6.81427'%20stroke='%231CE7C2'/%3e%3cline%20x1='2.53576'%20y1='11.8143'%20x2='4.53576'%20y2='6.8143'%20stroke='%231CE7C2'/%3e%3cline%20x1='4.46424'%20y1='6.81432'%20x2='6.46412'%20y2='11.8144'%20stroke='%231CE7C2'/%3e%3cline%20x1='2.5'%20y1='11'%20x2='2.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='6.5'%20y1='11'%20x2='6.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='10.5'%20y1='11'%20x2='10.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='14.5'%20y1='11'%20x2='14.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3c/svg%3e",Ott="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='%23D86363'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8.01469%206.00051C5.58562%206.03619%203%207.94365%203%2012C3%2012.5523%202.55228%2013%202%2013C1.44772%2013%201%2012.5523%201%2012C1%206.90007%204.41438%204.05318%207.98531%204.00073C9.74494%203.97489%2011.5153%204.63461%2012.8432%206.00502C13.8812%207.07635%2014.6101%208.5405%2014.8821%2010.3602L15.8896%208.9389C16.209%208.48833%2016.8331%208.38198%2017.2837%208.70137C17.7343%209.02075%2017.8406%209.64492%2017.5213%2010.0955L15.0678%2013.5568C14.7484%2014.0073%2014.1242%2014.1137%2013.6737%2013.7943L10.2124%2011.3408C9.76181%2011.0214%209.65546%2010.3973%209.97484%209.9467C10.2942%209.49613%2010.9184%209.38978%2011.369%209.70916L12.9263%2010.8131C12.7275%209.27771%2012.1449%208.15845%2011.4068%207.39676C10.4847%206.44507%209.25506%205.9823%208.01469%206.00051ZM6.5%2013C7.32843%2013%208%2012.3284%208%2011.5C8%2010.6716%207.32843%2010%206.5%2010C5.67157%2010%205%2010.6716%205%2011.5C5%2012.3284%205.67157%2013%206.5%2013Z'/%3e%3c/svg%3e",jtt="_small-icon_1vpxu_1",Ltt="_large-icon_1vpxu_6",a4={smallIcon:jtt,largeIcon:Ltt};function $le({slot:e,isCurrent:t,size:n}){const r=Me(j_e(e)),i=An(a4[`${n}Icon`]);return t?p.jsx(Ptt,{size:n}):r==="incomplete"?p.jsx(ece,{size:n}):r==="optimistically_confirmed"?p.jsx(Zo,{content:"Slot was optimistically confirmed",children:p.jsx("img",{src:Ntt,alt:"optimistically_confirmed",className:i})}):r==="rooted"||r==="finalized"?p.jsx(Zo,{content:"Slot was rooted",children:p.jsx("img",{src:Ftt,alt:"rooted",className:i})}):p.jsx(Zo,{content:"Slot was processed",children:p.jsx("img",{src:Mtt,alt:"processed",className:i})})}function ece({size:e}){return p.jsx("div",{className:An(a4[`${e}Icon`])})}function Ptt({size:e}){const t=x.useRef(performance.now()),n=Me(Jg),[r,i]=x.useState(0);return kee(()=>{if(r>=100)return;const A=performance.now()-t.current,l=Math.min(Math.floor(A/n*100),100);i(l)}),p.jsx(Fe,{className:An(a4[`${e}Icon`]),children:p.jsx(Rtt,{value:r,styles:Ttt({trailColor:d5,pathColor:f5}),strokeWidth:25})})}function tce({size:e}){return p.jsx(Zo,{content:"Slot was skipped",children:p.jsx("img",{src:Ott,alt:"skipped",className:An(a4[`${e}Icon`])})})}const Utt=Rp+Tp,nce=4;function rce(e,t){return e*t+Math.max(0,e-1)*nce}function Gtt(){const e=Me(Vr),t=Me(eA),[n,r]=x.useState(0),[i,A]=x.useState(0),[l,{width:c}]=cf(),f=x.useRef(null),[h,I]=x.useState(0),B=x.useCallback(N=>{N&&requestAnimationFrame(()=>{var P;const M=c/2-(N.offsetLeft+N.offsetWidth/2);(P=f.current)==null||P.style.setProperty("--offset",`${M}px`),I(M)})},[c]),v=x.useMemo(()=>e===void 0||!t?-1:t.indexOf(es(e)),[t,e]),D=x.useMemo(()=>{if(v<0||!t)return;const N=Math.max(1,Math.ceil(c/2/i)),M=sr.clamp(N,1,10),P=N+M,G=t.length,J=Math.max(0,v-P),W=Math.min(G-1,v+P),q=G-1-W;return{leftSpacerWidth:rce(J,i),rightSpacerWidth:rce(q,i),startItemGroupIdx:J,endItemGroupIdx:W}},[c,i,t,v]),{showFadeLeft:S,showFadeRight:R}=x.useMemo(()=>{var P;const N=h<0,M=(((P=f.current)==null?void 0:P.offsetWidth)??0)-c+h>0;return{showFadeLeft:N,showFadeRight:M}},[c,h]);if(!t||!D||e===void 0)return;const F=[];if(i&&n)for(let N=D.startItemGroupIdx;N<=D.endItemGroupIdx;N++){const M=[],P=t[N];for(let J=0;Jt(i.width),children:p.jsx(S9,{slot:e[e.length-1],isSelected:!0})}),p.jsx(Vle,{onMeasured:i=>n(i.width),children:p.jsx(oce,{slot:r,children:new Array(vo).fill(0).map((i,A)=>p.jsx(S9,{slot:r-A,isSelected:!0},A))})})]})}function oce({slot:e,isSelected:t,children:n}){const r=e<(Me(v0)??-1),i=e>(Me(WQ)??1/0),A=r||i;return p.jsx(Fe,{className:An(wu.slotItemGroup,{[wu.disabled]:A,[wu.isSelected]:t}),children:n})}function S9({slot:e,isSelected:t,onSelectedSlotRef:n}){var c;Il(e);const r=(c=Me(ZI))==null?void 0:c.includes(e),i=e<(Me(v0)??-1),A=e>=(Me(WQ)??1/0)+vo,l=i||A;return p.jsxs(vg,{to:"/slotDetails",search:{slot:e},className:An(wu.slotItem,{[wu.selectedSlot]:t,[wu.skippedSlot]:r}),ref:n,disabled:l,children:[p.jsx(Se,{children:e}),r?p.jsx(tce,{size:"large"}):p.jsx($le,{isCurrent:!1,slot:e,size:"large"})]},e)}function R9({title:e,children:t,lg:n}){return p.jsxs("div",{style:{flex:n?1.5:1,flexShrink:0,flexBasis:0},children:[p.jsx(GJ,{size:"3",children:e}),p.jsx(Bf,{mb:"2"}),t]})}const Ytt="_stats-grid_33wvq_1",T9={statsGrid:Ytt};function Jtt(){var l,c;const e=Me(Vr),t=hc(e),n=((c=(l=t.response)==null?void 0:l.publish)==null?void 0:c.max_compute_units)??eQ,r=x.useMemo(()=>{var f;if((f=t==null?void 0:t.response)!=null&&f.transactions)return t.response.transactions.txn_compute_units_consumed.reduce((h,I,B)=>{var N,M,P,G,J,W;const v=((M=(N=t.response)==null?void 0:N.transactions)==null?void 0:M.txn_compute_units_requested[B])??0,D=!!((G=(P=t.response)==null?void 0:P.transactions)!=null&&G.txn_is_simple_vote[B]),S=(W=(J=t.response)==null?void 0:J.transactions)==null?void 0:W.txn_from_bundle[B],{consumed:R,requested:F}=h;return D?(R.vote+=I,F.vote+=v):S?(R.bundle+=I,F.bundle+=v):(R.other+=I,F.other+=v),h},{consumed:{vote:0,bundle:0,other:0},requested:{vote:0,bundle:0,other:0}})},[t]);if(!r)return;const{consumed:i,requested:A}=r;return p.jsx(p.Fragment,{children:p.jsx(Wtt,{cuStats:i,title:"Consumed",maxCus:n})})}const ztt=Vu;function Wtt({cuStats:e,title:t,maxCus:n}){const r=e.vote+e.bundle+e.other;return p.jsxs("div",{children:[p.jsxs(Se,{style:{color:"var(--gray-12)"},children:[t," Compute Units"]}),p.jsxs(Gl,{columns:"repeat(5, auto) minmax(80px, auto)",gapX:"2",gapY:"1",className:T9.statsGrid,children:[p.jsx(M9,{label:"Vote",cus:e.vote,maxCus:n,totalCus:r,pctColor:au}),p.jsx(M9,{label:"Bundle",cus:e.bundle,maxCus:n,totalCus:r,pctColor:ztt}),p.jsx(M9,{label:"Other",cus:e.other,maxCus:n,totalCus:r,pctColor:su})]})]})}function M9({label:e,cus:t,totalCus:n,maxCus:r,pctColor:i}){const A=Math.round(n?t/n*100:0);return p.jsxs(p.Fragment,{children:[p.jsx(Se,{wrap:"nowrap",style:{color:"var(--gray-11)"},children:e}),p.jsx(Se,{wrap:"nowrap",style:{color:i},align:"right",children:t.toLocaleString()}),p.jsx(Se,{wrap:"nowrap",style:{color:"var(--gray-10)"},children:"/"}),p.jsx(Se,{wrap:"nowrap",style:{color:"var(--gray-10)"},align:"right",children:n.toLocaleString()}),p.jsxs(Se,{wrap:"nowrap",style:{color:"var(--gray-10)"},align:"right",children:[A,"%"]}),p.jsx("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:p.jsx("rect",{height:"8",width:`${A}%`,opacity:.6,fill:i})})]})}function l4({value:e,total:t,valueColor:n,showBackground:r}){const i=Math.round(t?e/t*100:0);return p.jsx(p.Fragment,{children:p.jsxs("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[p.jsx("rect",{height:"8",width:`${i}%`,opacity:.6,fill:n}),r&&p.jsx("rect",{height:"8",width:`${100-i}%`,x:`${i}%`,opacity:.2,fill:n})]})})}function VE({label:e,value:t,total:n,valueColor:r}){const i=Math.round(n?t/n*100:0);return p.jsxs(p.Fragment,{children:[p.jsx(Se,{wrap:"nowrap",style:{color:"var(--gray-11)"},children:e}),p.jsx(Se,{wrap:"nowrap",style:{color:r},align:"right",children:t.toLocaleString()}),p.jsx(Se,{wrap:"nowrap",style:{color:"var(--gray-10)"},children:"/"}),p.jsx(Se,{wrap:"nowrap",style:{color:"var(--gray-10)"},align:"right",children:n.toLocaleString()}),p.jsxs(Se,{wrap:"nowrap",style:{color:"var(--gray-10)"},align:"right",children:[i,"%"]}),p.jsx(l4,{value:t,total:n,valueColor:r,showBackground:!0})]})}function qtt(){const e=Me(Vr),t=k0(e).response;if(!t)return;const{limits:n}=t;if(n)return p.jsxs("div",{children:[p.jsx(Se,{style:{color:"var(--gray-12)"},children:"Protocol Limit Utilization"}),p.jsxs(Gl,{columns:"repeat(5, auto) minmax(80px, 250px)",gapX:"2",gapY:"1",className:T9.statsGrid,children:[p.jsx(VE,{label:"Block cost",value:n.used_total_block_cost??0,total:n.max_total_block_cost??0,valueColor:nf}),p.jsx(VE,{label:"Vote cost",value:n.used_total_vote_cost??0,total:n.max_total_vote_cost??0,valueColor:au}),p.jsx(VE,{label:"Bytes",value:n.used_total_bytes??0,total:n.max_total_bytes??0,valueColor:"#A35829"}),p.jsx(VE,{label:"Microblocks",value:n.used_total_microblocks??0,total:n.max_total_microblocks??0,valueColor:nf})]})]})}function Xtt(){const e=Me(Vr),t=k0(e).response;if(!t)return;const{limits:n}=t;if(n)return p.jsxs("div",{children:[p.jsx(Se,{style:{color:"var(--gray-12)"},children:"Top 5 Busy Accounts"}),p.jsx(Gl,{columns:"repeat(5, auto) minmax(80px, 200px)",gapX:"2",gapY:"1",className:T9.statsGrid,children:n.used_account_write_costs.map(({account:r,cost:i})=>p.jsx(VE,{label:`${r.substring(0,8)}...`,value:i,total:n.max_account_write_cost,valueColor:"#30A46C"},r))})]})}const N9={preLoading:0,validating:0,loading:0,execute:0,postExecute:0,total:0};function F9(e,t,n){const r=e.txn_mb_start_timestamps_nanos[t],i=e.txn_mb_end_timestamps_nanos[t];return n.preLoading+=Number(e.txn_preload_end_timestamps_nanos[t]-r),n.validating+=Number(e.txn_start_timestamps_nanos[t]-e.txn_preload_end_timestamps_nanos[t]),n.loading+=Number(e.txn_load_end_timestamps_nanos[t]-e.txn_start_timestamps_nanos[t]),n.execute+=Number(e.txn_end_timestamps_nanos[t]-e.txn_load_end_timestamps_nanos[t]),n.postExecute+=Number(i-e.txn_end_timestamps_nanos[t]),n}function O9(e){return Object.values(e).reduce((t,n)=>t+n,0)}function Vtt(){var c;const e=Me(Vr),t=(c=hc(e).response)==null?void 0:c.transactions,n=x.useMemo(()=>{if(!t)return;const f={...N9},h={...N9},I={...N9};for(let B=0;B{if(!t)return;const{vote:A,nonVote:l,bundle:c}={vote:{count:0,total:0,min:1/0,max:-1/0},nonVote:{count:0,total:0,min:1/0,max:-1/0},bundle:{count:0,total:0,min:1/0,max:-1/0}};for(let f=0;f{var D;const f=(D=t==null?void 0:t.response)==null?void 0:D.transactions;if(!f)return;const{tips:h,fees:I}=f.txn_transaction_fee.reduce((S,R,F)=>(S.fees+=Number(GQ(f,F)),S.tips+=Number(HQ(f,F)),S),{tips:0,fees:0}),B=h+I,v=h*.06;return{tips:h,fees:I,jito:v,income:B,maxValue:B>L9?B+v:L9}},[t]);if(!n)return;const{tips:r,fees:i,income:A,jito:l,maxValue:c}=n;return p.jsxs("div",{children:[p.jsx(Se,{style:{color:"var(--gray-12)"},children:"Fee Breakdown"}),p.jsxs(Gl,{columns:"repeat(3, auto)",gapX:"2",gapY:"1",children:[p.jsx(ent,{label:"Tips",value:r,total:c,color:B0}),p.jsx(tnt,{label:"Fees",value:i,total:c,color:Pg}),p.jsx(nnt,{tips:r,fees:i})]})]})}function ent({label:e,value:t,total:n,color:r}){const i=n>0?t/n*100:0,A=t*.06,l=n>0?A/n*100:0;return p.jsxs(p.Fragment,{children:[p.jsx(Se,{wrap:"nowrap",style:{color:"var(--gray-11)"},children:e}),p.jsx(Se,{wrap:"nowrap",style:{color:r},align:"right",children:`${jc(t??0n,Ki,{decimals:Ki,trailingZeroes:!0})} SOL`}),p.jsxs(Fe,{children:[p.jsxs("svg",{height:"8",width:`${i+l}%`,fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[p.jsx("rect",{height:"8",width:`${94.33962264150944}%`,opacity:.6,fill:r}),p.jsx("rect",{height:"8",x:`${94.33962264150944}%`,width:`${5.660377358490567}%`,opacity:.6,fill:"#FFC53D"})]}),p.jsx(Se,{wrap:"nowrap",style:{color:"var(--gray-11)",marginLeft:"4px"},children:"Commission\xA0"}),p.jsxs(Se,{wrap:"nowrap",style:{color:"#FFC53D"},children:["-",`${jc(A??0n,Ki,{decimals:Ki,trailingZeroes:!0})} SOL`]})]})]})}function tnt({label:e,value:t,total:n,color:r}){const i=n>0?t/n*100:0;return p.jsxs(p.Fragment,{children:[p.jsx(Se,{wrap:"nowrap",style:{color:"var(--gray-11)"},children:e}),p.jsx(Se,{wrap:"nowrap",style:{color:r},align:"right",children:`${jc(t??0n,Ki,{decimals:Ki,trailingZeroes:!0})} SOL`}),p.jsx("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:p.jsx("rect",{height:"8",width:`${i}%`,opacity:.6,fill:r})})]})}function nnt({tips:e,fees:t}){const n=e+t,r=Math.max(L9,n),i=n/r*100,A=e/r*100,l=t/r*100;return p.jsxs(p.Fragment,{children:[p.jsx(Se,{wrap:"nowrap",style:{color:"var(--gray-11)"},children:"Income"}),p.jsx(Se,{wrap:"nowrap",style:{color:lu},align:"right",children:`${jc(n,Ki,{decimals:Ki,trailingZeroes:!0})} SOL`}),p.jsxs("svg",{height:"10",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[p.jsx("rect",{height:"100%",width:`${A}%`,opacity:.6,fill:B0}),p.jsx("rect",{height:"100%",x:`${A}%`,width:`${l}%`,opacity:.6,fill:Pg}),p.jsx("rect",{height:"100%",x:`${A}%`,width:1,opacity:.6,fill:"black"}),p.jsx("rect",{height:"9",width:`${i}%`,x:.5,y:.5,opacity:1,stroke:lu,strokeWidth:1})]})]})}const ice=["#003362","#113B29","#3F2700","#202248","#33255B"],P9=5e3;function c4({data:e,showPct:t,sort:n}){const r=e.reduce((l,{value:c})=>l+c,0);let i=n?e.toSorted((l,c)=>c.value-l.value):e,A=0;if(i.length>P9){for(let l=P9;lp.jsx(Fe,{width:`${c}px`,height:`${l}px`,children:i.map(({value:f,label:h},I)=>{const B=ice[I%ice.length],v=f/r,D=v*c>30;return p.jsx("div",{style:{background:B,minWidth:0,overflow:"hidden",display:"flex",alignItems:"center",justifyContent:"center",flexGrow:f,flexBasis:0},children:D&&p.jsxs(Se,{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",margin:"0 8px",minWidth:0,display:"block",color:"var(--gray-11)",pointerEvents:"none"},children:[h,t&&` ${Math.round(v*100)}%`]})},h)})})})})}function rnt({transactions:e}){const t=x.useMemo(()=>{const n=e.txn_signature.map((r,i)=>({value:Number(y0(e,i)),label:r}));return Object.values(sr.groupBy(n,({label:r})=>r)).map(r=>({label:r[0].label,value:sr.sum(r.map(({value:i})=>i))}))},[e]);return p.jsxs(Fe,{direction:"column",children:[p.jsx(Se,{style:{color:"var(--gray-12)"},children:"Income Distribution by Txn"}),p.jsx(c4,{data:t,sort:!0})]})}function ont({transactions:e}){const t=x.useMemo(()=>{const n=e.txn_source_ipv4.map((r,i)=>({value:Number(y0(e,i)),label:r}));return Object.values(sr.groupBy(n,({label:r})=>r)).map(r=>({label:r[0].label,value:sr.sum(r.map(({value:i})=>i))}))},[e]);return p.jsxs(Fe,{direction:"column",children:[p.jsx(Se,{style:{color:"var(--gray-12)"},children:"Income Distribution by IP Address"}),p.jsx(c4,{data:t,sort:!0})]})}function int({transactions:e}){const t=x.useMemo(()=>{const n=e.txn_from_bundle.map((r,i)=>({value:Number(y0(e,i)),label:r?"Bundle":"Other"}));return Object.values(sr.groupBy(n,({label:r})=>r)).map(r=>({label:r[0].label,value:sr.sum(r.map(({value:i})=>i))})).sort((r,i)=>r.label==="Bundle"?-1:1)},[e]);return p.jsxs(Fe,{direction:"column",children:[p.jsx(Se,{style:{color:"var(--gray-12)"},children:"Income Distribution by Bundle"}),p.jsx(c4,{data:t,showPct:!0})]})}function Ant(e,t=[1,10]){const n=e,r=n.length;if(r===0)return{n:0,total:0,cumulative:{},disjoint:{},thresholds:[]};n.sort((R,F)=>F-R);const i=new Array(r+1);i[0]=0;for(let R=0;RMath.max(0,Math.min(100,R))))).sort((R,F)=>R-F),c=R=>R<=0?0:R>=100?r:Math.min(r,Math.max(0,Math.ceil(R/100*r))),f={},h=[];for(const R of l){const F=c(R),N=i[F],M=A===0?0:N/A;f[`top${R}%`]=M,h.push({percentile:R,count:F})}const I=l.length?l[l.length-1]:0,B=c(I),v=A===0?0:(A-i[B])/A;f.rest=v;const D={},S=[0,...l,100];for(let R=1;RNumber(y0(e,r)),[]);return Ant(t)}function ant({transactions:e}){const t=x.useMemo(()=>{const n=snt(e);return Object.entries(n.disjoint).map(([r,i])=>({value:i,label:r}))},[e]);return p.jsxs(Fe,{direction:"column",children:[p.jsx(Se,{style:{color:"var(--gray-12)"},children:"Income Distribution by Percent Txns"}),p.jsx(c4,{data:t})]})}function lnt(){var n;const e=Me(Vr),t=(n=hc(e).response)==null?void 0:n.transactions;if(t)return p.jsxs(Fe,{direction:"column",gap:"2",children:[p.jsx(ant,{transactions:t}),p.jsx(int,{transactions:t}),p.jsx(rnt,{transactions:t}),p.jsx(ont,{transactions:t})]})}function u4(e,t){const n=parseInt(e.substring(1,3),16),r=parseInt(e.substring(3,5),16),i=parseInt(e.substring(5,7),16);return`rgba(${n}, ${r}, ${i}, ${t})`}function cnt(e,t,n){return e[t].map((r,i)=>({cu:r,i})).sort((r,i)=>r.cu-i.cu).reduce((r,{cu:i,i:A})=>{let l=Number(y0(e,A));return!l||!i||(r[0].push(i),r[1].push(l),r[2].push(Number(GQ(e,A))),r[3].push(Number(HQ(e,A))||null)),r},[[],[],[],[]])}let Ace=[940,2002500];const unt=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",maximumFractionDigits:0});function dnt({slotTransactions:e}){const[t,n]=x.useState("txn_compute_units_consumed"),[r,i]=x.useState("income"),A=x.useRef(e);A.current=e;const l=x.useMemo(()=>cnt(e,t),[t,e,r]),c=x.useMemo(()=>({width:0,height:0,scales:{[vc]:{time:!1,auto:!0,distr:3},[yl]:{time:!1,range:(f,h,I)=>(Ace=[h,I],[h,I]),distr:3}},axes:[{scale:vc,border:{show:!0,width:1/devicePixelRatio,stroke:Qo},stroke:Qo,values:(f,h)=>h.map(I=>I&&unt.format(I))},{scale:yl,stroke:Qo,border:{show:!0,width:1/devicePixelRatio,stroke:Qo},values:(f,h)=>[],size(f,h,I,B){var R,F;const v=f.axes[I];if(B>1)return v._size;let D=((R=v.ticks)==null?void 0:R.size)??0+(v.gap??0);D+=5;const S=(h??[]).reduce((N,M)=>M.length>N.length?M:N,"");return S!==""&&(f.ctx.font=((F=v.font)==null?void 0:F[0])??"Inter Tight",D+=f.ctx.measureText(S).width/devicePixelRatio),Math.ceil(D)}}],series:[{scale:vc},{scale:yl,stroke:void 0,points:{show:r==="income",size:5,fill:u4(lu,.3),space:0}},{scale:yl,stroke:void 0,points:{show:r==="fees",size:5,fill:u4(lu,.3),space:0}},{scale:yl,stroke:void 0,points:{show:r==="tips",size:5,fill:u4(lu,.3),space:0}}],legend:{show:!1}}),[r]);return p.jsx(Fe,{direction:"column",style:{height:"100%"},gap:"1",flexGrow:"1",children:p.jsx("div",{style:{flex:1},children:p.jsx(hs,{children:({height:f,width:h})=>(c.width=h,c.height=f,p.jsx(p.Fragment,{children:p.jsx(_0,{id:"cuIncome",options:c,data:l})}))})})})}function fnt(e,t,n){return e<=0?.5*(e-t)/-t:.5+.5*(e/n)}function gnt(e,t,n){return e<=.5?t+e/.5*-t:(e-.5)/.5*n}function hnt(e){const t=e.txn_arrival_timestamps_nanos.toSorted((i,A)=>Number(i-A)).reduce((i,A,l)=>{const c=Number(A-e.start_timestamp_nanos)/1e6,f=Number(y0(e,l));return f&&(i[0].push(c),i[1].push(f)),i},[[],[]]),n=t[0][0],r=t[0][t[0].length-1];return t[0]=t[0].map(i=>fnt(i,n,r)),{min:n,max:r,chartData:t}}const U9="arrivalTs";function pnt({slotTransactions:e}){const t=x.useRef(e);t.current=e;const{min:n,max:r,chartData:i}=x.useMemo(()=>hnt(e),[e]),A=x.useMemo(()=>({width:0,height:0,scales:{[U9]:{time:!1,auto:!0},[yl]:{time:!1,range:(l,c,f)=>Ace,distr:3}},axes:[{scale:U9,border:{show:!0,width:1/devicePixelRatio,stroke:Qo},stroke:Qo,values:(l,c)=>c.map(f=>{const h=gnt(f,n,r);return Math.round(h).toLocaleString()})},{scale:yl,stroke:Qo,border:{show:!0,width:1/devicePixelRatio,stroke:Qo},values:(l,c)=>[],size(l,c,f,h){var D,S;const I=l.axes[f];if(h>1)return I._size;let B=((D=I.ticks)==null?void 0:D.size)??0+(I.gap??0);B+=5;const v=(c??[]).reduce((R,F)=>F.length>R.length?F:R,"");return v!==""&&(l.ctx.font=((S=I.font)==null?void 0:S[0])??"Inter Tight",B+=l.ctx.measureText(v).width/devicePixelRatio),Math.ceil(B)+10}}],series:[{scale:U9},{scale:yl,stroke:void 0,points:{size:5,fill:u4(lu,.3),space:0}}],legend:{show:!1}}),[r,n]);return p.jsx(Fe,{direction:"column",style:{height:"100%"},gap:"1",flexGrow:"1",children:p.jsx("div",{style:{flex:1},children:p.jsx(hs,{children:({height:l,width:c})=>(A.width=c,A.height=l,p.jsx(p.Fragment,{children:p.jsx(_0,{id:"arrivalIncome",options:A,data:i})}))})})})}function mnt(){var n;const e=Me(Vr),t=hc(e);return(n=t.response)!=null&&n.transactions?p.jsxs(Fe,{flexGrow:"1",children:[p.jsxs(Fe,{direction:"column",style:{minHeight:"100px",minWidth:"100px",flex:1},children:[p.jsx(Se,{children:"CUs Consumed vs Income"}),p.jsx(dnt,{slotTransactions:t.response.transactions})]}),p.jsxs(Fe,{direction:"column",style:{minHeight:"100px",minWidth:"100px",flex:1},children:[p.jsx(Se,{children:"Arrival Time vs Income"}),p.jsx(pnt,{slotTransactions:t.response.transactions})]})]}):null}function Int(){return p.jsx(R9,{title:"Fees",children:p.jsxs(Fe,{direction:"column",gap:"3",height:"100%",children:[p.jsx($tt,{}),p.jsx(lnt,{}),p.jsx(mnt,{})]})})}function Cnt(){var l;const e=Me(Vr),t=(l=hc(e).response)==null?void 0:l.transactions,[n,r]=x.useState(!0),[i,A]=x.useState("log");if(t)return p.jsxs(Fe,{direction:"column",flexGrow:"1",children:[p.jsx(Se,{style:{color:"var(--gray-12)"},children:"Count vs Txn Execution Duration"}),p.jsx(Ent,{transactions:t,landed:n,scale:i})]})}const KE=20;let G9=0;const sce=(e,t,n)=>t.map((r,i)=>{const A=r/KE*G9,l=na(A);return`${l.value} ${l.unit}`}),ace=((h0e=(P4=Kr.paths)==null?void 0:P4.bars)==null?void 0:h0e.call(P4,{size:[.8]}))??(()=>({stroke:new Path2D,fill:new Path2D}));function Ent({transactions:e,landed:t}){const n=x.useMemo(()=>{let l=e.txn_landed.map((h,I)=>t&&!h?0:Number(e.txn_mb_end_timestamps_nanos[I]-e.txn_mb_start_timestamps_nanos[I])).filter(h=>h);const c=Math.max(...l)+1;G9=c;let f=new Array(KE).fill(0);for(const h of l){const I=Math.trunc(h/c*KE);f[I]++}return f=f.map(h=>Math.log(h+1)),[f.map((h,I)=>I),f]},[t,e]),r=x.useMemo(()=>{let l=e.txn_landed.map((I,B)=>{if(!(t&&!I))return{duration:Number(e.txn_mb_end_timestamps_nanos[B]-e.txn_mb_start_timestamps_nanos[B]),cu:e.txn_compute_units_consumed[B]}}).filter(PQ);const c=Math.max(...l.map(({duration:I})=>I))+1;G9=c;let f=new Array(KE).fill(0).map(I=>({count:0,cus:0}));for(const{duration:I,cu:B}of l){const v=Math.trunc(I/c*KE);f[v].count++,f[v].cus+=B}let h=f.map(({count:I,cus:B})=>I?B/I:0);return[h.map((I,B)=>B),h]},[t,e]),i=x.useMemo(()=>({width:0,height:0,scales:{duration:{time:!1},y:{auto:!0}},series:[{scale:"duration"},{label:"Count",points:{show:!1},fill:"#3C2E69",paths:ace}],axes:[{scale:"duration",splits:[0,n[0].length],values:sce,label:"Txn Execution Duration",stroke:"gray",grid:{show:!1}},{stroke:"gray",values:(l,c)=>c.map(f=>Math.trunc(Math.exp(f))),size(l,c,f,h){var D,S;const I=l.axes[f];if(h>1)return I._size;let B=((D=I.ticks)==null?void 0:D.size)??0+(I.gap??0);B+=5;const v=(c??[]).reduce((R,F)=>`${F}`.length>R.length?`${F}`:R,"");return v!==""&&(l.ctx.font=((S=I.font)==null?void 0:S[0])??"Inter Tight",B+=l.ctx.measureText(v).width/devicePixelRatio),Math.ceil(B)}}],legend:{show:!1}}),[n]),A=x.useMemo(()=>({width:0,height:0,scales:{duration:{time:!1},y:{auto:!0}},series:[{scale:"duration"},{label:"Count",points:{show:!1},fill:"#3C2E69",paths:ace}],axes:[{scale:"duration",splits:[0,r[0].length],values:sce,label:"Txn Execution Duration",stroke:"gray",grid:{show:!1}},{stroke:"gray",size(l,c,f,h){var D,S;const I=l.axes[f];if(h>1)return I._size;let B=((D=I.ticks)==null?void 0:D.size)??0+(I.gap??0);B+=5;const v=(c??[]).reduce((R,F)=>F.length>R.length?F:R,"");return v!==""&&(l.ctx.font=((S=I.font)==null?void 0:S[0])??"Inter Tight",B+=l.ctx.measureText(v).width/devicePixelRatio),Math.ceil(B)}}],legend:{show:!1}}),[r]);return p.jsxs(p.Fragment,{children:[p.jsx("div",{style:{flex:1,paddingRight:"4px"},children:p.jsx(hs,{children:({height:l,width:c})=>(i.width=c,i.height=l,p.jsx(p.Fragment,{children:p.jsx(_0,{id:"txnExecutionDurationCount",options:i,data:n})}))})}),p.jsx(Se,{style:{color:"var(--gray-12)"},children:"CUs vs Txn Execution Duration"}),p.jsx("div",{style:{flex:1,paddingRight:"4px"},children:p.jsx(hs,{children:({height:l,width:c})=>(A.width=c,A.height=l,p.jsx(p.Fragment,{children:p.jsx(_0,{id:"txnExecutionDurationCus",options:A,data:r})}))})})]})}function Bnt(){const e=Me(Jg),t=Me(Vr),n=Me(eA),r=x.useMemo(()=>{if(t===void 0||!n)return;const A=es(t),l=n.indexOf(A)-1;if(!(l<0))return n[l]+vo-1},[n,t]);if(t===void 0)return;const i=r?Nr.fromMillis(e*(t-r)).rescale():void 0;return p.jsxs(p.Fragment,{children:[p.jsxs(Fe,{direction:"column",gap:"1",children:[p.jsx(Se,{style:{color:"var(--gray-12)"},children:"Scheduler"}),p.jsxs(Fe,{gap:"2",children:[p.jsx(Se,{style:{color:"var(--gray-10)"},children:"Time Since Last Leader Group"}),p.jsx(Se,{style:{color:"var(--gray-11)"},children:Ug(i)})]})]}),p.jsx(vnt,{})]})}const ynt=["success","fail_taken","fail_fast_path","fail_byte_limit","fail_write_cost","fail_slow_path","fail_defer_skip"];function vnt(){var f,h,I;const e=Me(Vr),t=(f=k0(e).response)==null?void 0:f.scheduler_stats;if(!t)return;const{slot_schedule_counts:n,end_slot_schedule_counts:r,pending_smallest_bytes:i,pending_smallest_cost:A,pending_vote_smallest_bytes:l,pending_vote_smallest_cost:c}=t;return p.jsxs(Fe,{direction:"column",gap:"3",children:[p.jsxs(Fe,{direction:"column",gap:"1",children:[p.jsx(Se,{children:"Txn Schedule Outcomes"}),p.jsxs(LB,{size:"1",variant:"ghost",children:[p.jsx(OB,{children:p.jsxs(Jf,{children:[p.jsx(cd,{children:"Outcome"}),p.jsx(cd,{align:"right",children:"Txn Count"}),p.jsx(cd,{align:"right",children:"Txn Count (end)"})]})}),p.jsx(FB,{children:n.map((B,v)=>p.jsxs(Jf,{children:[p.jsx(Pl,{children:p.jsx(Se,{style:{color:"var(--gray-12)"},children:ynt[v]})}),p.jsx(Pl,{align:"right",children:p.jsx(Se,{style:{color:"var(--gray-12)"},children:B.toLocaleString()})}),p.jsx(Pl,{align:"right",children:p.jsx(Se,{style:{color:"var(--gray-12)"},children:r[v].toLocaleString()})})]},v))})]})]}),p.jsxs(Fe,{direction:"column",gap:"1",children:[p.jsx(Se,{style:{color:"var(--gray-12)"}}),p.jsxs(LB,{size:"1",variant:"ghost",children:[p.jsx(OB,{children:p.jsxs(Jf,{children:[p.jsx(cd,{children:"Smallest pending txn"}),p.jsx(cd,{align:"right",children:"Cu Cost"}),p.jsx(cd,{align:"right",children:"Size"})]})}),p.jsxs(FB,{children:[p.jsxs(Jf,{children:[p.jsx(Pl,{children:p.jsx(Se,{children:"Non-vote"})}),p.jsx(Pl,{align:"right",children:p.jsx(Se,{children:(A==null?void 0:A.toLocaleString())??0})}),p.jsx(Pl,{align:"right",children:p.jsx(Se,{children:i!=null?(h=Ul(i))==null?void 0:h.toString():0})})]}),p.jsxs(Jf,{children:[p.jsx(Pl,{children:p.jsx(Se,{children:"Vote"})}),p.jsx(Pl,{align:"right",children:p.jsx(Se,{children:(c==null?void 0:c.toLocaleString())??0})}),p.jsx(Pl,{align:"right",children:p.jsx(Se,{children:l!=null?(I=Ul(l))==null?void 0:I.toString():0})})]})]})]})]})]})}function bnt(){var f;const e=Me(JK),t=Me(Vr),n=!t,r=Me(Qp),i=Me(mC),A=e==null?void 0:e.reduce((h,I,B)=>{var S;const v=r==null?void 0:r[B];if(!v)return h;const D=CS.safeParse(v.kind);return D.error||(h[S=D.data]??(h[S]=[]),h[D.data].push(I)),h},{}),l=k0(t),c=x.useMemo(()=>{var h,I;if(!(!((I=(h=l.response)==null?void 0:h.tile_timers)!=null&&I.length)||n||!r))return l.response.tile_timers.reduce((B,v)=>{var S;if(!v.tile_timers.length)return B;const D={};v.tile_timers.length!==r.length&&console.warn("Length mismatch between tiles and time timers",v.tile_timers,r);for(let R=0;R{var B;const h=(B=t==null?void 0:t.transactions)==null?void 0:B.start_timestamp_nanos;if(!i||!h)return;const I=[[],[],[],[],[]];for(let v=0;v({width:0,height:0,drawOrder:["axes","series"],cursor:{},scales:{xx:{time:!1},txns:{}},axes:[{scale:"xx",border:{show:!0,width:1/devicePixelRatio},stroke:Qo,grid:{width:1/devicePixelRatio},ticks:{width:1/devicePixelRatio,stroke:Qo,size:5},size:30,values:(h,I)=>I.map(B=>B/1e6+"ms"),space:100},{scale:"txns",border:{show:!0,width:1/devicePixelRatio,stroke:Qo},stroke:Qo,grid:{width:1/devicePixelRatio},ticks:{width:1/devicePixelRatio,stroke:Qo,size:5},space:50,size(h,I,B,v){var F,N;const D=h.axes[B];if(v>1)return D._size;let S=((F=D.ticks)==null?void 0:F.size)??0+(D.gap??0);S+=5;const R=(I??[]).reduce((M,P)=>P.length>M.length?P:M,"");return R!==""&&(h.ctx.font=((N=D.font)==null?void 0:N[0])??"Inter Tight",S+=h.ctx.measureText(R).width/devicePixelRatio),Math.ceil(S)}}],series:[{scale:"xx"},{label:"Regular",stroke:su,points:{show:!1},width:2/devicePixelRatio,scale:"txns"},{label:"Votes",stroke:au,points:{show:!1},width:2/devicePixelRatio,scale:"txns"},{label:"Conflicting",stroke:fC,points:{show:!1},width:2/devicePixelRatio,scale:"txns"},{label:"Bundles",stroke:B0,points:{show:!1},width:2/devicePixelRatio,scale:"txns"}],legend:{show:!1},plugins:[XF(),t9({factor:.75}),Qnt(r),r9()]}),[]);if(!A)return;const c=n!==void 0?i==null?void 0:i[n]:void 0;return p.jsxs(p.Fragment,{children:[p.jsx(Se,{style:{color:"var(--gray-12)"},children:"Pack Txns"}),p.jsx("div",{style:{height:"100%",minHeight:"200px",minWidth:"300px"},children:p.jsx(hs,{children:({height:h,width:I})=>(l.width=I,l.height=h,p.jsx(p.Fragment,{children:p.jsx(_0,{id:"packBufferChart",options:l,data:A})}))})}),p.jsx(wnt,{data:c})]})}function _nt(){var n;const e=Me(Vr),t=(n=Il(e).publish)==null?void 0:n.duration_nanos;return p.jsxs(Fe,{direction:"column",children:[p.jsx(Se,{style:{color:"var(--gray-12)"},children:"Slot Duration"}),p.jsxs(Fe,{gap:"2",children:[p.jsx(Se,{style:{color:"var(--gray-10)"},children:"Actual"}),t!=null&&p.jsx(Se,{style:{color:"var(--gray-11)"},children:`${(t/1e6).toFixed(2)} ms`})]})]})}function knt(){return p.jsx(R9,{title:"Performance",children:p.jsxs(Fe,{gap:"2",children:[p.jsxs(Fe,{direction:"column",gap:"3",children:[p.jsx(Bnt,{}),p.jsx(xnt,{})]}),p.jsxs(Fe,{direction:"column",gap:"3",flexGrow:"1",children:[p.jsx(_nt,{}),p.jsx(Cnt,{}),p.jsx(bnt,{})]})]})})}function Dnt(){return p.jsx(bu,{children:p.jsxs(Fe,{gap:"6",wrap:"wrap",justify:"between",children:[p.jsxs(Fe,{gap:"3",direction:"column",flexBasis:"0",children:[p.jsx(Snt,{}),p.jsx(Ztt,{})]}),p.jsx(Int,{}),p.jsx(knt,{})]})})}function Snt(){var i;const e=Me(Vr),{peer:t,isLeader:n,name:r}=pc(e??0);if(e!==void 0)return p.jsxs(Fe,{gap:"3",wrap:"wrap",align:"center",justify:"start",children:[p.jsx(fu,{url:(i=t==null?void 0:t.info)==null?void 0:i.icon_url,size:22,isYou:n}),p.jsx(Se,{style:{fontSize:"18px",fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r}),p.jsx(Fe,{gap:"1",children:p.jsx(jM,{slot:e,size:"large"})})]})}function Rnt(){const e=Me(Vr);return p.jsxs(p.Fragment,{children:[p.jsx(Tnt,{}),e===void 0?p.jsx(utt,{}):p.jsx(Mnt,{})]})}function Tnt(){const{selectedSlot:e}=w9(),t=Me(vi),n=It(pC);return x.useEffect(()=>{n(e,t)},[e,n,t]),zC(()=>{n(void 0)}),null}function Mnt(){if(Me(Vr)!==void 0)return p.jsxs(Fe,{direction:"column",gap:"2",flexGrow:"1",children:[p.jsx(Gtt,{}),p.jsx(Dnt,{}),p.jsx(Rae,{}),p.jsx(LZe,{}),p.jsx(Zet,{})]})}const Nnt=ir({slot:vN(ze().optional(),void 0)}),H9=bg("/slotDetails")({validateSearch:joe(Nnt),component:Rnt}),Fnt="_card_ybszl_1",Ont="_name-text_ybszl_8",jnt="_pubkey-text_ybszl_14",Lnt="_narrow-screen_ybszl_21",Pnt="_two-away_ybszl_27",Unt="_one-away_ybszl_33",Gnt="_time-till_ybszl_38",xu={card:Fnt,nameText:Ont,pubkeyText:jnt,narrowScreen:Lnt,twoAway:Pnt,oneAway:Unt,timeTill:Gnt},Hnt="_my-slots_1cv8h_1",Ynt="_scroll_1cv8h_9",f4={mySlots:Hnt,scroll:Ynt};function Jnt({slot:e}){var h,I;const t=Me(dl),{pubkey:n,peer:r,isLeader:i,name:A}=pc(e),l=t!==void 0&&e===t+vo,c=t!==void 0&&e===t+vo*2,f=ts("(min-width: 1250px)");return p.jsx("div",{className:An(xu.card,{[xu.oneAway]:l,[xu.twoAway]:c,[f4.mySlots]:i}),children:f?p.jsx(znt,{iconUrl:(h=r==null?void 0:r.info)==null?void 0:h.icon_url,isLeader:i,name:A,pubkey:n,slot:e}):p.jsx(Wnt,{iconUrl:(I=r==null?void 0:r.info)==null?void 0:I.icon_url,isLeader:i,name:A,pubkey:n,slot:e})})}function znt({iconUrl:e,isLeader:t,name:n,pubkey:r,slot:i}){return p.jsxs(Fe,{gap:"2",align:"center",children:[p.jsxs(Fe,{gap:"2",minWidth:"300px",width:"505px",align:"center",pr:"20px",children:[p.jsx(fu,{url:e,size:24,isYou:t}),p.jsx(Se,{className:xu.nameText,children:n})]}),p.jsx(Se,{className:xu.pubkeyText,children:r}),p.jsx(Fe,{justify:"center",minWidth:"190px",children:p.jsx(Se,{children:i})}),p.jsx(lce,{slot:i})]})}function Wnt({iconUrl:e,isLeader:t,name:n,pubkey:r,slot:i}){return p.jsxs(Fe,{direction:"column",children:[p.jsxs(Fe,{gap:"2",align:"center",children:[p.jsx(fu,{url:e,size:16,isYou:t}),p.jsx(Se,{className:xu.nameText,children:n}),p.jsx(Bo,{flexGrow:"1"}),p.jsx(Se,{className:An(xu.pubkeyText,xu.narrowScreen),children:r})]}),p.jsxs(Fe,{justify:"between",children:[p.jsx(Se,{children:i}),p.jsx(lce,{slot:i,isNarrowScreen:!0})]})]})}function lce({slot:e,isNarrowScreen:t}){const n=Me($i),r=Me(Jg),i=n?Nr.fromMillis(r*(e-n)).rescale():void 0,[A,l]=x.useReducer(qnt,cce(i)),[c,f]=x.useReducer(Xnt,Ug(i));return vk(()=>{f(i),l(i)},1e3),p.jsxs(Se,{className:An(xu.timeTill,{[xu.narrowScreen]:t}),children:[A," (",c,")"]})}function qnt(e,t){return cce(t)}function Xnt(e,t){return Ug(t)}function cce(e){var t;return e?(t=gC.plus(e))==null?void 0:t.toLocaleString(Gn.DATETIME_MED_WITH_SECONDS):""}const Vnt="_card_1pr66_1",Knt="_skipped_1pr66_7",uce={card:Vnt,skipped:Knt},Znt="_grid_1sc0d_1",$nt="_header-text_1sc0d_19",ert="_slot-header-text_1sc0d_25",trt="_votes-header_1sc0d_30",nrt="_non-votes-header_1sc0d_33",rrt="_fees-header_1sc0d_36",ort="_tips-header_1sc0d_39",irt="_compute-units-header_1sc0d_42",Art="_compute-units-pct_1sc0d_47",srt="_slot-text_1sc0d_52",art="_row-text_1sc0d_75",lrt="_active_1sc0d_81",crt="_narrow-screen_1sc0d_86",Ii={grid:Znt,headerText:$nt,slotHeaderText:ert,votesHeader:trt,nonVotesHeader:nrt,feesHeader:rrt,tipsHeader:ort,computeUnitsHeader:irt,computeUnitsPct:Art,slotText:srt,rowText:art,active:lrt,narrowScreen:crt},[urt,drt,frt,grt]=function(){const e=sl({}),t=$e(0);return[$e(null,(n,r,i,A)=>{const l=n(t);l&&A(l),r(e,c=>{c[i]=A})}),$e(null,(n,r,i)=>{r(e,A=>{delete A[i]})}),$e(null,(n,r,i,A)=>{for(const[l,c]of Object.entries(n(e)))Number(l)!==i&&c(A);r(t,A)}),$e(null,(n,r)=>{r(e,{}),r(t,0)})]}();function g4({slot:e,currentSlot:t}){const n=x.useRef(null),r=It(urt),i=It(drt),A=It(frt);return x.useEffect(()=>(r(e,l=>{var c;(c=n.current)==null||c.scrollTo(l,0)}),()=>i(e)),[i,r,e]),p.jsxs(Fe,{minWidth:"0",flexGrow:"1",children:[p.jsx(hrt,{slot:e,currentSlot:t}),p.jsxs("div",{className:Ii.grid,ref:n,onScroll:l=>{A(e,l.currentTarget.scrollLeft)},children:[p.jsx(Se,{className:An(Ii.headerText,Ii.votesHeader),align:"right",children:"Votes"}),p.jsx(Se,{className:An(Ii.headerText,Ii.nonVotesHeader),align:"right",children:"Non-votes"}),p.jsx(Se,{className:An(Ii.headerText,Ii.feesHeader),align:"right",children:"Fees"}),p.jsx(Se,{className:An(Ii.headerText,Ii.tipsHeader),align:"right",children:"Tips"}),p.jsx(Se,{className:An(Ii.headerText,Ii.durationHeader),align:"right",children:"Duration"}),p.jsx(Se,{className:An(Ii.headerText,Ii.computeUnitsHeader),align:"right",children:"Compute\xA0Units"}),new Array(4).fill(0).map((l,c)=>{const f=e+3-c;return p.jsx(Irt,{slot:f,active:f===t},f)})]})]})}function hrt({slot:e,currentSlot:t}){const n=ts("(min-width: 700px)");return p.jsxs(Fe,{direction:"column",gap:"1px",children:[p.jsx(Se,{className:An(Ii.headerText,Ii.slotHeaderText),children:n?"Slot":"\xA0"}),new Array(4).fill(0).map((r,i)=>{const A=e+3-i,l=A===t;return p.jsx(mrt,{slot:A,isCurrent:l,isWideScreen:n},A)})]})}function prt({slot:e,isLeader:t}){return t?p.jsx("div",{className:Ii.slotText,children:p.jsx(vg,{to:"/slotDetails",search:{slot:e},children:p.jsx(Se,{children:e})})}):p.jsx(Se,{className:Ii.slotText,children:e})}function mrt({slot:e,isCurrent:t,isWideScreen:n}){var l;const r=Il(e),i=OM(e),A=Me(wg)===i;return p.jsxs(Fe,{className:An(Ii.rowText,{[Ii.active]:t,[Ii.narrowScreen]:!n}),align:"center",gap:n?"2":"0",children:[n?p.jsx(prt,{slot:e,isLeader:A}):p.jsx(Se,{className:Ii.slotText,children:"\xA0"}),p.jsx($le,{slot:e,isCurrent:t,size:"small"}),(l=r.publish)!=null&&l.skipped?p.jsx(tce,{size:"small"}):p.jsx(ece,{size:"small"})]})}function dce(e){const t=Jp(e.success_vote_transaction_cnt??0),n=Jp(e.success_nonvote_transaction_cnt??0),r=Jp(e.failed_vote_transaction_cnt??0),i=Jp(e.failed_nonvote_transaction_cnt??0),A=jc((e.transaction_fee??0n)+(e.priority_fee??0n),Ki,{decimals:Ki,trailingZeroes:!0}),l=e.transaction_fee!=null?(Number(e.transaction_fee)/ga).toString():"0",c=e.priority_fee!=null?(Number(e.priority_fee)/ga).toString():"0",f=jc(e.tips??0n,Ki,{decimals:Ki,trailingZeroes:!0}),h=e.tips!=null?(Number(e.tips)/ga).toString():"0",I=e.duration_nanos!==null?`${Math.trunc(e.duration_nanos/1e6)} ms`:"-",B=Jp((e==null?void 0:e.compute_units)??0),v=e.compute_units!=null?e.compute_units/(e.max_compute_units??eQ)*100:0;return{voteTxns:(t+r).toLocaleString(),nonVoteTxns:(n+i).toLocaleString(),totalFees:A,transactionFeeFull:l,priorityFeeFull:c,tips:f,tipsFull:h,durationText:I,computeUnits:B,computeUnitsPct:v}}function Irt({slot:e,active:t}){const n=Me(v0),r=Me($i),i=Il(e),[A,l]=x.useState(()=>{if(i.publish)return dce(i.publish)});x.useEffect(()=>{i.publish&&l(dce(i.publish))},[i.publish,e]);const c=e>(r??1/0),f=e===r,h=x.useRef(),[I,B]=x.useState(!1);_ee(f)&&!f&&!I&&(clearTimeout(h.current),h.current=setTimeout(()=>{B(!1)},50),B(!0)),zC(()=>{clearTimeout(h.current)});const v=e<(n??0),D=(R,F)=>c||f||v?"-":!A&&!i.hasWaitedForData&&!I?"Loading...":A?(typeof R=="number"&&(R=Math.round(R)),`${R}`):"-",S=An(Ii.rowText,{[Ii.active]:t});return p.jsxs(p.Fragment,{children:[p.jsx(Se,{className:S,align:"right",children:D(A==null?void 0:A.voteTxns)}),p.jsx(Se,{className:S,align:"right",children:D(A==null?void 0:A.nonVoteTxns)}),p.jsx(Zo,{content:p.jsxs(Gl,{columns:"auto auto",rows:"2",gapX:"3",children:[p.jsx(Se,{children:"Transaction"}),p.jsx(Se,{children:"Priority"}),p.jsxs(Se,{children:[A==null?void 0:A.transactionFeeFull," SOL"]}),p.jsxs(Se,{children:[A==null?void 0:A.priorityFeeFull," SOL"]})]}),children:p.jsx(Se,{className:S,align:"right",children:D(A==null?void 0:A.totalFees)})}),p.jsx(Zo,{content:`${A==null?void 0:A.tipsFull} SOL`,children:p.jsx(Se,{className:S,align:"right",children:D(A==null?void 0:A.tips)})}),p.jsx(Se,{className:S,align:"right",children:D(A==null?void 0:A.durationText)}),(A==null?void 0:A.computeUnits)!==void 0?p.jsx(Se,{className:S,align:"right",style:{padding:0},children:p.jsxs(p.Fragment,{children:[D(A==null?void 0:A.computeUnits.toLocaleString()),p.jsx("span",{className:Ii.computeUnitsPct,children:(A==null?void 0:A.computeUnitsPct)!==void 0?`${eC}(${D(A==null?void 0:A.computeUnitsPct)}%)`:null})]})}):p.jsx(Se,{className:S,align:"right",children:D()})]})}const Crt="_summary-container_1mtzn_8",Ert="_name_1mtzn_13",Brt="_mobile_1mtzn_23",yrt="_text_1mtzn_28",vrt="_primary-text_1mtzn_33",brt="_secondary-text_1mtzn_43",Qrt="_divider_1mtzn_52",wrt="_fd-text_1mtzn_56",xrt="_agave-text_1mtzn_60",_rt="_container-mobile_1mtzn_64",ss={summaryContainer:Crt,name:Ert,mobile:Brt,text:yrt,primaryText:vrt,secondaryText:brt,divider:Qrt,fdText:wrt,agaveText:xrt,containerMobile:_rt};function krt({children:e}){const[t,n]=x.useState(!1);return p.jsx(Doe,{content:e,isOpen:t,onOpenChange:n,children:p.jsx(nl,{variant:"ghost",size:"1",children:t?p.jsx(bk,{}):p.jsx(Ek,{})})})}function fce({slot:e,showTime:t}){var l;const{pubkey:n,peer:r,isLeader:i,name:A}=pc(e);return p.jsxs(Fe,{gap:"1",className:ss.summaryContainer,children:[p.jsx(fu,{url:(l=r==null?void 0:r.info)==null?void 0:l.icon_url,size:40,isYou:i}),p.jsxs(Fe,{direction:"column",gap:"1",align:"start",minWidth:"0",style:{marginLeft:"6px"},children:[p.jsx(Se,{className:ss.name,children:A}),p.jsx(Se,{className:ss.primaryText,children:n}),p.jsx(Y9,{peer:r}),t&&p.jsx(J9,{slot:e})]})]})}function gce({slot:e,showTime:t}){var f,h;const{pubkey:n,peer:r,isLeader:i,name:A}=pc(e),l=ts("(min-width: 700px)"),c=x.useMemo(()=>A!=="Private"||l?A:n?`${n.substring(0,8)}...`:"Private",[A,l,n]);return p.jsxs(Fe,{direction:"column",className:ss.containerMobile,gap:"1",children:[p.jsx(Fe,{gap:"1",children:l?p.jsxs(p.Fragment,{children:[p.jsx(fu,{url:(f=r==null?void 0:r.info)==null?void 0:f.icon_url,size:16,isYou:i}),p.jsx(Se,{className:An(ss.name,ss.mobile),children:c}),p.jsx(Bo,{flexGrow:"1"}),p.jsx(Se,{className:ss.primaryText,children:n})]}):p.jsxs(p.Fragment,{children:[p.jsx(Se,{className:ss.text,children:e}),p.jsx(Bo,{flexGrow:"1"}),p.jsx(fu,{url:(h=r==null?void 0:r.info)==null?void 0:h.icon_url,size:16,isYou:i}),p.jsx(Se,{className:ss.text,children:c}),p.jsx(krt,{children:p.jsxs(Fe,{gap:"1",direction:"column",children:[p.jsx(Se,{className:ss.secondaryText,children:n}),p.jsx(Y9,{peer:r}),t&&p.jsx(J9,{slot:e})]})})]})}),l&&p.jsxs(Fe,{gap:"1",children:[p.jsx(Y9,{peer:r}),p.jsx(Bo,{flexGrow:"1"}),t&&p.jsx(J9,{slot:e})]})]})}function Drt(e,t,n){if(!e)return;const r=GK(e),i=t!==void 0||n!==void 0?Number(r)/Number((t??0n)+(n??0n))*100:void 0;return`${UQ(r)} ${i!==void 0?`(${r1(i,{significantDigits:4,trailingZeroes:!1})}%)`:""}`}function Y9({peer:e}){var B,v;const t=Me(E2),n=(B=e==null?void 0:e.gossip)!=null&&B.version?`${e.gossip.version[0]==="0"?"Frankendancer":"Agave"} v${e.gossip.version}`:void 0,r=Drt(e,t==null?void 0:t.activeStake,t==null?void 0:t.delinquentStake),i=y5(((v=e==null?void 0:e.gossip)==null?void 0:v.sockets.tvu)??"");if(![n,r,i].filter(PQ).join(" - "))return null;const A=n==null?void 0:n.startsWith("Frankendancer"),l=n&&!A,c=n||"Unknown",f=r??"",h=i||"Offline",I=(c+f+h).length>54?{style:{flexBasis:0}}:{wrap:"nowrap"};return p.jsxs(Fe,{gap:"1",className:ss.secondaryText,children:[p.jsx(Se,{className:An({[ss.fdText]:A,[ss.agaveText]:l}),...I,children:c}),p.jsx(Se,{className:ss.divider,children:"\u2022"}),p.jsx(Se,{...I,children:f}),p.jsx(Se,{className:ss.divider,children:"\u2022"}),p.jsx(Se,{children:h})]})}function J9({slot:e}){const{slotDateTime:t,timeAgoText:n}=Jle(e);return p.jsxs(Se,{className:ss.secondaryText,children:[t==null?void 0:t.toLocaleString(Gn.DATETIME_MED_WITH_SECONDS),n&&` (${n})`]})}function Srt({slot:e}){var f,h,I,B;const{isLeader:t}=pc(e),n=Il(e),r=Il(e+1),i=Il(e+2),A=Il(e+3),l=((f=n.publish)==null?void 0:f.skipped)||((h=r.publish)==null?void 0:h.skipped)||((I=i.publish)==null?void 0:I.skipped)||((B=A.publish)==null?void 0:B.skipped),c=ts("(min-width: 900px)");return p.jsx("div",{className:An(uce.card,{[f4.mySlots]:t,[uce.skipped]:l}),children:c?p.jsxs(Fe,{gap:"1",align:"start",justify:"between",children:[p.jsx(fce,{slot:e,showTime:!0}),p.jsx(g4,{slot:e})]}):p.jsxs(Fe,{direction:"column",gap:"1",children:[p.jsx(gce,{slot:e,showTime:!0}),p.jsx(g4,{slot:e})]})})}const Rrt="_card_wweyx_1",Trt={card:Rrt};function Mrt({slot:e}){const t=Me($i),{isLeader:n}=pc(e),r=ts("(min-width: 900px)");return p.jsx("div",{className:An(Trt.card,{[f4.mySlots]:n}),children:r?p.jsxs(Fe,{gap:"1",align:"start",justify:"between",children:[p.jsx(fce,{slot:e}),p.jsx(g4,{slot:e,currentSlot:t})]}):p.jsxs(Fe,{direction:"column",gap:"1",children:[p.jsx(gce,{slot:e}),p.jsx(g4,{slot:e,currentSlot:t})]})})}var Nrt=Object.defineProperty,Frt=(e,t,n)=>t in e?Nrt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,h4=(e,t,n)=>Frt(e,typeof t!="symbol"?t+"":t,n),z9=new Map,W9=new WeakMap,hce=0,Ort=void 0;function jrt(e){return e?(W9.has(e)||(hce+=1,W9.set(e,hce.toString())),W9.get(e)):"0"}function Lrt(e){return Object.keys(e).sort().filter(t=>e[t]!==void 0).map(t=>`${t}_${t==="root"?jrt(e.root):e[t]}`).toString()}function Prt(e){const t=Lrt(e);let n=z9.get(t);if(!n){const r=new Map;let i;const A=new IntersectionObserver(l=>{l.forEach(c=>{var f;const h=c.isIntersecting&&i.some(I=>c.intersectionRatio>=I);e.trackVisibility&&typeof c.isVisible>"u"&&(c.isVisible=h),(f=r.get(c.target))==null||f.forEach(I=>{I(h,c)})})},e);i=A.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),n={id:t,observer:A,elements:r},z9.set(t,n)}return n}function Urt(e,t,n={},r=Ort){if(typeof window.IntersectionObserver>"u"&&r!==void 0){const f=e.getBoundingClientRect();return t(r,{isIntersecting:r,target:e,intersectionRatio:typeof n.threshold=="number"?n.threshold:0,time:0,boundingClientRect:f,intersectionRect:f,rootBounds:f}),()=>{}}const{id:i,observer:A,elements:l}=Prt(n),c=l.get(e)||[];return l.has(e)||l.set(e,c),c.push(t),A.observe(e),function(){c.splice(c.indexOf(t),1),c.length===0&&(l.delete(e),A.unobserve(e)),l.size===0&&(A.disconnect(),z9.delete(i))}}function Grt(e){return typeof e.children!="function"}var pce=class extends x.Component{constructor(e){super(e),h4(this,"node",null),h4(this,"_unobserveCb",null),h4(this,"handleNode",t=>{this.node&&(this.unobserve(),!t&&!this.props.triggerOnce&&!this.props.skip&&this.setState({inView:!!this.props.initialInView,entry:void 0})),this.node=t||null,this.observeNode()}),h4(this,"handleChange",(t,n)=>{t&&this.props.triggerOnce&&this.unobserve(),Grt(this.props)||this.setState({inView:t,entry:n}),this.props.onChange&&this.props.onChange(t,n)}),this.state={inView:!!e.initialInView,entry:void 0}}componentDidMount(){this.unobserve(),this.observeNode()}componentDidUpdate(e){(e.rootMargin!==this.props.rootMargin||e.root!==this.props.root||e.threshold!==this.props.threshold||e.skip!==this.props.skip||e.trackVisibility!==this.props.trackVisibility||e.delay!==this.props.delay)&&(this.unobserve(),this.observeNode())}componentWillUnmount(){this.unobserve()}observeNode(){if(!this.node||this.props.skip)return;const{threshold:e,root:t,rootMargin:n,trackVisibility:r,delay:i,fallbackInView:A}=this.props;this._unobserveCb=Urt(this.node,this.handleChange,{threshold:e,root:t,rootMargin:n,trackVisibility:r,delay:i},A)}unobserve(){this._unobserveCb&&(this._unobserveCb(),this._unobserveCb=null)}render(){const{children:e}=this.props;if(typeof e=="function"){const{inView:D,entry:S}=this.state;return e({inView:D,entry:S,ref:this.handleNode})}const{as:t,triggerOnce:n,threshold:r,root:i,rootMargin:A,onChange:l,skip:c,trackVisibility:f,delay:h,initialInView:I,fallbackInView:B,...v}=this.props;return x.createElement(t||"div",{ref:this.handleNode,...v},e)}};function q9({slot:e,lastCardSlot:t,setCardCount:n,children:r}){return e!==t?r:p.jsxs(p.Fragment,{children:[p.jsx(pce,{onChange:i=>{i||n("decrease")},children:r}),p.jsx(pce,{onChange:i=>{i&&n("increase")}})]})}const Hrt="_preload_1uziq_1",Yrt={preload:Hrt};function Jrt({slot:e}){var l,c;Il(e);const t=OM(e),n=ST(t),[r,i]=il(Eee((l=n==null?void 0:n.info)==null?void 0:l.icon_url)),A=!r&&((c=n==null?void 0:n.info)!=null&&c.icon_url)?n.info.icon_url:void 0;return p.jsx("div",{className:Yrt.preload,children:p.jsx("img",{src:A,onError:()=>i()})})}const p4=vo*5;function zrt({topCardSlotLeader:e,bottomCardSlotLeader:t,searchLeaderSlots:n}){if(n){const r=[],i=n.indexOf(t),A=n.indexOf(e);if(i>0)for(let l=1;l<=p4;l++){const c=n[i-l];for(let f=0;f0)for(let l=1;l<=p4;l++){const c=n[A+l];for(let f=0;f0)for(let l=r;l>r-p4;l--)A.push(l);if(i>0)for(let l=i;lp.jsx(Jrt,{slot:i},i))})}var $h=(e=>(e.Past="Past",e.Now="Now",e.Upcoming="Upcoming",e))($h||{});function qrt(e,t){return et?$h.Upcoming:$h.Now}function Xrt({currentLeaderSlot:e,searchLeaderSlots:t,slotOverride:n,curCardCount:r=0,cardCount:i=1}){const A=t.toReversed();if(n===void 0){if(A.length<=i)return A[r];{const l=A.findIndex(f=>fMath.abs(h-n)),c=Math.min(...l),f=Math.max(l.indexOf(c)-3,0);return A[r+f]}}function Vrt({cardCount:e,currentLeaderSlot:t,epoch:n,searchLeaderSlots:r,slotOverride:i,topSlot:A}){const l=[],c=[],f=[];if(t===void 0)return{upcoming:l,now:c,past:f};for(let h=0;hn.end_slot))continue;const B=qrt(I,t);B===$h.Upcoming&&l.push(I),B===$h.Now&&c.push(I),B===$h.Past&&f.push(I)}return{upcoming:l,now:c,past:f}}const Krt=10,Zrt=2,$rt=1;function eot(e,t){switch(t){case"increase":return e+Zrt;case"decrease":return Math.max(1,e-$rt)}}function tot(){const e=Me(dl),t=Me(wo),n=Me(_a),r=Me(vi),[i,A]=x.useReducer(eot,Krt),l=t??(e??0)+ES*vo,{upcoming:c,now:f,past:h}=x.useMemo(()=>Vrt({cardCount:i,currentLeaderSlot:e,epoch:r,searchLeaderSlots:n,slotOverride:t,topSlot:l}),[i,e,r,n,t,l]);if(e===void 0)return;if((n==null?void 0:n.length)===0)return p.jsx(Fe,{justify:"center",align:"center",style:{color:wQ,fontSize:"24px",letterSpacing:"-0.96px",minHeight:"300px"},children:p.jsx(Se,{children:"No slots found."})});const I=c[0]??f[0]??h[0]??-1,B=h[h.length-1]??f[f.length-1]??c[c.length-1]??-1;return p.jsxs(p.Fragment,{children:[!!c.length&&p.jsx(X9,{sectionName:"Upcoming",children:c.map(v=>p.jsx(q9,{slot:v,lastCardSlot:B,setCardCount:A,children:p.jsx(Jnt,{slot:v},v)},v))}),!!f.length&&p.jsx(X9,{sectionName:"Now",children:f.map(v=>p.jsx(q9,{slot:v,lastCardSlot:B,setCardCount:A,children:p.jsx(Mrt,{slot:v},v)},v))}),!!h.length&&p.jsx(X9,{sectionName:"Past",children:h.map(v=>p.jsx(q9,{slot:v,lastCardSlot:B,setCardCount:A,children:p.jsx(Srt,{slot:v})},v))}),p.jsx(Wrt,{topCardSlotLeader:I,bottomCardSlotLeader:B})]})}function X9({children:e,sectionName:t}){const n=ts("(min-width: 700px)");return p.jsxs(Fe,{gap:"2",align:"stretch",children:[n&&p.jsxs(Fe,{direction:"column",gap:"2",align:"center",children:[p.jsx("div",{style:{width:"1px",flex:1,background:OQ,height:"10px"}}),p.jsx(Se,{style:{transform:"rotate(180deg)",writingMode:"vertical-rl",color:l5},size:"2",children:t}),p.jsx("div",{style:{width:"1px",flex:1,background:OQ,height:"10px"}})]}),p.jsx(Fe,{direction:"column",flexGrow:"1",gap:"2",minWidth:"0",children:e})]})}const not="_container_1hof6_1",rot="_button_1hof6_5",mce={container:not,button:rot};function oot(){const[e,t]=il(wo),n=Me(dl);if(e===void 0||n===void 0)return null;const r=e<=n+ES*vo;return p.jsx("div",{className:mce.container,children:p.jsxs(nl,{className:mce.button,style:{bottom:r?void 0:"8px"},onClick:()=>t(void 0),children:[p.jsx(Se,{children:"Skip to Realtime"}),r?p.jsx(xT,{}):p.jsx(wT,{})]})})}const iot="_label_q3mhf_1",Aot="_progress_q3mhf_5",sot="_value_q3mhf_15",V9={label:iot,progress:Aot,value:sot};function aot(){const{progressSinceLastLeader:e,nextSlotText:t,nextLeaderSlot:n}=Pw({showNowIfCurrent:!0}),r=n!==void 0?` (${n})`:"";return p.jsxs(Fe,{align:"center",gap:"2",children:[p.jsxs(Se,{className:V9.label,children:["Next leader slot",r]}),p.jsx(Cg,{value:e,className:V9.progress}),p.jsx(Se,{className:V9.value,children:t})]})}const lot="_container_1uhjb_1",cot="_search-box_1uhjb_18",uot="_label_1uhjb_29",dot="_my-slots_1uhjb_33",fot="_skipped-slots_1uhjb_63",got="_disabled_1uhjb_93",hot="_skip-rate-label_1uhjb_103",pot="_skip-rate-value_1uhjb_108",_u={container:lot,searchBox:cot,label:uot,mySlots:dot,skippedSlots:fot,disabled:got,skipRateLabel:hot,skipRateValue:pot};function K9(){const{searchType:e}=ZE.useSearch(),t=Bp({from:ZE.fullPath}),n=x.useCallback(r=>{t({search:{searchType:r},replace:!0})},[t]);return{searchType:e,setSearchType:n}}function mot(){const{searchText:e}=ZE.useSearch(),t=Bp({from:ZE.fullPath}),n=x.useCallback(r=>{t({search:{searchText:r,searchType:Ss.text},replace:!0})},[t]);return{searchText:e,setSearchText:n}}const Iot=$e(e=>!!e(dl));function Cot(){const e=Me(Iot),t=It(I_e),n=It(wo),{searchType:r}=K9(),{searchText:i,setSearchText:A}=mot(),[l,c]=x.useState(i),f=g1(I=>{t(I),A(I)},1e3);x.useEffect(()=>{!f.isPending()&&l!==i&&c(i)},[f,l,i]);const h=()=>{A(""),n(void 0),t("")};if(JC(()=>{r===Ss.text&&t(i)}),!!e)return p.jsxs(Fe,{className:_u.container,gap:"2",wrap:"wrap",children:[p.jsx(Bo,{className:_u.searchBox,children:p.jsxs(yD,{placeholder:"Name, pubkey, or slot (separate with , or ; for multiple values)",variant:"soft",color:"gray",onChange:I=>{c(I.currentTarget.value),f(I.currentTarget.value)},value:l,children:[p.jsx(Ab,{children:p.jsx(_T,{height:"16",width:"16",style:{color:FQ}})}),l&&p.jsx(Ab,{children:p.jsx(rl,{size:"1",variant:"ghost",children:p.jsx(fw,{height:"14",width:"14",style:{color:FQ},onClick:h})})})]})}),p.jsx(Bot,{resetSearchText:h}),p.jsx(yot,{resetSearchText:h}),p.jsx(Eot,{}),p.jsx(Bo,{flexGrow:"1"}),p.jsx(aot,{})]})}function Eot(){const e=Me(N5);let t="-";return e!==void 0&&(t=(e.skip_rate*100).toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:2}),t+="%"),p.jsxs(Fe,{justify:"center",align:"center",gap:"1",children:[p.jsx(Se,{className:_u.skipRateLabel,children:"Skip Rate"}),p.jsx(Se,{className:e?_u.skipRateValue:_u.skipRateLabel,children:t})]})}function Bot({resetSearchText:e}){const t=Me(eA),n=It(_a),r=It(wo),{searchType:i,setSearchType:A}=K9(),l=((t==null?void 0:t.length)??0)*4,c=x.useCallback(()=>{n(t)},[n,t]);x.useEffect(()=>{i===Ss.mySlots&&n(t)},[t,n]);const f=()=>{e(),r(void 0),i===Ss.mySlots?A(Ss.text):(A(Ss.mySlots),c())},h=i===Ss.mySlots,I=!(t!=null&&t.length);return p.jsx(Zo,{content:"Number of slots this validator is leader in the current epoch. Toggle to filter",children:p.jsx("div",{children:p.jsx(ib,{children:p.jsxs(fJ,{className:`${_u.mySlots}`,onClick:f,"aria-label":"Toggle my slots",pressed:h,disabled:I,children:[p.jsx(Se,{className:_u.label,children:"My Slots"}),p.jsx(Se,{children:l})]})})})})}function yot({resetSearchText:e}){const t=Me(ZI),n=It(_a),r=It(wo),{searchType:i,setSearchType:A}=K9(),l=(t==null?void 0:t.length)??0,c=x.useCallback(()=>{const B=t==null?void 0:t.map(v=>v-v%4);n([...new Set(B)])},[n,t]);x.useEffect(()=>{i===Ss.skippedSlots&&c()},[c]);const f=()=>{e(),r(void 0),i===Ss.skippedSlots?A(Ss.text):t!=null&&t.length&&(A(Ss.skippedSlots),c())},h=i===Ss.skippedSlots,I=!(t!=null&&t.length);return p.jsx(Zo,{content:"Number of slots this validator has skipped in the current epoch since it was last restarted. Toggle to filter",children:p.jsx("div",{children:p.jsx(ib,{children:p.jsxs(fJ,{className:`${_u.skippedSlots} ${I?_u.disabled:""}`,onClick:f,"aria-label":"Toggle skipped slots",pressed:h,disabled:!h&&I,children:[p.jsx(Se,{className:_u.label,children:"My Skipped Slots"}),p.jsx(Se,{children:l})]})})})})}var Ice={exports:{}};(function(e){(function(t,n,r,i){var A=["","webkit","Moz","MS","ms","o"],l=n.createElement("div"),c="function",f=Math.round,h=Math.abs,I=Date.now;function B(ee,Ie,Re){return setTimeout(P(ee,Re),Ie)}function v(ee,Ie,Re){return Array.isArray(ee)?(D(ee,Re[Ie],Re),!0):!1}function D(ee,Ie,Re){var it;if(ee)if(ee.forEach)ee.forEach(Ie,Re);else if(ee.length!==i)for(it=0;it\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",ur=t.console&&(t.console.warn||t.console.log);return ur&&ur.call(t.console,it,nn),ee.apply(this,arguments)}}var R;typeof Object.assign!="function"?R=function(ee){if(ee===i||ee===null)throw new TypeError("Cannot convert undefined or null to object");for(var Ie=Object(ee),Re=1;Re-1}function K(ee){return ee.trim().split(/\s+/g)}function se(ee,Ie,Re){if(ee.indexOf&&!Re)return ee.indexOf(Ie);for(var it=0;itMi[Ie]}),it}function Ae(ee,Ie){for(var Re,it,vt=Ie[0].toUpperCase()+Ie.slice(1),nn=0;nn1&&!Re.firstMultiple?Re.firstMultiple=tn(Ie):vt===1&&(Re.firstMultiple=!1);var nn=Re.firstInput,ur=Re.firstMultiple,Hr=ur?ur.center:nn.center,Mi=Ie.center=en(it);Ie.timeStamp=I(),Ie.deltaTime=Ie.timeStamp-nn.timeStamp,Ie.angle=ro(Hr,Mi),Ie.distance=ho(Hr,Mi),Ve(Re,Ie),Ie.offsetDirection=gr(Ie.deltaX,Ie.deltaY);var Ni=no(Ie.deltaTime,Ie.deltaX,Ie.deltaY);Ie.overallVelocityX=Ni.x,Ie.overallVelocityY=Ni.y,Ie.overallVelocity=h(Ni.x)>h(Ni.y)?Ni.x:Ni.y,Ie.scale=ur?Uo(ur.pointers,it):1,Ie.rotation=ur?zr(ur.pointers,it):0,Ie.maxPointers=Re.prevInput?Ie.pointers.length>Re.prevInput.maxPointers?Ie.pointers.length:Re.prevInput.maxPointers:Ie.pointers.length,Nt(Re,Ie);var di=ee.element;$(Ie.srcEvent.target,di)&&(di=Ie.srcEvent.target),Ie.target=di}function Ve(ee,Ie){var Re=Ie.center,it=ee.offsetDelta||{},vt=ee.prevDelta||{},nn=ee.prevInput||{};(Ie.eventType===_e||nn.eventType===ve)&&(vt=ee.prevDelta={x:nn.deltaX||0,y:nn.deltaY||0},it=ee.offsetDelta={x:Re.x,y:Re.y}),Ie.deltaX=vt.x+(Re.x-it.x),Ie.deltaY=vt.y+(Re.y-it.y)}function Nt(ee,Ie){var Re=ee.lastInterval||Ie,it=Ie.timeStamp-Re.timeStamp,vt,nn,ur,Hr;if(Ie.eventType!=Ue&&(it>De||Re.velocity===i)){var Mi=Ie.deltaX-Re.deltaX,Ni=Ie.deltaY-Re.deltaY,di=no(it,Mi,Ni);nn=di.x,ur=di.y,vt=h(di.x)>h(di.y)?di.x:di.y,Hr=gr(Mi,Ni),ee.lastInterval=Ie}else vt=Re.velocity,nn=Re.velocityX,ur=Re.velocityY,Hr=Re.direction;Ie.velocity=vt,Ie.velocityX=nn,Ie.velocityY=ur,Ie.direction=Hr}function tn(ee){for(var Ie=[],Re=0;Re=h(Ie)?ee<0?He:gt:Ie<0?ut:bt}function ho(ee,Ie,Re){Re||(Re=Yn);var it=Ie[Re[0]]-ee[Re[0]],vt=Ie[Re[1]]-ee[Re[1]];return Math.sqrt(it*it+vt*vt)}function ro(ee,Ie,Re){Re||(Re=Yn);var it=Ie[Re[0]]-ee[Re[0]],vt=Ie[Re[1]]-ee[Re[1]];return Math.atan2(vt,it)*180/Math.PI}function zr(ee,Ie){return ro(Ie[1],Ie[0],yn)+ro(ee[1],ee[0],yn)}function Uo(ee,Ie){return ho(Ie[0],Ie[1],yn)/ho(ee[0],ee[1],yn)}var Qi={mousedown:_e,mousemove:xe,mouseup:ve},jA="mousedown",LA="mousemove mouseup";function ti(){this.evEl=jA,this.evWin=LA,this.pressed=!1,fe.apply(this,arguments)}M(ti,fe,{handler:function(ee){var Ie=Qi[ee.type];Ie&_e&&ee.button===0&&(this.pressed=!0),Ie&xe&&ee.which!==1&&(Ie=ve),this.pressed&&(Ie&ve&&(this.pressed=!1),this.callback(this.manager,Ie,{pointers:[ee],changedPointers:[ee],pointerType:rt,srcEvent:ee}))}});var Ti={pointerdown:_e,pointermove:xe,pointerup:ve,pointercancel:Ue,pointerout:Ue},Ts={2:me,3:Ye,4:rt,5:We},Xo="pointerdown",mA="pointermove pointerup pointercancel";t.MSPointerEvent&&!t.PointerEvent&&(Xo="MSPointerDown",mA="MSPointerMove MSPointerUp MSPointerCancel");function Ms(){this.evEl=Xo,this.evWin=mA,fe.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}M(Ms,fe,{handler:function(ee){var Ie=this.store,Re=!1,it=ee.type.toLowerCase().replace("ms",""),vt=Ti[it],nn=Ts[ee.pointerType]||ee.pointerType,ur=nn==me,Hr=se(Ie,ee.pointerId,"pointerId");vt&_e&&(ee.button===0||ur)?Hr<0&&(Ie.push(ee),Hr=Ie.length-1):vt&(ve|Ue)&&(Re=!0),!(Hr<0)&&(Ie[Hr]=ee,this.callback(this.manager,vt,{pointers:Ie,changedPointers:[ee],pointerType:nn,srcEvent:ee}),Re&&Ie.splice(Hr,1))}});var ls={touchstart:_e,touchmove:xe,touchend:ve,touchcancel:Ue},nt="touchstart",ft="touchstart touchmove touchend touchcancel";function kt(){this.evTarget=nt,this.evWin=ft,this.started=!1,fe.apply(this,arguments)}M(kt,fe,{handler:function(ee){var Ie=ls[ee.type];if(Ie===_e&&(this.started=!0),!!this.started){var Re=Zt.call(this,ee,Ie);Ie&(ve|Ue)&&Re[0].length-Re[1].length===0&&(this.started=!1),this.callback(this.manager,Ie,{pointers:Re[0],changedPointers:Re[1],pointerType:me,srcEvent:ee})}}});function Zt(ee,Ie){var Re=Ee(ee.touches),it=Ee(ee.changedTouches);return Ie&(ve|Ue)&&(Re=ie(Re.concat(it),"identifier")),[Re,it]}var bn={touchstart:_e,touchmove:xe,touchend:ve,touchcancel:Ue},Qe="touchstart touchmove touchend touchcancel";function Oe(){this.evTarget=Qe,this.targetIds={},fe.apply(this,arguments)}M(Oe,fe,{handler:function(ee){var Ie=bn[ee.type],Re=ot.call(this,ee,Ie);Re&&this.callback(this.manager,Ie,{pointers:Re[0],changedPointers:Re[1],pointerType:me,srcEvent:ee})}});function ot(ee,Ie){var Re=Ee(ee.touches),it=this.targetIds;if(Ie&(_e|xe)&&Re.length===1)return it[Re[0].identifier]=!0,[Re,Re];var vt,nn,ur=Ee(ee.changedTouches),Hr=[],Mi=this.target;if(nn=Re.filter(function(Ni){return $(Ni.target,Mi)}),Ie===_e)for(vt=0;vt-1&&it.splice(nn,1)};setTimeout(vt,et)}}function dt(ee){for(var Ie=ee.srcEvent.clientX,Re=ee.srcEvent.clientY,it=0;it-1&&this.requireFail.splice(Ie,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(ee){return!!this.simultaneous[ee.id]},emit:function(ee){var Ie=this,Re=this.state;function it(vt){Ie.manager.emit(vt,ee)}Re=jo&&it(Ie.options.event+Nu(Re))},tryEmit:function(ee){if(this.canEmit())return this.emit(ee);this.state=jn},canEmit:function(){for(var ee=0;eeIe.threshold&&vt&Ie.direction},attrTest:function(ee){return H.prototype.attrTest.call(this,ee)&&(this.state&On||!(this.state&On)&&this.directionTest(ee))},emit:function(ee){this.pX=ee.deltaX,this.pY=ee.deltaY;var Ie=Fu(ee.direction);Ie&&(ee.additionalEvent=this.options.event+Ie),this._super.emit.call(this,ee)}});function Yt(){H.apply(this,arguments)}M(Yt,H,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[mr]},attrTest:function(ee){return this._super.attrTest.call(this,ee)&&(Math.abs(ee.scale-1)>this.options.threshold||this.state&On)},emit:function(ee){if(ee.scale!==1){var Ie=ee.scale<1?"in":"out";ee.additionalEvent=this.options.event+Ie}this._super.emit.call(this,ee)}});function Na(){wi.apply(this,arguments),this._timer=null,this._input=null}M(Na,wi,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[br]},process:function(ee){var Ie=this.options,Re=ee.pointers.length===Ie.pointers,it=ee.distanceIe.time;if(this._input=ee,!it||!Re||ee.eventType&(ve|Ue)&&!vt)this.reset();else if(ee.eventType&_e)this.reset(),this._timer=B(function(){this.state=Tn,this.tryEmit()},Ie.time,this);else if(ee.eventType&ve)return Tn;return jn},reset:function(){clearTimeout(this._timer)},emit:function(ee){this.state===Tn&&(ee&&ee.eventType&ve?this.manager.emit(this.options.event+"up",ee):(this._input.timeStamp=I(),this.manager.emit(this.options.event,this._input)))}});function Mn(){H.apply(this,arguments)}M(Mn,H,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[mr]},attrTest:function(ee){return this._super.attrTest.call(this,ee)&&(Math.abs(ee.rotation)>this.options.threshold||this.state&On)}});function rA(){H.apply(this,arguments)}M(rA,H,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:zt|ce,pointers:1},getTouchAction:function(){return ni.prototype.getTouchAction.call(this)},attrTest:function(ee){var Ie=this.options.direction,Re;return Ie&(zt|ce)?Re=ee.overallVelocity:Ie&zt?Re=ee.overallVelocityX:Ie&ce&&(Re=ee.overallVelocityY),this._super.attrTest.call(this,ee)&&Ie&ee.offsetDirection&&ee.distance>this.options.threshold&&ee.maxPointers==this.options.pointers&&h(Re)>this.options.velocity&&ee.eventType&ve},emit:function(ee){var Ie=Fu(ee.offsetDirection);Ie&&this.manager.emit(this.options.event+Ie,ee),this.manager.emit(this.options.event,ee)}});function sa(){wi.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}M(sa,wi,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[po]},process:function(ee){var Ie=this.options,Re=ee.pointers.length===Ie.pointers,it=ee.distance0?-1:1)}const Qot=function(){let e=0,t=null;return $e(null,(n,r,i)=>{t&&clearTimeout(t),i*e<0&&(e=0);const A=n($i);if(A===void 0)return;const l=n(wo),c=l&&l=c){const f=e%100;r(E_e,bot(e/c)),e=f}t=setTimeout(()=>e=0,100)})}();function wot(){const e=It(Qot),t=It(grt),n=x.useRef(null),r=i=>{i.altKey||i.ctrlKey||i.metaKey||i.shiftKey||!i.deltaY||e(i.deltaY)};return zC(()=>t()),x.useEffect(()=>{if(!n.current)return;const i=new Cce(n.current);return i.get("pan").set({direction:Cce.DIRECTION_VERTICAL}),i.on("panup pandown",A=>{var l;A.pointerType.includes("touch")&&e(-(((l=A.changedPointers[0])==null?void 0:l.movementY)??0)*5)}),()=>{i.destroy()}},[e]),p.jsxs(dD,{overflow:"hidden",flexShrink:"1",onWheel:r,maxWidth:"100%",className:f4.scroll,ref:n,children:[p.jsx(Cot,{}),p.jsx(oot,{}),p.jsx(Fe,{direction:"column",gap:"4",children:p.jsx(tot,{})})]})}function xot(){const e=Me(vi),t=It(wo),n=It(Wp);JC(()=>{t(void 0),n(void 0)});const r=i=>{i.button===1&&t(void 0)};if(e)return p.jsx(Fe,{direction:"column",gap:"4",width:"100%",maxHeight:`calc(100vh - ${Rp+Tp+12}px)`,onMouseDown:r,children:p.jsx(wot,{})})}const Ece=iu(["mySlots","skippedSlots","text"]),Ss=Ece.enum,_ot={searchType:Ss.text,searchText:""},kot=ir({searchType:vN(Ece,Ss.text).default(Ss.text),searchText:vN(Mr(),"").default("")}),ZE=bg("/leaderSchedule")({component:xot,validateSearch:joe(kot),search:{middlewares:[fve(_ot),dve(["searchType","searchText"])]}}),Dot="modulepreload",Sot=function(e){return"/"+e},Bce={},Rot=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){document.getElementsByTagName("link");const A=document.querySelector("meta[property=csp-nonce]"),l=(A==null?void 0:A.nonce)||(A==null?void 0:A.getAttribute("nonce"));r=Promise.allSettled(t.map(c=>{if(c=Sot(c),c in Bce)return;Bce[c]=!0;const f=c.endsWith(".css"),h=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${h}`))return;const I=document.createElement("link");if(I.rel=f?"stylesheet":Dot,f||(I.as="script"),I.crossOrigin="",I.href=c,l&&I.setAttribute("nonce",l),document.head.appendChild(I),f)return new Promise((B,v)=>{I.addEventListener("load",B),I.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(A){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=A,window.dispatchEvent(l),!l.defaultPrevented)throw A}return r.then(A=>{for(const l of A||[])l.status==="rejected"&&i(l.reason);return e().catch(i)})},Tot=Vs(),Mot=bg("/gossip")({component:Fot,beforeLoad:({context:e,location:t})=>{if(Tot.get(Oc)!=="Firedancer")throw Rz({to:"/"})}}),Not=x.lazy(()=>Rot(()=>import("./index-B79NUQX2.js"),__vite__mapDeps([0,1])));function Fot(){return p.jsx(x.Suspense,{children:p.jsx(Not,{})})}const Oot=bg("/about")({component:jot});function jot(){return p.jsx("div",{className:"p-2",children:p.jsx("h3",{children:"About"})})}const m4=600,yce=sl(new Array(m4).fill(void 0)),Z9=(e,t)=>e.length?"M"+e.map(({x:n,y:r})=>`L ${n} ${t-r}`).join(" ").slice(1)+`L ${e[e.length-1].x} ${t} L ${e[0].x} ${t}, L ${e[0].x} ${e[0].y}`:"";function Lot(){const e=Me(yce),t=x.useRef(),n=Math.max(...e.map(i=>(i==null?void 0:i.total)??0)),r=x.useMemo(()=>{if(!t.current||!e.length)return;const{height:i,width:A}=t.current,l=e.length,c=(A+2)/l,f=(i-10)/(n||1),h=e.map((B,v)=>{if(B!==void 0)return{x:v*c,voteY:B.vote*f,nonvoteFailedY:(B.nonvote_failed+B.vote)*f,nonvoteY:(B.nonvote_success+B.nonvote_failed+B.vote)*f}}).filter(PQ),I=i-n*f;return{votePath:Z9(h.map(B=>({x:B.x,y:B.voteY})),i),failedPath:Z9(h.map(B=>({x:B.x,y:B.nonvoteFailedY})),i),nonvotePath:Z9(h.map(B=>({x:B.x,y:B.nonvoteY})),i),totalTpsY:isNaN(I)?void 0:I}},[n,e]);return p.jsx(p.Fragment,{children:p.jsx(hs,{children:({height:i,width:A})=>(t.current={height:i,width:A},r?p.jsx(p.Fragment,{children:p.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:A,height:i,fill:"none",children:[p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:r.nonvotePath,fill:OR}),p.jsx("path",{d:r.failedPath,fill:LR}),p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",fill:jR,d:r.votePath}),r.totalTpsY&&p.jsxs(p.Fragment,{children:[p.jsx("line",{x1:"0",y1:r.totalTpsY,x2:A,y2:r.totalTpsY,strokeDasharray:"4",stroke:"rgba(255, 255, 255, 0.30)"}),p.jsx("text",{x:"0",y:r.totalTpsY-3,fill:xQ,fontSize:"8",fontFamily:"Inter Tight",children:n.toLocaleString()})]})]})}):null)})})}const Pot="_axis-text_juf3d_1",vce={axisText:Pot},Uot="_label_lgd2h_1",Got="_value_lgd2h_8",Hot="_append-value_lgd2h_12",$9={label:Uot,value:Got,appendValue:Hot};function ra({label:e,value:t,valueColor:n,appendValue:r,large:i,style:A,valueStyle:l,children:c}){const f=l??(i?{fontSize:"28px",letterSpacing:"-1.12px"}:{fontSize:"18px",fontWeight:500});return p.jsxs(Fe,{direction:"column",align:"start",style:{...A},children:[p.jsx(Se,{className:$9.label,children:e}),p.jsxs(Fe,{align:"baseline",gap:"1",children:[p.jsx(Se,{className:$9.value,style:{color:n,...f},children:t}),r&&p.jsx(Se,{className:$9.appendValue,children:r}),c]})]})}function Yot(){const e=Me(Ob);return p.jsxs(Fe,{direction:"column",gap:"2",minWidth:"100px",children:[p.jsx(ra,{label:"Total TPS",value:(e==null?void 0:e.total.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:Vu,large:!0}),p.jsxs(Fe,{gap:"4",wrap:"wrap",children:[p.jsx(ra,{label:"Non-vote TPS Success",value:(e==null?void 0:e.nonvote_success.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:su}),p.jsx(ra,{label:"Non-vote TPS Fail",value:(e==null?void 0:e.nonvote_failed.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:Fc}),p.jsx(ra,{label:"Vote TPS",value:(e==null?void 0:e.vote.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:au,style:{minWidth:"90px"}})]})]})}function Jot(){return p.jsx(bu,{style:{flex:100},children:p.jsxs(Fe,{direction:"column",height:"100%",gap:"2",children:[p.jsx(mf,{text:"Transactions"}),p.jsxs(Fe,{gap:"4",flexGrow:"1",children:[p.jsx(Yot,{}),p.jsxs(Fe,{direction:"column",flexGrow:"1",children:[p.jsx(Bo,{flexGrow:"1",minWidth:"180px",overflow:"hidden",children:p.jsx(Lot,{})}),p.jsxs(Fe,{justify:"between",children:[p.jsx(Se,{className:vce.axisText,children:"~ 1min ago"}),p.jsx(Se,{className:vce.axisText,children:"Now"})]})]})]})]})})}const zot="_tooltip_8z8s3_1",Wot={tooltip:zot};function I4(){return I4=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Xot={nivo:["#e8c1a0","#f47560","#f1e15b","#e8a838","#61cdbb","#97e3d5"],category10:Sx,accent:Rx,dark2:Tx,paired:Mx,pastel1:Nx,pastel2:Fx,set1:Ox,set2:jx,set3:DE,tableau10:Lx},Vot={brown_blueGreen:Eh,purpleRed_green:Bh,pink_yellowGreen:yh,purple_orange:vh,red_blue:bh,red_grey:Qh,red_yellow_blue:wh,red_yellow_green:xh,spectral:_h},Kot={brown_blueGreen:Px,purpleRed_green:Ux,pink_yellowGreen:Gx,purple_orange:Hx,red_blue:Yx,red_grey:Jx,red_yellow_blue:zx,red_yellow_green:Wx,spectral:qx},Zot={blues:Uh,greens:Gh,greys:Hh,oranges:zh,purples:Yh,reds:Jh,blue_green:kh,blue_purple:Dh,green_blue:Sh,orange_red:Rh,purple_blue_green:Th,purple_blue:Mh,purple_red:Nh,red_purple:Fh,yellow_green_blue:Oh,yellow_green:jh,yellow_orange_brown:Lh,yellow_orange_red:Ph},$ot={blues:s_,greens:a_,greys:l_,oranges:d_,purples:c_,reds:u_,turbo:B_,viridis:v_,inferno:Q_,magma:b_,plasma:w_,cividis:f_,warm:h_,cool:p_,cubehelixDefault:g_,blue_green:Xx,blue_purple:Vx,green_blue:Kx,orange_red:Zx,purple_blue_green:$x,purple_blue:e_,purple_red:t_,red_purple:n_,yellow_green_blue:r_,yellow_green:o_,yellow_orange_brown:i_,yellow_orange_red:A_};I4({},Xot,Vot,Zot);var eit={rainbow:I_,sinebow:E_};I4({},Kot,$ot,eit);var tit=function(e,t){if(typeof e=="function")return e;if(BE(e)){if(function(f){return f.theme!==void 0}(e)){if(t===void 0)throw new Error("Unable to use color from theme as no theme was provided");var n=Bl(t,e.theme);if(n===void 0)throw new Error("Color from theme is undefined at path: '"+e.theme+"'");return function(){return n}}if(function(f){return f.from!==void 0}(e)){var r=function(f){return Bl(f,e.from)};if(Array.isArray(e.modifiers)){for(var i,A=[],l=function(){var f=i.value,h=f[0],I=f[1];if(h==="brighter")A.push(function(B){return B.brighter(I)});else if(h==="darker")A.push(function(B){return B.darker(I)});else{if(h!=="opacity")throw new Error("Invalid color modifier: '"+h+"', must be one of: 'brighter', 'darker', 'opacity'");A.push(function(B){return B.opacity=I,B})}},c=qot(e.modifiers);!(i=c()).done;)l();return A.length===0?r:function(f){return A.reduce(function(h,I){return I(h)},dh(r(f))).toString()}}return r}throw new Error("Invalid color spec, you should either specify 'theme' or 'from' when using a config object")}return function(){return e}},C4=function(e,t){return x.useMemo(function(){return tit(e,t)},[e,t])};Ze.oneOfType([Ze.string,Ze.func,Ze.shape({theme:Ze.string.isRequired}),Ze.shape({from:Ze.string.isRequired,modifiers:Ze.arrayOf(Ze.array)})]);function ei(){return ei=Object.assign?Object.assign.bind():function(e){for(var t=1;t=t})},iit={startAngle:{enter:function(e){return ei({},e,{endAngle:e.startAngle})},update:function(e){return e},leave:function(e){return ei({},e,{startAngle:e.endAngle})}},middleAngle:{enter:function(e){var t=e.startAngle+(e.endAngle-e.startAngle)/2;return ei({},e,{startAngle:t,endAngle:t})},update:function(e){return e},leave:function(e){var t=e.startAngle+(e.endAngle-e.startAngle)/2;return ei({},e,{startAngle:t,endAngle:t})}},endAngle:{enter:function(e){return ei({},e,{startAngle:e.endAngle})},update:function(e){return e},leave:function(e){return ei({},e,{endAngle:e.startAngle})}},innerRadius:{enter:function(e){return ei({},e,{outerRadius:e.innerRadius})},update:function(e){return e},leave:function(e){return ei({},e,{innerRadius:e.outerRadius})}},centerRadius:{enter:function(e){var t=e.innerRadius+(e.outerRadius-e.innerRadius)/2;return ei({},e,{innerRadius:t,outerRadius:t})},update:function(e){return e},leave:function(e){var t=e.innerRadius+(e.outerRadius-e.innerRadius)/2;return ei({},e,{innerRadius:t,outerRadius:t})}},outerRadius:{enter:function(e){return ei({},e,{innerRadius:e.outerRadius})},update:function(e){return e},leave:function(e){return ei({},e,{outerRadius:e.innerRadius})}},pushIn:{enter:function(e){return ei({},e,{innerRadius:e.innerRadius-e.outerRadius+e.innerRadius,outerRadius:e.innerRadius})},update:function(e){return e},leave:function(e){return ei({},e,{innerRadius:e.outerRadius,outerRadius:e.outerRadius+e.outerRadius-e.innerRadius})}},pushOut:{enter:function(e){return ei({},e,{innerRadius:e.outerRadius,outerRadius:e.outerRadius+e.outerRadius-e.innerRadius})},update:function(e){return e},leave:function(e){return ei({},e,{innerRadius:e.innerRadius-e.outerRadius+e.innerRadius,outerRadius:e.innerRadius})}}},wce=function(e,t){return x.useMemo(function(){var n=iit[e];return{enter:function(r){return ei({progress:0},n.enter(r.arc),t?t.enter(r):{})},update:function(r){return ei({progress:1},n.update(r.arc),t?t.update(r):{})},leave:function(r){return ei({progress:0},n.leave(r.arc),t?t.leave(r):{})}}},[e,t])},Ait=function(e,t){var n=dWe(e)-Math.PI/2,r=e.innerRadius+(e.outerRadius-e.innerRadius)*t;return j1(n,r)},sit=function(e){return function(t,n,r,i){return t1([t,n,r,i],function(A,l,c,f){var h=Ait({startAngle:A,endAngle:l,innerRadius:c,outerRadius:f},e);return"translate("+h.x+","+h.y+")"})}},ait=function(e,t,n,r){t===void 0&&(t=.5),n===void 0&&(n="innerRadius");var i=Cf(),A=i.animate,l=i.config,c=wce(n,r);return{transition:BT(e,{keys:function(f){return f.id},initial:c.update,from:c.enter,enter:c.update,update:c.update,leave:c.leave,config:l,immediate:!A}),interpolate:sit(t)}},lit=function(e){var t=e.center,n=e.data,r=e.transitionMode,i=e.label,A=e.radiusOffset,l=e.skipAngle,c=e.textColor,f=e.component,h=f===void 0?rit:f,I=NE(i),B=ta(),v=C4(c,B),D=x.useMemo(function(){return n.filter(function(M){return Math.abs(jF(M.arc.endAngle-M.arc.startAngle))>=l})},[n,l]),S=ait(D,A,r),R=S.transition,F=S.interpolate,N=h;return p.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:R(function(M,P){return x.createElement(N,{key:P.id,datum:P,label:I(P),style:ei({},M,{transform:F(M.startAngle,M.endAngle,M.innerRadius,M.outerRadius),textColor:v(P)})})})})},cit=function(e){var t=e.label,n=e.style,r=ta();return p.jsxs($s.g,{opacity:n.opacity,children:[p.jsx($s.path,{fill:"none",stroke:n.linkColor,strokeWidth:n.thickness,d:n.path}),p.jsx($s.text,{transform:n.textPosition,textAnchor:n.textAnchor,dominantBaseline:"central",style:ei({},r.labels.text,{fill:n.textColor}),children:t})]})},uit=function(e){var t=Qce(e.startAngle+(e.endAngle-e.startAngle)/2-Math.PI/2);return t1.5*Math.PI?"start":"end"},xce=function(e,t,n,r){var i,A,l=Qce(e.startAngle+(e.endAngle-e.startAngle)/2-Math.PI/2),c=j1(l,e.outerRadius+t),f=j1(l,e.outerRadius+t+n);return l1.5*Math.PI?(i="after",A={x:f.x+r,y:f.y}):(i="before",A={x:f.x-r,y:f.y}),{side:i,points:[c,f,A]}},dit=mF().x(function(e){return e.x}).y(function(e){return e.y}),fit=function(e,t,n,r,i,A,l){return t1([e,t,n,r,i,A,l],function(c,f,h,I,B,v,D){var S=xce({startAngle:c,endAngle:f,outerRadius:I},B,v,D).points;return dit(S)})},git=function(e,t,n,r){return t1([e,t,n,r],function(i,A,l,c){return uit({startAngle:i,endAngle:A})})},hit=function(e,t,n,r,i,A,l,c){return t1([e,t,n,r,i,A,l,c],function(f,h,I,B,v,D,S,R){var F=xce({startAngle:f,endAngle:h,outerRadius:B},v,D,S),N=F.points,M=F.side,P=N[2];return M==="before"?P.x-=R:P.x+=R,"translate("+P.x+","+P.y+")"})},pit=function(e){var t=e.data,n=e.offset,r=n===void 0?0:n,i=e.diagonalLength,A=e.straightLength,l=e.skipAngle,c=l===void 0?0:l,f=e.textOffset,h=e.linkColor,I=e.textColor,B=Cf(),v=B.animate,D=B.config,S=ta(),R=C4(h,S),F=C4(I,S),N=function(P,G){return x.useMemo(function(){return oit(P,G)},[P,G])}(t,c),M=function(P){var G=P.offset,J=P.diagonalLength,W=P.straightLength,q=P.textOffset,$=P.getLinkColor,oe=P.getTextColor;return x.useMemo(function(){return{enter:function(K){return{startAngle:K.arc.startAngle,endAngle:K.arc.endAngle,innerRadius:K.arc.innerRadius,outerRadius:K.arc.outerRadius,offset:G,diagonalLength:0,straightLength:0,textOffset:q,linkColor:$(K),textColor:oe(K),opacity:0}},update:function(K){return{startAngle:K.arc.startAngle,endAngle:K.arc.endAngle,innerRadius:K.arc.innerRadius,outerRadius:K.arc.outerRadius,offset:G,diagonalLength:J,straightLength:W,textOffset:q,linkColor:$(K),textColor:oe(K),opacity:1}},leave:function(K){return{startAngle:K.arc.startAngle,endAngle:K.arc.endAngle,innerRadius:K.arc.innerRadius,outerRadius:K.arc.outerRadius,offset:G,diagonalLength:0,straightLength:0,textOffset:q,linkColor:$(K),textColor:oe(K),opacity:0}}}},[J,W,q,$,oe,G])}({offset:r,diagonalLength:i,straightLength:A,textOffset:f,getLinkColor:R,getTextColor:F});return{transition:BT(N,{keys:function(P){return P.id},initial:M.update,from:M.enter,enter:M.update,update:M.update,leave:M.leave,config:D,immediate:!v}),interpolateLink:fit,interpolateTextAnchor:git,interpolateTextPosition:hit}},mit=function(e){var t=e.center,n=e.data,r=e.label,i=e.skipAngle,A=e.offset,l=e.diagonalLength,c=e.straightLength,f=e.strokeWidth,h=e.textOffset,I=e.textColor,B=e.linkColor,v=e.component,D=v===void 0?cit:v,S=NE(r),R=pit({data:n,skipAngle:i,offset:A,diagonalLength:l,straightLength:c,textOffset:h,linkColor:B,textColor:I}),F=R.transition,N=R.interpolateLink,M=R.interpolateTextAnchor,P=R.interpolateTextPosition,G=D;return p.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:F(function(J,W){return x.createElement(G,{key:W.id,datum:W,label:S(W),style:ei({},J,{thickness:f,path:N(J.startAngle,J.endAngle,J.innerRadius,J.outerRadius,J.offset,J.diagonalLength,J.straightLength),textAnchor:M(J.startAngle,J.endAngle,J.innerRadius,J.outerRadius),textPosition:P(J.startAngle,J.endAngle,J.innerRadius,J.outerRadius,J.offset,J.diagonalLength,J.straightLength,J.textOffset)})})})})},Iit=function(e){var t=e.datum,n=e.style,r=e.onClick,i=e.onMouseEnter,A=e.onMouseMove,l=e.onMouseLeave,c=x.useCallback(function(B){return r==null?void 0:r(t,B)},[r,t]),f=x.useCallback(function(B){return i==null?void 0:i(t,B)},[i,t]),h=x.useCallback(function(B){return A==null?void 0:A(t,B)},[A,t]),I=x.useCallback(function(B){return l==null?void 0:l(t,B)},[l,t]);return p.jsx($s.path,{d:n.path,opacity:n.opacity,fill:t.fill||n.color,stroke:n.borderColor,strokeWidth:n.borderWidth,onClick:r?c:void 0,onMouseEnter:i?f:void 0,onMouseMove:A?h:void 0,onMouseLeave:l?I:void 0})},Cit=function(e,t,n,r,i){return t1([e,t,n,r],function(A,l,c,f){return i({startAngle:A,endAngle:l,innerRadius:Math.max(0,c),outerRadius:Math.max(0,f)})})},Eit=function(e,t,n){t===void 0&&(t="innerRadius");var r=Cf(),i=r.animate,A=r.config,l=wce(t,n);return{transition:BT(e,{keys:function(c){return c.id},initial:l.update,from:l.enter,enter:l.update,update:l.update,leave:l.leave,config:A,immediate:!i}),interpolate:Cit}},Bit=function(e){var t=e.center,n=e.data,r=e.arcGenerator,i=e.borderWidth,A=e.borderColor,l=e.onClick,c=e.onMouseEnter,f=e.onMouseMove,h=e.onMouseLeave,I=e.transitionMode,B=e.component,v=B===void 0?Iit:B,D=ta(),S=C4(A,D),R=Eit(n,I,{enter:function(P){return{opacity:0,color:P.color,borderColor:S(P)}},update:function(P){return{opacity:1,color:P.color,borderColor:S(P)}},leave:function(P){return{opacity:0,color:P.color,borderColor:S(P)}}}),F=R.transition,N=R.interpolate,M=v;return p.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:F(function(P,G){return x.createElement(M,{key:G.id,datum:G,style:ei({},P,{borderWidth:i,path:N(P.startAngle,P.endAngle,P.innerRadius,P.outerRadius,r)}),onClick:l,onMouseEnter:c,onMouseMove:f,onMouseLeave:h})})})},yit=function(e,t,n,r,i,A){A===void 0&&(A=!0);var l=[],c=j1(M0(r),n);l.push([c.x,c.y]);var f=j1(M0(i),n);l.push([f.x,f.y]);for(var h=Math.round(Math.min(r,i));h<=Math.round(Math.max(r,i));h++)if(h%90==0){var I=j1(M0(h),n);l.push([I.x,I.y])}l=l.map(function(F){var N=F[0],M=F[1];return[e+N,t+M]}),A&&l.push([e,t]);var B=l.map(function(F){return F[0]}),v=l.map(function(F){return F[1]}),D=Math.min.apply(Math,B),S=Math.max.apply(Math,B),R=Math.min.apply(Math,v);return{points:l,x:D,y:R,width:S-D,height:Math.max.apply(Math,v)-R}},vit=function(e){var t=e===void 0?{}:e,n=t.cornerRadius,r=n===void 0?0:n,i=t.padAngle,A=i===void 0?0:i;return x.useMemo(function(){return ZHe().innerRadius(function(l){return l.innerRadius}).outerRadius(function(l){return l.outerRadius}).cornerRadius(r).padAngle(A)},[r,A])};function E4(){return E4=Object.assign?Object.assign.bind():function(e){for(var t=1;t11))throw new Error("Invalid size '"+e.size+"' for diverging color scheme '"+e.scheme+"', must be between 3~11");var c=Ll(eO[e.scheme][e.size||11]),f=function(B){return c(n(B))};return f.scale=c,f}if(Sit(e.scheme)){if(e.size!==void 0&&(e.size<3||e.size>9))throw new Error("Invalid size '"+e.size+"' for sequential color scheme '"+e.scheme+"', must be between 3~9");var h=Ll(eO[e.scheme][e.size||9]),I=function(B){return h(n(B))};return I.scale=h,I}}throw new Error("Invalid colors, when using an object, you should either pass a 'datum' or a 'scheme' property")}return function(){return e}},Mit=function(e,t){return x.useMemo(function(){return Tit(e,t)},[e,t])};function e2(){return e2=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(i[n]=e[n]);return i}let Rce,Hn,Tce,Mce,Nce,Fce,Oce,jce,Lce,Pce,Uce;Rce=function(e){var t=e.width,n=e.height,r=e.legends,i=e.data,A=e.toggleSerie;return p.jsx(p.Fragment,{children:r.map(function(l,c){var f;return p.jsx(Xse,e2({},l,{containerWidth:t,containerHeight:n,data:(f=l.data)!=null?f:i,toggleSerie:l.toggleSerie?A:void 0}),c)})})},Hn={id:"id",value:"value",sortByValue:!1,innerRadius:0,padAngle:0,cornerRadius:0,layers:["arcs","arcLinkLabels","arcLabels","legends"],startAngle:0,endAngle:360,fit:!0,activeInnerRadiusOffset:0,activeOuterRadiusOffset:0,borderWidth:0,borderColor:{from:"color",modifiers:[["darker",1]]},enableArcLabels:!0,arcLabel:"formattedValue",arcLabelsSkipAngle:0,arcLabelsRadiusOffset:.5,arcLabelsTextColor:{theme:"labels.text.fill"},enableArcLinkLabels:!0,arcLinkLabel:"id",arcLinkLabelsSkipAngle:0,arcLinkLabelsOffset:0,arcLinkLabelsDiagonalLength:16,arcLinkLabelsStraightLength:24,arcLinkLabelsThickness:1,arcLinkLabelsTextOffset:6,arcLinkLabelsTextColor:{theme:"labels.text.fill"},arcLinkLabelsColor:{theme:"axis.ticks.line.stroke"},colors:{scheme:"nivo"},defs:[],fill:[],isInteractive:!0,animate:!0,motionConfig:"gentle",transitionMode:"innerRadius",tooltip:function(e){var t=e.datum;return p.jsx(RN,{id:t.id,value:t.formattedValue,enableChip:!0,color:t.color})},legends:[],role:"img"},Tce=["points"],Mce=function(e){var t=e.data,n=e.id,r=n===void 0?Hn.id:n,i=e.value,A=i===void 0?Hn.value:i,l=e.valueFormat,c=e.colors,f=c===void 0?Hn.colors:c,h=NE(r),I=NE(A),B=NF(l),v=Mit(f,"id");return x.useMemo(function(){return t.map(function(D){var S,R=h(D),F=I(D),N={id:R,label:(S=D.label)!=null?S:R,hidden:!1,value:F,formattedValue:B(F),data:D};return e2({},N,{color:v(N)})})},[t,h,I,B,v])},Nce=function(e){var t=e.data,n=e.startAngle,r=e.endAngle,i=e.innerRadius,A=e.outerRadius,l=e.padAngle,c=e.sortByValue,f=e.activeId,h=e.activeInnerRadiusOffset,I=e.activeOuterRadiusOffset,B=e.hiddenIds,v=e.forwardLegendData,D=x.useMemo(function(){var N=rYe().value(function(M){return M.value}).startAngle(M0(n)).endAngle(M0(r)).padAngle(M0(l));return c||N.sortValues(null),N},[n,r,l,c]),S=x.useMemo(function(){var N=t.filter(function(M){return!B.includes(M.id)});return{dataWithArc:D(N).map(function(M){var P=Math.abs(M.endAngle-M.startAngle);return e2({},M.data,{arc:{index:M.index,startAngle:M.startAngle,endAngle:M.endAngle,innerRadius:f===M.data.id?i-h:i,outerRadius:f===M.data.id?A+I:A,thickness:A-i,padAngle:M.padAngle,angle:P,angleDeg:jF(P)}})}),legendData:t.map(function(M){return{id:M.id,label:M.label,color:M.color,hidden:B.includes(M.id),data:M}})}},[D,t,B,f,i,h,A,I]),R=S.legendData,F=x.useRef(v);return x.useEffect(function(){typeof F.current=="function"&&F.current(R)},[F,R]),S},Fce=function(e){var t=e.activeId,n=e.onActiveIdChange,r=e.defaultActiveId,i=t!==void 0,A=x.useState(i||r===void 0?null:r),l=A[0],c=A[1];return{activeId:i?t:l,setActiveId:x.useCallback(function(f){n&&n(f),i||c(f)},[i,n,c])}},Oce=function(e){var t=e.data,n=e.width,r=e.height,i=e.innerRadius,A=i===void 0?Hn.innerRadius:i,l=e.startAngle,c=l===void 0?Hn.startAngle:l,f=e.endAngle,h=f===void 0?Hn.endAngle:f,I=e.padAngle,B=I===void 0?Hn.padAngle:I,v=e.sortByValue,D=v===void 0?Hn.sortByValue:v,S=e.cornerRadius,R=S===void 0?Hn.cornerRadius:S,F=e.fit,N=F===void 0?Hn.fit:F,M=e.activeInnerRadiusOffset,P=M===void 0?Hn.activeInnerRadiusOffset:M,G=e.activeOuterRadiusOffset,J=G===void 0?Hn.activeOuterRadiusOffset:G,W=e.activeId,q=e.onActiveIdChange,$=e.defaultActiveId,oe=e.forwardLegendData,K=Fce({activeId:W,onActiveIdChange:q,defaultActiveId:$}),se=K.activeId,Ee=K.setActiveId,ie=x.useState([]),Ae=ie[0],Be=ie[1],ae=x.useMemo(function(){var ge,be=Math.min(n,r)/2,Te=be*Math.min(A,1),me=n/2,Ye=r/2;if(N){var rt=yit(me,Ye,be,c-90,h-90),We=rt.points,De=Sce(rt,Tce),_e=Math.min(n/De.width,r/De.height),xe={width:De.width*_e,height:De.height*_e};xe.x=(n-xe.width)/2,xe.y=(r-xe.height)/2,me=(me-De.x)/De.width*De.width*_e+xe.x,Ye=(Ye-De.y)/De.height*De.height*_e+xe.y,ge={box:De,ratio:_e,points:We},be*=_e,Te*=_e}return{centerX:me,centerY:Ye,radius:be,innerRadius:Te,debug:ge}},[n,r,A,c,h,N]),Ce=Nce({data:t,startAngle:c,endAngle:h,innerRadius:ae.innerRadius,outerRadius:ae.radius,padAngle:B,sortByValue:D,activeId:se,activeInnerRadiusOffset:P,activeOuterRadiusOffset:J,hiddenIds:Ae,forwardLegendData:oe}),de=x.useCallback(function(ge){Be(function(be){return be.indexOf(ge)>-1?be.filter(function(Te){return Te!==ge}):[].concat(be,[ge])})},[]);return e2({arcGenerator:vit({cornerRadius:R,padAngle:M0(B)}),activeId:se,setActiveId:Ee,toggleSerie:de},Ce,ae)},jce=function(e){var t=e.dataWithArc,n=e.arcGenerator,r=e.centerX,i=e.centerY,A=e.radius,l=e.innerRadius;return x.useMemo(function(){return{dataWithArc:t,arcGenerator:n,centerX:r,centerY:i,radius:A,innerRadius:l}},[t,n,r,i,A,l])},Lce=function(e){var t=e.center,n=e.data,r=e.arcGenerator,i=e.borderWidth,A=e.borderColor,l=e.isInteractive,c=e.onClick,f=e.onMouseEnter,h=e.onMouseMove,I=e.onMouseLeave,B=e.setActiveId,v=e.tooltip,D=e.transitionMode,S=NN(),R=S.showTooltipFromEvent,F=S.hideTooltip,N=x.useMemo(function(){if(l)return function(J,W){c==null||c(J,W)}},[l,c]),M=x.useMemo(function(){if(l)return function(J,W){R(x.createElement(v,{datum:J}),W),B(J.id),f==null||f(J,W)}},[l,R,B,f,v]),P=x.useMemo(function(){if(l)return function(J,W){R(x.createElement(v,{datum:J}),W),h==null||h(J,W)}},[l,R,h,v]),G=x.useMemo(function(){if(l)return function(J,W){F(),B(null),I==null||I(J,W)}},[l,F,B,I]);return p.jsx(Bit,{center:t,data:n,arcGenerator:r,borderWidth:i,borderColor:A,transitionMode:D,onClick:N,onMouseEnter:M,onMouseMove:P,onMouseLeave:G})},Pce=["isInteractive","animate","motionConfig","theme","renderWrapper"],Uce=function(e){var t=e.data,n=e.id,r=n===void 0?Hn.id:n,i=e.value,A=i===void 0?Hn.value:i,l=e.valueFormat,c=e.sortByValue,f=c===void 0?Hn.sortByValue:c,h=e.layers,I=h===void 0?Hn.layers:h,B=e.startAngle,v=B===void 0?Hn.startAngle:B,D=e.endAngle,S=D===void 0?Hn.endAngle:D,R=e.padAngle,F=R===void 0?Hn.padAngle:R,N=e.fit,M=N===void 0?Hn.fit:N,P=e.innerRadius,G=P===void 0?Hn.innerRadius:P,J=e.cornerRadius,W=J===void 0?Hn.cornerRadius:J,q=e.activeInnerRadiusOffset,$=q===void 0?Hn.activeInnerRadiusOffset:q,oe=e.activeOuterRadiusOffset,K=oe===void 0?Hn.activeOuterRadiusOffset:oe,se=e.width,Ee=e.height,ie=e.margin,Ae=e.colors,Be=Ae===void 0?Hn.colors:Ae,ae=e.borderWidth,Ce=ae===void 0?Hn.borderWidth:ae,de=e.borderColor,ge=de===void 0?Hn.borderColor:de,be=e.enableArcLabels,Te=be===void 0?Hn.enableArcLabels:be,me=e.arcLabel,Ye=me===void 0?Hn.arcLabel:me,rt=e.arcLabelsSkipAngle,We=rt===void 0?Hn.arcLabelsSkipAngle:rt,De=e.arcLabelsTextColor,_e=De===void 0?Hn.arcLabelsTextColor:De,xe=e.arcLabelsRadiusOffset,ve=xe===void 0?Hn.arcLabelsRadiusOffset:xe,Ue=e.arcLabelsComponent,At=e.enableArcLinkLabels,He=At===void 0?Hn.enableArcLinkLabels:At,gt=e.arcLinkLabel,ut=gt===void 0?Hn.arcLinkLabel:gt,bt=e.arcLinkLabelsSkipAngle,zt=bt===void 0?Hn.arcLinkLabelsSkipAngle:bt,ce=e.arcLinkLabelsOffset,mn=ce===void 0?Hn.arcLinkLabelsOffset:ce,Yn=e.arcLinkLabelsDiagonalLength,yn=Yn===void 0?Hn.arcLinkLabelsDiagonalLength:Yn,fe=e.arcLinkLabelsStraightLength,dn=fe===void 0?Hn.arcLinkLabelsStraightLength:fe,_t=e.arcLinkLabelsThickness,Pt=_t===void 0?Hn.arcLinkLabelsThickness:_t,Ve=e.arcLinkLabelsTextOffset,Nt=Ve===void 0?Hn.arcLinkLabelsTextOffset:Ve,tn=e.arcLinkLabelsTextColor,en=tn===void 0?Hn.arcLinkLabelsTextColor:tn,no=e.arcLinkLabelsColor,gr=no===void 0?Hn.arcLinkLabelsColor:no,ho=e.arcLinkLabelComponent,ro=e.defs,zr=ro===void 0?Hn.defs:ro,Uo=e.fill,Qi=Uo===void 0?Hn.fill:Uo,jA=e.isInteractive,LA=jA===void 0?Hn.isInteractive:jA,ti=e.onClick,Ti=e.onMouseEnter,Ts=e.onMouseMove,Xo=e.onMouseLeave,mA=e.tooltip,Ms=mA===void 0?Hn.tooltip:mA,ls=e.activeId,nt=e.onActiveIdChange,ft=e.defaultActiveId,kt=e.transitionMode,Zt=kt===void 0?Hn.transitionMode:kt,bn=e.legends,Qe=bn===void 0?Hn.legends:bn,Oe=e.forwardLegendData,ot=e.role,et=ot===void 0?Hn.role:ot,Ct=Nse(se,Ee,ie),ht=Ct.outerWidth,Ot=Ct.outerHeight,Qn=Ct.margin,dt=Ct.innerWidth,Wt=Ct.innerHeight,sn=Mce({data:t,id:r,value:A,valueFormat:l,colors:Be}),In=Oce({data:sn,width:dt,height:Wt,fit:M,innerRadius:G,startAngle:v,endAngle:S,padAngle:F,sortByValue:f,cornerRadius:W,activeInnerRadiusOffset:$,activeOuterRadiusOffset:K,activeId:ls,onActiveIdChange:nt,defaultActiveId:ft,forwardLegendData:Oe}),br=In.dataWithArc,po=In.legendData,mr=In.arcGenerator,Wr=In.centerX,Rn=In.centerY,y=In.radius,Ft=In.innerRadius,o=In.setActiveId,m=In.toggleSerie,Kt=BWe(zr,br,Qi),On={arcs:null,arcLinkLabels:null,arcLabels:null,legends:null};I.includes("arcs")&&(On.arcs=p.jsx(Lce,{center:[Wr,Rn],data:br,arcGenerator:mr,borderWidth:Ce,borderColor:ge,isInteractive:LA,onClick:ti,onMouseEnter:Ti,onMouseMove:Ts,onMouseLeave:Xo,setActiveId:o,tooltip:Ms,transitionMode:Zt},"arcs")),He&&I.includes("arcLinkLabels")&&(On.arcLinkLabels=p.jsx(mit,{center:[Wr,Rn],data:br,label:ut,skipAngle:zt,offset:mn,diagonalLength:yn,straightLength:dn,strokeWidth:Pt,textOffset:Nt,textColor:en,linkColor:gr,component:ho},"arcLinkLabels")),Te&&I.includes("arcLabels")&&(On.arcLabels=p.jsx(lit,{center:[Wr,Rn],data:br,label:Ye,radiusOffset:ve,skipAngle:We,textColor:_e,transitionMode:Zt,component:Ue},"arcLabels")),Qe.length>0&&I.includes("legends")&&(On.legends=p.jsx(Rce,{width:dt,height:Wt,data:po,legends:Qe,toggleSerie:m},"legends"));var PA=jce({dataWithArc:br,arcGenerator:mr,centerX:Wr,centerY:Rn,radius:y,innerRadius:Ft});return p.jsx(GF,{width:ht,height:Ot,margin:Qn,defs:Kt,role:et,children:I.map(function(jo,Tn){return On[jo]!==void 0?On[jo]:typeof jo=="function"?p.jsx(x.Fragment,{children:x.createElement(jo,PA)},Tn):null})})},Tj=function(e){var t=e.isInteractive,n=t===void 0?Hn.isInteractive:t,r=e.animate,i=r===void 0?Hn.animate:r,A=e.motionConfig,l=A===void 0?Hn.motionConfig:A,c=e.theme,f=e.renderWrapper,h=Sce(e,Pce);return p.jsx(FF,{animate:i,isInteractive:n,motionConfig:l,renderWrapper:f,theme:c,children:p.jsx(Uce,e2({isInteractive:n},h))})},Mj=function({activeStake:e,delinquentStake:t}){const n=x.useMemo(()=>[{id:"non-delinquent",label:"Non-delinquent",value:Number(e),color:FR,textColor:PB},{id:"delinquent",label:"Delinquent",value:Number(t),color:Fc,textColor:Fc}],[e,t]);return p.jsx(hs,{children:({height:r,width:i})=>p.jsx(Tj,{height:r,width:i,data:n,colors:{datum:"data.color"},enableArcLabels:!1,enableArcLinkLabels:!1,layers:["arcs",Nit],tooltip:Fit,animate:!1,innerRadius:.7})})};const Nit=({dataWithArc:e,centerX:t,centerY:n})=>{const r=sr.sum(e.map(({value:i})=>i));return p.jsx("text",{y:n-6,textAnchor:"middle",dominantBaseline:"central",style:{fontSize:"12px",fill:"red"},children:e.map(({value:i,data:A,id:l},c)=>p.jsxs("tspan",{x:t,dy:`${c}em`,style:{fill:A.textColor},children:[(i/r*100).toFixed(2),"%"]},l))})};function Fit(e){const t=e.datum.value,n=jc(BigInt(t));return p.jsx("div",{className:Wot.tooltip,children:p.jsxs(Se,{style:{whiteSpace:"nowrap"},children:[e.datum.label,":\xA0",n]})})}const Oit="_stat-row_394e1_1",Gce={statRow:Oit};function jit(){const e=Me(E2);if(!e)return null;const t=jc(e.activeStake),n=jc(e.delinquentStake);return p.jsxs(Fe,{gap:"2",flexGrow:"1",children:[p.jsxs(Fe,{direction:"column",gap:"2",children:[p.jsxs("div",{className:Gce.statRow,children:[p.jsx(ra,{label:"Total Validators",value:e.validatorCount.toString(),valueColor:Qk,large:!0}),p.jsx(ra,{label:"Non-delinquent Stake",value:t,valueColor:PB,appendValue:"SOL",large:!0})]}),p.jsxs("div",{className:Gce.statRow,children:[p.jsx(ra,{label:"RPC Nodes",value:e.rpcCount.toString(),valueColor:Vu}),p.jsx(ra,{label:"Delinquent Stake",value:n,valueColor:Fc,appendValue:"SOL"})]})]}),p.jsx(Bo,{style:{minWidth:"200px"},children:p.jsx(Mj,{activeStake:e.activeStake,delinquentStake:e.delinquentStake})})]})}function Lit(){return Me(E2)?p.jsx(bu,{style:{flexGrow:1},children:p.jsxs(Fe,{direction:"column",height:"100%",gap:"2",children:[p.jsx(mf,{text:"Validators"}),p.jsx(jit,{})]})}):null}const Pit="_progress_zsw8r_1",Uit="_stat-row_zsw8r_11",Git="_vote-distance_zsw8r_23",B4={progress:Pit,statRow:Uit,voteDistance:Git};function Hit(){return p.jsx(bu,{style:{flexGrow:1},children:p.jsxs(Fe,{direction:"column",height:"100%",gap:"2",align:"start",children:[p.jsx(mf,{text:"Status"}),p.jsxs("div",{className:B4.statRow,children:[p.jsx(Yit,{}),p.jsx(zit,{})]}),p.jsxs("div",{className:B4.statRow,children:[p.jsx(Wit,{}),p.jsx(Jit,{})]})]})})}function Yit(){const e=Me($i);return p.jsx(Bo,{children:p.jsx(ra,{label:"Slot",value:(e==null?void 0:e.toString())??"",valueColor:Vu,large:!0})})}function Jit(){const{nextLeaderSlot:e}=Pw({showNowIfCurrent:!0});return p.jsx(ra,{label:"Next leader slot",value:(e==null?void 0:e.toString())??"\u221E",valueColor:$S,valueStyle:e===void 0?{fontSize:"32px",lineHeight:"16px"}:void 0})}function zit(){const{progressSinceLastLeader:e,nextSlotText:t}=Pw({showNowIfCurrent:!0});return p.jsxs(Fe,{direction:"column",children:[p.jsx(ra,{label:"Time until leader",value:t,valueColor:Vu,large:!0}),p.jsx(Cg,{value:e,size:"1",className:B4.progress})]})}function Wit(){const e=Me(Lb);let t=xQ;return e==="voting"?t=su:e==="non-voting"?t=eR:e==="delinquent"&&(t=Fc),p.jsx(ra,{label:"Vote Status",value:e??"Unknown",valueColor:t,children:p.jsx(qit,{})})}function qit(){const e=Me(AS),t=Me(Lb);if(e==null||t==="delinquent")return null;const n=e>150?"> 150":e;return p.jsxs(Se,{className:B4.voteDistance,children:[n," behind"]})}const Xit="_progress_10fd6_1",Vit="_stat-row_10fd6_11",tO={progress:Xit,statRow:Vit};function Kit(){return p.jsx(bu,{style:{flexGrow:1},children:p.jsxs(Fe,{direction:"column",height:"100%",gap:"2",align:"start",children:[p.jsx(mf,{text:"Epoch"}),p.jsx("div",{className:tO.statRow,children:p.jsx(Zit,{})}),p.jsx("div",{className:tO.statRow,children:p.jsx($it,{})})]})})}function Zit(){var t;const e=Me(vi);return p.jsx(Bo,{children:p.jsx(ra,{label:"Current Epoch",value:((t=e==null?void 0:e.epoch)==null?void 0:t.toString())??"",valueColor:Vu,large:!0})})}function $it(){const e=Me($i),t=Me(vi),n=Me(Jg),r=x.useMemo(()=>{if(t===void 0||e===void 0)return"";const A=(t.end_slot-e)*n,l=Nr.fromMillis(A).rescale();return Ug(l)},[t,e,n]),i=x.useMemo(()=>{if(t===void 0||e===void 0)return 0;const A=e-t.start_slot,l=t.end_slot-t.start_slot,c=A/l*100;return c<0||c>100?0:c},[t,e]);return p.jsxs(Fe,{direction:"column",children:[p.jsx(ra,{label:"Time to Next Epoch",value:r,valueColor:Vu,large:!0}),p.jsx(Cg,{value:i,size:"1",className:tO.progress})]})}const eAt=["netlnk","metric","ipecho","gossvf","gossip","repair","replay","exec","tower","send","sign","rpc","gui"];function tAt(){const{tileCounts:e,groupedLiveIdlePerTile:t,showLive:n,queryIdleData:r}=Sae();return p.jsx("div",{className:_ae.container,children:eAt.map(i=>p.jsx(Ds,{header:i,tileCount:e[i],liveIdlePerTile:t==null?void 0:t[i],queryIdlePerTile:n||r==null?void 0:r[i],statLabel:""},i))})}function nAt(){if(Me(Oc)===Au.Firedancer)return p.jsx(bu,{children:p.jsxs(Fe,{direction:"column",gap:"4",children:[p.jsx(mf,{text:"Shreds"}),p.jsx(DM,{chartId:"overview-shreds-chart",chartHeight:400,pauseDrawingDuringStartup:!0}),p.jsx(tAt,{})]})})}function rAt(){return p.jsxs(Fe,{direction:"column",gap:"4",flexGrow:"1",children:[p.jsxs(Fe,{gap:"16px",align:"stretch",wrap:"wrap",children:[p.jsx(Kit,{}),p.jsx(Hit,{}),p.jsx(Lit,{}),p.jsx(Jot,{})]}),p.jsx(nAt,{}),p.jsx(Rae,{})]})}const oAt=bg("/")({component:rAt}),iAt=H9.update({id:"/slotDetails",path:"/slotDetails",getParentRoute:()=>v1}),AAt=ZE.update({id:"/leaderSchedule",path:"/leaderSchedule",getParentRoute:()=>v1}),sAt=Mot.update({id:"/gossip",path:"/gossip",getParentRoute:()=>v1}),aAt=Oot.update({id:"/about",path:"/about",getParentRoute:()=>v1}),lAt=oAt.update({id:"/",path:"/",getParentRoute:()=>v1}),cAt={IndexRoute:lAt,AboutRoute:aAt,GossipRoute:sAt,LeaderScheduleRoute:AAt,SlotDetailsRoute:iAt},uAt=v1._addFileChildren(cAt)._addFileTypes();function Hce(e){return(t,...n)=>{console[e](`(${Gn.now().toISO({includeOffset:!1})??""}) [${t}]`,...n)}}const J1=Hce("debug"),dAt=Hce("warn"),Yce=3e3;let Jce;function fAt(e,t,n,r){let i,A=!1;function l(){J1("WS",`Connecting to API WebSocket ${e.toString()}`),n({socketState:xs.Connecting}),i=new WebSocket(e,["compress-zstd"]),i.binaryType="arraybuffer",i.onopen=function(){this!==i||A||(J1("WS","Connected to API WebSocket"),n({socketState:xs.Connected}))},i.onclose=function(){this!==i||A||(J1("WS",`Disconnected API WebSocket, reconnecting in ${Yce}ms`),n({socketState:xs.Disconnected}),clearTimeout(Jce),Jce=setTimeout(l,Yce))};const h=new TextDecoder;i.onmessage=function(I){if(!(this!==i||A||!r))try{const B=I.data;let v;typeof B=="string"?v=JSON.parse(B):B instanceof ArrayBuffer&&(v=JSON.parse(h.decode(r.ZstdStream.decompress(new Uint8Array(B))))),t(v)}catch(B){console.error(B)}}}l();function c(h){if(A){J1("WS","Attempting to send after disposing",h);return}i&&i.readyState===WebSocket.OPEN?i.send(JSON.stringify(h)):dAt("WS","Attempting to send on closed WebSocket",h)}function f(){if(A){J1("WS","Dispose called after disposing");return}A=!0,J1("WS","Closing API WebSocket"),n({socketState:xs.Disconnected}),i.onopen=null,i.onclose=null,i.onerror=null,i.onmessage=null,i.close()}return[c,f]}var zce=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function y4(e){var t={exports:{}};return e(t,t.exports),t.exports}var v4=function(e){return e&&e.Math==Math&&e},Sn=v4(typeof globalThis=="object"&&globalThis)||v4(typeof window=="object"&&window)||v4(typeof self=="object"&&self)||v4(typeof zce=="object"&&zce)||function(){return this}()||Function("return this")(),ku=function(e){try{return!!e()}catch{return!0}},Du=!ku(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7}),Wce={}.propertyIsEnumerable,qce=Object.getOwnPropertyDescriptor,Xce={f:qce&&!Wce.call({1:2},1)?function(e){var t=qce(this,e);return!!t&&t.enumerable}:Wce},z1=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},gAt={}.toString,W1=function(e){return gAt.call(e).slice(8,-1)},hAt="".split,Vce=ku(function(){return!Object("z").propertyIsEnumerable(0)})?function(e){return W1(e)=="String"?hAt.call(e,""):Object(e)}:Object,nO=function(e){if(e==null)throw TypeError("Can't call method on "+e);return e},b4=function(e){return Vce(nO(e))},Ql=function(e){return typeof e=="object"?e!==null:typeof e=="function"},Kce=function(e,t){if(!Ql(e))return e;var n,r;if(typeof(n=e.toString)=="function"&&!Ql(r=n.call(e))||typeof(n=e.valueOf)=="function"&&!Ql(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")},pAt={}.hasOwnProperty,as=function(e,t){return pAt.call(e,t)},rO=Sn.document,mAt=Ql(rO)&&Ql(rO.createElement),Q4=function(e){return mAt?rO.createElement(e):{}},Zce=!Du&&!ku(function(){return Object.defineProperty(Q4("div"),"a",{get:function(){return 7}}).a!=7}),$ce=Object.getOwnPropertyDescriptor,oO={f:Du?$ce:function(e,t){if(e=b4(e),t=Kce(t),Zce)try{return $ce(e,t)}catch{}if(as(e,t))return z1(!Xce.f.call(e,t),e[t])}},wc=function(e){if(!Ql(e))throw TypeError(String(e)+" is not an object");return e},eue=Object.defineProperty,t2={f:Du?eue:function(e,t,n){if(wc(e),t=Kce(t),wc(n),Zce)try{return eue(e,t,n)}catch{}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},oa=Du?function(e,t,n){return t2.f(e,t,z1(1,n))}:function(e,t,n){return e[t]=n,e},iO=function(e,t){try{oa(Sn,e,t)}catch{Sn[e]=t}return t},n2=Sn["__core-js_shared__"]||iO("__core-js_shared__",{}),IAt=Function.toString;typeof n2.inspectSource!="function"&&(n2.inspectSource=function(e){return IAt.call(e)});var w4,$E,x4,AO=n2.inspectSource,tue=Sn.WeakMap,CAt=typeof tue=="function"&&/native code/.test(AO(tue)),nue=y4(function(e){(e.exports=function(t,n){return n2[t]||(n2[t]=n!==void 0?n:{})})("versions",[]).push({version:"3.9.0",mode:"global",copyright:"\xA9 2021 Denis Pushkarev (zloirock.ru)"})}),EAt=0,BAt=Math.random(),sO=function(e){return"Symbol("+String(e===void 0?"":e)+")_"+(++EAt+BAt).toString(36)},rue=nue("keys"),aO=function(e){return rue[e]||(rue[e]=sO(e))},lO={},yAt=Sn.WeakMap;if(CAt){var q1=n2.state||(n2.state=new yAt),vAt=q1.get,bAt=q1.has,QAt=q1.set;w4=function(e,t){return t.facade=e,QAt.call(q1,e,t),t},$E=function(e){return vAt.call(q1,e)||{}},x4=function(e){return bAt.call(q1,e)}}else{var eB=aO("state");lO[eB]=!0,w4=function(e,t){return t.facade=e,oa(e,eB,t),t},$E=function(e){return as(e,eB)?e[eB]:{}},x4=function(e){return as(e,eB)}}var O0={set:w4,get:$E,has:x4,enforce:function(e){return x4(e)?$E(e):w4(e,{})},getterFor:function(e){return function(t){var n;if(!Ql(t)||(n=$E(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},X1=y4(function(e){var t=O0.get,n=O0.enforce,r=String(String).split("String");(e.exports=function(i,A,l,c){var f,h=!!c&&!!c.unsafe,I=!!c&&!!c.enumerable,B=!!c&&!!c.noTargetGet;typeof l=="function"&&(typeof A!="string"||as(l,"name")||oa(l,"name",A),(f=n(l)).source||(f.source=r.join(typeof A=="string"?A:""))),i!==Sn?(h?!B&&i[A]&&(I=!0):delete i[A],I?i[A]=l:oa(i,A,l)):I?i[A]=l:iO(A,l)})(Function.prototype,"toString",function(){return typeof this=="function"&&t(this).source||AO(this)})}),bf=Sn,oue=function(e){return typeof e=="function"?e:void 0},Su=function(e,t){return arguments.length<2?oue(bf[e])||oue(Sn[e]):bf[e]&&bf[e][t]||Sn[e]&&Sn[e][t]},wAt=Math.ceil,xAt=Math.floor,cO=function(e){return isNaN(e=+e)?0:(e>0?xAt:wAt)(e)},_At=Math.min,uO=function(e){return e>0?_At(cO(e),9007199254740991):0},kAt=Math.max,DAt=Math.min,_4=function(e,t){var n=cO(e);return n<0?kAt(n+t,0):DAt(n,t)},SAt=function(e){return function(t,n,r){var i,A=b4(t),l=uO(A.length),c=_4(r,l);if(e&&n!=n){for(;l>c;)if((i=A[c++])!=i)return!0}else for(;l>c;c++)if((e||c in A)&&A[c]===n)return e||c||0;return!e&&-1}},RAt={indexOf:SAt(!1)}.indexOf,iue=function(e,t){var n,r=b4(e),i=0,A=[];for(n in r)!as(lO,n)&&as(r,n)&&A.push(n);for(;t.length>i;)as(r,n=t[i++])&&(~RAt(A,n)||A.push(n));return A},k4=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],TAt=k4.concat("length","prototype"),MAt={f:Object.getOwnPropertyNames||function(e){return iue(e,TAt)}},Aue={f:Object.getOwnPropertySymbols},NAt=Su("Reflect","ownKeys")||function(e){var t=MAt.f(wc(e)),n=Aue.f;return n?t.concat(n(e)):t},FAt=function(e,t){for(var n=NAt(t),r=t2.f,i=oO.f,A=0;Ai;)for(var c,f=Vce(arguments[i++]),h=A?D4(f).concat(A(f)):D4(f),I=h.length,B=0;I>B;)c=h[B++],Du&&!l.call(f,c)||(n[c]=f[c]);return n}:V1;wl({target:"Object",stat:!0,forced:Object.assign!==lue},{assign:lue}),bf.Object.assign;var HAt=typeof ArrayBuffer<"u"&&typeof DataView<"u",cue=!!Object.getOwnPropertySymbols&&!ku(function(){return!String(Symbol())}),YAt=cue&&!Symbol.sham&&typeof Symbol.iterator=="symbol",S4=nue("wks"),nB=Sn.Symbol,JAt=YAt?nB:nB&&nB.withoutSetter||sO,Rs=function(e){return as(S4,e)||(cue&&as(nB,e)?S4[e]=nB[e]:S4[e]=JAt("Symbol."+e)),S4[e]},uue={};uue[Rs("toStringTag")]="z";var xl,fO=String(uue)==="[object z]",zAt=Rs("toStringTag"),WAt=W1(function(){return arguments}())=="Arguments",R4=fO?W1:function(e){var t,n,r;return e===void 0?"Undefined":e===null?"Null":typeof(n=function(i,A){try{return i[A]}catch{}}(t=Object(e),zAt))=="string"?n:WAt?W1(t):(r=W1(t))=="Object"&&typeof t.callee=="function"?"Arguments":r},qAt=!ku(function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}),due=aO("IE_PROTO"),XAt=Object.prototype,Qf=qAt?Object.getPrototypeOf:function(e){return e=dO(e),as(e,due)?e[due]:typeof e.constructor=="function"&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?XAt:null},wf=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch{}return function(r,i){return wc(r),function(A){if(!Ql(A)&&A!==null)throw TypeError("Can't set "+String(A)+" as a prototype")}(i),t?e.call(r,i):r.__proto__=i,r}}():void 0),VAt=t2.f,T4=Sn.Int8Array,gO=T4&&T4.prototype,fue=Sn.Uint8ClampedArray,gue=fue&&fue.prototype,rB=T4&&Qf(T4),Ru=gO&&Qf(gO),KAt=Object.prototype,hue=Rs("toStringTag"),pue=sO("TYPED_ARRAY_TAG"),r2=HAt&&!!wf&&R4(Sn.opera)!=="Opera",oB={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},ZAt={BigInt64Array:8,BigUint64Array:8},$At=function(e){if(!Ql(e))return!1;var t=R4(e);return as(oB,t)||as(ZAt,t)};for(xl in oB)Sn[xl]||(r2=!1);if((!r2||typeof rB!="function"||rB===Function.prototype)&&(rB=function(){throw TypeError("Incorrect invocation")},r2))for(xl in oB)Sn[xl]&&wf(Sn[xl],rB);if((!r2||!Ru||Ru===KAt)&&(Ru=rB.prototype,r2))for(xl in oB)Sn[xl]&&wf(Sn[xl].prototype,Ru);if(r2&&Qf(gue)!==Ru&&wf(gue,Ru),Du&&!as(Ru,hue))for(xl in VAt(Ru,hue,{get:function(){return Ql(this)?this[pue]:void 0}}),oB)Sn[xl]&&oa(Sn[xl],pue,xl);var est=function(e){if($At(e))return e;throw TypeError("Target is not a typed array")},tst=function(e,t,n){Du&&(Ru[e]||X1(Ru,e,r2&&gO[e]||t))},nst=Math.min,rst=[].copyWithin||function(e,t){var n=dO(this),r=uO(n.length),i=_4(e,r),A=_4(t,r),l=arguments.length>2?arguments[2]:void 0,c=nst((l===void 0?r:_4(l,r))-A,r-i),f=1;for(A0;)A in n?n[i]=n[A]:delete n[i],i+=f,A+=f;return n},ost=est;tst("copyWithin",function(e,t){return rst.call(ost(this),e,t,arguments.length>2?arguments[2]:void 0)});var hO,ist=Du?Object.defineProperties:function(e,t){wc(e);for(var n,r=D4(t),i=r.length,A=0;i>A;)t2.f(e,n=r[A++],t[n]);return e},pO=Su("document","documentElement"),mue=aO("IE_PROTO"),mO=function(){},Iue=function(e){return" - - - - -
- - diff --git a/src/disco/gui/dist_alpha/version b/src/disco/gui/dist_alpha/version deleted file mode 100644 index c1ddba094d9..00000000000 --- a/src/disco/gui/dist_alpha/version +++ /dev/null @@ -1 +0,0 @@ -36cb3e03a850ac900fe8b9fec08115ca048101c5 diff --git a/src/disco/gui/dist_stable/assets/firedancer-D_J0EzUc.svg b/src/disco/gui/dist_stable/assets/firedancer-D_J0EzUc.svg deleted file mode 100644 index f698d4aa67e..00000000000 --- a/src/disco/gui/dist_stable/assets/firedancer-D_J0EzUc.svg +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/disco/gui/dist_stable/assets/firedancer_logo-CrgwxzPk.svg b/src/disco/gui/dist_stable/assets/firedancer_logo-CrgwxzPk.svg deleted file mode 100644 index 8fe2b94452c..00000000000 --- a/src/disco/gui/dist_stable/assets/firedancer_logo-CrgwxzPk.svg +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/disco/gui/dist_stable/assets/frankendancer-0Top5G94.svg b/src/disco/gui/dist_stable/assets/frankendancer-0Top5G94.svg deleted file mode 100644 index 33cb1c0a284..00000000000 --- a/src/disco/gui/dist_stable/assets/frankendancer-0Top5G94.svg +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/disco/gui/dist_stable/assets/frankendancer_logo-CHyfJ772.svg b/src/disco/gui/dist_stable/assets/frankendancer_logo-CHyfJ772.svg deleted file mode 100644 index 530d9833eb7..00000000000 --- a/src/disco/gui/dist_stable/assets/frankendancer_logo-CHyfJ772.svg +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/disco/gui/dist_stable/assets/index-CvU-WPyd.js b/src/disco/gui/dist_stable/assets/index-CvU-WPyd.js deleted file mode 100644 index 4dd22714eda..00000000000 --- a/src/disco/gui/dist_stable/assets/index-CvU-WPyd.js +++ /dev/null @@ -1,214 +0,0 @@ -var r_e=Object.defineProperty;var i_e=(e,t,n)=>t in e?r_e(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var $u=(e,t,n)=>i_e(e,typeof t!="symbol"?t+"":t,n);var fC,Yme,Kme,Xme;function o_e(e,t){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function t(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(r){if(r.ep)return;r.ep=!0;const i=t(r);fetch(r.href,i)}})();var Ac=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function to(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var wD={exports:{}},v2={},kD={exports:{}},gn={};/** -* @license React -* react.production.min.js -* -* Copyright (c) Facebook, Inc. and its affiliates. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/var hv=Symbol.for("react.element"),a_e=Symbol.for("react.portal"),s_e=Symbol.for("react.fragment"),l_e=Symbol.for("react.strict_mode"),u_e=Symbol.for("react.profiler"),c_e=Symbol.for("react.provider"),d_e=Symbol.for("react.context"),f_e=Symbol.for("react.forward_ref"),h_e=Symbol.for("react.suspense"),p_e=Symbol.for("react.memo"),m_e=Symbol.for("react.lazy"),SD=Symbol.iterator;function g_e(e){return e===null||typeof e!="object"?null:(e=SD&&e[SD]||e["@@iterator"],typeof e=="function"?e:null)}var CD={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},jD=Object.assign,TD={};function Jm(e,t,n){this.props=e,this.context=t,this.refs=TD,this.updater=n||CD}Jm.prototype.isReactComponent={},Jm.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},Jm.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ID(){}ID.prototype=Jm.prototype;function uj(e,t,n){this.props=e,this.context=t,this.refs=TD,this.updater=n||CD}var cj=uj.prototype=new ID;cj.constructor=uj,jD(cj,Jm.prototype),cj.isPureReactComponent=!0;var ED=Array.isArray,ND=Object.prototype.hasOwnProperty,dj={current:null},$D={key:!0,ref:!0,__self:!0,__source:!0};function MD(e,t,n){var r,i={},o=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(o=""+t.key),t)ND.call(t,r)&&!$D.hasOwnProperty(r)&&(i[r]=t[r]);var s=arguments.length-2;if(s===1)i.children=n;else if(1>>1,U=F[ce];if(0>>1;cei(me,ee))kei(he,me)?(F[ce]=he,F[ke]=ee,ce=ke):(F[ce]=me,F[je]=ee,ce=je);else if(kei(he,ee))F[ce]=he,F[ke]=ee,ce=ke;else break e}}return H}function i(F,H){var ee=F.sortIndex-H.sortIndex;return ee!==0?ee:F.id-H.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var l=[],c=[],d=1,f=null,p=3,v=!1,_=!1,y=!1,b=typeof setTimeout=="function"?setTimeout:null,w=typeof clearTimeout=="function"?clearTimeout:null,x=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function S(F){for(var H=n(c);H!==null;){if(H.callback===null)r(c);else if(H.startTime<=F)r(c),H.sortIndex=H.expirationTime,t(l,H);else break;H=n(c)}}function C(F){if(y=!1,S(F),!_)if(n(l)!==null)_=!0,D(j);else{var H=n(c);H!==null&&Y(C,H.startTime-F)}}function j(F,H){_=!1,y&&(y=!1,w($),$=-1),v=!0;var ee=p;try{for(S(H),f=n(l);f!==null&&(!(f.expirationTime>H)||F&&!P());){var ce=f.callback;if(typeof ce=="function"){f.callback=null,p=f.priorityLevel;var U=ce(f.expirationTime<=H);H=e.unstable_now(),typeof U=="function"?f.callback=U:f===n(l)&&r(l),S(H)}else r(l);f=n(l)}if(f!==null)var ae=!0;else{var je=n(c);je!==null&&Y(C,je.startTime-H),ae=!1}return ae}finally{f=null,p=ee,v=!1}}var T=!1,E=null,$=-1,A=5,M=-1;function P(){return!(e.unstable_now()-MF||125ce?(F.sortIndex=ee,t(c,F),n(l)===null&&F===n(c)&&(y?(w($),$=-1):y=!0,Y(C,ee-ce))):(F.sortIndex=U,t(l,F),_||v||(_=!0,D(j))),F},e.unstable_shouldYield=P,e.unstable_wrapCallback=function(F){var H=p;return function(){var ee=p;p=H;try{return F.apply(this,arguments)}finally{p=ee}}}})(DD),zD.exports=DD;var T_e=zD.exports;/** -* @license React -* react-dom.production.min.js -* -* Copyright (c) Facebook, Inc. and its affiliates. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/var I_e=m,is=T_e;function Ze(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),gj=Object.prototype.hasOwnProperty,E_e=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,FD={},BD={};function N_e(e){return gj.call(BD,e)?!0:gj.call(FD,e)?!1:E_e.test(e)?BD[e]=!0:(FD[e]=!0,!1)}function $_e(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function M_e(e,t,n,r){if(t===null||typeof t>"u"||$_e(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function ia(e,t,n,r,i,o,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=a}var yo={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){yo[e]=new ia(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];yo[t]=new ia(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){yo[e]=new ia(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){yo[e]=new ia(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){yo[e]=new ia(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){yo[e]=new ia(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){yo[e]=new ia(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){yo[e]=new ia(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){yo[e]=new ia(e,5,!1,e.toLowerCase(),null,!1,!1)});var vj=/[\-:]([a-z])/g;function yj(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(vj,yj);yo[t]=new ia(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(vj,yj);yo[t]=new ia(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(vj,yj);yo[t]=new ia(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){yo[e]=new ia(e,1,!1,e.toLowerCase(),null,!1,!1)}),yo.xlinkHref=new ia("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){yo[e]=new ia(e,1,!1,e.toLowerCase(),null,!0,!0)});function bj(e,t,n,r){var i=yo.hasOwnProperty(t)?yo[t]:null;(i!==null?i.type!==0:r||!(2s||i[a]!==o[s]){var l=` -`+i[a].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=a&&0<=s);break}}}finally{Tj=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?gv(e):""}function L_e(e){switch(e.tag){case 5:return gv(e.type);case 16:return gv("Lazy");case 13:return gv("Suspense");case 19:return gv("SuspenseList");case 0:case 2:case 15:return e=Ij(e.type,!1),e;case 11:return e=Ij(e.type.render,!1),e;case 1:return e=Ij(e.type,!0),e;default:return""}}function Ej(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case t0:return"Fragment";case e0:return"Portal";case xj:return"Profiler";case _j:return"StrictMode";case kj:return"Suspense";case Sj:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case WD:return(e.displayName||"Context")+".Consumer";case UD:return(e._context.displayName||"Context")+".Provider";case wj:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Cj:return t=e.displayName||null,t!==null?t:Ej(e.type)||"Memo";case ef:t=e._payload,e=e._init;try{return Ej(e(t))}catch{}}return null}function R_e(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ej(t);case 8:return t===_j?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function tf(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ZD(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function O_e(e){var t=ZD(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(a){r=""+a,o.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function w2(e){e._valueTracker||(e._valueTracker=O_e(e))}function qD(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ZD(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function k2(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Nj(e,t){var n=t.checked;return Jr({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function GD(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=tf(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function YD(e,t){t=t.checked,t!=null&&bj(e,"checked",t,!1)}function $j(e,t){YD(e,t);var n=tf(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Mj(e,t.type,n):t.hasOwnProperty("defaultValue")&&Mj(e,t.type,tf(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function KD(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Mj(e,t,n){(t!=="number"||k2(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var vv=Array.isArray;function n0(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=S2.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function yv(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var bv={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},P_e=["Webkit","ms","Moz","O"];Object.keys(bv).forEach(function(e){P_e.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),bv[t]=bv[e]})});function nA(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||bv.hasOwnProperty(e)&&bv[e]?(""+t).trim():t+"px"}function rA(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=nA(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var z_e=Jr({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Oj(e,t){if(t){if(z_e[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(Ze(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(Ze(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(Ze(61))}if(t.style!=null&&typeof t.style!="object")throw Error(Ze(62))}}function Pj(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var zj=null;function Dj(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Aj=null,r0=null,i0=null;function iA(e){if(e=Bv(e)){if(typeof Aj!="function")throw Error(Ze(280));var t=e.stateNode;t&&(t=q2(t),Aj(e.stateNode,e.type,t))}}function oA(e){r0?i0?i0.push(e):i0=[e]:r0=e}function aA(){if(r0){var e=r0,t=i0;if(i0=r0=null,iA(e),t)for(e=0;e>>=0,e===0?32:31-(G_e(e)/Y_e|0)|0}var E2=64,N2=4194304;function kv(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function $2(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,o=e.pingedLanes,a=n&268435455;if(a!==0){var s=a&~i;s!==0?r=kv(s):(o&=a,o!==0&&(r=kv(o)))}else a=n&~i,a!==0?r=kv(a):o!==0&&(r=kv(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,o=t&-t,i>=o||i===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Sv(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Nl(t),e[t]=n}function Q_e(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Mv),RA=" ",OA=!1;function PA(e,t){switch(e){case"keyup":return Txe.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function zA(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var s0=!1;function Exe(e,t){switch(e){case"compositionend":return zA(t);case"keypress":return t.which!==32?null:(OA=!0,RA);case"textInput":return e=t.data,e===RA&&OA?null:e;default:return null}}function Nxe(e,t){if(s0)return e==="compositionend"||!r8&&PA(e,t)?(e=IA(),P2=Xj=sf=null,s0=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=VA(n)}}function ZA(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?ZA(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function qA(){for(var e=window,t=k2();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=k2(e.document)}return t}function a8(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Axe(e){var t=qA(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&ZA(n.ownerDocument.documentElement,n)){if(r!==null&&a8(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,o=Math.min(r.start,i);r=r.end===void 0?o:Math.min(r.end,i),!e.extend&&o>r&&(i=r,r=o,o=i),i=HA(n,o);var a=HA(n,r);i&&a&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,l0=null,s8=null,Pv=null,l8=!1;function GA(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;l8||l0==null||l0!==k2(r)||(r=l0,"selectionStart"in r&&a8(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Pv&&Ov(Pv,r)||(Pv=r,r=V2(s8,"onSelect"),0h0||(e.current=_8[h0],_8[h0]=null,h0--)}function jr(e,t){h0++,_8[h0]=e.current,e.current=t}var df={},Oo=cf(df),Na=cf(!1),Ph=df;function p0(e,t){var n=e.type.contextTypes;if(!n)return df;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in n)i[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function $a(e){return e=e.childContextTypes,e!=null}function G2(){Or(Na),Or(Oo)}function uF(e,t,n){if(Oo.current!==df)throw Error(Ze(168));jr(Oo,t),jr(Na,n)}function cF(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(Ze(108,R_e(e)||"Unknown",i));return Jr({},n,r)}function Y2(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||df,Ph=Oo.current,jr(Oo,e),jr(Na,Na.current),!0}function dF(e,t,n){var r=e.stateNode;if(!r)throw Error(Ze(169));n?(e=cF(e,t,Ph),r.__reactInternalMemoizedMergedChildContext=e,Or(Na),Or(Oo),jr(Oo,e)):Or(Na),jr(Na,n)}var Wc=null,K2=!1,x8=!1;function fF(e){Wc===null?Wc=[e]:Wc.push(e)}function Xxe(e){K2=!0,fF(e)}function ff(){if(!x8&&Wc!==null){x8=!0;var e=0,t=Qn;try{var n=Wc;for(Qn=1;e>=a,i-=a,Vc=1<<32-Nl(t)+i|n<$?(A=E,E=null):A=E.sibling;var M=p(w,E,S[$],C);if(M===null){E===null&&(E=A);break}e&&E&&M.alternate===null&&t(w,E),x=o(M,x,$),T===null?j=M:T.sibling=M,T=M,E=A}if($===S.length)return n(w,E),Hr&&Dh(w,$),j;if(E===null){for(;$$?(A=E,E=null):A=E.sibling;var P=p(w,E,M.value,C);if(P===null){E===null&&(E=A);break}e&&E&&P.alternate===null&&t(w,E),x=o(P,x,$),T===null?j=P:T.sibling=P,T=P,E=A}if(M.done)return n(w,E),Hr&&Dh(w,$),j;if(E===null){for(;!M.done;$++,M=S.next())M=f(w,M.value,C),M!==null&&(x=o(M,x,$),T===null?j=M:T.sibling=M,T=M);return Hr&&Dh(w,$),j}for(E=r(w,E);!M.done;$++,M=S.next())M=v(E,w,$,M.value,C),M!==null&&(e&&M.alternate!==null&&E.delete(M.key===null?$:M.key),x=o(M,x,$),T===null?j=M:T.sibling=M,T=M);return e&&E.forEach(function(te){return t(w,te)}),Hr&&Dh(w,$),j}function b(w,x,S,C){if(typeof S=="object"&&S!==null&&S.type===t0&&S.key===null&&(S=S.props.children),typeof S=="object"&&S!==null){switch(S.$$typeof){case x2:e:{for(var j=S.key,T=x;T!==null;){if(T.key===j){if(j=S.type,j===t0){if(T.tag===7){n(w,T.sibling),x=i(T,S.props.children),x.return=w,w=x;break e}}else if(T.elementType===j||typeof j=="object"&&j!==null&&j.$$typeof===ef&&yF(j)===T.type){n(w,T.sibling),x=i(T,S.props),x.ref=Uv(w,T,S),x.return=w,w=x;break e}n(w,T);break}else t(w,T);T=T.sibling}S.type===t0?(x=Zh(S.props.children,w.mode,C,S.key),x.return=w,w=x):(C=Sw(S.type,S.key,S.props,null,w.mode,C),C.ref=Uv(w,x,S),C.return=w,w=C)}return a(w);case e0:e:{for(T=S.key;x!==null;){if(x.key===T)if(x.tag===4&&x.stateNode.containerInfo===S.containerInfo&&x.stateNode.implementation===S.implementation){n(w,x.sibling),x=i(x,S.children||[]),x.return=w,w=x;break e}else{n(w,x);break}else t(w,x);x=x.sibling}x=v9(S,w.mode,C),x.return=w,w=x}return a(w);case ef:return T=S._init,b(w,x,T(S._payload),C)}if(vv(S))return _(w,x,S,C);if(mv(S))return y(w,x,S,C);ew(w,S)}return typeof S=="string"&&S!==""||typeof S=="number"?(S=""+S,x!==null&&x.tag===6?(n(w,x.sibling),x=i(x,S),x.return=w,w=x):(n(w,x),x=g9(S,w.mode,C),x.return=w,w=x),a(w)):n(w,x)}return b}var y0=bF(!0),_F=bF(!1),tw=cf(null),nw=null,b0=null,T8=null;function I8(){T8=b0=nw=null}function E8(e){var t=tw.current;Or(tw),e._currentValue=t}function N8(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function _0(e,t){nw=e,T8=b0=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Ma=!0),e.firstContext=null)}function qs(e){var t=e._currentValue;if(T8!==e)if(e={context:e,memoizedValue:t,next:null},b0===null){if(nw===null)throw Error(Ze(308));b0=e,nw.dependencies={lanes:0,firstContext:e}}else b0=b0.next=e;return t}var Ah=null;function $8(e){Ah===null?Ah=[e]:Ah.push(e)}function xF(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,$8(t)):(n.next=i.next,i.next=n),t.interleaved=n,Zc(e,r)}function Zc(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var hf=!1;function M8(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function wF(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function qc(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function pf(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Nn&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Zc(e,n)}return i=r.interleaved,i===null?(t.next=t,$8(r)):(t.next=i.next,i.next=t),r.interleaved=t,Zc(e,n)}function rw(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Zj(e,n)}}function kF(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?i=o=a:o=o.next=a,n=n.next}while(n!==null);o===null?i=o=t:o=o.next=t}else i=o=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function iw(e,t,n,r){var i=e.updateQueue;hf=!1;var o=i.firstBaseUpdate,a=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var l=s,c=l.next;l.next=null,a===null?o=c:a.next=c,a=l;var d=e.alternate;d!==null&&(d=d.updateQueue,s=d.lastBaseUpdate,s!==a&&(s===null?d.firstBaseUpdate=c:s.next=c,d.lastBaseUpdate=l))}if(o!==null){var f=i.baseState;a=0,d=c=l=null,s=o;do{var p=s.lane,v=s.eventTime;if((r&p)===p){d!==null&&(d=d.next={eventTime:v,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var _=e,y=s;switch(p=t,v=n,y.tag){case 1:if(_=y.payload,typeof _=="function"){f=_.call(v,f,p);break e}f=_;break e;case 3:_.flags=_.flags&-65537|128;case 0:if(_=y.payload,p=typeof _=="function"?_.call(v,f,p):_,p==null)break e;f=Jr({},f,p);break e;case 2:hf=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,p=i.effects,p===null?i.effects=[s]:p.push(s))}else v={eventTime:v,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},d===null?(c=d=v,l=f):d=d.next=v,a|=p;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(!0);if(d===null&&(l=f),i.baseState=l,i.firstBaseUpdate=c,i.lastBaseUpdate=d,t=i.shared.interleaved,t!==null){i=t;do a|=i.lane,i=i.next;while(i!==t)}else o===null&&(i.shared.lanes=0);Uh|=a,e.lanes=a,e.memoizedState=f}}function SF(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=z8.transition;z8.transition={};try{e(!1),t()}finally{Qn=n,z8.transition=r}}function WF(){return Gs().memoizedState}function t2e(e,t,n){var r=yf(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},VF(e))HF(t,n);else if(n=xF(e,t,n,r),n!==null){var i=aa();Pl(n,e,r,i),ZF(n,t,r)}}function n2e(e,t,n){var r=yf(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(VF(e))HF(t,i);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var a=t.lastRenderedState,s=o(a,n);if(i.hasEagerState=!0,i.eagerState=s,$l(s,a)){var l=t.interleaved;l===null?(i.next=i,$8(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=xF(e,t,i,r),n!==null&&(i=aa(),Pl(n,e,r,i),ZF(n,t,r))}}function VF(e){var t=e.alternate;return e===ei||t!==null&&t===ei}function HF(e,t){Zv=sw=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function ZF(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Zj(e,n)}}var cw={readContext:qs,useCallback:Po,useContext:Po,useEffect:Po,useImperativeHandle:Po,useInsertionEffect:Po,useLayoutEffect:Po,useMemo:Po,useReducer:Po,useRef:Po,useState:Po,useDebugValue:Po,useDeferredValue:Po,useTransition:Po,useMutableSource:Po,useSyncExternalStore:Po,useId:Po,unstable_isNewReconciler:!1},r2e={readContext:qs,useCallback:function(e,t){return Ou().memoizedState=[e,t===void 0?null:t],e},useContext:qs,useEffect:OF,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,lw(4194308,4,DF.bind(null,t,e),n)},useLayoutEffect:function(e,t){return lw(4194308,4,e,t)},useInsertionEffect:function(e,t){return lw(4,2,e,t)},useMemo:function(e,t){var n=Ou();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ou();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=t2e.bind(null,ei,e),[r.memoizedState,e]},useRef:function(e){var t=Ou();return e={current:e},t.memoizedState=e},useState:LF,useDebugValue:V8,useDeferredValue:function(e){return Ou().memoizedState=e},useTransition:function(){var e=LF(!1),t=e[0];return e=e2e.bind(null,e[1]),Ou().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ei,i=Ou();if(Hr){if(n===void 0)throw Error(Ze(407));n=n()}else{if(n=t(),ro===null)throw Error(Ze(349));Bh&30||IF(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,OF(NF.bind(null,r,o,e),[e]),r.flags|=2048,Yv(9,EF.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Ou(),t=ro.identifierPrefix;if(Hr){var n=Hc,r=Vc;n=(r&~(1<<32-Nl(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=qv++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Lu]=t,e[Fv]=r,fB(e,t,!1,!1),t.stateNode=e;e:{switch(a=Pj(n,r),n){case"dialog":Rr("cancel",e),Rr("close",e),i=r;break;case"iframe":case"object":case"embed":Rr("load",e),i=r;break;case"video":case"audio":for(i=0;iC0&&(t.flags|=128,r=!0,Kv(o,!1),t.lanes=4194304)}else{if(!r)if(e=ow(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Kv(o,!0),o.tail===null&&o.tailMode==="hidden"&&!a.alternate&&!Hr)return zo(t),null}else 2*bi()-o.renderingStartTime>C0&&n!==1073741824&&(t.flags|=128,r=!0,Kv(o,!1),t.lanes=4194304);o.isBackwards?(a.sibling=t.child,t.child=a):(n=o.last,n!==null?n.sibling=a:t.child=a,o.last=a)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=bi(),t.sibling=null,n=Qr.current,jr(Qr,r?n&1|2:n&1),t):(zo(t),null);case 22:case 23:return h9(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?ls&1073741824&&(zo(t),t.subtreeFlags&6&&(t.flags|=8192)):zo(t),null;case 24:return null;case 25:return null}throw Error(Ze(156,t.tag))}function d2e(e,t){switch(k8(t),t.tag){case 1:return $a(t.type)&&G2(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return x0(),Or(Na),Or(Oo),P8(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return R8(t),null;case 13:if(Or(Qr),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Ze(340));v0()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Or(Qr),null;case 4:return x0(),null;case 10:return E8(t.type._context),null;case 22:case 23:return h9(),null;case 24:return null;default:return null}}var pw=!1,Do=!1,f2e=typeof WeakSet=="function"?WeakSet:Set,dt=null;function k0(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){li(e,t,r)}else n.current=null}function mB(e,t,n){try{n()}catch(r){li(e,t,r)}}var gB=!1;function h2e(e,t){if(p8=R2,e=qA(),a8(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var a=0,s=-1,l=-1,c=0,d=0,f=e,p=null;t:for(;;){for(var v;f!==n||i!==0&&f.nodeType!==3||(s=a+i),f!==o||r!==0&&f.nodeType!==3||(l=a+r),f.nodeType===3&&(a+=f.nodeValue.length),(v=f.firstChild)!==null;)p=f,f=v;for(;;){if(f===e)break t;if(p===n&&++c===i&&(s=a),p===o&&++d===r&&(l=a),(v=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=v}n=s===-1||l===-1?null:{start:s,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(m8={focusedElem:e,selectionRange:n},R2=!1,dt=t;dt!==null;)if(t=dt,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,dt=e;else for(;dt!==null;){t=dt;try{var _=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(_!==null){var y=_.memoizedProps,b=_.memoizedState,w=t.stateNode,x=w.getSnapshotBeforeUpdate(t.elementType===t.type?y:Ll(t.type,y),b);w.__reactInternalSnapshotBeforeUpdate=x}break;case 3:var S=t.stateNode.containerInfo;S.nodeType===1?S.textContent="":S.nodeType===9&&S.documentElement&&S.removeChild(S.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Ze(163))}}catch(C){li(t,t.return,C)}if(e=t.sibling,e!==null){e.return=t.return,dt=e;break}dt=t.return}return _=gB,gB=!1,_}function Xv(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var o=i.destroy;i.destroy=void 0,o!==void 0&&mB(t,n,o)}i=i.next}while(i!==r)}}function mw(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function n9(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function vB(e){var t=e.alternate;t!==null&&(e.alternate=null,vB(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Lu],delete t[Fv],delete t[b8],delete t[Yxe],delete t[Kxe])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function yB(e){return e.tag===5||e.tag===3||e.tag===4}function bB(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||yB(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function r9(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Z2));else if(r!==4&&(e=e.child,e!==null))for(r9(e,t,n),e=e.sibling;e!==null;)r9(e,t,n),e=e.sibling}function i9(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(i9(e,t,n),e=e.sibling;e!==null;)i9(e,t,n),e=e.sibling}var bo=null,Rl=!1;function mf(e,t,n){for(n=n.child;n!==null;)_B(e,t,n),n=n.sibling}function _B(e,t,n){if(Mu&&typeof Mu.onCommitFiberUnmount=="function")try{Mu.onCommitFiberUnmount(I2,n)}catch{}switch(n.tag){case 5:Do||k0(n,t);case 6:var r=bo,i=Rl;bo=null,mf(e,t,n),bo=r,Rl=i,bo!==null&&(Rl?(e=bo,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):bo.removeChild(n.stateNode));break;case 18:bo!==null&&(Rl?(e=bo,n=n.stateNode,e.nodeType===8?y8(e.parentNode,n):e.nodeType===1&&y8(e,n),Ev(e)):y8(bo,n.stateNode));break;case 4:r=bo,i=Rl,bo=n.stateNode.containerInfo,Rl=!0,mf(e,t,n),bo=r,Rl=i;break;case 0:case 11:case 14:case 15:if(!Do&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var o=i,a=o.destroy;o=o.tag,a!==void 0&&(o&2||o&4)&&mB(n,t,a),i=i.next}while(i!==r)}mf(e,t,n);break;case 1:if(!Do&&(k0(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){li(n,t,s)}mf(e,t,n);break;case 21:mf(e,t,n);break;case 22:n.mode&1?(Do=(r=Do)||n.memoizedState!==null,mf(e,t,n),Do=r):mf(e,t,n);break;default:mf(e,t,n)}}function xB(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new f2e),t.forEach(function(r){var i=w2e.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function Ol(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=a),r&=~o}if(r=i,r=bi()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*m2e(r/1960))-r,10e?16:e,vf===null)var r=!1;else{if(e=vf,vf=null,_w=0,Nn&6)throw Error(Ze(331));var i=Nn;for(Nn|=4,dt=e.current;dt!==null;){var o=dt,a=o.child;if(dt.flags&16){var s=o.deletions;if(s!==null){for(var l=0;lbi()-s9?Vh(e,0):a9|=n),Ra(e,t)}function RB(e,t){t===0&&(e.mode&1?(t=N2,N2<<=1,!(N2&130023424)&&(N2=4194304)):t=1);var n=aa();e=Zc(e,t),e!==null&&(Sv(e,t,n),Ra(e,n))}function x2e(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),RB(e,n)}function w2e(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(Ze(314))}r!==null&&r.delete(t),RB(e,n)}var OB;OB=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Na.current)Ma=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Ma=!1,u2e(e,t,n);Ma=!!(e.flags&131072)}else Ma=!1,Hr&&t.flags&1048576&&hF(t,J2,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;hw(e,t),e=t.pendingProps;var i=p0(t,Oo.current);_0(t,n),i=A8(null,t,r,e,i,n);var o=F8();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,$a(r)?(o=!0,Y2(t)):o=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,M8(t),i.updater=dw,t.stateNode=i,i._reactInternals=t,Z8(t,r,e,n),t=K8(null,t,r,!0,o,n)):(t.tag=0,Hr&&o&&w8(t),oa(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(hw(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=S2e(r),e=Ll(r,e),i){case 0:t=Y8(null,t,r,e,n);break e;case 1:t=aB(null,t,r,e,n);break e;case 11:t=tB(null,t,r,e,n);break e;case 14:t=nB(null,t,r,Ll(r.type,e),n);break e}throw Error(Ze(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ll(r,i),Y8(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ll(r,i),aB(e,t,r,i,n);case 3:e:{if(sB(t),e===null)throw Error(Ze(387));r=t.pendingProps,o=t.memoizedState,i=o.element,wF(e,t),iw(t,r,null,n);var a=t.memoizedState;if(r=a.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){i=w0(Error(Ze(423)),t),t=lB(e,t,r,n,i);break e}else if(r!==i){i=w0(Error(Ze(424)),t),t=lB(e,t,r,n,i);break e}else for(ss=uf(t.stateNode.containerInfo.firstChild),as=t,Hr=!0,Ml=null,n=_F(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(v0(),r===i){t=Gc(e,t,n);break e}oa(e,t,r,n)}t=t.child}return t;case 5:return CF(t),e===null&&C8(t),r=t.type,i=t.pendingProps,o=e!==null?e.memoizedProps:null,a=i.children,g8(r,i)?a=null:o!==null&&g8(r,o)&&(t.flags|=32),oB(e,t),oa(e,t,a,n),t.child;case 6:return e===null&&C8(t),null;case 13:return uB(e,t,n);case 4:return L8(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=y0(t,null,r,n):oa(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ll(r,i),tB(e,t,r,i,n);case 7:return oa(e,t,t.pendingProps,n),t.child;case 8:return oa(e,t,t.pendingProps.children,n),t.child;case 12:return oa(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,o=t.memoizedProps,a=i.value,jr(tw,r._currentValue),r._currentValue=a,o!==null)if($l(o.value,a)){if(o.children===i.children&&!Na.current){t=Gc(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var s=o.dependencies;if(s!==null){a=o.child;for(var l=s.firstContext;l!==null;){if(l.context===r){if(o.tag===1){l=qc(-1,n&-n),l.tag=2;var c=o.updateQueue;if(c!==null){c=c.shared;var d=c.pending;d===null?l.next=l:(l.next=d.next,d.next=l),c.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),N8(o.return,n,t),s.lanes|=n;break}l=l.next}}else if(o.tag===10)a=o.type===t.type?null:o.child;else if(o.tag===18){if(a=o.return,a===null)throw Error(Ze(341));a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),N8(a,n,t),a=o.sibling}else a=o.child;if(a!==null)a.return=o;else for(a=o;a!==null;){if(a===t){a=null;break}if(o=a.sibling,o!==null){o.return=a.return,a=o;break}a=a.return}o=a}oa(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,_0(t,n),i=qs(i),r=r(i),t.flags|=1,oa(e,t,r,n),t.child;case 14:return r=t.type,i=Ll(r,t.pendingProps),i=Ll(r.type,i),nB(e,t,r,i,n);case 15:return rB(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ll(r,i),hw(e,t),t.tag=1,$a(r)?(e=!0,Y2(t)):e=!1,_0(t,n),GF(t,r,i),Z8(t,r,i,n),K8(null,t,r,!0,e,n);case 19:return dB(e,t,n);case 22:return iB(e,t,n)}throw Error(Ze(156,t.tag))};function PB(e,t){return pA(e,t)}function k2e(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ks(e,t,n,r){return new k2e(e,t,n,r)}function m9(e){return e=e.prototype,!(!e||!e.isReactComponent)}function S2e(e){if(typeof e=="function")return m9(e)?1:0;if(e!=null){if(e=e.$$typeof,e===wj)return 11;if(e===Cj)return 14}return 2}function _f(e,t){var n=e.alternate;return n===null?(n=Ks(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Sw(e,t,n,r,i,o){var a=2;if(r=e,typeof e=="function")m9(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case t0:return Zh(n.children,i,o,t);case _j:a=8,i|=8;break;case xj:return e=Ks(12,n,t,i|2),e.elementType=xj,e.lanes=o,e;case kj:return e=Ks(13,n,t,i),e.elementType=kj,e.lanes=o,e;case Sj:return e=Ks(19,n,t,i),e.elementType=Sj,e.lanes=o,e;case VD:return Cw(n,i,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case UD:a=10;break e;case WD:a=9;break e;case wj:a=11;break e;case Cj:a=14;break e;case ef:a=16,r=null;break e}throw Error(Ze(130,e==null?e:typeof e,""))}return t=Ks(a,n,t,i),t.elementType=e,t.type=r,t.lanes=o,t}function Zh(e,t,n,r){return e=Ks(7,e,r,t),e.lanes=n,e}function Cw(e,t,n,r){return e=Ks(22,e,r,t),e.elementType=VD,e.lanes=n,e.stateNode={isHidden:!1},e}function g9(e,t,n){return e=Ks(6,e,null,t),e.lanes=n,e}function v9(e,t,n){return t=Ks(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function C2e(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Hj(0),this.expirationTimes=Hj(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Hj(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function y9(e,t,n,r,i,o,a,s,l){return e=new C2e(e,t,n,s,l),t===1?(t=1,o===!0&&(t|=8)):t=0,o=Ks(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},M8(o),e}function j2e(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(UB)}catch(e){console.error(e)}}UB(),PD.exports=rs;var Kc=PD.exports;const WB=to(Kc);var VB=Kc;mj.createRoot=VB.createRoot,mj.hydrateRoot=VB.hydrateRoot;function HB(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function zl(...e){return t=>{let n=!1;const r=e.map(i=>{const o=HB(i,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let i=0;i{const{children:o,...a}=r,s=m.Children.toArray(o),l=s.find(L2e);if(l){const c=l.props.children,d=s.map(f=>f===l?m.Children.count(c)>1?m.Children.only(null):m.isValidElement(c)?c.props.children:null:f);return u.jsx(t,{...a,ref:i,children:m.isValidElement(c)?m.cloneElement(c,void 0,d):null})}return u.jsx(t,{...a,ref:i,children:o})});return n.displayName=`${e}.Slot`,n}var xf=gr("Slot");function $2e(e){const t=m.forwardRef((n,r)=>{const{children:i,...o}=n;if(m.isValidElement(i)){const a=O2e(i),s=R2e(o,i.props);return i.type!==m.Fragment&&(s.ref=r?zl(r,a):a),m.cloneElement(i,s)}return m.Children.count(i)>1?m.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var ZB=Symbol("radix.slottable");function qB(e){const t=({children:n})=>u.jsx(u.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=ZB,t}var M2e=qB("Slottable");function L2e(e){return m.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===ZB}function R2e(e,t){const n={...t};for(const r in t){const i=e[r],o=t[r];/^on[A-Z]/.test(r)?i&&o?n[r]=(...a)=>{const s=o(...a);return i(...a),s}:i&&(n[r]=i):r==="style"?n[r]={...i,...o}:r==="className"&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}function O2e(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var P2e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],z2e=P2e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),GB=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),D2e="VisuallyHidden",YB=m.forwardRef((e,t)=>u.jsx(z2e.span,{...e,ref:t,style:{...GB,...e.style}}));YB.displayName=D2e;var KB=YB;function A2e(e,t){const n=m.createContext(t),r=o=>{const{children:a,...s}=o,l=m.useMemo(()=>s,Object.values(s));return u.jsx(n.Provider,{value:l,children:a})};r.displayName=e+"Provider";function i(o){const a=m.useContext(n);if(a)return a;if(t!==void 0)return t;throw new Error(`\`${o}\` must be used within \`${e}\``)}return[r,i]}function Oa(e,t=[]){let n=[];function r(o,a){const s=m.createContext(a),l=n.length;n=[...n,a];const c=f=>{var w;const{scope:p,children:v,..._}=f,y=((w=p==null?void 0:p[e])==null?void 0:w[l])||s,b=m.useMemo(()=>_,Object.values(_));return u.jsx(y.Provider,{value:b,children:v})};c.displayName=o+"Provider";function d(f,p){var y;const v=((y=p==null?void 0:p[e])==null?void 0:y[l])||s,_=m.useContext(v);if(_)return _;if(a!==void 0)return a;throw new Error(`\`${f}\` must be used within \`${o}\``)}return[c,d]}const i=()=>{const o=n.map(a=>m.createContext(a));return function(a){const s=(a==null?void 0:a[e])||o;return m.useMemo(()=>({[`__scope${e}`]:{...a,[e]:s}}),[a,s])}};return i.scopeName=e,[r,F2e(i,...t)]}function F2e(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(i){const o=r.reduce((a,{useScope:s,scopeName:l})=>{const c=s(i)[`__scope${l}`];return{...a,...c}},{});return m.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])}};return n.scopeName=t.scopeName,n}function Mw(e){const t=e+"CollectionProvider",[n,r]=Oa(t),[i,o]=n(t,{collectionRef:{current:null},itemMap:new Map}),a=y=>{const{scope:b,children:w}=y,x=Oe.useRef(null),S=Oe.useRef(new Map).current;return u.jsx(i,{scope:b,itemMap:S,collectionRef:x,children:w})};a.displayName=t;const s=e+"CollectionSlot",l=gr(s),c=Oe.forwardRef((y,b)=>{const{scope:w,children:x}=y,S=o(s,w),C=At(b,S.collectionRef);return u.jsx(l,{ref:C,children:x})});c.displayName=s;const d=e+"CollectionItemSlot",f="data-radix-collection-item",p=gr(d),v=Oe.forwardRef((y,b)=>{const{scope:w,children:x,...S}=y,C=Oe.useRef(null),j=At(b,C),T=o(d,w);return Oe.useEffect(()=>(T.itemMap.set(C,{ref:C,...S}),()=>void T.itemMap.delete(C))),u.jsx(p,{[f]:"",ref:j,children:x})});v.displayName=d;function _(y){const b=o(e+"CollectionConsumer",y);return Oe.useCallback(()=>{const w=b.collectionRef.current;if(!w)return[];const x=Array.from(w.querySelectorAll(`[${f}]`));return Array.from(b.itemMap.values()).sort((S,C)=>x.indexOf(S.ref.current)-x.indexOf(C.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:a,Slot:c,ItemSlot:v},_,r]}function Xe(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e==null||e(r),n===!1||!r.defaultPrevented)return t==null?void 0:t(r)}}var xo=globalThis!=null&&globalThis.document?m.useLayoutEffect:()=>{},B2e=pj[" useInsertionEffect ".trim().toString()]||xo;function Xs({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[i,o,a]=U2e({defaultProp:t,onChange:n}),s=e!==void 0,l=s?e:i;{const d=m.useRef(e!==void 0);m.useEffect(()=>{const f=d.current;f!==s&&console.warn(`${r} is changing from ${f?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),d.current=s},[s,r])}const c=m.useCallback(d=>{var f;if(s){const p=W2e(d)?d(e):d;p!==e&&((f=a.current)==null||f.call(a,p))}else o(d)},[s,e,o,a]);return[l,c]}function U2e({defaultProp:e,onChange:t}){const[n,r]=m.useState(e),i=m.useRef(n),o=m.useRef(t);return B2e(()=>{o.current=t},[t]),m.useEffect(()=>{var a;i.current!==n&&((a=o.current)==null||a.call(o,n),i.current=n)},[n,i]),[n,r,o]}function W2e(e){return typeof e=="function"}function V2e(e,t){return m.useReducer((n,r)=>t[n][r]??n,e)}var Ao=e=>{const{present:t,children:n}=e,r=H2e(t),i=typeof n=="function"?n({present:r.isPresent}):m.Children.only(n),o=At(r.ref,Z2e(i));return typeof n=="function"||r.isPresent?m.cloneElement(i,{ref:o}):null};Ao.displayName="Presence";function H2e(e){const[t,n]=m.useState(),r=m.useRef(null),i=m.useRef(e),o=m.useRef("none"),a=e?"mounted":"unmounted",[s,l]=V2e(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return m.useEffect(()=>{const c=Lw(r.current);o.current=s==="mounted"?c:"none"},[s]),xo(()=>{const c=r.current,d=i.current;if(d!==e){const f=o.current,p=Lw(c);e?l("MOUNT"):p==="none"||(c==null?void 0:c.display)==="none"?l("UNMOUNT"):l(d&&f!==p?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,l]),xo(()=>{if(t){let c;const d=t.ownerDocument.defaultView??window,f=v=>{const _=Lw(r.current).includes(CSS.escape(v.animationName));if(v.target===t&&_&&(l("ANIMATION_END"),!i.current)){const y=t.style.animationFillMode;t.style.animationFillMode="forwards",c=d.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=y)})}},p=v=>{v.target===t&&(o.current=Lw(r.current))};return t.addEventListener("animationstart",p),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{d.clearTimeout(c),t.removeEventListener("animationstart",p),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:m.useCallback(c=>{r.current=c?getComputedStyle(c):null,n(c)},[])}}function Lw(e){return(e==null?void 0:e.animationName)||"none"}function Z2e(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var q2e=pj[" useId ".trim().toString()]||(()=>{}),G2e=0;function wo(e){const[t,n]=m.useState(q2e());return xo(()=>{n(r=>r??String(G2e++))},[e]),t?`radix-${t}`:""}var XB=m.createContext(void 0),Y2e=e=>{const{dir:t,children:n}=e;return u.jsx(XB.Provider,{value:t,children:n})};function T0(e){const t=m.useContext(XB);return e||t||"ltr"}var K2e=Y2e,X2e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],JB=X2e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function J2e(e,t){e&&Kc.flushSync(()=>e.dispatchEvent(t))}function ko(e){const t=m.useRef(e);return m.useEffect(()=>{t.current=e}),m.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function Q2e(e,t=globalThis==null?void 0:globalThis.document){const n=ko(e);m.useEffect(()=>{const r=i=>{i.key==="Escape"&&n(i)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var ewe="DismissableLayer",w9="dismissableLayer.update",twe="dismissableLayer.pointerDownOutside",nwe="dismissableLayer.focusOutside",QB,eU=m.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),I0=m.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:o,onInteractOutside:a,onDismiss:s,...l}=e,c=m.useContext(eU),[d,f]=m.useState(null),p=(d==null?void 0:d.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,v]=m.useState({}),_=At(t,E=>f(E)),y=Array.from(c.layers),[b]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),w=y.indexOf(b),x=d?y.indexOf(d):-1,S=c.layersWithOutsidePointerEventsDisabled.size>0,C=x>=w,j=owe(E=>{const $=E.target,A=[...c.branches].some(M=>M.contains($));!C||A||(i==null||i(E),a==null||a(E),E.defaultPrevented||(s==null||s()))},p),T=awe(E=>{const $=E.target;[...c.branches].some(A=>A.contains($))||(o==null||o(E),a==null||a(E),E.defaultPrevented||(s==null||s()))},p);return Q2e(E=>{x===c.layers.size-1&&(r==null||r(E),!E.defaultPrevented&&s&&(E.preventDefault(),s()))},p),m.useEffect(()=>{if(d)return n&&(c.layersWithOutsidePointerEventsDisabled.size===0&&(QB=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(d)),c.layers.add(d),tU(),()=>{n&&c.layersWithOutsidePointerEventsDisabled.size===1&&(p.body.style.pointerEvents=QB)}},[d,p,n,c]),m.useEffect(()=>()=>{d&&(c.layers.delete(d),c.layersWithOutsidePointerEventsDisabled.delete(d),tU())},[d,c]),m.useEffect(()=>{const E=()=>v({});return document.addEventListener(w9,E),()=>document.removeEventListener(w9,E)},[]),u.jsx(JB.div,{...l,ref:_,style:{pointerEvents:S?C?"auto":"none":void 0,...e.style},onFocusCapture:Xe(e.onFocusCapture,T.onFocusCapture),onBlurCapture:Xe(e.onBlurCapture,T.onBlurCapture),onPointerDownCapture:Xe(e.onPointerDownCapture,j.onPointerDownCapture)})});I0.displayName=ewe;var rwe="DismissableLayerBranch",iwe=m.forwardRef((e,t)=>{const n=m.useContext(eU),r=m.useRef(null),i=At(t,r);return m.useEffect(()=>{const o=r.current;if(o)return n.branches.add(o),()=>{n.branches.delete(o)}},[n.branches]),u.jsx(JB.div,{...e,ref:i})});iwe.displayName=rwe;function owe(e,t=globalThis==null?void 0:globalThis.document){const n=ko(e),r=m.useRef(!1),i=m.useRef(()=>{});return m.useEffect(()=>{const o=s=>{if(s.target&&!r.current){let l=function(){nU(twe,n,c,{discrete:!0})};const c={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=l,t.addEventListener("click",i.current,{once:!0})):l()}else t.removeEventListener("click",i.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",o),t.removeEventListener("click",i.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function awe(e,t=globalThis==null?void 0:globalThis.document){const n=ko(e),r=m.useRef(!1);return m.useEffect(()=>{const i=o=>{o.target&&!r.current&&nU(nwe,n,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function tU(){const e=new CustomEvent(w9);document.dispatchEvent(e)}function nU(e,t,n,{discrete:r}){const i=n.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?J2e(i,o):i.dispatchEvent(o)}var swe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],lwe=swe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),k9="focusScope.autoFocusOnMount",S9="focusScope.autoFocusOnUnmount",rU={bubbles:!1,cancelable:!0},uwe="FocusScope",ny=m.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:o,...a}=e,[s,l]=m.useState(null),c=ko(i),d=ko(o),f=m.useRef(null),p=At(t,y=>l(y)),v=m.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;m.useEffect(()=>{if(r){let y=function(S){if(v.paused||!s)return;const C=S.target;s.contains(C)?f.current=C:wf(f.current,{select:!0})},b=function(S){if(v.paused||!s)return;const C=S.relatedTarget;C!==null&&(s.contains(C)||wf(f.current,{select:!0}))},w=function(S){if(document.activeElement===document.body)for(const C of S)C.removedNodes.length>0&&wf(s)};document.addEventListener("focusin",y),document.addEventListener("focusout",b);const x=new MutationObserver(w);return s&&x.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",y),document.removeEventListener("focusout",b),x.disconnect()}}},[r,s,v.paused]),m.useEffect(()=>{if(s){aU.add(v);const y=document.activeElement;if(!s.contains(y)){const b=new CustomEvent(k9,rU);s.addEventListener(k9,c),s.dispatchEvent(b),b.defaultPrevented||(cwe(mwe(iU(s)),{select:!0}),document.activeElement===y&&wf(s))}return()=>{s.removeEventListener(k9,c),setTimeout(()=>{const b=new CustomEvent(S9,rU);s.addEventListener(S9,d),s.dispatchEvent(b),b.defaultPrevented||wf(y??document.body,{select:!0}),s.removeEventListener(S9,d),aU.remove(v)},0)}}},[s,c,d,v]);const _=m.useCallback(y=>{if(!n&&!r||v.paused)return;const b=y.key==="Tab"&&!y.altKey&&!y.ctrlKey&&!y.metaKey,w=document.activeElement;if(b&&w){const x=y.currentTarget,[S,C]=dwe(x);S&&C?!y.shiftKey&&w===C?(y.preventDefault(),n&&wf(S,{select:!0})):y.shiftKey&&w===S&&(y.preventDefault(),n&&wf(C,{select:!0})):w===x&&y.preventDefault()}},[n,r,v.paused]);return u.jsx(lwe.div,{tabIndex:-1,...a,ref:p,onKeyDown:_})});ny.displayName=uwe;function cwe(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(wf(r,{select:t}),document.activeElement!==n)return}function dwe(e){const t=iU(e),n=oU(t,e),r=oU(t.reverse(),e);return[n,r]}function iU(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const i=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||i?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function oU(e,t){for(const n of e)if(!fwe(n,{upTo:t}))return n}function fwe(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function hwe(e){return e instanceof HTMLInputElement&&"select"in e}function wf(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&hwe(e)&&t&&e.select()}}var aU=pwe();function pwe(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=sU(e,t),e.unshift(t)},remove(t){var n;e=sU(e,t),(n=e[0])==null||n.resume()}}}function sU(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function mwe(e){return e.filter(t=>t.tagName!=="A")}var gwe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],vwe=gwe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),ywe="Portal",qh=m.forwardRef((e,t)=>{var s;const{container:n,...r}=e,[i,o]=m.useState(!1);xo(()=>o(!0),[]);const a=n||i&&((s=globalThis==null?void 0:globalThis.document)==null?void 0:s.body);return a?WB.createPortal(u.jsx(vwe.div,{...r,ref:t}),a):null});qh.displayName=ywe;var lU=qh,bwe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ry=bwe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),C9=0;function Rw(){m.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??uU()),document.body.insertAdjacentElement("beforeend",e[1]??uU()),C9++,()=>{C9===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),C9--}},[])}function uU(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var zu=function(){return zu=Object.assign||function(e){for(var t,n=1,r=arguments.length;n"u")return Pwe;var t=zwe(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Awe=pU(),E0="data-scroll-locked",Fwe=function(e,t,n,r){var i=e.left,o=e.top,a=e.right,s=e.gap;return n===void 0&&(n="margin"),` - .`.concat(xwe,` { - overflow: hidden `).concat(r,`; - padding-right: `).concat(s,"px ").concat(r,`; - } - body[`).concat(E0,`] { - overflow: hidden `).concat(r,`; - overscroll-behavior: contain; - `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` - padding-left: `.concat(i,`px; - padding-top: `).concat(o,`px; - padding-right: `).concat(a,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(s,"px ").concat(r,`; - `),n==="padding"&&"padding-right: ".concat(s,"px ").concat(r,";")].filter(Boolean).join(""),` - } - - .`).concat(Ow,` { - right: `).concat(s,"px ").concat(r,`; - } - - .`).concat(Pw,` { - margin-right: `).concat(s,"px ").concat(r,`; - } - - .`).concat(Ow," .").concat(Ow,` { - right: 0 `).concat(r,`; - } - - .`).concat(Pw," .").concat(Pw,` { - margin-right: 0 `).concat(r,`; - } - - body[`).concat(E0,`] { - `).concat(wwe,": ").concat(s,`px; - } -`)},mU=function(){var e=parseInt(document.body.getAttribute(E0)||"0",10);return isFinite(e)?e:0},Bwe=function(){m.useEffect(function(){return document.body.setAttribute(E0,(mU()+1).toString()),function(){var e=mU()-1;e<=0?document.body.removeAttribute(E0):document.body.setAttribute(E0,e.toString())}},[])},Uwe=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?"margin":r;Bwe();var o=m.useMemo(function(){return Dwe(i)},[i]);return m.createElement(Awe,{styles:Fwe(o,!t,i,n?"":"!important")})},E9=!1;if(typeof window<"u")try{var Dw=Object.defineProperty({},"passive",{get:function(){return E9=!0,!0}});window.addEventListener("test",Dw,Dw),window.removeEventListener("test",Dw,Dw)}catch{E9=!1}var N0=E9?{passive:!1}:!1,Wwe=function(e){return e.tagName==="TEXTAREA"},gU=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!Wwe(e)&&n[t]==="visible")},Vwe=function(e){return gU(e,"overflowY")},Hwe=function(e){return gU(e,"overflowX")},vU=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var i=yU(e,r);if(i){var o=bU(e,r),a=o[1],s=o[2];if(a>s)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Zwe=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},qwe=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},yU=function(e,t){return e==="v"?Vwe(t):Hwe(t)},bU=function(e,t){return e==="v"?Zwe(t):qwe(t)},Gwe=function(e,t){return e==="h"&&t==="rtl"?-1:1},Ywe=function(e,t,n,r,i){var o=Gwe(e,window.getComputedStyle(t).direction),a=o*r,s=n.target,l=t.contains(s),c=!1,d=a>0,f=0,p=0;do{if(!s)break;var v=bU(e,s),_=v[0],y=v[1],b=v[2],w=y-b-o*_;(_||w)&&yU(e,s)&&(f+=w,p+=_);var x=s.parentNode;s=x&&x.nodeType===Node.DOCUMENT_FRAGMENT_NODE?x.host:x}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(d&&Math.abs(f)<1||!d&&Math.abs(p)<1)&&(c=!0),c},Aw=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},_U=function(e){return[e.deltaX,e.deltaY]},xU=function(e){return e&&"current"in e?e.current:e},Kwe=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Xwe=function(e){return` - .block-interactivity-`.concat(e,` {pointer-events: none;} - .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},Jwe=0,$0=[];function Qwe(e){var t=m.useRef([]),n=m.useRef([0,0]),r=m.useRef(),i=m.useState(Jwe++)[0],o=m.useState(pU)[0],a=m.useRef(e);m.useEffect(function(){a.current=e},[e]),m.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var y=_we([e.lockRef.current],(e.shards||[]).map(xU),!0).filter(Boolean);return y.forEach(function(b){return b.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),y.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var s=m.useCallback(function(y,b){if("touches"in y&&y.touches.length===2||y.type==="wheel"&&y.ctrlKey)return!a.current.allowPinchZoom;var w=Aw(y),x=n.current,S="deltaX"in y?y.deltaX:x[0]-w[0],C="deltaY"in y?y.deltaY:x[1]-w[1],j,T=y.target,E=Math.abs(S)>Math.abs(C)?"h":"v";if("touches"in y&&E==="h"&&T.type==="range")return!1;var $=vU(E,T);if(!$)return!0;if($?j=E:(j=E==="v"?"h":"v",$=vU(E,T)),!$)return!1;if(!r.current&&"changedTouches"in y&&(S||C)&&(r.current=j),!j)return!0;var A=r.current||j;return Ywe(A,b,y,A==="h"?S:C)},[]),l=m.useCallback(function(y){var b=y;if(!(!$0.length||$0[$0.length-1]!==o)){var w="deltaY"in b?_U(b):Aw(b),x=t.current.filter(function(j){return j.name===b.type&&(j.target===b.target||b.target===j.shadowParent)&&Kwe(j.delta,w)})[0];if(x&&x.should){b.cancelable&&b.preventDefault();return}if(!x){var S=(a.current.shards||[]).map(xU).filter(Boolean).filter(function(j){return j.contains(b.target)}),C=S.length>0?s(b,S[0]):!a.current.noIsolation;C&&b.cancelable&&b.preventDefault()}}},[]),c=m.useCallback(function(y,b,w,x){var S={name:y,delta:b,target:w,should:x,shadowParent:e4e(w)};t.current.push(S),setTimeout(function(){t.current=t.current.filter(function(C){return C!==S})},1)},[]),d=m.useCallback(function(y){n.current=Aw(y),r.current=void 0},[]),f=m.useCallback(function(y){c(y.type,_U(y),y.target,s(y,e.lockRef.current))},[]),p=m.useCallback(function(y){c(y.type,Aw(y),y.target,s(y,e.lockRef.current))},[]);m.useEffect(function(){return $0.push(o),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:p}),document.addEventListener("wheel",l,N0),document.addEventListener("touchmove",l,N0),document.addEventListener("touchstart",d,N0),function(){$0=$0.filter(function(y){return y!==o}),document.removeEventListener("wheel",l,N0),document.removeEventListener("touchmove",l,N0),document.removeEventListener("touchstart",d,N0)}},[]);var v=e.removeScrollBar,_=e.inert;return m.createElement(m.Fragment,null,_?m.createElement(o,{styles:Xwe(i)}):null,v?m.createElement(Uwe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function e4e(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const t4e=Ewe(hU,Qwe);var iy=m.forwardRef(function(e,t){return m.createElement(zw,zu({},e,{ref:t,sideCar:t4e}))});iy.classNames=zw.classNames;var n4e=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},M0=new WeakMap,Fw=new WeakMap,Bw={},N9=0,wU=function(e){return e&&(e.host||wU(e.parentNode))},r4e=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=wU(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},i4e=function(e,t,n,r){var i=r4e(t,Array.isArray(e)?e:[e]);Bw[n]||(Bw[n]=new WeakMap);var o=Bw[n],a=[],s=new Set,l=new Set(i),c=function(f){!f||s.has(f)||(s.add(f),c(f.parentNode))};i.forEach(c);var d=function(f){!f||l.has(f)||Array.prototype.forEach.call(f.children,function(p){if(s.has(p))d(p);else try{var v=p.getAttribute(r),_=v!==null&&v!=="false",y=(M0.get(p)||0)+1,b=(o.get(p)||0)+1;M0.set(p,y),o.set(p,b),a.push(p),y===1&&_&&Fw.set(p,!0),b===1&&p.setAttribute(n,"true"),_||p.setAttribute(r,"true")}catch(w){console.error("aria-hidden: cannot operate on ",p,w)}})};return d(t),s.clear(),N9++,function(){a.forEach(function(f){var p=M0.get(f)-1,v=o.get(f)-1;M0.set(f,p),o.set(f,v),p||(Fw.has(f)||f.removeAttribute(r),Fw.delete(f)),v||f.removeAttribute(n)}),N9--,N9||(M0=new WeakMap,M0=new WeakMap,Fw=new WeakMap,Bw={})}},Uw=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),i=n4e(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll("[aria-live], script"))),i4e(r,i,n,"aria-hidden")):function(){return null}},Ww="Dialog",[kU]=Oa(Ww),[o4e,Dl]=kU(Ww),SU=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:a=!0}=e,s=m.useRef(null),l=m.useRef(null),[c,d]=Xs({prop:r,defaultProp:i??!1,onChange:o,caller:Ww});return u.jsx(o4e,{scope:t,triggerRef:s,contentRef:l,contentId:wo(),titleId:wo(),descriptionId:wo(),open:c,onOpenChange:d,onOpenToggle:m.useCallback(()=>d(f=>!f),[d]),modal:a,children:n})};SU.displayName=Ww;var CU="DialogTrigger",jU=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(CU,n),o=At(t,i.triggerRef);return u.jsx(ry.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":L9(i.open),...r,ref:o,onClick:Xe(e.onClick,i.onOpenToggle)})});jU.displayName=CU;var $9="DialogPortal",[a4e,TU]=kU($9,{forceMount:void 0}),IU=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:i}=e,o=Dl($9,t);return u.jsx(a4e,{scope:t,forceMount:n,children:m.Children.map(r,a=>u.jsx(Ao,{present:n||o.open,children:u.jsx(qh,{asChild:!0,container:i,children:a})}))})};IU.displayName=$9;var Vw="DialogOverlay",EU=m.forwardRef((e,t)=>{const n=TU(Vw,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=Dl(Vw,e.__scopeDialog);return o.modal?u.jsx(Ao,{present:r||o.open,children:u.jsx(l4e,{...i,ref:t})}):null});EU.displayName=Vw;var s4e=gr("DialogOverlay.RemoveScroll"),l4e=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(Vw,n);return u.jsx(iy,{as:s4e,allowPinchZoom:!0,shards:[i.contentRef],children:u.jsx(ry.div,{"data-state":L9(i.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),Gh="DialogContent",NU=m.forwardRef((e,t)=>{const n=TU(Gh,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=Dl(Gh,e.__scopeDialog);return u.jsx(Ao,{present:r||o.open,children:o.modal?u.jsx(u4e,{...i,ref:t}):u.jsx(c4e,{...i,ref:t})})});NU.displayName=Gh;var u4e=m.forwardRef((e,t)=>{const n=Dl(Gh,e.__scopeDialog),r=m.useRef(null),i=At(t,n.contentRef,r);return m.useEffect(()=>{const o=r.current;if(o)return Uw(o)},[]),u.jsx($U,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Xe(e.onCloseAutoFocus,o=>{var a;o.preventDefault(),(a=n.triggerRef.current)==null||a.focus()}),onPointerDownOutside:Xe(e.onPointerDownOutside,o=>{const a=o.detail.originalEvent,s=a.button===0&&a.ctrlKey===!0;(a.button===2||s)&&o.preventDefault()}),onFocusOutside:Xe(e.onFocusOutside,o=>o.preventDefault())})}),c4e=m.forwardRef((e,t)=>{const n=Dl(Gh,e.__scopeDialog),r=m.useRef(!1),i=m.useRef(!1);return u.jsx($U,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var a,s;(a=e.onCloseAutoFocus)==null||a.call(e,o),o.defaultPrevented||(r.current||((s=n.triggerRef.current)==null||s.focus()),o.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:o=>{var s,l;(s=e.onInteractOutside)==null||s.call(e,o),o.defaultPrevented||(r.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const a=o.target;(l=n.triggerRef.current)!=null&&l.contains(a)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})}),$U=m.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,...a}=e,s=Dl(Gh,n),l=m.useRef(null),c=At(t,l);return Rw(),u.jsxs(u.Fragment,{children:[u.jsx(ny,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o,children:u.jsx(I0,{role:"dialog",id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":L9(s.open),...a,ref:c,onDismiss:()=>s.onOpenChange(!1)})}),u.jsxs(u.Fragment,{children:[u.jsx(d4e,{titleId:s.titleId}),u.jsx(h4e,{contentRef:l,descriptionId:s.descriptionId})]})]})}),M9="DialogTitle",MU=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(M9,n);return u.jsx(ry.h2,{id:i.titleId,...r,ref:t})});MU.displayName=M9;var LU="DialogDescription",RU=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(LU,n);return u.jsx(ry.p,{id:i.descriptionId,...r,ref:t})});RU.displayName=LU;var OU="DialogClose",PU=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(OU,n);return u.jsx(ry.button,{type:"button",...r,ref:t,onClick:Xe(e.onClick,()=>i.onOpenChange(!1))})});PU.displayName=OU;function L9(e){return e?"open":"closed"}var zU="DialogTitleWarning",[E5t,DU]=A2e(zU,{contentName:Gh,titleName:M9,docsSlug:"dialog"}),d4e=({titleId:e})=>{const t=DU(zU),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. - -If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. - -For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return m.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},f4e="DialogDescriptionWarning",h4e=({contentRef:e,descriptionId:t})=>{const n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${DU(f4e).contentName}}.`;return m.useEffect(()=>{var i;const r=(i=e.current)==null?void 0:i.getAttribute("aria-describedby");t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},AU=SU,p4e=jU,FU=IU,BU=EU,UU=NU,m4e=MU,g4e=RU,v4e=PU,WU={exports:{}},VU={};/** -* @license React -* use-sync-external-store-shim.production.js -* -* Copyright (c) Meta Platforms, Inc. and affiliates. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/var L0=m;function y4e(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var b4e=typeof Object.is=="function"?Object.is:y4e,_4e=L0.useState,x4e=L0.useEffect,w4e=L0.useLayoutEffect,k4e=L0.useDebugValue;function S4e(e,t){var n=t(),r=_4e({inst:{value:n,getSnapshot:t}}),i=r[0].inst,o=r[1];return w4e(function(){i.value=n,i.getSnapshot=t,R9(i)&&o({inst:i})},[e,n,t]),x4e(function(){return R9(i)&&o({inst:i}),e(function(){R9(i)&&o({inst:i})})},[e]),k4e(n),n}function R9(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!b4e(e,n)}catch{return!0}}function C4e(e,t){return t()}var j4e=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?C4e:S4e;VU.useSyncExternalStore=L0.useSyncExternalStore!==void 0?L0.useSyncExternalStore:j4e,WU.exports=VU;var T4e=WU.exports;function O9(e){const t=m.useRef({value:e,previous:e});return m.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function P9(e){const[t,n]=m.useState(void 0);return xo(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;const o=i[0];let a,s;if("borderBoxSize"in o){const l=o.borderBoxSize,c=Array.isArray(l)?l[0]:l;a=c.inlineSize,s=c.blockSize}else a=e.offsetWidth,s=e.offsetHeight;n({width:a,height:s})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}const I4e=["top","right","bottom","left"],kf=Math.min,us=Math.max,Hw=Math.round,Zw=Math.floor,Du=e=>({x:e,y:e}),E4e={left:"right",right:"left",bottom:"top",top:"bottom"},N4e={start:"end",end:"start"};function z9(e,t,n){return us(e,kf(t,n))}function Xc(e,t){return typeof e=="function"?e(t):e}function Jc(e){return e.split("-")[0]}function R0(e){return e.split("-")[1]}function D9(e){return e==="x"?"y":"x"}function A9(e){return e==="y"?"height":"width"}const $4e=new Set(["top","bottom"]);function Au(e){return $4e.has(Jc(e))?"y":"x"}function F9(e){return D9(Au(e))}function M4e(e,t,n){n===void 0&&(n=!1);const r=R0(e),i=F9(e),o=A9(i);let a=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[o]>t.floating[o]&&(a=qw(a)),[a,qw(a)]}function L4e(e){const t=qw(e);return[B9(e),t,B9(t)]}function B9(e){return e.replace(/start|end/g,t=>N4e[t])}const HU=["left","right"],ZU=["right","left"],R4e=["top","bottom"],O4e=["bottom","top"];function P4e(e,t,n){switch(e){case"top":case"bottom":return n?t?ZU:HU:t?HU:ZU;case"left":case"right":return t?R4e:O4e;default:return[]}}function z4e(e,t,n,r){const i=R0(e);let o=P4e(Jc(e),n==="start",r);return i&&(o=o.map(a=>a+"-"+i),t&&(o=o.concat(o.map(B9)))),o}function qw(e){return e.replace(/left|right|bottom|top/g,t=>E4e[t])}function D4e(e){return{top:0,right:0,bottom:0,left:0,...e}}function qU(e){return typeof e!="number"?D4e(e):{top:e,right:e,bottom:e,left:e}}function Gw(e){const{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function GU(e,t,n){let{reference:r,floating:i}=e;const o=Au(t),a=F9(t),s=A9(a),l=Jc(t),c=o==="y",d=r.x+r.width/2-i.width/2,f=r.y+r.height/2-i.height/2,p=r[s]/2-i[s]/2;let v;switch(l){case"top":v={x:d,y:r.y-i.height};break;case"bottom":v={x:d,y:r.y+r.height};break;case"right":v={x:r.x+r.width,y:f};break;case"left":v={x:r.x-i.width,y:f};break;default:v={x:r.x,y:r.y}}switch(R0(t)){case"start":v[a]-=p*(n&&c?-1:1);break;case"end":v[a]+=p*(n&&c?-1:1);break}return v}const A4e=async(e,t,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:o=[],platform:a}=n,s=o.filter(Boolean),l=await(a.isRTL==null?void 0:a.isRTL(t));let c=await a.getElementRects({reference:e,floating:t,strategy:i}),{x:d,y:f}=GU(c,r,l),p=r,v={},_=0;for(let y=0;y({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:i,rects:o,platform:a,elements:s,middlewareData:l}=t,{element:c,padding:d=0}=Xc(e,t)||{};if(c==null)return{};const f=qU(d),p={x:n,y:r},v=F9(i),_=A9(v),y=await a.getDimensions(c),b=v==="y",w=b?"top":"left",x=b?"bottom":"right",S=b?"clientHeight":"clientWidth",C=o.reference[_]+o.reference[v]-p[v]-o.floating[_],j=p[v]-o.reference[v],T=await(a.getOffsetParent==null?void 0:a.getOffsetParent(c));let E=T?T[S]:0;(!E||!await(a.isElement==null?void 0:a.isElement(T)))&&(E=s.floating[S]||o.floating[_]);const $=C/2-j/2,A=E/2-y[_]/2-1,M=kf(f[w],A),P=kf(f[x],A),te=M,Z=E-y[_]-P,O=E/2-y[_]/2+$,J=z9(te,O,Z),D=!l.arrow&&R0(i)!=null&&O!==J&&o.reference[_]/2-(OO<=0)){var P,te;const O=(((P=o.flip)==null?void 0:P.index)||0)+1,J=E[O];if(J&&(!(f==="alignment"&&x!==Au(J))||M.every(Y=>Au(Y.placement)===x?Y.overflows[0]>0:!0)))return{data:{index:O,overflows:M},reset:{placement:J}};let D=(te=M.filter(Y=>Y.overflows[0]<=0).sort((Y,F)=>Y.overflows[1]-F.overflows[1])[0])==null?void 0:te.placement;if(!D)switch(v){case"bestFit":{var Z;const Y=(Z=M.filter(F=>{if(T){const H=Au(F.placement);return H===x||H==="y"}return!0}).map(F=>[F.placement,F.overflows.filter(H=>H>0).reduce((H,ee)=>H+ee,0)]).sort((F,H)=>F[1]-H[1])[0])==null?void 0:Z[0];Y&&(D=Y);break}case"initialPlacement":D=s;break}if(i!==D)return{reset:{placement:D}}}return{}}}};function YU(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function KU(e){return I4e.some(t=>e[t]>=0)}const U4e=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...i}=Xc(e,t);switch(r){case"referenceHidden":{const o=await oy(t,{...i,elementContext:"reference"}),a=YU(o,n.reference);return{data:{referenceHiddenOffsets:a,referenceHidden:KU(a)}}}case"escaped":{const o=await oy(t,{...i,altBoundary:!0}),a=YU(o,n.floating);return{data:{escapedOffsets:a,escaped:KU(a)}}}default:return{}}}}},XU=new Set(["left","top"]);async function W4e(e,t){const{placement:n,platform:r,elements:i}=e,o=await(r.isRTL==null?void 0:r.isRTL(i.floating)),a=Jc(n),s=R0(n),l=Au(n)==="y",c=XU.has(a)?-1:1,d=o&&l?-1:1,f=Xc(t,e);let{mainAxis:p,crossAxis:v,alignmentAxis:_}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return s&&typeof _=="number"&&(v=s==="end"?_*-1:_),l?{x:v*d,y:p*c}:{x:p*c,y:v*d}}const V4e=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:i,y:o,placement:a,middlewareData:s}=t,l=await W4e(t,e);return a===((n=s.offset)==null?void 0:n.placement)&&(r=s.arrow)!=null&&r.alignmentOffset?{}:{x:i+l.x,y:o+l.y,data:{...l,placement:a}}}}},H4e=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:i}=t,{mainAxis:o=!0,crossAxis:a=!1,limiter:s={fn:b=>{let{x:w,y:x}=b;return{x:w,y:x}}},...l}=Xc(e,t),c={x:n,y:r},d=await oy(t,l),f=Au(Jc(i)),p=D9(f);let v=c[p],_=c[f];if(o){const b=p==="y"?"top":"left",w=p==="y"?"bottom":"right",x=v+d[b],S=v-d[w];v=z9(x,v,S)}if(a){const b=f==="y"?"top":"left",w=f==="y"?"bottom":"right",x=_+d[b],S=_-d[w];_=z9(x,_,S)}const y=s.fn({...t,[p]:v,[f]:_});return{...y,data:{x:y.x-n,y:y.y-r,enabled:{[p]:o,[f]:a}}}}}},Z4e=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:i,rects:o,middlewareData:a}=t,{offset:s=0,mainAxis:l=!0,crossAxis:c=!0}=Xc(e,t),d={x:n,y:r},f=Au(i),p=D9(f);let v=d[p],_=d[f];const y=Xc(s,t),b=typeof y=="number"?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(l){const S=p==="y"?"height":"width",C=o.reference[p]-o.floating[S]+b.mainAxis,j=o.reference[p]+o.reference[S]-b.mainAxis;vj&&(v=j)}if(c){var w,x;const S=p==="y"?"width":"height",C=XU.has(Jc(i)),j=o.reference[f]-o.floating[S]+(C&&((w=a.offset)==null?void 0:w[f])||0)+(C?0:b.crossAxis),T=o.reference[f]+o.reference[S]+(C?0:((x=a.offset)==null?void 0:x[f])||0)-(C?b.crossAxis:0);_T&&(_=T)}return{[p]:v,[f]:_}}}},q4e=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:i,rects:o,platform:a,elements:s}=t,{apply:l=()=>{},...c}=Xc(e,t),d=await oy(t,c),f=Jc(i),p=R0(i),v=Au(i)==="y",{width:_,height:y}=o.floating;let b,w;f==="top"||f==="bottom"?(b=f,w=p===(await(a.isRTL==null?void 0:a.isRTL(s.floating))?"start":"end")?"left":"right"):(w=f,b=p==="end"?"top":"bottom");const x=y-d.top-d.bottom,S=_-d.left-d.right,C=kf(y-d[b],x),j=kf(_-d[w],S),T=!t.middlewareData.shift;let E=C,$=j;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&($=S),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(E=x),T&&!p){const M=us(d.left,0),P=us(d.right,0),te=us(d.top,0),Z=us(d.bottom,0);v?$=_-2*(M!==0||P!==0?M+P:us(d.left,d.right)):E=y-2*(te!==0||Z!==0?te+Z:us(d.top,d.bottom))}await l({...t,availableWidth:$,availableHeight:E});const A=await a.getDimensions(s.floating);return _!==A.width||y!==A.height?{reset:{rects:!0}}:{}}}};function Yw(){return typeof window<"u"}function O0(e){return JU(e)?(e.nodeName||"").toLowerCase():"#document"}function cs(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Fu(e){var t;return(t=(JU(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function JU(e){return Yw()?e instanceof Node||e instanceof cs(e).Node:!1}function Al(e){return Yw()?e instanceof Element||e instanceof cs(e).Element:!1}function Bu(e){return Yw()?e instanceof HTMLElement||e instanceof cs(e).HTMLElement:!1}function QU(e){return!Yw()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof cs(e).ShadowRoot}const G4e=new Set(["inline","contents"]);function ay(e){const{overflow:t,overflowX:n,overflowY:r,display:i}=Fl(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!G4e.has(i)}const Y4e=new Set(["table","td","th"]);function K4e(e){return Y4e.has(O0(e))}const X4e=[":popover-open",":modal"];function Kw(e){return X4e.some(t=>{try{return e.matches(t)}catch{return!1}})}const J4e=["transform","translate","scale","rotate","perspective"],Q4e=["transform","translate","scale","rotate","perspective","filter"],e3e=["paint","layout","strict","content"];function U9(e){const t=W9(),n=Al(e)?Fl(e):e;return J4e.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||Q4e.some(r=>(n.willChange||"").includes(r))||e3e.some(r=>(n.contain||"").includes(r))}function t3e(e){let t=Sf(e);for(;Bu(t)&&!P0(t);){if(U9(t))return t;if(Kw(t))return null;t=Sf(t)}return null}function W9(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const n3e=new Set(["html","body","#document"]);function P0(e){return n3e.has(O0(e))}function Fl(e){return cs(e).getComputedStyle(e)}function Xw(e){return Al(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Sf(e){if(O0(e)==="html")return e;const t=e.assignedSlot||e.parentNode||QU(e)&&e.host||Fu(e);return QU(t)?t.host:t}function eW(e){const t=Sf(e);return P0(t)?e.ownerDocument?e.ownerDocument.body:e.body:Bu(t)&&ay(t)?t:eW(t)}function sy(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const i=eW(e),o=i===((r=e.ownerDocument)==null?void 0:r.body),a=cs(i);if(o){const s=V9(a);return t.concat(a,a.visualViewport||[],ay(i)?i:[],s&&n?sy(s):[])}return t.concat(i,sy(i,[],n))}function V9(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function tW(e){const t=Fl(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const i=Bu(e),o=i?e.offsetWidth:n,a=i?e.offsetHeight:r,s=Hw(n)!==o||Hw(r)!==a;return s&&(n=o,r=a),{width:n,height:r,$:s}}function H9(e){return Al(e)?e:e.contextElement}function z0(e){const t=H9(e);if(!Bu(t))return Du(1);const n=t.getBoundingClientRect(),{width:r,height:i,$:o}=tW(t);let a=(o?Hw(n.width):n.width)/r,s=(o?Hw(n.height):n.height)/i;return(!a||!Number.isFinite(a))&&(a=1),(!s||!Number.isFinite(s))&&(s=1),{x:a,y:s}}const r3e=Du(0);function nW(e){const t=cs(e);return!W9()||!t.visualViewport?r3e:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function i3e(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==cs(e)?!1:t}function Yh(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const i=e.getBoundingClientRect(),o=H9(e);let a=Du(1);t&&(r?Al(r)&&(a=z0(r)):a=z0(e));const s=i3e(o,n,r)?nW(o):Du(0);let l=(i.left+s.x)/a.x,c=(i.top+s.y)/a.y,d=i.width/a.x,f=i.height/a.y;if(o){const p=cs(o),v=r&&Al(r)?cs(r):r;let _=p,y=V9(_);for(;y&&r&&v!==_;){const b=z0(y),w=y.getBoundingClientRect(),x=Fl(y),S=w.left+(y.clientLeft+parseFloat(x.paddingLeft))*b.x,C=w.top+(y.clientTop+parseFloat(x.paddingTop))*b.y;l*=b.x,c*=b.y,d*=b.x,f*=b.y,l+=S,c+=C,_=cs(y),y=V9(_)}}return Gw({width:d,height:f,x:l,y:c})}function Jw(e,t){const n=Xw(e).scrollLeft;return t?t.left+n:Yh(Fu(e)).left+n}function rW(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Jw(e,n),i=n.top+t.scrollTop;return{x:r,y:i}}function o3e(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e;const o=i==="fixed",a=Fu(r),s=t?Kw(t.floating):!1;if(r===a||s&&o)return n;let l={scrollLeft:0,scrollTop:0},c=Du(1);const d=Du(0),f=Bu(r);if((f||!f&&!o)&&((O0(r)!=="body"||ay(a))&&(l=Xw(r)),Bu(r))){const v=Yh(r);c=z0(r),d.x=v.x+r.clientLeft,d.y=v.y+r.clientTop}const p=a&&!f&&!o?rW(a,l):Du(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-l.scrollLeft*c.x+d.x+p.x,y:n.y*c.y-l.scrollTop*c.y+d.y+p.y}}function a3e(e){return Array.from(e.getClientRects())}function s3e(e){const t=Fu(e),n=Xw(e),r=e.ownerDocument.body,i=us(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),o=us(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let a=-n.scrollLeft+Jw(e);const s=-n.scrollTop;return Fl(r).direction==="rtl"&&(a+=us(t.clientWidth,r.clientWidth)-i),{width:i,height:o,x:a,y:s}}const iW=25;function l3e(e,t){const n=cs(e),r=Fu(e),i=n.visualViewport;let o=r.clientWidth,a=r.clientHeight,s=0,l=0;if(i){o=i.width,a=i.height;const d=W9();(!d||d&&t==="fixed")&&(s=i.offsetLeft,l=i.offsetTop)}const c=Jw(r);if(c<=0){const d=r.ownerDocument,f=d.body,p=getComputedStyle(f),v=d.compatMode==="CSS1Compat"&&parseFloat(p.marginLeft)+parseFloat(p.marginRight)||0,_=Math.abs(r.clientWidth-f.clientWidth-v);_<=iW&&(o-=_)}else c<=iW&&(o+=c);return{width:o,height:a,x:s,y:l}}const u3e=new Set(["absolute","fixed"]);function c3e(e,t){const n=Yh(e,!0,t==="fixed"),r=n.top+e.clientTop,i=n.left+e.clientLeft,o=Bu(e)?z0(e):Du(1),a=e.clientWidth*o.x,s=e.clientHeight*o.y,l=i*o.x,c=r*o.y;return{width:a,height:s,x:l,y:c}}function oW(e,t,n){let r;if(t==="viewport")r=l3e(e,n);else if(t==="document")r=s3e(Fu(e));else if(Al(t))r=c3e(t,n);else{const i=nW(e);r={x:t.x-i.x,y:t.y-i.y,width:t.width,height:t.height}}return Gw(r)}function aW(e,t){const n=Sf(e);return n===t||!Al(n)||P0(n)?!1:Fl(n).position==="fixed"||aW(n,t)}function d3e(e,t){const n=t.get(e);if(n)return n;let r=sy(e,[],!1).filter(s=>Al(s)&&O0(s)!=="body"),i=null;const o=Fl(e).position==="fixed";let a=o?Sf(e):e;for(;Al(a)&&!P0(a);){const s=Fl(a),l=U9(a);!l&&s.position==="fixed"&&(i=null),(o?!l&&!i:!l&&s.position==="static"&&i&&u3e.has(i.position)||ay(a)&&!l&&aW(e,a))?r=r.filter(c=>c!==a):i=s,a=Sf(a)}return t.set(e,r),r}function f3e(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e;const o=[...n==="clippingAncestors"?Kw(t)?[]:d3e(t,this._c):[].concat(n),r],a=o[0],s=o.reduce((l,c)=>{const d=oW(t,c,i);return l.top=us(d.top,l.top),l.right=kf(d.right,l.right),l.bottom=kf(d.bottom,l.bottom),l.left=us(d.left,l.left),l},oW(t,a,i));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}}function h3e(e){const{width:t,height:n}=tW(e);return{width:t,height:n}}function p3e(e,t,n){const r=Bu(t),i=Fu(t),o=n==="fixed",a=Yh(e,!0,o,t);let s={scrollLeft:0,scrollTop:0};const l=Du(0);function c(){l.x=Jw(i)}if(r||!r&&!o)if((O0(t)!=="body"||ay(i))&&(s=Xw(t)),r){const v=Yh(t,!0,o,t);l.x=v.x+t.clientLeft,l.y=v.y+t.clientTop}else i&&c();o&&!r&&i&&c();const d=i&&!r&&!o?rW(i,s):Du(0),f=a.left+s.scrollLeft-l.x-d.x,p=a.top+s.scrollTop-l.y-d.y;return{x:f,y:p,width:a.width,height:a.height}}function Z9(e){return Fl(e).position==="static"}function sW(e,t){if(!Bu(e)||Fl(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return Fu(e)===n&&(n=n.ownerDocument.body),n}function lW(e,t){const n=cs(e);if(Kw(e))return n;if(!Bu(e)){let i=Sf(e);for(;i&&!P0(i);){if(Al(i)&&!Z9(i))return i;i=Sf(i)}return n}let r=sW(e,t);for(;r&&K4e(r)&&Z9(r);)r=sW(r,t);return r&&P0(r)&&Z9(r)&&!U9(r)?n:r||t3e(e)||n}const m3e=async function(e){const t=this.getOffsetParent||lW,n=this.getDimensions,r=await n(e.floating);return{reference:p3e(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function g3e(e){return Fl(e).direction==="rtl"}const v3e={convertOffsetParentRelativeRectToViewportRelativeRect:o3e,getDocumentElement:Fu,getClippingRect:f3e,getOffsetParent:lW,getElementRects:m3e,getClientRects:a3e,getDimensions:h3e,getScale:z0,isElement:Al,isRTL:g3e};function uW(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function y3e(e,t){let n=null,r;const i=Fu(e);function o(){var s;clearTimeout(r),(s=n)==null||s.disconnect(),n=null}function a(s,l){s===void 0&&(s=!1),l===void 0&&(l=1),o();const c=e.getBoundingClientRect(),{left:d,top:f,width:p,height:v}=c;if(s||t(),!p||!v)return;const _=Zw(f),y=Zw(i.clientWidth-(d+p)),b=Zw(i.clientHeight-(f+v)),w=Zw(d),x={rootMargin:-_+"px "+-y+"px "+-b+"px "+-w+"px",threshold:us(0,kf(1,l))||1};let S=!0;function C(j){const T=j[0].intersectionRatio;if(T!==l){if(!S)return a();T?a(!1,T):r=setTimeout(()=>{a(!1,1e-7)},1e3)}T===1&&!uW(c,e.getBoundingClientRect())&&a(),S=!1}try{n=new IntersectionObserver(C,{...x,root:i.ownerDocument})}catch{n=new IntersectionObserver(C,x)}n.observe(e)}return a(!0),o}function b3e(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:i=!0,ancestorResize:o=!0,elementResize:a=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:l=!1}=r,c=H9(e),d=i||o?[...c?sy(c):[],...sy(t)]:[];d.forEach(w=>{i&&w.addEventListener("scroll",n,{passive:!0}),o&&w.addEventListener("resize",n)});const f=c&&s?y3e(c,n):null;let p=-1,v=null;a&&(v=new ResizeObserver(w=>{let[x]=w;x&&x.target===c&&v&&(v.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var S;(S=v)==null||S.observe(t)})),n()}),c&&!l&&v.observe(c),v.observe(t));let _,y=l?Yh(e):null;l&&b();function b(){const w=Yh(e);y&&!uW(y,w)&&n(),y=w,_=requestAnimationFrame(b)}return n(),()=>{var w;d.forEach(x=>{i&&x.removeEventListener("scroll",n),o&&x.removeEventListener("resize",n)}),f==null||f(),(w=v)==null||w.disconnect(),v=null,l&&cancelAnimationFrame(_)}}const _3e=V4e,x3e=H4e,w3e=B4e,k3e=q4e,S3e=U4e,cW=F4e,C3e=Z4e,j3e=(e,t,n)=>{const r=new Map,i={platform:v3e,...n},o={...i.platform,_c:r};return A4e(e,t,{...i,platform:o})};var T3e=typeof document<"u",I3e=function(){},Qw=T3e?m.useLayoutEffect:I3e;function e4(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!e4(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){const o=i[r];if(!(o==="_owner"&&e.$$typeof)&&!e4(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function dW(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function fW(e,t){const n=dW(e);return Math.round(t*n)/n}function q9(e){const t=m.useRef(e);return Qw(()=>{t.current=e}),t}function E3e(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:i,elements:{reference:o,floating:a}={},transform:s=!0,whileElementsMounted:l,open:c}=e,[d,f]=m.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[p,v]=m.useState(r);e4(p,r)||v(r);const[_,y]=m.useState(null),[b,w]=m.useState(null),x=m.useCallback(F=>{F!==T.current&&(T.current=F,y(F))},[]),S=m.useCallback(F=>{F!==E.current&&(E.current=F,w(F))},[]),C=o||_,j=a||b,T=m.useRef(null),E=m.useRef(null),$=m.useRef(d),A=l!=null,M=q9(l),P=q9(i),te=q9(c),Z=m.useCallback(()=>{if(!T.current||!E.current)return;const F={placement:t,strategy:n,middleware:p};P.current&&(F.platform=P.current),j3e(T.current,E.current,F).then(H=>{const ee={...H,isPositioned:te.current!==!1};O.current&&!e4($.current,ee)&&($.current=ee,Kc.flushSync(()=>{f(ee)}))})},[p,t,n,P,te]);Qw(()=>{c===!1&&$.current.isPositioned&&($.current.isPositioned=!1,f(F=>({...F,isPositioned:!1})))},[c]);const O=m.useRef(!1);Qw(()=>(O.current=!0,()=>{O.current=!1}),[]),Qw(()=>{if(C&&(T.current=C),j&&(E.current=j),C&&j){if(M.current)return M.current(C,j,Z);Z()}},[C,j,Z,M,A]);const J=m.useMemo(()=>({reference:T,floating:E,setReference:x,setFloating:S}),[x,S]),D=m.useMemo(()=>({reference:C,floating:j}),[C,j]),Y=m.useMemo(()=>{const F={position:n,left:0,top:0};if(!D.floating)return F;const H=fW(D.floating,d.x),ee=fW(D.floating,d.y);return s?{...F,transform:"translate("+H+"px, "+ee+"px)",...dW(D.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:H,top:ee}},[n,s,D.floating,d.x,d.y]);return m.useMemo(()=>({...d,update:Z,refs:J,elements:D,floatingStyles:Y}),[d,Z,J,D,Y])}const N3e=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:i}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?cW({element:r.current,padding:i}).fn(n):{}:r?cW({element:r,padding:i}).fn(n):{}}}},$3e=(e,t)=>({..._3e(e),options:[e,t]}),M3e=(e,t)=>({...x3e(e),options:[e,t]}),L3e=(e,t)=>({...C3e(e),options:[e,t]}),R3e=(e,t)=>({...w3e(e),options:[e,t]}),O3e=(e,t)=>({...k3e(e),options:[e,t]}),P3e=(e,t)=>({...S3e(e),options:[e,t]}),z3e=(e,t)=>({...N3e(e),options:[e,t]});var D3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],A3e=D3e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),F3e="Arrow",hW=m.forwardRef((e,t)=>{const{children:n,width:r=10,height:i=5,...o}=e;return u.jsx(A3e.svg,{...o,ref:t,width:r,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:u.jsx("polygon",{points:"0,0 30,0 15,10"})})});hW.displayName=F3e;var B3e=hW,U3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],pW=U3e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),G9="Popper",[mW,Cf]=Oa(G9),[W3e,gW]=mW(G9),vW=e=>{const{__scopePopper:t,children:n}=e,[r,i]=m.useState(null);return u.jsx(W3e,{scope:t,anchor:r,onAnchorChange:i,children:n})};vW.displayName=G9;var yW="PopperAnchor",bW=m.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...i}=e,o=gW(yW,n),a=m.useRef(null),s=At(t,a),l=m.useRef(null);return m.useEffect(()=>{const c=l.current;l.current=(r==null?void 0:r.current)||a.current,c!==l.current&&o.onAnchorChange(l.current)}),r?null:u.jsx(pW.div,{...i,ref:s})});bW.displayName=yW;var Y9="PopperContent",[V3e,H3e]=mW(Y9),_W=m.forwardRef((e,t)=>{var he,ue,re,ge,$e,pe;const{__scopePopper:n,side:r="bottom",sideOffset:i=0,align:o="center",alignOffset:a=0,arrowPadding:s=0,avoidCollisions:l=!0,collisionBoundary:c=[],collisionPadding:d=0,sticky:f="partial",hideWhenDetached:p=!1,updatePositionStrategy:v="optimized",onPlaced:_,...y}=e,b=gW(Y9,n),[w,x]=m.useState(null),S=At(t,ye=>x(ye)),[C,j]=m.useState(null),T=P9(C),E=(T==null?void 0:T.width)??0,$=(T==null?void 0:T.height)??0,A=r+(o!=="center"?"-"+o:""),M=typeof d=="number"?d:{top:0,right:0,bottom:0,left:0,...d},P=Array.isArray(c)?c:[c],te=P.length>0,Z={padding:M,boundary:P.filter(q3e),altBoundary:te},{refs:O,floatingStyles:J,placement:D,isPositioned:Y,middlewareData:F}=E3e({strategy:"fixed",placement:A,whileElementsMounted:(...ye)=>b3e(...ye,{animationFrame:v==="always"}),elements:{reference:b.anchor},middleware:[$3e({mainAxis:i+$,alignmentAxis:a}),l&&M3e({mainAxis:!0,crossAxis:!1,limiter:f==="partial"?L3e():void 0,...Z}),l&&R3e({...Z}),O3e({...Z,apply:({elements:ye,rects:Se,availableWidth:Ce,availableHeight:Be})=>{const{width:Ge,height:xt}=Se.reference,St=ye.floating.style;St.setProperty("--radix-popper-available-width",`${Ce}px`),St.setProperty("--radix-popper-available-height",`${Be}px`),St.setProperty("--radix-popper-anchor-width",`${Ge}px`),St.setProperty("--radix-popper-anchor-height",`${xt}px`)}}),C&&z3e({element:C,padding:s}),G3e({arrowWidth:E,arrowHeight:$}),p&&P3e({strategy:"referenceHidden",...Z})]}),[H,ee]=kW(D),ce=ko(_);xo(()=>{Y&&(ce==null||ce())},[Y,ce]);const U=(he=F.arrow)==null?void 0:he.x,ae=(ue=F.arrow)==null?void 0:ue.y,je=((re=F.arrow)==null?void 0:re.centerOffset)!==0,[me,ke]=m.useState();return xo(()=>{w&&ke(window.getComputedStyle(w).zIndex)},[w]),u.jsx("div",{ref:O.setFloating,"data-radix-popper-content-wrapper":"",style:{...J,transform:Y?J.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:me,"--radix-popper-transform-origin":[(ge=F.transformOrigin)==null?void 0:ge.x,($e=F.transformOrigin)==null?void 0:$e.y].join(" "),...((pe=F.hide)==null?void 0:pe.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:u.jsx(V3e,{scope:n,placedSide:H,onArrowChange:j,arrowX:U,arrowY:ae,shouldHideArrow:je,children:u.jsx(pW.div,{"data-side":H,"data-align":ee,...y,ref:S,style:{...y.style,animation:Y?void 0:"none"}})})})});_W.displayName=Y9;var xW="PopperArrow",Z3e={top:"bottom",right:"left",bottom:"top",left:"right"},wW=m.forwardRef(function(e,t){const{__scopePopper:n,...r}=e,i=H3e(xW,n),o=Z3e[i.placedSide];return u.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[o]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:u.jsx(B3e,{...r,ref:t,style:{...r.style,display:"block"}})})});wW.displayName=xW;function q3e(e){return e!==null}var G3e=e=>({name:"transformOrigin",options:e,fn(t){var y,b,w;const{placement:n,rects:r,middlewareData:i}=t,o=((y=i.arrow)==null?void 0:y.centerOffset)!==0,a=o?0:e.arrowWidth,s=o?0:e.arrowHeight,[l,c]=kW(n),d={start:"0%",center:"50%",end:"100%"}[c],f=(((b=i.arrow)==null?void 0:b.x)??0)+a/2,p=(((w=i.arrow)==null?void 0:w.y)??0)+s/2;let v="",_="";return l==="bottom"?(v=o?d:`${f}px`,_=`${-s}px`):l==="top"?(v=o?d:`${f}px`,_=`${r.floating.height+s}px`):l==="right"?(v=`${-s}px`,_=o?d:`${p}px`):l==="left"&&(v=`${r.floating.width+s}px`,_=o?d:`${p}px`),{data:{x:v,y:_}}}});function kW(e){const[t,n="center"]=e.split("-");return[t,n]}var t4=vW,ly=bW,n4=_W,r4=wW,Y3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],uy=Y3e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function K3e(e,t){e&&Kc.flushSync(()=>e.dispatchEvent(t))}var X3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],SW=X3e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),K9="rovingFocusGroup.onEntryFocus",J3e={bubbles:!1,cancelable:!0},cy="RovingFocusGroup",[X9,CW,Q3e]=Mw(cy),[eke,i4]=Oa(cy,[Q3e]),[tke,nke]=eke(cy),jW=m.forwardRef((e,t)=>u.jsx(X9.Provider,{scope:e.__scopeRovingFocusGroup,children:u.jsx(X9.Slot,{scope:e.__scopeRovingFocusGroup,children:u.jsx(rke,{...e,ref:t})})}));jW.displayName=cy;var rke=m.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:o,currentTabStopId:a,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:l,onEntryFocus:c,preventScrollOnEntryFocus:d=!1,...f}=e,p=m.useRef(null),v=At(t,p),_=T0(o),[y,b]=Xs({prop:a,defaultProp:s??null,onChange:l,caller:cy}),[w,x]=m.useState(!1),S=ko(c),C=CW(n),j=m.useRef(!1),[T,E]=m.useState(0);return m.useEffect(()=>{const $=p.current;if($)return $.addEventListener(K9,S),()=>$.removeEventListener(K9,S)},[S]),u.jsx(tke,{scope:n,orientation:r,dir:_,loop:i,currentTabStopId:y,onItemFocus:m.useCallback($=>b($),[b]),onItemShiftTab:m.useCallback(()=>x(!0),[]),onFocusableItemAdd:m.useCallback(()=>E($=>$+1),[]),onFocusableItemRemove:m.useCallback(()=>E($=>$-1),[]),children:u.jsx(SW.div,{tabIndex:w||T===0?-1:0,"data-orientation":r,...f,ref:v,style:{outline:"none",...e.style},onMouseDown:Xe(e.onMouseDown,()=>{j.current=!0}),onFocus:Xe(e.onFocus,$=>{const A=!j.current;if($.target===$.currentTarget&&A&&!w){const M=new CustomEvent(K9,J3e);if($.currentTarget.dispatchEvent(M),!M.defaultPrevented){const P=C().filter(J=>J.focusable),te=P.find(J=>J.active),Z=P.find(J=>J.id===y),O=[te,Z,...P].filter(Boolean).map(J=>J.ref.current);EW(O,d)}}j.current=!1}),onBlur:Xe(e.onBlur,()=>x(!1))})})}),TW="RovingFocusGroupItem",IW=m.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:o,children:a,...s}=e,l=wo(),c=o||l,d=nke(TW,n),f=d.currentTabStopId===c,p=CW(n),{onFocusableItemAdd:v,onFocusableItemRemove:_,currentTabStopId:y}=d;return m.useEffect(()=>{if(r)return v(),()=>_()},[r,v,_]),u.jsx(X9.ItemSlot,{scope:n,id:c,focusable:r,active:i,children:u.jsx(SW.span,{tabIndex:f?0:-1,"data-orientation":d.orientation,...s,ref:t,onMouseDown:Xe(e.onMouseDown,b=>{r?d.onItemFocus(c):b.preventDefault()}),onFocus:Xe(e.onFocus,()=>d.onItemFocus(c)),onKeyDown:Xe(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){d.onItemShiftTab();return}if(b.target!==b.currentTarget)return;const w=ake(b,d.orientation,d.dir);if(w!==void 0){if(b.metaKey||b.ctrlKey||b.altKey||b.shiftKey)return;b.preventDefault();let x=p().filter(S=>S.focusable).map(S=>S.ref.current);if(w==="last")x.reverse();else if(w==="prev"||w==="next"){w==="prev"&&x.reverse();const S=x.indexOf(b.currentTarget);x=d.loop?ske(x,S+1):x.slice(S+1)}setTimeout(()=>EW(x))}}),children:typeof a=="function"?a({isCurrentTabStop:f,hasTabStop:y!=null}):a})})});IW.displayName=TW;var ike={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function oke(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function ake(e,t,n){const r=oke(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return ike[r]}function EW(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function ske(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var NW=jW,$W=IW,J9=["Enter"," "],lke=["ArrowDown","PageUp","Home"],MW=["ArrowUp","PageDown","End"],uke=[...lke,...MW],cke={ltr:[...J9,"ArrowRight"],rtl:[...J9,"ArrowLeft"]},dke={ltr:["ArrowLeft"],rtl:["ArrowRight"]},dy="Menu",[fy,fke,hke]=Mw(dy),[Kh,LW]=Oa(dy,[hke,Cf,i4]),o4=Cf(),RW=i4(),[pke,Xh]=Kh(dy),[mke,hy]=Kh(dy),OW=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:o,modal:a=!0}=e,s=o4(t),[l,c]=m.useState(null),d=m.useRef(!1),f=ko(o),p=T0(i);return m.useEffect(()=>{const v=()=>{d.current=!0,document.addEventListener("pointerdown",_,{capture:!0,once:!0}),document.addEventListener("pointermove",_,{capture:!0,once:!0})},_=()=>d.current=!1;return document.addEventListener("keydown",v,{capture:!0}),()=>{document.removeEventListener("keydown",v,{capture:!0}),document.removeEventListener("pointerdown",_,{capture:!0}),document.removeEventListener("pointermove",_,{capture:!0})}},[]),u.jsx(t4,{...s,children:u.jsx(pke,{scope:t,open:n,onOpenChange:f,content:l,onContentChange:c,children:u.jsx(mke,{scope:t,onClose:m.useCallback(()=>f(!1),[f]),isUsingKeyboardRef:d,dir:p,modal:a,children:r})})})};OW.displayName=dy;var gke="MenuAnchor",Q9=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=o4(n);return u.jsx(ly,{...i,...r,ref:t})});Q9.displayName=gke;var e7="MenuPortal",[vke,PW]=Kh(e7,{forceMount:void 0}),zW=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:i}=e,o=Xh(e7,t);return u.jsx(vke,{scope:t,forceMount:n,children:u.jsx(Ao,{present:n||o.open,children:u.jsx(qh,{asChild:!0,container:i,children:r})})})};zW.displayName=e7;var Js="MenuContent",[yke,t7]=Kh(Js),DW=m.forwardRef((e,t)=>{const n=PW(Js,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=Xh(Js,e.__scopeMenu),a=hy(Js,e.__scopeMenu);return u.jsx(fy.Provider,{scope:e.__scopeMenu,children:u.jsx(Ao,{present:r||o.open,children:u.jsx(fy.Slot,{scope:e.__scopeMenu,children:a.modal?u.jsx(bke,{...i,ref:t}):u.jsx(_ke,{...i,ref:t})})})})}),bke=m.forwardRef((e,t)=>{const n=Xh(Js,e.__scopeMenu),r=m.useRef(null),i=At(t,r);return m.useEffect(()=>{const o=r.current;if(o)return Uw(o)},[]),u.jsx(n7,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Xe(e.onFocusOutside,o=>o.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),_ke=m.forwardRef((e,t)=>{const n=Xh(Js,e.__scopeMenu);return u.jsx(n7,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),xke=gr("MenuContent.ScrollLock"),n7=m.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:o,onCloseAutoFocus:a,disableOutsidePointerEvents:s,onEntryFocus:l,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:v,disableOutsideScroll:_,...y}=e,b=Xh(Js,n),w=hy(Js,n),x=o4(n),S=RW(n),C=fke(n),[j,T]=m.useState(null),E=m.useRef(null),$=At(t,E,b.onContentChange),A=m.useRef(0),M=m.useRef(""),P=m.useRef(0),te=m.useRef(null),Z=m.useRef("right"),O=m.useRef(0),J=_?iy:m.Fragment,D=_?{as:xke,allowPinchZoom:!0}:void 0,Y=H=>{var he,ue;const ee=M.current+H,ce=C().filter(re=>!re.disabled),U=document.activeElement,ae=(he=ce.find(re=>re.ref.current===U))==null?void 0:he.textValue,je=ce.map(re=>re.textValue),me=Lke(je,ee,ae),ke=(ue=ce.find(re=>re.textValue===me))==null?void 0:ue.ref.current;(function re(ge){M.current=ge,window.clearTimeout(A.current),ge!==""&&(A.current=window.setTimeout(()=>re(""),1e3))})(ee),ke&&setTimeout(()=>ke.focus())};m.useEffect(()=>()=>window.clearTimeout(A.current),[]),Rw();const F=m.useCallback(H=>{var ee,ce;return Z.current===((ee=te.current)==null?void 0:ee.side)&&Oke(H,(ce=te.current)==null?void 0:ce.area)},[]);return u.jsx(yke,{scope:n,searchRef:M,onItemEnter:m.useCallback(H=>{F(H)&&H.preventDefault()},[F]),onItemLeave:m.useCallback(H=>{var ee;F(H)||((ee=E.current)==null||ee.focus(),T(null))},[F]),onTriggerLeave:m.useCallback(H=>{F(H)&&H.preventDefault()},[F]),pointerGraceTimerRef:P,onPointerGraceIntentChange:m.useCallback(H=>{te.current=H},[]),children:u.jsx(J,{...D,children:u.jsx(ny,{asChild:!0,trapped:i,onMountAutoFocus:Xe(o,H=>{var ee;H.preventDefault(),(ee=E.current)==null||ee.focus({preventScroll:!0})}),onUnmountAutoFocus:a,children:u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:v,children:u.jsx(NW,{asChild:!0,...S,dir:w.dir,orientation:"vertical",loop:r,currentTabStopId:j,onCurrentTabStopIdChange:T,onEntryFocus:Xe(l,H=>{w.isUsingKeyboardRef.current||H.preventDefault()}),preventScrollOnEntryFocus:!0,children:u.jsx(n4,{role:"menu","aria-orientation":"vertical","data-state":tV(b.open),"data-radix-menu-content":"",dir:w.dir,...x,...y,ref:$,style:{outline:"none",...y.style},onKeyDown:Xe(y.onKeyDown,H=>{const ee=H.target.closest("[data-radix-menu-content]")===H.currentTarget,ce=H.ctrlKey||H.altKey||H.metaKey,U=H.key.length===1;ee&&(H.key==="Tab"&&H.preventDefault(),!ce&&U&&Y(H.key));const ae=E.current;if(H.target!==ae||!uke.includes(H.key))return;H.preventDefault();const je=C().filter(me=>!me.disabled).map(me=>me.ref.current);MW.includes(H.key)&&je.reverse(),$ke(je)}),onBlur:Xe(e.onBlur,H=>{H.currentTarget.contains(H.target)||(window.clearTimeout(A.current),M.current="")}),onPointerMove:Xe(e.onPointerMove,my(H=>{const ee=H.target,ce=O.current!==H.clientX;if(H.currentTarget.contains(ee)&&ce){const U=H.clientX>O.current?"right":"left";Z.current=U,O.current=H.clientX}}))})})})})})})});DW.displayName=Js;var wke="MenuGroup",r7=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(uy.div,{role:"group",...r,ref:t})});r7.displayName=wke;var kke="MenuLabel",AW=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(uy.div,{...r,ref:t})});AW.displayName=kke;var a4="MenuItem",FW="menu.itemSelect",s4=m.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...i}=e,o=m.useRef(null),a=hy(a4,e.__scopeMenu),s=t7(a4,e.__scopeMenu),l=At(t,o),c=m.useRef(!1),d=()=>{const f=o.current;if(!n&&f){const p=new CustomEvent(FW,{bubbles:!0,cancelable:!0});f.addEventListener(FW,v=>r==null?void 0:r(v),{once:!0}),K3e(f,p),p.defaultPrevented?c.current=!1:a.onClose()}};return u.jsx(BW,{...i,ref:l,disabled:n,onClick:Xe(e.onClick,d),onPointerDown:f=>{var p;(p=e.onPointerDown)==null||p.call(e,f),c.current=!0},onPointerUp:Xe(e.onPointerUp,f=>{var p;c.current||((p=f.currentTarget)==null||p.click())}),onKeyDown:Xe(e.onKeyDown,f=>{const p=s.searchRef.current!=="";n||p&&f.key===" "||J9.includes(f.key)&&(f.currentTarget.click(),f.preventDefault())})})});s4.displayName=a4;var BW=m.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:i,...o}=e,a=t7(a4,n),s=RW(n),l=m.useRef(null),c=At(t,l),[d,f]=m.useState(!1),[p,v]=m.useState("");return m.useEffect(()=>{const _=l.current;_&&v((_.textContent??"").trim())},[o.children]),u.jsx(fy.ItemSlot,{scope:n,disabled:r,textValue:i??p,children:u.jsx($W,{asChild:!0,...s,focusable:!r,children:u.jsx(uy.div,{role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...o,ref:c,onPointerMove:Xe(e.onPointerMove,my(_=>{r?a.onItemLeave(_):(a.onItemEnter(_),_.defaultPrevented||_.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Xe(e.onPointerLeave,my(_=>a.onItemLeave(_))),onFocus:Xe(e.onFocus,()=>f(!0)),onBlur:Xe(e.onBlur,()=>f(!1))})})})}),Ske="MenuCheckboxItem",UW=m.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...i}=e;return u.jsx(qW,{scope:e.__scopeMenu,checked:n,children:u.jsx(s4,{role:"menuitemcheckbox","aria-checked":l4(n)?"mixed":n,...i,ref:t,"data-state":o7(n),onSelect:Xe(i.onSelect,()=>r==null?void 0:r(l4(n)?!0:!n),{checkForDefaultPrevented:!1})})})});UW.displayName=Ske;var WW="MenuRadioGroup",[Cke,jke]=Kh(WW,{value:void 0,onValueChange:()=>{}}),VW=m.forwardRef((e,t)=>{const{value:n,onValueChange:r,...i}=e,o=ko(r);return u.jsx(Cke,{scope:e.__scopeMenu,value:n,onValueChange:o,children:u.jsx(r7,{...i,ref:t})})});VW.displayName=WW;var HW="MenuRadioItem",ZW=m.forwardRef((e,t)=>{const{value:n,...r}=e,i=jke(HW,e.__scopeMenu),o=n===i.value;return u.jsx(qW,{scope:e.__scopeMenu,checked:o,children:u.jsx(s4,{role:"menuitemradio","aria-checked":o,...r,ref:t,"data-state":o7(o),onSelect:Xe(r.onSelect,()=>{var a;return(a=i.onValueChange)==null?void 0:a.call(i,n)},{checkForDefaultPrevented:!1})})})});ZW.displayName=HW;var i7="MenuItemIndicator",[qW,Tke]=Kh(i7,{checked:!1}),GW=m.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...i}=e,o=Tke(i7,n);return u.jsx(Ao,{present:r||l4(o.checked)||o.checked===!0,children:u.jsx(uy.span,{...i,ref:t,"data-state":o7(o.checked)})})});GW.displayName=i7;var Ike="MenuSeparator",YW=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(uy.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});YW.displayName=Ike;var Eke="MenuArrow",KW=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=o4(n);return u.jsx(r4,{...i,...r,ref:t})});KW.displayName=Eke;var Nke="MenuSub",[N5t,XW]=Kh(Nke),py="MenuSubTrigger",JW=m.forwardRef((e,t)=>{const n=Xh(py,e.__scopeMenu),r=hy(py,e.__scopeMenu),i=XW(py,e.__scopeMenu),o=t7(py,e.__scopeMenu),a=m.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:l}=o,c={__scopeMenu:e.__scopeMenu},d=m.useCallback(()=>{a.current&&window.clearTimeout(a.current),a.current=null},[]);return m.useEffect(()=>d,[d]),m.useEffect(()=>{const f=s.current;return()=>{window.clearTimeout(f),l(null)}},[s,l]),u.jsx(Q9,{asChild:!0,...c,children:u.jsx(BW,{id:i.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":i.contentId,"data-state":tV(n.open),...e,ref:zl(t,i.onTriggerChange),onClick:f=>{var p;(p=e.onClick)==null||p.call(e,f),!(e.disabled||f.defaultPrevented)&&(f.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:Xe(e.onPointerMove,my(f=>{o.onItemEnter(f),!f.defaultPrevented&&!e.disabled&&!n.open&&!a.current&&(o.onPointerGraceIntentChange(null),a.current=window.setTimeout(()=>{n.onOpenChange(!0),d()},100))})),onPointerLeave:Xe(e.onPointerLeave,my(f=>{var v,_;d();const p=(v=n.content)==null?void 0:v.getBoundingClientRect();if(p){const y=(_=n.content)==null?void 0:_.dataset.side,b=y==="right",w=b?-5:5,x=p[b?"left":"right"],S=p[b?"right":"left"];o.onPointerGraceIntentChange({area:[{x:f.clientX+w,y:f.clientY},{x,y:p.top},{x:S,y:p.top},{x:S,y:p.bottom},{x,y:p.bottom}],side:y}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>o.onPointerGraceIntentChange(null),300)}else{if(o.onTriggerLeave(f),f.defaultPrevented)return;o.onPointerGraceIntentChange(null)}})),onKeyDown:Xe(e.onKeyDown,f=>{var v;const p=o.searchRef.current!=="";e.disabled||p&&f.key===" "||cke[r.dir].includes(f.key)&&(n.onOpenChange(!0),(v=n.content)==null||v.focus(),f.preventDefault())})})})});JW.displayName=py;var QW="MenuSubContent",eV=m.forwardRef((e,t)=>{const n=PW(Js,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=Xh(Js,e.__scopeMenu),a=hy(Js,e.__scopeMenu),s=XW(QW,e.__scopeMenu),l=m.useRef(null),c=At(t,l);return u.jsx(fy.Provider,{scope:e.__scopeMenu,children:u.jsx(Ao,{present:r||o.open,children:u.jsx(fy.Slot,{scope:e.__scopeMenu,children:u.jsx(n7,{id:s.contentId,"aria-labelledby":s.triggerId,...i,ref:c,align:"start",side:a.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:d=>{var f;a.isUsingKeyboardRef.current&&((f=l.current)==null||f.focus()),d.preventDefault()},onCloseAutoFocus:d=>d.preventDefault(),onFocusOutside:Xe(e.onFocusOutside,d=>{d.target!==s.trigger&&o.onOpenChange(!1)}),onEscapeKeyDown:Xe(e.onEscapeKeyDown,d=>{a.onClose(),d.preventDefault()}),onKeyDown:Xe(e.onKeyDown,d=>{var v;const f=d.currentTarget.contains(d.target),p=dke[a.dir].includes(d.key);f&&p&&(o.onOpenChange(!1),(v=s.trigger)==null||v.focus(),d.preventDefault())})})})})})});eV.displayName=QW;function tV(e){return e?"open":"closed"}function l4(e){return e==="indeterminate"}function o7(e){return l4(e)?"indeterminate":e?"checked":"unchecked"}function $ke(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function Mke(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Lke(e,t,n){const r=t.length>1&&Array.from(t).every(s=>s===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let o=Mke(e,Math.max(i,0));r.length===1&&(o=o.filter(s=>s!==n));const a=o.find(s=>s.toLowerCase().startsWith(r.toLowerCase()));return a!==n?a:void 0}function Rke(e,t){const{x:n,y:r}=e;let i=!1;for(let o=0,a=t.length-1;or!=p>r&&n<(f-c)*(r-d)/(p-d)+c&&(i=!i)}return i}function Oke(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return Rke(n,t)}function my(e){return t=>t.pointerType==="mouse"?e(t):void 0}var Pke=OW,zke=Q9,Dke=zW,Ake=DW,Fke=r7,Bke=AW,Uke=s4,Wke=UW,Vke=VW,Hke=ZW,Zke=GW,qke=YW,Gke=KW,Yke=JW,Kke=eV,Xke=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Jke=Xke.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),u4="DropdownMenu",[Qke]=Oa(u4,[LW]),sa=LW(),[e6e,nV]=Qke(u4),rV=e=>{const{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:o,onOpenChange:a,modal:s=!0}=e,l=sa(t),c=m.useRef(null),[d,f]=Xs({prop:i,defaultProp:o??!1,onChange:a,caller:u4});return u.jsx(e6e,{scope:t,triggerId:wo(),triggerRef:c,contentId:wo(),open:d,onOpenChange:f,onOpenToggle:m.useCallback(()=>f(p=>!p),[f]),modal:s,children:u.jsx(Pke,{...l,open:d,onOpenChange:f,dir:r,modal:s,children:n})})};rV.displayName=u4;var iV="DropdownMenuTrigger",oV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,o=nV(iV,n),a=sa(n);return u.jsx(zke,{asChild:!0,...a,children:u.jsx(Jke.button,{type:"button",id:o.triggerId,"aria-haspopup":"menu","aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":o.open?"open":"closed","data-disabled":r?"":void 0,disabled:r,...i,ref:zl(t,o.triggerRef),onPointerDown:Xe(e.onPointerDown,s=>{!r&&s.button===0&&s.ctrlKey===!1&&(o.onOpenToggle(),o.open||s.preventDefault())}),onKeyDown:Xe(e.onKeyDown,s=>{r||(["Enter"," "].includes(s.key)&&o.onOpenToggle(),s.key==="ArrowDown"&&o.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(s.key)&&s.preventDefault())})})})});oV.displayName=iV;var t6e="DropdownMenuPortal",aV=e=>{const{__scopeDropdownMenu:t,...n}=e,r=sa(t);return u.jsx(Dke,{...r,...n})};aV.displayName=t6e;var sV="DropdownMenuContent",lV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=nV(sV,n),o=sa(n),a=m.useRef(!1);return u.jsx(Ake,{id:i.contentId,"aria-labelledby":i.triggerId,...o,...r,ref:t,onCloseAutoFocus:Xe(e.onCloseAutoFocus,s=>{var l;a.current||((l=i.triggerRef.current)==null||l.focus()),a.current=!1,s.preventDefault()}),onInteractOutside:Xe(e.onInteractOutside,s=>{const l=s.detail.originalEvent,c=l.button===0&&l.ctrlKey===!0,d=l.button===2||c;(!i.modal||d)&&(a.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});lV.displayName=sV;var n6e="DropdownMenuGroup",uV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Fke,{...i,...r,ref:t})});uV.displayName=n6e;var r6e="DropdownMenuLabel",cV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Bke,{...i,...r,ref:t})});cV.displayName=r6e;var i6e="DropdownMenuItem",dV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Uke,{...i,...r,ref:t})});dV.displayName=i6e;var o6e="DropdownMenuCheckboxItem",fV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Wke,{...i,...r,ref:t})});fV.displayName=o6e;var a6e="DropdownMenuRadioGroup",hV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Vke,{...i,...r,ref:t})});hV.displayName=a6e;var s6e="DropdownMenuRadioItem",pV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Hke,{...i,...r,ref:t})});pV.displayName=s6e;var l6e="DropdownMenuItemIndicator",mV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Zke,{...i,...r,ref:t})});mV.displayName=l6e;var u6e="DropdownMenuSeparator",gV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(qke,{...i,...r,ref:t})});gV.displayName=u6e;var c6e="DropdownMenuArrow",d6e=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Gke,{...i,...r,ref:t})});d6e.displayName=c6e;var f6e="DropdownMenuSubTrigger",vV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Yke,{...i,...r,ref:t})});vV.displayName=f6e;var h6e="DropdownMenuSubContent",yV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Kke,{...i,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});yV.displayName=h6e;var bV=rV,_V=oV,a7=aV,xV=lV,p6e=uV,m6e=cV,wV=dV,g6e=fV,v6e=hV,y6e=pV,kV=mV,b6e=gV,_6e=vV,x6e=yV,w6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],k6e=w6e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),S6e="Label",SV=m.forwardRef((e,t)=>u.jsx(k6e.label,{...e,ref:t,onMouseDown:n=>{var r;n.target.closest("button, input, select, textarea")||((r=e.onMouseDown)==null||r.call(e,n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));SV.displayName=S6e;var C6e=SV;function gy(e,[t,n]){return Math.min(n,Math.max(t,e))}var j6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],CV=j6e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),c4="Popover",[jV]=Oa(c4,[Cf]),vy=Cf(),[T6e,jf]=jV(c4),TV=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:a=!1}=e,s=vy(t),l=m.useRef(null),[c,d]=m.useState(!1),[f,p]=Xs({prop:r,defaultProp:i??!1,onChange:o,caller:c4});return u.jsx(t4,{...s,children:u.jsx(T6e,{scope:t,contentId:wo(),triggerRef:l,open:f,onOpenChange:p,onOpenToggle:m.useCallback(()=>p(v=>!v),[p]),hasCustomAnchor:c,onCustomAnchorAdd:m.useCallback(()=>d(!0),[]),onCustomAnchorRemove:m.useCallback(()=>d(!1),[]),modal:a,children:n})})};TV.displayName=c4;var IV="PopoverAnchor",EV=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=jf(IV,n),o=vy(n),{onCustomAnchorAdd:a,onCustomAnchorRemove:s}=i;return m.useEffect(()=>(a(),()=>s()),[a,s]),u.jsx(ly,{...o,...r,ref:t})});EV.displayName=IV;var NV="PopoverTrigger",$V=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=jf(NV,n),o=vy(n),a=At(t,i.triggerRef),s=u.jsx(CV.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":zV(i.open),...r,ref:a,onClick:Xe(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?s:u.jsx(ly,{asChild:!0,...o,children:s})});$V.displayName=NV;var s7="PopoverPortal",[I6e,E6e]=jV(s7,{forceMount:void 0}),MV=e=>{const{__scopePopover:t,forceMount:n,children:r,container:i}=e,o=jf(s7,t);return u.jsx(I6e,{scope:t,forceMount:n,children:u.jsx(Ao,{present:n||o.open,children:u.jsx(qh,{asChild:!0,container:i,children:r})})})};MV.displayName=s7;var D0="PopoverContent",LV=m.forwardRef((e,t)=>{const n=E6e(D0,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,o=jf(D0,e.__scopePopover);return u.jsx(Ao,{present:r||o.open,children:o.modal?u.jsx($6e,{...i,ref:t}):u.jsx(M6e,{...i,ref:t})})});LV.displayName=D0;var N6e=gr("PopoverContent.RemoveScroll"),$6e=m.forwardRef((e,t)=>{const n=jf(D0,e.__scopePopover),r=m.useRef(null),i=At(t,r),o=m.useRef(!1);return m.useEffect(()=>{const a=r.current;if(a)return Uw(a)},[]),u.jsx(iy,{as:N6e,allowPinchZoom:!0,children:u.jsx(RV,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Xe(e.onCloseAutoFocus,a=>{var s;a.preventDefault(),o.current||((s=n.triggerRef.current)==null||s.focus())}),onPointerDownOutside:Xe(e.onPointerDownOutside,a=>{const s=a.detail.originalEvent,l=s.button===0&&s.ctrlKey===!0,c=s.button===2||l;o.current=c},{checkForDefaultPrevented:!1}),onFocusOutside:Xe(e.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),M6e=m.forwardRef((e,t)=>{const n=jf(D0,e.__scopePopover),r=m.useRef(!1),i=m.useRef(!1);return u.jsx(RV,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var a,s;(a=e.onCloseAutoFocus)==null||a.call(e,o),o.defaultPrevented||(r.current||((s=n.triggerRef.current)==null||s.focus()),o.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:o=>{var s,l;(s=e.onInteractOutside)==null||s.call(e,o),o.defaultPrevented||(r.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const a=o.target;(l=n.triggerRef.current)!=null&&l.contains(a)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})}),RV=m.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,disableOutsidePointerEvents:a,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onInteractOutside:d,...f}=e,p=jf(D0,n),v=vy(n);return Rw(),u.jsx(ny,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o,children:u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:d,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onDismiss:()=>p.onOpenChange(!1),children:u.jsx(n4,{"data-state":zV(p.open),role:"dialog",id:p.contentId,...v,...f,ref:t,style:{...f.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),OV="PopoverClose",PV=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=jf(OV,n);return u.jsx(CV.button,{type:"button",...r,ref:t,onClick:Xe(e.onClick,()=>i.onOpenChange(!1))})});PV.displayName=OV;var L6e="PopoverArrow",R6e=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=vy(n);return u.jsx(r4,{...i,...r,ref:t})});R6e.displayName=L6e;function zV(e){return e?"open":"closed"}var l7=TV,DV=EV,AV=$V,u7=MV,c7=LV,O6e=PV,P6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],FV=P6e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),d7="Progress",f7=100,[z6e]=Oa(d7),[D6e,A6e]=z6e(d7),BV=m.forwardRef((e,t)=>{const{__scopeProgress:n,value:r=null,max:i,getValueLabel:o=F6e,...a}=e;(i||i===0)&&!HV(i)&&console.error(B6e(`${i}`,"Progress"));const s=HV(i)?i:f7;r!==null&&!ZV(r,s)&&console.error(U6e(`${r}`,"Progress"));const l=ZV(r,s)?r:null,c=d4(l)?o(l,s):void 0;return u.jsx(D6e,{scope:n,value:l,max:s,children:u.jsx(FV.div,{"aria-valuemax":s,"aria-valuemin":0,"aria-valuenow":d4(l)?l:void 0,"aria-valuetext":c,role:"progressbar","data-state":VV(l,s),"data-value":l??void 0,"data-max":s,...a,ref:t})})});BV.displayName=d7;var UV="ProgressIndicator",WV=m.forwardRef((e,t)=>{const{__scopeProgress:n,...r}=e,i=A6e(UV,n);return u.jsx(FV.div,{"data-state":VV(i.value,i.max),"data-value":i.value??void 0,"data-max":i.max,...r,ref:t})});WV.displayName=UV;function F6e(e,t){return`${Math.round(e/t*100)}%`}function VV(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function d4(e){return typeof e=="number"}function HV(e){return d4(e)&&!isNaN(e)&&e>0}function ZV(e,t){return d4(e)&&!isNaN(e)&&e<=t&&e>=0}function B6e(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${f7}\`.`}function U6e(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: - - a positive number - - less than the value passed to \`max\` (or ${f7} if no \`max\` prop is set) - - \`null\` or \`undefined\` if the progress is indeterminate. - -Defaulting to \`null\`.`}var W6e=BV,V6e=WV,H6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],yy=H6e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Z6e(e,t){return m.useReducer((n,r)=>t[n][r]??n,e)}var h7="ScrollArea",[qV]=Oa(h7),[q6e,Qs]=qV(h7),GV=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:i,scrollHideDelay:o=600,...a}=e,[s,l]=m.useState(null),[c,d]=m.useState(null),[f,p]=m.useState(null),[v,_]=m.useState(null),[y,b]=m.useState(null),[w,x]=m.useState(0),[S,C]=m.useState(0),[j,T]=m.useState(!1),[E,$]=m.useState(!1),A=At(t,P=>l(P)),M=T0(i);return u.jsx(q6e,{scope:n,type:r,dir:M,scrollHideDelay:o,scrollArea:s,viewport:c,onViewportChange:d,content:f,onContentChange:p,scrollbarX:v,onScrollbarXChange:_,scrollbarXEnabled:j,onScrollbarXEnabledChange:T,scrollbarY:y,onScrollbarYChange:b,scrollbarYEnabled:E,onScrollbarYEnabledChange:$,onCornerWidthChange:x,onCornerHeightChange:C,children:u.jsx(yy.div,{dir:M,...a,ref:A,style:{position:"relative","--radix-scroll-area-corner-width":w+"px","--radix-scroll-area-corner-height":S+"px",...e.style}})})});GV.displayName=h7;var YV="ScrollAreaViewport",KV=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:i,...o}=e,a=Qs(YV,n),s=m.useRef(null),l=At(t,s,a.onViewportChange);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:i}),u.jsx(yy.div,{"data-radix-scroll-area-viewport":"",...o,ref:l,style:{overflowX:a.scrollbarXEnabled?"scroll":"hidden",overflowY:a.scrollbarYEnabled?"scroll":"hidden",...e.style},children:u.jsx("div",{ref:a.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});KV.displayName=YV;var Uu="ScrollAreaScrollbar",XV=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=Qs(Uu,e.__scopeScrollArea),{onScrollbarXEnabledChange:o,onScrollbarYEnabledChange:a}=i,s=e.orientation==="horizontal";return m.useEffect(()=>(s?o(!0):a(!0),()=>{s?o(!1):a(!1)}),[s,o,a]),i.type==="hover"?u.jsx(G6e,{...r,ref:t,forceMount:n}):i.type==="scroll"?u.jsx(Y6e,{...r,ref:t,forceMount:n}):i.type==="auto"?u.jsx(JV,{...r,ref:t,forceMount:n}):i.type==="always"?u.jsx(p7,{...r,ref:t}):null});XV.displayName=Uu;var G6e=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=Qs(Uu,e.__scopeScrollArea),[o,a]=m.useState(!1);return m.useEffect(()=>{const s=i.scrollArea;let l=0;if(s){const c=()=>{window.clearTimeout(l),a(!0)},d=()=>{l=window.setTimeout(()=>a(!1),i.scrollHideDelay)};return s.addEventListener("pointerenter",c),s.addEventListener("pointerleave",d),()=>{window.clearTimeout(l),s.removeEventListener("pointerenter",c),s.removeEventListener("pointerleave",d)}}},[i.scrollArea,i.scrollHideDelay]),u.jsx(Ao,{present:n||o,children:u.jsx(JV,{"data-state":o?"visible":"hidden",...r,ref:t})})}),Y6e=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=Qs(Uu,e.__scopeScrollArea),o=e.orientation==="horizontal",a=m4(()=>l("SCROLL_END"),100),[s,l]=Z6e("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return m.useEffect(()=>{if(s==="idle"){const c=window.setTimeout(()=>l("HIDE"),i.scrollHideDelay);return()=>window.clearTimeout(c)}},[s,i.scrollHideDelay,l]),m.useEffect(()=>{const c=i.viewport,d=o?"scrollLeft":"scrollTop";if(c){let f=c[d];const p=()=>{const v=c[d];f!==v&&(l("SCROLL"),a()),f=v};return c.addEventListener("scroll",p),()=>c.removeEventListener("scroll",p)}},[i.viewport,o,l,a]),u.jsx(Ao,{present:n||s!=="hidden",children:u.jsx(p7,{"data-state":s==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:Xe(e.onPointerEnter,()=>l("POINTER_ENTER")),onPointerLeave:Xe(e.onPointerLeave,()=>l("POINTER_LEAVE"))})})}),JV=m.forwardRef((e,t)=>{const n=Qs(Uu,e.__scopeScrollArea),{forceMount:r,...i}=e,[o,a]=m.useState(!1),s=e.orientation==="horizontal",l=m4(()=>{if(n.viewport){const c=n.viewport.offsetWidth{const{orientation:n="vertical",...r}=e,i=Qs(Uu,e.__scopeScrollArea),o=m.useRef(null),a=m.useRef(0),[s,l]=m.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),c=rH(s.viewport,s.content),d={...r,sizes:s,onSizesChange:l,hasThumb:c>0&&c<1,onThumbChange:p=>o.current=p,onThumbPointerUp:()=>a.current=0,onThumbPointerDown:p=>a.current=p};function f(p,v){return t5e(p,a.current,s,v)}return n==="horizontal"?u.jsx(K6e,{...d,ref:t,onThumbPositionChange:()=>{if(i.viewport&&o.current){const p=i.viewport.scrollLeft,v=iH(p,s,i.dir);o.current.style.transform=`translate3d(${v}px, 0, 0)`}},onWheelScroll:p=>{i.viewport&&(i.viewport.scrollLeft=p)},onDragScroll:p=>{i.viewport&&(i.viewport.scrollLeft=f(p,i.dir))}}):n==="vertical"?u.jsx(X6e,{...d,ref:t,onThumbPositionChange:()=>{if(i.viewport&&o.current){const p=i.viewport.scrollTop,v=iH(p,s);o.current.style.transform=`translate3d(0, ${v}px, 0)`}},onWheelScroll:p=>{i.viewport&&(i.viewport.scrollTop=p)},onDragScroll:p=>{i.viewport&&(i.viewport.scrollTop=f(p))}}):null}),K6e=m.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...i}=e,o=Qs(Uu,e.__scopeScrollArea),[a,s]=m.useState(),l=m.useRef(null),c=At(t,l,o.onScrollbarXChange);return m.useEffect(()=>{l.current&&s(getComputedStyle(l.current))},[l]),u.jsx(eH,{"data-orientation":"horizontal",...i,ref:c,sizes:n,style:{bottom:0,left:o.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:o.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":p4(n)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.x),onDragScroll:d=>e.onDragScroll(d.x),onWheelScroll:(d,f)=>{if(o.viewport){const p=o.viewport.scrollLeft+d.deltaX;e.onWheelScroll(p),aH(p,f)&&d.preventDefault()}},onResize:()=>{l.current&&o.viewport&&a&&r({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:h4(a.paddingLeft),paddingEnd:h4(a.paddingRight)}})}})}),X6e=m.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...i}=e,o=Qs(Uu,e.__scopeScrollArea),[a,s]=m.useState(),l=m.useRef(null),c=At(t,l,o.onScrollbarYChange);return m.useEffect(()=>{l.current&&s(getComputedStyle(l.current))},[l]),u.jsx(eH,{"data-orientation":"vertical",...i,ref:c,sizes:n,style:{top:0,right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":p4(n)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.y),onDragScroll:d=>e.onDragScroll(d.y),onWheelScroll:(d,f)=>{if(o.viewport){const p=o.viewport.scrollTop+d.deltaY;e.onWheelScroll(p),aH(p,f)&&d.preventDefault()}},onResize:()=>{l.current&&o.viewport&&a&&r({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:h4(a.paddingTop),paddingEnd:h4(a.paddingBottom)}})}})}),[J6e,QV]=qV(Uu),eH=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:o,onThumbPointerUp:a,onThumbPointerDown:s,onThumbPositionChange:l,onDragScroll:c,onWheelScroll:d,onResize:f,...p}=e,v=Qs(Uu,n),[_,y]=m.useState(null),b=At(t,A=>y(A)),w=m.useRef(null),x=m.useRef(""),S=v.viewport,C=r.content-r.viewport,j=ko(d),T=ko(l),E=m4(f,10);function $(A){if(w.current){const M=A.clientX-w.current.left,P=A.clientY-w.current.top;c({x:M,y:P})}}return m.useEffect(()=>{const A=M=>{const P=M.target;_!=null&&_.contains(P)&&j(M,C)};return document.addEventListener("wheel",A,{passive:!1}),()=>document.removeEventListener("wheel",A,{passive:!1})},[S,_,C,j]),m.useEffect(T,[r,T]),A0(_,E),A0(v.content,E),u.jsx(J6e,{scope:n,scrollbar:_,hasThumb:i,onThumbChange:ko(o),onThumbPointerUp:ko(a),onThumbPositionChange:T,onThumbPointerDown:ko(s),children:u.jsx(yy.div,{...p,ref:b,style:{position:"absolute",...p.style},onPointerDown:Xe(e.onPointerDown,A=>{A.button===0&&(A.target.setPointerCapture(A.pointerId),w.current=_.getBoundingClientRect(),x.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",v.viewport&&(v.viewport.style.scrollBehavior="auto"),$(A))}),onPointerMove:Xe(e.onPointerMove,$),onPointerUp:Xe(e.onPointerUp,A=>{const M=A.target;M.hasPointerCapture(A.pointerId)&&M.releasePointerCapture(A.pointerId),document.body.style.webkitUserSelect=x.current,v.viewport&&(v.viewport.style.scrollBehavior=""),w.current=null})})})}),f4="ScrollAreaThumb",tH=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=QV(f4,e.__scopeScrollArea);return u.jsx(Ao,{present:n||i.hasThumb,children:u.jsx(Q6e,{ref:t,...r})})}),Q6e=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...i}=e,o=Qs(f4,n),a=QV(f4,n),{onThumbPositionChange:s}=a,l=At(t,f=>a.onThumbChange(f)),c=m.useRef(void 0),d=m4(()=>{c.current&&(c.current(),c.current=void 0)},100);return m.useEffect(()=>{const f=o.viewport;if(f){const p=()=>{if(d(),!c.current){const v=n5e(f,s);c.current=v,s()}};return s(),f.addEventListener("scroll",p),()=>f.removeEventListener("scroll",p)}},[o.viewport,d,s]),u.jsx(yy.div,{"data-state":a.hasThumb?"visible":"hidden",...i,ref:l,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:Xe(e.onPointerDownCapture,f=>{const p=f.target.getBoundingClientRect(),v=f.clientX-p.left,_=f.clientY-p.top;a.onThumbPointerDown({x:v,y:_})}),onPointerUp:Xe(e.onPointerUp,a.onThumbPointerUp)})});tH.displayName=f4;var m7="ScrollAreaCorner",nH=m.forwardRef((e,t)=>{const n=Qs(m7,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?u.jsx(e5e,{...e,ref:t}):null});nH.displayName=m7;var e5e=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,i=Qs(m7,n),[o,a]=m.useState(0),[s,l]=m.useState(0),c=!!(o&&s);return A0(i.scrollbarX,()=>{var f;const d=((f=i.scrollbarX)==null?void 0:f.offsetHeight)||0;i.onCornerHeightChange(d),l(d)}),A0(i.scrollbarY,()=>{var f;const d=((f=i.scrollbarY)==null?void 0:f.offsetWidth)||0;i.onCornerWidthChange(d),a(d)}),c?u.jsx(yy.div,{...r,ref:t,style:{width:o,height:s,position:"absolute",right:i.dir==="ltr"?0:void 0,left:i.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function h4(e){return e?parseInt(e,10):0}function rH(e,t){const n=e/t;return isNaN(n)?0:n}function p4(e){const t=rH(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function t5e(e,t,n,r="ltr"){const i=p4(n),o=i/2,a=t||o,s=i-a,l=n.scrollbar.paddingStart+a,c=n.scrollbar.size-n.scrollbar.paddingEnd-s,d=n.content-n.viewport,f=r==="ltr"?[0,d]:[d*-1,0];return oH([l,c],f)(e)}function iH(e,t,n="ltr"){const r=p4(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,o=t.scrollbar.size-i,a=t.content-t.viewport,s=o-r,l=n==="ltr"?[0,a]:[a*-1,0],c=gy(e,l);return oH([0,a],[0,s])(c)}function oH(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function aH(e,t){return e>0&&e{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return function i(){const o={left:e.scrollLeft,top:e.scrollTop},a=n.left!==o.left,s=n.top!==o.top;(a||s)&&t(),n=o,r=window.requestAnimationFrame(i)}(),()=>window.cancelAnimationFrame(r)};function m4(e,t){const n=ko(e),r=m.useRef(0);return m.useEffect(()=>()=>window.clearTimeout(r.current),[]),m.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function A0(e,t){const n=ko(t);xo(()=>{let r=0;if(e){const i=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return i.observe(e),()=>{window.cancelAnimationFrame(r),i.unobserve(e)}}},[e,n])}var sH=GV,lH=KV,g7=XV,v7=tH,r5e=nH,i5e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ds=i5e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),o5e=[" ","Enter","ArrowUp","ArrowDown"],a5e=[" ","Enter"],Jh="Select",[g4,v4,s5e]=Mw(Jh),[F0]=Oa(Jh,[s5e,Cf]),y4=Cf(),[l5e,Tf]=F0(Jh),[u5e,c5e]=F0(Jh),uH=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:o,value:a,defaultValue:s,onValueChange:l,dir:c,name:d,autoComplete:f,disabled:p,required:v,form:_}=e,y=y4(t),[b,w]=m.useState(null),[x,S]=m.useState(null),[C,j]=m.useState(!1),T=T0(c),[E,$]=Xs({prop:r,defaultProp:i??!1,onChange:o,caller:Jh}),[A,M]=Xs({prop:a,defaultProp:s,onChange:l,caller:Jh}),P=m.useRef(null),te=b?_||!!b.closest("form"):!0,[Z,O]=m.useState(new Set),J=Array.from(Z).map(D=>D.props.value).join(";");return u.jsx(t4,{...y,children:u.jsxs(l5e,{required:v,scope:t,trigger:b,onTriggerChange:w,valueNode:x,onValueNodeChange:S,valueNodeHasChildren:C,onValueNodeHasChildrenChange:j,contentId:wo(),value:A,onValueChange:M,open:E,onOpenChange:$,dir:T,triggerPointerDownPosRef:P,disabled:p,children:[u.jsx(g4.Provider,{scope:t,children:u.jsx(u5e,{scope:e.__scopeSelect,onNativeOptionAdd:m.useCallback(D=>{O(Y=>new Set(Y).add(D))},[]),onNativeOptionRemove:m.useCallback(D=>{O(Y=>{const F=new Set(Y);return F.delete(D),F})},[]),children:n})}),te?u.jsxs(MH,{"aria-hidden":!0,required:v,tabIndex:-1,name:d,autoComplete:f,value:A,onChange:D=>M(D.target.value),disabled:p,form:_,children:[A===void 0?u.jsx("option",{value:""}):null,Array.from(Z)]},J):null]})})};uH.displayName=Jh;var cH="SelectTrigger",dH=m.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...i}=e,o=y4(n),a=Tf(cH,n),s=a.disabled||r,l=At(t,a.onTriggerChange),c=v4(n),d=m.useRef("touch"),[f,p,v]=RH(y=>{const b=c().filter(S=>!S.disabled),w=b.find(S=>S.value===a.value),x=OH(b,y,w);x!==void 0&&a.onValueChange(x.value)}),_=y=>{s||(a.onOpenChange(!0),v()),y&&(a.triggerPointerDownPosRef.current={x:Math.round(y.pageX),y:Math.round(y.pageY)})};return u.jsx(ly,{asChild:!0,...o,children:u.jsx(ds.button,{type:"button",role:"combobox","aria-controls":a.contentId,"aria-expanded":a.open,"aria-required":a.required,"aria-autocomplete":"none",dir:a.dir,"data-state":a.open?"open":"closed",disabled:s,"data-disabled":s?"":void 0,"data-placeholder":LH(a.value)?"":void 0,...i,ref:l,onClick:Xe(i.onClick,y=>{y.currentTarget.focus(),d.current!=="mouse"&&_(y)}),onPointerDown:Xe(i.onPointerDown,y=>{d.current=y.pointerType;const b=y.target;b.hasPointerCapture(y.pointerId)&&b.releasePointerCapture(y.pointerId),y.button===0&&y.ctrlKey===!1&&y.pointerType==="mouse"&&(_(y),y.preventDefault())}),onKeyDown:Xe(i.onKeyDown,y=>{const b=f.current!=="";!(y.ctrlKey||y.altKey||y.metaKey)&&y.key.length===1&&p(y.key),!(b&&y.key===" ")&&o5e.includes(y.key)&&(_(),y.preventDefault())})})})});dH.displayName=cH;var fH="SelectValue",hH=m.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,children:o,placeholder:a="",...s}=e,l=Tf(fH,n),{onValueNodeHasChildrenChange:c}=l,d=o!==void 0,f=At(t,l.onValueNodeChange);return xo(()=>{c(d)},[c,d]),u.jsx(ds.span,{...s,ref:f,style:{pointerEvents:"none"},children:LH(l.value)?u.jsx(u.Fragment,{children:a}):o})});hH.displayName=fH;var d5e="SelectIcon",pH=m.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...i}=e;return u.jsx(ds.span,{"aria-hidden":!0,...i,ref:t,children:r||"\u25BC"})});pH.displayName=d5e;var f5e="SelectPortal",mH=e=>u.jsx(qh,{asChild:!0,...e});mH.displayName=f5e;var Qh="SelectContent",gH=m.forwardRef((e,t)=>{const n=Tf(Qh,e.__scopeSelect),[r,i]=m.useState();if(xo(()=>{i(new DocumentFragment)},[]),!n.open){const o=r;return o?Kc.createPortal(u.jsx(vH,{scope:e.__scopeSelect,children:u.jsx(g4.Slot,{scope:e.__scopeSelect,children:u.jsx("div",{children:e.children})})}),o):null}return u.jsx(yH,{...e,ref:t})});gH.displayName=Qh;var Bl=10,[vH,If]=F0(Qh),h5e="SelectContentImpl",p5e=gr("SelectContent.RemoveScroll"),yH=m.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:i,onEscapeKeyDown:o,onPointerDownOutside:a,side:s,sideOffset:l,align:c,alignOffset:d,arrowPadding:f,collisionBoundary:p,collisionPadding:v,sticky:_,hideWhenDetached:y,avoidCollisions:b,...w}=e,x=Tf(Qh,n),[S,C]=m.useState(null),[j,T]=m.useState(null),E=At(t,he=>C(he)),[$,A]=m.useState(null),[M,P]=m.useState(null),te=v4(n),[Z,O]=m.useState(!1),J=m.useRef(!1);m.useEffect(()=>{if(S)return Uw(S)},[S]),Rw();const D=m.useCallback(he=>{const[ue,...re]=te().map(pe=>pe.ref.current),[ge]=re.slice(-1),$e=document.activeElement;for(const pe of he)if(pe===$e||(pe==null||pe.scrollIntoView({block:"nearest"}),pe===ue&&j&&(j.scrollTop=0),pe===ge&&j&&(j.scrollTop=j.scrollHeight),pe==null||pe.focus(),document.activeElement!==$e))return},[te,j]),Y=m.useCallback(()=>D([$,S]),[D,$,S]);m.useEffect(()=>{Z&&Y()},[Z,Y]);const{onOpenChange:F,triggerPointerDownPosRef:H}=x;m.useEffect(()=>{if(S){let he={x:0,y:0};const ue=ge=>{var $e,pe;he={x:Math.abs(Math.round(ge.pageX)-((($e=H.current)==null?void 0:$e.x)??0)),y:Math.abs(Math.round(ge.pageY)-(((pe=H.current)==null?void 0:pe.y)??0))}},re=ge=>{he.x<=10&&he.y<=10?ge.preventDefault():S.contains(ge.target)||F(!1),document.removeEventListener("pointermove",ue),H.current=null};return H.current!==null&&(document.addEventListener("pointermove",ue),document.addEventListener("pointerup",re,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",ue),document.removeEventListener("pointerup",re,{capture:!0})}}},[S,F,H]),m.useEffect(()=>{const he=()=>F(!1);return window.addEventListener("blur",he),window.addEventListener("resize",he),()=>{window.removeEventListener("blur",he),window.removeEventListener("resize",he)}},[F]);const[ee,ce]=RH(he=>{const ue=te().filter($e=>!$e.disabled),re=ue.find($e=>$e.ref.current===document.activeElement),ge=OH(ue,he,re);ge&&setTimeout(()=>ge.ref.current.focus())}),U=m.useCallback((he,ue,re)=>{const ge=!J.current&&!re;(x.value!==void 0&&x.value===ue||ge)&&(A(he),ge&&(J.current=!0))},[x.value]),ae=m.useCallback(()=>S==null?void 0:S.focus(),[S]),je=m.useCallback((he,ue,re)=>{const ge=!J.current&&!re;(x.value!==void 0&&x.value===ue||ge)&&P(he)},[x.value]),me=r==="popper"?y7:bH,ke=me===y7?{side:s,sideOffset:l,align:c,alignOffset:d,arrowPadding:f,collisionBoundary:p,collisionPadding:v,sticky:_,hideWhenDetached:y,avoidCollisions:b}:{};return u.jsx(vH,{scope:n,content:S,viewport:j,onViewportChange:T,itemRefCallback:U,selectedItem:$,onItemLeave:ae,itemTextRefCallback:je,focusSelectedItem:Y,selectedItemText:M,position:r,isPositioned:Z,searchRef:ee,children:u.jsx(iy,{as:p5e,allowPinchZoom:!0,children:u.jsx(ny,{asChild:!0,trapped:x.open,onMountAutoFocus:he=>{he.preventDefault()},onUnmountAutoFocus:Xe(i,he=>{var ue;(ue=x.trigger)==null||ue.focus({preventScroll:!0}),he.preventDefault()}),children:u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:he=>he.preventDefault(),onDismiss:()=>x.onOpenChange(!1),children:u.jsx(me,{role:"listbox",id:x.contentId,"data-state":x.open?"open":"closed",dir:x.dir,onContextMenu:he=>he.preventDefault(),...w,...ke,onPlaced:()=>O(!0),ref:E,style:{display:"flex",flexDirection:"column",outline:"none",...w.style},onKeyDown:Xe(w.onKeyDown,he=>{const ue=he.ctrlKey||he.altKey||he.metaKey;if(he.key==="Tab"&&he.preventDefault(),!ue&&he.key.length===1&&ce(he.key),["ArrowUp","ArrowDown","Home","End"].includes(he.key)){let re=te().filter(ge=>!ge.disabled).map(ge=>ge.ref.current);if(["ArrowUp","End"].includes(he.key)&&(re=re.slice().reverse()),["ArrowUp","ArrowDown"].includes(he.key)){const ge=he.target,$e=re.indexOf(ge);re=re.slice($e+1)}setTimeout(()=>D(re)),he.preventDefault()}})})})})})})});yH.displayName=h5e;var m5e="SelectItemAlignedPosition",bH=m.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...i}=e,o=Tf(Qh,n),a=If(Qh,n),[s,l]=m.useState(null),[c,d]=m.useState(null),f=At(t,E=>d(E)),p=v4(n),v=m.useRef(!1),_=m.useRef(!0),{viewport:y,selectedItem:b,selectedItemText:w,focusSelectedItem:x}=a,S=m.useCallback(()=>{if(o.trigger&&o.valueNode&&s&&c&&y&&b&&w){const E=o.trigger.getBoundingClientRect(),$=c.getBoundingClientRect(),A=o.valueNode.getBoundingClientRect(),M=w.getBoundingClientRect();if(o.dir!=="rtl"){const ge=M.left-$.left,$e=A.left-ge,pe=E.left-$e,ye=E.width+pe,Se=Math.max(ye,$.width),Ce=window.innerWidth-Bl,Be=gy($e,[Bl,Math.max(Bl,Ce-Se)]);s.style.minWidth=ye+"px",s.style.left=Be+"px"}else{const ge=$.right-M.right,$e=window.innerWidth-A.right-ge,pe=window.innerWidth-E.right-$e,ye=E.width+pe,Se=Math.max(ye,$.width),Ce=window.innerWidth-Bl,Be=gy($e,[Bl,Math.max(Bl,Ce-Se)]);s.style.minWidth=ye+"px",s.style.right=Be+"px"}const P=p(),te=window.innerHeight-Bl*2,Z=y.scrollHeight,O=window.getComputedStyle(c),J=parseInt(O.borderTopWidth,10),D=parseInt(O.paddingTop,10),Y=parseInt(O.borderBottomWidth,10),F=parseInt(O.paddingBottom,10),H=J+D+Z+F+Y,ee=Math.min(b.offsetHeight*5,H),ce=window.getComputedStyle(y),U=parseInt(ce.paddingTop,10),ae=parseInt(ce.paddingBottom,10),je=E.top+E.height/2-Bl,me=te-je,ke=b.offsetHeight/2,he=b.offsetTop+ke,ue=J+D+he,re=H-ue;if(ue<=je){const ge=P.length>0&&b===P[P.length-1].ref.current;s.style.bottom="0px";const $e=c.clientHeight-y.offsetTop-y.offsetHeight,pe=Math.max(me,ke+(ge?ae:0)+$e+Y),ye=ue+pe;s.style.height=ye+"px"}else{const ge=P.length>0&&b===P[0].ref.current;s.style.top="0px";const $e=Math.max(je,J+y.offsetTop+(ge?U:0)+ke)+re;s.style.height=$e+"px",y.scrollTop=ue-je+y.offsetTop}s.style.margin=`${Bl}px 0`,s.style.minHeight=ee+"px",s.style.maxHeight=te+"px",r==null||r(),requestAnimationFrame(()=>v.current=!0)}},[p,o.trigger,o.valueNode,s,c,y,b,w,o.dir,r]);xo(()=>S(),[S]);const[C,j]=m.useState();xo(()=>{c&&j(window.getComputedStyle(c).zIndex)},[c]);const T=m.useCallback(E=>{E&&_.current===!0&&(S(),x==null||x(),_.current=!1)},[S,x]);return u.jsx(v5e,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:v,onScrollButtonChange:T,children:u.jsx("div",{ref:l,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:C},children:u.jsx(ds.div,{...i,ref:f,style:{boxSizing:"border-box",maxHeight:"100%",...i.style}})})})});bH.displayName=m5e;var g5e="SelectPopperPosition",y7=m.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:i=Bl,...o}=e,a=y4(n);return u.jsx(n4,{...a,...o,ref:t,align:r,collisionPadding:i,style:{boxSizing:"border-box",...o.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});y7.displayName=g5e;var[v5e,b7]=F0(Qh,{}),_7="SelectViewport",_H=m.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...i}=e,o=If(_7,n),a=b7(_7,n),s=At(t,o.onViewportChange),l=m.useRef(0);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:r}),u.jsx(g4.Slot,{scope:n,children:u.jsx(ds.div,{"data-radix-select-viewport":"",role:"presentation",...i,ref:s,style:{position:"relative",flex:1,overflow:"hidden auto",...i.style},onScroll:Xe(i.onScroll,c=>{const d=c.currentTarget,{contentWrapper:f,shouldExpandOnScrollRef:p}=a;if(p!=null&&p.current&&f){const v=Math.abs(l.current-d.scrollTop);if(v>0){const _=window.innerHeight-Bl*2,y=parseFloat(f.style.minHeight),b=parseFloat(f.style.height),w=Math.max(y,b);if(w<_){const x=w+v,S=Math.min(_,x),C=x-S;f.style.height=S+"px",f.style.bottom==="0px"&&(d.scrollTop=C>0?C:0,f.style.justifyContent="flex-end")}}}l.current=d.scrollTop})})})]})});_H.displayName=_7;var xH="SelectGroup",[y5e,b5e]=F0(xH),wH=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=wo();return u.jsx(y5e,{scope:n,id:i,children:u.jsx(ds.div,{role:"group","aria-labelledby":i,...r,ref:t})})});wH.displayName=xH;var kH="SelectLabel",SH=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=b5e(kH,n);return u.jsx(ds.div,{id:i.id,...r,ref:t})});SH.displayName=kH;var b4="SelectItem",[_5e,CH]=F0(b4),jH=m.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:i=!1,textValue:o,...a}=e,s=Tf(b4,n),l=If(b4,n),c=s.value===r,[d,f]=m.useState(o??""),[p,v]=m.useState(!1),_=At(t,x=>{var S;return(S=l.itemRefCallback)==null?void 0:S.call(l,x,r,i)}),y=wo(),b=m.useRef("touch"),w=()=>{i||(s.onValueChange(r),s.onOpenChange(!1))};if(r==="")throw new Error("A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return u.jsx(_5e,{scope:n,value:r,disabled:i,textId:y,isSelected:c,onItemTextChange:m.useCallback(x=>{f(S=>S||((x==null?void 0:x.textContent)??"").trim())},[]),children:u.jsx(g4.ItemSlot,{scope:n,value:r,disabled:i,textValue:d,children:u.jsx(ds.div,{role:"option","aria-labelledby":y,"data-highlighted":p?"":void 0,"aria-selected":c&&p,"data-state":c?"checked":"unchecked","aria-disabled":i||void 0,"data-disabled":i?"":void 0,tabIndex:i?void 0:-1,...a,ref:_,onFocus:Xe(a.onFocus,()=>v(!0)),onBlur:Xe(a.onBlur,()=>v(!1)),onClick:Xe(a.onClick,()=>{b.current!=="mouse"&&w()}),onPointerUp:Xe(a.onPointerUp,()=>{b.current==="mouse"&&w()}),onPointerDown:Xe(a.onPointerDown,x=>{b.current=x.pointerType}),onPointerMove:Xe(a.onPointerMove,x=>{var S;b.current=x.pointerType,i?(S=l.onItemLeave)==null||S.call(l):b.current==="mouse"&&x.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Xe(a.onPointerLeave,x=>{var S;x.currentTarget===document.activeElement&&((S=l.onItemLeave)==null||S.call(l))}),onKeyDown:Xe(a.onKeyDown,x=>{var S;((S=l.searchRef)==null?void 0:S.current)!==""&&x.key===" "||(a5e.includes(x.key)&&w(),x.key===" "&&x.preventDefault())})})})})});jH.displayName=b4;var by="SelectItemText",TH=m.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,...o}=e,a=Tf(by,n),s=If(by,n),l=CH(by,n),c=c5e(by,n),[d,f]=m.useState(null),p=At(t,w=>f(w),l.onItemTextChange,w=>{var x;return(x=s.itemTextRefCallback)==null?void 0:x.call(s,w,l.value,l.disabled)}),v=d==null?void 0:d.textContent,_=m.useMemo(()=>u.jsx("option",{value:l.value,disabled:l.disabled,children:v},l.value),[l.disabled,l.value,v]),{onNativeOptionAdd:y,onNativeOptionRemove:b}=c;return xo(()=>(y(_),()=>b(_)),[y,b,_]),u.jsxs(u.Fragment,{children:[u.jsx(ds.span,{id:l.textId,...o,ref:p}),l.isSelected&&a.valueNode&&!a.valueNodeHasChildren?Kc.createPortal(o.children,a.valueNode):null]})});TH.displayName=by;var IH="SelectItemIndicator",EH=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return CH(IH,n).isSelected?u.jsx(ds.span,{"aria-hidden":!0,...r,ref:t}):null});EH.displayName=IH;var x7="SelectScrollUpButton",x5e=m.forwardRef((e,t)=>{const n=If(x7,e.__scopeSelect),r=b7(x7,e.__scopeSelect),[i,o]=m.useState(!1),a=At(t,r.onScrollButtonChange);return xo(()=>{if(n.viewport&&n.isPositioned){let s=function(){const c=l.scrollTop>0;o(c)};const l=n.viewport;return s(),l.addEventListener("scroll",s),()=>l.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),i?u.jsx(NH,{...e,ref:a,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=n;s&&l&&(s.scrollTop=s.scrollTop-l.offsetHeight)}}):null});x5e.displayName=x7;var w7="SelectScrollDownButton",w5e=m.forwardRef((e,t)=>{const n=If(w7,e.__scopeSelect),r=b7(w7,e.__scopeSelect),[i,o]=m.useState(!1),a=At(t,r.onScrollButtonChange);return xo(()=>{if(n.viewport&&n.isPositioned){let s=function(){const c=l.scrollHeight-l.clientHeight,d=Math.ceil(l.scrollTop)l.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),i?u.jsx(NH,{...e,ref:a,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=n;s&&l&&(s.scrollTop=s.scrollTop+l.offsetHeight)}}):null});w5e.displayName=w7;var NH=m.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...i}=e,o=If("SelectScrollButton",n),a=m.useRef(null),s=v4(n),l=m.useCallback(()=>{a.current!==null&&(window.clearInterval(a.current),a.current=null)},[]);return m.useEffect(()=>()=>l(),[l]),xo(()=>{var c,d;(d=(c=s().find(f=>f.ref.current===document.activeElement))==null?void 0:c.ref.current)==null||d.scrollIntoView({block:"nearest"})},[s]),u.jsx(ds.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:Xe(i.onPointerDown,()=>{a.current===null&&(a.current=window.setInterval(r,50))}),onPointerMove:Xe(i.onPointerMove,()=>{var c;(c=o.onItemLeave)==null||c.call(o),a.current===null&&(a.current=window.setInterval(r,50))}),onPointerLeave:Xe(i.onPointerLeave,()=>{l()})})}),k5e="SelectSeparator",$H=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return u.jsx(ds.div,{"aria-hidden":!0,...r,ref:t})});$H.displayName=k5e;var k7="SelectArrow",S5e=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=y4(n),o=Tf(k7,n),a=If(k7,n);return o.open&&a.position==="popper"?u.jsx(r4,{...i,...r,ref:t}):null});S5e.displayName=k7;var C5e="SelectBubbleInput",MH=m.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const i=m.useRef(null),o=At(r,i),a=O9(t);return m.useEffect(()=>{const s=i.current;if(!s)return;const l=window.HTMLSelectElement.prototype,c=Object.getOwnPropertyDescriptor(l,"value").set;if(a!==t&&c){const d=new Event("change",{bubbles:!0});c.call(s,t),s.dispatchEvent(d)}},[a,t]),u.jsx(ds.select,{...n,style:{...GB,...n.style},ref:o,defaultValue:t})});MH.displayName=C5e;function LH(e){return e===""||e===void 0}function RH(e){const t=ko(e),n=m.useRef(""),r=m.useRef(0),i=m.useCallback(a=>{const s=n.current+a;t(s),function l(c){n.current=c,window.clearTimeout(r.current),c!==""&&(r.current=window.setTimeout(()=>l(""),1e3))}(s)},[t]),o=m.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return m.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,o]}function OH(e,t,n){const r=t.length>1&&Array.from(t).every(s=>s===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let o=j5e(e,Math.max(i,0));r.length===1&&(o=o.filter(s=>s!==n));const a=o.find(s=>s.textValue.toLowerCase().startsWith(r.toLowerCase()));return a!==n?a:void 0}function j5e(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var T5e=uH,I5e=dH,E5e=hH,N5e=pH,$5e=mH,M5e=gH,L5e=_H,R5e=wH,O5e=SH,P5e=jH,z5e=TH,D5e=EH,A5e=$H,F5e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],_y=F5e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),PH=["PageUp","PageDown"],zH=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],DH={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},B0="Slider",[S7,B5e,U5e]=Mw(B0),[AH]=Oa(B0,[U5e]),[W5e,_4]=AH(B0),FH=m.forwardRef((e,t)=>{const{name:n,min:r=0,max:i=100,step:o=1,orientation:a="horizontal",disabled:s=!1,minStepsBetweenThumbs:l=0,defaultValue:c=[r],value:d,onValueChange:f=()=>{},onValueCommit:p=()=>{},inverted:v=!1,form:_,...y}=e,b=m.useRef(new Set),w=m.useRef(0),x=a==="horizontal"?V5e:H5e,[S=[],C]=Xs({prop:d,defaultProp:c,onChange:M=>{var P;(P=[...b.current][w.current])==null||P.focus(),f(M)}}),j=m.useRef(S);function T(M){const P=K5e(S,M);A(M,P)}function E(M){A(M,w.current)}function $(){const M=j.current[w.current];S[w.current]!==M&&p(S)}function A(M,P,{commit:te}={commit:!1}){const Z=eSe(o),O=tSe(Math.round((M-r)/o)*o+r,Z),J=gy(O,[r,i]);C((D=[])=>{const Y=G5e(D,J,P);if(Q5e(Y,l*o)){w.current=Y.indexOf(J);const F=String(Y)!==String(D);return F&&te&&p(Y),F?Y:D}else return D})}return u.jsx(W5e,{scope:e.__scopeSlider,name:n,disabled:s,min:r,max:i,valueIndexToChangeRef:w,thumbs:b.current,values:S,orientation:a,form:_,children:u.jsx(S7.Provider,{scope:e.__scopeSlider,children:u.jsx(S7.Slot,{scope:e.__scopeSlider,children:u.jsx(x,{"aria-disabled":s,"data-disabled":s?"":void 0,...y,ref:t,onPointerDown:Xe(y.onPointerDown,()=>{s||(j.current=S)}),min:r,max:i,inverted:v,onSlideStart:s?void 0:T,onSlideMove:s?void 0:E,onSlideEnd:s?void 0:$,onHomeKeyDown:()=>!s&&A(r,0,{commit:!0}),onEndKeyDown:()=>!s&&A(i,S.length-1,{commit:!0}),onStepKeyDown:({event:M,direction:P})=>{if(!s){const te=PH.includes(M.key)||M.shiftKey&&zH.includes(M.key)?10:1,Z=w.current,O=S[Z],J=o*te*P;A(O+J,Z,{commit:!0})}}})})})})});FH.displayName=B0;var[BH,UH]=AH(B0,{startEdge:"left",endEdge:"right",size:"width",direction:1}),V5e=m.forwardRef((e,t)=>{const{min:n,max:r,dir:i,inverted:o,onSlideStart:a,onSlideMove:s,onSlideEnd:l,onStepKeyDown:c,...d}=e,[f,p]=m.useState(null),v=At(t,S=>p(S)),_=m.useRef(void 0),y=T0(i),b=y==="ltr",w=b&&!o||!b&&o;function x(S){const C=_.current||f.getBoundingClientRect(),j=[0,C.width],T=T7(j,w?[n,r]:[r,n]);return _.current=C,T(S-C.left)}return u.jsx(BH,{scope:e.__scopeSlider,startEdge:w?"left":"right",endEdge:w?"right":"left",direction:w?1:-1,size:"width",children:u.jsx(WH,{dir:y,"data-orientation":"horizontal",...d,ref:v,style:{...d.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:S=>{const C=x(S.clientX);a==null||a(C)},onSlideMove:S=>{const C=x(S.clientX);s==null||s(C)},onSlideEnd:()=>{_.current=void 0,l==null||l()},onStepKeyDown:S=>{const C=DH[w?"from-left":"from-right"].includes(S.key);c==null||c({event:S,direction:C?-1:1})}})})}),H5e=m.forwardRef((e,t)=>{const{min:n,max:r,inverted:i,onSlideStart:o,onSlideMove:a,onSlideEnd:s,onStepKeyDown:l,...c}=e,d=m.useRef(null),f=At(t,d),p=m.useRef(void 0),v=!i;function _(y){const b=p.current||d.current.getBoundingClientRect(),w=[0,b.height],x=T7(w,v?[r,n]:[n,r]);return p.current=b,x(y-b.top)}return u.jsx(BH,{scope:e.__scopeSlider,startEdge:v?"bottom":"top",endEdge:v?"top":"bottom",size:"height",direction:v?1:-1,children:u.jsx(WH,{"data-orientation":"vertical",...c,ref:f,style:{...c.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:y=>{const b=_(y.clientY);o==null||o(b)},onSlideMove:y=>{const b=_(y.clientY);a==null||a(b)},onSlideEnd:()=>{p.current=void 0,s==null||s()},onStepKeyDown:y=>{const b=DH[v?"from-bottom":"from-top"].includes(y.key);l==null||l({event:y,direction:b?-1:1})}})})}),WH=m.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:i,onSlideEnd:o,onHomeKeyDown:a,onEndKeyDown:s,onStepKeyDown:l,...c}=e,d=_4(B0,n);return u.jsx(_y.span,{...c,ref:t,onKeyDown:Xe(e.onKeyDown,f=>{f.key==="Home"?(a(f),f.preventDefault()):f.key==="End"?(s(f),f.preventDefault()):PH.concat(zH).includes(f.key)&&(l(f),f.preventDefault())}),onPointerDown:Xe(e.onPointerDown,f=>{const p=f.target;p.setPointerCapture(f.pointerId),f.preventDefault(),d.thumbs.has(p)?p.focus():r(f)}),onPointerMove:Xe(e.onPointerMove,f=>{f.target.hasPointerCapture(f.pointerId)&&i(f)}),onPointerUp:Xe(e.onPointerUp,f=>{const p=f.target;p.hasPointerCapture(f.pointerId)&&(p.releasePointerCapture(f.pointerId),o(f))})})}),VH="SliderTrack",HH=m.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,i=_4(VH,n);return u.jsx(_y.span,{"data-disabled":i.disabled?"":void 0,"data-orientation":i.orientation,...r,ref:t})});HH.displayName=VH;var C7="SliderRange",ZH=m.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,i=_4(C7,n),o=UH(C7,n),a=m.useRef(null),s=At(t,a),l=i.values.length,c=i.values.map(p=>YH(p,i.min,i.max)),d=l>1?Math.min(...c):0,f=100-Math.max(...c);return u.jsx(_y.span,{"data-orientation":i.orientation,"data-disabled":i.disabled?"":void 0,...r,ref:s,style:{...e.style,[o.startEdge]:d+"%",[o.endEdge]:f+"%"}})});ZH.displayName=C7;var j7="SliderThumb",qH=m.forwardRef((e,t)=>{const n=B5e(e.__scopeSlider),[r,i]=m.useState(null),o=At(t,s=>i(s)),a=m.useMemo(()=>r?n().findIndex(s=>s.ref.current===r):-1,[n,r]);return u.jsx(Z5e,{...e,ref:o,index:a})}),Z5e=m.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:i,...o}=e,a=_4(j7,n),s=UH(j7,n),[l,c]=m.useState(null),d=At(t,x=>c(x)),f=l?a.form||!!l.closest("form"):!0,p=P9(l),v=a.values[r],_=v===void 0?0:YH(v,a.min,a.max),y=Y5e(r,a.values.length),b=p==null?void 0:p[s.size],w=b?X5e(b,_,s.direction):0;return m.useEffect(()=>{if(l)return a.thumbs.add(l),()=>{a.thumbs.delete(l)}},[l,a.thumbs]),u.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[s.startEdge]:`calc(${_}% + ${w}px)`},children:[u.jsx(S7.ItemSlot,{scope:e.__scopeSlider,children:u.jsx(_y.span,{role:"slider","aria-label":e["aria-label"]||y,"aria-valuemin":a.min,"aria-valuenow":v,"aria-valuemax":a.max,"aria-orientation":a.orientation,"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,tabIndex:a.disabled?void 0:0,...o,ref:d,style:v===void 0?{display:"none"}:e.style,onFocus:Xe(e.onFocus,()=>{a.valueIndexToChangeRef.current=r})})}),f&&u.jsx(GH,{name:i??(a.name?a.name+(a.values.length>1?"[]":""):void 0),form:a.form,value:v},r)]})});qH.displayName=j7;var q5e="RadioBubbleInput",GH=m.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const i=m.useRef(null),o=At(i,r),a=O9(t);return m.useEffect(()=>{const s=i.current;if(!s)return;const l=window.HTMLInputElement.prototype,c=Object.getOwnPropertyDescriptor(l,"value").set;if(a!==t&&c){const d=new Event("input",{bubbles:!0});c.call(s,t),s.dispatchEvent(d)}},[a,t]),u.jsx(_y.input,{style:{display:"none"},...n,ref:o,defaultValue:t})});GH.displayName=q5e;function G5e(e=[],t,n){const r=[...e];return r[n]=t,r.sort((i,o)=>i-o)}function YH(e,t,n){const r=100/(n-t)*(e-t);return gy(r,[0,100])}function Y5e(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function K5e(e,t){if(e.length===1)return 0;const n=e.map(i=>Math.abs(i-t)),r=Math.min(...n);return n.indexOf(r)}function X5e(e,t,n){const r=e/2,i=T7([0,50],[0,r]);return(r-i(t)*n)*n}function J5e(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Q5e(e,t){if(t>0){const n=J5e(e);return Math.min(...n)>=t}return!0}function T7(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function eSe(e){return(String(e).split(".")[1]||"").length}function tSe(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var KH=FH,XH=HH,nSe=ZH,JH=qH,rSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],QH=rSe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),x4="Switch",[iSe]=Oa(x4),[oSe,aSe]=iSe(x4),eZ=m.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:i,defaultChecked:o,required:a,disabled:s,value:l="on",onCheckedChange:c,form:d,...f}=e,[p,v]=m.useState(null),_=At(t,S=>v(S)),y=m.useRef(!1),b=p?d||!!p.closest("form"):!0,[w,x]=Xs({prop:i,defaultProp:o??!1,onChange:c,caller:x4});return u.jsxs(oSe,{scope:n,checked:w,disabled:s,children:[u.jsx(QH.button,{type:"button",role:"switch","aria-checked":w,"aria-required":a,"data-state":iZ(w),"data-disabled":s?"":void 0,disabled:s,value:l,...f,ref:_,onClick:Xe(e.onClick,S=>{x(C=>!C),b&&(y.current=S.isPropagationStopped(),y.current||S.stopPropagation())})}),b&&u.jsx(rZ,{control:p,bubbles:!y.current,name:r,value:l,checked:w,required:a,disabled:s,form:d,style:{transform:"translateX(-100%)"}})]})});eZ.displayName=x4;var tZ="SwitchThumb",nZ=m.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,i=aSe(tZ,n);return u.jsx(QH.span,{"data-state":iZ(i.checked),"data-disabled":i.disabled?"":void 0,...r,ref:t})});nZ.displayName=tZ;var sSe="SwitchBubbleInput",rZ=m.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...i},o)=>{const a=m.useRef(null),s=At(a,o),l=O9(n),c=P9(t);return m.useEffect(()=>{const d=a.current;if(!d)return;const f=window.HTMLInputElement.prototype,p=Object.getOwnPropertyDescriptor(f,"checked").set;if(l!==n&&p){const v=new Event("click",{bubbles:r});p.call(d,n),d.dispatchEvent(v)}},[l,n,r]),u.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:s,style:{...i.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});rZ.displayName=sSe;function iZ(e){return e?"checked":"unchecked"}var lSe=eZ,uSe=nZ,cSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],dSe=cSe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),oZ="Toggle",I7=m.forwardRef((e,t)=>{const{pressed:n,defaultPressed:r,onPressedChange:i,...o}=e,[a,s]=Xs({prop:n,onChange:i,defaultProp:r??!1,caller:oZ});return u.jsx(dSe.button,{type:"button","aria-pressed":a,"data-state":a?"on":"off","data-disabled":e.disabled?"":void 0,...o,ref:t,onClick:Xe(e.onClick,()=>{e.disabled||s(!a)})})});I7.displayName=oZ;var E7=I7,fSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],aZ=fSe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),Ef="ToggleGroup",[sZ]=Oa(Ef,[i4]),lZ=i4(),N7=Oe.forwardRef((e,t)=>{const{type:n,...r}=e;if(n==="single"){const i=r;return u.jsx(hSe,{...i,ref:t})}if(n==="multiple"){const i=r;return u.jsx(pSe,{...i,ref:t})}throw new Error(`Missing prop \`type\` expected on \`${Ef}\``)});N7.displayName=Ef;var[uZ,cZ]=sZ(Ef),hSe=Oe.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:i=()=>{},...o}=e,[a,s]=Xs({prop:n,defaultProp:r??"",onChange:i,caller:Ef});return u.jsx(uZ,{scope:e.__scopeToggleGroup,type:"single",value:Oe.useMemo(()=>a?[a]:[],[a]),onItemActivate:s,onItemDeactivate:Oe.useCallback(()=>s(""),[s]),children:u.jsx(dZ,{...o,ref:t})})}),pSe=Oe.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:i=()=>{},...o}=e,[a,s]=Xs({prop:n,defaultProp:r??[],onChange:i,caller:Ef}),l=Oe.useCallback(d=>s((f=[])=>[...f,d]),[s]),c=Oe.useCallback(d=>s((f=[])=>f.filter(p=>p!==d)),[s]);return u.jsx(uZ,{scope:e.__scopeToggleGroup,type:"multiple",value:a,onItemActivate:l,onItemDeactivate:c,children:u.jsx(dZ,{...o,ref:t})})});N7.displayName=Ef;var[mSe,gSe]=sZ(Ef),dZ=Oe.forwardRef((e,t)=>{const{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:o,dir:a,loop:s=!0,...l}=e,c=lZ(n),d=T0(a),f={role:"group",dir:d,...l};return u.jsx(mSe,{scope:n,rovingFocus:i,disabled:r,children:i?u.jsx(NW,{asChild:!0,...c,orientation:o,dir:d,loop:s,children:u.jsx(aZ.div,{...f,ref:t})}):u.jsx(aZ.div,{...f,ref:t})})}),w4="ToggleGroupItem",fZ=Oe.forwardRef((e,t)=>{const n=cZ(w4,e.__scopeToggleGroup),r=gSe(w4,e.__scopeToggleGroup),i=lZ(e.__scopeToggleGroup),o=n.value.includes(e.value),a=r.disabled||e.disabled,s={...e,pressed:o,disabled:a},l=Oe.useRef(null);return r.rovingFocus?u.jsx($W,{asChild:!0,...i,focusable:!a,active:o,ref:l,children:u.jsx(hZ,{...s,ref:t})}):u.jsx(hZ,{...s,ref:t})});fZ.displayName=w4;var hZ=Oe.forwardRef((e,t)=>{const{__scopeToggleGroup:n,value:r,...i}=e,o=cZ(w4,n),a={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},s=o.type==="single"?a:void 0;return u.jsx(I7,{...s,...i,ref:t,onPressedChange:l=>{l?o.onItemActivate(r):o.onItemDeactivate(r)}})}),$7=N7,U0=fZ,vSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ySe=vSe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),[k4]=Oa("Tooltip",[Cf]),S4=Cf(),pZ="TooltipProvider",bSe=700,M7="tooltip.open",[_Se,L7]=k4(pZ),mZ=e=>{const{__scopeTooltip:t,delayDuration:n=bSe,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:o}=e,a=m.useRef(!0),s=m.useRef(!1),l=m.useRef(0);return m.useEffect(()=>{const c=l.current;return()=>window.clearTimeout(c)},[]),u.jsx(_Se,{scope:t,isOpenDelayedRef:a,delayDuration:n,onOpen:m.useCallback(()=>{window.clearTimeout(l.current),a.current=!1},[]),onClose:m.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(()=>a.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:m.useCallback(c=>{s.current=c},[]),disableHoverableContent:i,children:o})};mZ.displayName=pZ;var xy="Tooltip",[xSe,wy]=k4(xy),gZ=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:o,disableHoverableContent:a,delayDuration:s}=e,l=L7(xy,e.__scopeTooltip),c=S4(t),[d,f]=m.useState(null),p=wo(),v=m.useRef(0),_=a??l.disableHoverableContent,y=s??l.delayDuration,b=m.useRef(!1),[w,x]=Xs({prop:r,defaultProp:i??!1,onChange:E=>{E?(l.onOpen(),document.dispatchEvent(new CustomEvent(M7))):l.onClose(),o==null||o(E)},caller:xy}),S=m.useMemo(()=>w?b.current?"delayed-open":"instant-open":"closed",[w]),C=m.useCallback(()=>{window.clearTimeout(v.current),v.current=0,b.current=!1,x(!0)},[x]),j=m.useCallback(()=>{window.clearTimeout(v.current),v.current=0,x(!1)},[x]),T=m.useCallback(()=>{window.clearTimeout(v.current),v.current=window.setTimeout(()=>{b.current=!0,x(!0),v.current=0},y)},[y,x]);return m.useEffect(()=>()=>{v.current&&(window.clearTimeout(v.current),v.current=0)},[]),u.jsx(t4,{...c,children:u.jsx(xSe,{scope:t,contentId:p,open:w,stateAttribute:S,trigger:d,onTriggerChange:f,onTriggerEnter:m.useCallback(()=>{l.isOpenDelayedRef.current?T():C()},[l.isOpenDelayedRef,T,C]),onTriggerLeave:m.useCallback(()=>{_?j():(window.clearTimeout(v.current),v.current=0)},[j,_]),onOpen:C,onClose:j,disableHoverableContent:_,children:n})})};gZ.displayName=xy;var R7="TooltipTrigger",vZ=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,i=wy(R7,n),o=L7(R7,n),a=S4(n),s=m.useRef(null),l=At(t,s,i.onTriggerChange),c=m.useRef(!1),d=m.useRef(!1),f=m.useCallback(()=>c.current=!1,[]);return m.useEffect(()=>()=>document.removeEventListener("pointerup",f),[f]),u.jsx(ly,{asChild:!0,...a,children:u.jsx(ySe.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:l,onPointerMove:Xe(e.onPointerMove,p=>{p.pointerType!=="touch"&&!d.current&&!o.isPointerInTransitRef.current&&(i.onTriggerEnter(),d.current=!0)}),onPointerLeave:Xe(e.onPointerLeave,()=>{i.onTriggerLeave(),d.current=!1}),onPointerDown:Xe(e.onPointerDown,()=>{i.open&&i.onClose(),c.current=!0,document.addEventListener("pointerup",f,{once:!0})}),onFocus:Xe(e.onFocus,()=>{c.current||i.onOpen()}),onBlur:Xe(e.onBlur,i.onClose),onClick:Xe(e.onClick,i.onClose)})})});vZ.displayName=R7;var O7="TooltipPortal",[wSe,kSe]=k4(O7,{forceMount:void 0}),yZ=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,o=wy(O7,t);return u.jsx(wSe,{scope:t,forceMount:n,children:u.jsx(Ao,{present:n||o.open,children:u.jsx(qh,{asChild:!0,container:i,children:r})})})};yZ.displayName=O7;var W0="TooltipContent",bZ=m.forwardRef((e,t)=>{const n=kSe(W0,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i="top",...o}=e,a=wy(W0,e.__scopeTooltip);return u.jsx(Ao,{present:r||a.open,children:a.disableHoverableContent?u.jsx(_Z,{side:i,...o,ref:t}):u.jsx(SSe,{side:i,...o,ref:t})})}),SSe=m.forwardRef((e,t)=>{const n=wy(W0,e.__scopeTooltip),r=L7(W0,e.__scopeTooltip),i=m.useRef(null),o=At(t,i),[a,s]=m.useState(null),{trigger:l,onClose:c}=n,d=i.current,{onPointerInTransitChange:f}=r,p=m.useCallback(()=>{s(null),f(!1)},[f]),v=m.useCallback((_,y)=>{const b=_.currentTarget,w={x:_.clientX,y:_.clientY},x=ISe(w,b.getBoundingClientRect()),S=ESe(w,x),C=NSe(y.getBoundingClientRect()),j=MSe([...S,...C]);s(j),f(!0)},[f]);return m.useEffect(()=>()=>p(),[p]),m.useEffect(()=>{if(l&&d){const _=b=>v(b,d),y=b=>v(b,l);return l.addEventListener("pointerleave",_),d.addEventListener("pointerleave",y),()=>{l.removeEventListener("pointerleave",_),d.removeEventListener("pointerleave",y)}}},[l,d,v,p]),m.useEffect(()=>{if(a){const _=y=>{const b=y.target,w={x:y.clientX,y:y.clientY},x=(l==null?void 0:l.contains(b))||(d==null?void 0:d.contains(b)),S=!$Se(w,a);x?p():S&&(p(),c())};return document.addEventListener("pointermove",_),()=>document.removeEventListener("pointermove",_)}},[l,d,a,c,p]),u.jsx(_Z,{...e,ref:o})}),[CSe,jSe]=k4(xy,{isInside:!1}),TSe=qB("TooltipContent"),_Z=m.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:o,onPointerDownOutside:a,...s}=e,l=wy(W0,n),c=S4(n),{onClose:d}=l;return m.useEffect(()=>(document.addEventListener(M7,d),()=>document.removeEventListener(M7,d)),[d]),m.useEffect(()=>{if(l.trigger){const f=p=>{var v;(v=p.target)!=null&&v.contains(l.trigger)&&d()};return window.addEventListener("scroll",f,{capture:!0}),()=>window.removeEventListener("scroll",f,{capture:!0})}},[l.trigger,d]),u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:f=>f.preventDefault(),onDismiss:d,children:u.jsxs(n4,{"data-state":l.stateAttribute,...c,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[u.jsx(TSe,{children:r}),u.jsx(CSe,{scope:n,isInside:!0,children:u.jsx(KB,{id:l.contentId,role:"tooltip",children:i||r})})]})})});bZ.displayName=W0;var xZ="TooltipArrow",wZ=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,i=S4(n);return jSe(xZ,n).isInside?null:u.jsx(r4,{...i,...r,ref:t})});wZ.displayName=xZ;function ISe(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),o=Math.abs(t.left-e.x);switch(Math.min(n,r,i,o)){case o:return"left";case i:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function ESe(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function NSe(e){const{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function $Se(e,t){const{x:n,y:r}=e;let i=!1;for(let o=0,a=t.length-1;or!=p>r&&n<(f-c)*(r-d)/(p-d)+c&&(i=!i)}return i}function MSe(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),LSe(t)}function LSe(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const o=t[t.length-1],a=t[t.length-2];if((o.x-a.x)*(i.y-a.y)>=(o.y-a.y)*(i.x-a.x))t.pop();else break}t.push(i)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const i=e[r];for(;n.length>=2;){const o=n[n.length-1],a=n[n.length-2];if((o.x-a.x)*(i.y-a.y)>=(o.y-a.y)*(i.x-a.x))n.pop();else break}n.push(i)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var RSe=mZ,OSe=gZ,PSe=vZ,zSe=yZ,DSe=bZ,ASe=wZ,kZ={exports:{}};/*! - Copyright (c) 2018 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var o="",a=0;aP7.includes(t))}function $f({className:e,customProperties:t,...n}){const r=Sy({allowArbitraryValues:!0,className:e,...n}),i=XSe({customProperties:t,...n});return[r,i]}function Sy({allowArbitraryValues:e,value:t,className:n,propValues:r,parseValue:i=o=>o}){const o=[];if(t){if(typeof t=="string"&&r.includes(t))return $Z(n,t,i);if(ky(t)){const a=t;for(const s in a){if(!NZ(a,s)||!P7.includes(s))continue;const l=a[s];if(l!==void 0){if(r.includes(l)){const c=$Z(n,l,i),d=s==="initial"?c:`${s}:${c}`;o.push(d)}else if(e){const c=s==="initial"?n:`${s}:${n}`;o.push(c)}}}return o.join(" ")}if(e)return n}}function $Z(e,t,n){const r=e?"-":"",i=n(t),o=i==null?void 0:i.startsWith("-"),a=o?"-":"",s=o?i==null?void 0:i.substring(1):i;return`${a}${e}${r}${s}`}function XSe({customProperties:e,value:t,propValues:n,parseValue:r=i=>i}){let i={};if(!(!t||typeof t=="string"&&n.includes(t))){if(typeof t=="string"&&(i=Object.fromEntries(e.map(o=>[o,t]))),ky(t)){const o=t;for(const a in o){if(!NZ(o,a)||!P7.includes(a))continue;const s=o[a];if(!n.includes(s))for(const l of e)i={[a==="initial"?l:`${l}-${a}`]:s,...i}}}for(const o in i){const a=i[o];a!==void 0&&(i[o]=r(a))}return i}}function Cy(...e){let t={};for(const n of e)n&&(t={...t,...n});return Object.keys(t).length?t:void 0}function JSe(...e){return Object.assign({},...e)}function er(e,...t){let n,r;const i={...e},o=JSe(...t);for(const a in o){let s=i[a];const l=o[a];if(l.default!==void 0&&s===void 0&&(s=l.default),l.type==="enum"&&![l.default,...l.values].includes(s)&&!ky(s)&&(s=l.default),i[a]=s,"className"in l&&l.className){delete i[a];const c="responsive"in l;if(!s||ky(s)&&!c)continue;if(ky(s)&&(l.default!==void 0&&s.initial===void 0&&(s.initial=l.default),l.type==="enum"&&([l.default,...l.values].includes(s.initial)||(s.initial=l.default))),l.type==="enum"){const d=Sy({allowArbitraryValues:!1,value:s,className:l.className,propValues:l.values,parseValue:l.parseValue});n=gt(n,d);continue}if(l.type==="string"||l.type==="enum | string"){const d=l.type==="string"?[]:l.values,[f,p]=$f({className:l.className,customProperties:l.customProperties,propValues:d,parseValue:l.parseValue,value:s});r=Cy(r,p),n=gt(n,f);continue}if(l.type==="boolean"&&s){n=gt(n,l.className);continue}}}return i.className=gt(n,e.className),i.style=Cy(r,e.style),i}const ep=["0","1","2","3","4","5","6","7","8","9","-1","-2","-3","-4","-5","-6","-7","-8","-9"],So={m:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-m",customProperties:["--m"]},mx:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-mx",customProperties:["--ml","--mr"]},my:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-my",customProperties:["--mt","--mb"]},mt:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-mt",customProperties:["--mt"]},mr:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-mr",customProperties:["--mr"]},mb:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-mb",customProperties:["--mb"]},ml:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-ml",customProperties:["--ml"]}},MZ=m.forwardRef((e,t)=>{const{children:n,className:r,asChild:i,as:o="h1",color:a,...s}=er(e,KSe,So);return m.createElement(xf,{"data-accent-color":a,...s,ref:t,className:gt("rt-Heading",r)},i?n:m.createElement(o,null,n))});MZ.displayName="Heading";const QSe=["span","div","label","p"],eCe=["1","2","3","4","5","6","7","8","9"],tCe={as:{type:"enum",values:QSe,default:"span"},...el,size:{type:"enum",className:"rt-r-size",values:eCe,responsive:!0},...EZ,...jZ,...CZ,...IZ,...TZ,...Pa,...Nf},q=m.forwardRef((e,t)=>{const{children:n,className:r,asChild:i,as:o="span",color:a,...s}=er(e,tCe,So);return m.createElement(xf,{"data-accent-color":a,...s,ref:t,className:gt("rt-Text",r)},i?n:m.createElement(o,null,n))});q.displayName="Text";function nCe(e){switch(e){case"tomato":case"red":case"ruby":case"crimson":case"pink":case"plum":case"purple":case"violet":return"mauve";case"iris":case"indigo":case"blue":case"sky":case"cyan":return"slate";case"teal":case"jade":case"mint":case"green":return"sage";case"grass":case"lime":return"olive";case"yellow":case"amber":case"orange":case"brown":case"gold":case"bronze":return"sand";case"gray":return"gray"}}const rCe=["none","small","medium","large","full"],tp={radius:{type:"enum",values:rCe,default:void 0}},fs={hasBackground:{default:!0},appearance:{default:"inherit"},accentColor:{default:"indigo"},grayColor:{default:"auto"},panelBackground:{default:"translucent"},radius:{default:"medium"},scaling:{default:"100%"}},V0=()=>{},j4=m.createContext(void 0);function LZ(){const e=m.useContext(j4);if(e===void 0)throw new Error("`useThemeContext` must be used within a `Theme`");return e}const Mf=m.forwardRef((e,t)=>m.useContext(j4)===void 0?m.createElement(RSe,{delayDuration:200},m.createElement(K2e,{dir:"ltr"},m.createElement(RZ,{...e,ref:t}))):m.createElement(z7,{...e,ref:t}));Mf.displayName="Theme";const RZ=m.forwardRef((e,t)=>{const{appearance:n=fs.appearance.default,accentColor:r=fs.accentColor.default,grayColor:i=fs.grayColor.default,panelBackground:o=fs.panelBackground.default,radius:a=fs.radius.default,scaling:s=fs.scaling.default,hasBackground:l=fs.hasBackground.default,...c}=e,[d,f]=m.useState(n);m.useEffect(()=>f(n),[n]);const[p,v]=m.useState(r);m.useEffect(()=>v(r),[r]);const[_,y]=m.useState(i);m.useEffect(()=>y(i),[i]);const[b,w]=m.useState(o);m.useEffect(()=>w(o),[o]);const[x,S]=m.useState(a);m.useEffect(()=>S(a),[a]);const[C,j]=m.useState(s);return m.useEffect(()=>j(s),[s]),m.createElement(z7,{...c,ref:t,isRoot:!0,hasBackground:l,appearance:d,accentColor:p,grayColor:_,panelBackground:b,radius:x,scaling:C,onAppearanceChange:f,onAccentColorChange:v,onGrayColorChange:y,onPanelBackgroundChange:w,onRadiusChange:S,onScalingChange:j})});RZ.displayName="ThemeRoot";const z7=m.forwardRef((e,t)=>{const n=m.useContext(j4),{asChild:r,isRoot:i,hasBackground:o,appearance:a=(n==null?void 0:n.appearance)??fs.appearance.default,accentColor:s=(n==null?void 0:n.accentColor)??fs.accentColor.default,grayColor:l=(n==null?void 0:n.resolvedGrayColor)??fs.grayColor.default,panelBackground:c=(n==null?void 0:n.panelBackground)??fs.panelBackground.default,radius:d=(n==null?void 0:n.radius)??fs.radius.default,scaling:f=(n==null?void 0:n.scaling)??fs.scaling.default,onAppearanceChange:p=V0,onAccentColorChange:v=V0,onGrayColorChange:_=V0,onPanelBackgroundChange:y=V0,onRadiusChange:b=V0,onScalingChange:w=V0,...x}=e,S=r?xf:"div",C=l==="auto"?nCe(s):l,j=e.appearance==="light"||e.appearance==="dark",T=o===void 0?i||j:o;return m.createElement(j4.Provider,{value:m.useMemo(()=>({appearance:a,accentColor:s,grayColor:l,resolvedGrayColor:C,panelBackground:c,radius:d,scaling:f,onAppearanceChange:p,onAccentColorChange:v,onGrayColorChange:_,onPanelBackgroundChange:y,onRadiusChange:b,onScalingChange:w}),[a,s,l,C,c,d,f,p,v,_,y,b,w])},m.createElement(S,{"data-is-root-theme":i?"true":"false","data-accent-color":s,"data-gray-color":C,"data-has-background":T?"true":"false","data-panel-background":c,"data-radius":d,"data-scaling":f,ref:t,...x,className:gt("radix-themes",{light:a==="light",dark:a==="dark"},x.className)}))});z7.displayName="ThemeImpl";const H0=e=>{if(!m.isValidElement(e))throw Error(`Expected a single React Element child, but got: ${m.Children.toArray(e).map(t=>typeof t=="object"&&"type"in t&&typeof t.type=="string"?t.type:typeof t).join(", ")}`);return e};function OZ(e,t){const{asChild:n,children:r}=e;if(!n)return typeof t=="function"?t(r):t;const i=m.Children.only(r);return m.cloneElement(i,{children:typeof t=="function"?t(i.props.children):t})}const D7=xf,iCe=["div","span"],oCe=["none","inline","inline-block","block","contents"],aCe={as:{type:"enum",values:iCe,default:"div"},...el,display:{type:"enum",className:"rt-r-display",values:oCe,responsive:!0}},np=["0","1","2","3","4","5","6","7","8","9"],jy={p:{type:"enum | string",className:"rt-r-p",customProperties:["--p"],values:np,responsive:!0},px:{type:"enum | string",className:"rt-r-px",customProperties:["--pl","--pr"],values:np,responsive:!0},py:{type:"enum | string",className:"rt-r-py",customProperties:["--pt","--pb"],values:np,responsive:!0},pt:{type:"enum | string",className:"rt-r-pt",customProperties:["--pt"],values:np,responsive:!0},pr:{type:"enum | string",className:"rt-r-pr",customProperties:["--pr"],values:np,responsive:!0},pb:{type:"enum | string",className:"rt-r-pb",customProperties:["--pb"],values:np,responsive:!0},pl:{type:"enum | string",className:"rt-r-pl",customProperties:["--pl"],values:np,responsive:!0}},A7=["visible","hidden","clip","scroll","auto"],sCe=["static","relative","absolute","fixed","sticky"],Ty=["0","1","2","3","4","5","6","7","8","9","-1","-2","-3","-4","-5","-6","-7","-8","-9"],lCe=["0","1"],uCe=["0","1"],T4={...jy,...tl,...C4,position:{type:"enum",className:"rt-r-position",values:sCe,responsive:!0},inset:{type:"enum | string",className:"rt-r-inset",customProperties:["--inset"],values:Ty,responsive:!0},top:{type:"enum | string",className:"rt-r-top",customProperties:["--top"],values:Ty,responsive:!0},right:{type:"enum | string",className:"rt-r-right",customProperties:["--right"],values:Ty,responsive:!0},bottom:{type:"enum | string",className:"rt-r-bottom",customProperties:["--bottom"],values:Ty,responsive:!0},left:{type:"enum | string",className:"rt-r-left",customProperties:["--left"],values:Ty,responsive:!0},overflow:{type:"enum",className:"rt-r-overflow",values:A7,responsive:!0},overflowX:{type:"enum",className:"rt-r-ox",values:A7,responsive:!0},overflowY:{type:"enum",className:"rt-r-oy",values:A7,responsive:!0},flexBasis:{type:"string",className:"rt-r-fb",customProperties:["--flex-basis"],responsive:!0},flexShrink:{type:"enum | string",className:"rt-r-fs",customProperties:["--flex-shrink"],values:lCe,responsive:!0},flexGrow:{type:"enum | string",className:"rt-r-fg",customProperties:["--flex-grow"],values:uCe,responsive:!0},gridArea:{type:"string",className:"rt-r-ga",customProperties:["--grid-area"],responsive:!0},gridColumn:{type:"string",className:"rt-r-gc",customProperties:["--grid-column"],responsive:!0},gridColumnStart:{type:"string",className:"rt-r-gcs",customProperties:["--grid-column-start"],responsive:!0},gridColumnEnd:{type:"string",className:"rt-r-gce",customProperties:["--grid-column-end"],responsive:!0},gridRow:{type:"string",className:"rt-r-gr",customProperties:["--grid-row"],responsive:!0},gridRowStart:{type:"string",className:"rt-r-grs",customProperties:["--grid-row-start"],responsive:!0},gridRowEnd:{type:"string",className:"rt-r-gre",customProperties:["--grid-row-end"],responsive:!0}},Mt=m.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...o}=er(e,aCe,T4,So);return m.createElement(r?D7:i,{...o,ref:t,className:gt("rt-Box",n)})});Mt.displayName="Box";const cCe=["1","2","3","4"],dCe=["classic","solid","soft","surface","outline","ghost"],PZ={...el,size:{type:"enum",className:"rt-r-size",values:cCe,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:dCe,default:"solid"},...WSe,...Nf,...tp,loading:{type:"boolean",className:"rt-loading",default:!1}},F7=["0","1","2","3","4","5","6","7","8","9"],zZ={gap:{type:"enum | string",className:"rt-r-gap",customProperties:["--gap"],values:F7,responsive:!0},gapX:{type:"enum | string",className:"rt-r-cg",customProperties:["--column-gap"],values:F7,responsive:!0},gapY:{type:"enum | string",className:"rt-r-rg",customProperties:["--row-gap"],values:F7,responsive:!0}},fCe=["div","span"],hCe=["none","inline-flex","flex"],pCe=["row","column","row-reverse","column-reverse"],mCe=["start","center","end","baseline","stretch"],gCe=["start","center","end","between"],vCe=["nowrap","wrap","wrap-reverse"],DZ={as:{type:"enum",values:fCe,default:"div"},...el,display:{type:"enum",className:"rt-r-display",values:hCe,responsive:!0},direction:{type:"enum",className:"rt-r-fd",values:pCe,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:mCe,responsive:!0},justify:{type:"enum",className:"rt-r-jc",values:gCe,parseValue:yCe,responsive:!0},wrap:{type:"enum",className:"rt-r-fw",values:vCe,responsive:!0},...zZ};function yCe(e){return e==="between"?"space-between":e}const V=m.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...o}=er(e,DZ,T4,So);return m.createElement(r?D7:i,{...o,ref:t,className:gt("rt-Flex",n)})});V.displayName="Flex";const bCe=["1","2","3"],_Ce={size:{type:"enum",className:"rt-r-size",values:bCe,default:"2",responsive:!0},loading:{type:"boolean",default:!0}},Iy=m.forwardRef((e,t)=>{const{className:n,children:r,loading:i,...o}=er(e,_Ce,So);if(!i)return r;const a=m.createElement("span",{...o,ref:t,className:gt("rt-Spinner",n)},m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}));return r===void 0?a:m.createElement(V,{asChild:!0,position:"relative",align:"center",justify:"center"},m.createElement("span",null,m.createElement("span",{"aria-hidden":!0,style:{display:"contents",visibility:"hidden"},inert:void 0},r),m.createElement(V,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},m.createElement("span",null,a))))});Iy.displayName="Spinner";const xCe=KB;function wCe(e,t){if(e!==void 0)return typeof e=="string"?t(e):Object.fromEntries(Object.entries(e).map(([n,r])=>[n,t(r)]))}function kCe(e){switch(e){case"1":return"1";case"2":case"3":return"2";case"4":return"3"}}const B7=m.forwardRef((e,t)=>{const{size:n=PZ.size.default}=e,{className:r,children:i,asChild:o,color:a,radius:s,disabled:l=e.loading,...c}=er(e,PZ,So),d=o?xf:"button";return m.createElement(d,{"data-disabled":l||void 0,"data-accent-color":a,"data-radius":s,...c,ref:t,className:gt("rt-reset","rt-BaseButton",r),disabled:l},e.loading?m.createElement(m.Fragment,null,m.createElement("span",{style:{display:"contents",visibility:"hidden"},"aria-hidden":!0},i),m.createElement(xCe,null,i),m.createElement(V,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},m.createElement("span",null,m.createElement(Iy,{size:wCe(n,kCe)})))):i)});B7.displayName="BaseButton";const hs=m.forwardRef(({className:e,...t},n)=>m.createElement(B7,{...t,ref:n,className:gt("rt-Button",e)}));hs.displayName="Button";const SCe=["1","2","3","4","5"],CCe=["surface","classic","ghost"],jCe={...el,size:{type:"enum",className:"rt-r-size",values:SCe,default:"1",responsive:!0},variant:{type:"enum",className:"rt-variant",values:CCe,default:"surface"}},Ey=m.forwardRef((e,t)=>{const{asChild:n,className:r,...i}=er(e,jCe,So),o=n?xf:"div";return m.createElement(o,{ref:t,...i,className:gt("rt-reset","rt-BaseCard","rt-Card",r)})});Ey.displayName="Card";const TCe=["div","span"],ICe=["none","inline-grid","grid"],ECe=["1","2","3","4","5","6","7","8","9"],NCe=["1","2","3","4","5","6","7","8","9"],$Ce=["row","column","dense","row-dense","column-dense"],MCe=["start","center","end","baseline","stretch"],LCe=["start","center","end","between"],AZ={as:{type:"enum",values:TCe,default:"div"},...el,display:{type:"enum",className:"rt-r-display",values:ICe,responsive:!0},areas:{type:"string",className:"rt-r-gta",customProperties:["--grid-template-areas"],responsive:!0},columns:{type:"enum | string",className:"rt-r-gtc",customProperties:["--grid-template-columns"],values:ECe,parseValue:FZ,responsive:!0},rows:{type:"enum | string",className:"rt-r-gtr",customProperties:["--grid-template-rows"],values:NCe,parseValue:FZ,responsive:!0},flow:{type:"enum",className:"rt-r-gaf",values:$Ce,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:MCe,responsive:!0},justify:{type:"enum",className:"rt-r-jc",values:LCe,parseValue:RCe,responsive:!0},...zZ};function FZ(e){return AZ.columns.values.includes(e)?e:e!=null&&e.match(/^\d+$/)?`repeat(${e}, minmax(0, 1fr))`:e}function RCe(e){return e==="between"?"space-between":e}const Zr=m.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...o}=er(e,AZ,T4,So);return m.createElement(r?D7:i,{...o,ref:t,className:gt("rt-Grid",n)})});Zr.displayName="Grid";const OCe=Oe.forwardRef((e,t)=>Oe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Oe.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0.75 4.5C0.75 4.08579 1.08579 3.75 1.5 3.75H7.5C7.91421 3.75 8.25 4.08579 8.25 4.5C8.25 4.91421 7.91421 5.25 7.5 5.25H1.5C1.08579 5.25 0.75 4.91421 0.75 4.5Z"})));OCe.displayName="ThickDividerHorizontalIcon";const I4=Oe.forwardRef((e,t)=>Oe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Oe.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.53547 0.62293C8.88226 0.849446 8.97976 1.3142 8.75325 1.66099L4.5083 8.1599C4.38833 8.34356 4.19397 8.4655 3.9764 8.49358C3.75883 8.52167 3.53987 8.45309 3.3772 8.30591L0.616113 5.80777C0.308959 5.52987 0.285246 5.05559 0.563148 4.74844C0.84105 4.44128 1.31533 4.41757 1.62249 4.69547L3.73256 6.60459L7.49741 0.840706C7.72393 0.493916 8.18868 0.396414 8.53547 0.62293Z"})));I4.displayName="ThickCheckIcon";const U7=Oe.forwardRef((e,t)=>Oe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Oe.createElement("path",{d:"M0.135232 3.15803C0.324102 2.95657 0.640521 2.94637 0.841971 3.13523L4.5 6.56464L8.158 3.13523C8.3595 2.94637 8.6759 2.95657 8.8648 3.15803C9.0536 3.35949 9.0434 3.67591 8.842 3.86477L4.84197 7.6148C4.64964 7.7951 4.35036 7.7951 4.15803 7.6148L0.158031 3.86477C-0.0434285 3.67591 -0.0536285 3.35949 0.135232 3.15803Z"})));U7.displayName="ChevronDownIcon";const BZ=Oe.forwardRef((e,t)=>Oe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Oe.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.23826 0.201711C3.54108 -0.0809141 4.01567 -0.0645489 4.29829 0.238264L7.79829 3.98826C8.06724 4.27642 8.06724 4.72359 7.79829 5.01174L4.29829 8.76174C4.01567 9.06455 3.54108 9.08092 3.23826 8.79829C2.93545 8.51567 2.91909 8.04108 3.20171 7.73826L6.22409 4.5L3.20171 1.26174C2.91909 0.958928 2.93545 0.484337 3.23826 0.201711Z"})));BZ.displayName="ThickChevronRightIcon";const PCe=["1","2","3","4"],zCe=["none","initial"],DCe=["left","center","right"],ACe={...el,size:{type:"enum",className:"rt-r-size",values:PCe,default:"4",responsive:!0},display:{type:"enum",className:"rt-r-display",values:zCe,parseValue:FCe,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:DCe,parseValue:BCe,responsive:!0}};function FCe(e){return e==="initial"?"flex":e}function BCe(e){return e==="left"?"start":e==="right"?"end":e}const UZ=m.forwardRef(({width:e,minWidth:t,maxWidth:n,height:r,minHeight:i,maxHeight:o,...a},s)=>{const{asChild:l,children:c,className:d,...f}=er(a,ACe,T4,So),{className:p,style:v}=er({width:e,minWidth:t,maxWidth:n,height:r,minHeight:i,maxHeight:o},tl,C4),_=l?xf:"div";return m.createElement(_,{...f,ref:s,className:gt("rt-Container",d)},OZ({asChild:l,children:c},y=>m.createElement("div",{className:gt("rt-ContainerInner",p),style:v},y)))});UZ.displayName="Container";const UCe=["1","2","3"],Ny={...el,size:{values:UCe,default:"1"},...tp,scrollbars:{default:"both"}};function WCe(e){const{m:t,mx:n,my:r,mt:i,mr:o,mb:a,ml:s,...l}=e;return{m:t,mx:n,my:r,mt:i,mr:o,mb:a,ml:s,rest:l}}const rp=So.m.values;function VCe(e){const[t,n]=$f({className:"rt-r-m",customProperties:["--margin"],propValues:rp,value:e.m}),[r,i]=$f({className:"rt-r-mx",customProperties:["--margin-left","--margin-right"],propValues:rp,value:e.mx}),[o,a]=$f({className:"rt-r-my",customProperties:["--margin-top","--margin-bottom"],propValues:rp,value:e.my}),[s,l]=$f({className:"rt-r-mt",customProperties:["--margin-top"],propValues:rp,value:e.mt}),[c,d]=$f({className:"rt-r-mr",customProperties:["--margin-right"],propValues:rp,value:e.mr}),[f,p]=$f({className:"rt-r-mb",customProperties:["--margin-bottom"],propValues:rp,value:e.mb}),[v,_]=$f({className:"rt-r-ml",customProperties:["--margin-left"],propValues:rp,value:e.ml});return[gt(t,r,o,s,c,f,v),Cy(n,i,a,l,d,p,_)]}const E4=m.forwardRef((e,t)=>{const{rest:n,...r}=WCe(e),[i,o]=VCe(r),{asChild:a,children:s,className:l,style:c,type:d,scrollHideDelay:f=d!=="scroll"?0:void 0,dir:p,size:v=Ny.size.default,radius:_=Ny.radius.default,scrollbars:y=Ny.scrollbars.default,...b}=n;return m.createElement(sH,{type:d,scrollHideDelay:f,className:gt("rt-ScrollAreaRoot",i,l),style:Cy(o,c),asChild:a},OZ({asChild:a,children:s},w=>m.createElement(m.Fragment,null,m.createElement(lH,{...b,ref:t,className:"rt-ScrollAreaViewport"},w),m.createElement("div",{className:"rt-ScrollAreaViewportFocusRing"}),y!=="vertical"?m.createElement(g7,{"data-radius":_,orientation:"horizontal",className:gt("rt-ScrollAreaScrollbar",Sy({className:"rt-r-size",value:v,propValues:Ny.size.values}))},m.createElement(v7,{className:"rt-ScrollAreaThumb"})):null,y!=="horizontal"?m.createElement(g7,{"data-radius":_,orientation:"vertical",className:gt("rt-ScrollAreaScrollbar",Sy({className:"rt-r-size",value:v,propValues:Ny.size.values}))},m.createElement(v7,{className:"rt-ScrollAreaThumb"})):null,y==="both"?m.createElement(r5e,{className:"rt-ScrollAreaCorner"}):null)))});E4.displayName="ScrollArea";const HCe=["1","2"],ZCe=["solid","soft"],$y={size:{type:"enum",className:"rt-r-size",values:HCe,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:ZCe,default:"solid"},...Pa,...Nf},qCe={...el,...Pa},GCe={...Pa},YCe={...Pa},WZ=e=>m.createElement(AU,{...e,modal:!0});WZ.displayName="Dialog.Root";const VZ=m.forwardRef(({children:e,...t},n)=>m.createElement(p4e,{...t,ref:n,asChild:!0},H0(e)));VZ.displayName="Dialog.Trigger";const HZ=m.forwardRef(({align:e,...t},n)=>{const{align:r,...i}=USe,{className:o}=er({align:e},{align:r}),{className:a,forceMount:s,container:l,...c}=er(t,i);return m.createElement(FU,{container:l,forceMount:s},m.createElement(Mf,{asChild:!0},m.createElement(BU,{className:"rt-BaseDialogOverlay rt-DialogOverlay"},m.createElement("div",{className:"rt-BaseDialogScroll rt-DialogScroll"},m.createElement("div",{className:`rt-BaseDialogScrollPadding rt-DialogScrollPadding ${o}`},m.createElement(UU,{...c,ref:n,className:gt("rt-BaseDialogContent","rt-DialogContent",a)}))))))});HZ.displayName="Dialog.Content";const ZZ=m.forwardRef((e,t)=>m.createElement(m4e,{asChild:!0},m.createElement(MZ,{size:"5",mb:"3",trim:"start",...e,asChild:!1,ref:t})));ZZ.displayName="Dialog.Title";const KCe=m.forwardRef((e,t)=>m.createElement(g4e,{asChild:!0},m.createElement(q,{as:"p",size:"3",...e,asChild:!1,ref:t})));KCe.displayName="Dialog.Description";const qZ=m.forwardRef(({children:e,...t},n)=>m.createElement(v4e,{...t,ref:n,asChild:!0},H0(e)));qZ.displayName="Dialog.Close";const GZ=e=>m.createElement(bV,{...e});GZ.displayName="DropdownMenu.Root";const YZ=m.forwardRef(({children:e,...t},n)=>m.createElement(_V,{...t,ref:n,asChild:!0},H0(e)));YZ.displayName="DropdownMenu.Trigger";const KZ=m.createContext({}),XZ=m.forwardRef((e,t)=>{const n=LZ(),{size:r=$y.size.default,variant:i=$y.variant.default,highContrast:o=$y.highContrast.default}=e,{className:a,children:s,color:l,container:c,forceMount:d,...f}=er(e,$y),p=l||n.accentColor;return m.createElement(a7,{container:c,forceMount:d},m.createElement(Mf,{asChild:!0},m.createElement(xV,{"data-accent-color":p,align:"start",sideOffset:4,collisionPadding:10,...f,asChild:!1,ref:t,className:gt("rt-PopperContent","rt-BaseMenuContent","rt-DropdownMenuContent",a)},m.createElement(E4,{type:"auto"},m.createElement("div",{className:gt("rt-BaseMenuViewport","rt-DropdownMenuViewport")},m.createElement(KZ.Provider,{value:m.useMemo(()=>({size:r,variant:i,color:p,highContrast:o}),[r,i,p,o])},s))))))});XZ.displayName="DropdownMenu.Content";const XCe=m.forwardRef(({className:e,...t},n)=>m.createElement(m6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuLabel","rt-DropdownMenuLabel",e)}));XCe.displayName="DropdownMenu.Label";const JZ=m.forwardRef((e,t)=>{const{className:n,children:r,color:i=qCe.color.default,shortcut:o,...a}=e;return m.createElement(wV,{"data-accent-color":i,...a,ref:t,className:gt("rt-reset","rt-BaseMenuItem","rt-DropdownMenuItem",n)},m.createElement(M2e,null,r),o&&m.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},o))});JZ.displayName="DropdownMenu.Item";const JCe=m.forwardRef(({className:e,...t},n)=>m.createElement(p6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuGroup","rt-DropdownMenuGroup",e)}));JCe.displayName="DropdownMenu.Group";const QCe=m.forwardRef(({className:e,...t},n)=>m.createElement(v6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuRadioGroup","rt-DropdownMenuRadioGroup",e)}));QCe.displayName="DropdownMenu.RadioGroup";const eje=m.forwardRef((e,t)=>{const{children:n,className:r,color:i=YCe.color.default,...o}=e;return m.createElement(y6e,{...o,asChild:!1,ref:t,"data-accent-color":i,className:gt("rt-BaseMenuItem","rt-BaseMenuRadioItem","rt-DropdownMenuItem","rt-DropdownMenuRadioItem",r)},n,m.createElement(kV,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},m.createElement(I4,{className:"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon"})))});eje.displayName="DropdownMenu.RadioItem";const tje=m.forwardRef((e,t)=>{const{children:n,className:r,shortcut:i,color:o=GCe.color.default,...a}=e;return m.createElement(g6e,{...a,asChild:!1,ref:t,"data-accent-color":o,className:gt("rt-BaseMenuItem","rt-BaseMenuCheckboxItem","rt-DropdownMenuItem","rt-DropdownMenuCheckboxItem",r)},n,m.createElement(kV,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},m.createElement(I4,{className:"rt-BaseMenuItemIndicatorIcon rt-ContextMenuItemIndicatorIcon"})),i&&m.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},i))});tje.displayName="DropdownMenu.CheckboxItem";const nje=m.forwardRef((e,t)=>{const{className:n,children:r,...i}=e;return m.createElement(_6e,{...i,asChild:!1,ref:t,className:gt("rt-BaseMenuItem","rt-BaseMenuSubTrigger","rt-DropdownMenuItem","rt-DropdownMenuSubTrigger",n)},r,m.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},m.createElement(BZ,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubtriggerIcon"})))});nje.displayName="DropdownMenu.SubTrigger";const rje=m.forwardRef((e,t)=>{const{size:n,variant:r,color:i,highContrast:o}=m.useContext(KZ),{className:a,children:s,container:l,forceMount:c,...d}=er({size:n,variant:r,color:i,highContrast:o,...e},$y);return m.createElement(a7,{container:l,forceMount:c},m.createElement(Mf,{asChild:!0},m.createElement(x6e,{"data-accent-color":i,alignOffset:-Number(n)*4,sideOffset:1,collisionPadding:10,...d,asChild:!1,ref:t,className:gt("rt-PopperContent","rt-BaseMenuContent","rt-BaseMenuSubContent","rt-DropdownMenuContent","rt-DropdownMenuSubContent",a)},m.createElement(E4,{type:"auto"},m.createElement("div",{className:gt("rt-BaseMenuViewport","rt-DropdownMenuViewport")},s)))))});rje.displayName="DropdownMenu.SubContent";const ije=m.forwardRef(({className:e,...t},n)=>m.createElement(b6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuSeparator","rt-DropdownMenuSeparator",e)}));ije.displayName="DropdownMenu.Separator";const nl=m.forwardRef(({className:e,...t},n)=>m.createElement(B7,{...t,ref:n,className:gt("rt-IconButton",e)}));nl.displayName="IconButton";const oje=["1","2","3","4"],aje={...el,size:{type:"enum",className:"rt-r-size",values:oje,default:"2",responsive:!0},width:tl.width,minWidth:tl.minWidth,maxWidth:{...tl.maxWidth,default:"480px"},...C4},QZ=e=>m.createElement(l7,{...e});QZ.displayName="Popover.Root";const eq=m.forwardRef(({children:e,...t},n)=>m.createElement(AV,{...t,ref:n,asChild:!0},H0(e)));eq.displayName="Popover.Trigger";const tq=m.forwardRef((e,t)=>{const{className:n,forceMount:r,container:i,...o}=er(e,aje);return m.createElement(u7,{container:i,forceMount:r},m.createElement(Mf,{asChild:!0},m.createElement(c7,{align:"start",sideOffset:8,collisionPadding:10,...o,ref:t,className:gt("rt-PopperContent","rt-PopoverContent",n)})))});tq.displayName="Popover.Content";const sje=m.forwardRef(({children:e,...t},n)=>m.createElement(O6e,{...t,ref:n,asChild:!0},H0(e)));sje.displayName="Popover.Close";const lje=m.forwardRef(({children:e,...t},n)=>m.createElement(DV,{...t,ref:n}));lje.displayName="Popover.Anchor";const uje=["1","2","3"],cje=["classic","surface","soft"],dje={size:{type:"enum",className:"rt-r-size",values:uje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:cje,default:"surface"},...Pa,...Nf,...tp,duration:{type:"string"}},N4=m.forwardRef((e,t)=>{const{className:n,style:r,color:i,radius:o,duration:a,...s}=er(e,dje,So);return m.createElement(W6e,{"data-accent-color":i,"data-radius":o,ref:t,className:gt("rt-ProgressRoot",n),style:Cy({"--progress-duration":"value"in s?void 0:a,"--progress-value":"value"in s?s.value:void 0,"--progress-max":"max"in s?s.max:void 0},r),...s,asChild:!1},m.createElement(V6e,{className:"rt-ProgressIndicator"}))});N4.displayName="Progress";const Z0=m.forwardRef(({className:e,children:t,...n},r)=>m.createElement(xf,{...n,ref:r,className:gt("rt-reset",e)},H0(t)));Z0.displayName="Reset";const fje=["1","2","3"],W7={size:{type:"enum",className:"rt-r-size",values:fje,default:"2",responsive:!0}},hje=["classic","surface","soft","ghost"],pje={variant:{type:"enum",className:"rt-variant",values:hje,default:"surface"},...Pa,...tp,placeholder:{type:"string"}},mje=["solid","soft"],gje={variant:{type:"enum",className:"rt-variant",values:mje,default:"solid"},...Pa,...Nf},V7=m.createContext({}),H7=e=>{const{children:t,size:n=W7.size.default,...r}=e;return m.createElement(T5e,{...r},m.createElement(V7.Provider,{value:m.useMemo(()=>({size:n}),[n])},t))};H7.displayName="Select.Root";const Z7=m.forwardRef((e,t)=>{const n=m.useContext(V7),{children:r,className:i,color:o,radius:a,placeholder:s,...l}=er({size:n==null?void 0:n.size,...e},{size:W7.size},pje,So);return m.createElement(I5e,{asChild:!0},m.createElement("button",{"data-accent-color":o,"data-radius":a,...l,ref:t,className:gt("rt-reset","rt-SelectTrigger",i)},m.createElement("span",{className:"rt-SelectTriggerInner"},m.createElement(E5e,{placeholder:s},r)),m.createElement(N5e,{asChild:!0},m.createElement(U7,{className:"rt-SelectIcon"}))))});Z7.displayName="Select.Trigger";const q7=m.forwardRef((e,t)=>{const n=m.useContext(V7),{className:r,children:i,color:o,container:a,...s}=er({size:n==null?void 0:n.size,...e},{size:W7.size},gje),l=LZ(),c=o||l.accentColor;return m.createElement($5e,{container:a},m.createElement(Mf,{asChild:!0},m.createElement(M5e,{"data-accent-color":c,sideOffset:4,...s,asChild:!1,ref:t,className:gt({"rt-PopperContent":s.position==="popper"},"rt-SelectContent",r)},m.createElement(sH,{type:"auto",className:"rt-ScrollAreaRoot"},m.createElement(L5e,{asChild:!0,className:"rt-SelectViewport"},m.createElement(lH,{className:"rt-ScrollAreaViewport",style:{overflowY:void 0}},i)),m.createElement(g7,{className:"rt-ScrollAreaScrollbar rt-r-size-1",orientation:"vertical"},m.createElement(v7,{className:"rt-ScrollAreaThumb"}))))))});q7.displayName="Select.Content";const My=m.forwardRef((e,t)=>{const{className:n,children:r,...i}=e;return m.createElement(P5e,{...i,asChild:!1,ref:t,className:gt("rt-SelectItem",n)},m.createElement(D5e,{className:"rt-SelectItemIndicator"},m.createElement(I4,{className:"rt-SelectItemIndicatorIcon"})),m.createElement(z5e,null,r))});My.displayName="Select.Item";const G7=m.forwardRef(({className:e,...t},n)=>m.createElement(R5e,{...t,asChild:!1,ref:n,className:gt("rt-SelectGroup",e)}));G7.displayName="Select.Group";const vje=m.forwardRef(({className:e,...t},n)=>m.createElement(O5e,{...t,asChild:!1,ref:n,className:gt("rt-SelectLabel",e)}));vje.displayName="Select.Label";const yje=m.forwardRef(({className:e,...t},n)=>m.createElement(A5e,{...t,asChild:!1,ref:n,className:gt("rt-SelectSeparator",e)}));yje.displayName="Select.Separator";const bje=["horizontal","vertical"],_je=["1","2","3","4"],xje={orientation:{type:"enum",className:"rt-r-orientation",values:bje,default:"horizontal",responsive:!0},size:{type:"enum",className:"rt-r-size",values:_je,default:"1",responsive:!0},color:{...Pa.color,default:"gray"},decorative:{type:"boolean",default:!0}},ps=m.forwardRef((e,t)=>{const{className:n,color:r,decorative:i,...o}=er(e,xje,So);return m.createElement("span",{"data-accent-color":r,role:i?void 0:"separator",...o,ref:t,className:gt("rt-Separator",n)})});ps.displayName="Separator";const wje=["1","2","3"],kje=["classic","surface","soft"],Sje={size:{type:"enum",className:"rt-r-size",values:wje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:kje,default:"surface"},...Pa,...Nf,...tp},nq=m.forwardRef((e,t)=>{const{className:n,color:r,radius:i,tabIndex:o,...a}=er(e,Sje,So);return m.createElement(KH,{"data-accent-color":r,"data-radius":i,ref:t,...a,asChild:!1,className:gt("rt-SliderRoot",n)},m.createElement(XH,{className:"rt-SliderTrack"},m.createElement(nSe,{className:gt("rt-SliderRange",{"rt-high-contrast":e.highContrast}),"data-inverted":a.inverted?"":void 0})),(a.value??a.defaultValue??[]).map((s,l)=>m.createElement(JH,{key:l,className:"rt-SliderThumb",...o!==void 0?{tabIndex:o}:void 0})))});nq.displayName="Slider";const Cje=["1","2","3"],jje=["classic","surface","soft"],Tje={size:{type:"enum",className:"rt-r-size",values:Cje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:jje,default:"surface"},...Pa,...Nf,...tp},Y7=m.forwardRef((e,t)=>{const{className:n,color:r,radius:i,...o}=er(e,Tje,So);return m.createElement(lSe,{"data-accent-color":r,"data-radius":i,...o,asChild:!1,ref:t,className:gt("rt-reset","rt-SwitchRoot",n)},m.createElement(uSe,{className:gt("rt-SwitchThumb",{"rt-high-contrast":e.highContrast})}))});Y7.displayName="Switch";const Ije=["1","2","3"],Eje=["surface","ghost"],Nje=["auto","fixed"],K7={size:{type:"enum",className:"rt-r-size",values:Ije,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:Eje,default:"ghost"},layout:{type:"enum",className:"rt-r-tl",values:Nje,responsive:!0}},$je=["start","center","end","baseline"],Mje={align:{type:"enum",className:"rt-r-va",values:$je,parseValue:Lje,responsive:!0}};function Lje(e){return{baseline:"baseline",start:"top",center:"middle",end:"bottom"}[e]}const Rje=["start","center","end"],X7={justify:{type:"enum",className:"rt-r-ta",values:Rje,parseValue:Oje,responsive:!0},...tl,...jy};function Oje(e){return{start:"left",center:"center",end:"right"}[e]}const q0=m.forwardRef((e,t)=>{const{layout:n,...r}=K7,{className:i,children:o,layout:a,...s}=er(e,r,So),l=Sy({value:a,className:K7.layout.className,propValues:K7.layout.values});return m.createElement("div",{ref:t,className:gt("rt-TableRoot",i),...s},m.createElement(E4,null,m.createElement("table",{className:gt("rt-TableRootTable",l)},o)))});q0.displayName="Table.Root";const ip=m.forwardRef(({className:e,...t},n)=>m.createElement("thead",{...t,ref:n,className:gt("rt-TableHeader",e)}));ip.displayName="Table.Header";const G0=m.forwardRef(({className:e,...t},n)=>m.createElement("tbody",{...t,ref:n,className:gt("rt-TableBody",e)}));G0.displayName="Table.Body";const la=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,Mje);return m.createElement("tr",{...r,ref:t,className:gt("rt-TableRow",n)})});la.displayName="Table.Row";const ti=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,X7);return m.createElement("td",{className:gt("rt-TableCell",n),ref:t,...r})});ti.displayName="Table.Cell";const Wi=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,X7);return m.createElement("th",{className:gt("rt-TableCell","rt-TableColumnHeaderCell",n),scope:"col",ref:t,...r})});Wi.displayName="Table.ColumnHeaderCell";const $4=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,X7);return m.createElement("th",{className:gt("rt-TableCell","rt-TableRowHeaderCell",n),scope:"row",ref:t,...r})});$4.displayName="Table.RowHeaderCell";const Pje=["1","2","3"],zje=["classic","surface","soft"],Dje={size:{type:"enum",className:"rt-r-size",values:Pje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:zje,default:"surface"},...Pa,...tp},Aje=["left","right"],Fje={side:{type:"enum",values:Aje},...Pa,gap:DZ.gap,px:jy.px,pl:jy.pl,pr:jy.pr},J7=m.forwardRef((e,t)=>{const n=m.useRef(null),{children:r,className:i,color:o,radius:a,style:s,...l}=er(e,Dje,So);return m.createElement("div",{"data-accent-color":o,"data-radius":a,style:s,className:gt("rt-TextFieldRoot",i),onPointerDown:c=>{const d=c.target;if(d.closest("input, button, a"))return;const f=n.current;if(!f)return;const p=d.closest(` - .rt-TextFieldSlot[data-side='right'], - .rt-TextFieldSlot:not([data-side='right']) ~ .rt-TextFieldSlot:not([data-side='left']) - `)?f.value.length:0;requestAnimationFrame(()=>{try{f.setSelectionRange(p,p)}catch{}f.focus()})}},m.createElement("input",{spellCheck:"false",...l,ref:zl(n,t),className:"rt-reset rt-TextFieldInput"}),r)});J7.displayName="TextField.Root";const M4=m.forwardRef((e,t)=>{const{className:n,color:r,side:i,...o}=er(e,Fje);return m.createElement("div",{"data-accent-color":r,"data-side":i,...o,ref:t,className:gt("rt-TextFieldSlot",n)})});M4.displayName="TextField.Slot";const Bje={content:{type:"ReactNode",required:!0},width:tl.width,minWidth:tl.minWidth,maxWidth:{...tl.maxWidth,default:"360px"}},ui=m.forwardRef((e,t)=>{const{children:n,className:r,open:i,defaultOpen:o,onOpenChange:a,delayDuration:s,disableHoverableContent:l,content:c,container:d,forceMount:f,...p}=er(e,Bje),v={open:i,defaultOpen:o,onOpenChange:a,delayDuration:s,disableHoverableContent:l};return m.createElement(OSe,{...v},m.createElement(PSe,{asChild:!0},n),m.createElement(zSe,{container:d,forceMount:f},m.createElement(Mf,{asChild:!0},m.createElement(DSe,{sideOffset:4,collisionPadding:10,...p,asChild:!1,ref:t,className:gt("rt-TooltipContent",r)},m.createElement(q,{as:"p",className:"rt-TooltipText",size:"1"},c),m.createElement(ASe,{className:"rt-TooltipArrow"})))))});ui.displayName="Tooltip";const Q7=new WeakMap,Uje=new WeakMap,L4={current:[]};let eT=!1,Ly=0;const Ry=new Set,R4=new Map;function rq(e){for(const t of e){if(L4.current.includes(t))continue;L4.current.push(t),t.recompute();const n=Uje.get(t);if(n)for(const r of n){const i=Q7.get(r);i!=null&&i.length&&rq(i)}}}function Wje(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function Vje(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function iq(e){if(Ly>0&&!R4.has(e)&&R4.set(e,e.prevState),Ry.add(e),!(Ly>0)&&!eT)try{for(eT=!0;Ry.size>0;){const t=Array.from(Ry);Ry.clear();for(const n of t){const r=R4.get(n)??n.prevState;n.prevState=r,Wje(n)}for(const n of t){const r=Q7.get(n);r&&(L4.current.push(n),rq(r))}for(const n of t){const r=Q7.get(n);if(r)for(const i of r)Vje(i)}}}finally{eT=!1,L4.current=[],R4.clear()}}function Oy(e){Ly++;try{e()}finally{if(Ly--,Ly===0){const t=Ry.values().next().value;t&&iq(t)}}}function Hje(e){return typeof e=="function"}class Zje{constructor(t,n){this.listeners=new Set,this.subscribe=r=>{var i,o;this.listeners.add(r);const a=(o=(i=this.options)==null?void 0:i.onSubscribe)==null?void 0:o.call(i,r,this);return()=>{this.listeners.delete(r),a==null||a()}},this.prevState=t,this.state=t,this.options=n}setState(t){var n,r,i;this.prevState=this.state,(n=this.options)!=null&&n.updateFn?this.state=this.options.updateFn(this.prevState)(t):Hje(t)?this.state=t(this.prevState):this.state=t,(i=(r=this.options)==null?void 0:r.onUpdate)==null||i.call(r),iq(this)}}const Lf="__TSR_index",oq="popstate",aq="beforeunload";function qje(e){let t=e.getLocation();const n=new Set,r=a=>{t=e.getLocation(),n.forEach(s=>s({location:t,action:a}))},i=a=>{e.notifyOnIndexChange??!0?r(a):t=e.getLocation()},o=async({task:a,navigateOpts:s,...l})=>{var f,p;if((s==null?void 0:s.ignoreBlocker)??!1){a();return}const c=((f=e.getBlockers)==null?void 0:f.call(e))??[],d=l.type==="PUSH"||l.type==="REPLACE";if(typeof document<"u"&&c.length&&d)for(const v of c){const _=O4(l.path,l.state);if(await v.blockerFn({currentLocation:t,nextLocation:_,action:l.type})){(p=e.onBlocked)==null||p.call(e);return}}a()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:a=>(n.add(a),()=>{n.delete(a)}),push:(a,s,l)=>{const c=t.state[Lf];s=sq(c+1,s),o({task:()=>{e.pushState(a,s),r({type:"PUSH"})},navigateOpts:l,type:"PUSH",path:a,state:s})},replace:(a,s,l)=>{const c=t.state[Lf];s=sq(c,s),o({task:()=>{e.replaceState(a,s),r({type:"REPLACE"})},navigateOpts:l,type:"REPLACE",path:a,state:s})},go:(a,s)=>{o({task:()=>{e.go(a),i({type:"GO",index:a})},navigateOpts:s,type:"GO"})},back:a=>{o({task:()=>{e.back((a==null?void 0:a.ignoreBlocker)??!1),i({type:"BACK"})},navigateOpts:a,type:"BACK"})},forward:a=>{o({task:()=>{e.forward((a==null?void 0:a.ignoreBlocker)??!1),i({type:"FORWARD"})},navigateOpts:a,type:"FORWARD"})},canGoBack:()=>t.state[Lf]!==0,createHref:a=>e.createHref(a),block:a=>{var l;if(!e.setBlockers)return()=>{};const s=((l=e.getBlockers)==null?void 0:l.call(e))??[];return e.setBlockers([...s,a]),()=>{var d,f;const c=((d=e.getBlockers)==null?void 0:d.call(e))??[];(f=e.setBlockers)==null||f.call(e,c.filter(p=>p!==a))}},flush:()=>{var a;return(a=e.flush)==null?void 0:a.call(e)},destroy:()=>{var a;return(a=e.destroy)==null?void 0:a.call(e)},notify:r}}function sq(e,t){t||(t={});const n=tT();return{...t,key:n,__TSR_key:n,[Lf]:e}}function Gje(e){var $,A;const t=typeof document<"u"?window:void 0,n=t.history.pushState,r=t.history.replaceState;let i=[];const o=()=>i,a=M=>i=M,s=M=>M,l=()=>O4(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state);if(!(($=t.history.state)!=null&&$.__TSR_key)&&!((A=t.history.state)!=null&&A.key)){const M=tT();t.history.replaceState({[Lf]:0,key:M,__TSR_key:M},"")}let c=l(),d,f=!1,p=!1,v=!1,_=!1;const y=()=>c;let b,w;const x=()=>{b&&(E._ignoreSubscribers=!0,(b.isPush?t.history.pushState:t.history.replaceState)(b.state,"",b.href),E._ignoreSubscribers=!1,b=void 0,w=void 0,d=void 0)},S=(M,P,te)=>{const Z=s(P);w||(d=c),c=O4(P,te),b={href:Z,state:te,isPush:(b==null?void 0:b.isPush)||M==="push"},w||(w=Promise.resolve().then(()=>x()))},C=M=>{c=l(),E.notify({type:M})},j=async()=>{if(p){p=!1;return}const M=l(),P=M.state[Lf]-c.state[Lf],te=P===1,Z=P===-1,O=!te&&!Z||f;f=!1;const J=O?"GO":Z?"BACK":"FORWARD",D=O?{type:"GO",index:P}:{type:Z?"BACK":"FORWARD"};if(v)v=!1;else{const Y=o();if(typeof document<"u"&&Y.length){for(const F of Y)if(await F.blockerFn({currentLocation:c,nextLocation:M,action:J})){p=!0,t.history.go(1),E.notify(D);return}}}c=l(),E.notify(D)},T=M=>{if(_){_=!1;return}let P=!1;const te=o();if(typeof document<"u"&&te.length)for(const Z of te){const O=Z.enableBeforeUnload??!0;if(O===!0){P=!0;break}if(typeof O=="function"&&O()===!0){P=!0;break}}if(P)return M.preventDefault(),M.returnValue=""},E=qje({getLocation:y,getLength:()=>t.history.length,pushState:(M,P)=>S("push",M,P),replaceState:(M,P)=>S("replace",M,P),back:M=>(M&&(v=!0),_=!0,t.history.back()),forward:M=>{M&&(v=!0),_=!0,t.history.forward()},go:M=>{f=!0,t.history.go(M)},createHref:M=>s(M),flush:x,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(aq,T,{capture:!0}),t.removeEventListener(oq,j)},onBlocked:()=>{d&&c!==d&&(c=d)},getBlockers:o,setBlockers:a,notifyOnIndexChange:!1});return t.addEventListener(aq,T,{capture:!0}),t.addEventListener(oq,j),t.history.pushState=function(...M){const P=n.apply(t.history,M);return E._ignoreSubscribers||C("PUSH"),P},t.history.replaceState=function(...M){const P=r.apply(t.history,M);return E._ignoreSubscribers||C("REPLACE"),P},E}function O4(e,t){const n=e.indexOf("#"),r=e.indexOf("?"),i=tT();return{href:e,pathname:e.substring(0,n>0?r>0?Math.min(n,r):n:r>0?r:e.length),hash:n>-1?e.substring(n):"",search:r>-1?e.slice(r,n===-1?void 0:n):"",state:t||{[Lf]:0,key:i,__TSR_key:i}}}function tT(){return(Math.random()+1).toString(36).substring(7)}function nT(e){return e[e.length-1]}function Yje(e){return typeof e=="function"}function op(e,t){return Yje(e)?e(t):e}const Kje=Object.prototype.hasOwnProperty;function Ul(e,t){if(e===t)return e;const n=t,r=cq(e)&&cq(n);if(!r&&!(P4(e)&&P4(n)))return n;const i=r?e:lq(e);if(!i)return n;const o=r?n:lq(n);if(!o)return n;const a=i.length,s=o.length,l=r?new Array(s):{};let c=0;for(let d=0;d"u")return!0;const n=t.prototype;return!(!uq(n)||!n.hasOwnProperty("isPrototypeOf"))}function uq(e){return Object.prototype.toString.call(e)==="[object Object]"}function cq(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Rf(e,t,n){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0,i=e.length;ri||!Rf(e[a],t[a],n)))return!1;return i===o}return!1}function Y0(e){let t,n;const r=new Promise((i,o)=>{t=i,n=o});return r.status="pending",r.resolve=i=>{r.status="resolved",r.value=i,t(i),e==null||e(i)},r.reject=i=>{r.status="rejected",n(i)},r}function Of(e){return!!(e&&typeof e=="object"&&typeof e.then=="function")}const Xje=Array.from(new Map([["%","%25"],["\\","%5C"]]).values());function dq(e,t=Xje){function n(i,o,a=0){for(let s=a;s{try{return decodeURI(s)}catch{return s}})}}if(e===""||!/%[0-9A-Fa-f]{2}/g.test(e))return e;const r=e.replaceAll(/%[0-9a-f]{2}/g,i=>i.toUpperCase());return n(r,t)}var Jje="Invariant failed";function Qc(e,t){if(!e)throw new Error(Jje)}const Wu=0,ap=1,K0=2,X0=3;function ed(e){return rT(e.filter(t=>t!==void 0).join("/"))}function rT(e){return e.replace(/\/{2,}/g,"/")}function iT(e){return e==="/"?e:e.replace(/^\/{1,}/,"")}function Pf(e){return e==="/"?e:e.replace(/\/{1,}$/,"")}function z4(e){return Pf(iT(e))}function D4(e,t){return e!=null&&e.endsWith("/")&&e!=="/"&&e!==`${t}/`?e.slice(0,-1):e}function Qje(e,t,n){return D4(e,n)===D4(t,n)}function e8e(e){const{type:t,value:n}=e;if(t===Wu)return n;const{prefixSegment:r,suffixSegment:i}=e;if(t===ap){const o=n.substring(1);if(r&&i)return`${r}{$${o}}${i}`;if(r)return`${r}{$${o}}`;if(i)return`{$${o}}${i}`}if(t===X0){const o=n.substring(1);return r&&i?`${r}{-$${o}}${i}`:r?`${r}{-$${o}}`:i?`{-$${o}}${i}`:`{-$${o}}`}if(t===K0){if(r&&i)return`${r}{$}${i}`;if(r)return`${r}{$}`;if(i)return`{$}${i}`}return n}function t8e({base:e,to:t,trailingSlash:n="never",parseCache:r}){var s;let i=J0(e,r).slice();const o=J0(t,r);i.length>1&&((s=nT(i))==null?void 0:s.value)==="/"&&i.pop();for(let l=0,c=o.length;l1&&(nT(i).value==="/"?n==="never"&&i.pop():n==="always"&&i.push({type:Wu,value:"/"}));const a=i.map(e8e);return ed(a)}const J0=(e,t)=>{if(!e)return[];const n=t==null?void 0:t.get(e);if(n)return n;const r=s8e(e);return t==null||t.set(e,r),r},n8e=/^\$.{1,}$/,r8e=/^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,i8e=/^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,o8e=/^\$$/,a8e=/^(.*?)\{\$\}(.*)$/;function s8e(e){e=rT(e);const t=[];if(e.slice(0,1)==="/"&&(e=e.substring(1),t.push({type:Wu,value:"/"})),!e)return t;const n=e.split("/").filter(Boolean);return t.push(...n.map(r=>{const i=r.match(a8e);if(i){const s=i[1],l=i[2];return{type:K0,value:"$",prefixSegment:s||void 0,suffixSegment:l||void 0}}const o=r.match(i8e);if(o){const s=o[1],l=o[2],c=o[3];return{type:X0,value:l,prefixSegment:s||void 0,suffixSegment:c||void 0}}const a=r.match(r8e);if(a){const s=a[1],l=a[2],c=a[3];return{type:ap,value:""+l,prefixSegment:s||void 0,suffixSegment:c||void 0}}if(n8e.test(r)){const s=r.substring(1);return{type:ap,value:"$"+s,prefixSegment:void 0,suffixSegment:void 0}}return o8e.test(r)?{type:K0,value:"$",prefixSegment:void 0,suffixSegment:void 0}:{type:Wu,value:r}})),e.slice(-1)==="/"&&(e=e.substring(1),t.push({type:Wu,value:"/"})),t}function oT({path:e,params:t,leaveParams:n,decodeCharMap:r,parseCache:i}){const o=J0(e,i);function a(d){const f=t[d],p=typeof f=="string";return d==="*"||d==="_splat"?p?encodeURI(f):f:p?l8e(f,r):f}let s=!1;const l={},c=ed(o.map(d=>{if(d.type===Wu)return d.value;if(d.type===K0){l._splat=t._splat,l["*"]=t._splat;const f=d.prefixSegment||"",p=d.suffixSegment||"";if(!t._splat)return s=!0,f||p?`${f}${p}`:void 0;const v=a("_splat");return`${f}${v}${p}`}if(d.type===ap){const f=d.value.substring(1);!s&&!(f in t)&&(s=!0),l[f]=t[f];const p=d.prefixSegment||"",v=d.suffixSegment||"";if(n){const _=a(d.value);return`${p}${d.value}${_??""}${v}`}return`${p}${a(f)??"undefined"}${v}`}if(d.type===X0){const f=d.value.substring(1),p=d.prefixSegment||"",v=d.suffixSegment||"";if(!(f in t)||t[f]==null)return p||v?`${p}${v}`:void 0;if(l[f]=t[f],n){const _=a(d.value);return`${p}${d.value}${_??""}${v}`}return`${p}${a(f)??""}${v}`}return d.value}));return{usedParams:l,interpolatedPath:c,isMissingParams:s}}function l8e(e,t){let n=encodeURIComponent(e);if(t)for(const[r,i]of t)n=n.replaceAll(r,i);return n}function aT(e,t,n){const r=u8e(e,t,n);if(!(t.to&&!r))return r??{}}function u8e(e,{to:t,fuzzy:n,caseSensitive:r},i){const o=t,a=J0(e.startsWith("/")?e:`/${e}`,i),s=J0(o.startsWith("/")?o:`/${o}`,i),l={};return c8e(a,s,l,n,r)?l:void 0}function c8e(e,t,n,r,i){var s,l,c;let o=0,a=0;for(;ox.value)));_&&w.startsWith(_)&&(w=w.slice(_.length)),y&&w.endsWith(y)&&(w=w.slice(0,w.length-y.length)),v=w}else v=decodeURI(ed(p.map(_=>_.value)));return n["*"]=v,n._splat=v,!0}if(f.type===Wu){if(f.value==="/"&&!(d!=null&&d.value)){a++;continue}if(d){if(i){if(f.value!==d.value)return!1}else if(f.value.toLowerCase()!==d.value.toLowerCase())return!1;o++,a++;continue}else return!1}if(f.type===ap){if(!d||d.value==="/")return!1;let p="",v=!1;if(f.prefixSegment||f.suffixSegment){const _=f.prefixSegment||"",y=f.suffixSegment||"",b=d.value;if(_&&!b.startsWith(_)||y&&!b.endsWith(y))return!1;let w=b;_&&w.startsWith(_)&&(w=w.slice(_.length)),y&&w.endsWith(y)&&(w=w.slice(0,w.length-y.length)),p=decodeURIComponent(w),v=!0}else p=decodeURIComponent(d.value),v=!0;v&&(n[f.value.substring(1)]=p,o++),a++;continue}if(f.type===X0){if(!d){a++;continue}if(d.value==="/"){a++;continue}let p="",v=!1;if(f.prefixSegment||f.suffixSegment){const _=f.prefixSegment||"",y=f.suffixSegment||"",b=d.value;if((!_||b.startsWith(_))&&(!y||b.endsWith(y))){let w=b;_&&w.startsWith(_)&&(w=w.slice(_.length)),y&&w.endsWith(y)&&(w=w.slice(0,w.length-y.length)),p=decodeURIComponent(w),v=!0}}else{let _=!0;for(let y=a+1;y=t.length)return n["**"]=ed(e.slice(o).map(p=>p.value)),!!r&&((l=t[t.length-1])==null?void 0:l.value)!=="/";if(a=e.length){for(let p=a;p{var d;if(n.isRoot||!n.path)return;const i=iT(n.fullPath);let o=J0(i),a=0;for(;o.length>a+1&&((d=o[a])==null?void 0:d.value)==="/";)a++;a>0&&(o=o.slice(a));let s=0,l=!1;const c=o.map((f,p)=>{if(f.value==="/")return d8e;if(f.type===Wu)return f8e;let v;f.type===ap?v=h8e:f.type===X0?(v=p8e,s++):v=m8e;for(let _=p+1;_{const i=Math.min(n.scores.length,r.scores.length);for(let o=0;or.parsed[o].value?1:-1;return n.index-r.index}).map((n,r)=>(n.child.rank=r,n.child))}function x8e({routeTree:e,initRoute:t}){const n={},r={},i=a=>{a.forEach((s,l)=>{t==null||t(s,l);const c=n[s.id];if(Qc(!c,`Duplicate routes found with id: ${String(s.id)}`),n[s.id]=s,!s.isRoot&&s.path){const f=Pf(s.fullPath);(!r[f]||s.fullPath.endsWith("/"))&&(r[f]=s)}const d=s.children;d!=null&&d.length&&i(d)})};i([e]);const o=_8e(Object.values(n));return{routesById:n,routesByPath:r,flatRoutes:o}}function Wl(e){return!!(e!=null&&e.isNotFound)}function w8e(){try{if(typeof window<"u"&&typeof window.sessionStorage=="object")return window.sessionStorage}catch{}}const A4="tsr-scroll-restoration-v1_3",k8e=(e,t)=>{let n;return(...r)=>{n||(n=setTimeout(()=>{e(...r),n=null},t))}};function S8e(){const e=w8e();if(!e)return null;const t=e.getItem(A4);let n=t?JSON.parse(t):{};return{state:n,set:r=>(n=op(r,n)||n,e.setItem(A4,JSON.stringify(n)))}}const F4=S8e(),sT=e=>e.state.__TSR_key||e.href;function C8e(e){const t=[];let n;for(;n=e.parentNode;)t.push(`${e.tagName}:nth-child(${Array.prototype.indexOf.call(n.children,e)+1})`),e=n;return`${t.reverse().join(" > ")}`.toLowerCase()}let B4=!1;function mq({storageKey:e,key:t,behavior:n,shouldScrollRestoration:r,scrollToTopSelectors:i,location:o}){var c,d;let a;try{a=JSON.parse(sessionStorage.getItem(e)||"{}")}catch(f){console.error(f);return}const s=t||((c=window.history.state)==null?void 0:c.__TSR_key),l=a[s];B4=!0;e:{if(r&&l&&Object.keys(l).length>0){for(const v in l){const _=l[v];if(v==="window")window.scrollTo({top:_.scrollY,left:_.scrollX,behavior:n});else if(v){const y=document.querySelector(v);y&&(y.scrollLeft=_.scrollX,y.scrollTop=_.scrollY)}}break e}const f=(o??window.location).hash.split("#",2)[1];if(f){const v=((d=window.history.state)==null?void 0:d.__hashScrollIntoViewOptions)??!0;if(v){const _=document.getElementById(f);_&&_.scrollIntoView(v)}break e}const p={top:0,left:0,behavior:n};if(window.scrollTo(p),i)for(const v of i){if(v==="window")continue;const _=typeof v=="function"?v():document.querySelector(v);_&&_.scrollTo(p)}}B4=!1}function j8e(e,t){if(!F4&&!e.isServer||((e.options.scrollRestoration??!1)&&(e.isScrollRestoring=!0),e.isServer||e.isScrollRestorationSetup||!F4))return;e.isScrollRestorationSetup=!0,B4=!1;const n=e.options.getScrollRestorationKey||sT;window.history.scrollRestoration="manual";const r=i=>{if(B4||!e.isScrollRestoring)return;let o="";if(i.target===document||i.target===window)o="window";else{const s=i.target.getAttribute("data-scroll-restoration-id");s?o=`[data-scroll-restoration-id="${s}"]`:o=C8e(i.target)}const a=n(e.state.location);F4.set(s=>{const l=s[a]||(s[a]={}),c=l[o]||(l[o]={});if(o==="window")c.scrollX=window.scrollX||0,c.scrollY=window.scrollY||0;else if(o){const d=document.querySelector(o);d&&(c.scrollX=d.scrollLeft||0,c.scrollY=d.scrollTop||0)}return s})};typeof document<"u"&&document.addEventListener("scroll",k8e(r,100),!0),e.subscribe("onRendered",i=>{const o=n(i.toLocation);if(!e.resetNextScroll){e.resetNextScroll=!0;return}typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation})||(mq({storageKey:A4,key:o,behavior:e.options.scrollRestorationBehavior,shouldScrollRestoration:e.isScrollRestoring,scrollToTopSelectors:e.options.scrollToTopSelectors,location:e.history.location}),e.isScrollRestoring&&F4.set(a=>(a[o]||(a[o]={}),a)))})}function T8e(e){if(typeof document<"u"&&document.querySelector){const t=e.state.location.state.__hashScrollIntoViewOptions??!0;if(t&&e.state.location.hash!==""){const n=document.getElementById(e.state.location.hash);n&&n.scrollIntoView(t)}}}function I8e(e,t=String){const n=new URLSearchParams;for(const r in e){const i=e[r];i!==void 0&&n.set(r,t(i))}return n.toString()}function lT(e){return e?e==="false"?!1:e==="true"?!0:+e*0===0&&+e+""===e?+e:e:""}function E8e(e){const t=new URLSearchParams(e),n={};for(const[r,i]of t.entries()){const o=n[r];o==null?n[r]=lT(i):Array.isArray(o)?o.push(lT(i)):n[r]=[o,lT(i)]}return n}const N8e=M8e(JSON.parse),$8e=L8e(JSON.stringify,JSON.parse);function M8e(e){return t=>{t[0]==="?"&&(t=t.substring(1));const n=E8e(t);for(const r in n){const i=n[r];if(typeof i=="string")try{n[r]=e(i)}catch{}}return n}}function L8e(e,t){const n=typeof t=="function";function r(i){if(typeof i=="object"&&i!==null)try{return e(i)}catch{}else if(n&&typeof i=="string")try{return t(i),e(i)}catch{}return i}return i=>{const o=I8e(i,r);return o?`?${o}`:""}}const ms="__root__";function uT(e){if(e.statusCode=e.statusCode||e.code||307,!e.reloadDocument&&typeof e.href=="string")try{new URL(e.href),e.reloadDocument=!0}catch{}const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function Vu(e){return e instanceof Response&&!!e.options}function R8e(e){const t=new Map;let n,r;const i=o=>{o.next&&(o.prev?(o.prev.next=o.next,o.next.prev=o.prev,o.next=void 0,r&&(r.next=o,o.prev=r)):(o.next.prev=void 0,n=o.next,o.next=void 0,r&&(o.prev=r,r.next=o)),r=o)};return{get(o){const a=t.get(o);if(a)return i(a),a.value},set(o,a){if(t.size>=e&&n){const l=n;t.delete(l.key),l.next&&(n=l.next,l.next.prev=void 0),l===r&&(r=void 0)}const s=t.get(o);if(s)s.value=a,i(s);else{const l={key:o,value:a,prev:r};r&&(r.next=l),r=l,n||(n=l),t.set(o,l)}}}}const U4=e=>{var t;if(!e.rendered)return e.rendered=!0,(t=e.onReady)==null?void 0:t.call(e)},W4=(e,t)=>!!(e.preload&&!e.router.state.matches.some(n=>n.id===t)),gq=(e,t)=>{var i;const n=e.router.routesById[t.routeId??""]??e.router.routeTree;!n.options.notFoundComponent&&((i=e.router.options)!=null&&i.defaultNotFoundComponent)&&(n.options.notFoundComponent=e.router.options.defaultNotFoundComponent),Qc(n.options.notFoundComponent);const r=e.matches.find(o=>o.routeId===n.id);Qc(r,"Could not find match for route: "+n.id),e.updateMatch(r.id,o=>({...o,status:"notFound",error:t,isFetching:!1})),t.routerCode==="BEFORE_LOAD"&&n.parentRoute&&(t.routeId=n.parentRoute.id,gq(e,t))},zf=(e,t,n)=>{var r,i,o;if(!(!Vu(n)&&!Wl(n))){if(Vu(n)&&n.redirectHandled&&!n.options.reloadDocument)throw n;if(t){(r=t._nonReactive.beforeLoadPromise)==null||r.resolve(),(i=t._nonReactive.loaderPromise)==null||i.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0;const a=Vu(n)?"redirected":"notFound";t._nonReactive.error=n,e.updateMatch(t.id,s=>({...s,status:a,isFetching:!1,error:n})),Wl(n)&&!n.routeId&&(n.routeId=t.routeId),(o=t._nonReactive.loadPromise)==null||o.resolve()}throw Vu(n)?(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n),n):(gq(e,n),n)}},vq=(e,t)=>{const n=e.router.getMatch(t);return!!(!e.router.isServer&&n._nonReactive.dehydrated||e.router.isServer&&n.ssr===!1)},Py=(e,t,n,r)=>{var s,l;const{id:i,routeId:o}=e.matches[t],a=e.router.looseRoutesById[o];if(n instanceof Promise)throw n;n.routerCode=r,e.firstBadMatchIndex??(e.firstBadMatchIndex=t),zf(e,e.router.getMatch(i),n);try{(l=(s=a.options).onError)==null||l.call(s,n)}catch(c){n=c,zf(e,e.router.getMatch(i),n)}e.updateMatch(i,c=>{var d,f;return(d=c._nonReactive.beforeLoadPromise)==null||d.resolve(),c._nonReactive.beforeLoadPromise=void 0,(f=c._nonReactive.loadPromise)==null||f.resolve(),{...c,error:n,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}})},O8e=(e,t,n,r)=>{var v;const i=e.router.getMatch(t),o=(v=e.matches[n-1])==null?void 0:v.id,a=o?e.router.getMatch(o):void 0;if(e.router.isShell()){i.ssr=r.id===ms;return}if((a==null?void 0:a.ssr)===!1){i.ssr=!1;return}const s=_=>_===!0&&(a==null?void 0:a.ssr)==="data-only"?"data-only":_,l=e.router.options.defaultSsr??!0;if(r.options.ssr===void 0){i.ssr=s(l);return}if(typeof r.options.ssr!="function"){i.ssr=s(r.options.ssr);return}const{search:c,params:d}=i,f={search:V4(c,i.searchError),params:V4(d,i.paramsError),location:e.location,matches:e.matches.map(_=>({index:_.index,pathname:_.pathname,fullPath:_.fullPath,staticData:_.staticData,id:_.id,routeId:_.routeId,search:V4(_.search,_.searchError),params:V4(_.params,_.paramsError),ssr:_.ssr}))},p=r.options.ssr(f);if(Of(p))return p.then(_=>{i.ssr=s(_??l)});i.ssr=s(p??l)},yq=(e,t,n,r)=>{var o;if(r._nonReactive.pendingTimeout!==void 0)return;const i=n.options.pendingMs??e.router.options.defaultPendingMs;if(e.onReady&&!e.router.isServer&&!W4(e,t)&&(n.options.loader||n.options.beforeLoad||kq(n))&&typeof i=="number"&&i!==1/0&&(n.options.pendingComponent??((o=e.router.options)==null?void 0:o.defaultPendingComponent))){const a=setTimeout(()=>{U4(e)},i);r._nonReactive.pendingTimeout=a}},P8e=(e,t,n)=>{const r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;yq(e,t,n,r);const i=()=>{const o=e.router.getMatch(t);o.preload&&(o.status==="redirected"||o.status==="notFound")&&zf(e,o,o.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(i):i()},z8e=(e,t,n,r)=>{var j,T;const i=e.router.getMatch(t),o=i._nonReactive.loadPromise;i._nonReactive.loadPromise=Y0(()=>{o==null||o.resolve()});const{paramsError:a,searchError:s}=i;a&&Py(e,n,a,"PARSE_PARAMS"),s&&Py(e,n,s,"VALIDATE_SEARCH"),yq(e,t,r,i);const l=new AbortController,c=(j=e.matches[n-1])==null?void 0:j.id,d={...((T=c?e.router.getMatch(c):void 0)==null?void 0:T.context)??e.router.options.context??void 0,...i.__routeContext};let f=!1;const p=()=>{f||(f=!0,e.updateMatch(t,E=>({...E,isFetching:"beforeLoad",fetchCount:E.fetchCount+1,abortController:l,context:d})))},v=()=>{var E;(E=i._nonReactive.beforeLoadPromise)==null||E.resolve(),i._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,$=>({...$,isFetching:!1}))};if(!r.options.beforeLoad){Oy(()=>{p(),v()});return}i._nonReactive.beforeLoadPromise=Y0();const{search:_,params:y,cause:b}=i,w=W4(e,t),x={search:_,abortController:l,params:y,preload:w,context:d,location:e.location,navigate:E=>e.router.navigate({...E,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:w?"preload":b,matches:e.matches,...e.router.options.additionalContext},S=E=>{if(E===void 0){Oy(()=>{p(),v()});return}(Vu(E)||Wl(E))&&(p(),Py(e,n,E,"BEFORE_LOAD")),Oy(()=>{p(),e.updateMatch(t,$=>({...$,__beforeLoadContext:E,context:{...$.context,...E}})),v()})};let C;try{if(C=r.options.beforeLoad(x),Of(C))return p(),C.catch(E=>{Py(e,n,E,"BEFORE_LOAD")}).then(S)}catch(E){p(),Py(e,n,E,"BEFORE_LOAD")}S(C)},D8e=(e,t)=>{const{id:n,routeId:r}=e.matches[t],i=e.router.looseRoutesById[r],o=()=>{if(e.router.isServer){const l=O8e(e,n,t,i);if(Of(l))return l.then(s)}return s()},a=()=>z8e(e,n,t,i),s=()=>{if(vq(e,n))return;const l=P8e(e,n,i);return Of(l)?l.then(a):a()};return o()},zy=(e,t,n)=>{var o,a,s,l,c,d;const r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;const i={matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([(a=(o=n.options).head)==null?void 0:a.call(o,i),(l=(s=n.options).scripts)==null?void 0:l.call(s,i),(d=(c=n.options).headers)==null?void 0:d.call(c,i)]).then(([f,p,v])=>{const _=f==null?void 0:f.meta,y=f==null?void 0:f.links,b=f==null?void 0:f.scripts,w=f==null?void 0:f.styles;return{meta:_,links:y,headScripts:b,headers:v,scripts:p,styles:w}})},bq=(e,t,n,r)=>{const i=e.matchPromises[n-1],{params:o,loaderDeps:a,abortController:s,cause:l}=e.router.getMatch(t);let c=e.router.options.context??{};for(let f=0;f<=n;f++){const p=e.matches[f];if(!p)continue;const v=e.router.getMatch(p.id);v&&(c={...c,...v.__routeContext??{},...v.__beforeLoadContext??{}})}const d=W4(e,t);return{params:o,deps:a,preload:!!d,parentMatchPromise:i,abortController:s,context:c,location:e.location,navigate:f=>e.router.navigate({...f,_fromLocation:e.location}),cause:d?"preload":l,route:r,...e.router.options.additionalContext}},_q=async(e,t,n,r)=>{var i,o,a,s,l,c;try{const d=e.router.getMatch(t);try{(!e.router.isServer||d.ssr===!0)&&wq(r);const f=(o=(i=r.options).loader)==null?void 0:o.call(i,bq(e,t,n,r)),p=r.options.loader&&Of(f);if((p||r._lazyPromise||r._componentsPromise||r.options.head||r.options.scripts||r.options.headers||d._nonReactive.minPendingPromise)&&e.updateMatch(t,b=>({...b,isFetching:"loader"})),r.options.loader){const b=p?await f:f;zf(e,e.router.getMatch(t),b),b!==void 0&&e.updateMatch(t,w=>({...w,loaderData:b}))}r._lazyPromise&&await r._lazyPromise;const v=zy(e,t,r),_=v?await v:void 0,y=d._nonReactive.minPendingPromise;y&&await y,r._componentsPromise&&await r._componentsPromise,e.updateMatch(t,b=>({...b,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),..._}))}catch(f){let p=f;const v=d._nonReactive.minPendingPromise;v&&await v,Wl(f)&&await((s=(a=r.options.notFoundComponent)==null?void 0:a.preload)==null?void 0:s.call(a)),zf(e,e.router.getMatch(t),f);try{(c=(l=r.options).onError)==null||c.call(l,f)}catch(b){p=b,zf(e,e.router.getMatch(t),b)}const _=zy(e,t,r),y=_?await _:void 0;e.updateMatch(t,b=>({...b,error:p,status:"error",isFetching:!1,...y}))}}catch(d){const f=e.router.getMatch(t);if(f){const p=zy(e,t,r);if(p){const v=await p;e.updateMatch(t,_=>({..._,...v}))}f._nonReactive.loaderPromise=void 0}zf(e,f,d)}},A8e=async(e,t)=>{var c,d;const{id:n,routeId:r}=e.matches[t];let i=!1,o=!1;const a=e.router.looseRoutesById[r];if(vq(e,n)){if(e.router.isServer){const f=zy(e,n,a);if(f){const p=await f;e.updateMatch(n,v=>({...v,...p}))}return e.router.getMatch(n)}}else{const f=e.router.getMatch(n);if(f._nonReactive.loaderPromise){if(f.status==="success"&&!e.sync&&!f.preload)return f;await f._nonReactive.loaderPromise;const p=e.router.getMatch(n),v=p._nonReactive.error||p.error;v&&zf(e,p,v)}else{const p=Date.now()-f.updatedAt,v=W4(e,n),_=v?a.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:a.options.staleTime??e.router.options.defaultStaleTime??0,y=a.options.shouldReload,b=typeof y=="function"?y(bq(e,n,t,a)):y,w=!!v&&!e.router.state.matches.some(j=>j.id===n),x=e.router.getMatch(n);x._nonReactive.loaderPromise=Y0(),w!==x.preload&&e.updateMatch(n,j=>({...j,preload:w}));const{status:S,invalid:C}=x;if(i=S==="success"&&(C||(b??p>_)),!(v&&a.options.preload===!1))if(i&&!e.sync)o=!0,(async()=>{var j,T;try{await _q(e,n,t,a);const E=e.router.getMatch(n);(j=E._nonReactive.loaderPromise)==null||j.resolve(),(T=E._nonReactive.loadPromise)==null||T.resolve(),E._nonReactive.loaderPromise=void 0}catch(E){Vu(E)&&await e.router.navigate(E.options)}})();else if(S!=="success"||i&&e.sync)await _q(e,n,t,a);else{const j=zy(e,n,a);if(j){const T=await j;e.updateMatch(n,E=>({...E,...T}))}}}}const s=e.router.getMatch(n);o||((c=s._nonReactive.loaderPromise)==null||c.resolve(),(d=s._nonReactive.loadPromise)==null||d.resolve()),clearTimeout(s._nonReactive.pendingTimeout),s._nonReactive.pendingTimeout=void 0,o||(s._nonReactive.loaderPromise=void 0),s._nonReactive.dehydrated=void 0;const l=o?s.isFetching:!1;return l!==s.isFetching||s.invalid!==!1?(e.updateMatch(n,f=>({...f,isFetching:l,invalid:!1})),e.router.getMatch(n)):s};async function xq(e){const t=Object.assign(e,{matchPromises:[]});!t.router.isServer&&t.router.state.matches.some(n=>n._forcePending)&&U4(t);try{for(let i=0;i{const{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0),!e._componentsLoaded&&e._componentsPromise===void 0){const t=()=>{var r;const n=[];for(const i of Sq){const o=(r=e.options[i])==null?void 0:r.preload;o&&n.push(o())}if(n.length)return Promise.all(n).then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0});e._componentsLoaded=!0,e._componentsPromise=void 0};e._componentsPromise=e._lazyPromise?e._lazyPromise.then(t):t()}return e._componentsPromise}function V4(e,t){return t?{status:"error",error:t}:{status:"success",value:e}}function kq(e){var t;for(const n of Sq)if((t=e.options[n])!=null&&t.preload)return!0;return!1}const Sq=["component","errorComponent","pendingComponent","notFoundComponent"];function F8e(e){return{input:({url:t})=>{for(const n of e)t=Cq(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=jq(e[n],t);return t}}}function B8e(e){const t=z4(e.basepath),n=`/${t}`,r=`${n}/`,i=e.caseSensitive?n:n.toLowerCase(),o=e.caseSensitive?r:r.toLowerCase();return{input:({url:a})=>{const s=e.caseSensitive?a.pathname:a.pathname.toLowerCase();return s===i?a.pathname="/":s.startsWith(o)&&(a.pathname=a.pathname.slice(n.length)),a},output:({url:a})=>(a.pathname=ed(["/",t,a.pathname]),a)}}function Cq(e,t){var r;const n=(r=e==null?void 0:e.input)==null?void 0:r.call(e,{url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function jq(e,t){var r;const n=(r=e==null?void 0:e.output)==null?void 0:r.call(e,{url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function sp(e){const t=e.resolvedLocation,n=e.location,r=(t==null?void 0:t.pathname)!==n.pathname,i=(t==null?void 0:t.href)!==n.href,o=(t==null?void 0:t.hash)!==n.hash;return{fromLocation:t,toLocation:n,pathChanged:r,hrefChanged:i,hashChanged:o}}class U8e{constructor(t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=n=>n(),this.update=n=>{var d;n.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.");const r=this.options,i=this.basepath??(r==null?void 0:r.basepath)??"/",o=this.basepath===void 0,a=r==null?void 0:r.rewrite;this.options={...r,...n},this.isServer=this.options.isServer??typeof document>"u",this.pathParamsDecodeCharMap=this.options.pathParamsAllowedCharacters?new Map(this.options.pathParamsAllowedCharacters.map(f=>[encodeURIComponent(f),f])):void 0,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.isServer||(this.history=Gje())),this.origin=this.options.origin,this.origin||(!this.isServer&&(window!=null&&window.origin)&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),!this.__store&&this.latestLocation&&(this.__store=new Zje(V8e(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(f=>!["redirected"].includes(f.status))}}}),j8e(this));let s=!1;const l=this.options.basepath??"/",c=this.options.rewrite;if(o||i!==l||a!==c){this.basepath=l;const f=[];z4(l)!==""&&f.push(B8e({basepath:l})),c&&f.push(c),this.rewrite=f.length===0?void 0:f.length===1?f[0]:F8e(f),this.history&&this.updateLatestLocation(),s=!0}s&&this.__store&&(this.__store.state={...this.state,location:this.latestLocation}),typeof window<"u"&&"CSS"in window&&typeof((d=window.CSS)==null?void 0:d.supports)=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const{routesById:n,routesByPath:r,flatRoutes:i}=x8e({routeTree:this.routeTree,initRoute:(a,s)=>{a.init({originalIndex:s})}});this.routesById=n,this.routesByPath=r,this.flatRoutes=i;const o=this.options.notFoundRoute;o&&(o.init({originalIndex:99999999999}),this.routesById[o.id]=o)},this.subscribe=(n,r)=>{const i={eventType:n,fn:r};return this.subscribers.add(i),()=>{this.subscribers.delete(i)}},this.emit=n=>{this.subscribers.forEach(r=>{r.eventType===n.type&&r.fn(n)})},this.parseLocation=(n,r)=>{const i=({href:l,state:c})=>{const d=new URL(l,this.origin),f=Cq(this.rewrite,d),p=this.options.parseSearch(f.search),v=this.options.stringifySearch(p);f.search=v;const _=f.href.replace(f.origin,""),{pathname:y,hash:b}=f;return{href:_,publicHref:l,url:f.href,pathname:dq(y),searchStr:v,search:Ul(r==null?void 0:r.search,p),hash:b.split("#").reverse()[0]??"",state:Ul(r==null?void 0:r.state,c)}},o=i(n),{__tempLocation:a,__tempKey:s}=o.state;if(a&&(!s||s===this.tempLocationKey)){const l=i(a);return l.state.key=o.state.key,l.state.__TSR_key=o.state.__TSR_key,delete l.state.__tempLocation,{...l,maskedLocation:o}}return o},this.resolvePathWithBase=(n,r)=>t8e({base:n,to:rT(r),trailingSlash:this.options.trailingSlash,parseCache:this.parsePathnameCache}),this.matchRoutes=(n,r,i)=>typeof n=="string"?this.matchRoutesInternal({pathname:n,search:r},i):this.matchRoutesInternal(n,r),this.parsePathnameCache=R8e(1e3),this.getMatchedRoutes=(n,r)=>H8e({pathname:n,routePathname:r,caseSensitive:this.options.caseSensitive,routesByPath:this.routesByPath,routesById:this.routesById,flatRoutes:this.flatRoutes,parseCache:this.parsePathnameCache}),this.cancelMatch=n=>{const r=this.getMatch(n);r&&(r.abortController.abort(),clearTimeout(r._nonReactive.pendingTimeout),r._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{const n=this.state.matches.filter(i=>i.status==="pending"),r=this.state.matches.filter(i=>i.isFetching==="loader");new Set([...this.state.pendingMatches??[],...n,...r]).forEach(i=>{this.cancelMatch(i.id)})},this.buildLocation=n=>{const r=(o={})=>{var M,P;const a=o._fromLocation||this.pendingBuiltLocation||this.latestLocation,s=this.matchRoutes(a,{_buildLocation:!0}),l=nT(s);o.from;const c=o.unsafeRelative==="path"?a.pathname:o.from??l.fullPath,d=this.resolvePathWithBase(c,"."),f=l.search,p={...l.params},v=o.to?this.resolvePathWithBase(d,`${o.to}`):this.resolvePathWithBase(d,"."),_=o.params===!1||o.params===null?{}:(o.params??!0)===!0?p:Object.assign(p,op(o.params,p)),y=oT({path:v,params:_,parseCache:this.parsePathnameCache}).interpolatedPath,b=this.matchRoutes(y,void 0,{_buildLocation:!0}).map(te=>this.looseRoutesById[te.routeId]);if(Object.keys(_).length>0)for(const te of b){const Z=((M=te.options.params)==null?void 0:M.stringify)??te.options.stringifyParams;Z&&Object.assign(_,Z(_))}const w=dq(oT({path:v,params:_,leaveParams:n.leaveParams,decodeCharMap:this.pathParamsDecodeCharMap,parseCache:this.parsePathnameCache}).interpolatedPath);let x=f;if(n._includeValidateSearch&&((P=this.options.search)!=null&&P.strict)){const te={};b.forEach(Z=>{if(Z.options.validateSearch)try{Object.assign(te,cT(Z.options.validateSearch,{...te,...x}))}catch{}}),x=te}x=Z8e({search:x,dest:o,destRoutes:b,_includeValidateSearch:n._includeValidateSearch}),x=Ul(f,x);const S=this.options.stringifySearch(x),C=o.hash===!0?a.hash:o.hash?op(o.hash,a.hash):void 0,j=C?`#${C}`:"";let T=o.state===!0?a.state:o.state?op(o.state,a.state):{};T=Ul(a.state,T);const E=`${w}${S}${j}`,$=new URL(E,this.origin),A=jq(this.rewrite,$);return{publicHref:A.pathname+A.search+A.hash,href:E,url:A.href,pathname:w,search:x,searchStr:S,state:T,hash:C??"",unmaskOnReload:o.unmaskOnReload}},i=(o={},a)=>{var c;const s=r(o);let l=a?r(a):void 0;if(!l){let d={};const f=(c=this.options.routeMasks)==null?void 0:c.find(p=>{const v=aT(s.pathname,{to:p.from,caseSensitive:!1,fuzzy:!1},this.parsePathnameCache);return v?(d=v,!0):!1});if(f){const{from:p,...v}=f;a={from:n.from,...v,params:d},l=r(a)}}return l&&(s.maskedLocation=l),s};return n.mask?i(n,{from:n.from,...n.mask}):i(n)},this.commitLocation=({viewTransition:n,ignoreBlocker:r,...i})=>{const o=()=>{const l=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];l.forEach(d=>{i.state[d]=this.latestLocation.state[d]});const c=Rf(i.state,this.latestLocation.state);return l.forEach(d=>{delete i.state[d]}),c},a=Pf(this.latestLocation.href)===Pf(i.href),s=this.commitLocationPromise;if(this.commitLocationPromise=Y0(()=>{s==null||s.resolve()}),a&&o())this.load();else{let{maskedLocation:l,hashScrollIntoView:c,...d}=i;l&&(d={...l,state:{...l.state,__tempKey:void 0,__tempLocation:{...d,search:d.searchStr,state:{...d.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(d.unmaskOnReload??this.options.unmaskOnReload??!1)&&(d.state.__tempKey=this.tempLocationKey)),d.state.__hashScrollIntoViewOptions=c??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=n,this.history[i.replace?"replace":"push"](d.publicHref,d.state,{ignoreBlocker:r})}return this.resetNextScroll=i.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:n,resetScroll:r,hashScrollIntoView:i,viewTransition:o,ignoreBlocker:a,href:s,...l}={})=>{if(s){const f=this.history.location.state.__TSR_index,p=O4(s,{__TSR_index:n?f:f+1});l.to=p.pathname,l.search=this.options.parseSearch(p.search),l.hash=p.hash.slice(1)}const c=this.buildLocation({...l,_includeValidateSearch:!0});this.pendingBuiltLocation=c;const d=this.commitLocation({...c,viewTransition:o,replace:n,resetScroll:r,hashScrollIntoView:i,ignoreBlocker:a});return Promise.resolve().then(()=>{this.pendingBuiltLocation===c&&(this.pendingBuiltLocation=void 0)}),d},this.navigate=({to:n,reloadDocument:r,href:i,...o})=>{if(!r&&i)try{new URL(`${i}`),r=!0}catch{}return r?(i||(i=this.buildLocation({to:n,...o}).url),o.replace?window.location.replace(i):window.location.href=i,Promise.resolve()):this.buildAndCommitLocation({...o,href:i,to:n,_isNavigate:!0})},this.beforeLoad=()=>{if(this.cancelMatches(),this.updateLatestLocation(),this.isServer){const r=this.buildLocation({to:this.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0}),i=o=>{try{return encodeURI(decodeURI(o))}catch{return o}};if(z4(i(this.latestLocation.href))!==z4(i(r.href))){let o=r.url;throw this.origin&&o.startsWith(this.origin)&&(o=o.replace(this.origin,"")||"/"),uT({href:o})}}const n=this.matchRoutes(this.latestLocation);this.__store.setState(r=>({...r,status:"pending",statusCode:200,isLoading:!0,location:this.latestLocation,pendingMatches:n,cachedMatches:r.cachedMatches.filter(i=>!n.some(o=>o.id===i.id))}))},this.load=async n=>{let r,i,o;for(o=new Promise(s=>{this.startTransition(async()=>{var l;try{this.beforeLoad();const c=this.latestLocation,d=this.state.resolvedLocation;this.state.redirect||this.emit({type:"onBeforeNavigate",...sp({resolvedLocation:d,location:c})}),this.emit({type:"onBeforeLoad",...sp({resolvedLocation:d,location:c})}),await xq({router:this,sync:n==null?void 0:n.sync,matches:this.state.pendingMatches,location:c,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let f=[],p=[],v=[];Oy(()=>{this.__store.setState(_=>{const y=_.matches,b=_.pendingMatches||_.matches;return f=y.filter(w=>!b.some(x=>x.id===w.id)),p=b.filter(w=>!y.some(x=>x.id===w.id)),v=b.filter(w=>y.some(x=>x.id===w.id)),{..._,isLoading:!1,loadedAt:Date.now(),matches:b,pendingMatches:void 0,cachedMatches:[..._.cachedMatches,...f.filter(w=>w.status!=="error")]}}),this.clearExpiredCache()}),[[f,"onLeave"],[p,"onEnter"],[v,"onStay"]].forEach(([_,y])=>{_.forEach(b=>{var w,x;(x=(w=this.looseRoutesById[b.routeId].options)[y])==null||x.call(w,b)})})})})}})}catch(c){Vu(c)?(r=c,this.isServer||this.navigate({...r.options,replace:!0,ignoreBlocker:!0})):Wl(c)&&(i=c),this.__store.setState(d=>({...d,statusCode:r?r.status:i?404:d.matches.some(f=>f.status==="error")?500:200,redirect:r}))}this.latestLoadPromise===o&&((l=this.commitLocationPromise)==null||l.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),s()})}),this.latestLoadPromise=o,await o;this.latestLoadPromise&&o!==this.latestLoadPromise;)await this.latestLoadPromise;let a;this.hasNotFoundMatch()?a=404:this.__store.state.matches.some(s=>s.status==="error")&&(a=500),a!==void 0&&this.__store.setState(s=>({...s,statusCode:a}))},this.startViewTransition=n=>{const r=this.shouldViewTransition??this.options.defaultViewTransition;if(delete this.shouldViewTransition,r&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let i;if(typeof r=="object"&&this.isViewTransitionTypesSupported){const o=this.latestLocation,a=this.state.resolvedLocation,s=typeof r.types=="function"?r.types(sp({resolvedLocation:a,location:o})):r.types;if(s===!1){n();return}i={update:n,types:s}}else i=n;document.startViewTransition(i)}else n()},this.updateMatch=(n,r)=>{this.startTransition(()=>{var o;const i=(o=this.state.pendingMatches)!=null&&o.some(a=>a.id===n)?"pendingMatches":this.state.matches.some(a=>a.id===n)?"matches":this.state.cachedMatches.some(a=>a.id===n)?"cachedMatches":"";i&&this.__store.setState(a=>{var s;return{...a,[i]:(s=a[i])==null?void 0:s.map(l=>l.id===n?r(l):l)}})})},this.getMatch=n=>{var i;const r=o=>o.id===n;return this.state.cachedMatches.find(r)??((i=this.state.pendingMatches)==null?void 0:i.find(r))??this.state.matches.find(r)},this.invalidate=n=>{const r=i=>{var o;return((o=n==null?void 0:n.filter)==null?void 0:o.call(n,i))??!0?{...i,invalid:!0,...n!=null&&n.forcePending||i.status==="error"?{status:"pending",error:void 0}:void 0}:i};return this.__store.setState(i=>{var o;return{...i,matches:i.matches.map(r),cachedMatches:i.cachedMatches.map(r),pendingMatches:(o=i.pendingMatches)==null?void 0:o.map(r)}}),this.shouldViewTransition=!1,this.load({sync:n==null?void 0:n.sync})},this.resolveRedirect=n=>{if(!n.options.href){const r=this.buildLocation(n.options);let i=r.url;this.origin&&i.startsWith(this.origin)&&(i=i.replace(this.origin,"")||"/"),n.options.href=r.href,n.headers.set("Location",i)}return n.headers.get("Location")||n.headers.set("Location",n.options.href),n},this.clearCache=n=>{const r=n==null?void 0:n.filter;r!==void 0?this.__store.setState(i=>({...i,cachedMatches:i.cachedMatches.filter(o=>!r(o))})):this.__store.setState(i=>({...i,cachedMatches:[]}))},this.clearExpiredCache=()=>{const n=r=>{const i=this.looseRoutesById[r.routeId];if(!i.options.loader)return!0;const o=(r.preload?i.options.preloadGcTime??this.options.defaultPreloadGcTime:i.options.gcTime??this.options.defaultGcTime)??5*60*1e3;return r.status==="error"?!0:Date.now()-r.updatedAt>=o};this.clearCache({filter:n})},this.loadRouteChunk=wq,this.preloadRoute=async n=>{const r=this.buildLocation(n);let i=this.matchRoutes(r,{throwOnError:!0,preload:!0,dest:n});const o=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(s=>s.id)),a=new Set([...o,...this.state.cachedMatches.map(s=>s.id)]);Oy(()=>{i.forEach(s=>{a.has(s.id)||this.__store.setState(l=>({...l,cachedMatches:[...l.cachedMatches,s]}))})});try{return i=await xq({router:this,matches:i,location:r,preload:!0,updateMatch:(s,l)=>{o.has(s)?i=i.map(c=>c.id===s?l(c):c):this.updateMatch(s,l)}}),i}catch(s){if(Vu(s))return s.options.reloadDocument?void 0:await this.preloadRoute({...s.options,_fromLocation:r});Wl(s)||console.error(s);return}},this.matchRoute=(n,r)=>{const i={...n,to:n.to?this.resolvePathWithBase(n.from||"",n.to):void 0,params:n.params||{},leaveParams:!0},o=this.buildLocation(i);if(r!=null&&r.pending&&this.state.status!=="pending")return!1;const a=((r==null?void 0:r.pending)===void 0?!this.state.isLoading:r.pending)?this.latestLocation:this.state.resolvedLocation||this.state.location,s=aT(a.pathname,{...r,to:o.pathname},this.parsePathnameCache);return!s||n.params&&!Rf(s,n.params,{partial:!0})?!1:s&&((r==null?void 0:r.includeSearch)??!0)?Rf(a.search,o.search,{partial:!0})?s:!1:s},this.hasNotFoundMatch=()=>this.__store.state.matches.some(n=>n.status==="notFound"||n.globalNotFound),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...t,caseSensitive:t.caseSensitive??!1,notFoundMode:t.notFoundMode??"fuzzy",stringifySearch:t.stringifySearch??$8e,parseSearch:t.parseSearch??N8e}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.__store.state}get looseRoutesById(){return this.routesById}matchRoutesInternal(t,n){var d;const{foundRoute:r,matchedRoutes:i,routeParams:o}=this.getMatchedRoutes(t.pathname,(d=n==null?void 0:n.dest)==null?void 0:d.to);let a=!1;(r?r.path!=="/"&&o["**"]:Pf(t.pathname))&&(this.options.notFoundRoute?i.push(this.options.notFoundRoute):a=!0);const s=(()=>{if(a){if(this.options.notFoundMode!=="root")for(let f=i.length-1;f>=0;f--){const p=i[f];if(p.children)return p.id}return ms}})(),l=[],c=f=>f!=null&&f.id?f.context??this.options.context??void 0:this.options.context??void 0;return i.forEach((f,p)=>{var Z,O,J;const v=l[p-1],[_,y,b]=(()=>{const D=(v==null?void 0:v.search)??t.search,Y=(v==null?void 0:v._strictSearch)??void 0;try{const F=cT(f.options.validateSearch,{...D})??void 0;return[{...D,...F},{...Y,...F},void 0]}catch(F){let H=F;if(F instanceof H4||(H=new H4(F.message,{cause:F})),n==null?void 0:n.throwOnError)throw H;return[D,{},H]}})(),w=((O=(Z=f.options).loaderDeps)==null?void 0:O.call(Z,{search:_}))??"",x=w?JSON.stringify(w):"",{interpolatedPath:S,usedParams:C}=oT({path:f.fullPath,params:o,decodeCharMap:this.pathParamsDecodeCharMap}),j=f.id+S+x,T=this.getMatch(j),E=this.state.matches.find(D=>D.routeId===f.id),$=(T==null?void 0:T._strictParams)??C;let A;if(!T){const D=((J=f.options.params)==null?void 0:J.parse)??f.options.parseParams;if(D)try{Object.assign($,D($))}catch(Y){if(A=new W8e(Y.message,{cause:Y}),n==null?void 0:n.throwOnError)throw A}}Object.assign(o,$);const M=E?"stay":"enter";let P;if(T)P={...T,cause:M,params:E?Ul(E.params,o):o,_strictParams:$,search:Ul(E?E.search:T.search,_),_strictSearch:y};else{const D=f.options.loader||f.options.beforeLoad||f.lazyFn||kq(f)?"pending":"success";P={id:j,index:p,routeId:f.id,params:E?Ul(E.params,o):o,_strictParams:$,pathname:S,updatedAt:Date.now(),search:E?Ul(E.search,_):_,_strictSearch:y,searchError:void 0,status:D,isFetching:!1,error:void 0,paramsError:A,__routeContext:void 0,_nonReactive:{loadPromise:Y0()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:M,loaderDeps:E?Ul(E.loaderDeps,w):w,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:f.options.staticData||{},fullPath:f.fullPath}}n!=null&&n.preload||(P.globalNotFound=s===f.id),P.searchError=b;const te=c(v);P.context={...te,...P.__routeContext,...P.__beforeLoadContext},l.push(P)}),l.forEach((f,p)=>{const v=this.looseRoutesById[f.routeId];if(!this.getMatch(f.id)&&(n==null?void 0:n._buildLocation)!==!0){const _=l[p-1],y=c(_);if(v.options.context){const b={deps:f.loaderDeps,params:f.params,context:y??{},location:t,navigate:w=>this.navigate({...w,_fromLocation:t}),buildLocation:this.buildLocation,cause:f.cause,abortController:f.abortController,preload:!!f.preload,matches:l};f.__routeContext=v.options.context(b)??void 0}f.context={...y,...f.__routeContext,...f.__beforeLoadContext}}}),l}}class H4 extends Error{}class W8e extends Error{}function V8e(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:e,matches:[],pendingMatches:[],cachedMatches:[],statusCode:200}}function cT(e,t){if(e==null)return{};if("~standard"in e){const n=e["~standard"].validate(t);if(n instanceof Promise)throw new H4("Async validation not supported");if(n.issues)throw new H4(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return"parse"in e?e.parse(t):typeof e=="function"?e(t):{}}function H8e({pathname:e,routePathname:t,caseSensitive:n,routesByPath:r,routesById:i,flatRoutes:o,parseCache:a}){let s={};const l=Pf(e),c=v=>{var _;return aT(l,{to:v.fullPath,caseSensitive:((_=v.options)==null?void 0:_.caseSensitive)??n,fuzzy:!0},a)};let d=t!==void 0?r[t]:void 0;if(d)s=c(d);else{let v;for(const _ of o){const y=c(_);if(y)if(_.path!=="/"&&y["**"])v||(v={foundRoute:_,routeParams:y});else{d=_,s=y;break}}!d&&v&&(d=v.foundRoute,s=v.routeParams)}let f=d||i[ms];const p=[f];for(;f.parentRoute;)f=f.parentRoute,p.push(f);return p.reverse(),{matchedRoutes:p,routeParams:s,foundRoute:d}}function Z8e({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){const i=n.reduce((s,l)=>{var d;const c=[];if("search"in l.options)(d=l.options.search)!=null&&d.middlewares&&c.push(...l.options.search.middlewares);else if(l.options.preSearchFilters||l.options.postSearchFilters){const f=({search:p,next:v})=>{let _=p;"preSearchFilters"in l.options&&l.options.preSearchFilters&&(_=l.options.preSearchFilters.reduce((b,w)=>w(b),p));const y=v(_);return"postSearchFilters"in l.options&&l.options.postSearchFilters?l.options.postSearchFilters.reduce((b,w)=>w(b),y):y};c.push(f)}if(r&&l.options.validateSearch){const f=({search:p,next:v})=>{const _=v(p);try{return{..._,...cT(l.options.validateSearch,_)??void 0}}catch{return _}};c.push(f)}return s.concat(c)},[])??[],o=({search:s})=>t.search?t.search===!0?s:op(t.search,s):{};i.push(o);const a=(s,l)=>{if(s>=i.length)return l;const c=i[s];return c({search:l,next:d=>a(s+1,d)})};return a(0,e)}const q8e="Error preloading route! \u261D\uFE0F";class Tq{constructor(t){if(this.init=n=>{var c,d;this.originalIndex=n.originalIndex;const r=this.options,i=!(r!=null&&r.path)&&!(r!=null&&r.id);this.parentRoute=(d=(c=this.options).getParentRoute)==null?void 0:d.call(c),i?this._path=ms:this.parentRoute||Qc(!1);let o=i?ms:r==null?void 0:r.path;o&&o!=="/"&&(o=iT(o));const a=(r==null?void 0:r.id)||o;let s=i?ms:ed([this.parentRoute.id===ms?"":this.parentRoute.id,a]);o===ms&&(o="/"),s!==ms&&(s=ed(["/",s]));const l=s===ms?"/":ed([this.parentRoute.fullPath,o]);this._path=o,this._id=s,this._fullPath=l,this._to=l},this.addChildren=n=>this._addFileChildren(n),this._addFileChildren=n=>(Array.isArray(n)&&(this.children=n),typeof n=="object"&&n!==null&&(this.children=Object.values(n)),this),this._addFileTypes=()=>this,this.updateLoader=n=>(Object.assign(this.options,n),this),this.update=n=>(Object.assign(this.options,n),this),this.lazy=n=>(this.lazyFn=n,this),this.options=t||{},this.isRoot=!(t!=null&&t.getParentRoute),(t==null?void 0:t.id)&&(t==null?void 0:t.path))throw new Error("Route cannot have both an 'id' and a 'path' option.")}get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}}class G8e extends Tq{constructor(t){super(t)}}function Y8e(e){return({search:t,next:n})=>{const r=n(t);return e===!0?{...t,...r}:(e.forEach(i=>{i in r||(r[i]=t[i])}),r)}}function K8e(e){return({search:t,next:n})=>{if(e===!0)return{};const r=n(t);return Array.isArray(e)?e.forEach(i=>{delete r[i]}):Object.entries(e).forEach(([i,o])=>{Rf(r[i],o)&&delete r[i]}),r}}function dT(e){const t=e.errorComponent??Z4;return u.jsx(X8e,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?m.createElement(t,{error:n,reset:r}):e.children})}class X8e extends m.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(t){return{resetKey:t.getResetKey()}}static getDerivedStateFromError(t){return{error:t}}reset(){this.setState({error:null})}componentDidUpdate(t,n){n.error&&n.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(t,n){this.props.onCatch&&this.props.onCatch(t,n)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function Z4({error:e}){const[t,n]=m.useState(!1);return u.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[u.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),u.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(r=>!r),children:t?"Hide Error":"Show Error"})]}),u.jsx("div",{style:{height:".25rem"}}),t?u.jsx("div",{children:u.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?u.jsx("code",{children:e.message}):null})}):null]})}function J8e({children:e,fallback:t=null}){return Q8e()?u.jsx(Oe.Fragment,{children:e}):u.jsx(Oe.Fragment,{children:t})}function Q8e(){return Oe.useSyncExternalStore(e9e,()=>!0,()=>!1)}function e9e(){return()=>{}}var Iq={exports:{}},Eq={};/** -* @license React -* use-sync-external-store-shim/with-selector.production.js -* -* Copyright (c) Meta Platforms, Inc. and affiliates. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/var q4=m,t9e=T4e;function n9e(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var r9e=typeof Object.is=="function"?Object.is:n9e,i9e=t9e.useSyncExternalStore,o9e=q4.useRef,a9e=q4.useEffect,s9e=q4.useMemo,l9e=q4.useDebugValue;Eq.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var o=o9e(null);if(o.current===null){var a={hasValue:!1,value:null};o.current=a}else a=o.current;o=s9e(function(){function l(v){if(!c){if(c=!0,d=v,v=r(v),i!==void 0&&a.hasValue){var _=a.value;if(i(_,v))return f=_}return f=v}if(_=f,r9e(d,v))return _;var y=r(v);return i!==void 0&&i(_,y)?(d=v,_):(d=v,f=y)}var c=!1,d,f,p=n===void 0?null:n;return[function(){return l(t())},p===null?void 0:function(){return l(p())}]},[t,n,r,i]);var s=i9e(e,o[0],o[1]);return a9e(function(){a.hasValue=!0,a.value=s},[s]),l9e(s),s},Iq.exports=Eq;var u9e=Iq.exports;function c9e(e,t=r=>r,n={}){const r=n.equal??d9e;return u9e.useSyncExternalStoreWithSelector(e.subscribe,()=>e.state,()=>e.state,t,r)}function d9e(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,i]of e)if(!t.has(r)||!Object.is(i,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();const n=Nq(e);if(n.length!==Nq(t).length)return!1;for(let r=0;r"u"?fT:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=fT,fT)}function gs(e){const t=m.useContext($q());return e==null||e.warn,t}function ua(e){const t=gs({warn:(e==null?void 0:e.router)===void 0}),n=(e==null?void 0:e.router)||t,r=m.useRef(void 0);return c9e(n.__store,i=>{if(e!=null&&e.select){if(e.structuralSharing??n.options.defaultStructuralSharing){const o=Ul(r.current,e.select(i));return r.current=o,o}return e.select(i)}return i})}const G4=m.createContext(void 0),f9e=m.createContext(void 0);function Hu(e){const t=m.useContext(e.from?f9e:G4);return ua({select:n=>{const r=n.matches.find(i=>e.from?e.from===i.routeId:i.id===t);if(Qc(!((e.shouldThrow??!0)&&!r),`Could not find ${e.from?`an active match from "${e.from}"`:"a nearest match!"}`),r!==void 0)return e.select?e.select(r):r},structuralSharing:e.structuralSharing})}function hT(e){return Hu({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function pT(e){const{select:t,...n}=e;return Hu({...n,select:r=>t?t(r.loaderDeps):r.loaderDeps})}function mT(e){return Hu({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function gT(e){return Hu({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function Q0(e){const t=gs();return m.useCallback(n=>t.navigate({...n,from:n.from??(e==null?void 0:e.from)}),[e==null?void 0:e.from,t])}const Y4=typeof window<"u"?m.useLayoutEffect:m.useEffect;function vT(e){const t=m.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function h9e(e,t,n={},r={}){m.useEffect(()=>{if(!e.current||r.disabled||typeof IntersectionObserver!="function")return;const i=new IntersectionObserver(([o])=>{t(o)},n);return i.observe(e.current),()=>{i.disconnect()}},[t,n,r.disabled,e])}function p9e(e){const t=m.useRef(null);return m.useImperativeHandle(e,()=>t.current,[]),t}function m9e(e,t){const n=gs(),[r,i]=m.useState(!1),o=m.useRef(!1),a=p9e(t),{activeProps:s,inactiveProps:l,activeOptions:c,to:d,preload:f,preloadDelay:p,hashScrollIntoView:v,replace:_,startTransition:y,resetScroll:b,viewTransition:w,children:x,target:S,disabled:C,style:j,className:T,onClick:E,onFocus:$,onMouseEnter:A,onMouseLeave:M,onTouchStart:P,ignoreBlocker:te,params:Z,search:O,hash:J,state:D,mask:Y,reloadDocument:F,unsafeRelative:H,from:ee,_fromLocation:ce,...U}=e,ae=ua({select:Qe=>Qe.location.search,structuralSharing:!0}),je=e.from,me=m.useMemo(()=>({...e,from:je}),[n,ae,je,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),ke=m.useMemo(()=>n.buildLocation({...me}),[n,me]),he=m.useMemo(()=>{if(C)return;let Qe=ke.maskedLocation?ke.maskedLocation.url:ke.url,Ke=!1;return n.origin&&(Qe.startsWith(n.origin)?Qe=n.history.createHref(Qe.replace(n.origin,""))||"/":Ke=!0),{href:Qe,external:Ke}},[C,ke.maskedLocation,ke.url,n.origin,n.history]),ue=m.useMemo(()=>{if(he!=null&&he.external)return he.href;try{return new URL(d),d}catch{}},[d,he]),re=e.reloadDocument||ue?!1:f??n.options.defaultPreload,ge=p??n.options.defaultPreloadDelay??0,$e=ua({select:Qe=>{if(ue)return!1;if(c!=null&&c.exact){if(!Qje(Qe.location.pathname,ke.pathname,n.basepath))return!1}else{const Ke=D4(Qe.location.pathname,n.basepath),De=D4(ke.pathname,n.basepath);if(!(Ke.startsWith(De)&&(Ke.length===De.length||Ke[De.length]==="/")))return!1}return((c==null?void 0:c.includeSearch)??!0)&&!Rf(Qe.location.search,ke.search,{partial:!(c!=null&&c.exact),ignoreUndefined:!(c!=null&&c.explicitUndefined)})?!1:c!=null&&c.includeHash?Qe.location.hash===ke.hash:!0}}),pe=m.useCallback(()=>{n.preloadRoute({...me}).catch(Qe=>{console.warn(Qe),console.warn(q8e)})},[n,me]),ye=m.useCallback(Qe=>{Qe!=null&&Qe.isIntersecting&&pe()},[pe]);h9e(a,ye,_9e,{disabled:!!C||re!=="viewport"}),m.useEffect(()=>{o.current||!C&&re==="render"&&(pe(),o.current=!0)},[C,pe,re]);const Se=Qe=>{const Ke=Qe.currentTarget.getAttribute("target"),De=S!==void 0?S:Ke;if(!C&&!x9e(Qe)&&!Qe.defaultPrevented&&(!De||De==="_self")&&Qe.button===0){Qe.preventDefault(),Kc.flushSync(()=>{i(!0)});const Dt=n.subscribe("onResolved",()=>{Dt(),i(!1)});n.navigate({...me,replace:_,resetScroll:b,hashScrollIntoView:v,startTransition:y,viewTransition:w,ignoreBlocker:te})}};if(ue)return{...U,ref:a,href:ue,...x&&{children:x},...S&&{target:S},...C&&{disabled:C},...j&&{style:j},...T&&{className:T},...E&&{onClick:E},...$&&{onFocus:$},...A&&{onMouseEnter:A},...M&&{onMouseLeave:M},...P&&{onTouchStart:P}};const Ce=Qe=>{C||re&&pe()},Be=Ce,Ge=Qe=>{if(!(C||!re))if(!ge)pe();else{const Ke=Qe.target;if(Dy.has(Ke))return;const De=setTimeout(()=>{Dy.delete(Ke),pe()},ge);Dy.set(Ke,De)}},xt=Qe=>{if(C||!re||!ge)return;const Ke=Qe.target,De=Dy.get(Ke);De&&(clearTimeout(De),Dy.delete(Ke))},St=$e?op(s,{})??g9e:yT,ut=$e?yT:op(l,{})??yT,ct=[T,St.className,ut.className].filter(Boolean).join(" "),bt=(j||St.style||ut.style)&&{...j,...St.style,...ut.style};return{...U,...St,...ut,href:he==null?void 0:he.href,ref:a,onClick:Ay([E,Se]),onFocus:Ay([$,Ce]),onMouseEnter:Ay([A,Ge]),onMouseLeave:Ay([M,xt]),onTouchStart:Ay([P,Be]),disabled:!!C,target:S,...bt&&{style:bt},...ct&&{className:ct},...C&&v9e,...$e&&y9e,...r&&b9e}}const yT={},g9e={className:"active"},v9e={role:"link","aria-disabled":!0},y9e={"data-status":"active","aria-current":"page"},b9e={"data-transitioning":"transitioning"},Dy=new WeakMap,_9e={rootMargin:"100px"},Ay=e=>t=>{for(const n of e)if(n){if(t.defaultPrevented)return;n(t)}},lp=m.forwardRef((e,t)=>{const{_asChild:n,...r}=e,{type:i,ref:o,...a}=m9e(r,t),s=typeof r.children=="function"?r.children({isActive:a["data-status"]==="active"}):r.children;return n===void 0&&delete a.disabled,m.createElement(n||"a",{...a,ref:o},s)});function x9e(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}let w9e=class extends Tq{constructor(e){super(e),this.useMatch=t=>Hu({select:t==null?void 0:t.select,from:this.id,structuralSharing:t==null?void 0:t.structuralSharing}),this.useRouteContext=t=>Hu({...t,from:this.id,select:n=>t!=null&&t.select?t.select(n.context):n.context}),this.useSearch=t=>gT({select:t==null?void 0:t.select,structuralSharing:t==null?void 0:t.structuralSharing,from:this.id}),this.useParams=t=>mT({select:t==null?void 0:t.select,structuralSharing:t==null?void 0:t.structuralSharing,from:this.id}),this.useLoaderDeps=t=>pT({...t,from:this.id}),this.useLoaderData=t=>hT({...t,from:this.id}),this.useNavigate=()=>Q0({from:this.fullPath}),this.Link=Oe.forwardRef((t,n)=>u.jsx(lp,{ref:n,from:this.fullPath,...t})),this.$$typeof=Symbol.for("react.memo")}};function k9e(e){return new w9e(e)}class S9e extends G8e{constructor(t){super(t),this.useMatch=n=>Hu({select:n==null?void 0:n.select,from:this.id,structuralSharing:n==null?void 0:n.structuralSharing}),this.useRouteContext=n=>Hu({...n,from:this.id,select:r=>n!=null&&n.select?n.select(r.context):r.context}),this.useSearch=n=>gT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.id}),this.useParams=n=>mT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.id}),this.useLoaderDeps=n=>pT({...n,from:this.id}),this.useLoaderData=n=>hT({...n,from:this.id}),this.useNavigate=()=>Q0({from:this.fullPath}),this.Link=Oe.forwardRef((n,r)=>u.jsx(lp,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function C9e(e){return new S9e(e)}function up(e){return typeof e=="object"?new Mq(e,{silent:!0}).createRoute(e):new Mq(e,{silent:!0}).createRoute}class Mq{constructor(t,n){this.path=t,this.createRoute=r=>{this.silent;const i=k9e(r);return i.isRoot=!1,i},this.silent=n==null?void 0:n.silent}}class Lq{constructor(t){this.useMatch=n=>Hu({select:n==null?void 0:n.select,from:this.options.id,structuralSharing:n==null?void 0:n.structuralSharing}),this.useRouteContext=n=>Hu({from:this.options.id,select:r=>n!=null&&n.select?n.select(r.context):r.context}),this.useSearch=n=>gT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.options.id}),this.useParams=n=>mT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.options.id}),this.useLoaderDeps=n=>pT({...n,from:this.options.id}),this.useLoaderData=n=>hT({...n,from:this.options.id}),this.useNavigate=()=>{const n=gs();return Q0({from:n.routesById[this.options.id].fullPath})},this.options=t,this.$$typeof=Symbol.for("react.memo")}}function Rq(e){return typeof e=="object"?new Lq(e):t=>new Lq({id:e,...t})}function j9e(){const e=gs(),t=m.useRef({router:e,mounted:!1}),[n,r]=m.useState(!1),{hasPendingMatches:i,isLoading:o}=ua({select:f=>({isLoading:f.isLoading,hasPendingMatches:f.matches.some(p=>p.status==="pending")}),structuralSharing:!0}),a=vT(o),s=o||n||i,l=vT(s),c=o||i,d=vT(c);return e.startTransition=f=>{r(!0),m.startTransition(()=>{f(),r(!1)})},m.useEffect(()=>{const f=e.history.subscribe(e.load),p=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return Pf(e.latestLocation.href)!==Pf(p.href)&&e.commitLocation({...p,replace:!0}),()=>{f()}},[e,e.history]),Y4(()=>{typeof window<"u"&&e.ssr||t.current.router===e&&t.current.mounted||(t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(f){console.error(f)}})())},[e]),Y4(()=>{a&&!o&&e.emit({type:"onLoad",...sp(e.state)})},[a,e,o]),Y4(()=>{d&&!c&&e.emit({type:"onBeforeRouteMount",...sp(e.state)})},[c,d,e]),Y4(()=>{l&&!s&&(e.emit({type:"onResolved",...sp(e.state)}),e.__store.setState(f=>({...f,status:"idle",resolvedLocation:f.location})),T8e(e))},[s,l,e]),null}function T9e(e){const t=ua({select:n=>`not-found-${n.location.pathname}-${n.status}`});return u.jsx(dT,{getResetKey:()=>t,onCatch:(n,r)=>{var i;if(Wl(n))(i=e.onCatch)==null||i.call(e,n,r);else throw n},errorComponent:({error:n})=>{var r;if(Wl(n))return(r=e.fallback)==null?void 0:r.call(e,n);throw n},children:e.children})}function I9e(){return u.jsx("p",{children:"Not Found"})}function eg(e){return u.jsx(u.Fragment,{children:e.children})}function Oq(e,t,n){return t.options.notFoundComponent?u.jsx(t.options.notFoundComponent,{data:n}):e.options.defaultNotFoundComponent?u.jsx(e.options.defaultNotFoundComponent,{data:n}):u.jsx(I9e,{})}function E9e({children:e}){var n;const t=gs();return t.isServer?u.jsx("script",{nonce:(n=t.options.ssr)==null?void 0:n.nonce,className:"$tsr",dangerouslySetInnerHTML:{__html:[e].filter(Boolean).join(` -`)+";$_TSR.c()"}}):null}function N9e(){const e=gs();if(!e.isScrollRestoring||!e.isServer||typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation}))return null;const t=(e.options.getScrollRestorationKey||sT)(e.latestLocation),n=t!==sT(e.latestLocation)?t:void 0,r={storageKey:A4,shouldScrollRestoration:!0};return n&&(r.key=n),u.jsx(E9e,{children:`(${mq.toString()})(${JSON.stringify(r)})`})}const Pq=m.memo(function({matchId:e}){var b,w;const t=gs(),n=ua({select:x=>{const S=x.matches.find(C=>C.id===e);return Qc(S),{routeId:S.routeId,ssr:S.ssr,_displayPending:S._displayPending}},structuralSharing:!0}),r=t.routesById[n.routeId],i=r.options.pendingComponent??t.options.defaultPendingComponent,o=i?u.jsx(i,{}):null,a=r.options.errorComponent??t.options.defaultErrorComponent,s=r.options.onCatch??t.options.defaultOnCatch,l=r.isRoot?r.options.notFoundComponent??((b=t.options.notFoundRoute)==null?void 0:b.options.component):r.options.notFoundComponent,c=n.ssr===!1||n.ssr==="data-only",d=(!r.isRoot||r.options.wrapInSuspense||c)&&(r.options.wrapInSuspense??i??(((w=r.options.errorComponent)==null?void 0:w.preload)||c))?m.Suspense:eg,f=a?dT:eg,p=l?T9e:eg,v=ua({select:x=>x.loadedAt}),_=ua({select:x=>{var C;const S=x.matches.findIndex(j=>j.id===e);return(C=x.matches[S-1])==null?void 0:C.routeId}}),y=r.isRoot?r.options.shellComponent??eg:eg;return u.jsxs(y,{children:[u.jsx(G4.Provider,{value:e,children:u.jsx(d,{fallback:o,children:u.jsx(f,{getResetKey:()=>v,errorComponent:a||Z4,onCatch:(x,S)=>{if(Wl(x))throw x;s==null||s(x,S)},children:u.jsx(p,{fallback:x=>{if(!l||x.routeId&&x.routeId!==n.routeId||!x.routeId&&!r.isRoot)throw x;return m.createElement(l,x)},children:c||n._displayPending?u.jsx(J8e,{fallback:o,children:u.jsx(zq,{matchId:e})}):u.jsx(zq,{matchId:e})})})})}),_===ms&&t.options.scrollRestoration?u.jsxs(u.Fragment,{children:[u.jsx($9e,{}),u.jsx(N9e,{})]}):null]})});function $9e(){const e=gs(),t=m.useRef(void 0);return u.jsx("script",{suppressHydrationWarning:!0,ref:n=>{n&&(t.current===void 0||t.current.href!==e.latestLocation.href)&&(e.emit({type:"onRendered",...sp(e.state)}),t.current=e.latestLocation)}},e.latestLocation.state.__TSR_key)}const zq=m.memo(function({matchId:e}){var s,l,c,d;const t=gs(),{match:n,key:r,routeId:i}=ua({select:f=>{var y;const p=f.matches.find(b=>b.id===e),v=p.routeId,_=(y=t.routesById[v].options.remountDeps??t.options.defaultRemountDeps)==null?void 0:y({routeId:v,loaderDeps:p.loaderDeps,params:p._strictParams,search:p._strictSearch});return{key:_?JSON.stringify(_):void 0,routeId:v,match:{id:p.id,status:p.status,error:p.error,_forcePending:p._forcePending,_displayPending:p._displayPending}}},structuralSharing:!0}),o=t.routesById[i],a=m.useMemo(()=>{const f=o.options.component??t.options.defaultComponent;return f?u.jsx(f,{},r):u.jsx(Dq,{})},[r,o.options.component,t.options.defaultComponent]);if(n._displayPending)throw(s=t.getMatch(n.id))==null?void 0:s._nonReactive.displayPendingPromise;if(n._forcePending)throw(l=t.getMatch(n.id))==null?void 0:l._nonReactive.minPendingPromise;if(n.status==="pending"){const f=o.options.pendingMinMs??t.options.defaultPendingMinMs;if(f){const p=t.getMatch(n.id);if(p&&!p._nonReactive.minPendingPromise&&!t.isServer){const v=Y0();p._nonReactive.minPendingPromise=v,setTimeout(()=>{v.resolve(),p._nonReactive.minPendingPromise=void 0},f)}}throw(c=t.getMatch(n.id))==null?void 0:c._nonReactive.loadPromise}if(n.status==="notFound")return Qc(Wl(n.error)),Oq(t,o,n.error);if(n.status==="redirected")throw Qc(Vu(n.error)),(d=t.getMatch(n.id))==null?void 0:d._nonReactive.loadPromise;if(n.status==="error"){if(t.isServer){const f=(o.options.errorComponent??t.options.defaultErrorComponent)||Z4;return u.jsx(f,{error:n.error,reset:void 0,info:{componentStack:""}})}throw n.error}return a}),Dq=m.memo(function(){const e=gs(),t=m.useContext(G4),n=ua({select:l=>{var c;return(c=l.matches.find(d=>d.id===t))==null?void 0:c.routeId}}),r=e.routesById[n],i=ua({select:l=>{const c=l.matches.find(d=>d.id===t);return Qc(c),c.globalNotFound}}),o=ua({select:l=>{var f;const c=l.matches,d=c.findIndex(p=>p.id===t);return(f=c[d+1])==null?void 0:f.id}}),a=e.options.defaultPendingComponent?u.jsx(e.options.defaultPendingComponent,{}):null;if(i)return Oq(e,r,void 0);if(!o)return null;const s=u.jsx(Pq,{matchId:o});return n===ms?u.jsx(m.Suspense,{fallback:a,children:s}):s});function M9e(){const e=gs(),t=e.routesById[ms].options.pendingComponent??e.options.defaultPendingComponent,n=t?u.jsx(t,{}):null,r=e.isServer||typeof document<"u"&&e.ssr?eg:m.Suspense,i=u.jsxs(r,{fallback:n,children:[!e.isServer&&u.jsx(j9e,{}),u.jsx(L9e,{})]});return e.options.InnerWrap?u.jsx(e.options.InnerWrap,{children:i}):i}function L9e(){const e=gs(),t=ua({select:i=>{var o;return(o=i.matches[0])==null?void 0:o.id}}),n=ua({select:i=>i.loadedAt}),r=t?u.jsx(Pq,{matchId:t}):null;return u.jsx(G4.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:u.jsx(dT,{getResetKey:()=>n,errorComponent:Z4,onCatch:i=>{i.message||i.toString()},children:r})})}const R9e=e=>new O9e(e);class O9e extends U8e{constructor(t){super(t)}}typeof globalThis<"u"?(globalThis.createFileRoute=up,globalThis.createLazyFileRoute=Rq):typeof window<"u"&&(window.createFileRoute=up,window.createLazyFileRoute=Rq);function P9e({router:e,children:t,...n}){Object.keys(n).length>0&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});const r=$q(),i=u.jsx(r.Provider,{value:e,children:t});return e.options.Wrap?u.jsx(e.options.Wrap,{children:i}):i}function z9e({router:e,...t}){return u.jsx(P9e,{router:e,...t,children:u.jsx(M9e,{})})}function D9e(e){return ua({select:t=>t.location})}const tg={};function Aq(e){return"init"in e}function bT(e){return!!e.write}function Fq(e){return"v"in e||"e"in e}function K4(e){if("e"in e)throw e.e;if((tg?"production":void 0)!=="production"&&!("v"in e))throw new Error("[Bug] atom state is not initialized");return e.v}const X4=new WeakMap;function Bq(e){var t;return J4(e)&&!!((t=X4.get(e))!=null&&t[0])}function A9e(e){const t=X4.get(e);t!=null&&t[0]&&(t[0]=!1,t[1].forEach(n=>n()))}function _T(e,t){let n=X4.get(e);if(!n){n=[!0,new Set],X4.set(e,n);const r=()=>{n[0]=!1};e.then(r,r)}n[1].add(t)}function J4(e){return typeof(e==null?void 0:e.then)=="function"}function Uq(e,t,n){if(!n.p.has(e)){n.p.add(e);const r=()=>n.p.delete(e);t.then(r,r)}}function Wq(e,t,n){var r;const i=new Set;for(const o of((r=n.get(e))==null?void 0:r.t)||[])n.has(o)&&i.add(o);for(const o of t.p)i.add(o);return i}const F9e=(e,t,...n)=>t.read(...n),B9e=(e,t,...n)=>t.write(...n),U9e=(e,t)=>{var n;return(n=t.unstable_onInit)==null?void 0:n.call(t,e)},W9e=(e,t,n)=>{var r;return(r=t.onMount)==null?void 0:r.call(t,n)},V9e=(e,t)=>{const n=Fo(e),r=n[0],i=n[9];if((tg?"production":void 0)!=="production"&&!t)throw new Error("Atom is undefined or null");let o=r.get(t);return o||(o={d:new Map,p:new Set,n:0},r.set(t,o),i==null||i(e,t)),o},H9e=e=>{const t=Fo(e),n=t[1],r=t[3],i=t[4],o=t[5],a=t[6],s=t[13],l=[],c=d=>{try{d()}catch(f){l.push(f)}};do{a.f&&c(a.f);const d=new Set,f=d.add.bind(d);r.forEach(p=>{var v;return(v=n.get(p))==null?void 0:v.l.forEach(f)}),r.clear(),o.forEach(f),o.clear(),i.forEach(f),i.clear(),d.forEach(c),r.size&&s(e)}while(r.size||o.size||i.size);if(l.length)throw new AggregateError(l)},Z9e=e=>{const t=Fo(e),n=t[1],r=t[2],i=t[3],o=t[11],a=t[14],s=t[17],l=[],c=new WeakSet,d=new WeakSet,f=Array.from(i);for(;f.length;){const p=f[f.length-1],v=o(e,p);if(d.has(p)){f.pop();continue}if(c.has(p)){if(r.get(p)===v.n)l.push([p,v]);else if((tg?"production":void 0)!=="production"&&r.has(p))throw new Error("[Bug] invalidated atom exists");d.add(p),f.pop();continue}c.add(p);for(const _ of Wq(p,v,n))c.has(_)||f.push(_)}for(let p=l.length-1;p>=0;--p){const[v,_]=l[p];let y=!1;for(const b of _.d.keys())if(b!==v&&i.has(b)){y=!0;break}y&&(a(e,v),s(e,v)),r.delete(v)}},q9e=(e,t)=>{var n,r;const i=Fo(e),o=i[1],a=i[2],s=i[3],l=i[6],c=i[7],d=i[11],f=i[12],p=i[13],v=i[14],_=i[16],y=i[17],b=d(e,t);if(Fq(b)&&(o.has(t)&&a.get(t)!==b.n||Array.from(b.d).every(([$,A])=>v(e,$).n===A)))return b;b.d.clear();let w=!0;function x(){o.has(t)&&(y(e,t),p(e),f(e))}function S($){var A;if($===t){const P=d(e,$);if(!Fq(P))if(Aq($))Q4(e,$,$.init);else throw new Error("no atom init");return K4(P)}const M=v(e,$);try{return K4(M)}finally{b.d.set($,M.n),Bq(b.v)&&Uq(t,b.v,M),(A=o.get($))==null||A.t.add(t),w||x()}}let C,j;const T={get signal(){return C||(C=new AbortController),C.signal},get setSelf(){return(tg?"production":void 0)!=="production"&&!bT(t)&&console.warn("setSelf function cannot be used with read-only atom"),!j&&bT(t)&&(j=(...$)=>{if((tg?"production":void 0)!=="production"&&w&&console.warn("setSelf function cannot be called in sync"),!w)try{return _(e,t,...$)}finally{p(e),f(e)}}),j}},E=b.n;try{const $=c(e,t,S,T);return Q4(e,t,$),J4($)&&(_T($,()=>C==null?void 0:C.abort()),$.then(x,x)),(n=l.r)==null||n.call(l,t),b}catch($){return delete b.v,b.e=$,++b.n,b}finally{w=!1,E!==b.n&&a.get(t)===E&&(a.set(t,b.n),s.add(t),(r=l.c)==null||r.call(l,t))}},G9e=(e,t)=>{const n=Fo(e),r=n[1],i=n[2],o=n[11],a=[t];for(;a.length;){const s=a.pop(),l=o(e,s);for(const c of Wq(s,l,r)){const d=o(e,c);i.set(c,d.n),a.push(c)}}},Vq=(e,t,...n)=>{const r=Fo(e),i=r[3],o=r[6],a=r[8],s=r[11],l=r[12],c=r[13],d=r[14],f=r[15],p=r[17];let v=!0;const _=b=>K4(d(e,b)),y=(b,...w)=>{var x;const S=s(e,b);try{if(b===t){if(!Aq(b))throw new Error("atom not writable");const C=S.n,j=w[0];Q4(e,b,j),p(e,b),C!==S.n&&(i.add(b),(x=o.c)==null||x.call(o,b),f(e,b));return}else return Vq(e,b,...w)}finally{v||(c(e),l(e))}};try{return a(e,t,_,y,...n)}finally{v=!1}},Y9e=(e,t)=>{var n;const r=Fo(e),i=r[1],o=r[3],a=r[6],s=r[11],l=r[15],c=r[18],d=r[19],f=s(e,t),p=i.get(t);if(p&&!Bq(f.v)){for(const[v,_]of f.d)if(!p.d.has(v)){const y=s(e,v);c(e,v).t.add(t),p.d.add(v),_!==y.n&&(o.add(v),(n=a.c)==null||n.call(a,v),l(e,v))}for(const v of p.d||[])if(!f.d.has(v)){p.d.delete(v);const _=d(e,v);_==null||_.t.delete(t)}}},Hq=(e,t)=>{var n;const r=Fo(e),i=r[1],o=r[4],a=r[6],s=r[10],l=r[11],c=r[12],d=r[13],f=r[14],p=r[16],v=l(e,t);let _=i.get(t);if(!_){f(e,t);for(const y of v.d.keys())Hq(e,y).t.add(t);if(_={l:new Set,d:new Set(v.d.keys()),t:new Set},i.set(t,_),(n=a.m)==null||n.call(a,t),bT(t)){const y=()=>{let b=!0;const w=(...x)=>{try{return p(e,t,...x)}finally{b||(d(e),c(e))}};try{const x=s(e,t,w);x&&(_.u=()=>{b=!0;try{x()}finally{b=!1}})}finally{b=!1}};o.add(y)}}return _},K9e=(e,t)=>{var n;const r=Fo(e),i=r[1],o=r[5],a=r[6],s=r[11],l=r[19],c=s(e,t);let d=i.get(t);if(d&&!d.l.size&&!Array.from(d.t).some(f=>{var p;return(p=i.get(f))==null?void 0:p.d.has(t)})){d.u&&o.add(d.u),d=void 0,i.delete(t),(n=a.u)==null||n.call(a,t);for(const f of c.d.keys()){const p=l(e,f);p==null||p.t.delete(t)}return}return d},Q4=(e,t,n)=>{const r=Fo(e)[11],i=r(e,t),o="v"in i,a=i.v;if(J4(n))for(const s of i.d.keys())Uq(t,n,r(e,s));i.v=n,delete i.e,(!o||!Object.is(a,i.v))&&(++i.n,J4(a)&&A9e(a))},X9e=(e,t)=>{const n=Fo(e)[14];return K4(n(e,t))},J9e=(e,t,...n)=>{const r=Fo(e),i=r[12],o=r[13],a=r[16];try{return a(e,t,...n)}finally{o(e),i(e)}},Q9e=(e,t,n)=>{const r=Fo(e),i=r[12],o=r[18],a=r[19],s=o(e,t).l;return s.add(n),i(e),()=>{s.delete(n),a(e,t),i(e)}},Zq=new WeakMap,Fo=e=>{const t=Zq.get(e);if((tg?"production":void 0)!=="production"&&!t)throw new Error("Store must be created by buildStore to read its building blocks");return t};function e7e(...e){const t={get(r){const i=Fo(t)[21];return i(t,r)},set(r,...i){const o=Fo(t)[22];return o(t,r,...i)},sub(r,i){const o=Fo(t)[23];return o(t,r,i)}},n=[new WeakMap,new WeakMap,new WeakMap,new Set,new Set,new Set,{},F9e,B9e,U9e,W9e,V9e,H9e,Z9e,q9e,G9e,Vq,Y9e,Hq,K9e,Q4,X9e,J9e,Q9e,void 0].map((r,i)=>e[i]||r);return Zq.set(t,Object.freeze(n)),t}const qq={};let t7e=0;function fe(e,t){const n=`atom${++t7e}`,r={toString(){return(qq?"production":void 0)!=="production"&&this.debugLabel?n+":"+this.debugLabel:n}};return typeof e=="function"?r.read=e:(r.init=e,r.read=n7e,r.write=r7e),t&&(r.write=t),r}function n7e(e){return e(this)}function r7e(e,t,n){return t(this,typeof n=="function"?n(e(this)):n)}function i7e(){return e7e()}let Fy;function ca(){return Fy||(Fy=i7e(),(qq?"production":void 0)!=="production"&&(globalThis.__JOTAI_DEFAULT_STORE__||(globalThis.__JOTAI_DEFAULT_STORE__=Fy),globalThis.__JOTAI_DEFAULT_STORE__!==Fy&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"))),Fy}const o7e={},a7e=m.createContext(void 0);function Gq(e){return m.useContext(a7e)||ca()}const xT=e=>typeof(e==null?void 0:e.then)=="function",wT=e=>{e.status||(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}))},s7e=Oe.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(wT(e),e)}),kT=new WeakMap,Yq=(e,t)=>{let n=kT.get(e);return n||(n=new Promise((r,i)=>{let o=e;const a=c=>d=>{o===c&&r(d)},s=c=>d=>{o===c&&i(d)},l=()=>{try{const c=t();xT(c)?(kT.set(c,n),o=c,c.then(a(c),s(c)),_T(c,l)):r(c)}catch(c){i(c)}};e.then(a(e),s(e)),_T(e,l)}),kT.set(e,n)),n};function X(e,t){const{delay:n,unstable_promiseStatus:r=!Oe.use}={},i=Gq(),[[o,a,s],l]=m.useReducer(d=>{const f=i.get(e);return Object.is(d[0],f)&&d[1]===i&&d[2]===e?d:[f,i,e]},void 0,()=>[i.get(e),i,e]);let c=o;if((a!==i||s!==e)&&(l(),c=i.get(e)),m.useEffect(()=>{const d=i.sub(e,()=>{if(r)try{const f=i.get(e);xT(f)&&wT(Yq(f,()=>i.get(e)))}catch{}if(typeof n=="number"){setTimeout(l,n);return}l()});return l(),d},[i,e,n,r]),m.useDebugValue(c),xT(c)){const d=Yq(c,()=>i.get(e));return r&&wT(d),s7e(d)}return c}function Ee(e,t){const n=Gq();return m.useCallback((...r)=>{if((o7e?"production":void 0)!=="production"&&!("write"in e))throw new Error("not writable atom");return n.set(e,...r)},[n,e])}function Vl(e,t){return[X(e),Ee(e)]}var Kq=Symbol.for("immer-nothing"),Xq=Symbol.for("immer-draftable"),Vn=Symbol.for("immer-state");function rl(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var By=Object.getPrototypeOf;function ng(e){return!!e&&!!e[Vn]}function td(e){var t;return e?Qq(e)||Array.isArray(e)||!!e[Xq]||!!((t=e.constructor)!=null&&t[Xq])||Wy(e)||t3(e):!1}var l7e=Object.prototype.constructor.toString(),Jq=new WeakMap;function Qq(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;const n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(n===Object)return!0;if(typeof n!="function")return!1;let r=Jq.get(n);return r===void 0&&(r=Function.toString.call(n),Jq.set(n,r)),r===l7e}function Uy(e,t,n=!0){e3(e)===0?(n?Reflect.ownKeys(e):Object.keys(e)).forEach(r=>{t(r,e[r],e)}):e.forEach((r,i)=>t(i,r,e))}function e3(e){const t=e[Vn];return t?t.type_:Array.isArray(e)?1:Wy(e)?2:t3(e)?3:0}function ST(e,t){return e3(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function eG(e,t,n){const r=e3(e);r===2?e.set(t,n):r===3?e.add(n):e[t]=n}function u7e(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function Wy(e){return e instanceof Map}function t3(e){return e instanceof Set}function io(e){return e.copy_||e.base_}function CT(e,t){if(Wy(e))return new Map(e);if(t3(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=Qq(e);if(t===!0||t==="class_only"&&!n){const r=Object.getOwnPropertyDescriptors(e);delete r[Vn];let i=Reflect.ownKeys(r);for(let o=0;o1&&Object.defineProperties(e,{set:n3,add:n3,clear:n3,delete:n3}),Object.freeze(e),t&&Object.values(e).forEach(n=>jT(n,!0))),e}function c7e(){rl(2)}var n3={value:c7e};function r3(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var TT={};function cp(e){const t=TT[e];return t||rl(0,e),t}function d7e(e,t){TT[e]||(TT[e]=t)}var Vy;function i3(){return Vy}function f7e(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function tG(e,t){t&&(cp("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function IT(e){ET(e),e.drafts_.forEach(h7e),e.drafts_=null}function ET(e){e===Vy&&(Vy=e.parent_)}function nG(e){return Vy=f7e(Vy,e)}function h7e(e){const t=e[Vn];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function rG(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return e!==void 0&&e!==n?(n[Vn].modified_&&(IT(t),rl(4)),td(e)&&(e=o3(t,e),t.parent_||a3(t,e)),t.patches_&&cp("Patches").generateReplacementPatches_(n[Vn].base_,e,t.patches_,t.inversePatches_)):e=o3(t,n,[]),IT(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==Kq?e:void 0}function o3(e,t,n){if(r3(t))return t;const r=e.immer_.shouldUseStrictIteration(),i=t[Vn];if(!i)return Uy(t,(o,a)=>iG(e,i,t,o,a,n),r),t;if(i.scope_!==e)return t;if(!i.modified_)return a3(e,i.base_,!0),i.base_;if(!i.finalized_){i.finalized_=!0,i.scope_.unfinalizedDrafts_--;const o=i.copy_;let a=o,s=!1;i.type_===3&&(a=new Set(o),o.clear(),s=!0),Uy(a,(l,c)=>iG(e,i,o,l,c,n,s),r),a3(e,o,!1),n&&e.patches_&&cp("Patches").generatePatches_(i,n,e.patches_,e.inversePatches_)}return i.copy_}function iG(e,t,n,r,i,o,a){if(i==null||typeof i!="object"&&!a)return;const s=r3(i);if(!(s&&!a)){if(ng(i)){const l=o&&t&&t.type_!==3&&!ST(t.assigned_,r)?o.concat(r):void 0,c=o3(e,i,l);if(eG(n,r,c),ng(c))e.canAutoFreeze_=!1;else return}else a&&n.add(i);if(td(i)&&!s){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[r]===i&&s)return;o3(e,i),(!t||!t.scope_.parent_)&&typeof r!="symbol"&&(Wy(n)?n.has(r):Object.prototype.propertyIsEnumerable.call(n,r))&&a3(e,i)}}}function a3(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&jT(t,n)}function p7e(e,t){const n=Array.isArray(e),r={type_:n?1:0,scope_:t?t.scope_:i3(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=r,o=NT;n&&(i=[r],o=Hy);const{revoke:a,proxy:s}=Proxy.revocable(i,o);return r.draft_=s,r.revoke_=a,s}var NT={get(e,t){if(t===Vn)return e;const n=io(e);if(!ST(n,t))return m7e(e,n,t);const r=n[t];return e.finalized_||!td(r)?r:r===$T(e.base_,t)?(MT(e),e.copy_[t]=Zy(r,e)):r},has(e,t){return t in io(e)},ownKeys(e){return Reflect.ownKeys(io(e))},set(e,t,n){const r=oG(io(e),t);if(r!=null&&r.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){const i=$T(io(e),t),o=i==null?void 0:i[Vn];if(o&&o.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(u7e(n,i)&&(n!==void 0||ST(e.base_,t)))return!0;MT(e),nd(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_[t]=!0),!0},deleteProperty(e,t){return $T(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,MT(e),nd(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const n=io(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:r.enumerable,value:n[t]}},defineProperty(){rl(11)},getPrototypeOf(e){return By(e.base_)},setPrototypeOf(){rl(12)}},Hy={};Uy(NT,(e,t)=>{Hy[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),Hy.deleteProperty=function(e,t){return Hy.set.call(this,e,t,void 0)},Hy.set=function(e,t,n){return NT.set.call(this,e[0],t,n,e[0])};function $T(e,t){const n=e[Vn];return(n?io(n):e)[t]}function m7e(e,t,n){var i;const r=oG(t,n);return r?"value"in r?r.value:(i=r.get)==null?void 0:i.call(e.draft_):void 0}function oG(e,t){if(!(t in e))return;let n=By(e);for(;n;){const r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=By(n)}}function nd(e){e.modified_||(e.modified_=!0,e.parent_&&nd(e.parent_))}function MT(e){e.copy_||(e.copy_=CT(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var g7e=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(t,n,r)=>{if(typeof t=="function"&&typeof n!="function"){const o=n;n=t;const a=this;return function(s=o,...l){return a.produce(s,c=>n.call(this,c,...l))}}typeof n!="function"&&rl(6),r!==void 0&&typeof r!="function"&&rl(7);let i;if(td(t)){const o=nG(this),a=Zy(t,void 0);let s=!0;try{i=n(a),s=!1}finally{s?IT(o):ET(o)}return tG(o,r),rG(i,o)}else if(!t||typeof t!="object"){if(i=n(t),i===void 0&&(i=t),i===Kq&&(i=void 0),this.autoFreeze_&&jT(i,!0),r){const o=[],a=[];cp("Patches").generateReplacementPatches_(t,i,o,a),r(o,a)}return i}else rl(1,t)},this.produceWithPatches=(t,n)=>{if(typeof t=="function")return(o,...a)=>this.produceWithPatches(o,s=>t(s,...a));let r,i;return[this.produce(t,n,(o,a)=>{r=o,i=a}),r,i]},typeof(e==null?void 0:e.autoFreeze)=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof(e==null?void 0:e.useStrictShallowCopy)=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),typeof(e==null?void 0:e.useStrictIteration)=="boolean"&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){td(e)||rl(8),ng(e)&&(e=v7e(e));const t=nG(this),n=Zy(e,void 0);return n[Vn].isManual_=!0,ET(t),n}finishDraft(e,t){const n=e&&e[Vn];(!n||!n.isManual_)&&rl(9);const{scope_:r}=n;return tG(r,t),rG(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const i=t[n];if(i.path.length===0&&i.op==="replace"){e=i.value;break}}n>-1&&(t=t.slice(n+1));const r=cp("Patches").applyPatches_;return ng(e)?r(e,t):this.produce(e,i=>r(i,t))}};function Zy(e,t){const n=Wy(e)?cp("MapSet").proxyMap_(e,t):t3(e)?cp("MapSet").proxySet_(e,t):p7e(e,t);return(t?t.scope_:i3()).drafts_.push(n),n}function v7e(e){return ng(e)||rl(10,e),aG(e)}function aG(e){if(!td(e)||r3(e))return e;const t=e[Vn];let n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=CT(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=CT(e,!0);return Uy(n,(i,o)=>{eG(n,i,aG(o))},r),t&&(t.finalized_=!1),n}function y7e(){class e extends Map{constructor(l,c){super(),this[Vn]={type_:2,parent_:c,scope_:c?c.scope_:i3(),modified_:!1,finalized_:!1,copy_:void 0,assigned_:void 0,base_:l,draft_:this,isManual_:!1,revoked_:!1}}get size(){return io(this[Vn]).size}has(l){return io(this[Vn]).has(l)}set(l,c){const d=this[Vn];return a(d),(!io(d).has(l)||io(d).get(l)!==c)&&(n(d),nd(d),d.assigned_.set(l,!0),d.copy_.set(l,c),d.assigned_.set(l,!0)),this}delete(l){if(!this.has(l))return!1;const c=this[Vn];return a(c),n(c),nd(c),c.base_.has(l)?c.assigned_.set(l,!1):c.assigned_.delete(l),c.copy_.delete(l),!0}clear(){const l=this[Vn];a(l),io(l).size&&(n(l),nd(l),l.assigned_=new Map,Uy(l.base_,c=>{l.assigned_.set(c,!1)}),l.copy_.clear())}forEach(l,c){const d=this[Vn];io(d).forEach((f,p,v)=>{l.call(c,this.get(p),p,this)})}get(l){const c=this[Vn];a(c);const d=io(c).get(l);if(c.finalized_||!td(d)||d!==c.base_.get(l))return d;const f=Zy(d,c);return n(c),c.copy_.set(l,f),f}keys(){return io(this[Vn]).keys()}values(){const l=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{const c=l.next();return c.done?c:{done:!1,value:this.get(c.value)}}}}entries(){const l=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{const c=l.next();if(c.done)return c;const d=this.get(c.value);return{done:!1,value:[c.value,d]}}}}[Symbol.iterator](){return this.entries()}}function t(s,l){return new e(s,l)}function n(s){s.copy_||(s.assigned_=new Map,s.copy_=new Map(s.base_))}class r extends Set{constructor(l,c){super(),this[Vn]={type_:3,parent_:c,scope_:c?c.scope_:i3(),modified_:!1,finalized_:!1,copy_:void 0,base_:l,draft_:this,drafts_:new Map,revoked_:!1,isManual_:!1}}get size(){return io(this[Vn]).size}has(l){const c=this[Vn];return a(c),c.copy_?!!(c.copy_.has(l)||c.drafts_.has(l)&&c.copy_.has(c.drafts_.get(l))):c.base_.has(l)}add(l){const c=this[Vn];return a(c),this.has(l)||(o(c),nd(c),c.copy_.add(l)),this}delete(l){if(!this.has(l))return!1;const c=this[Vn];return a(c),o(c),nd(c),c.copy_.delete(l)||(c.drafts_.has(l)?c.copy_.delete(c.drafts_.get(l)):!1)}clear(){const l=this[Vn];a(l),io(l).size&&(o(l),nd(l),l.copy_.clear())}values(){const l=this[Vn];return a(l),o(l),l.copy_.values()}entries(){const l=this[Vn];return a(l),o(l),l.copy_.entries()}keys(){return this.values()}[Symbol.iterator](){return this.values()}forEach(l,c){const d=this.values();let f=d.next();for(;!f.done;)l.call(c,f.value,f.value,this),f=d.next()}}function i(s,l){return new r(s,l)}function o(s){s.copy_||(s.copy_=new Set,s.base_.forEach(l=>{if(td(l)){const c=Zy(l,s);s.drafts_.set(l,c),s.copy_.add(c)}else s.copy_.add(l)}))}function a(s){s.revoked_&&rl(3,JSON.stringify(io(s)))}d7e("MapSet",{proxyMap_:t,proxySet_:i})}var b7e=new g7e,sG=b7e.produce;function Co(e){const t=fe(e,(n,r,i)=>r(t,sG(n(t),typeof i=="function"?i:()=>i)));return t}function lG(e){const t=fe(e);let n;return fe(r=>r(t),(r,i,o)=>{n!==void 0&&cancelAnimationFrame(n),n=requestAnimationFrame(()=>{n=void 0,i(t,o)})})}function _7e(e=6e4){const t=Co({});return n=>fe(r=>n==null?!1:!!r(t)[n],(r,i)=>{if(n==null)return;const o=setTimeout(()=>{i(t,a=>{delete a[n]})},e);i(t,a=>{a[n]&&clearTimeout(a[n]),a[n]=o})})}const LT={values:[],history:[]},uG=fe(void 0),qy=fe(void 0),cG=fe(void 0),dp=fe(void 0),dG=fe(void 0),rg=fe(void 0),s3=fe(void 0),fG=fe(void 0),hG=fe(void 0),pG=fe(void 0),mG=fe(void 0),fp=fe(void 0),gG=fe(void 0);fe(void 0);const x7e=fe(void 0),vG=fe(void 0),RT=fe(void 0),yG=fe(void 0),Gy=fe(void 0),bG=fe(void 0),_G=fe(void 0),OT=fe(void 0),PT=fe(void 0),xG=fe(LT),wG=fe(LT),kG=lG(void 0),SG=fe(void 0),CG=fe(void 0),l3=fe(void 0),jG=fe(LT),Hl=fe(void 0),Zu=fe(void 0),TG=lG(void 0),w7e=["num_push_messages_rx_success","num_push_messages_rx_failure","num_push_entries_rx_success","num_push_entries_rx_failure","num_push_entries_rx_duplicate","num_pull_response_messages_rx_success","num_pull_response_messages_rx_failure","num_pull_response_entries_rx_success","num_pull_response_entries_rx_failure","num_pull_response_entries_rx_duplicate"],k7e=Object.fromEntries(w7e.map(e=>[e,0])),IG=fe({value:k7e,history:[]}),EG=fe(void 0),NG=fe(void 0),$G=fe(void 0),MG=fe(void 0),zT=fe(void 0),LG=fe(void 0),u3=fe(void 0),RG=fe(void 0),OG=fe(void 0),c3=fe(void 0),S7e="_outer-container_13cf2_1",C7e="_inner-container_13cf2_12",PG={outerContainer:S7e,innerContainer:C7e},zG=Object.freeze({status:"aborted"});function be(e,t,n){function r(s,l){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:l,constr:a,traits:new Set},enumerable:!1}),s._zod.traits.has(e))return;s._zod.traits.add(e),t(s,l);const c=a.prototype,d=Object.keys(c);for(let f=0;f{var l,c;return n!=null&&n.Parent&&s instanceof n.Parent?!0:(c=(l=s==null?void 0:s._zod)==null?void 0:l.traits)==null?void 0:c.has(e)}}),Object.defineProperty(a,"name",{value:e}),a}const DG=Symbol("zod_brand");class hp extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class d3 extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}const f3={};function da(e){return e&&Object.assign(f3,e),f3}function j7e(e){return e}function T7e(e){return e}function I7e(e){}function E7e(e){throw new Error}function N7e(e){}function DT(e){const t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,r])=>t.indexOf(+n)===-1).map(([n,r])=>r)}function qe(e,t="|"){return e.map(n=>Lt(n)).join(t)}function h3(e,t){return typeof t=="bigint"?t.toString():t}function Yy(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function pp(e){return e==null}function p3(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function AG(e,t){const n=(e.toString().split(".")[1]||"").length,r=t.toString();let i=(r.split(".")[1]||"").length;if(i===0&&/\d?e-\d?/.test(r)){const l=r.match(/\d?e-(\d?)/);l!=null&&l[1]&&(i=Number.parseInt(l[1]))}const o=n>i?n:i,a=Number.parseInt(e.toFixed(o).replace(".","")),s=Number.parseInt(t.toFixed(o).replace(".",""));return a%s/10**o}const FG=Symbol("evaluating");function vn(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==FG)return r===void 0&&(r=FG,r=n()),r},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function $7e(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function Df(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function rd(...e){const t={};for(const n of e){const r=Object.getOwnPropertyDescriptors(n);Object.assign(t,r)}return Object.defineProperties({},t)}function M7e(e){return rd(e._zod.def)}function L7e(e,t){return t?t.reduce((n,r)=>n==null?void 0:n[r],e):e}function R7e(e){const t=Object.keys(e),n=t.map(r=>e[r]);return Promise.all(n).then(r=>{const i={};for(let o=0;o{};function ig(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const UG=Yy(()=>{var e;if(typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)!=null&&e.includes("Cloudflare")))return!1;try{const t=Function;return new t(""),!0}catch{return!1}});function mp(e){if(ig(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const n=t.prototype;return!(ig(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function m3(e){return mp(e)?{...e}:Array.isArray(e)?[...e]:e}function P7e(e){let t=0;for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}const z7e=e=>{const t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},g3=new Set(["string","number","symbol"]),WG=new Set(["string","number","bigint","boolean","symbol","undefined"]);function id(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function il(e,t,n){const r=new e._zod.constr(t??e._zod.def);return(!t||n!=null&&n.parent)&&(r._zod.parent=e),r}function Pe(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if((t==null?void 0:t.message)!==void 0){if((t==null?void 0:t.error)!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function D7e(e){let t;return new Proxy({},{get(n,r,i){return t??(t=e()),Reflect.get(t,r,i)},set(n,r,i,o){return t??(t=e()),Reflect.set(t,r,i,o)},has(n,r){return t??(t=e()),Reflect.has(t,r)},deleteProperty(n,r){return t??(t=e()),Reflect.deleteProperty(t,r)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??(t=e()),Reflect.defineProperty(t,r,i)}})}function Lt(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function VG(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const HG={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},ZG={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function qG(e,t){const n=e._zod.def,r=rd(e._zod.def,{get shape(){const i={};for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&(i[o]=n.shape[o])}return Df(this,"shape",i),i},checks:[]});return il(e,r)}function GG(e,t){const n=e._zod.def,r=rd(e._zod.def,{get shape(){const i={...e._zod.def.shape};for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&delete i[o]}return Df(this,"shape",i),i},checks:[]});return il(e,r)}function YG(e,t){if(!mp(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0)throw new Error("Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.");const r=rd(e._zod.def,{get shape(){const i={...e._zod.def.shape,...t};return Df(this,"shape",i),i},checks:[]});return il(e,r)}function KG(e,t){if(!mp(t))throw new Error("Invalid input to safeExtend: expected a plain object");const n={...e._zod.def,get shape(){const r={...e._zod.def.shape,...t};return Df(this,"shape",r),r},checks:e._zod.def.checks};return il(e,n)}function XG(e,t){const n=rd(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t._zod.def.shape};return Df(this,"shape",r),r},get catchall(){return t._zod.def.catchall},checks:[]});return il(e,n)}function JG(e,t,n){const r=rd(t._zod.def,{get shape(){const i=t._zod.def.shape,o={...i};if(n)for(const a in n){if(!(a in i))throw new Error(`Unrecognized key: "${a}"`);n[a]&&(o[a]=e?new e({type:"optional",innerType:i[a]}):i[a])}else for(const a in i)o[a]=e?new e({type:"optional",innerType:i[a]}):i[a];return Df(this,"shape",o),o},checks:[]});return il(t,r)}function QG(e,t,n){const r=rd(t._zod.def,{get shape(){const i=t._zod.def.shape,o={...i};if(n)for(const a in n){if(!(a in o))throw new Error(`Unrecognized key: "${a}"`);n[a]&&(o[a]=new e({type:"nonoptional",innerType:i[a]}))}else for(const a in i)o[a]=new e({type:"nonoptional",innerType:i[a]});return Df(this,"shape",o),o},checks:[]});return il(t,r)}function gp(e,t=0){var n;if(e.aborted===!0)return!0;for(let r=t;r{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function Ky(e){return typeof e=="string"?e:e==null?void 0:e.message}function ql(e,t,n){var i,o,a,s,l,c;const r={...e,path:e.path??[]};if(!e.message){const d=Ky((a=(o=(i=e.inst)==null?void 0:i._zod.def)==null?void 0:o.error)==null?void 0:a.call(o,e))??Ky((s=t==null?void 0:t.error)==null?void 0:s.call(t,e))??Ky((l=n.customError)==null?void 0:l.call(n,e))??Ky((c=n.localeError)==null?void 0:c.call(n,e))??"Invalid input";r.message=d}return delete r.inst,delete r.continue,t!=null&&t.reportInput||delete r.input,r}function v3(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function y3(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function og(...e){const[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function A7e(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function eY(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;rt.toString(16).padStart(2,"0")).join("")}class V7e{constructor(...t){}}const nY=Object.freeze(Object.defineProperty({__proto__:null,BIGINT_FORMAT_RANGES:ZG,Class:V7e,NUMBER_FORMAT_RANGES:HG,aborted:gp,allowsEval:UG,assert:N7e,assertEqual:j7e,assertIs:I7e,assertNever:E7e,assertNotEqual:T7e,assignProp:Df,base64ToUint8Array:eY,base64urlToUint8Array:F7e,cached:Yy,captureStackTrace:FT,cleanEnum:A7e,cleanRegex:p3,clone:il,cloneDef:M7e,createTransparentProxy:D7e,defineLazy:vn,esc:AT,escapeRegex:id,extend:YG,finalizeIssue:ql,floatSafeRemainder:AG,getElementAtPath:L7e,getEnumValues:DT,getLengthableOrigin:y3,getParsedType:z7e,getSizableOrigin:v3,hexToUint8Array:U7e,isObject:ig,isPlainObject:mp,issue:og,joinValues:qe,jsonStringifyReplacer:h3,merge:XG,mergeDefs:rd,normalizeParams:Pe,nullish:pp,numKeys:P7e,objectClone:$7e,omit:GG,optionalKeys:VG,partial:JG,pick:qG,prefixIssues:Zl,primitiveTypes:WG,promiseAllObject:R7e,propertyKeyTypes:g3,randomString:O7e,required:QG,safeExtend:KG,shallowClone:m3,slugify:BG,stringifyPrimitive:Lt,uint8ArrayToBase64:tY,uint8ArrayToBase64url:B7e,uint8ArrayToHex:W7e,unwrapMessage:Ky},Symbol.toStringTag,{value:"Module"})),rY=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,h3,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},BT=be("$ZodError",rY),vs=be("$ZodError",rY,{Parent:Error});function UT(e,t=n=>n.message){const n={},r=[];for(const i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function WT(e,t=n=>n.message){const n={_errors:[]},r=i=>{for(const o of i.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(a=>r({issues:a}));else if(o.code==="invalid_key")r({issues:o.issues});else if(o.code==="invalid_element")r({issues:o.issues});else if(o.path.length===0)n._errors.push(t(o));else{let a=n,s=0;for(;sn.message){const n={errors:[]},r=(i,o=[])=>{var a,s;for(const l of i.issues)if(l.code==="invalid_union"&&l.errors.length)l.errors.map(c=>r({issues:c},l.path));else if(l.code==="invalid_key")r({issues:l.issues},l.path);else if(l.code==="invalid_element")r({issues:l.issues},l.path);else{const c=[...o,...l.path];if(c.length===0){n.errors.push(t(l));continue}let d=n,f=0;for(;ftypeof r=="object"?r.key:r);for(const r of n)typeof r=="number"?t.push(`[${r}]`):typeof r=="symbol"?t.push(`[${JSON.stringify(String(r))}]`):/[^\w$]/.test(r)?t.push(`[${JSON.stringify(r)}]`):(t.length&&t.push("."),t.push(r));return t.join("")}function aY(e){var r;const t=[],n=[...e.issues].sort((i,o)=>(i.path??[]).length-(o.path??[]).length);for(const i of n)t.push(`\u2716 ${i.message}`),(r=i.path)!=null&&r.length&&t.push(` \u2192 at ${oY(i.path)}`);return t.join(` -`)}const Xy=e=>(t,n,r,i)=>{const o=r?Object.assign(r,{async:!1}):{async:!1},a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise)throw new hp;if(a.issues.length){const s=new((i==null?void 0:i.Err)??e)(a.issues.map(l=>ql(l,o,da())));throw FT(s,i==null?void 0:i.callee),s}return a.value},VT=Xy(vs),Jy=e=>async(t,n,r,i)=>{const o=r?Object.assign(r,{async:!0}):{async:!0};let a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise&&(a=await a),a.issues.length){const s=new((i==null?void 0:i.Err)??e)(a.issues.map(l=>ql(l,o,da())));throw FT(s,i==null?void 0:i.callee),s}return a.value},HT=Jy(vs),Qy=e=>(t,n,r)=>{const i=r?{...r,async:!1}:{async:!1},o=t._zod.run({value:n,issues:[]},i);if(o instanceof Promise)throw new hp;return o.issues.length?{success:!1,error:new(e??BT)(o.issues.map(a=>ql(a,i,da())))}:{success:!0,data:o.value}},sY=Qy(vs),eb=e=>async(t,n,r)=>{const i=r?Object.assign(r,{async:!0}):{async:!0};let o=t._zod.run({value:n,issues:[]},i);return o instanceof Promise&&(o=await o),o.issues.length?{success:!1,error:new e(o.issues.map(a=>ql(a,i,da())))}:{success:!0,data:o.value}},lY=eb(vs),ZT=e=>(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Xy(e)(t,n,i)},H7e=ZT(vs),qT=e=>(t,n,r)=>Xy(e)(t,n,r),Z7e=qT(vs),GT=e=>async(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Jy(e)(t,n,i)},q7e=GT(vs),YT=e=>async(t,n,r)=>Jy(e)(t,n,r),G7e=YT(vs),KT=e=>(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Qy(e)(t,n,i)},Y7e=KT(vs),XT=e=>(t,n,r)=>Qy(e)(t,n,r),K7e=XT(vs),JT=e=>async(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return eb(e)(t,n,i)},X7e=JT(vs),QT=e=>async(t,n,r)=>eb(e)(t,n,r),J7e=QT(vs),uY=/^[cC][^\s-]{8,}$/,cY=/^[0-9a-z]+$/,dY=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,fY=/^[0-9a-vA-V]{20}$/,hY=/^[A-Za-z0-9]{27}$/,pY=/^[a-zA-Z0-9_-]{21}$/,mY=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Q7e=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,gY=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,ag=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,eTe=ag(4),tTe=ag(6),nTe=ag(7),vY=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,rTe=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,iTe=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,yY=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,oTe=yY,aTe=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,sTe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function bY(){return new RegExp(sTe,"u")}const _Y=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,xY=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,wY=e=>{const t=id(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},kY=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,SY=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,CY=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,eI=/^[A-Za-z0-9_-]*$/,jY=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,TY=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,IY=/^\+(?:[0-9]){6,14}[0-9]$/,EY="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",NY=new RegExp(`^${EY}$`);function $Y(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function MY(e){return new RegExp(`^${$Y(e)}$`)}function LY(e){const t=$Y({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const r=`${t}(?:${n.join("|")})`;return new RegExp(`^${EY}T(?:${r})$`)}const RY=e=>{const t=e?`[\\s\\S]{${(e==null?void 0:e.minimum)??0},${(e==null?void 0:e.maximum)??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},OY=/^-?\d+n?$/,PY=/^-?\d+$/,zY=/^-?\d+(?:\.\d+)?/,DY=/^(?:true|false)$/i,AY=/^null$/i,FY=/^undefined$/i,BY=/^[^A-Z]*$/,UY=/^[^a-z]*$/,WY=/^[0-9a-fA-F]*$/;function tb(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function nb(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}const lTe=/^[0-9a-fA-F]{32}$/,uTe=tb(22,"=="),cTe=nb(22),dTe=/^[0-9a-fA-F]{40}$/,fTe=tb(27,"="),hTe=nb(27),pTe=/^[0-9a-fA-F]{64}$/,mTe=tb(43,"="),gTe=nb(43),vTe=/^[0-9a-fA-F]{96}$/,yTe=tb(64,""),bTe=nb(64),_Te=/^[0-9a-fA-F]{128}$/,xTe=tb(86,"=="),wTe=nb(86),tI=Object.freeze(Object.defineProperty({__proto__:null,base64:CY,base64url:eI,bigint:OY,boolean:DY,browserEmail:aTe,cidrv4:kY,cidrv6:SY,cuid:uY,cuid2:cY,date:NY,datetime:LY,domain:TY,duration:mY,e164:IY,email:vY,emoji:bY,extendedDuration:Q7e,guid:gY,hex:WY,hostname:jY,html5Email:rTe,idnEmail:oTe,integer:PY,ipv4:_Y,ipv6:xY,ksuid:hY,lowercase:BY,mac:wY,md5_base64:uTe,md5_base64url:cTe,md5_hex:lTe,nanoid:pY,null:AY,number:zY,rfc5322Email:iTe,sha1_base64:fTe,sha1_base64url:hTe,sha1_hex:dTe,sha256_base64:mTe,sha256_base64url:gTe,sha256_hex:pTe,sha384_base64:yTe,sha384_base64url:bTe,sha384_hex:vTe,sha512_base64:xTe,sha512_base64url:wTe,sha512_hex:_Te,string:RY,time:MY,ulid:dY,undefined:FY,unicodeEmail:yY,uppercase:UY,uuid:ag,uuid4:eTe,uuid6:tTe,uuid7:nTe,xid:fY},Symbol.toStringTag,{value:"Module"})),qr=be("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),VY={number:"number",bigint:"bigint",object:"date"},nI=be("$ZodCheckLessThan",(e,t)=>{qr.init(e,t);const n=VY[typeof t.value];e._zod.onattach.push(r=>{const i=r._zod.bag,o=(t.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?r.value<=t.value:r.value{qr.init(e,t);const n=VY[typeof t.value];e._zod.onattach.push(r=>{const i=r._zod.bag,o=(t.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>o&&(t.inclusive?i.minimum=t.value:i.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),HY=be("$ZodCheckMultipleOf",(e,t)=>{qr.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):AG(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),ZY=be("$ZodCheckNumberFormat",(e,t)=>{var a;qr.init(e,t),t.format=t.format||"float64";const n=(a=t.format)==null?void 0:a.includes("int"),r=n?"int":"number",[i,o]=HG[t.format];e._zod.onattach.push(s=>{const l=s._zod.bag;l.format=t.format,l.minimum=i,l.maximum=o,n&&(l.pattern=PY)}),e._zod.check=s=>{const l=s.value;if(n){if(!Number.isInteger(l)){s.issues.push({expected:r,format:t.format,code:"invalid_type",continue:!1,input:l,inst:e});return}if(!Number.isSafeInteger(l)){l>0?s.issues.push({input:l,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort}):s.issues.push({input:l,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort});return}}lo&&s.issues.push({origin:"number",input:l,code:"too_big",maximum:o,inst:e})}}),qY=be("$ZodCheckBigIntFormat",(e,t)=>{qr.init(e,t);const[n,r]=ZG[t.format];e._zod.onattach.push(i=>{const o=i._zod.bag;o.format=t.format,o.minimum=n,o.maximum=r}),e._zod.check=i=>{const o=i.value;or&&i.issues.push({origin:"bigint",input:o,code:"too_big",maximum:r,inst:e})}}),GY=be("$ZodCheckMaxSize",(e,t)=>{var n;qr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!pp(i)&&i.size!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{const i=r.value;i.size<=t.maximum||r.issues.push({origin:v3(i),code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),YY=be("$ZodCheckMinSize",(e,t)=>{var n;qr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!pp(i)&&i.size!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>i&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{const i=r.value;i.size>=t.minimum||r.issues.push({origin:v3(i),code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),KY=be("$ZodCheckSizeEquals",(e,t)=>{var n;qr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!pp(i)&&i.size!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag;i.minimum=t.size,i.maximum=t.size,i.size=t.size}),e._zod.check=r=>{const i=r.value,o=i.size;if(o===t.size)return;const a=o>t.size;r.issues.push({origin:v3(i),...a?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),XY=be("$ZodCheckMaxLength",(e,t)=>{var n;qr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!pp(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{const i=r.value;if(i.length<=t.maximum)return;const o=y3(i);r.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),JY=be("$ZodCheckMinLength",(e,t)=>{var n;qr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!pp(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>i&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{const i=r.value;if(i.length>=t.minimum)return;const o=y3(i);r.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),QY=be("$ZodCheckLengthEquals",(e,t)=>{var n;qr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!pp(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag;i.minimum=t.length,i.maximum=t.length,i.length=t.length}),e._zod.check=r=>{const i=r.value,o=i.length;if(o===t.length)return;const a=y3(i),s=o>t.length;r.issues.push({origin:a,...s?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),rb=be("$ZodCheckStringFormat",(e,t)=>{var n,r;qr.init(e,t),e._zod.onattach.push(i=>{const o=i._zod.bag;o.format=t.format,t.pattern&&(o.patterns??(o.patterns=new Set),o.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=i=>{t.pattern.lastIndex=0,!t.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:t.format,input:i.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),eK=be("$ZodCheckRegex",(e,t)=>{rb.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),tK=be("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=BY),rb.init(e,t)}),nK=be("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=UY),rb.init(e,t)}),rK=be("$ZodCheckIncludes",(e,t)=>{qr.init(e,t);const n=id(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(i=>{const o=i._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=i=>{i.value.includes(t.includes,t.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:i.value,inst:e,continue:!t.abort})}}),iK=be("$ZodCheckStartsWith",(e,t)=>{qr.init(e,t);const n=new RegExp(`^${id(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),oK=be("$ZodCheckEndsWith",(e,t)=>{qr.init(e,t);const n=new RegExp(`.*${id(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}});function aK(e,t,n){e.issues.length&&t.issues.push(...Zl(n,e.issues))}const sK=be("$ZodCheckProperty",(e,t)=>{qr.init(e,t),e._zod.check=n=>{const r=t.schema._zod.run({value:n.value[t.property],issues:[]},{});if(r instanceof Promise)return r.then(i=>aK(i,n,t.property));aK(r,n,t.property)}}),lK=be("$ZodCheckMimeType",(e,t)=>{qr.init(e,t);const n=new Set(t.mime);e._zod.onattach.push(r=>{r._zod.bag.mime=t.mime}),e._zod.check=r=>{n.has(r.value.type)||r.issues.push({code:"invalid_value",values:t.mime,input:r.value.type,inst:e,continue:!t.abort})}}),uK=be("$ZodCheckOverwrite",(e,t)=>{qr.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class cK{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const n=t.split(` -`).filter(o=>o),r=Math.min(...n.map(o=>o.length-o.trimStart().length)),i=n.map(o=>o.slice(r)).map(o=>" ".repeat(this.indent*2)+o);for(const o of i)this.content.push(o)}compile(){const t=Function,n=this==null?void 0:this.args,r=[...((this==null?void 0:this.content)??[""]).map(i=>` ${i}`)];return new t(...n,r.join(` -`))}}const dK={major:4,minor:1,patch:13},Ut=be("$ZodType",(e,t)=>{var i;var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=dK;const r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(const o of r)for(const a of o._zod.onattach)a(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),(i=e._zod.deferred)==null||i.push(()=>{e._zod.run=e._zod.parse});else{const o=(s,l,c)=>{let d=gp(s),f;for(const p of l){if(p._zod.def.when){if(!p._zod.def.when(s))continue}else if(d)continue;const v=s.issues.length,_=p._zod.check(s);if(_ instanceof Promise&&(c==null?void 0:c.async)===!1)throw new hp;if(f||_ instanceof Promise)f=(f??Promise.resolve()).then(async()=>{await _,s.issues.length!==v&&(d||(d=gp(s,v)))});else{if(s.issues.length===v)continue;d||(d=gp(s,v))}}return f?f.then(()=>s):s},a=(s,l,c)=>{if(gp(s))return s.aborted=!0,s;const d=o(l,r,c);if(d instanceof Promise){if(c.async===!1)throw new hp;return d.then(f=>e._zod.parse(f,c))}return e._zod.parse(d,c)};e._zod.run=(s,l)=>{if(l.skipChecks)return e._zod.parse(s,l);if(l.direction==="backward"){const d=e._zod.parse({value:s.value,issues:[]},{...l,skipChecks:!0});return d instanceof Promise?d.then(f=>a(f,s,l)):a(d,s,l)}const c=e._zod.parse(s,l);if(c instanceof Promise){if(l.async===!1)throw new hp;return c.then(d=>o(d,r,l))}return o(c,r,l)}}e["~standard"]={validate:o=>{var a;try{const s=sY(e,o);return s.success?{value:s.data}:{issues:(a=s.error)==null?void 0:a.issues}}catch{return lY(e,o).then(s=>{var l;return s.success?{value:s.data}:{issues:(l=s.error)==null?void 0:l.issues}})}},vendor:"zod",version:1}}),ib=be("$ZodString",(e,t)=>{var n;Ut.init(e,t),e._zod.pattern=[...((n=e==null?void 0:e._zod.bag)==null?void 0:n.patterns)??[]].pop()??RY(e._zod.bag),e._zod.parse=(r,i)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),vr=be("$ZodStringFormat",(e,t)=>{rb.init(e,t),ib.init(e,t)}),fK=be("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=gY),vr.init(e,t)}),hK=be("$ZodUUID",(e,t)=>{if(t.version){const n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=ag(n))}else t.pattern??(t.pattern=ag());vr.init(e,t)}),pK=be("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=vY),vr.init(e,t)}),mK=be("$ZodURL",(e,t)=>{vr.init(e,t),e._zod.check=n=>{try{const r=n.value.trim(),i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=i.href:n.value=r;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),gK=be("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=bY()),vr.init(e,t)}),vK=be("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=pY),vr.init(e,t)}),yK=be("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=uY),vr.init(e,t)}),bK=be("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=cY),vr.init(e,t)}),_K=be("$ZodULID",(e,t)=>{t.pattern??(t.pattern=dY),vr.init(e,t)}),xK=be("$ZodXID",(e,t)=>{t.pattern??(t.pattern=fY),vr.init(e,t)}),wK=be("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=hY),vr.init(e,t)}),kK=be("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=LY(t)),vr.init(e,t)}),SK=be("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=NY),vr.init(e,t)}),CK=be("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=MY(t)),vr.init(e,t)}),jK=be("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=mY),vr.init(e,t)}),TK=be("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=_Y),vr.init(e,t),e._zod.bag.format="ipv4"}),IK=be("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=xY),vr.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),EK=be("$ZodMAC",(e,t)=>{t.pattern??(t.pattern=wY(t.delimiter)),vr.init(e,t),e._zod.bag.format="mac"}),NK=be("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=kY),vr.init(e,t)}),$K=be("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=SY),vr.init(e,t),e._zod.check=n=>{const r=n.value.split("/");try{if(r.length!==2)throw new Error;const[i,o]=r;if(!o)throw new Error;const a=Number(o);if(`${a}`!==o)throw new Error;if(a<0||a>128)throw new Error;new URL(`http://[${i}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function iI(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const MK=be("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=CY),vr.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{iI(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});function LK(e){if(!eI.test(e))return!1;const t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return iI(n)}const RK=be("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=eI),vr.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{LK(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),OK=be("$ZodE164",(e,t)=>{t.pattern??(t.pattern=IY),vr.init(e,t)});function PK(e,t=null){try{const n=e.split(".");if(n.length!==3)return!1;const[r]=n;if(!r)return!1;const i=JSON.parse(atob(r));return!("typ"in i&&(i==null?void 0:i.typ)!=="JWT"||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}}const zK=be("$ZodJWT",(e,t)=>{vr.init(e,t),e._zod.check=n=>{PK(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),DK=be("$ZodCustomStringFormat",(e,t)=>{vr.init(e,t),e._zod.check=n=>{t.fn(n.value)||n.issues.push({code:"invalid_format",format:t.format,input:n.value,inst:e,continue:!t.abort})}}),oI=be("$ZodNumber",(e,t)=>{Ut.init(e,t),e._zod.pattern=e._zod.bag.pattern??zY,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}const i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;const o=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...o?{received:o}:{}}),n}}),AK=be("$ZodNumberFormat",(e,t)=>{ZY.init(e,t),oI.init(e,t)}),aI=be("$ZodBoolean",(e,t)=>{Ut.init(e,t),e._zod.pattern=DY,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}const i=n.value;return typeof i=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),sI=be("$ZodBigInt",(e,t)=>{Ut.init(e,t),e._zod.pattern=OY,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=BigInt(n.value)}catch{}return typeof n.value=="bigint"||n.issues.push({expected:"bigint",code:"invalid_type",input:n.value,inst:e}),n}}),FK=be("$ZodBigIntFormat",(e,t)=>{qY.init(e,t),sI.init(e,t)}),BK=be("$ZodSymbol",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return typeof i=="symbol"||n.issues.push({expected:"symbol",code:"invalid_type",input:i,inst:e}),n}}),UK=be("$ZodUndefined",(e,t)=>{Ut.init(e,t),e._zod.pattern=FY,e._zod.values=new Set([void 0]),e._zod.optin="optional",e._zod.optout="optional",e._zod.parse=(n,r)=>{const i=n.value;return typeof i>"u"||n.issues.push({expected:"undefined",code:"invalid_type",input:i,inst:e}),n}}),WK=be("$ZodNull",(e,t)=>{Ut.init(e,t),e._zod.pattern=AY,e._zod.values=new Set([null]),e._zod.parse=(n,r)=>{const i=n.value;return i===null||n.issues.push({expected:"null",code:"invalid_type",input:i,inst:e}),n}}),VK=be("$ZodAny",(e,t)=>{Ut.init(e,t),e._zod.parse=n=>n}),HK=be("$ZodUnknown",(e,t)=>{Ut.init(e,t),e._zod.parse=n=>n}),ZK=be("$ZodNever",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)}),qK=be("$ZodVoid",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return typeof i>"u"||n.issues.push({expected:"void",code:"invalid_type",input:i,inst:e}),n}}),GK=be("$ZodDate",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=new Date(n.value)}catch{}const i=n.value,o=i instanceof Date;return o&&!Number.isNaN(i.getTime())||n.issues.push({expected:"date",code:"invalid_type",input:i,...o?{received:"Invalid Date"}:{},inst:e}),n}});function YK(e,t,n){e.issues.length&&t.issues.push(...Zl(n,e.issues)),t.value[n]=e.value}const KK=be("$ZodArray",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);const o=[];for(let a=0;aYK(c,n,a))):YK(l,n,a)}return o.length?Promise.all(o).then(()=>n):n}});function b3(e,t,n,r){e.issues.length&&t.issues.push(...Zl(n,e.issues)),e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function XK(e){var r,i,o,a;const t=Object.keys(e.shape);for(const s of t)if(!((a=(o=(i=(r=e.shape)==null?void 0:r[s])==null?void 0:i._zod)==null?void 0:o.traits)!=null&&a.has("$ZodType")))throw new Error(`Invalid element at key "${s}": expected a Zod schema`);const n=VG(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function JK(e,t,n,r,i,o){const a=[],s=i.keySet,l=i.catchall._zod,c=l.def.type;for(const d in t){if(s.has(d))continue;if(c==="never"){a.push(d);continue}const f=l.run({value:t[d],issues:[]},r);f instanceof Promise?e.push(f.then(p=>b3(p,n,d,t))):b3(f,n,d,t)}return a.length&&n.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:o}),e.length?Promise.all(e).then(()=>n):n}const QK=be("$ZodObject",(e,t)=>{var a;if(Ut.init(e,t),!((a=Object.getOwnPropertyDescriptor(t,"shape"))!=null&&a.get)){const s=t.shape;Object.defineProperty(t,"shape",{get:()=>{const l={...s};return Object.defineProperty(t,"shape",{value:l}),l}})}const n=Yy(()=>XK(t));vn(e._zod,"propValues",()=>{const s=t.shape,l={};for(const c in s){const d=s[c]._zod;if(d.values){l[c]??(l[c]=new Set);for(const f of d.values)l[c].add(f)}}return l});const r=ig,i=t.catchall;let o;e._zod.parse=(s,l)=>{o??(o=n.value);const c=s.value;if(!r(c))return s.issues.push({expected:"object",code:"invalid_type",input:c,inst:e}),s;s.value={};const d=[],f=o.shape;for(const p of o.keys){const v=f[p]._zod.run({value:c[p],issues:[]},l);v instanceof Promise?d.push(v.then(_=>b3(_,s,p,c))):b3(v,s,p,c)}return i?JK(d,c,s,l,n.value,e):d.length?Promise.all(d).then(()=>s):s}}),eX=be("$ZodObjectJIT",(e,t)=>{QK.init(e,t);const n=e._zod.parse,r=Yy(()=>XK(t)),i=f=>{const p=new cK(["shape","payload","ctx"]),v=r.value,_=x=>{const S=AT(x);return`shape[${S}]._zod.run({ value: input[${S}], issues: [] }, ctx)`};p.write("const input = payload.value;");const y=Object.create(null);let b=0;for(const x of v.keys)y[x]=`key_${b++}`;p.write("const newResult = {};");for(const x of v.keys){const S=y[x],C=AT(x);p.write(`const ${S} = ${_(x)};`),p.write(` - if (${S}.issues.length) { - payload.issues = payload.issues.concat(${S}.issues.map(iss => ({ - ...iss, - path: iss.path ? [${C}, ...iss.path] : [${C}] - }))); - } - - - if (${S}.value === undefined) { - if (${C} in input) { - newResult[${C}] = undefined; - } - } else { - newResult[${C}] = ${S}.value; - } - - `)}p.write("payload.value = newResult;"),p.write("return payload;");const w=p.compile();return(x,S)=>w(f,x,S)};let o;const a=ig,s=!f3.jitless,l=s&&UG.value,c=t.catchall;let d;e._zod.parse=(f,p)=>{d??(d=r.value);const v=f.value;return a(v)?s&&l&&(p==null?void 0:p.async)===!1&&p.jitless!==!0?(o||(o=i(t.shape)),f=o(f,p),c?JK([],v,f,p,d,e):f):n(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:v,inst:e}),f)}});function tX(e,t,n,r){for(const o of e)if(o.issues.length===0)return t.value=o.value,t;const i=e.filter(o=>!gp(o));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(o=>o.issues.map(a=>ql(a,r,da())))}),t)}const lI=be("$ZodUnion",(e,t)=>{Ut.init(e,t),vn(e._zod,"optin",()=>t.options.some(i=>i._zod.optin==="optional")?"optional":void 0),vn(e._zod,"optout",()=>t.options.some(i=>i._zod.optout==="optional")?"optional":void 0),vn(e._zod,"values",()=>{if(t.options.every(i=>i._zod.values))return new Set(t.options.flatMap(i=>Array.from(i._zod.values)))}),vn(e._zod,"pattern",()=>{if(t.options.every(i=>i._zod.pattern)){const i=t.options.map(o=>o._zod.pattern);return new RegExp(`^(${i.map(o=>p3(o.source)).join("|")})$`)}});const n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,o)=>{if(n)return r(i,o);let a=!1;const s=[];for(const l of t.options){const c=l._zod.run({value:i.value,issues:[]},o);if(c instanceof Promise)s.push(c),a=!0;else{if(c.issues.length===0)return c;s.push(c)}}return a?Promise.all(s).then(l=>tX(l,i,e,o)):tX(s,i,e,o)}}),nX=be("$ZodDiscriminatedUnion",(e,t)=>{lI.init(e,t);const n=e._zod.parse;vn(e._zod,"propValues",()=>{const i={};for(const o of t.options){const a=o._zod.propValues;if(!a||Object.keys(a).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(const[s,l]of Object.entries(a)){i[s]||(i[s]=new Set);for(const c of l)i[s].add(c)}}return i});const r=Yy(()=>{var a;const i=t.options,o=new Map;for(const s of i){const l=(a=s._zod.propValues)==null?void 0:a[t.discriminator];if(!l||l.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(const c of l){if(o.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);o.set(c,s)}}return o});e._zod.parse=(i,o)=>{const a=i.value;if(!ig(a))return i.issues.push({code:"invalid_type",expected:"object",input:a,inst:e}),i;const s=r.value.get(a==null?void 0:a[t.discriminator]);return s?s._zod.run(i,o):t.unionFallback?n(i,o):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:a,path:[t.discriminator],inst:e}),i)}}),rX=be("$ZodIntersection",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value,o=t.left._zod.run({value:i,issues:[]},r),a=t.right._zod.run({value:i,issues:[]},r);return o instanceof Promise||a instanceof Promise?Promise.all([o,a]).then(([s,l])=>iX(n,s,l)):iX(n,o,a)}});function uI(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(mp(e)&&mp(t)){const n=Object.keys(t),r=Object.keys(e).filter(o=>n.indexOf(o)!==-1),i={...e,...t};for(const o of r){const a=uI(e[o],t[o]);if(!a.valid)return{valid:!1,mergeErrorPath:[o,...a.mergeErrorPath]};i[o]=a.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let r=0;r{Ut.init(e,t);const n=t.items;e._zod.parse=(r,i)=>{const o=r.value;if(!Array.isArray(o))return r.issues.push({input:o,inst:e,expected:"tuple",code:"invalid_type"}),r;r.value=[];const a=[],s=[...n].reverse().findIndex(d=>d._zod.optin!=="optional"),l=s===-1?0:n.length-s;if(!t.rest){const d=o.length>n.length,f=o.length=o.length&&c>=l)continue;const f=d._zod.run({value:o[c],issues:[]},i);f instanceof Promise?a.push(f.then(p=>_3(p,r,c))):_3(f,r,c)}if(t.rest){const d=o.slice(n.length);for(const f of d){c++;const p=t.rest._zod.run({value:f,issues:[]},i);p instanceof Promise?a.push(p.then(v=>_3(v,r,c))):_3(p,r,c)}}return a.length?Promise.all(a).then(()=>r):r}});function _3(e,t,n){e.issues.length&&t.issues.push(...Zl(n,e.issues)),t.value[n]=e.value}const oX=be("$ZodRecord",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!mp(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;const o=[],a=t.keyType._zod.values;if(a){n.value={};const s=new Set;for(const c of a)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){s.add(typeof c=="number"?c.toString():c);const d=t.valueType._zod.run({value:i[c],issues:[]},r);d instanceof Promise?o.push(d.then(f=>{f.issues.length&&n.issues.push(...Zl(c,f.issues)),n.value[c]=f.value})):(d.issues.length&&n.issues.push(...Zl(c,d.issues)),n.value[c]=d.value)}let l;for(const c in i)s.has(c)||(l=l??[],l.push(c));l&&l.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:l})}else{n.value={};for(const s of Reflect.ownKeys(i)){if(s==="__proto__")continue;const l=t.keyType._zod.run({value:s,issues:[]},r);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(l.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:l.issues.map(d=>ql(d,r,da())),input:s,path:[s],inst:e}),n.value[l.value]=l.value;continue}const c=t.valueType._zod.run({value:i[s],issues:[]},r);c instanceof Promise?o.push(c.then(d=>{d.issues.length&&n.issues.push(...Zl(s,d.issues)),n.value[l.value]=d.value})):(c.issues.length&&n.issues.push(...Zl(s,c.issues)),n.value[l.value]=c.value)}}return o.length?Promise.all(o).then(()=>n):n}}),aX=be("$ZodMap",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!(i instanceof Map))return n.issues.push({expected:"map",code:"invalid_type",input:i,inst:e}),n;const o=[];n.value=new Map;for(const[a,s]of i){const l=t.keyType._zod.run({value:a,issues:[]},r),c=t.valueType._zod.run({value:s,issues:[]},r);l instanceof Promise||c instanceof Promise?o.push(Promise.all([l,c]).then(([d,f])=>{sX(d,f,n,a,i,e,r)})):sX(l,c,n,a,i,e,r)}return o.length?Promise.all(o).then(()=>n):n}});function sX(e,t,n,r,i,o,a){e.issues.length&&(g3.has(typeof r)?n.issues.push(...Zl(r,e.issues)):n.issues.push({code:"invalid_key",origin:"map",input:i,inst:o,issues:e.issues.map(s=>ql(s,a,da()))})),t.issues.length&&(g3.has(typeof r)?n.issues.push(...Zl(r,t.issues)):n.issues.push({origin:"map",code:"invalid_element",input:i,inst:o,key:r,issues:t.issues.map(s=>ql(s,a,da()))})),n.value.set(e.value,t.value)}const lX=be("$ZodSet",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!(i instanceof Set))return n.issues.push({input:i,inst:e,expected:"set",code:"invalid_type"}),n;const o=[];n.value=new Set;for(const a of i){const s=t.valueType._zod.run({value:a,issues:[]},r);s instanceof Promise?o.push(s.then(l=>uX(l,n))):uX(s,n)}return o.length?Promise.all(o).then(()=>n):n}});function uX(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}const cX=be("$ZodEnum",(e,t)=>{Ut.init(e,t);const n=DT(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.filter(i=>g3.has(typeof i)).map(i=>typeof i=="string"?id(i):i.toString()).join("|")})$`),e._zod.parse=(i,o)=>{const a=i.value;return r.has(a)||i.issues.push({code:"invalid_value",values:n,input:a,inst:e}),i}}),dX=be("$ZodLiteral",(e,t)=>{if(Ut.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");const n=new Set(t.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.values.map(r=>typeof r=="string"?id(r):r?id(r.toString()):String(r)).join("|")})$`),e._zod.parse=(r,i)=>{const o=r.value;return n.has(o)||r.issues.push({code:"invalid_value",values:t.values,input:o,inst:e}),r}}),fX=be("$ZodFile",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return i instanceof File||n.issues.push({expected:"file",code:"invalid_type",input:i,inst:e}),n}}),hX=be("$ZodTransform",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new d3(e.constructor.name);const i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(n.value=o,n));if(i instanceof Promise)throw new hp;return n.value=i,n}});function pX(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const mX=be("$ZodOptional",(e,t)=>{Ut.init(e,t),e._zod.optin="optional",e._zod.optout="optional",vn(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),vn(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${p3(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>{if(t.innerType._zod.optin==="optional"){const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>pX(o,n.value)):pX(i,n.value)}return n.value===void 0?n:t.innerType._zod.run(n,r)}}),gX=be("$ZodNullable",(e,t)=>{Ut.init(e,t),vn(e._zod,"optin",()=>t.innerType._zod.optin),vn(e._zod,"optout",()=>t.innerType._zod.optout),vn(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${p3(n.source)}|null)$`):void 0}),vn(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),vX=be("$ZodDefault",(e,t)=>{Ut.init(e,t),e._zod.optin="optional",vn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);if(n.value===void 0)return n.value=t.defaultValue,n;const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>yX(o,t)):yX(i,t)}});function yX(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const bX=be("$ZodPrefault",(e,t)=>{Ut.init(e,t),e._zod.optin="optional",vn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(r.direction==="backward"||n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),_X=be("$ZodNonOptional",(e,t)=>{Ut.init(e,t),vn(e._zod,"values",()=>{const n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>xX(o,e)):xX(i,e)}});function xX(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const wX=be("$ZodSuccess",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new d3("ZodSuccess");const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>(n.value=o.issues.length===0,n)):(n.value=i.issues.length===0,n)}}),kX=be("$ZodCatch",(e,t)=>{Ut.init(e,t),vn(e._zod,"optin",()=>t.innerType._zod.optin),vn(e._zod,"optout",()=>t.innerType._zod.optout),vn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>(n.value=o.value,o.issues.length&&(n.value=t.catchValue({...n,error:{issues:o.issues.map(a=>ql(a,r,da()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(o=>ql(o,r,da()))},input:n.value}),n.issues=[]),n)}}),SX=be("$ZodNaN",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>((typeof n.value!="number"||!Number.isNaN(n.value))&&n.issues.push({input:n.value,inst:e,expected:"nan",code:"invalid_type"}),n)}),CX=be("$ZodPipe",(e,t)=>{Ut.init(e,t),vn(e._zod,"values",()=>t.in._zod.values),vn(e._zod,"optin",()=>t.in._zod.optin),vn(e._zod,"optout",()=>t.out._zod.optout),vn(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,r)=>{if(r.direction==="backward"){const o=t.out._zod.run(n,r);return o instanceof Promise?o.then(a=>x3(a,t.in,r)):x3(o,t.in,r)}const i=t.in._zod.run(n,r);return i instanceof Promise?i.then(o=>x3(o,t.out,r)):x3(i,t.out,r)}});function x3(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const dI=be("$ZodCodec",(e,t)=>{Ut.init(e,t),vn(e._zod,"values",()=>t.in._zod.values),vn(e._zod,"optin",()=>t.in._zod.optin),vn(e._zod,"optout",()=>t.out._zod.optout),vn(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,r)=>{if((r.direction||"forward")==="forward"){const i=t.in._zod.run(n,r);return i instanceof Promise?i.then(o=>w3(o,t,r)):w3(i,t,r)}else{const i=t.out._zod.run(n,r);return i instanceof Promise?i.then(o=>w3(o,t,r)):w3(i,t,r)}}});function w3(e,t,n){if(e.issues.length)return e.aborted=!0,e;if((n.direction||"forward")==="forward"){const r=t.transform(e.value,e);return r instanceof Promise?r.then(i=>k3(e,i,t.out,n)):k3(e,r,t.out,n)}else{const r=t.reverseTransform(e.value,e);return r instanceof Promise?r.then(i=>k3(e,i,t.in,n)):k3(e,r,t.in,n)}}function k3(e,t,n,r){return e.issues.length?(e.aborted=!0,e):n._zod.run({value:t,issues:e.issues},r)}const jX=be("$ZodReadonly",(e,t)=>{Ut.init(e,t),vn(e._zod,"propValues",()=>t.innerType._zod.propValues),vn(e._zod,"values",()=>t.innerType._zod.values),vn(e._zod,"optin",()=>{var n,r;return(r=(n=t.innerType)==null?void 0:n._zod)==null?void 0:r.optin}),vn(e._zod,"optout",()=>{var n,r;return(r=(n=t.innerType)==null?void 0:n._zod)==null?void 0:r.optout}),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(TX):TX(i)}});function TX(e){return e.value=Object.freeze(e.value),e}const IX=be("$ZodTemplateLiteral",(e,t)=>{Ut.init(e,t);const n=[];for(const r of t.parts)if(typeof r=="object"&&r!==null){if(!r._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...r._zod.traits].shift()}`);const i=r._zod.pattern instanceof RegExp?r._zod.pattern.source:r._zod.pattern;if(!i)throw new Error(`Invalid template literal part: ${r._zod.traits}`);const o=i.startsWith("^")?1:0,a=i.endsWith("$")?i.length-1:i.length;n.push(i.slice(o,a))}else if(r===null||WG.has(typeof r))n.push(id(`${r}`));else throw new Error(`Invalid template literal part: ${r}`);e._zod.pattern=new RegExp(`^${n.join("")}$`),e._zod.parse=(r,i)=>typeof r.value!="string"?(r.issues.push({input:r.value,inst:e,expected:"template_literal",code:"invalid_type"}),r):(e._zod.pattern.lastIndex=0,e._zod.pattern.test(r.value)||r.issues.push({input:r.value,inst:e,code:"invalid_format",format:t.format??"template_literal",pattern:e._zod.pattern.source}),r)}),EX=be("$ZodFunction",(e,t)=>(Ut.init(e,t),e._def=t,e._zod.def=t,e.implement=n=>{if(typeof n!="function")throw new Error("implement() must be called with a function");return function(...r){const i=e._def.input?VT(e._def.input,r):r,o=Reflect.apply(n,this,i);return e._def.output?VT(e._def.output,o):o}},e.implementAsync=n=>{if(typeof n!="function")throw new Error("implementAsync() must be called with a function");return async function(...r){const i=e._def.input?await HT(e._def.input,r):r,o=await Reflect.apply(n,this,i);return e._def.output?await HT(e._def.output,o):o}},e._zod.parse=(n,r)=>typeof n.value!="function"?(n.issues.push({code:"invalid_type",expected:"function",input:n.value,inst:e}),n):(e._def.output&&e._def.output._zod.def.type==="promise"?n.value=e.implementAsync(n.value):n.value=e.implement(n.value),n),e.input=(...n)=>{const r=e.constructor;return Array.isArray(n[0])?new r({type:"function",input:new cI({type:"tuple",items:n[0],rest:n[1]}),output:e._def.output}):new r({type:"function",input:n[0],output:e._def.output})},e.output=n=>{const r=e.constructor;return new r({type:"function",input:e._def.input,output:n})},e)),NX=be("$ZodPromise",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>Promise.resolve(n.value).then(i=>t.innerType._zod.run({value:i,issues:[]},r))}),$X=be("$ZodLazy",(e,t)=>{Ut.init(e,t),vn(e._zod,"innerType",()=>t.getter()),vn(e._zod,"pattern",()=>{var n,r;return(r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.pattern}),vn(e._zod,"propValues",()=>{var n,r;return(r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.propValues}),vn(e._zod,"optin",()=>{var n,r;return((r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.optin)??void 0}),vn(e._zod,"optout",()=>{var n,r;return((r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.optout)??void 0}),e._zod.parse=(n,r)=>e._zod.innerType._zod.run(n,r)}),MX=be("$ZodCustom",(e,t)=>{qr.init(e,t),Ut.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{const r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(o=>LX(o,n,r,e));LX(i,n,r,e)}});function LX(e,t,n,r){if(!e){const i={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(i.params=r._zod.def.params),t.issues.push(og(i))}}const kTe=()=>{const e={string:{unit:"\u062D\u0631\u0641",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},file:{unit:"\u0628\u0627\u064A\u062A",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},array:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},set:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0645\u062F\u062E\u0644",email:"\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A",url:"\u0631\u0627\u0628\u0637",emoji:"\u0625\u064A\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",date:"\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO",time:"\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",duration:"\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO",ipv4:"\u0639\u0646\u0648\u0627\u0646 IPv4",ipv6:"\u0639\u0646\u0648\u0627\u0646 IPv6",cidrv4:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4",cidrv6:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6",base64:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded",base64url:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded",json_string:"\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON",e164:"\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164",jwt:"JWT",template_literal:"\u0645\u062F\u062E\u0644"};return i=>{switch(i.code){case"invalid_type":return`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${i.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${Lt(i.values[0])}`:`\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${i.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${o} ${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"}`:`\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${i.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${i.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${o} ${i.minimum.toString()} ${a.unit}`:`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${i.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 "${i.prefix}"`:o.format==="ends_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 "${o.suffix}"`:o.format==="includes"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 "${o.includes}"`:o.format==="regex"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${o.pattern}`:`${r[o.format]??i.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`}case"not_multiple_of":return`\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${i.divisor}`;case"unrecognized_keys":return`\u0645\u0639\u0631\u0641${i.keys.length>1?"\u0627\u062A":""} \u063A\u0631\u064A\u0628${i.keys.length>1?"\u0629":""}: ${qe(i.keys,"\u060C ")}`;case"invalid_key":return`\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${i.origin}`;case"invalid_union":return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644";case"invalid_element":return`\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${i.origin}`;default:return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"}}};function STe(){return{localeError:kTe()}}const CTe=()=>{const e={string:{unit:"simvol",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"element",verb:"olmal\u0131d\u0131r"},set:{unit:"element",verb:"olmal\u0131d\u0131r"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${i.expected}, daxil olan ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${Lt(i.values[0])}`:`Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${i.origin??"d\u0259y\u0259r"} ${o}${i.maximum.toString()} ${a.unit??"element"}`:`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${i.origin??"d\u0259y\u0259r"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${i.origin} ${o}${i.minimum.toString()} ${a.unit}`:`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Yanl\u0131\u015F m\u0259tn: "${o.prefix}" il\u0259 ba\u015Flamal\u0131d\u0131r`:o.format==="ends_with"?`Yanl\u0131\u015F m\u0259tn: "${o.suffix}" il\u0259 bitm\u0259lidir`:o.format==="includes"?`Yanl\u0131\u015F m\u0259tn: "${o.includes}" daxil olmal\u0131d\u0131r`:o.format==="regex"?`Yanl\u0131\u015F m\u0259tn: ${o.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`:`Yanl\u0131\u015F ${r[o.format]??i.format}`}case"not_multiple_of":return`Yanl\u0131\u015F \u0259d\u0259d: ${i.divisor} il\u0259 b\xF6l\xFCn\u0259 bil\u0259n olmal\u0131d\u0131r`;case"unrecognized_keys":return`Tan\u0131nmayan a\xE7ar${i.keys.length>1?"lar":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} daxilind\u0259 yanl\u0131\u015F a\xE7ar`;case"invalid_union":return"Yanl\u0131\u015F d\u0259y\u0259r";case"invalid_element":return`${i.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`;default:return"Yanl\u0131\u015F d\u0259y\u0259r"}}};function jTe(){return{localeError:CTe()}}function RX(e,t,n,r){const i=Math.abs(e),o=i%10,a=i%100;return a>=11&&a<=19?r:o===1?t:o>=2&&o<=4?n:r}const TTe=()=>{const e={string:{unit:{one:"\u0441\u0456\u043C\u0432\u0430\u043B",few:"\u0441\u0456\u043C\u0432\u0430\u043B\u044B",many:"\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u044B",many:"\u0431\u0430\u0439\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u043B\u0456\u043A";case"object":{if(Array.isArray(i))return"\u043C\u0430\u0441\u0456\u045E";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0443\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0430\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0447\u0430\u0441",duration:"ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0430\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0430\u0441",cidrv4:"IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",base64:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64",base64url:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url",json_string:"JSON \u0440\u0430\u0434\u043E\u043A",e164:"\u043D\u0443\u043C\u0430\u0440 E.164",jwt:"JWT",template_literal:"\u0443\u0432\u043E\u0434"};return i=>{switch(i.code){case"invalid_type":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${i.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${Lt(i.values[0])}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);if(a){const s=Number(i.maximum),l=RX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${o}${i.maximum.toString()} ${l}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);if(a){const s=Number(i.minimum),l=RX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${o}${i.minimum.toString()} ${l}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C "${o.includes}"`:o.format==="regex"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${r[o.format]??i.format}`}case"not_multiple_of":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${i.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${i.keys.length>1?"\u043A\u043B\u044E\u0447\u044B":"\u043A\u043B\u044E\u0447"}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${i.origin}`;case"invalid_union":return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434";case"invalid_element":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${i.origin}`;default:return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434"}}};function ITe(){return{localeError:TTe()}}const ETe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(e))return"\u043C\u0430\u0441\u0438\u0432";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},NTe=()=>{const e={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},file:{unit:"\u0431\u0430\u0439\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"}};function t(r){return e[r]??null}const n={regex:"\u0432\u0445\u043E\u0434",email:"\u0438\u043C\u0435\u0439\u043B \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0436\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"base64-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",base64url:"base64url-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",json_string:"JSON \u043D\u0438\u0437",e164:"E.164 \u043D\u043E\u043C\u0435\u0440",jwt:"JWT",template_literal:"\u0432\u0445\u043E\u0434"};return r=>{switch(r.code){case"invalid_type":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${r.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${ETe(r.input)}`;case"invalid_value":return r.values.length===1?`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${Lt(r.values[0])}`:`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u043E\u043F\u0446\u0438\u044F: \u043E\u0447\u0430\u043A\u0432\u0430\u043D\u043E \u0435\u0434\u043D\u043E \u043E\u0442 ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${i}${r.maximum.toString()} ${o.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430"}`:`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0431\u044A\u0434\u0435 ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${i}${r.minimum.toString()} ${o.unit}`:`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin} \u0434\u0430 \u0431\u044A\u0434\u0435 ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;if(i.format==="starts_with")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430 \u0441 "${i.prefix}"`;if(i.format==="ends_with")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430 \u0441 "${i.suffix}"`;if(i.format==="includes")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0432\u0430 "${i.includes}"`;if(i.format==="regex")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u044A\u0432\u043F\u0430\u0434\u0430 \u0441 ${i.pattern}`;let o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D";return i.format==="emoji"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="datetime"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="date"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"),i.format==="time"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="duration"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"),`${o} ${n[i.format]??r.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E \u0447\u0438\u0441\u043B\u043E: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043A\u0440\u0430\u0442\u043D\u043E \u043D\u0430 ${r.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0442${r.keys.length>1?"\u0438":""} \u043A\u043B\u044E\u0447${r.keys.length>1?"\u043E\u0432\u0435":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043A\u043B\u044E\u0447 \u0432 ${r.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434";case"invalid_element":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0432 ${r.origin}`;default:return"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434"}}};function $Te(){return{localeError:NTe()}}const MTe=()=>{const e={string:{unit:"car\xE0cters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"entrada",email:"adre\xE7a electr\xF2nica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adre\xE7a IPv4",ipv6:"adre\xE7a IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return i=>{switch(i.code){case"invalid_type":return`Tipus inv\xE0lid: s'esperava ${i.expected}, s'ha rebut ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Valor inv\xE0lid: s'esperava ${Lt(i.values[0])}`:`Opci\xF3 inv\xE0lida: s'esperava una de ${qe(i.values," o ")}`;case"too_big":{const o=i.inclusive?"com a m\xE0xim":"menys de",a=t(i.origin);return a?`Massa gran: s'esperava que ${i.origin??"el valor"} contingu\xE9s ${o} ${i.maximum.toString()} ${a.unit??"elements"}`:`Massa gran: s'esperava que ${i.origin??"el valor"} fos ${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?"com a m\xEDnim":"m\xE9s de",a=t(i.origin);return a?`Massa petit: s'esperava que ${i.origin} contingu\xE9s ${o} ${i.minimum.toString()} ${a.unit}`:`Massa petit: s'esperava que ${i.origin} fos ${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Format inv\xE0lid: ha de comen\xE7ar amb "${o.prefix}"`:o.format==="ends_with"?`Format inv\xE0lid: ha d'acabar amb "${o.suffix}"`:o.format==="includes"?`Format inv\xE0lid: ha d'incloure "${o.includes}"`:o.format==="regex"?`Format inv\xE0lid: ha de coincidir amb el patr\xF3 ${o.pattern}`:`Format inv\xE0lid per a ${r[o.format]??i.format}`}case"not_multiple_of":return`N\xFAmero inv\xE0lid: ha de ser m\xFAltiple de ${i.divisor}`;case"unrecognized_keys":return`Clau${i.keys.length>1?"s":""} no reconeguda${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Clau inv\xE0lida a ${i.origin}`;case"invalid_union":return"Entrada inv\xE0lida";case"invalid_element":return`Element inv\xE0lid a ${i.origin}`;default:return"Entrada inv\xE0lida"}}};function LTe(){return{localeError:MTe()}}const RTe=()=>{const e={string:{unit:"znak\u016F",verb:"m\xEDt"},file:{unit:"bajt\u016F",verb:"m\xEDt"},array:{unit:"prvk\u016F",verb:"m\xEDt"},set:{unit:"prvk\u016F",verb:"m\xEDt"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u010D\xEDslo";case"string":return"\u0159et\u011Bzec";case"boolean":return"boolean";case"bigint":return"bigint";case"function":return"funkce";case"symbol":return"symbol";case"undefined":return"undefined";case"object":{if(Array.isArray(i))return"pole";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"regul\xE1rn\xED v\xFDraz",email:"e-mailov\xE1 adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a \u010Das ve form\xE1tu ISO",date:"datum ve form\xE1tu ISO",time:"\u010Das ve form\xE1tu ISO",duration:"doba trv\xE1n\xED ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64",base64url:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64url",json_string:"\u0159et\u011Bzec ve form\xE1tu JSON",e164:"\u010D\xEDslo E.164",jwt:"JWT",template_literal:"vstup"};return i=>{switch(i.code){case"invalid_type":return`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${i.expected}, obdr\u017Eeno ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${Lt(i.values[0])}`:`Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${i.origin??"hodnota"} mus\xED m\xEDt ${o}${i.maximum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${i.origin??"hodnota"} mus\xED b\xFDt ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${i.origin??"hodnota"} mus\xED m\xEDt ${o}${i.minimum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${i.origin??"hodnota"} mus\xED b\xFDt ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED za\u010D\xEDnat na "${o.prefix}"`:o.format==="ends_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED kon\u010Dit na "${o.suffix}"`:o.format==="includes"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED obsahovat "${o.includes}"`:o.format==="regex"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED odpov\xEDdat vzoru ${o.pattern}`:`Neplatn\xFD form\xE1t ${r[o.format]??i.format}`}case"not_multiple_of":return`Neplatn\xE9 \u010D\xEDslo: mus\xED b\xFDt n\xE1sobkem ${i.divisor}`;case"unrecognized_keys":return`Nezn\xE1m\xE9 kl\xED\u010De: ${qe(i.keys,", ")}`;case"invalid_key":return`Neplatn\xFD kl\xED\u010D v ${i.origin}`;case"invalid_union":return"Neplatn\xFD vstup";case"invalid_element":return`Neplatn\xE1 hodnota v ${i.origin}`;default:return"Neplatn\xFD vstup"}}};function OTe(){return{localeError:RTe()}}const PTe=()=>{const e={string:{unit:"tegn",verb:"havde"},file:{unit:"bytes",verb:"havde"},array:{unit:"elementer",verb:"indeholdt"},set:{unit:"elementer",verb:"indeholdt"}},t={string:"streng",number:"tal",boolean:"boolean",array:"liste",object:"objekt",set:"s\xE6t",file:"fil"};function n(a){return e[a]??null}function r(a){return t[a]??a}const i=a=>{const s=typeof a;switch(s){case"number":return Number.isNaN(a)?"NaN":"tal";case"object":return Array.isArray(a)?"liste":a===null?"null":Object.getPrototypeOf(a)!==Object.prototype&&a.constructor?a.constructor.name:"objekt"}return s},o={regex:"input",email:"e-mailadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkesl\xE6t",date:"ISO-dato",time:"ISO-klokkesl\xE6t",duration:"ISO-varighed",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodet streng",base64url:"base64url-kodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return a=>{switch(a.code){case"invalid_type":return`Ugyldigt input: forventede ${r(a.expected)}, fik ${r(i(a.input))}`;case"invalid_value":return a.values.length===1?`Ugyldig v\xE6rdi: forventede ${Lt(a.values[0])}`:`Ugyldigt valg: forventede en af f\xF8lgende ${qe(a.values,"|")}`;case"too_big":{const s=a.inclusive?"<=":"<",l=n(a.origin),c=r(a.origin);return l?`For stor: forventede ${c??"value"} ${l.verb} ${s} ${a.maximum.toString()} ${l.unit??"elementer"}`:`For stor: forventede ${c??"value"} havde ${s} ${a.maximum.toString()}`}case"too_small":{const s=a.inclusive?">=":">",l=n(a.origin),c=r(a.origin);return l?`For lille: forventede ${c} ${l.verb} ${s} ${a.minimum.toString()} ${l.unit}`:`For lille: forventede ${c} havde ${s} ${a.minimum.toString()}`}case"invalid_format":{const s=a;return s.format==="starts_with"?`Ugyldig streng: skal starte med "${s.prefix}"`:s.format==="ends_with"?`Ugyldig streng: skal ende med "${s.suffix}"`:s.format==="includes"?`Ugyldig streng: skal indeholde "${s.includes}"`:s.format==="regex"?`Ugyldig streng: skal matche m\xF8nsteret ${s.pattern}`:`Ugyldig ${o[s.format]??a.format}`}case"not_multiple_of":return`Ugyldigt tal: skal v\xE6re deleligt med ${a.divisor}`;case"unrecognized_keys":return`${a.keys.length>1?"Ukendte n\xF8gler":"Ukendt n\xF8gle"}: ${qe(a.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8gle i ${a.origin}`;case"invalid_union":return"Ugyldigt input: matcher ingen af de tilladte typer";case"invalid_element":return`Ugyldig v\xE6rdi i ${a.origin}`;default:return"Ugyldigt input"}}};function zTe(){return{localeError:PTe()}}const DTe=()=>{const e={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"Zahl";case"object":{if(Array.isArray(i))return"Array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"};return i=>{switch(i.code){case"invalid_type":return`Ung\xFCltige Eingabe: erwartet ${i.expected}, erhalten ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ung\xFCltige Eingabe: erwartet ${Lt(i.values[0])}`:`Ung\xFCltige Option: erwartet eine von ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Zu gro\xDF: erwartet, dass ${i.origin??"Wert"} ${o}${i.maximum.toString()} ${a.unit??"Elemente"} hat`:`Zu gro\xDF: erwartet, dass ${i.origin??"Wert"} ${o}${i.maximum.toString()} ist`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Zu klein: erwartet, dass ${i.origin} ${o}${i.minimum.toString()} ${a.unit} hat`:`Zu klein: erwartet, dass ${i.origin} ${o}${i.minimum.toString()} ist`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ung\xFCltiger String: muss mit "${o.prefix}" beginnen`:o.format==="ends_with"?`Ung\xFCltiger String: muss mit "${o.suffix}" enden`:o.format==="includes"?`Ung\xFCltiger String: muss "${o.includes}" enthalten`:o.format==="regex"?`Ung\xFCltiger String: muss dem Muster ${o.pattern} entsprechen`:`Ung\xFCltig: ${r[o.format]??i.format}`}case"not_multiple_of":return`Ung\xFCltige Zahl: muss ein Vielfaches von ${i.divisor} sein`;case"unrecognized_keys":return`${i.keys.length>1?"Unbekannte Schl\xFCssel":"Unbekannter Schl\xFCssel"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ung\xFCltiger Schl\xFCssel in ${i.origin}`;case"invalid_union":return"Ung\xFCltige Eingabe";case"invalid_element":return`Ung\xFCltiger Wert in ${i.origin}`;default:return"Ung\xFCltige Eingabe"}}};function ATe(){return{localeError:DTe()}}const FTe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},BTe=()=>{const e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function t(r){return e[r]??null}const n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return r=>{switch(r.code){case"invalid_type":return`Invalid input: expected ${r.expected}, received ${FTe(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${Lt(r.values[0])}`:`Invalid option: expected one of ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`Too big: expected ${r.origin??"value"} to have ${i}${r.maximum.toString()} ${o.unit??"elements"}`:`Too big: expected ${r.origin??"value"} to be ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`Too small: expected ${r.origin} to have ${i}${r.minimum.toString()} ${o.unit}`:`Too small: expected ${r.origin} to be ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${n[i.format]??r.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${r.divisor}`;case"unrecognized_keys":return`Unrecognized key${r.keys.length>1?"s":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`Invalid key in ${r.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${r.origin}`;default:return"Invalid input"}}};function OX(){return{localeError:BTe()}}const UTe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"nombro";case"object":{if(Array.isArray(e))return"tabelo";if(e===null)return"senvalora";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},WTe=()=>{const e={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function t(r){return e[r]??null}const n={regex:"enigo",email:"retadreso",url:"URL",emoji:"emo\u011Dio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-da\u016Dro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"};return r=>{switch(r.code){case"invalid_type":return`Nevalida enigo: atendi\u011Dis ${r.expected}, ricevi\u011Dis ${UTe(r.input)}`;case"invalid_value":return r.values.length===1?`Nevalida enigo: atendi\u011Dis ${Lt(r.values[0])}`:`Nevalida opcio: atendi\u011Dis unu el ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`Tro granda: atendi\u011Dis ke ${r.origin??"valoro"} havu ${i}${r.maximum.toString()} ${o.unit??"elementojn"}`:`Tro granda: atendi\u011Dis ke ${r.origin??"valoro"} havu ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`Tro malgranda: atendi\u011Dis ke ${r.origin} havu ${i}${r.minimum.toString()} ${o.unit}`:`Tro malgranda: atendi\u011Dis ke ${r.origin} estu ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Nevalida karaktraro: devas komenci\u011Di per "${i.prefix}"`:i.format==="ends_with"?`Nevalida karaktraro: devas fini\u011Di per "${i.suffix}"`:i.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${i.includes}"`:i.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${i.pattern}`:`Nevalida ${n[i.format]??r.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${r.divisor}`;case"unrecognized_keys":return`Nekonata${r.keys.length>1?"j":""} \u015Dlosilo${r.keys.length>1?"j":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`Nevalida \u015Dlosilo en ${r.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${r.origin}`;default:return"Nevalida enigo"}}};function VTe(){return{localeError:WTe()}}const HTe=()=>{const e={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}},t={string:"texto",number:"n\xFAmero",boolean:"booleano",array:"arreglo",object:"objeto",set:"conjunto",file:"archivo",date:"fecha",bigint:"n\xFAmero grande",symbol:"s\xEDmbolo",undefined:"indefinido",null:"nulo",function:"funci\xF3n",map:"mapa",record:"registro",tuple:"tupla",enum:"enumeraci\xF3n",union:"uni\xF3n",literal:"literal",promise:"promesa",void:"vac\xEDo",never:"nunca",unknown:"desconocido",any:"cualquiera"};function n(a){return e[a]??null}function r(a){return t[a]??a}const i=a=>{const s=typeof a;switch(s){case"number":return Number.isNaN(a)?"NaN":"number";case"object":return Array.isArray(a)?"array":a===null?"null":Object.getPrototypeOf(a)!==Object.prototype?a.constructor.name:"object"}return s},o={regex:"entrada",email:"direcci\xF3n de correo electr\xF3nico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duraci\xF3n ISO",ipv4:"direcci\xF3n IPv4",ipv6:"direcci\xF3n IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return a=>{switch(a.code){case"invalid_type":return`Entrada inv\xE1lida: se esperaba ${r(a.expected)}, recibido ${r(i(a.input))}`;case"invalid_value":return a.values.length===1?`Entrada inv\xE1lida: se esperaba ${Lt(a.values[0])}`:`Opci\xF3n inv\xE1lida: se esperaba una de ${qe(a.values,"|")}`;case"too_big":{const s=a.inclusive?"<=":"<",l=n(a.origin),c=r(a.origin);return l?`Demasiado grande: se esperaba que ${c??"valor"} tuviera ${s}${a.maximum.toString()} ${l.unit??"elementos"}`:`Demasiado grande: se esperaba que ${c??"valor"} fuera ${s}${a.maximum.toString()}`}case"too_small":{const s=a.inclusive?">=":">",l=n(a.origin),c=r(a.origin);return l?`Demasiado peque\xF1o: se esperaba que ${c} tuviera ${s}${a.minimum.toString()} ${l.unit}`:`Demasiado peque\xF1o: se esperaba que ${c} fuera ${s}${a.minimum.toString()}`}case"invalid_format":{const s=a;return s.format==="starts_with"?`Cadena inv\xE1lida: debe comenzar con "${s.prefix}"`:s.format==="ends_with"?`Cadena inv\xE1lida: debe terminar en "${s.suffix}"`:s.format==="includes"?`Cadena inv\xE1lida: debe incluir "${s.includes}"`:s.format==="regex"?`Cadena inv\xE1lida: debe coincidir con el patr\xF3n ${s.pattern}`:`Inv\xE1lido ${o[s.format]??a.format}`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: debe ser m\xFAltiplo de ${a.divisor}`;case"unrecognized_keys":return`Llave${a.keys.length>1?"s":""} desconocida${a.keys.length>1?"s":""}: ${qe(a.keys,", ")}`;case"invalid_key":return`Llave inv\xE1lida en ${r(a.origin)}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido en ${r(a.origin)}`;default:return"Entrada inv\xE1lida"}}};function ZTe(){return{localeError:HTe()}}const qTe=()=>{const e={string:{unit:"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},file:{unit:"\u0628\u0627\u06CC\u062A",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},array:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},set:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(i))return"\u0622\u0631\u0627\u06CC\u0647";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0648\u0631\u0648\u062F\u06CC",email:"\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644",url:"URL",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",date:"\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648",time:"\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",duration:"\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",ipv4:"IPv4 \u0622\u062F\u0631\u0633",ipv6:"IPv6 \u0622\u062F\u0631\u0633",cidrv4:"IPv4 \u062F\u0627\u0645\u0646\u0647",cidrv6:"IPv6 \u062F\u0627\u0645\u0646\u0647",base64:"base64-encoded \u0631\u0634\u062A\u0647",base64url:"base64url-encoded \u0631\u0634\u062A\u0647",json_string:"JSON \u0631\u0634\u062A\u0647",e164:"E.164 \u0639\u062F\u062F",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u06CC"};return i=>{switch(i.code){case"invalid_type":return`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${i.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${n(i.input)} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`;case"invalid_value":return i.values.length===1?`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${Lt(i.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`:`\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${qe(i.values,"|")} \u0645\u06CC\u200C\u0628\u0648\u062F`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${i.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${i.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} \u0628\u0627\u0634\u062F`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} ${a.unit} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} \u0628\u0627\u0634\u062F`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${o.prefix}" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`:o.format==="ends_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${o.suffix}" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`:o.format==="includes"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 "${o.includes}" \u0628\u0627\u0634\u062F`:o.format==="regex"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${o.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`:`${r[o.format]??i.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`}case"not_multiple_of":return`\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${i.divisor} \u0628\u0627\u0634\u062F`;case"unrecognized_keys":return`\u06A9\u0644\u06CC\u062F${i.keys.length>1?"\u0647\u0627\u06CC":""} \u0646\u0627\u0634\u0646\u0627\u0633: ${qe(i.keys,", ")}`;case"invalid_key":return`\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${i.origin}`;case"invalid_union":return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631";case"invalid_element":return`\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${i.origin}`;default:return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631"}}};function GTe(){return{localeError:qTe()}}const YTe=()=>{const e={string:{unit:"merkki\xE4",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"p\xE4iv\xE4m\xE4\xE4r\xE4n"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"s\xE4\xE4nn\xF6llinen lauseke",email:"s\xE4hk\xF6postiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-p\xE4iv\xE4m\xE4\xE4r\xE4",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"};return i=>{switch(i.code){case"invalid_type":return`Virheellinen tyyppi: odotettiin ${i.expected}, oli ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Virheellinen sy\xF6te: t\xE4ytyy olla ${Lt(i.values[0])}`:`Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Liian suuri: ${a.subject} t\xE4ytyy olla ${o}${i.maximum.toString()} ${a.unit}`.trim():`Liian suuri: arvon t\xE4ytyy olla ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Liian pieni: ${a.subject} t\xE4ytyy olla ${o}${i.minimum.toString()} ${a.unit}`.trim():`Liian pieni: arvon t\xE4ytyy olla ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Virheellinen sy\xF6te: t\xE4ytyy alkaa "${o.prefix}"`:o.format==="ends_with"?`Virheellinen sy\xF6te: t\xE4ytyy loppua "${o.suffix}"`:o.format==="includes"?`Virheellinen sy\xF6te: t\xE4ytyy sis\xE4lt\xE4\xE4 "${o.includes}"`:o.format==="regex"?`Virheellinen sy\xF6te: t\xE4ytyy vastata s\xE4\xE4nn\xF6llist\xE4 lauseketta ${o.pattern}`:`Virheellinen ${r[o.format]??i.format}`}case"not_multiple_of":return`Virheellinen luku: t\xE4ytyy olla luvun ${i.divisor} monikerta`;case"unrecognized_keys":return`${i.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${qe(i.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen sy\xF6te"}}};function KTe(){return{localeError:YTe()}}const XTe=()=>{const e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"nombre";case"object":{if(Array.isArray(i))return"tableau";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"entr\xE9e",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return i=>{switch(i.code){case"invalid_type":return`Entr\xE9e invalide : ${i.expected} attendu, ${n(i.input)} re\xE7u`;case"invalid_value":return i.values.length===1?`Entr\xE9e invalide : ${Lt(i.values[0])} attendu`:`Option invalide : une valeur parmi ${qe(i.values,"|")} attendue`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Trop grand : ${i.origin??"valeur"} doit ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"\xE9l\xE9ment(s)"}`:`Trop grand : ${i.origin??"valeur"} doit \xEAtre ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Trop petit : ${i.origin} doit ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Trop petit : ${i.origin} doit \xEAtre ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${o.prefix}"`:o.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${o.suffix}"`:o.format==="includes"?`Cha\xEEne invalide : doit inclure "${o.includes}"`:o.format==="regex"?`Cha\xEEne invalide : doit correspondre au mod\xE8le ${o.pattern}`:`${r[o.format]??i.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${i.divisor}`;case"unrecognized_keys":return`Cl\xE9${i.keys.length>1?"s":""} non reconnue${i.keys.length>1?"s":""} : ${qe(i.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${i.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${i.origin}`;default:return"Entr\xE9e invalide"}}};function JTe(){return{localeError:XTe()}}const QTe=()=>{const e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"entr\xE9e",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return i=>{switch(i.code){case"invalid_type":return`Entr\xE9e invalide : attendu ${i.expected}, re\xE7u ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Entr\xE9e invalide : attendu ${Lt(i.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"\u2264":"<",a=t(i.origin);return a?`Trop grand : attendu que ${i.origin??"la valeur"} ait ${o}${i.maximum.toString()} ${a.unit}`:`Trop grand : attendu que ${i.origin??"la valeur"} soit ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?"\u2265":">",a=t(i.origin);return a?`Trop petit : attendu que ${i.origin} ait ${o}${i.minimum.toString()} ${a.unit}`:`Trop petit : attendu que ${i.origin} soit ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${o.prefix}"`:o.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${o.suffix}"`:o.format==="includes"?`Cha\xEEne invalide : doit inclure "${o.includes}"`:o.format==="regex"?`Cha\xEEne invalide : doit correspondre au motif ${o.pattern}`:`${r[o.format]??i.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${i.divisor}`;case"unrecognized_keys":return`Cl\xE9${i.keys.length>1?"s":""} non reconnue${i.keys.length>1?"s":""} : ${qe(i.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${i.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${i.origin}`;default:return"Entr\xE9e invalide"}}};function eIe(){return{localeError:QTe()}}const tIe=()=>{const e={string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA",gender:"f"},number:{label:"\u05DE\u05E1\u05E4\u05E8",gender:"m"},boolean:{label:"\u05E2\u05E8\u05DA \u05D1\u05D5\u05DC\u05D9\u05D0\u05E0\u05D9",gender:"m"},bigint:{label:"BigInt",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA",gender:"m"},array:{label:"\u05DE\u05E2\u05E8\u05DA",gender:"m"},object:{label:"\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8",gender:"m"},null:{label:"\u05E2\u05E8\u05DA \u05E8\u05D9\u05E7 (null)",gender:"m"},undefined:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05DE\u05D5\u05D2\u05D3\u05E8 (undefined)",gender:"m"},symbol:{label:"\u05E1\u05D9\u05DE\u05D1\u05D5\u05DC (Symbol)",gender:"m"},function:{label:"\u05E4\u05D5\u05E0\u05E7\u05E6\u05D9\u05D4",gender:"f"},map:{label:"\u05DE\u05E4\u05D4 (Map)",gender:"f"},set:{label:"\u05E7\u05D1\u05D5\u05E6\u05D4 (Set)",gender:"f"},file:{label:"\u05E7\u05D5\u05D1\u05E5",gender:"m"},promise:{label:"Promise",gender:"m"},NaN:{label:"NaN",gender:"m"},unknown:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05D9\u05D3\u05D5\u05E2",gender:"m"},value:{label:"\u05E2\u05E8\u05DA",gender:"m"}},t={string:{unit:"\u05EA\u05D5\u05D5\u05D9\u05DD",shortLabel:"\u05E7\u05E6\u05E8",longLabel:"\u05D0\u05E8\u05D5\u05DA"},file:{unit:"\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},array:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},set:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},number:{unit:"",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"}},n=c=>c?e[c]:void 0,r=c=>{const d=n(c);return d?d.label:c??e.unknown.label},i=c=>`\u05D4${r(c)}`,o=c=>{var d;return(((d=n(c))==null?void 0:d.gender)??"m")==="f"?"\u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05D9\u05D5\u05EA":"\u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA"},a=c=>c?t[c]??null:null,s=c=>{const d=typeof c;switch(d){case"number":return Number.isNaN(c)?"NaN":"number";case"object":return Array.isArray(c)?"array":c===null?"null":Object.getPrototypeOf(c)!==Object.prototype&&c.constructor?c.constructor.name:"object";default:return d}},l={regex:{label:"\u05E7\u05DC\u05D8",gender:"m"},email:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC",gender:"f"},url:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA",gender:"f"},emoji:{label:"\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9",gender:"m"},uuid:{label:"UUID",gender:"m"},nanoid:{label:"nanoid",gender:"m"},guid:{label:"GUID",gender:"m"},cuid:{label:"cuid",gender:"m"},cuid2:{label:"cuid2",gender:"m"},ulid:{label:"ULID",gender:"m"},xid:{label:"XID",gender:"m"},ksuid:{label:"KSUID",gender:"m"},datetime:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA ISO",gender:"m"},time:{label:"\u05D6\u05DE\u05DF ISO",gender:"m"},duration:{label:"\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO",gender:"m"},ipv4:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv4",gender:"f"},ipv6:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv6",gender:"f"},cidrv4:{label:"\u05D8\u05D5\u05D5\u05D7 IPv4",gender:"m"},cidrv6:{label:"\u05D8\u05D5\u05D5\u05D7 IPv6",gender:"m"},base64:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64",gender:"f"},base64url:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA",gender:"f"},json_string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON",gender:"f"},e164:{label:"\u05DE\u05E1\u05E4\u05E8 E.164",gender:"m"},jwt:{label:"JWT",gender:"m"},ends_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},includes:{label:"\u05E7\u05DC\u05D8",gender:"m"},lowercase:{label:"\u05E7\u05DC\u05D8",gender:"m"},starts_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},uppercase:{label:"\u05E7\u05DC\u05D8",gender:"m"}};return c=>{var d;switch(c.code){case"invalid_type":{const f=c.expected,p=r(f),v=s(c.input),_=((d=e[v])==null?void 0:d.label)??v;return`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${p}, \u05D4\u05EA\u05E7\u05D1\u05DC ${_}`}case"invalid_value":{if(c.values.length===1)return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05E2\u05E8\u05DA \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA ${Lt(c.values[0])}`;const f=c.values.map(v=>Lt(v));if(c.values.length===2)return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${f[0]} \u05D0\u05D5 ${f[1]}`;const p=f[f.length-1];return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${f.slice(0,-1).join(", ")} \u05D0\u05D5 ${p}`}case"too_big":{const f=a(c.origin),p=i(c.origin??"value");if(c.origin==="string")return`${(f==null?void 0:f.longLabel)??"\u05D0\u05E8\u05D5\u05DA"} \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${c.maximum.toString()} ${(f==null?void 0:f.unit)??""} ${c.inclusive?"\u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA":"\u05DC\u05DB\u05DC \u05D4\u05D9\u05D5\u05EA\u05E8"}`.trim();if(c.origin==="number"){const y=c.inclusive?`\u05E7\u05D8\u05DF \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${c.maximum}`:`\u05E7\u05D8\u05DF \u05DE-${c.maximum}`;return`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${y}`}if(c.origin==="array"||c.origin==="set"){const y=c.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA",b=c.inclusive?`${c.maximum} ${(f==null?void 0:f.unit)??""} \u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA`:`\u05E4\u05D7\u05D5\u05EA \u05DE-${c.maximum} ${(f==null?void 0:f.unit)??""}`;return`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${p} ${y} \u05DC\u05D4\u05DB\u05D9\u05DC ${b}`.trim()}const v=c.inclusive?"<=":"<",_=o(c.origin??"value");return f!=null&&f.unit?`${f.longLabel} \u05DE\u05D3\u05D9: ${p} ${_} ${v}${c.maximum.toString()} ${f.unit}`:`${(f==null?void 0:f.longLabel)??"\u05D2\u05D3\u05D5\u05DC"} \u05DE\u05D3\u05D9: ${p} ${_} ${v}${c.maximum.toString()}`}case"too_small":{const f=a(c.origin),p=i(c.origin??"value");if(c.origin==="string")return`${(f==null?void 0:f.shortLabel)??"\u05E7\u05E6\u05E8"} \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${c.minimum.toString()} ${(f==null?void 0:f.unit)??""} ${c.inclusive?"\u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8":"\u05DC\u05E4\u05D7\u05D5\u05EA"}`.trim();if(c.origin==="number"){const y=c.inclusive?`\u05D2\u05D3\u05D5\u05DC \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${c.minimum}`:`\u05D2\u05D3\u05D5\u05DC \u05DE-${c.minimum}`;return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${y}`}if(c.origin==="array"||c.origin==="set"){const y=c.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA";if(c.minimum===1&&c.inclusive){const w=(c.origin,"\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3");return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} ${y} \u05DC\u05D4\u05DB\u05D9\u05DC ${w}`}const b=c.inclusive?`${c.minimum} ${(f==null?void 0:f.unit)??""} \u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8`:`\u05D9\u05D5\u05EA\u05E8 \u05DE-${c.minimum} ${(f==null?void 0:f.unit)??""}`;return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} ${y} \u05DC\u05D4\u05DB\u05D9\u05DC ${b}`.trim()}const v=c.inclusive?">=":">",_=o(c.origin??"value");return f!=null&&f.unit?`${f.shortLabel} \u05DE\u05D3\u05D9: ${p} ${_} ${v}${c.minimum.toString()} ${f.unit}`:`${(f==null?void 0:f.shortLabel)??"\u05E7\u05D8\u05DF"} \u05DE\u05D3\u05D9: ${p} ${_} ${v}${c.minimum.toString()}`}case"invalid_format":{const f=c;if(f.format==="starts_with")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1 "${f.prefix}"`;if(f.format==="ends_with")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 "${f.suffix}"`;if(f.format==="includes")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC "${f.includes}"`;if(f.format==="regex")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${f.pattern}`;const p=l[f.format],v=(p==null?void 0:p.label)??f.format,_=((p==null?void 0:p.gender)??"m")==="f"?"\u05EA\u05E7\u05D9\u05E0\u05D4":"\u05EA\u05E7\u05D9\u05DF";return`${v} \u05DC\u05D0 ${_}`}case"not_multiple_of":return`\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${c.divisor}`;case"unrecognized_keys":return`\u05DE\u05E4\u05EA\u05D7${c.keys.length>1?"\u05D5\u05EA":""} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${c.keys.length>1?"\u05D9\u05DD":"\u05D4"}: ${qe(c.keys,", ")}`;case"invalid_key":return"\u05E9\u05D3\u05D4 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8";case"invalid_union":return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF";case"invalid_element":return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${i(c.origin??"array")}`;default:return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF"}}};function nIe(){return{localeError:tIe()}}const rIe=()=>{const e={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"sz\xE1m";case"object":{if(Array.isArray(i))return"t\xF6mb";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"bemenet",email:"email c\xEDm",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO id\u0151b\xE9lyeg",date:"ISO d\xE1tum",time:"ISO id\u0151",duration:"ISO id\u0151intervallum",ipv4:"IPv4 c\xEDm",ipv6:"IPv6 c\xEDm",cidrv4:"IPv4 tartom\xE1ny",cidrv6:"IPv6 tartom\xE1ny",base64:"base64-k\xF3dolt string",base64url:"base64url-k\xF3dolt string",json_string:"JSON string",e164:"E.164 sz\xE1m",jwt:"JWT",template_literal:"bemenet"};return i=>{switch(i.code){case"invalid_type":return`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${i.expected}, a kapott \xE9rt\xE9k ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${Lt(i.values[0])}`:`\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`T\xFAl nagy: ${i.origin??"\xE9rt\xE9k"} m\xE9rete t\xFAl nagy ${o}${i.maximum.toString()} ${a.unit??"elem"}`:`T\xFAl nagy: a bemeneti \xE9rt\xE9k ${i.origin??"\xE9rt\xE9k"} t\xFAl nagy: ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${i.origin} m\xE9rete t\xFAl kicsi ${o}${i.minimum.toString()} ${a.unit}`:`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${i.origin} t\xFAl kicsi ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\xC9rv\xE9nytelen string: "${o.prefix}" \xE9rt\xE9kkel kell kezd\u0151dnie`:o.format==="ends_with"?`\xC9rv\xE9nytelen string: "${o.suffix}" \xE9rt\xE9kkel kell v\xE9gz\u0151dnie`:o.format==="includes"?`\xC9rv\xE9nytelen string: "${o.includes}" \xE9rt\xE9ket kell tartalmaznia`:o.format==="regex"?`\xC9rv\xE9nytelen string: ${o.pattern} mint\xE1nak kell megfelelnie`:`\xC9rv\xE9nytelen ${r[o.format]??i.format}`}case"not_multiple_of":return`\xC9rv\xE9nytelen sz\xE1m: ${i.divisor} t\xF6bbsz\xF6r\xF6s\xE9nek kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`\xC9rv\xE9nytelen kulcs ${i.origin}`;case"invalid_union":return"\xC9rv\xE9nytelen bemenet";case"invalid_element":return`\xC9rv\xE9nytelen \xE9rt\xE9k: ${i.origin}`;default:return"\xC9rv\xE9nytelen bemenet"}}};function iIe(){return{localeError:rIe()}}const oIe=()=>{const e={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Input tidak valid: diharapkan ${i.expected}, diterima ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Input tidak valid: diharapkan ${Lt(i.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Terlalu besar: diharapkan ${i.origin??"value"} memiliki ${o}${i.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: diharapkan ${i.origin??"value"} menjadi ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Terlalu kecil: diharapkan ${i.origin} memiliki ${o}${i.minimum.toString()} ${a.unit}`:`Terlalu kecil: diharapkan ${i.origin} menjadi ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`String tidak valid: harus dimulai dengan "${o.prefix}"`:o.format==="ends_with"?`String tidak valid: harus berakhir dengan "${o.suffix}"`:o.format==="includes"?`String tidak valid: harus menyertakan "${o.includes}"`:o.format==="regex"?`String tidak valid: harus sesuai pola ${o.pattern}`:`${r[o.format]??i.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${i.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${i.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${i.origin}`;default:return"Input tidak valid"}}};function aIe(){return{localeError:oIe()}}const sIe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"n\xFAmer";case"object":{if(Array.isArray(e))return"fylki";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},lIe=()=>{const e={string:{unit:"stafi",verb:"a\xF0 hafa"},file:{unit:"b\xE6ti",verb:"a\xF0 hafa"},array:{unit:"hluti",verb:"a\xF0 hafa"},set:{unit:"hluti",verb:"a\xF0 hafa"}};function t(r){return e[r]??null}const n={regex:"gildi",email:"netfang",url:"vefsl\xF3\xF0",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dagsetning og t\xEDmi",date:"ISO dagsetning",time:"ISO t\xEDmi",duration:"ISO t\xEDmalengd",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded strengur",base64url:"base64url-encoded strengur",json_string:"JSON strengur",e164:"E.164 t\xF6lugildi",jwt:"JWT",template_literal:"gildi"};return r=>{switch(r.code){case"invalid_type":return`Rangt gildi: \xDE\xFA sl\xF3st inn ${sIe(r.input)} \xFEar sem \xE1 a\xF0 vera ${r.expected}`;case"invalid_value":return r.values.length===1?`Rangt gildi: gert r\xE1\xF0 fyrir ${Lt(r.values[0])}`:`\xD3gilt val: m\xE1 vera eitt af eftirfarandi ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin??"gildi"} hafi ${i}${r.maximum.toString()} ${o.unit??"hluti"}`:`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin??"gildi"} s\xE9 ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin} hafi ${i}${r.minimum.toString()} ${o.unit}`:`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin} s\xE9 ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`\xD3gildur strengur: ver\xF0ur a\xF0 byrja \xE1 "${i.prefix}"`:i.format==="ends_with"?`\xD3gildur strengur: ver\xF0ur a\xF0 enda \xE1 "${i.suffix}"`:i.format==="includes"?`\xD3gildur strengur: ver\xF0ur a\xF0 innihalda "${i.includes}"`:i.format==="regex"?`\xD3gildur strengur: ver\xF0ur a\xF0 fylgja mynstri ${i.pattern}`:`Rangt ${n[i.format]??r.format}`}case"not_multiple_of":return`R\xF6ng tala: ver\xF0ur a\xF0 vera margfeldi af ${r.divisor}`;case"unrecognized_keys":return`\xD3\xFEekkt ${r.keys.length>1?"ir lyklar":"ur lykill"}: ${qe(r.keys,", ")}`;case"invalid_key":return`Rangur lykill \xED ${r.origin}`;case"invalid_union":return"Rangt gildi";case"invalid_element":return`Rangt gildi \xED ${r.origin}`;default:return"Rangt gildi"}}};function uIe(){return{localeError:lIe()}}const cIe=()=>{const e={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"numero";case"object":{if(Array.isArray(i))return"vettore";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Input non valido: atteso ${i.expected}, ricevuto ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Input non valido: atteso ${Lt(i.values[0])}`:`Opzione non valida: atteso uno tra ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Troppo grande: ${i.origin??"valore"} deve avere ${o}${i.maximum.toString()} ${a.unit??"elementi"}`:`Troppo grande: ${i.origin??"valore"} deve essere ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Troppo piccolo: ${i.origin} deve avere ${o}${i.minimum.toString()} ${a.unit}`:`Troppo piccolo: ${i.origin} deve essere ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Stringa non valida: deve iniziare con "${o.prefix}"`:o.format==="ends_with"?`Stringa non valida: deve terminare con "${o.suffix}"`:o.format==="includes"?`Stringa non valida: deve includere "${o.includes}"`:o.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${o.pattern}`:`Invalid ${r[o.format]??i.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${i.divisor}`;case"unrecognized_keys":return`Chiav${i.keys.length>1?"i":"e"} non riconosciut${i.keys.length>1?"e":"a"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${i.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${i.origin}`;default:return"Input non valido"}}};function dIe(){return{localeError:cIe()}}const fIe=()=>{const e={string:{unit:"\u6587\u5B57",verb:"\u3067\u3042\u308B"},file:{unit:"\u30D0\u30A4\u30C8",verb:"\u3067\u3042\u308B"},array:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"},set:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u6570\u5024";case"object":{if(Array.isArray(i))return"\u914D\u5217";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u5165\u529B\u5024",email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",url:"URL",emoji:"\u7D75\u6587\u5B57",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u6642",date:"ISO\u65E5\u4ED8",time:"ISO\u6642\u523B",duration:"ISO\u671F\u9593",ipv4:"IPv4\u30A2\u30C9\u30EC\u30B9",ipv6:"IPv6\u30A2\u30C9\u30EC\u30B9",cidrv4:"IPv4\u7BC4\u56F2",cidrv6:"IPv6\u7BC4\u56F2",base64:"base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",base64url:"base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",json_string:"JSON\u6587\u5B57\u5217",e164:"E.164\u756A\u53F7",jwt:"JWT",template_literal:"\u5165\u529B\u5024"};return i=>{switch(i.code){case"invalid_type":return`\u7121\u52B9\u306A\u5165\u529B: ${i.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${n(i.input)}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`;case"invalid_value":return i.values.length===1?`\u7121\u52B9\u306A\u5165\u529B: ${Lt(i.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`:`\u7121\u52B9\u306A\u9078\u629E: ${qe(i.values,"\u3001")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"too_big":{const o=i.inclusive?"\u4EE5\u4E0B\u3067\u3042\u308B":"\u3088\u308A\u5C0F\u3055\u3044",a=t(i.origin);return a?`\u5927\u304D\u3059\u304E\u308B\u5024: ${i.origin??"\u5024"}\u306F${i.maximum.toString()}${a.unit??"\u8981\u7D20"}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5927\u304D\u3059\u304E\u308B\u5024: ${i.origin??"\u5024"}\u306F${i.maximum.toString()}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"too_small":{const o=i.inclusive?"\u4EE5\u4E0A\u3067\u3042\u308B":"\u3088\u308A\u5927\u304D\u3044",a=t(i.origin);return a?`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${i.origin}\u306F${i.minimum.toString()}${a.unit}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${i.origin}\u306F${i.minimum.toString()}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.prefix}"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="ends_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.suffix}"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="includes"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.includes}"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="regex"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${o.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u7121\u52B9\u306A${r[o.format]??i.format}`}case"not_multiple_of":return`\u7121\u52B9\u306A\u6570\u5024: ${i.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"unrecognized_keys":return`\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${i.keys.length>1?"\u7FA4":""}: ${qe(i.keys,"\u3001")}`;case"invalid_key":return`${i.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`;case"invalid_union":return"\u7121\u52B9\u306A\u5165\u529B";case"invalid_element":return`${i.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`;default:return"\u7121\u52B9\u306A\u5165\u529B"}}};function hIe(){return{localeError:fIe()}}const pIe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"\u10E0\u10D8\u10EA\u10EE\u10D5\u10D8";case"object":{if(Array.isArray(e))return"\u10DB\u10D0\u10E1\u10D8\u10D5\u10D8";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return{string:"\u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",boolean:"\u10D1\u10E3\u10DA\u10D4\u10D0\u10DC\u10D8",undefined:"undefined",bigint:"bigint",symbol:"symbol",function:"\u10E4\u10E3\u10DC\u10E5\u10EA\u10D8\u10D0"}[t]??t},mIe=()=>{const e={string:{unit:"\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},file:{unit:"\u10D1\u10D0\u10D8\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},array:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},set:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"}};function t(r){return e[r]??null}const n={regex:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0",email:"\u10D4\u10DA-\u10E4\u10DD\u10E1\u10E2\u10D8\u10E1 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",url:"URL",emoji:"\u10D4\u10DB\u10DD\u10EF\u10D8",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8-\u10D3\u10E0\u10DD",date:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8",time:"\u10D3\u10E0\u10DD",duration:"\u10EE\u10D0\u10DC\u10D2\u10E0\u10EB\u10DA\u10D8\u10D5\u10DD\u10D1\u10D0",ipv4:"IPv4 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",ipv6:"IPv6 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",cidrv4:"IPv4 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",cidrv6:"IPv6 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",base64:"base64-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",base64url:"base64url-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",json_string:"JSON \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",e164:"E.164 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8",jwt:"JWT",template_literal:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"};return r=>{switch(r.code){case"invalid_type":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${pIe(r.input)}`;case"invalid_value":return r.values.length===1?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${Lt(r.values[0])}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D0\u10E0\u10D8\u10D0\u10DC\u10E2\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8\u10D0 \u10D4\u10E0\u10D7-\u10D4\u10E0\u10D7\u10D8 ${qe(r.values,"|")}-\u10D3\u10D0\u10DC`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} ${o.verb} ${i}${r.maximum.toString()} ${o.unit}`:`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} \u10D8\u10E7\u10DD\u10E1 ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin} ${o.verb} ${i}${r.minimum.toString()} ${o.unit}`:`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin} \u10D8\u10E7\u10DD\u10E1 ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10EC\u10E7\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${i.prefix}"-\u10D8\u10D7`:i.format==="ends_with"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10DB\u10D7\u10D0\u10D5\u10E0\u10D3\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${i.suffix}"-\u10D8\u10D7`:i.format==="includes"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1 "${i.includes}"-\u10E1`:i.format==="regex"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D4\u10E1\u10D0\u10D1\u10D0\u10DB\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \u10E8\u10D0\u10D1\u10DA\u10DD\u10DC\u10E1 ${i.pattern}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 ${n[i.format]??r.format}`}case"not_multiple_of":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E0\u10D8\u10EA\u10EE\u10D5\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10E7\u10DD\u10E1 ${r.divisor}-\u10D8\u10E1 \u10EF\u10D4\u10E0\u10D0\u10D3\u10D8`;case"unrecognized_keys":return`\u10E3\u10EA\u10DC\u10DD\u10D1\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1${r.keys.length>1?"\u10D4\u10D1\u10D8":"\u10D8"}: ${qe(r.keys,", ")}`;case"invalid_key":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1\u10D8 ${r.origin}-\u10E8\u10D8`;case"invalid_union":return"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0";case"invalid_element":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0 ${r.origin}-\u10E8\u10D8`;default:return"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"}}};function gIe(){return{localeError:mIe()}}const vIe=()=>{const e={string:{unit:"\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},file:{unit:"\u1794\u17C3",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},array:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},set:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u1798\u17B7\u1793\u1798\u17C2\u1793\u1787\u17B6\u179B\u17C1\u1781 (NaN)":"\u179B\u17C1\u1781";case"object":{if(Array.isArray(i))return"\u17A2\u17B6\u179A\u17C1 (Array)";if(i===null)return"\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B",email:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B",url:"URL",emoji:"\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO",date:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO",time:"\u1798\u17C9\u17C4\u1784 ISO",duration:"\u179A\u1799\u17C8\u1796\u17C1\u179B ISO",ipv4:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",ipv6:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",cidrv4:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",cidrv6:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",base64:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64",base64url:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url",json_string:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON",e164:"\u179B\u17C1\u1781 E.164",jwt:"JWT",template_literal:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B"};return i=>{switch(i.code){case"invalid_type":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${Lt(i.values[0])}`:`\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${o} ${i.maximum.toString()} ${a.unit??"\u1792\u17B6\u178F\u17BB"}`:`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin} ${o} ${i.minimum.toString()} ${a.unit}`:`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin} ${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 "${o.prefix}"`:o.format==="ends_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 "${o.suffix}"`:o.format==="includes"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 "${o.includes}"`:o.format==="regex"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${o.pattern}`:`\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${i.divisor}`;case"unrecognized_keys":return`\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${qe(i.keys,", ")}`;case"invalid_key":return`\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${i.origin}`;case"invalid_union":return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C";case"invalid_element":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${i.origin}`;default:return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C"}}};function PX(){return{localeError:vIe()}}function yIe(){return PX()}const bIe=()=>{const e={string:{unit:"\uBB38\uC790",verb:"to have"},file:{unit:"\uBC14\uC774\uD2B8",verb:"to have"},array:{unit:"\uAC1C",verb:"to have"},set:{unit:"\uAC1C",verb:"to have"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\uC785\uB825",email:"\uC774\uBA54\uC77C \uC8FC\uC18C",url:"URL",emoji:"\uC774\uBAA8\uC9C0",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \uB0A0\uC9DC\uC2DC\uAC04",date:"ISO \uB0A0\uC9DC",time:"ISO \uC2DC\uAC04",duration:"ISO \uAE30\uAC04",ipv4:"IPv4 \uC8FC\uC18C",ipv6:"IPv6 \uC8FC\uC18C",cidrv4:"IPv4 \uBC94\uC704",cidrv6:"IPv6 \uBC94\uC704",base64:"base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",base64url:"base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",json_string:"JSON \uBB38\uC790\uC5F4",e164:"E.164 \uBC88\uD638",jwt:"JWT",template_literal:"\uC785\uB825"};return i=>{switch(i.code){case"invalid_type":return`\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${i.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${n(i.input)}\uC785\uB2C8\uB2E4`;case"invalid_value":return i.values.length===1?`\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${Lt(i.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C \uC635\uC158: ${qe(i.values,"\uB610\uB294 ")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"too_big":{const o=i.inclusive?"\uC774\uD558":"\uBBF8\uB9CC",a=o==="\uBBF8\uB9CC"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",s=t(i.origin),l=(s==null?void 0:s.unit)??"\uC694\uC18C";return s?`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${i.maximum.toString()}${l} ${o}${a}`:`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${i.maximum.toString()} ${o}${a}`}case"too_small":{const o=i.inclusive?"\uC774\uC0C1":"\uCD08\uACFC",a=o==="\uC774\uC0C1"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",s=t(i.origin),l=(s==null?void 0:s.unit)??"\uC694\uC18C";return s?`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${i.minimum.toString()}${l} ${o}${a}`:`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${i.minimum.toString()} ${o}${a}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.prefix}"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`:o.format==="ends_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.suffix}"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`:o.format==="includes"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.includes}"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`:o.format==="regex"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${o.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C ${r[o.format]??i.format}`}case"not_multiple_of":return`\uC798\uBABB\uB41C \uC22B\uC790: ${i.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"unrecognized_keys":return`\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${qe(i.keys,", ")}`;case"invalid_key":return`\uC798\uBABB\uB41C \uD0A4: ${i.origin}`;case"invalid_union":return"\uC798\uBABB\uB41C \uC785\uB825";case"invalid_element":return`\uC798\uBABB\uB41C \uAC12: ${i.origin}`;default:return"\uC798\uBABB\uB41C \uC785\uB825"}}};function _Ie(){return{localeError:bIe()}}const xIe=e=>ob(typeof e,e),ob=(e,t=void 0)=>{switch(e){case"number":return Number.isNaN(t)?"NaN":"skai\u010Dius";case"bigint":return"sveikasis skai\u010Dius";case"string":return"eilut\u0117";case"boolean":return"login\u0117 reik\u0161m\u0117";case"undefined":case"void":return"neapibr\u0117\u017Eta reik\u0161m\u0117";case"function":return"funkcija";case"symbol":return"simbolis";case"object":return t===void 0?"ne\u017Einomas objektas":t===null?"nulin\u0117 reik\u0161m\u0117":Array.isArray(t)?"masyvas":Object.getPrototypeOf(t)!==Object.prototype&&t.constructor?t.constructor.name:"objektas";case"null":return"nulin\u0117 reik\u0161m\u0117"}return e},ab=e=>e.charAt(0).toUpperCase()+e.slice(1);function zX(e){const t=Math.abs(e),n=t%10,r=t%100;return r>=11&&r<=19||n===0?"many":n===1?"one":"few"}const wIe=()=>{const e={string:{unit:{one:"simbolis",few:"simboliai",many:"simboli\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne ilgesn\u0117 kaip",notInclusive:"turi b\u016Bti trumpesn\u0117 kaip"},bigger:{inclusive:"turi b\u016Bti ne trumpesn\u0117 kaip",notInclusive:"turi b\u016Bti ilgesn\u0117 kaip"}}},file:{unit:{one:"baitas",few:"baitai",many:"bait\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne didesnis kaip",notInclusive:"turi b\u016Bti ma\u017Eesnis kaip"},bigger:{inclusive:"turi b\u016Bti ne ma\u017Eesnis kaip",notInclusive:"turi b\u016Bti didesnis kaip"}}},array:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}},set:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}}};function t(r,i,o,a){const s=e[r]??null;return s===null?s:{unit:s.unit[i],verb:s.verb[a][o?"inclusive":"notInclusive"]}}const n={regex:"\u012Fvestis",email:"el. pa\u0161to adresas",url:"URL",emoji:"jaustukas",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO data ir laikas",date:"ISO data",time:"ISO laikas",duration:"ISO trukm\u0117",ipv4:"IPv4 adresas",ipv6:"IPv6 adresas",cidrv4:"IPv4 tinklo prefiksas (CIDR)",cidrv6:"IPv6 tinklo prefiksas (CIDR)",base64:"base64 u\u017Ekoduota eilut\u0117",base64url:"base64url u\u017Ekoduota eilut\u0117",json_string:"JSON eilut\u0117",e164:"E.164 numeris",jwt:"JWT",template_literal:"\u012Fvestis"};return r=>{switch(r.code){case"invalid_type":return`Gautas tipas ${xIe(r.input)}, o tik\u0117tasi - ${ob(r.expected)}`;case"invalid_value":return r.values.length===1?`Privalo b\u016Bti ${Lt(r.values[0])}`:`Privalo b\u016Bti vienas i\u0161 ${qe(r.values,"|")} pasirinkim\u0173`;case"too_big":{const i=ob(r.origin),o=t(r.origin,zX(Number(r.maximum)),r.inclusive??!1,"smaller");if(o!=null&&o.verb)return`${ab(i??r.origin??"reik\u0161m\u0117")} ${o.verb} ${r.maximum.toString()} ${o.unit??"element\u0173"}`;const a=r.inclusive?"ne didesnis kaip":"ma\u017Eesnis kaip";return`${ab(i??r.origin??"reik\u0161m\u0117")} turi b\u016Bti ${a} ${r.maximum.toString()} ${o==null?void 0:o.unit}`}case"too_small":{const i=ob(r.origin),o=t(r.origin,zX(Number(r.minimum)),r.inclusive??!1,"bigger");if(o!=null&&o.verb)return`${ab(i??r.origin??"reik\u0161m\u0117")} ${o.verb} ${r.minimum.toString()} ${o.unit??"element\u0173"}`;const a=r.inclusive?"ne ma\u017Eesnis kaip":"didesnis kaip";return`${ab(i??r.origin??"reik\u0161m\u0117")} turi b\u016Bti ${a} ${r.minimum.toString()} ${o==null?void 0:o.unit}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Eilut\u0117 privalo prasid\u0117ti "${i.prefix}"`:i.format==="ends_with"?`Eilut\u0117 privalo pasibaigti "${i.suffix}"`:i.format==="includes"?`Eilut\u0117 privalo \u012Ftraukti "${i.includes}"`:i.format==="regex"?`Eilut\u0117 privalo atitikti ${i.pattern}`:`Neteisingas ${n[i.format]??r.format}`}case"not_multiple_of":return`Skai\u010Dius privalo b\u016Bti ${r.divisor} kartotinis.`;case"unrecognized_keys":return`Neatpa\u017Eint${r.keys.length>1?"i":"as"} rakt${r.keys.length>1?"ai":"as"}: ${qe(r.keys,", ")}`;case"invalid_key":return"Rastas klaidingas raktas";case"invalid_union":return"Klaidinga \u012Fvestis";case"invalid_element":{const i=ob(r.origin);return`${ab(i??r.origin??"reik\u0161m\u0117")} turi klaiding\u0105 \u012Fvest\u012F`}default:return"Klaidinga \u012Fvestis"}}};function kIe(){return{localeError:wIe()}}const SIe=()=>{const e={string:{unit:"\u0437\u043D\u0430\u0446\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},file:{unit:"\u0431\u0430\u0458\u0442\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},array:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},set:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0431\u0440\u043E\u0458";case"object":{if(Array.isArray(i))return"\u043D\u0438\u0437\u0430";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0432\u043D\u0435\u0441",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430",url:"URL",emoji:"\u0435\u043C\u043E\u045F\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0443\u043C",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441\u0430",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441\u0430",cidrv4:"IPv4 \u043E\u043F\u0441\u0435\u0433",cidrv6:"IPv6 \u043E\u043F\u0441\u0435\u0433",base64:"base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",base64url:"base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",json_string:"JSON \u043D\u0438\u0437\u0430",e164:"E.164 \u0431\u0440\u043E\u0458",jwt:"JWT",template_literal:"\u0432\u043D\u0435\u0441"};return i=>{switch(i.code){case"invalid_type":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Invalid input: expected ${Lt(i.values[0])}`:`\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0438\u043C\u0430 ${o}${i.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438"}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin} \u0434\u0430 \u0438\u043C\u0430 ${o}${i.minimum.toString()} ${a.unit}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${o.pattern}`:`Invalid ${r[o.format]??i.format}`}case"not_multiple_of":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438":"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447"}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${i.origin}`;case"invalid_union":return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441";case"invalid_element":return`\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${i.origin}`;default:return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441"}}};function CIe(){return{localeError:SIe()}}const jIe=()=>{const e={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"nombor";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Input tidak sah: dijangka ${i.expected}, diterima ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Input tidak sah: dijangka ${Lt(i.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Terlalu besar: dijangka ${i.origin??"nilai"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: dijangka ${i.origin??"nilai"} adalah ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Terlalu kecil: dijangka ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Terlalu kecil: dijangka ${i.origin} adalah ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`String tidak sah: mesti bermula dengan "${o.prefix}"`:o.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${o.suffix}"`:o.format==="includes"?`String tidak sah: mesti mengandungi "${o.includes}"`:o.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${o.pattern}`:`${r[o.format]??i.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${i.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${qe(i.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${i.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${i.origin}`;default:return"Input tidak sah"}}};function TIe(){return{localeError:jIe()}}const IIe=()=>{const e={string:{unit:"tekens",verb:"te hebben"},file:{unit:"bytes",verb:"te hebben"},array:{unit:"elementen",verb:"te hebben"},set:{unit:"elementen",verb:"te hebben"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"getal";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"};return i=>{switch(i.code){case"invalid_type":return`Ongeldige invoer: verwacht ${i.expected}, ontving ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ongeldige invoer: verwacht ${Lt(i.values[0])}`:`Ongeldige optie: verwacht \xE9\xE9n van ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Te groot: verwacht dat ${i.origin??"waarde"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"elementen"}`:`Te groot: verwacht dat ${i.origin??"waarde"} ${o}${i.maximum.toString()} is`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Te klein: verwacht dat ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Te klein: verwacht dat ${i.origin} ${o}${i.minimum.toString()} is`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ongeldige tekst: moet met "${o.prefix}" beginnen`:o.format==="ends_with"?`Ongeldige tekst: moet op "${o.suffix}" eindigen`:o.format==="includes"?`Ongeldige tekst: moet "${o.includes}" bevatten`:o.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${o.pattern}`:`Ongeldig: ${r[o.format]??i.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${i.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${i.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${i.origin}`;default:return"Ongeldige invoer"}}};function EIe(){return{localeError:IIe()}}const NIe=()=>{const e={string:{unit:"tegn",verb:"\xE5 ha"},file:{unit:"bytes",verb:"\xE5 ha"},array:{unit:"elementer",verb:"\xE5 inneholde"},set:{unit:"elementer",verb:"\xE5 inneholde"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"tall";case"object":{if(Array.isArray(i))return"liste";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Ugyldig input: forventet ${i.expected}, fikk ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ugyldig verdi: forventet ${Lt(i.values[0])}`:`Ugyldig valg: forventet en av ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`For stor(t): forventet ${i.origin??"value"} til \xE5 ha ${o}${i.maximum.toString()} ${a.unit??"elementer"}`:`For stor(t): forventet ${i.origin??"value"} til \xE5 ha ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`For lite(n): forventet ${i.origin} til \xE5 ha ${o}${i.minimum.toString()} ${a.unit}`:`For lite(n): forventet ${i.origin} til \xE5 ha ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ugyldig streng: m\xE5 starte med "${o.prefix}"`:o.format==="ends_with"?`Ugyldig streng: m\xE5 ende med "${o.suffix}"`:o.format==="includes"?`Ugyldig streng: m\xE5 inneholde "${o.includes}"`:o.format==="regex"?`Ugyldig streng: m\xE5 matche m\xF8nsteret ${o.pattern}`:`Ugyldig ${r[o.format]??i.format}`}case"not_multiple_of":return`Ugyldig tall: m\xE5 v\xE6re et multiplum av ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Ukjente n\xF8kler":"Ukjent n\xF8kkel"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8kkel i ${i.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${i.origin}`;default:return"Ugyldig input"}}};function $Ie(){return{localeError:NIe()}}const MIe=()=>{const e={string:{unit:"harf",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"unsur",verb:"olmal\u0131d\u0131r"},set:{unit:"unsur",verb:"olmal\u0131d\u0131r"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"numara";case"object":{if(Array.isArray(i))return"saf";if(i===null)return"gayb";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"giren",email:"epostag\xE2h",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO heng\xE2m\u0131",date:"ISO tarihi",time:"ISO zaman\u0131",duration:"ISO m\xFCddeti",ipv4:"IPv4 ni\u015F\xE2n\u0131",ipv6:"IPv6 ni\u015F\xE2n\u0131",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-\u015Fifreli metin",base64url:"base64url-\u015Fifreli metin",json_string:"JSON metin",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"giren"};return i=>{switch(i.code){case"invalid_type":return`F\xE2sit giren: umulan ${i.expected}, al\u0131nan ${n(i.input)}`;case"invalid_value":return i.values.length===1?`F\xE2sit giren: umulan ${Lt(i.values[0])}`:`F\xE2sit tercih: m\xFBteberler ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Fazla b\xFCy\xFCk: ${i.origin??"value"}, ${o}${i.maximum.toString()} ${a.unit??"elements"} sahip olmal\u0131yd\u0131.`:`Fazla b\xFCy\xFCk: ${i.origin??"value"}, ${o}${i.maximum.toString()} olmal\u0131yd\u0131.`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Fazla k\xFC\xE7\xFCk: ${i.origin}, ${o}${i.minimum.toString()} ${a.unit} sahip olmal\u0131yd\u0131.`:`Fazla k\xFC\xE7\xFCk: ${i.origin}, ${o}${i.minimum.toString()} olmal\u0131yd\u0131.`}case"invalid_format":{const o=i;return o.format==="starts_with"?`F\xE2sit metin: "${o.prefix}" ile ba\u015Flamal\u0131.`:o.format==="ends_with"?`F\xE2sit metin: "${o.suffix}" ile bitmeli.`:o.format==="includes"?`F\xE2sit metin: "${o.includes}" ihtiv\xE2 etmeli.`:o.format==="regex"?`F\xE2sit metin: ${o.pattern} nak\u015F\u0131na uymal\u0131.`:`F\xE2sit ${r[o.format]??i.format}`}case"not_multiple_of":return`F\xE2sit say\u0131: ${i.divisor} kat\u0131 olmal\u0131yd\u0131.`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar ${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} i\xE7in tan\u0131nmayan anahtar var.`;case"invalid_union":return"Giren tan\u0131namad\u0131.";case"invalid_element":return`${i.origin} i\xE7in tan\u0131nmayan k\u0131ymet var.`;default:return"K\u0131ymet tan\u0131namad\u0131."}}};function LIe(){return{localeError:MIe()}}const RIe=()=>{const e={string:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},file:{unit:"\u0628\u0627\u06CC\u067C\u0633",verb:"\u0648\u0644\u0631\u064A"},array:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},set:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(i))return"\u0627\u0631\u06D0";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0648\u0631\u0648\u062F\u064A",email:"\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9",url:"\u06CC\u0648 \u0622\u0631 \u0627\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A",date:"\u0646\u06D0\u067C\u0647",time:"\u0648\u062E\u062A",duration:"\u0645\u0648\u062F\u0647",ipv4:"\u062F IPv4 \u067E\u062A\u0647",ipv6:"\u062F IPv6 \u067E\u062A\u0647",cidrv4:"\u062F IPv4 \u0633\u0627\u062D\u0647",cidrv6:"\u062F IPv6 \u0633\u0627\u062D\u0647",base64:"base64-encoded \u0645\u062A\u0646",base64url:"base64url-encoded \u0645\u062A\u0646",json_string:"JSON \u0645\u062A\u0646",e164:"\u062F E.164 \u0634\u0645\u06D0\u0631\u0647",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u064A"};return i=>{switch(i.code){case"invalid_type":return`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${i.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${n(i.input)} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`;case"invalid_value":return i.values.length===1?`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${Lt(i.values[0])} \u0648\u0627\u06CC`:`\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${qe(i.values,"|")} \u0685\u062E\u0647 \u0648\u0627\u06CC`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${i.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631\u0648\u0646\u0647"} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${i.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} \u0648\u064A`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} ${a.unit} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} \u0648\u064A`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${o.prefix}" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`:o.format==="ends_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${o.suffix}" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`:o.format==="includes"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F "${o.includes}" \u0648\u0644\u0631\u064A`:o.format==="regex"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${o.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`:`${r[o.format]??i.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`}case"not_multiple_of":return`\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${i.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`;case"unrecognized_keys":return`\u0646\u0627\u0633\u0645 ${i.keys.length>1?"\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647":"\u06A9\u0644\u06CC\u0689"}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${i.origin} \u06A9\u06D0`;case"invalid_union":return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A";case"invalid_element":return`\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${i.origin} \u06A9\u06D0`;default:return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A"}}};function OIe(){return{localeError:RIe()}}const PIe=()=>{const e={string:{unit:"znak\xF3w",verb:"mie\u0107"},file:{unit:"bajt\xF3w",verb:"mie\u0107"},array:{unit:"element\xF3w",verb:"mie\u0107"},set:{unit:"element\xF3w",verb:"mie\u0107"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"liczba";case"object":{if(Array.isArray(i))return"tablica";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"wyra\u017Cenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ci\u0105g znak\xF3w zakodowany w formacie base64",base64url:"ci\u0105g znak\xF3w zakodowany w formacie base64url",json_string:"ci\u0105g znak\xF3w w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wej\u015Bcie"};return i=>{switch(i.code){case"invalid_type":return`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${i.expected}, otrzymano ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${Lt(i.values[0])}`:`Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${o}${i.maximum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${o}${i.minimum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zaczyna\u0107 si\u0119 od "${o.prefix}"`:o.format==="ends_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi ko\u0144czy\u0107 si\u0119 na "${o.suffix}"`:o.format==="includes"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zawiera\u0107 "${o.includes}"`:o.format==="regex"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi odpowiada\u0107 wzorcowi ${o.pattern}`:`Nieprawid\u0142ow(y/a/e) ${r[o.format]??i.format}`}case"not_multiple_of":return`Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${i.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Nieprawid\u0142owy klucz w ${i.origin}`;case"invalid_union":return"Nieprawid\u0142owe dane wej\u015Bciowe";case"invalid_element":return`Nieprawid\u0142owa warto\u015B\u0107 w ${i.origin}`;default:return"Nieprawid\u0142owe dane wej\u015Bciowe"}}};function zIe(){return{localeError:PIe()}}const DIe=()=>{const e={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"n\xFAmero";case"object":{if(Array.isArray(i))return"array";if(i===null)return"nulo";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"padr\xE3o",email:"endere\xE7o de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"dura\xE7\xE3o ISO",ipv4:"endere\xE7o IPv4",ipv6:"endere\xE7o IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return i=>{switch(i.code){case"invalid_type":return`Tipo inv\xE1lido: esperado ${i.expected}, recebido ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Entrada inv\xE1lida: esperado ${Lt(i.values[0])}`:`Op\xE7\xE3o inv\xE1lida: esperada uma das ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Muito grande: esperado que ${i.origin??"valor"} tivesse ${o}${i.maximum.toString()} ${a.unit??"elementos"}`:`Muito grande: esperado que ${i.origin??"valor"} fosse ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Muito pequeno: esperado que ${i.origin} tivesse ${o}${i.minimum.toString()} ${a.unit}`:`Muito pequeno: esperado que ${i.origin} fosse ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Texto inv\xE1lido: deve come\xE7ar com "${o.prefix}"`:o.format==="ends_with"?`Texto inv\xE1lido: deve terminar com "${o.suffix}"`:o.format==="includes"?`Texto inv\xE1lido: deve incluir "${o.includes}"`:o.format==="regex"?`Texto inv\xE1lido: deve corresponder ao padr\xE3o ${o.pattern}`:`${r[o.format]??i.format} inv\xE1lido`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${i.divisor}`;case"unrecognized_keys":return`Chave${i.keys.length>1?"s":""} desconhecida${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Chave inv\xE1lida em ${i.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido em ${i.origin}`;default:return"Campo inv\xE1lido"}}};function AIe(){return{localeError:DIe()}}function DX(e,t,n,r){const i=Math.abs(e),o=i%10,a=i%100;return a>=11&&a<=19?r:o===1?t:o>=2&&o<=4?n:r}const FIe=()=>{const e={string:{unit:{one:"\u0441\u0438\u043C\u0432\u043E\u043B",few:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",many:"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u0430",many:"\u0431\u0430\u0439\u0442"},verb:"\u0438\u043C\u0435\u0442\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(i))return"\u043C\u0430\u0441\u0441\u0438\u0432";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0432\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u044F",duration:"ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64",base64url:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url",json_string:"JSON \u0441\u0442\u0440\u043E\u043A\u0430",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0432\u043E\u0434"};return i=>{switch(i.code){case"invalid_type":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${i.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${Lt(i.values[0])}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);if(a){const s=Number(i.maximum),l=DX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${o}${i.maximum.toString()} ${l}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);if(a){const s=Number(i.minimum),l=DX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${o}${i.minimum.toString()} ${l}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin} \u0431\u0443\u0434\u0435\u0442 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${i.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${i.keys.length>1?"\u044B\u0435":"\u044B\u0439"} \u043A\u043B\u044E\u0447${i.keys.length>1?"\u0438":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${i.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435";case"invalid_element":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${i.origin}`;default:return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"}}};function BIe(){return{localeError:FIe()}}const UIe=()=>{const e={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0161tevilo";case"object":{if(Array.isArray(i))return"tabela";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"vnos",email:"e-po\u0161tni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in \u010Das",date:"ISO datum",time:"ISO \u010Das",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 \u0161tevilka",jwt:"JWT",template_literal:"vnos"};return i=>{switch(i.code){case"invalid_type":return`Neveljaven vnos: pri\u010Dakovano ${i.expected}, prejeto ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Neveljaven vnos: pri\u010Dakovano ${Lt(i.values[0])}`:`Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Preveliko: pri\u010Dakovano, da bo ${i.origin??"vrednost"} imelo ${o}${i.maximum.toString()} ${a.unit??"elementov"}`:`Preveliko: pri\u010Dakovano, da bo ${i.origin??"vrednost"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Premajhno: pri\u010Dakovano, da bo ${i.origin} imelo ${o}${i.minimum.toString()} ${a.unit}`:`Premajhno: pri\u010Dakovano, da bo ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Neveljaven niz: mora se za\u010Deti z "${o.prefix}"`:o.format==="ends_with"?`Neveljaven niz: mora se kon\u010Dati z "${o.suffix}"`:o.format==="includes"?`Neveljaven niz: mora vsebovati "${o.includes}"`:o.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${o.pattern}`:`Neveljaven ${r[o.format]??i.format}`}case"not_multiple_of":return`Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${i.divisor}`;case"unrecognized_keys":return`Neprepoznan${i.keys.length>1?"i klju\u010Di":" klju\u010D"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Neveljaven klju\u010D v ${i.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${i.origin}`;default:return"Neveljaven vnos"}}};function WIe(){return{localeError:UIe()}}const VIe=()=>{const e={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att inneh\xE5lla"},set:{unit:"objekt",verb:"att inneh\xE5lla"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"antal";case"object":{if(Array.isArray(i))return"lista";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"regulj\xE4rt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad str\xE4ng",base64url:"base64url-kodad str\xE4ng",json_string:"JSON-str\xE4ng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"};return i=>{switch(i.code){case"invalid_type":return`Ogiltig inmatning: f\xF6rv\xE4ntat ${i.expected}, fick ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ogiltig inmatning: f\xF6rv\xE4ntat ${Lt(i.values[0])}`:`Ogiltigt val: f\xF6rv\xE4ntade en av ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`F\xF6r stor(t): f\xF6rv\xE4ntade ${i.origin??"v\xE4rdet"} att ha ${o}${i.maximum.toString()} ${a.unit??"element"}`:`F\xF6r stor(t): f\xF6rv\xE4ntat ${i.origin??"v\xE4rdet"} att ha ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`F\xF6r lite(t): f\xF6rv\xE4ntade ${i.origin??"v\xE4rdet"} att ha ${o}${i.minimum.toString()} ${a.unit}`:`F\xF6r lite(t): f\xF6rv\xE4ntade ${i.origin??"v\xE4rdet"} att ha ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ogiltig str\xE4ng: m\xE5ste b\xF6rja med "${o.prefix}"`:o.format==="ends_with"?`Ogiltig str\xE4ng: m\xE5ste sluta med "${o.suffix}"`:o.format==="includes"?`Ogiltig str\xE4ng: m\xE5ste inneh\xE5lla "${o.includes}"`:o.format==="regex"?`Ogiltig str\xE4ng: m\xE5ste matcha m\xF6nstret "${o.pattern}"`:`Ogiltig(t) ${r[o.format]??i.format}`}case"not_multiple_of":return`Ogiltigt tal: m\xE5ste vara en multipel av ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Ok\xE4nda nycklar":"Ok\xE4nd nyckel"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${i.origin??"v\xE4rdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt v\xE4rde i ${i.origin??"v\xE4rdet"}`;default:return"Ogiltig input"}}};function HIe(){return{localeError:VIe()}}const ZIe=()=>{const e={string:{unit:"\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},file:{unit:"\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},array:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},set:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u0B8E\u0BA3\u0BCD \u0B85\u0BB2\u0BCD\u0BB2\u0BBE\u0BA4\u0BA4\u0BC1":"\u0B8E\u0BA3\u0BCD";case"object":{if(Array.isArray(i))return"\u0B85\u0BA3\u0BBF";if(i===null)return"\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1",email:"\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",date:"ISO \u0BA4\u0BC7\u0BA4\u0BBF",time:"ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",duration:"ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1",ipv4:"IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",ipv6:"IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",cidrv4:"IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",cidrv6:"IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",base64:"base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD",base64url:"base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD",json_string:"JSON \u0B9A\u0BB0\u0BAE\u0BCD",e164:"E.164 \u0B8E\u0BA3\u0BCD",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${Lt(i.values[0])}`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${qe(i.values,"|")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${o}${i.maximum.toString()} ${a.unit??"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${o}${i.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin} ${o}${i.minimum.toString()} ${a.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin} ${o}${i.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.prefix}" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="ends_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.suffix}" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="includes"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.includes}" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="regex"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${o.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${i.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;case"unrecognized_keys":return`\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${i.keys.length>1?"\u0B95\u0BB3\u0BCD":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`;case"invalid_union":return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1";case"invalid_element":return`${i.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`;default:return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1"}}};function qIe(){return{localeError:ZIe()}}const GIe=()=>{const e={string:{unit:"\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},file:{unit:"\u0E44\u0E1A\u0E15\u0E4C",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},array:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},set:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02 (NaN)":"\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02";case"object":{if(Array.isArray(i))return"\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)";if(i===null)return"\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19",email:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25",url:"URL",emoji:"\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",date:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO",time:"\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",duration:"\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",ipv4:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4",ipv6:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6",cidrv4:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4",cidrv6:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6",base64:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64",base64url:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL",json_string:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON",e164:"\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)",jwt:"\u0E42\u0E17\u0E40\u0E04\u0E19 JWT",template_literal:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19"};return i=>{switch(i.code){case"invalid_type":return`\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${i.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${Lt(i.values[0])}`:`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19":"\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32",a=t(i.origin);return a?`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.maximum.toString()} ${a.unit??"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23"}`:`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?"\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22":"\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32",a=t(i.origin);return a?`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.minimum.toString()} ${a.unit}`:`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 "${o.prefix}"`:o.format==="ends_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 "${o.suffix}"`:o.format==="includes"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 "${o.includes}" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`:o.format==="regex"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${o.pattern}`:`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${r[o.format]??i.format}`}case"not_multiple_of":return`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${i.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`;case"unrecognized_keys":return`\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${qe(i.keys,", ")}`;case"invalid_key":return`\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${i.origin}`;case"invalid_union":return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49";case"invalid_element":return`\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${i.origin}`;default:return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07"}}};function YIe(){return{localeError:GIe()}}const KIe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},XIe=()=>{const e={string:{unit:"karakter",verb:"olmal\u0131"},file:{unit:"bayt",verb:"olmal\u0131"},array:{unit:"\xF6\u011Fe",verb:"olmal\u0131"},set:{unit:"\xF6\u011Fe",verb:"olmal\u0131"}};function t(r){return e[r]??null}const n={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO s\xFCre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aral\u0131\u011F\u0131",cidrv6:"IPv6 aral\u0131\u011F\u0131",base64:"base64 ile \u015Fifrelenmi\u015F metin",base64url:"base64url ile \u015Fifrelenmi\u015F metin",json_string:"JSON dizesi",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"\u015Eablon dizesi"};return r=>{switch(r.code){case"invalid_type":return`Ge\xE7ersiz de\u011Fer: beklenen ${r.expected}, al\u0131nan ${KIe(r.input)}`;case"invalid_value":return r.values.length===1?`Ge\xE7ersiz de\u011Fer: beklenen ${Lt(r.values[0])}`:`Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`\xC7ok b\xFCy\xFCk: beklenen ${r.origin??"de\u011Fer"} ${i}${r.maximum.toString()} ${o.unit??"\xF6\u011Fe"}`:`\xC7ok b\xFCy\xFCk: beklenen ${r.origin??"de\u011Fer"} ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`\xC7ok k\xFC\xE7\xFCk: beklenen ${r.origin} ${i}${r.minimum.toString()} ${o.unit}`:`\xC7ok k\xFC\xE7\xFCk: beklenen ${r.origin} ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Ge\xE7ersiz metin: "${i.prefix}" ile ba\u015Flamal\u0131`:i.format==="ends_with"?`Ge\xE7ersiz metin: "${i.suffix}" ile bitmeli`:i.format==="includes"?`Ge\xE7ersiz metin: "${i.includes}" i\xE7ermeli`:i.format==="regex"?`Ge\xE7ersiz metin: ${i.pattern} desenine uymal\u0131`:`Ge\xE7ersiz ${n[i.format]??r.format}`}case"not_multiple_of":return`Ge\xE7ersiz say\u0131: ${r.divisor} ile tam b\xF6l\xFCnebilmeli`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar${r.keys.length>1?"lar":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`${r.origin} i\xE7inde ge\xE7ersiz anahtar`;case"invalid_union":return"Ge\xE7ersiz de\u011Fer";case"invalid_element":return`${r.origin} i\xE7inde ge\xE7ersiz de\u011Fer`;default:return"Ge\xE7ersiz de\u011Fer"}}};function JIe(){return{localeError:XIe()}}const QIe=()=>{const e={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},file:{unit:"\u0431\u0430\u0439\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(i))return"\u043C\u0430\u0441\u0438\u0432";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO",date:"\u0434\u0430\u0442\u0430 ISO",time:"\u0447\u0430\u0441 ISO",duration:"\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO",ipv4:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv4",ipv6:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv6",cidrv4:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4",cidrv6:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6",base64:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64",base64url:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url",json_string:"\u0440\u044F\u0434\u043E\u043A JSON",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"};return i=>{switch(i.code){case"invalid_type":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${i.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${Lt(i.values[0])}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432"}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} \u0431\u0443\u0434\u0435 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin} \u0431\u0443\u0434\u0435 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${i.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${i.keys.length>1?"\u0456":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${i.origin}`;case"invalid_union":return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456";case"invalid_element":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${i.origin}`;default:return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"}}};function AX(){return{localeError:QIe()}}function eEe(){return AX()}const tEe=()=>{const e={string:{unit:"\u062D\u0631\u0648\u0641",verb:"\u06C1\u0648\u0646\u0627"},file:{unit:"\u0628\u0627\u0626\u0679\u0633",verb:"\u06C1\u0648\u0646\u0627"},array:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"},set:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0646\u0645\u0628\u0631";case"object":{if(Array.isArray(i))return"\u0622\u0631\u06D2";if(i===null)return"\u0646\u0644";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0627\u0646 \u067E\u0679",email:"\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633",url:"\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",uuidv4:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4",uuidv6:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6",nanoid:"\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC",guid:"\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid2:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2",ulid:"\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC",xid:"\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC",ksuid:"\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",datetime:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645",date:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E",time:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A",duration:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A",ipv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633",ipv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633",cidrv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C",cidrv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C",base64:"\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",base64url:"\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",json_string:"\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF",e164:"\u0627\u06CC 164 \u0646\u0645\u0628\u0631",jwt:"\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC",template_literal:"\u0627\u0646 \u067E\u0679"};return i=>{switch(i.code){case"invalid_type":return`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${i.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${n(i.input)} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`;case"invalid_value":return i.values.length===1?`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${Lt(i.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`:`\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${qe(i.values,"|")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0628\u06C1\u062A \u0628\u0691\u0627: ${i.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u06D2 ${o}${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0627\u0635\u0631"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0628\u0691\u0627: ${i.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u0627 ${o}${i.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${i.origin} \u06A9\u06D2 ${o}${i.minimum.toString()} ${a.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${i.origin} \u06A9\u0627 ${o}${i.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.prefix}" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="ends_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.suffix}" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="includes"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.includes}" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="regex"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${o.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:`\u063A\u0644\u0637 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${i.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;case"unrecognized_keys":return`\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${i.keys.length>1?"\u0632":""}: ${qe(i.keys,"\u060C ")}`;case"invalid_key":return`${i.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`;case"invalid_union":return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679";case"invalid_element":return`${i.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`;default:return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679"}}};function nEe(){return{localeError:tEe()}}const rEe=()=>{const e={string:{unit:"k\xFD t\u1EF1",verb:"c\xF3"},file:{unit:"byte",verb:"c\xF3"},array:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"},set:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"s\u1ED1";case"object":{if(Array.isArray(i))return"m\u1EA3ng";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0111\u1EA7u v\xE0o",email:"\u0111\u1ECBa ch\u1EC9 email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ng\xE0y gi\u1EDD ISO",date:"ng\xE0y ISO",time:"gi\u1EDD ISO",duration:"kho\u1EA3ng th\u1EDDi gian ISO",ipv4:"\u0111\u1ECBa ch\u1EC9 IPv4",ipv6:"\u0111\u1ECBa ch\u1EC9 IPv6",cidrv4:"d\u1EA3i IPv4",cidrv6:"d\u1EA3i IPv6",base64:"chu\u1ED7i m\xE3 h\xF3a base64",base64url:"chu\u1ED7i m\xE3 h\xF3a base64url",json_string:"chu\u1ED7i JSON",e164:"s\u1ED1 E.164",jwt:"JWT",template_literal:"\u0111\u1EA7u v\xE0o"};return i=>{switch(i.code){case"invalid_type":return`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${i.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${Lt(i.values[0])}`:`T\xF9y ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\xE1c gi\xE1 tr\u1ECB ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${i.origin??"gi\xE1 tr\u1ECB"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"ph\u1EA7n t\u1EED"}`:`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${i.origin??"gi\xE1 tr\u1ECB"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng "${o.prefix}"`:o.format==="ends_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng "${o.suffix}"`:o.format==="includes"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m "${o.includes}"`:o.format==="regex"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${o.pattern}`:`${r[o.format]??i.format} kh\xF4ng h\u1EE3p l\u1EC7`}case"not_multiple_of":return`S\u1ED1 kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\xE0 b\u1ED9i s\u1ED1 c\u1EE7a ${i.divisor}`;case"unrecognized_keys":return`Kh\xF3a kh\xF4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${qe(i.keys,", ")}`;case"invalid_key":return`Kh\xF3a kh\xF4ng h\u1EE3p l\u1EC7 trong ${i.origin}`;case"invalid_union":return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7";case"invalid_element":return`Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7 trong ${i.origin}`;default:return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7"}}};function iEe(){return{localeError:rEe()}}const oEe=()=>{const e={string:{unit:"\u5B57\u7B26",verb:"\u5305\u542B"},file:{unit:"\u5B57\u8282",verb:"\u5305\u542B"},array:{unit:"\u9879",verb:"\u5305\u542B"},set:{unit:"\u9879",verb:"\u5305\u542B"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u975E\u6570\u5B57(NaN)":"\u6570\u5B57";case"object":{if(Array.isArray(i))return"\u6570\u7EC4";if(i===null)return"\u7A7A\u503C(null)";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u8F93\u5165",email:"\u7535\u5B50\u90AE\u4EF6",url:"URL",emoji:"\u8868\u60C5\u7B26\u53F7",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u671F\u65F6\u95F4",date:"ISO\u65E5\u671F",time:"ISO\u65F6\u95F4",duration:"ISO\u65F6\u957F",ipv4:"IPv4\u5730\u5740",ipv6:"IPv6\u5730\u5740",cidrv4:"IPv4\u7F51\u6BB5",cidrv6:"IPv6\u7F51\u6BB5",base64:"base64\u7F16\u7801\u5B57\u7B26\u4E32",base64url:"base64url\u7F16\u7801\u5B57\u7B26\u4E32",json_string:"JSON\u5B57\u7B26\u4E32",e164:"E.164\u53F7\u7801",jwt:"JWT",template_literal:"\u8F93\u5165"};return i=>{switch(i.code){case"invalid_type":return`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${i.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${Lt(i.values[0])}`:`\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${i.origin??"\u503C"} ${o}${i.maximum.toString()} ${a.unit??"\u4E2A\u5143\u7D20"}`:`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${i.origin??"\u503C"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${i.origin} ${o}${i.minimum.toString()} ${a.unit}`:`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${o.prefix}" \u5F00\u5934`:o.format==="ends_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${o.suffix}" \u7ED3\u5C3E`:o.format==="includes"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B "${o.includes}"`:o.format==="regex"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${o.pattern}`:`\u65E0\u6548${r[o.format]??i.format}`}case"not_multiple_of":return`\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${i.divisor} \u7684\u500D\u6570`;case"unrecognized_keys":return`\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`;case"invalid_union":return"\u65E0\u6548\u8F93\u5165";case"invalid_element":return`${i.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`;default:return"\u65E0\u6548\u8F93\u5165"}}};function aEe(){return{localeError:oEe()}}const sEe=()=>{const e={string:{unit:"\u5B57\u5143",verb:"\u64C1\u6709"},file:{unit:"\u4F4D\u5143\u7D44",verb:"\u64C1\u6709"},array:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"},set:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u8F38\u5165",email:"\u90F5\u4EF6\u5730\u5740",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u65E5\u671F\u6642\u9593",date:"ISO \u65E5\u671F",time:"ISO \u6642\u9593",duration:"ISO \u671F\u9593",ipv4:"IPv4 \u4F4D\u5740",ipv6:"IPv6 \u4F4D\u5740",cidrv4:"IPv4 \u7BC4\u570D",cidrv6:"IPv6 \u7BC4\u570D",base64:"base64 \u7DE8\u78BC\u5B57\u4E32",base64url:"base64url \u7DE8\u78BC\u5B57\u4E32",json_string:"JSON \u5B57\u4E32",e164:"E.164 \u6578\u503C",jwt:"JWT",template_literal:"\u8F38\u5165"};return i=>{switch(i.code){case"invalid_type":return`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${i.expected}\uFF0C\u4F46\u6536\u5230 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${Lt(i.values[0])}`:`\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${i.origin??"\u503C"} \u61C9\u70BA ${o}${i.maximum.toString()} ${a.unit??"\u500B\u5143\u7D20"}`:`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${i.origin??"\u503C"} \u61C9\u70BA ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${i.origin} \u61C9\u70BA ${o}${i.minimum.toString()} ${a.unit}`:`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${i.origin} \u61C9\u70BA ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${o.prefix}" \u958B\u982D`:o.format==="ends_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${o.suffix}" \u7D50\u5C3E`:o.format==="includes"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B "${o.includes}"`:o.format==="regex"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${o.pattern}`:`\u7121\u6548\u7684 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${i.divisor} \u7684\u500D\u6578`;case"unrecognized_keys":return`\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${i.keys.length>1?"\u5011":""}\uFF1A${qe(i.keys,"\u3001")}`;case"invalid_key":return`${i.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`;case"invalid_union":return"\u7121\u6548\u7684\u8F38\u5165\u503C";case"invalid_element":return`${i.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`;default:return"\u7121\u6548\u7684\u8F38\u5165\u503C"}}};function lEe(){return{localeError:sEe()}}const uEe=()=>{const e={string:{unit:"\xE0mi",verb:"n\xED"},file:{unit:"bytes",verb:"n\xED"},array:{unit:"nkan",verb:"n\xED"},set:{unit:"nkan",verb:"n\xED"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"n\u1ECD\u0301mb\xE0";case"object":{if(Array.isArray(i))return"akop\u1ECD";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9",email:"\xE0d\xEDr\u1EB9\u0301s\xEC \xECm\u1EB9\u0301l\xEC",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\xE0k\xF3k\xF2 ISO",date:"\u1ECDj\u1ECD\u0301 ISO",time:"\xE0k\xF3k\xF2 ISO",duration:"\xE0k\xF3k\xF2 t\xF3 p\xE9 ISO",ipv4:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv4",ipv6:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv6",cidrv4:"\xE0gb\xE8gb\xE8 IPv4",cidrv6:"\xE0gb\xE8gb\xE8 IPv6",base64:"\u1ECD\u0300r\u1ECD\u0300 t\xED a k\u1ECD\u0301 n\xED base64",base64url:"\u1ECD\u0300r\u1ECD\u0300 base64url",json_string:"\u1ECD\u0300r\u1ECD\u0300 JSON",e164:"n\u1ECD\u0301mb\xE0 E.164",jwt:"JWT",template_literal:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9"};return i=>{switch(i.code){case"invalid_type":return`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${i.expected}, \xE0m\u1ECD\u0300 a r\xED ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${Lt(i.values[0])}`:`\xC0\u1E63\xE0y\xE0n a\u1E63\xEC\u1E63e: yan \u1ECD\u0300kan l\xE1ra ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${i.origin??"iye"} ${a.verb} ${o}${i.maximum} ${a.unit}`:`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 ${o}${i.maximum}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${i.origin} ${a.verb} ${o}${i.minimum} ${a.unit}`:`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 ${o}${i.minimum}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u1EB9\u0300r\u1EB9\u0300 p\u1EB9\u0300l\xFA "${o.prefix}"`:o.format==="ends_with"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 par\xED p\u1EB9\u0300l\xFA "${o.suffix}"`:o.format==="includes"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 n\xED "${o.includes}"`:o.format==="regex"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\xE1 \xE0p\u1EB9\u1EB9r\u1EB9 mu ${o.pattern}`:`A\u1E63\xEC\u1E63e: ${r[o.format]??i.format}`}case"not_multiple_of":return`N\u1ECD\u0301mb\xE0 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 j\u1EB9\u0301 \xE8y\xE0 p\xEDp\xEDn ti ${i.divisor}`;case"unrecognized_keys":return`B\u1ECDt\xECn\xEC \xE0\xECm\u1ECD\u0300: ${qe(i.keys,", ")}`;case"invalid_key":return`B\u1ECDt\xECn\xEC a\u1E63\xEC\u1E63e n\xEDn\xFA ${i.origin}`;case"invalid_union":return"\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e";case"invalid_element":return`Iye a\u1E63\xEC\u1E63e n\xEDn\xFA ${i.origin}`;default:return"\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e"}}};function cEe(){return{localeError:uEe()}}const FX=Object.freeze(Object.defineProperty({__proto__:null,ar:STe,az:jTe,be:ITe,bg:$Te,ca:LTe,cs:OTe,da:zTe,de:ATe,en:OX,eo:VTe,es:ZTe,fa:GTe,fi:KTe,fr:JTe,frCA:eIe,he:nIe,hu:iIe,id:aIe,is:uIe,it:dIe,ja:hIe,ka:gIe,kh:yIe,km:PX,ko:_Ie,lt:kIe,mk:CIe,ms:TIe,nl:EIe,no:$Ie,ota:LIe,pl:zIe,ps:OIe,pt:AIe,ru:BIe,sl:WIe,sv:HIe,ta:qIe,th:YIe,tr:JIe,ua:eEe,uk:AX,ur:nEe,vi:iEe,yo:cEe,zhCN:aEe,zhTW:lEe},Symbol.toStringTag,{value:"Module"}));var BX;const UX=Symbol("ZodOutput"),WX=Symbol("ZodInput");class fI{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){const r=n[0];if(this._map.set(t,r),r&&typeof r=="object"&&"id"in r){if(this._idmap.has(r.id))throw new Error(`ID ${r.id} already exists in the registry`);this._idmap.set(r.id,t)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){const n=t._zod.parent;if(n){const r={...this.get(n)??{}};delete r.id;const i={...r,...this._map.get(t)};return Object.keys(i).length?i:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function hI(){return new fI}(BX=globalThis).__zod_globalRegistry??(BX.__zod_globalRegistry=hI());const Gl=globalThis.__zod_globalRegistry;function VX(e,t){return new e({type:"string",...Pe(t)})}function HX(e,t){return new e({type:"string",coerce:!0,...Pe(t)})}function pI(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Pe(t)})}function S3(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Pe(t)})}function mI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Pe(t)})}function gI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Pe(t)})}function vI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Pe(t)})}function yI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Pe(t)})}function C3(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Pe(t)})}function bI(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Pe(t)})}function _I(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Pe(t)})}function xI(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Pe(t)})}function wI(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Pe(t)})}function kI(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Pe(t)})}function SI(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Pe(t)})}function CI(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Pe(t)})}function jI(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Pe(t)})}function TI(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Pe(t)})}function ZX(e,t){return new e({type:"string",format:"mac",check:"string_format",abort:!1,...Pe(t)})}function II(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Pe(t)})}function EI(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Pe(t)})}function NI(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Pe(t)})}function $I(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Pe(t)})}function MI(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Pe(t)})}function LI(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Pe(t)})}const qX={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function GX(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Pe(t)})}function YX(e,t){return new e({type:"string",format:"date",check:"string_format",...Pe(t)})}function KX(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Pe(t)})}function XX(e,t){return new e({type:"string",format:"duration",check:"string_format",...Pe(t)})}function JX(e,t){return new e({type:"number",checks:[],...Pe(t)})}function QX(e,t){return new e({type:"number",coerce:!0,checks:[],...Pe(t)})}function eJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Pe(t)})}function tJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float32",...Pe(t)})}function nJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float64",...Pe(t)})}function rJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"int32",...Pe(t)})}function iJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",...Pe(t)})}function oJ(e,t){return new e({type:"boolean",...Pe(t)})}function aJ(e,t){return new e({type:"boolean",coerce:!0,...Pe(t)})}function sJ(e,t){return new e({type:"bigint",...Pe(t)})}function lJ(e,t){return new e({type:"bigint",coerce:!0,...Pe(t)})}function uJ(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...Pe(t)})}function cJ(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...Pe(t)})}function dJ(e,t){return new e({type:"symbol",...Pe(t)})}function fJ(e,t){return new e({type:"undefined",...Pe(t)})}function hJ(e,t){return new e({type:"null",...Pe(t)})}function pJ(e){return new e({type:"any"})}function mJ(e){return new e({type:"unknown"})}function gJ(e,t){return new e({type:"never",...Pe(t)})}function vJ(e,t){return new e({type:"void",...Pe(t)})}function yJ(e,t){return new e({type:"date",...Pe(t)})}function bJ(e,t){return new e({type:"date",coerce:!0,...Pe(t)})}function _J(e,t){return new e({type:"nan",...Pe(t)})}function vp(e,t){return new nI({check:"less_than",...Pe(t),value:e,inclusive:!1})}function Yl(e,t){return new nI({check:"less_than",...Pe(t),value:e,inclusive:!0})}function yp(e,t){return new rI({check:"greater_than",...Pe(t),value:e,inclusive:!1})}function ys(e,t){return new rI({check:"greater_than",...Pe(t),value:e,inclusive:!0})}function xJ(e){return yp(0,e)}function wJ(e){return vp(0,e)}function kJ(e){return Yl(0,e)}function SJ(e){return ys(0,e)}function sb(e,t){return new HY({check:"multiple_of",...Pe(t),value:e})}function j3(e,t){return new GY({check:"max_size",...Pe(t),maximum:e})}function lb(e,t){return new YY({check:"min_size",...Pe(t),minimum:e})}function RI(e,t){return new KY({check:"size_equals",...Pe(t),size:e})}function T3(e,t){return new XY({check:"max_length",...Pe(t),maximum:e})}function sg(e,t){return new JY({check:"min_length",...Pe(t),minimum:e})}function I3(e,t){return new QY({check:"length_equals",...Pe(t),length:e})}function OI(e,t){return new eK({check:"string_format",format:"regex",...Pe(t),pattern:e})}function PI(e){return new tK({check:"string_format",format:"lowercase",...Pe(e)})}function zI(e){return new nK({check:"string_format",format:"uppercase",...Pe(e)})}function DI(e,t){return new rK({check:"string_format",format:"includes",...Pe(t),includes:e})}function AI(e,t){return new iK({check:"string_format",format:"starts_with",...Pe(t),prefix:e})}function FI(e,t){return new oK({check:"string_format",format:"ends_with",...Pe(t),suffix:e})}function CJ(e,t,n){return new sK({check:"property",property:e,schema:t,...Pe(n)})}function BI(e,t){return new lK({check:"mime_type",mime:e,...Pe(t)})}function Af(e){return new uK({check:"overwrite",tx:e})}function UI(e){return Af(t=>t.normalize(e))}function WI(){return Af(e=>e.trim())}function VI(){return Af(e=>e.toLowerCase())}function HI(){return Af(e=>e.toUpperCase())}function ZI(){return Af(e=>BG(e))}function jJ(e,t,n){return new e({type:"array",element:t,...Pe(n)})}function dEe(e,t,n){return new e({type:"union",options:t,...Pe(n)})}function fEe(e,t,n,r){return new e({type:"union",options:n,discriminator:t,...Pe(r)})}function hEe(e,t,n){return new e({type:"intersection",left:t,right:n})}function pEe(e,t,n,r){const i=n instanceof Ut,o=i?r:n,a=i?n:null;return new e({type:"tuple",items:t,rest:a,...Pe(o)})}function mEe(e,t,n,r){return new e({type:"record",keyType:t,valueType:n,...Pe(r)})}function gEe(e,t,n,r){return new e({type:"map",keyType:t,valueType:n,...Pe(r)})}function vEe(e,t,n){return new e({type:"set",valueType:t,...Pe(n)})}function yEe(e,t,n){const r=Array.isArray(t)?Object.fromEntries(t.map(i=>[i,i])):t;return new e({type:"enum",entries:r,...Pe(n)})}function bEe(e,t,n){return new e({type:"enum",entries:t,...Pe(n)})}function _Ee(e,t,n){return new e({type:"literal",values:Array.isArray(t)?t:[t],...Pe(n)})}function TJ(e,t){return new e({type:"file",...Pe(t)})}function xEe(e,t){return new e({type:"transform",transform:t})}function wEe(e,t){return new e({type:"optional",innerType:t})}function kEe(e,t){return new e({type:"nullable",innerType:t})}function SEe(e,t,n){return new e({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():m3(n)}})}function CEe(e,t,n){return new e({type:"nonoptional",innerType:t,...Pe(n)})}function jEe(e,t){return new e({type:"success",innerType:t})}function TEe(e,t,n){return new e({type:"catch",innerType:t,catchValue:typeof n=="function"?n:()=>n})}function IEe(e,t,n){return new e({type:"pipe",in:t,out:n})}function EEe(e,t){return new e({type:"readonly",innerType:t})}function NEe(e,t,n){return new e({type:"template_literal",parts:t,...Pe(n)})}function $Ee(e,t){return new e({type:"lazy",getter:t})}function MEe(e,t){return new e({type:"promise",innerType:t})}function IJ(e,t,n){const r=Pe(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function EJ(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Pe(n)})}function NJ(e){const t=$J(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(og(r,n.value,t._zod.def));else{const i=r;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=t),i.continue??(i.continue=!t._zod.def.abort),n.issues.push(og(i))}},e(n.value,n)));return t}function $J(e,t){const n=new qr({check:"custom",...Pe(t)});return n._zod.check=e,n}function MJ(e){const t=new qr({check:"describe"});return t._zod.onattach=[n=>{const r=Gl.get(n)??{};Gl.add(n,{...r,description:e})}],t._zod.check=()=>{},t}function LJ(e){const t=new qr({check:"meta"});return t._zod.onattach=[n=>{const r=Gl.get(n)??{};Gl.add(n,{...r,...e})}],t._zod.check=()=>{},t}function RJ(e,t){const n=Pe(t);let r=n.truthy??["true","1","yes","on","y","enabled"],i=n.falsy??["false","0","no","off","n","disabled"];n.case!=="sensitive"&&(r=r.map(v=>typeof v=="string"?v.toLowerCase():v),i=i.map(v=>typeof v=="string"?v.toLowerCase():v));const o=new Set(r),a=new Set(i),s=e.Codec??dI,l=e.Boolean??aI,c=e.String??ib,d=new c({type:"string",error:n.error}),f=new l({type:"boolean",error:n.error}),p=new s({type:"pipe",in:d,out:f,transform:(v,_)=>{let y=v;return n.case!=="sensitive"&&(y=y.toLowerCase()),o.has(y)?!0:a.has(y)?!1:(_.issues.push({code:"invalid_value",expected:"stringbool",values:[...o,...a],input:_.value,inst:p,continue:!1}),{})},reverseTransform:(v,_)=>v===!0?r[0]||"true":i[0]||"false",error:n.error});return p}function ub(e,t,n,r={}){const i=Pe(r),o={...Pe(r),check:"string_format",type:"string",format:t,fn:typeof n=="function"?n:a=>n.test(a),...i};return n instanceof RegExp&&(o.pattern=n),new e(o)}class qI{constructor(t){this.counter=0,this.metadataRegistry=(t==null?void 0:t.metadata)??Gl,this.target=(t==null?void 0:t.target)??"draft-2020-12",this.unrepresentable=(t==null?void 0:t.unrepresentable)??"throw",this.override=(t==null?void 0:t.override)??(()=>{}),this.io=(t==null?void 0:t.io)??"output",this.seen=new Map}process(t,n={path:[],schemaPath:[]}){var d,f,p;var r;const i=t._zod.def,o={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},a=this.seen.get(t);if(a)return a.count++,n.schemaPath.includes(t)&&(a.cycle=n.path),a.schema;const s={schema:{},count:1,cycle:void 0,path:n.path};this.seen.set(t,s);const l=(f=(d=t._zod).toJSONSchema)==null?void 0:f.call(d);if(l)s.schema=l;else{const v={...n,schemaPath:[...n.schemaPath,t],path:n.path},_=t._zod.parent;if(_)s.ref=_,this.process(_,v),this.seen.get(_).isParent=!0;else{const y=s.schema;switch(i.type){case"string":{const b=y;b.type="string";const{minimum:w,maximum:x,format:S,patterns:C,contentEncoding:j}=t._zod.bag;if(typeof w=="number"&&(b.minLength=w),typeof x=="number"&&(b.maxLength=x),S&&(b.format=o[S]??S,b.format===""&&delete b.format),j&&(b.contentEncoding=j),C&&C.size>0){const T=[...C];T.length===1?b.pattern=T[0].source:T.length>1&&(s.schema.allOf=[...T.map(E=>({...this.target==="draft-7"||this.target==="draft-4"||this.target==="openapi-3.0"?{type:"string"}:{},pattern:E.source}))])}break}case"number":{const b=y,{minimum:w,maximum:x,format:S,multipleOf:C,exclusiveMaximum:j,exclusiveMinimum:T}=t._zod.bag;typeof S=="string"&&S.includes("int")?b.type="integer":b.type="number",typeof T=="number"&&(this.target==="draft-4"||this.target==="openapi-3.0"?(b.minimum=T,b.exclusiveMinimum=!0):b.exclusiveMinimum=T),typeof w=="number"&&(b.minimum=w,typeof T=="number"&&this.target!=="draft-4"&&(T>=w?delete b.minimum:delete b.exclusiveMinimum)),typeof j=="number"&&(this.target==="draft-4"||this.target==="openapi-3.0"?(b.maximum=j,b.exclusiveMaximum=!0):b.exclusiveMaximum=j),typeof x=="number"&&(b.maximum=x,typeof j=="number"&&this.target!=="draft-4"&&(j<=x?delete b.maximum:delete b.exclusiveMaximum)),typeof C=="number"&&(b.multipleOf=C);break}case"boolean":{const b=y;b.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema");break}case"null":{this.target==="openapi-3.0"?(y.type="string",y.nullable=!0,y.enum=[null]):y.type="null";break}case"any":break;case"unknown":break;case"undefined":{if(this.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema");break}case"void":{if(this.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema");break}case"never":{y.not={};break}case"date":{if(this.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema");break}case"array":{const b=y,{minimum:w,maximum:x}=t._zod.bag;typeof w=="number"&&(b.minItems=w),typeof x=="number"&&(b.maxItems=x),b.type="array",b.items=this.process(i.element,{...v,path:[...v.path,"items"]});break}case"object":{const b=y;b.type="object",b.properties={};const w=i.shape;for(const C in w)b.properties[C]=this.process(w[C],{...v,path:[...v.path,"properties",C]});const x=new Set(Object.keys(w)),S=new Set([...x].filter(C=>{const j=i.shape[C]._zod;return this.io==="input"?j.optin===void 0:j.optout===void 0}));S.size>0&&(b.required=Array.from(S)),((p=i.catchall)==null?void 0:p._zod.def.type)==="never"?b.additionalProperties=!1:i.catchall?i.catchall&&(b.additionalProperties=this.process(i.catchall,{...v,path:[...v.path,"additionalProperties"]})):this.io==="output"&&(b.additionalProperties=!1);break}case"union":{const b=y,w=i.discriminator!==void 0,x=i.options.map((S,C)=>this.process(S,{...v,path:[...v.path,w?"oneOf":"anyOf",C]}));w?b.oneOf=x:b.anyOf=x;break}case"intersection":{const b=y,w=this.process(i.left,{...v,path:[...v.path,"allOf",0]}),x=this.process(i.right,{...v,path:[...v.path,"allOf",1]}),S=j=>"allOf"in j&&Object.keys(j).length===1,C=[...S(w)?w.allOf:[w],...S(x)?x.allOf:[x]];b.allOf=C;break}case"tuple":{const b=y;b.type="array";const w=this.target==="draft-2020-12"?"prefixItems":"items",x=this.target==="draft-2020-12"||this.target==="openapi-3.0"?"items":"additionalItems",S=i.items.map((E,$)=>this.process(E,{...v,path:[...v.path,w,$]})),C=i.rest?this.process(i.rest,{...v,path:[...v.path,x,...this.target==="openapi-3.0"?[i.items.length]:[]]}):null;this.target==="draft-2020-12"?(b.prefixItems=S,C&&(b.items=C)):this.target==="openapi-3.0"?(b.items={anyOf:S},C&&b.items.anyOf.push(C),b.minItems=S.length,C||(b.maxItems=S.length)):(b.items=S,C&&(b.additionalItems=C));const{minimum:j,maximum:T}=t._zod.bag;typeof j=="number"&&(b.minItems=j),typeof T=="number"&&(b.maxItems=T);break}case"record":{const b=y;b.type="object",(this.target==="draft-7"||this.target==="draft-2020-12")&&(b.propertyNames=this.process(i.keyType,{...v,path:[...v.path,"propertyNames"]})),b.additionalProperties=this.process(i.valueType,{...v,path:[...v.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema");break}case"enum":{const b=y,w=DT(i.entries);w.every(x=>typeof x=="number")&&(b.type="number"),w.every(x=>typeof x=="string")&&(b.type="string"),b.enum=w;break}case"literal":{const b=y,w=[];for(const x of i.values)if(x===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof x=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");w.push(Number(x))}else w.push(x);if(w.length!==0)if(w.length===1){const x=w[0];b.type=x===null?"null":typeof x,this.target==="draft-4"||this.target==="openapi-3.0"?b.enum=[x]:b.const=x}else w.every(x=>typeof x=="number")&&(b.type="number"),w.every(x=>typeof x=="string")&&(b.type="string"),w.every(x=>typeof x=="boolean")&&(b.type="string"),w.every(x=>x===null)&&(b.type="null"),b.enum=w;break}case"file":{const b=y,w={type:"string",format:"binary",contentEncoding:"binary"},{minimum:x,maximum:S,mime:C}=t._zod.bag;x!==void 0&&(w.minLength=x),S!==void 0&&(w.maxLength=S),C?C.length===1?(w.contentMediaType=C[0],Object.assign(b,w)):b.anyOf=C.map(j=>({...w,contentMediaType:j})):Object.assign(b,w);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{const b=this.process(i.innerType,v);this.target==="openapi-3.0"?(s.ref=i.innerType,y.nullable=!0):y.anyOf=[b,{type:"null"}];break}case"nonoptional":{this.process(i.innerType,v),s.ref=i.innerType;break}case"success":{const b=y;b.type="boolean";break}case"default":{this.process(i.innerType,v),s.ref=i.innerType,y.default=JSON.parse(JSON.stringify(i.defaultValue));break}case"prefault":{this.process(i.innerType,v),s.ref=i.innerType,this.io==="input"&&(y._prefault=JSON.parse(JSON.stringify(i.defaultValue)));break}case"catch":{this.process(i.innerType,v),s.ref=i.innerType;let b;try{b=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}y.default=b;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{const b=y,w=t._zod.pattern;if(!w)throw new Error("Pattern not found in template literal");b.type="string",b.pattern=w.source;break}case"pipe":{const b=this.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;this.process(b,v),s.ref=b;break}case"readonly":{this.process(i.innerType,v),s.ref=i.innerType,y.readOnly=!0;break}case"promise":{this.process(i.innerType,v),s.ref=i.innerType;break}case"optional":{this.process(i.innerType,v),s.ref=i.innerType;break}case"lazy":{const b=t._zod.innerType;this.process(b,v),s.ref=b;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}case"function":{if(this.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema");break}}}}const c=this.metadataRegistry.get(t);return c&&Object.assign(s.schema,c),this.io==="input"&&fa(t)&&(delete s.schema.examples,delete s.schema.default),this.io==="input"&&s.schema._prefault&&((r=s.schema).default??(r.default=s.schema._prefault)),delete s.schema._prefault,this.seen.get(t).schema}emit(t,n){var d,f,p,v,_,y;const r={cycles:(n==null?void 0:n.cycles)??"ref",reused:(n==null?void 0:n.reused)??"inline",external:(n==null?void 0:n.external)??void 0},i=this.seen.get(t);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=b=>{var C;const w=this.target==="draft-2020-12"?"$defs":"definitions";if(r.external){const j=(C=r.external.registry.get(b[0]))==null?void 0:C.id,T=r.external.uri??($=>$);if(j)return{ref:T(j)};const E=b[1].defId??b[1].schema.id??`schema${this.counter++}`;return b[1].defId=E,{defId:E,ref:`${T("__shared")}#/${w}/${E}`}}if(b[1]===i)return{ref:"#"};const x=`#/${w}/`,S=b[1].schema.id??`__schema${this.counter++}`;return{defId:S,ref:x+S}},a=b=>{if(b[1].schema.$ref)return;const w=b[1],{ref:x,defId:S}=o(b);w.def={...w.schema},S&&(w.defId=S);const C=w.schema;for(const j in C)delete C[j];C.$ref=x};if(r.cycles==="throw")for(const b of this.seen.entries()){const w=b[1];if(w.cycle)throw new Error(`Cycle detected: #/${(d=w.cycle)==null?void 0:d.join("/")}/ - -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const b of this.seen.entries()){const w=b[1];if(t===b[0]){a(b);continue}if(r.external){const x=(f=r.external.registry.get(b[0]))==null?void 0:f.id;if(t!==b[0]&&x){a(b);continue}}if((p=this.metadataRegistry.get(b[0]))!=null&&p.id){a(b);continue}if(w.cycle){a(b);continue}if(w.count>1&&r.reused==="ref"){a(b);continue}}const s=(b,w)=>{const x=this.seen.get(b),S=x.def??x.schema,C={...S};if(x.ref===null)return;const j=x.ref;if(x.ref=null,j){s(j,w);const T=this.seen.get(j).schema;T.$ref&&(w.target==="draft-7"||w.target==="draft-4"||w.target==="openapi-3.0")?(S.allOf=S.allOf??[],S.allOf.push(T)):(Object.assign(S,T),Object.assign(S,C))}x.isParent||this.override({zodSchema:b,jsonSchema:S,path:x.path??[]})};for(const b of[...this.seen.entries()].reverse())s(b[0],{target:this.target});const l={};if(this.target==="draft-2020-12"?l.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?l.$schema="http://json-schema.org/draft-07/schema#":this.target==="draft-4"?l.$schema="http://json-schema.org/draft-04/schema#":this.target==="openapi-3.0"||console.warn(`Invalid target: ${this.target}`),(v=r.external)==null?void 0:v.uri){const b=(_=r.external.registry.get(t))==null?void 0:_.id;if(!b)throw new Error("Schema is missing an `id` property");l.$id=r.external.uri(b)}Object.assign(l,i.def);const c=((y=r.external)==null?void 0:y.defs)??{};for(const b of this.seen.entries()){const w=b[1];w.def&&w.defId&&(c[w.defId]=w.def)}r.external||Object.keys(c).length>0&&(this.target==="draft-2020-12"?l.$defs=c:l.definitions=c);try{return JSON.parse(JSON.stringify(l))}catch{throw new Error("Error converting schema to JSON.")}}}function OJ(e,t){if(e instanceof fI){const r=new qI(t),i={};for(const s of e._idmap.entries()){const[l,c]=s;r.process(c)}const o={},a={registry:e,uri:t==null?void 0:t.uri,defs:i};for(const s of e._idmap.entries()){const[l,c]=s;o[l]=r.emit(c,{...t,external:a})}if(Object.keys(i).length>0){const s=r.target==="draft-2020-12"?"$defs":"definitions";o.__shared={[s]:i}}return{schemas:o}}const n=new qI(t);return n.process(e),n.emit(e,t)}function fa(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return fa(r.element,n);if(r.type==="set")return fa(r.valueType,n);if(r.type==="lazy")return fa(r.getter(),n);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return fa(r.innerType,n);if(r.type==="intersection")return fa(r.left,n)||fa(r.right,n);if(r.type==="record"||r.type==="map")return fa(r.keyType,n)||fa(r.valueType,n);if(r.type==="pipe")return fa(r.in,n)||fa(r.out,n);if(r.type==="object"){for(const i in r.shape)if(fa(r.shape[i],n))return!0;return!1}if(r.type==="union"){for(const i of r.options)if(fa(i,n))return!0;return!1}if(r.type==="tuple"){for(const i of r.items)if(fa(i,n))return!0;return!!(r.rest&&fa(r.rest,n))}return!1}const LEe=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),REe=Object.freeze(Object.defineProperty({__proto__:null,$ZodAny:VK,$ZodArray:KK,$ZodAsyncError:hp,$ZodBase64:MK,$ZodBase64URL:RK,$ZodBigInt:sI,$ZodBigIntFormat:FK,$ZodBoolean:aI,$ZodCIDRv4:NK,$ZodCIDRv6:$K,$ZodCUID:yK,$ZodCUID2:bK,$ZodCatch:kX,$ZodCheck:qr,$ZodCheckBigIntFormat:qY,$ZodCheckEndsWith:oK,$ZodCheckGreaterThan:rI,$ZodCheckIncludes:rK,$ZodCheckLengthEquals:QY,$ZodCheckLessThan:nI,$ZodCheckLowerCase:tK,$ZodCheckMaxLength:XY,$ZodCheckMaxSize:GY,$ZodCheckMimeType:lK,$ZodCheckMinLength:JY,$ZodCheckMinSize:YY,$ZodCheckMultipleOf:HY,$ZodCheckNumberFormat:ZY,$ZodCheckOverwrite:uK,$ZodCheckProperty:sK,$ZodCheckRegex:eK,$ZodCheckSizeEquals:KY,$ZodCheckStartsWith:iK,$ZodCheckStringFormat:rb,$ZodCheckUpperCase:nK,$ZodCodec:dI,$ZodCustom:MX,$ZodCustomStringFormat:DK,$ZodDate:GK,$ZodDefault:vX,$ZodDiscriminatedUnion:nX,$ZodE164:OK,$ZodEmail:pK,$ZodEmoji:gK,$ZodEncodeError:d3,$ZodEnum:cX,$ZodError:BT,$ZodFile:fX,$ZodFunction:EX,$ZodGUID:fK,$ZodIPv4:TK,$ZodIPv6:IK,$ZodISODate:SK,$ZodISODateTime:kK,$ZodISODuration:jK,$ZodISOTime:CK,$ZodIntersection:rX,$ZodJWT:zK,$ZodKSUID:wK,$ZodLazy:$X,$ZodLiteral:dX,$ZodMAC:EK,$ZodMap:aX,$ZodNaN:SX,$ZodNanoID:vK,$ZodNever:ZK,$ZodNonOptional:_X,$ZodNull:WK,$ZodNullable:gX,$ZodNumber:oI,$ZodNumberFormat:AK,$ZodObject:QK,$ZodObjectJIT:eX,$ZodOptional:mX,$ZodPipe:CX,$ZodPrefault:bX,$ZodPromise:NX,$ZodReadonly:jX,$ZodRealError:vs,$ZodRecord:oX,$ZodRegistry:fI,$ZodSet:lX,$ZodString:ib,$ZodStringFormat:vr,$ZodSuccess:wX,$ZodSymbol:BK,$ZodTemplateLiteral:IX,$ZodTransform:hX,$ZodTuple:cI,$ZodType:Ut,$ZodULID:_K,$ZodURL:mK,$ZodUUID:hK,$ZodUndefined:UK,$ZodUnion:lI,$ZodUnknown:HK,$ZodVoid:qK,$ZodXID:xK,$brand:DG,$constructor:be,$input:WX,$output:UX,Doc:cK,JSONSchema:LEe,JSONSchemaGenerator:qI,NEVER:zG,TimePrecision:qX,_any:pJ,_array:jJ,_base64:NI,_base64url:$I,_bigint:sJ,_boolean:oJ,_catch:TEe,_check:$J,_cidrv4:II,_cidrv6:EI,_coercedBigint:lJ,_coercedBoolean:aJ,_coercedDate:bJ,_coercedNumber:QX,_coercedString:HX,_cuid:xI,_cuid2:wI,_custom:IJ,_date:yJ,_decode:qT,_decodeAsync:YT,_default:SEe,_discriminatedUnion:fEe,_e164:MI,_email:pI,_emoji:bI,_encode:ZT,_encodeAsync:GT,_endsWith:FI,_enum:yEe,_file:TJ,_float32:tJ,_float64:nJ,_gt:yp,_gte:ys,_guid:S3,_includes:DI,_int:eJ,_int32:rJ,_int64:uJ,_intersection:hEe,_ipv4:jI,_ipv6:TI,_isoDate:YX,_isoDateTime:GX,_isoDuration:XX,_isoTime:KX,_jwt:LI,_ksuid:CI,_lazy:$Ee,_length:I3,_literal:_Ee,_lowercase:PI,_lt:vp,_lte:Yl,_mac:ZX,_map:gEe,_max:Yl,_maxLength:T3,_maxSize:j3,_mime:BI,_min:ys,_minLength:sg,_minSize:lb,_multipleOf:sb,_nan:_J,_nanoid:_I,_nativeEnum:bEe,_negative:wJ,_never:gJ,_nonnegative:SJ,_nonoptional:CEe,_nonpositive:kJ,_normalize:UI,_null:hJ,_nullable:kEe,_number:JX,_optional:wEe,_overwrite:Af,_parse:Xy,_parseAsync:Jy,_pipe:IEe,_positive:xJ,_promise:MEe,_property:CJ,_readonly:EEe,_record:mEe,_refine:EJ,_regex:OI,_safeDecode:XT,_safeDecodeAsync:QT,_safeEncode:KT,_safeEncodeAsync:JT,_safeParse:Qy,_safeParseAsync:eb,_set:vEe,_size:RI,_slugify:ZI,_startsWith:AI,_string:VX,_stringFormat:ub,_stringbool:RJ,_success:jEe,_superRefine:NJ,_symbol:dJ,_templateLiteral:NEe,_toLowerCase:VI,_toUpperCase:HI,_transform:xEe,_trim:WI,_tuple:pEe,_uint32:iJ,_uint64:cJ,_ulid:kI,_undefined:fJ,_union:dEe,_unknown:mJ,_uppercase:zI,_url:C3,_uuid:mI,_uuidv4:gI,_uuidv6:vI,_uuidv7:yI,_void:vJ,_xid:SI,clone:il,config:da,decode:Z7e,decodeAsync:G7e,describe:MJ,encode:H7e,encodeAsync:q7e,flattenError:UT,formatError:WT,globalConfig:f3,globalRegistry:Gl,isValidBase64:iI,isValidBase64URL:LK,isValidJWT:PK,locales:FX,meta:LJ,parse:VT,parseAsync:HT,prettifyError:aY,regexes:tI,registry:hI,safeDecode:K7e,safeDecodeAsync:J7e,safeEncode:Y7e,safeEncodeAsync:X7e,safeParse:sY,safeParseAsync:lY,toDotPath:oY,toJSONSchema:OJ,treeifyError:iY,util:nY,version:dK},Symbol.toStringTag,{value:"Module"})),GI=be("ZodISODateTime",(e,t)=>{kK.init(e,t),Tr.init(e,t)});function PJ(e){return GX(GI,e)}const YI=be("ZodISODate",(e,t)=>{SK.init(e,t),Tr.init(e,t)});function zJ(e){return YX(YI,e)}const KI=be("ZodISOTime",(e,t)=>{CK.init(e,t),Tr.init(e,t)});function DJ(e){return KX(KI,e)}const XI=be("ZodISODuration",(e,t)=>{jK.init(e,t),Tr.init(e,t)});function AJ(e){return XX(XI,e)}const OEe=Object.freeze(Object.defineProperty({__proto__:null,ZodISODate:YI,ZodISODateTime:GI,ZodISODuration:XI,ZodISOTime:KI,date:zJ,datetime:PJ,duration:AJ,time:DJ},Symbol.toStringTag,{value:"Module"})),FJ=(e,t)=>{BT.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>WT(e,n)},flatten:{value:n=>UT(e,n)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,h3,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,h3,2)}},isEmpty:{get(){return e.issues.length===0}}})},PEe=be("ZodError",FJ),bs=be("ZodError",FJ,{Parent:Error}),BJ=Xy(bs),UJ=Jy(bs),WJ=Qy(bs),VJ=eb(bs),HJ=ZT(bs),ZJ=qT(bs),qJ=GT(bs),GJ=YT(bs),YJ=KT(bs),KJ=XT(bs),XJ=JT(bs),JJ=QT(bs),rn=be("ZodType",(e,t)=>(Ut.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(rd(t,{checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]})),e.clone=(n,r)=>il(e,n,r),e.brand=()=>e,e.register=(n,r)=>(n.add(e,r),e),e.parse=(n,r)=>BJ(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>WJ(e,n,r),e.parseAsync=async(n,r)=>UJ(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>VJ(e,n,r),e.spa=e.safeParseAsync,e.encode=(n,r)=>HJ(e,n,r),e.decode=(n,r)=>ZJ(e,n,r),e.encodeAsync=async(n,r)=>qJ(e,n,r),e.decodeAsync=async(n,r)=>GJ(e,n,r),e.safeEncode=(n,r)=>YJ(e,n,r),e.safeDecode=(n,r)=>KJ(e,n,r),e.safeEncodeAsync=async(n,r)=>XJ(e,n,r),e.safeDecodeAsync=async(n,r)=>JJ(e,n,r),e.refine=(n,r)=>e.check(OQ(n,r)),e.superRefine=n=>e.check(PQ(n)),e.overwrite=n=>e.check(Af(n)),e.optional=()=>z3(e),e.nullable=()=>xs(e),e.nullish=()=>z3(xs(e)),e.nonoptional=n=>wQ(e,n),e.array=()=>Pr(e),e.or=n=>P3([e,n]),e.and=n=>cQ(e,n),e.transform=n=>D3(e,kE(n)),e.default=n=>bQ(e,n),e.prefault=n=>xQ(e,n),e.catch=n=>CQ(e,n),e.pipe=n=>D3(e,n),e.readonly=()=>IQ(e),e.describe=n=>{const r=e.clone();return Gl.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){var n;return(n=Gl.get(e))==null?void 0:n.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return Gl.get(e);const r=e.clone();return Gl.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),JI=be("_ZodString",(e,t)=>{ib.init(e,t),rn.init(e,t);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(OI(...r)),e.includes=(...r)=>e.check(DI(...r)),e.startsWith=(...r)=>e.check(AI(...r)),e.endsWith=(...r)=>e.check(FI(...r)),e.min=(...r)=>e.check(sg(...r)),e.max=(...r)=>e.check(T3(...r)),e.length=(...r)=>e.check(I3(...r)),e.nonempty=(...r)=>e.check(sg(1,...r)),e.lowercase=r=>e.check(PI(r)),e.uppercase=r=>e.check(zI(r)),e.trim=()=>e.check(WI()),e.normalize=(...r)=>e.check(UI(...r)),e.toLowerCase=()=>e.check(VI()),e.toUpperCase=()=>e.check(HI()),e.slugify=()=>e.check(ZI())}),E3=be("ZodString",(e,t)=>{ib.init(e,t),JI.init(e,t),e.email=n=>e.check(pI(QI,n)),e.url=n=>e.check(C3($3,n)),e.jwt=n=>e.check(LI(pE,n)),e.emoji=n=>e.check(bI(eE,n)),e.guid=n=>e.check(S3(N3,n)),e.uuid=n=>e.check(mI(od,n)),e.uuidv4=n=>e.check(gI(od,n)),e.uuidv6=n=>e.check(vI(od,n)),e.uuidv7=n=>e.check(yI(od,n)),e.nanoid=n=>e.check(_I(tE,n)),e.guid=n=>e.check(S3(N3,n)),e.cuid=n=>e.check(xI(nE,n)),e.cuid2=n=>e.check(wI(rE,n)),e.ulid=n=>e.check(kI(iE,n)),e.base64=n=>e.check(NI(dE,n)),e.base64url=n=>e.check($I(fE,n)),e.xid=n=>e.check(SI(oE,n)),e.ksuid=n=>e.check(CI(aE,n)),e.ipv4=n=>e.check(jI(sE,n)),e.ipv6=n=>e.check(TI(lE,n)),e.cidrv4=n=>e.check(II(uE,n)),e.cidrv6=n=>e.check(EI(cE,n)),e.e164=n=>e.check(MI(hE,n)),e.datetime=n=>e.check(PJ(n)),e.date=n=>e.check(zJ(n)),e.time=n=>e.check(DJ(n)),e.duration=n=>e.check(AJ(n))});function Et(e){return VX(E3,e)}const Tr=be("ZodStringFormat",(e,t)=>{vr.init(e,t),JI.init(e,t)}),QI=be("ZodEmail",(e,t)=>{pK.init(e,t),Tr.init(e,t)});function zEe(e){return pI(QI,e)}const N3=be("ZodGUID",(e,t)=>{fK.init(e,t),Tr.init(e,t)});function DEe(e){return S3(N3,e)}const od=be("ZodUUID",(e,t)=>{hK.init(e,t),Tr.init(e,t)});function AEe(e){return mI(od,e)}function FEe(e){return gI(od,e)}function BEe(e){return vI(od,e)}function UEe(e){return yI(od,e)}const $3=be("ZodURL",(e,t)=>{mK.init(e,t),Tr.init(e,t)});function WEe(e){return C3($3,e)}function VEe(e){return C3($3,{protocol:/^https?$/,hostname:TY,...Pe(e)})}const eE=be("ZodEmoji",(e,t)=>{gK.init(e,t),Tr.init(e,t)});function HEe(e){return bI(eE,e)}const tE=be("ZodNanoID",(e,t)=>{vK.init(e,t),Tr.init(e,t)});function ZEe(e){return _I(tE,e)}const nE=be("ZodCUID",(e,t)=>{yK.init(e,t),Tr.init(e,t)});function qEe(e){return xI(nE,e)}const rE=be("ZodCUID2",(e,t)=>{bK.init(e,t),Tr.init(e,t)});function GEe(e){return wI(rE,e)}const iE=be("ZodULID",(e,t)=>{_K.init(e,t),Tr.init(e,t)});function YEe(e){return kI(iE,e)}const oE=be("ZodXID",(e,t)=>{xK.init(e,t),Tr.init(e,t)});function KEe(e){return SI(oE,e)}const aE=be("ZodKSUID",(e,t)=>{wK.init(e,t),Tr.init(e,t)});function XEe(e){return CI(aE,e)}const sE=be("ZodIPv4",(e,t)=>{TK.init(e,t),Tr.init(e,t)});function JEe(e){return jI(sE,e)}const QJ=be("ZodMAC",(e,t)=>{EK.init(e,t),Tr.init(e,t)});function QEe(e){return ZX(QJ,e)}const lE=be("ZodIPv6",(e,t)=>{IK.init(e,t),Tr.init(e,t)});function eNe(e){return TI(lE,e)}const uE=be("ZodCIDRv4",(e,t)=>{NK.init(e,t),Tr.init(e,t)});function tNe(e){return II(uE,e)}const cE=be("ZodCIDRv6",(e,t)=>{$K.init(e,t),Tr.init(e,t)});function nNe(e){return EI(cE,e)}const dE=be("ZodBase64",(e,t)=>{MK.init(e,t),Tr.init(e,t)});function rNe(e){return NI(dE,e)}const fE=be("ZodBase64URL",(e,t)=>{RK.init(e,t),Tr.init(e,t)});function iNe(e){return $I(fE,e)}const hE=be("ZodE164",(e,t)=>{OK.init(e,t),Tr.init(e,t)});function oNe(e){return MI(hE,e)}const pE=be("ZodJWT",(e,t)=>{zK.init(e,t),Tr.init(e,t)});function aNe(e){return LI(pE,e)}const cb=be("ZodCustomStringFormat",(e,t)=>{DK.init(e,t),Tr.init(e,t)});function sNe(e,t,n={}){return ub(cb,e,t,n)}function lNe(e){return ub(cb,"hostname",jY,e)}function uNe(e){return ub(cb,"hex",WY,e)}function cNe(e,t){const n=(t==null?void 0:t.enc)??"hex",r=`${e}_${n}`,i=tI[r];if(!i)throw new Error(`Unrecognized hash format: ${r}`);return ub(cb,r,i,t)}const M3=be("ZodNumber",(e,t)=>{oI.init(e,t),rn.init(e,t),e.gt=(r,i)=>e.check(yp(r,i)),e.gte=(r,i)=>e.check(ys(r,i)),e.min=(r,i)=>e.check(ys(r,i)),e.lt=(r,i)=>e.check(vp(r,i)),e.lte=(r,i)=>e.check(Yl(r,i)),e.max=(r,i)=>e.check(Yl(r,i)),e.int=r=>e.check(mE(r)),e.safe=r=>e.check(mE(r)),e.positive=r=>e.check(yp(0,r)),e.nonnegative=r=>e.check(ys(0,r)),e.negative=r=>e.check(vp(0,r)),e.nonpositive=r=>e.check(Yl(0,r)),e.multipleOf=(r,i)=>e.check(sb(r,i)),e.step=(r,i)=>e.check(sb(r,i)),e.finite=()=>e;const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function oe(e){return JX(M3,e)}const lg=be("ZodNumberFormat",(e,t)=>{AK.init(e,t),M3.init(e,t)});function mE(e){return eJ(lg,e)}function dNe(e){return tJ(lg,e)}function fNe(e){return nJ(lg,e)}function hNe(e){return rJ(lg,e)}function pNe(e){return iJ(lg,e)}const L3=be("ZodBoolean",(e,t)=>{aI.init(e,t),rn.init(e,t)});function ad(e){return oJ(L3,e)}const R3=be("ZodBigInt",(e,t)=>{sI.init(e,t),rn.init(e,t),e.gte=(r,i)=>e.check(ys(r,i)),e.min=(r,i)=>e.check(ys(r,i)),e.gt=(r,i)=>e.check(yp(r,i)),e.gte=(r,i)=>e.check(ys(r,i)),e.min=(r,i)=>e.check(ys(r,i)),e.lt=(r,i)=>e.check(vp(r,i)),e.lte=(r,i)=>e.check(Yl(r,i)),e.max=(r,i)=>e.check(Yl(r,i)),e.positive=r=>e.check(yp(BigInt(0),r)),e.negative=r=>e.check(vp(BigInt(0),r)),e.nonpositive=r=>e.check(Yl(BigInt(0),r)),e.nonnegative=r=>e.check(ys(BigInt(0),r)),e.multipleOf=(r,i)=>e.check(sb(r,i));const n=e._zod.bag;e.minValue=n.minimum??null,e.maxValue=n.maximum??null,e.format=n.format??null});function mNe(e){return sJ(R3,e)}const gE=be("ZodBigIntFormat",(e,t)=>{FK.init(e,t),R3.init(e,t)});function gNe(e){return uJ(gE,e)}function vNe(e){return cJ(gE,e)}const eQ=be("ZodSymbol",(e,t)=>{BK.init(e,t),rn.init(e,t)});function yNe(e){return dJ(eQ,e)}const tQ=be("ZodUndefined",(e,t)=>{UK.init(e,t),rn.init(e,t)});function bNe(e){return fJ(tQ,e)}const nQ=be("ZodNull",(e,t)=>{WK.init(e,t),rn.init(e,t)});function vE(e){return hJ(nQ,e)}const rQ=be("ZodAny",(e,t)=>{VK.init(e,t),rn.init(e,t)});function _Ne(){return pJ(rQ)}const iQ=be("ZodUnknown",(e,t)=>{HK.init(e,t),rn.init(e,t)});function ug(){return mJ(iQ)}const oQ=be("ZodNever",(e,t)=>{ZK.init(e,t),rn.init(e,t)});function yE(e){return gJ(oQ,e)}const aQ=be("ZodVoid",(e,t)=>{qK.init(e,t),rn.init(e,t)});function xNe(e){return vJ(aQ,e)}const bE=be("ZodDate",(e,t)=>{GK.init(e,t),rn.init(e,t),e.min=(r,i)=>e.check(ys(r,i)),e.max=(r,i)=>e.check(Yl(r,i));const n=e._zod.bag;e.minDate=n.minimum?new Date(n.minimum):null,e.maxDate=n.maximum?new Date(n.maximum):null});function wNe(e){return yJ(bE,e)}const sQ=be("ZodArray",(e,t)=>{KK.init(e,t),rn.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(sg(n,r)),e.nonempty=n=>e.check(sg(1,n)),e.max=(n,r)=>e.check(T3(n,r)),e.length=(n,r)=>e.check(I3(n,r)),e.unwrap=()=>e.element});function Pr(e,t){return jJ(sQ,e,t)}function kNe(e){const t=e._zod.def.shape;return _s(Object.keys(t))}const O3=be("ZodObject",(e,t)=>{eX.init(e,t),rn.init(e,t),vn(e,"shape",()=>t.shape),e.keyof=()=>_s(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:ug()}),e.loose=()=>e.clone({...e._zod.def,catchall:ug()}),e.strict=()=>e.clone({...e._zod.def,catchall:yE()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>YG(e,n),e.safeExtend=n=>KG(e,n),e.merge=n=>XG(e,n),e.pick=n=>qG(e,n),e.omit=n=>GG(e,n),e.partial=(...n)=>JG(SE,e,n[0]),e.required=(...n)=>QG(CE,e,n[0])});function kt(e,t){const n={type:"object",shape:e??{},...Pe(t)};return new O3(n)}function SNe(e,t){return new O3({type:"object",shape:e,catchall:yE(),...Pe(t)})}function CNe(e,t){return new O3({type:"object",shape:e,catchall:ug(),...Pe(t)})}const _E=be("ZodUnion",(e,t)=>{lI.init(e,t),rn.init(e,t),e.options=t.options});function P3(e,t){return new _E({type:"union",options:e,...Pe(t)})}const lQ=be("ZodDiscriminatedUnion",(e,t)=>{_E.init(e,t),nX.init(e,t)});function sd(e,t,n){return new lQ({type:"union",options:t,discriminator:e,...Pe(n)})}const uQ=be("ZodIntersection",(e,t)=>{rX.init(e,t),rn.init(e,t)});function cQ(e,t){return new uQ({type:"intersection",left:e,right:t})}const dQ=be("ZodTuple",(e,t)=>{cI.init(e,t),rn.init(e,t),e.rest=n=>e.clone({...e._zod.def,rest:n})});function xE(e,t,n){const r=t instanceof Ut,i=r?n:t,o=r?t:null;return new dQ({type:"tuple",items:e,rest:o,...Pe(i)})}const wE=be("ZodRecord",(e,t)=>{oX.init(e,t),rn.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function db(e,t,n){return new wE({type:"record",keyType:e,valueType:t,...Pe(n)})}function jNe(e,t,n){const r=il(e);return r._zod.values=void 0,new wE({type:"record",keyType:r,valueType:t,...Pe(n)})}const fQ=be("ZodMap",(e,t)=>{aX.init(e,t),rn.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function TNe(e,t,n){return new fQ({type:"map",keyType:e,valueType:t,...Pe(n)})}const hQ=be("ZodSet",(e,t)=>{lX.init(e,t),rn.init(e,t),e.min=(...n)=>e.check(lb(...n)),e.nonempty=n=>e.check(lb(1,n)),e.max=(...n)=>e.check(j3(...n)),e.size=(...n)=>e.check(RI(...n))});function INe(e,t){return new hQ({type:"set",valueType:e,...Pe(t)})}const fb=be("ZodEnum",(e,t)=>{cX.init(e,t),rn.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(r,i)=>{const o={};for(const a of r)if(n.has(a))o[a]=t.entries[a];else throw new Error(`Key ${a} not found in enum`);return new fb({...t,checks:[],...Pe(i),entries:o})},e.exclude=(r,i)=>{const o={...t.entries};for(const a of r)if(n.has(a))delete o[a];else throw new Error(`Key ${a} not found in enum`);return new fb({...t,checks:[],...Pe(i),entries:o})}});function _s(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new fb({type:"enum",entries:n,...Pe(t)})}function ENe(e,t){return new fb({type:"enum",entries:e,...Pe(t)})}const pQ=be("ZodLiteral",(e,t)=>{dX.init(e,t),rn.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function ft(e,t){return new pQ({type:"literal",values:Array.isArray(e)?e:[e],...Pe(t)})}const mQ=be("ZodFile",(e,t)=>{fX.init(e,t),rn.init(e,t),e.min=(n,r)=>e.check(lb(n,r)),e.max=(n,r)=>e.check(j3(n,r)),e.mime=(n,r)=>e.check(BI(Array.isArray(n)?n:[n],r))});function NNe(e){return TJ(mQ,e)}const gQ=be("ZodTransform",(e,t)=>{hX.init(e,t),rn.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new d3(e.constructor.name);n.addIssue=o=>{if(typeof o=="string")n.issues.push(og(o,n.value,t));else{const a=o;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=n.value),a.inst??(a.inst=e),n.issues.push(og(a))}};const i=t.transform(n.value,n);return i instanceof Promise?i.then(o=>(n.value=o,n)):(n.value=i,n)}});function kE(e){return new gQ({type:"transform",transform:e})}const SE=be("ZodOptional",(e,t)=>{mX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function z3(e){return new SE({type:"optional",innerType:e})}const vQ=be("ZodNullable",(e,t)=>{gX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function xs(e){return new vQ({type:"nullable",innerType:e})}function $Ne(e){return z3(xs(e))}const yQ=be("ZodDefault",(e,t)=>{vX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function bQ(e,t){return new yQ({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():m3(t)}})}const _Q=be("ZodPrefault",(e,t)=>{bX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function xQ(e,t){return new _Q({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():m3(t)}})}const CE=be("ZodNonOptional",(e,t)=>{_X.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function wQ(e,t){return new CE({type:"nonoptional",innerType:e,...Pe(t)})}const kQ=be("ZodSuccess",(e,t)=>{wX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function MNe(e){return new kQ({type:"success",innerType:e})}const SQ=be("ZodCatch",(e,t)=>{kX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function CQ(e,t){return new SQ({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const jQ=be("ZodNaN",(e,t)=>{SX.init(e,t),rn.init(e,t)});function LNe(e){return _J(jQ,e)}const jE=be("ZodPipe",(e,t)=>{CX.init(e,t),rn.init(e,t),e.in=t.in,e.out=t.out});function D3(e,t){return new jE({type:"pipe",in:e,out:t})}const TE=be("ZodCodec",(e,t)=>{jE.init(e,t),dI.init(e,t)});function RNe(e,t,n){return new TE({type:"pipe",in:e,out:t,transform:n.decode,reverseTransform:n.encode})}const TQ=be("ZodReadonly",(e,t)=>{jX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function IQ(e){return new TQ({type:"readonly",innerType:e})}const EQ=be("ZodTemplateLiteral",(e,t)=>{IX.init(e,t),rn.init(e,t)});function ONe(e,t){return new EQ({type:"template_literal",parts:e,...Pe(t)})}const NQ=be("ZodLazy",(e,t)=>{$X.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.getter()});function $Q(e){return new NQ({type:"lazy",getter:e})}const MQ=be("ZodPromise",(e,t)=>{NX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function PNe(e){return new MQ({type:"promise",innerType:e})}const LQ=be("ZodFunction",(e,t)=>{EX.init(e,t),rn.init(e,t)});function RQ(e){return new LQ({type:"function",input:Array.isArray(e==null?void 0:e.input)?xE(e==null?void 0:e.input):(e==null?void 0:e.input)??Pr(ug()),output:(e==null?void 0:e.output)??ug()})}const A3=be("ZodCustom",(e,t)=>{MX.init(e,t),rn.init(e,t)});function zNe(e){const t=new qr({check:"custom"});return t._zod.check=e,t}function DNe(e,t){return IJ(A3,e??(()=>!0),t)}function OQ(e,t={}){return EJ(A3,e,t)}function PQ(e){return NJ(e)}const ANe=MJ,FNe=LJ;function BNe(e,t={error:`Input not instance of ${e.name}`}){const n=new A3({type:"custom",check:"custom",fn:r=>r instanceof e,abort:!0,...Pe(t)});return n._zod.bag.Class=e,n}const UNe=(...e)=>RJ({Codec:TE,Boolean:L3,String:E3},...e);function WNe(e){const t=$Q(()=>P3([Et(e),oe(),ad(),vE(),Pr(t),db(Et(),t)]));return t}function zQ(e,t){return D3(kE(e),t)}const VNe={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function HNe(e){da({customError:e})}function ZNe(){return da().customError}var IE;IE||(IE={});function qNe(e){return HX(E3,e)}function jo(e){return QX(M3,e)}function GNe(e){return aJ(L3,e)}function Zt(e){return lJ(R3,e)}function YNe(e){return bJ(bE,e)}const KNe=Object.freeze(Object.defineProperty({__proto__:null,bigint:Zt,boolean:GNe,date:YNe,number:jo,string:qNe},Symbol.toStringTag,{value:"Module"}));da(OX());const XNe=Object.freeze(Object.defineProperty({__proto__:null,$brand:DG,$input:WX,$output:UX,NEVER:zG,TimePrecision:qX,ZodAny:rQ,ZodArray:sQ,ZodBase64:dE,ZodBase64URL:fE,ZodBigInt:R3,ZodBigIntFormat:gE,ZodBoolean:L3,ZodCIDRv4:uE,ZodCIDRv6:cE,ZodCUID:nE,ZodCUID2:rE,ZodCatch:SQ,ZodCodec:TE,ZodCustom:A3,ZodCustomStringFormat:cb,ZodDate:bE,ZodDefault:yQ,ZodDiscriminatedUnion:lQ,ZodE164:hE,ZodEmail:QI,ZodEmoji:eE,ZodEnum:fb,ZodError:PEe,ZodFile:mQ,get ZodFirstPartyTypeKind(){return IE},ZodFunction:LQ,ZodGUID:N3,ZodIPv4:sE,ZodIPv6:lE,ZodISODate:YI,ZodISODateTime:GI,ZodISODuration:XI,ZodISOTime:KI,ZodIntersection:uQ,ZodIssueCode:VNe,ZodJWT:pE,ZodKSUID:aE,ZodLazy:NQ,ZodLiteral:pQ,ZodMAC:QJ,ZodMap:fQ,ZodNaN:jQ,ZodNanoID:tE,ZodNever:oQ,ZodNonOptional:CE,ZodNull:nQ,ZodNullable:vQ,ZodNumber:M3,ZodNumberFormat:lg,ZodObject:O3,ZodOptional:SE,ZodPipe:jE,ZodPrefault:_Q,ZodPromise:MQ,ZodReadonly:TQ,ZodRealError:bs,ZodRecord:wE,ZodSet:hQ,ZodString:E3,ZodStringFormat:Tr,ZodSuccess:kQ,ZodSymbol:eQ,ZodTemplateLiteral:EQ,ZodTransform:gQ,ZodTuple:dQ,ZodType:rn,ZodULID:iE,ZodURL:$3,ZodUUID:od,ZodUndefined:tQ,ZodUnion:_E,ZodUnknown:iQ,ZodVoid:aQ,ZodXID:oE,_ZodString:JI,_default:bQ,_function:RQ,any:_Ne,array:Pr,base64:rNe,base64url:iNe,bigint:mNe,boolean:ad,catch:CQ,check:zNe,cidrv4:tNe,cidrv6:nNe,clone:il,codec:RNe,coerce:KNe,config:da,core:REe,cuid:qEe,cuid2:GEe,custom:DNe,date:wNe,decode:ZJ,decodeAsync:GJ,describe:ANe,discriminatedUnion:sd,e164:oNe,email:zEe,emoji:HEe,encode:HJ,encodeAsync:qJ,endsWith:FI,enum:_s,file:NNe,flattenError:UT,float32:dNe,float64:fNe,formatError:WT,function:RQ,getErrorMap:ZNe,globalRegistry:Gl,gt:yp,gte:ys,guid:DEe,hash:cNe,hex:uNe,hostname:lNe,httpUrl:VEe,includes:DI,instanceof:BNe,int:mE,int32:hNe,int64:gNe,intersection:cQ,ipv4:JEe,ipv6:eNe,iso:OEe,json:WNe,jwt:aNe,keyof:kNe,ksuid:XEe,lazy:$Q,length:I3,literal:ft,locales:FX,looseObject:CNe,lowercase:PI,lt:vp,lte:Yl,mac:QEe,map:TNe,maxLength:T3,maxSize:j3,meta:FNe,mime:BI,minLength:sg,minSize:lb,multipleOf:sb,nan:LNe,nanoid:ZEe,nativeEnum:ENe,negative:wJ,never:yE,nonnegative:SJ,nonoptional:wQ,nonpositive:kJ,normalize:UI,null:vE,nullable:xs,nullish:$Ne,number:oe,object:kt,optional:z3,overwrite:Af,parse:BJ,parseAsync:UJ,partialRecord:jNe,pipe:D3,positive:xJ,prefault:xQ,preprocess:zQ,prettifyError:aY,promise:PNe,property:CJ,readonly:IQ,record:db,refine:OQ,regex:OI,regexes:tI,registry:hI,safeDecode:KJ,safeDecodeAsync:JJ,safeEncode:YJ,safeEncodeAsync:XJ,safeParse:WJ,safeParseAsync:VJ,set:INe,setErrorMap:HNe,size:RI,slugify:ZI,startsWith:AI,strictObject:SNe,string:Et,stringFormat:sNe,stringbool:UNe,success:MNe,superRefine:PQ,symbol:yNe,templateLiteral:ONe,toJSONSchema:OJ,toLowerCase:VI,toUpperCase:HI,transform:kE,treeifyError:iY,trim:WI,tuple:xE,uint32:pNe,uint64:vNe,ulid:YEe,undefined:bNe,union:P3,unknown:ug,uppercase:zI,url:WEe,util:nY,uuid:AEe,uuidv4:FEe,uuidv6:BEe,uuidv7:UEe,void:xNe,xid:KEe},Symbol.toStringTag,{value:"Module"})),DQ=_s(["Frankendancer","Firedancer"]),EE=DQ.enum,ln=kt({topic:ft("summary")}),AQ=kt({topic:ft("epoch")}),cg=kt({topic:ft("gossip")}),FQ=kt({topic:ft("peers")}),qu=kt({topic:ft("slot")}),BQ=kt({topic:ft("block_engine")}),F3=kt({topic:ft("wait_for_supermajority")});sd("topic",[ln,AQ,cg,FQ,qu,BQ,F3]);const JNe=Et(),QNe=_s(["development","mainnet-beta","devnet","testnet","pythtest","pythnet","unknown"]),e$e=Et(),t$e=Et(),n$e=Et(),r$e=Zt(),UQ=_s(["perf","balanced","revenue"]),ld=UQ.enum,NE=_s(["sock","net","quic","bundle","verify","dedup","resolv","resolh","pack","execle","bank","poh","pohh","shred","store","snapct","snapld","snapdc","snapin","netlnk","metric","ipecho","gossvf","gossip","repair","replay","execrp","tower","txsend","sign","rpc","gui","http","plugin","cswtch","genesi","diag","event"]),i$e=kt({kind:Et(),kind_id:oe()}),WQ=Zt();Zt();const o$e=oe(),a$e=oe(),s$e=oe(),l$e=oe().nullable(),u$e=oe().nullable(),c$e=kt({repair:oe().array(),turbine:oe().array()}),d$e=jo(),f$e=oe(),h$e=oe().nullable(),p$e=oe().nullable(),m$e=oe(),g$e=oe().nullable(),v$e=oe(),y$e=oe(),b$e=kt({total:oe(),vote:oe(),nonvote_success:oe(),nonvote_failed:oe()}),_$e=kt({ingress:Pr(oe()),egress:Pr(oe())}),x$e=kt({pack_cranked:oe(),pack_retained:oe(),resolv_retained:oe(),quic:oe(),udp:oe(),gossip:oe(),block_engine:oe()}),w$e=kt({net_overrun:oe(),quic_overrun:oe(),quic_frag_drop:oe(),quic_abandoned:oe(),tpu_quic_invalid:oe(),tpu_udp_invalid:oe(),verify_overrun:oe(),verify_parse:oe(),verify_failed:oe(),verify_duplicate:oe(),dedup_duplicate:oe(),resolv_lut_failed:oe(),resolv_expired:oe(),resolv_no_ledger:oe(),resolv_ancient:oe(),resolv_retained:oe(),pack_invalid:oe(),pack_already_executed:oe(),pack_invalid_bundle:oe(),pack_retained:oe(),pack_leader_slow:oe(),pack_wait_full:oe(),pack_expired:oe(),bank_invalid:oe(),bank_nonce_already_advanced:oe(),bank_nonce_advance_failed:oe(),bank_nonce_wrong_blockhash:oe(),block_success:oe(),block_fail:oe()}),VQ=kt({in:x$e,out:w$e}),k$e=kt({next_leader_slot:oe().nullable(),waterfall:VQ}),HQ=kt({net_in:oe(),quic:oe(),verify:oe(),bundle_rtt_smoothed_millis:oe(),bundle_rx_delay_millis_p90:oe(),dedup:oe(),pack:oe(),bank:oe(),poh:oe(),shred:oe(),store:oe(),net_out:oe()}),S$e=kt({next_leader_slot:oe().nullable(),tile_primary_metric:HQ}),C$e=kt({timers:Pr(Pr(oe()).nullable()),sched_timers:Pr(Pr(oe()).nullable()),in_backp:Pr(ad().nullable()),backp_msgs:Pr(oe().nullable()),alive:Pr(oe().nullable()),nvcsw:Pr(oe().nullable()),nivcsw:Pr(oe().nullable()),last_cpu:Pr(oe().nullable()),minflt:Pr(oe().nullable()),majflt:Pr(oe().nullable())});kt({tile:Et(),kind_id:oe(),idle:oe()});const j$e=_s(["initializing","searching_for_full_snapshot","downloading_full_snapshot","searching_for_incremental_snapshot","downloading_incremental_snapshot","cleaning_blockstore","cleaning_accounts","loading_ledger","processing_ledger","starting_services","halted","waiting_for_supermajority","running"]),T$e=kt({phase:j$e,downloading_full_snapshot_slot:oe().nullable(),downloading_full_snapshot_peer:Et().nullable(),downloading_full_snapshot_elapsed_secs:oe().nullable(),downloading_full_snapshot_remaining_secs:oe().nullable(),downloading_full_snapshot_throughput:oe().nullable(),downloading_full_snapshot_total_bytes:jo().nullable(),downloading_full_snapshot_current_bytes:jo().nullable(),downloading_incremental_snapshot_slot:oe().nullable(),downloading_incremental_snapshot_peer:Et().nullable(),downloading_incremental_snapshot_elapsed_secs:oe().nullable(),downloading_incremental_snapshot_remaining_secs:oe().nullable(),downloading_incremental_snapshot_throughput:oe().nullable(),downloading_incremental_snapshot_total_bytes:jo().nullable(),downloading_incremental_snapshot_current_bytes:jo().nullable(),ledger_slot:oe().nullable(),ledger_max_slot:oe().nullable(),waiting_for_supermajority_slot:oe().nullable(),waiting_for_supermajority_stake_percent:oe().nullable()}),ZQ=_s(["joining_gossip","loading_full_snapshot","loading_incremental_snapshot","catching_up","waiting_for_supermajority","running"]),wn=ZQ.enum,I$e=kt({phase:ZQ,joining_gossip_elapsed_seconds:oe().nullable().optional(),loading_full_snapshot_elapsed_seconds:oe().nullable().optional(),loading_full_snapshot_reset_count:oe().nullable().optional(),loading_full_snapshot_slot:oe().nullable().optional(),loading_full_snapshot_total_bytes_compressed:jo().nullable().optional(),loading_full_snapshot_read_bytes_compressed:jo().nullable().optional(),loading_full_snapshot_read_path:Et().nullable().optional(),loading_full_snapshot_decompress_bytes_decompressed:jo().nullable().optional(),loading_full_snapshot_decompress_bytes_compressed:jo().nullable().optional(),loading_full_snapshot_insert_bytes_decompressed:jo().nullable().optional(),loading_full_snapshot_insert_accounts:oe().nullable().optional(),loading_incremental_snapshot_elapsed_seconds:oe().nullable().optional(),loading_incremental_snapshot_reset_count:oe().nullable().optional(),loading_incremental_snapshot_slot:oe().nullable().optional(),loading_incremental_snapshot_total_bytes_compressed:jo().nullable().optional(),loading_incremental_snapshot_read_bytes_compressed:jo().nullable().optional(),loading_incremental_snapshot_read_path:Et().nullable().optional(),loading_incremental_snapshot_decompress_bytes_decompressed:jo().nullable().optional(),loading_incremental_snapshot_decompress_bytes_compressed:jo().nullable().optional(),loading_incremental_snapshot_insert_bytes_decompressed:jo().nullable().optional(),loading_incremental_snapshot_insert_accounts:oe().nullable().optional(),wait_for_supermajority_bank_hash:Et().nullable().optional(),wait_for_supermajority_shred_version:Et().nullable().optional(),wait_for_supermajority_attempt:oe().nullable().optional(),wait_for_supermajority_total_stake:Zt().nullable().optional(),wait_for_supermajority_connected_stake:Zt().nullable().optional(),wait_for_supermajority_total_peers:oe().nullable().optional(),wait_for_supermajority_connected_peers:oe().nullable().optional(),catching_up_elapsed_seconds:oe().nullable().optional(),catching_up_first_replay_slot:oe().nullable().optional()}),E$e=zQ(e=>{if(!e||typeof e!="object"||Array.isArray(e))return e;const t=e;return{...t,txn_preload_end_timestamps_nanos:t.txn_preload_end_timestamps_nanos??t.txn_check_start_timestamps_nanos,txn_start_timestamps_nanos:t.txn_start_timestamps_nanos??t.txn_load_start_timestamps_nanos,txn_load_end_timestamps_nanos:t.txn_load_end_timestamps_nanos??t.txn_execute_start_timestamps_nanos,txn_end_timestamps_nanos:t.txn_end_timestamps_nanos??t.txn_commit_start_timestamps_nanos}},kt({start_timestamp_nanos:Zt(),target_end_timestamp_nanos:Zt(),txn_mb_start_timestamps_nanos:Zt().array(),txn_mb_end_timestamps_nanos:Zt().array(),txn_compute_units_requested:oe().array(),txn_compute_units_consumed:oe().array(),txn_transaction_fee:Zt().array(),txn_priority_fee:Zt().array(),txn_tips:Zt().array(),txn_error_code:oe().array(),txn_from_bundle:ad().array(),txn_is_simple_vote:ad().array(),txn_bank_idx:oe().array(),txn_preload_end_timestamps_nanos:Zt().array(),txn_start_timestamps_nanos:Zt().array(),txn_load_end_timestamps_nanos:Zt().array(),txn_end_timestamps_nanos:Zt().array(),txn_commit_end_timestamps_nanos:Zt().array().optional(),txn_arrival_timestamps_nanos:Zt().array(),txn_microblock_id:oe().array(),txn_landed:ad().array(),txn_signature:Et().array(),txn_source_ipv4:Et().array(),txn_source_tpu:Et().array()})),N$e=_s(["incomplete","completed","optimistically_confirmed","rooted","finalized"]),$$e=kt({slot:oe(),mine:ad(),skipped:ad(),level:N$e,success_nonvote_transaction_cnt:oe().nullable(),failed_nonvote_transaction_cnt:oe().nullable(),success_vote_transaction_cnt:oe().nullable(),failed_vote_transaction_cnt:oe().nullable(),priority_fee:Zt().nullable(),transaction_fee:Zt().nullable(),tips:Zt().nullable(),max_compute_units:oe().nullable(),compute_units:oe().nullable(),duration_nanos:oe().nullable(),completed_time_nanos:Zt().nullable(),vote_latency:oe().nullable()}),M$e=Pr(xE([oe(),oe(),oe(),oe()])),L$e=_s(["voting","non-voting","delinquent"]),R$e=oe(),O$e=kt({epoch:oe(),skip_rate:oe()}),P$e=kt({hits:oe(),lookups:oe(),insertions:oe(),insertion_bytes:oe(),evictions:oe(),eviction_bytes:oe(),spills:oe(),spill_bytes:oe(),free_bytes:oe(),size_bytes:oe()}),z$e=sd("key",[ln.extend({key:ft("ping"),value:vE(),id:oe()}),ln.extend({key:ft("version"),value:JNe}),ln.extend({key:ft("cluster"),value:QNe}),ln.extend({key:ft("commit_hash"),value:e$e}),ln.extend({key:ft("identity_key"),value:t$e}),ln.extend({key:ft("vote_key"),value:n$e}),ln.extend({key:ft("startup_time_nanos"),value:r$e}),ln.extend({key:ft("schedule_strategy"),value:UQ}),ln.extend({key:ft("tiles"),value:i$e.array()}),ln.extend({key:ft("identity_balance"),value:WQ}),ln.extend({key:ft("vote_balance"),value:WQ}),ln.extend({key:ft("root_slot"),value:o$e}),ln.extend({key:ft("optimistically_confirmed_slot"),value:a$e}),ln.extend({key:ft("completed_slot"),value:s$e}),ln.extend({key:ft("estimated_slot"),value:f$e}),ln.extend({key:ft("reset_slot"),value:h$e}),ln.extend({key:ft("storage_slot"),value:p$e}),ln.extend({key:ft("vote_slot"),value:m$e}),ln.extend({key:ft("slot_caught_up"),value:g$e}),ln.extend({key:ft("active_fork_count"),value:v$e}),ln.extend({key:ft("estimated_slot_duration_nanos"),value:y$e}),ln.extend({key:ft("estimated_tps"),value:b$e}),ln.extend({key:ft("live_network_metrics"),value:_$e}),ln.extend({key:ft("live_txn_waterfall"),value:k$e}),ln.extend({key:ft("live_tile_primary_metric"),value:S$e}),ln.extend({key:ft("live_tile_metrics"),value:C$e}),ln.extend({key:ft("live_tile_timers"),value:oe().array()}),ln.extend({key:ft("startup_progress"),value:T$e}),ln.extend({key:ft("boot_progress"),value:I$e}),ln.extend({key:ft("tps_history"),value:M$e}),ln.extend({key:ft("vote_state"),value:L$e}),ln.extend({key:ft("vote_distance"),value:R$e}),ln.extend({key:ft("skip_rate"),value:O$e}),ln.extend({key:ft("turbine_slot"),value:l$e}),ln.extend({key:ft("repair_slot"),value:u$e}),ln.extend({key:ft("catch_up_history"),value:c$e}),ln.extend({key:ft("server_time_nanos"),value:d$e}),ln.extend({key:ft("live_program_cache"),value:P$e})]),D$e=kt({epoch:oe(),start_time_nanos:Et().nullable(),end_time_nanos:Et().nullable(),start_slot:oe(),end_slot:oe(),excluded_stake_lamports:Zt(),staked_pubkeys:Et().array(),staked_lamports:Zt().array(),leader_slots:oe().array()}),A$e=sd("key",[AQ.extend({key:ft("new"),value:D$e})]),F$e=kt({num_push_messages_rx_success:oe(),num_push_messages_rx_failure:oe(),num_push_entries_rx_success:oe(),num_push_entries_rx_failure:oe(),num_push_entries_rx_duplicate:oe(),num_pull_response_messages_rx_success:oe(),num_pull_response_messages_rx_failure:oe(),num_pull_response_entries_rx_success:oe(),num_pull_response_entries_rx_failure:oe(),num_pull_response_entries_rx_duplicate:oe(),total_peers:oe(),total_stake:Zt(),connected_stake:Zt(),connected_staked_peers:oe(),connected_unstaked_peers:oe()}),qQ=kt({total_throughput:oe(),peer_names:Et().array(),peer_identities:Et().array(),peer_throughput:oe().array()}),B$e=kt({capacity:oe(),expired_count:oe(),evicted_count:oe(),count:oe().array(),count_tx:oe().array(),bytes_tx:oe().array()}),U$e=kt({num_bytes_rx:oe().array(),num_bytes_tx:oe().array(),num_messages_rx:oe().array(),num_messages_tx:oe().array()}),W$e=kt({health:F$e,ingress:qQ,egress:qQ,storage:B$e,messages:U$e}),V$e=oe(),GQ=P3([Et(),oe()]),YQ=db(Et(),db(Et(),GQ)).nullable(),H$e=kt({changes:Pr(kt({row_index:oe(),column_name:Et(),new_value:GQ}))}),Z$e=sd("key",[cg.extend({key:ft("network_stats"),value:W$e}),cg.extend({key:ft("peers_size_update"),value:V$e}),cg.extend({key:ft("query_scroll"),value:YQ}),cg.extend({key:ft("query_sort"),value:YQ}),cg.extend({key:ft("view_update"),value:H$e})]),q$e=kt({client_id:oe().nullable().optional(),wallclock:oe(),shred_version:oe(),version:Et().nullable(),feature_set:oe().nullable(),sockets:db(Et(),Et()),country_code:Et().nullable().optional(),city_name:Et().nullable().optional()}),G$e=kt({vote_account:Et(),activated_stake:Zt(),last_vote:xs(oe()),root_slot:xs(oe()),epoch_credits:oe(),commission:oe(),delinquent:ad()}),KQ=kt({name:xs(Et()),details:xs(Et()),website:xs(Et()),icon_url:xs(Et()),keybase_username:xs(Et())}),XQ=kt({identity_pubkey:Et(),gossip:xs(q$e),vote:Pr(G$e),info:xs(KQ)}),Y$e=kt({identity_pubkey:Et()}),K$e=kt({add:Pr(XQ).optional(),update:Pr(XQ).optional(),remove:Pr(Y$e).optional()}),X$e=sd("key",[FQ.extend({key:ft("update"),value:K$e})]),J$e=kt({timestamp_nanos:Et(),tile_timers:oe().array()}),Q$e=kt({timestamp_nanos:Zt(),regular:oe(),votes:oe(),conflicting:oe(),bundles:oe()}),eMe=kt({account:Et(),cost:oe()}),tMe=kt({used_total_block_cost:oe(),used_total_vote_cost:oe(),used_account_write_costs:eMe.array(),used_total_bytes:oe(),used_total_microblocks:oe(),max_total_block_cost:oe(),max_total_vote_cost:oe(),max_account_write_cost:oe(),max_total_bytes:oe(),max_total_microblocks:oe()}),nMe=kt({block_hash:Et().optional(),end_slot_reason:Et().optional(),slot_schedule_counts:oe().array(),end_slot_schedule_counts:oe().array(),pending_smallest_cost:oe().nullable(),pending_smallest_bytes:oe().nullable(),pending_vote_smallest_cost:oe().nullable(),pending_vote_smallest_bytes:oe().nullable()}),B3=kt({publish:$$e,waterfall:VQ.nullable().optional(),tile_primary_metric:HQ.nullable().optional(),tile_timers:J$e.array().nullable().optional(),scheduler_counts:Q$e.array().nullable().optional(),transactions:E$e.nullable().optional(),limits:tMe.nullable().optional(),scheduler_stats:nMe.nullable().optional()}),rMe=oe().array(),iMe=oe().array(),oMe=kt({slots_largest_tips:oe().array(),vals_largest_tips:Zt().array(),slots_smallest_tips:oe().array(),vals_smallest_tips:Zt().array(),slots_largest_fees:oe().array(),vals_largest_fees:Zt().array(),slots_smallest_fees:oe().array(),vals_smallest_fees:Zt().array(),slots_largest_rewards:oe().array(),vals_largest_rewards:Zt().array(),slots_smallest_rewards:oe().array(),vals_smallest_rewards:Zt().array(),slots_largest_duration:oe().array(),vals_largest_duration:Zt().array(),slots_smallest_duration:oe().array(),vals_smallest_duration:Zt().array(),slots_largest_compute_units:oe().array(),vals_largest_compute_units:Zt().array(),slots_smallest_compute_units:oe().array(),vals_smallest_compute_units:Zt().array(),slots_largest_skipped:oe().array(),vals_largest_skipped:Zt().array(),slots_smallest_skipped:oe().array(),vals_smallest_skipped:Zt().array()});var Ir=(e=>(e[e.shred_repair_request=0]="shred_repair_request",e[e.shred_received_turbine=1]="shred_received_turbine",e[e.shred_received_repair=2]="shred_received_repair",e[e.shred_replayed=3]="shred_replayed",e[e.slot_complete=4]="slot_complete",e[e.shred_published=6]="shred_published",e))(Ir||{});const aMe=kt({reference_slot:oe(),reference_ts:Zt(),slot_delta:oe().array(),shred_idx:oe().nullable().array(),event:oe().array(),event_ts_delta:jo().array()}),sMe=sd("key",[qu.extend({key:ft("skipped_history"),value:rMe}),qu.extend({key:ft("skipped_history_cluster"),value:iMe}),qu.extend({key:ft("update"),value:B3}),qu.extend({key:ft("query"),value:B3.nullable()}),qu.extend({key:ft("query_detailed"),value:B3.nullable()}),qu.extend({key:ft("query_transactions"),value:B3.nullable()}),qu.extend({key:ft("query_rankings"),value:oMe}),qu.extend({key:ft("live_shreds"),value:aMe}),qu.extend({key:ft("late_votes_history"),value:kt({slot:oe().array(),latency:oe().nullable().array()})})]),lMe=_s(["disconnected","connecting","connected"]),uMe=kt({name:Et(),url:Et(),ip:Et().optional(),status:lMe}),cMe=sd("key",[BQ.extend({key:ft("update"),value:uMe})]),dMe=kt({staked_pubkeys:Et().array(),staked_lamports:Zt().array(),infos:Pr(KQ.nullable())}),fMe=Et().array(),hMe=Et().array(),pMe=sd("key",[F3.extend({key:ft("stakes"),value:dMe}),F3.extend({key:ft("peer_add"),value:fMe}),F3.extend({key:ft("peer_remove"),value:hMe})]),JQ=DQ.safeParse("Frankendancer".trim()),hb=JQ.error?EE.Frankendancer:JQ.data,_i=hb===EE.Frankendancer,Vi=hb===EE.Firedancer,Gu=fe(e=>{var t;return(t=e(Hl))==null?void 0:t.phase}),QQ=fe(e=>{const t=e(U3),n=e(Gu);return t.find(({phase:r})=>r===n)}),mMe=fe(e=>{const t=e(Hl);return!!(t!=null&&t.wait_for_supermajority_bank_hash)&&!!(t!=null&&t.wait_for_supermajority_shred_version)}),U3=fe(e=>e(mMe)?[{phase:wn.joining_gossip,completionFraction:.1},{phase:wn.loading_full_snapshot,completionFraction:.6},{phase:wn.loading_incremental_snapshot,completionFraction:.05},{phase:wn.waiting_for_supermajority,completionFraction:.25},{phase:wn.running,completionFraction:0}]:[{phase:wn.joining_gossip,completionFraction:.1},{phase:wn.loading_full_snapshot,completionFraction:.6},{phase:wn.loading_incremental_snapshot,completionFraction:.05},{phase:wn.catching_up,completionFraction:.25},{phase:wn.running,completionFraction:0}]),eee=fe(e=>{const t=e(U3),n=e(Gu),r=new Set;for(const i of t){if(i.phase===n)break;r.add(i.phase)}return r}),ol=fe(!0),W3=fe(!0),tee=fe(null),V3=fe(e=>{const t=e(ol);return t?_i?t:t&&e(W3):!1}),nee=fe(e=>{var t,n;return((t=e(Hl))==null?void 0:t.loading_incremental_snapshot_slot)??((n=e(Hl))==null?void 0:n.loading_full_snapshot_slot)}),ree="/assets/firedancer-D_J0EzUc.svg",gMe="/assets/frankendancer-0Top5G94.svg",vMe="_text_o41r7_1",yMe="_container_o41r7_6",iee={text:vMe,container:yMe};function bMe({label:e,hide:t}){const n=t?{visibility:"hidden"}:{};return u.jsx(V,{gap:"2",align:"center",style:n,className:iee.container,children:u.jsx(q,{className:iee.text,children:e})})}const _Me="_container_1tszc_1",xMe="_text_1tszc_11",oee={container:_Me,text:xMe};function wMe({label:e,hide:t,rightChildren:n,bottomChildren:r}){const i=t?{visibility:"hidden"}:{};return u.jsxs("div",{className:oee.container,style:i,children:[u.jsx(V,{justify:"center",align:"center",children:u.jsx(Iy,{})}),u.jsxs(V,{gap:"2",align:"center",children:[u.jsxs(q,{className:oee.text,children:[e,"..."]}),u.jsx(Mt,{flexGrow:"1"}),n]}),r&&u.jsxs(u.Fragment,{children:[u.jsx("div",{}),r]})]})}const kMe="data:image/svg+xml,%3csvg%20width='14'%20height='11'%20viewBox='0%200%2014%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.75%208.6748L12.6953%200.729492L13.75%201.78418L4.75%2010.7842L0.566406%206.60059L1.62109%205.5459L4.75%208.6748Z'%20fill='%231D863B'/%3e%3c/svg%3e",SMe="_text_1ont6_1",CMe="_container_1ont6_7",aee={text:SMe,container:CMe};function jMe({label:e,hide:t}){const n=t?{visibility:"hidden"}:{};return u.jsxs(V,{gap:"2",align:"center",style:n,className:aee.container,children:[u.jsx("img",{src:kMe,alt:"complete"}),u.jsx(q,{className:aee.text,children:e})]})}const TMe="_label_1ojid_1",IMe="_value_1ojid_6",see={label:TMe,value:IMe};function ud({label:e,value:t}){return u.jsxs(V,{gap:"1",flexGrow:"1",children:[u.jsx(q,{className:see.label,children:e}),u.jsx(q,{className:see.value,children:t??"-"})]})}function EMe(){const e=X(Zu);return e?u.jsxs(V,{children:[u.jsx(ud,{label:"Current Slot",value:e.ledger_slot}),u.jsx(ud,{label:"Max Slot",value:e.ledger_max_slot})]}):null}const NMe="_progress_gtr5g_1",$Me="_text_gtr5g_11",H3={progress:NMe,text:$Me};class bp extends Error{}class MMe extends bp{constructor(t){super(`Invalid DateTime: ${t.toMessage()}`)}}class LMe extends bp{constructor(t){super(`Invalid Interval: ${t.toMessage()}`)}}class RMe extends bp{constructor(t){super(`Invalid Duration: ${t.toMessage()}`)}}class dg extends bp{}class lee extends bp{constructor(t){super(`Invalid unit ${t}`)}}class Bo extends bp{}class Ff extends bp{constructor(){super("Zone is an abstract class")}}const nt="numeric",Kl="short",ws="long",Z3={year:nt,month:nt,day:nt},uee={year:nt,month:Kl,day:nt},OMe={year:nt,month:Kl,day:nt,weekday:Kl},cee={year:nt,month:ws,day:nt},dee={year:nt,month:ws,day:nt,weekday:ws},fee={hour:nt,minute:nt},hee={hour:nt,minute:nt,second:nt},pee={hour:nt,minute:nt,second:nt,timeZoneName:Kl},mee={hour:nt,minute:nt,second:nt,timeZoneName:ws},gee={hour:nt,minute:nt,hourCycle:"h23"},vee={hour:nt,minute:nt,second:nt,hourCycle:"h23"},yee={hour:nt,minute:nt,second:nt,hourCycle:"h23",timeZoneName:Kl},bee={hour:nt,minute:nt,second:nt,hourCycle:"h23",timeZoneName:ws},_ee={year:nt,month:nt,day:nt,hour:nt,minute:nt},xee={year:nt,month:nt,day:nt,hour:nt,minute:nt,second:nt},wee={year:nt,month:Kl,day:nt,hour:nt,minute:nt},kee={year:nt,month:Kl,day:nt,hour:nt,minute:nt,second:nt},PMe={year:nt,month:Kl,day:nt,weekday:Kl,hour:nt,minute:nt},See={year:nt,month:ws,day:nt,hour:nt,minute:nt,timeZoneName:Kl},Cee={year:nt,month:ws,day:nt,hour:nt,minute:nt,second:nt,timeZoneName:Kl},jee={year:nt,month:ws,day:nt,weekday:ws,hour:nt,minute:nt,timeZoneName:ws},Tee={year:nt,month:ws,day:nt,weekday:ws,hour:nt,minute:nt,second:nt,timeZoneName:ws};class pb{get type(){throw new Ff}get name(){throw new Ff}get ianaName(){return this.name}get isUniversal(){throw new Ff}offsetName(t,n){throw new Ff}formatOffset(t,n){throw new Ff}offset(t){throw new Ff}equals(t){throw new Ff}get isValid(){throw new Ff}}let $E=null;class hC extends pb{static get instance(){return $E===null&&($E=new hC),$E}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(t,{format:n,locale:r}){return Qee(t,n,r)}formatOffset(t,n){return vb(this.offset(t),n)}offset(t){return-new Date(t).getTimezoneOffset()}equals(t){return t.type==="system"}get isValid(){return!0}}const ME=new Map;function zMe(e){let t=ME.get(e);return t===void 0&&(t=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),ME.set(e,t)),t}const DMe={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function AMe(e,t){const n=e.format(t).replace(/\u200E/g,""),r=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n),[,i,o,a,s,l,c,d]=r;return[a,i,o,s,l,c,d]}function FMe(e,t){const n=e.formatToParts(t),r=[];for(let i=0;i=0?v:1e3+v,(f-p)/(60*1e3)}equals(t){return t.type==="iana"&&t.name===this.name}get isValid(){return this.valid}}let Iee={};function BMe(e,t={}){const n=JSON.stringify([e,t]);let r=Iee[n];return r||(r=new Intl.ListFormat(e,t),Iee[n]=r),r}const RE=new Map;function OE(e,t={}){const n=JSON.stringify([e,t]);let r=RE.get(n);return r===void 0&&(r=new Intl.DateTimeFormat(e,t),RE.set(n,r)),r}const PE=new Map;function UMe(e,t={}){const n=JSON.stringify([e,t]);let r=PE.get(n);return r===void 0&&(r=new Intl.NumberFormat(e,t),PE.set(n,r)),r}const zE=new Map;function WMe(e,t={}){const{base:n,...r}=t,i=JSON.stringify([e,r]);let o=zE.get(i);return o===void 0&&(o=new Intl.RelativeTimeFormat(e,t),zE.set(i,o)),o}let q3=null;function VMe(){return q3||(q3=new Intl.DateTimeFormat().resolvedOptions().locale,q3)}const DE=new Map;function Eee(e){let t=DE.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(e).resolvedOptions(),DE.set(e,t)),t}const AE=new Map;function HMe(e){let t=AE.get(e);if(!t){const n=new Intl.Locale(e);t="getWeekInfo"in n?n.getWeekInfo():n.weekInfo,"minimalDays"in t||(t={...Nee,...t}),AE.set(e,t)}return t}function ZMe(e){const t=e.indexOf("-x-");t!==-1&&(e=e.substring(0,t));const n=e.indexOf("-u-");if(n===-1)return[e];{let r,i;try{r=OE(e).resolvedOptions(),i=e}catch{const s=e.substring(0,n);r=OE(s).resolvedOptions(),i=s}const{numberingSystem:o,calendar:a}=r;return[i,o,a]}}function qMe(e,t,n){return(n||t)&&(e.includes("-u-")||(e+="-u"),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`)),e}function GMe(e){const t=[];for(let n=1;n<=12;n++){const r=jt.utc(2009,n,1);t.push(e(r))}return t}function YMe(e){const t=[];for(let n=1;n<=7;n++){const r=jt.utc(2016,11,13+n);t.push(e(r))}return t}function G3(e,t,n,r){const i=e.listingMode();return i==="error"?null:i==="en"?n(t):r(t)}function KMe(e){return e.numberingSystem&&e.numberingSystem!=="latn"?!1:e.numberingSystem==="latn"||!e.locale||e.locale.startsWith("en")||Eee(e.locale).numberingSystem==="latn"}class XMe{constructor(t,n,r){this.padTo=r.padTo||0,this.floor=r.floor||!1;const{padTo:i,floor:o,...a}=r;if(!n||Object.keys(a).length>0){const s={useGrouping:!1,...r};r.padTo>0&&(s.minimumIntegerDigits=r.padTo),this.inf=UMe(t,s)}}format(t){if(this.inf){const n=this.floor?Math.floor(t):t;return this.inf.format(n)}else{const n=this.floor?Math.floor(t):GE(t,3);return Li(n,this.padTo)}}}class JMe{constructor(t,n,r){this.opts=r,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=t;else if(t.zone.type==="fixed"){const a=-1*(t.offset/60),s=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;t.offset!==0&&Od.create(s).valid?(i=s,this.dt=t):(i="UTC",this.dt=t.offset===0?t:t.setZone("UTC").plus({minutes:t.offset}),this.originalZone=t.zone)}else t.zone.type==="system"?this.dt=t:t.zone.type==="iana"?(this.dt=t,i=t.zone.name):(i="UTC",this.dt=t.setZone("UTC").plus({minutes:t.offset}),this.originalZone=t.zone);const o={...this.opts};o.timeZone=o.timeZone||i,this.dtf=OE(n,o)}format(){return this.originalZone?this.formatToParts().map(({value:t})=>t).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const t=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?t.map(n=>{if(n.type==="timeZoneName"){const r=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...n,value:r}}else return n}):t}resolvedOptions(){return this.dtf.resolvedOptions()}}class QMe{constructor(t,n,r){this.opts={style:"long",...r},!n&&Yee()&&(this.rtf=WMe(t,r))}format(t,n){return this.rtf?this.rtf.format(t,n):xLe(n,t,this.opts.numeric,this.opts.style!=="long")}formatToParts(t,n){return this.rtf?this.rtf.formatToParts(t,n):[]}}const Nee={firstDay:1,minimalDays:4,weekend:[6,7]};class Gn{static fromOpts(t){return Gn.create(t.locale,t.numberingSystem,t.outputCalendar,t.weekSettings,t.defaultToEN)}static create(t,n,r,i,o=!1){const a=t||ci.defaultLocale,s=a||(o?"en-US":VMe()),l=n||ci.defaultNumberingSystem,c=r||ci.defaultOutputCalendar,d=ZE(i)||ci.defaultWeekSettings;return new Gn(s,l,c,d,a)}static resetCache(){q3=null,RE.clear(),PE.clear(),zE.clear(),DE.clear(),AE.clear()}static fromObject({locale:t,numberingSystem:n,outputCalendar:r,weekSettings:i}={}){return Gn.create(t,n,r,i)}constructor(t,n,r,i,o){const[a,s,l]=ZMe(t);this.locale=a,this.numberingSystem=n||s||null,this.outputCalendar=r||l||null,this.weekSettings=i,this.intl=qMe(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=o,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=KMe(this)),this.fastNumbersCached}listingMode(){const t=this.isEnglish(),n=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return t&&n?"en":"intl"}clone(t){return!t||Object.getOwnPropertyNames(t).length===0?this:Gn.create(t.locale||this.specifiedLocale,t.numberingSystem||this.numberingSystem,t.outputCalendar||this.outputCalendar,ZE(t.weekSettings)||this.weekSettings,t.defaultToEN||!1)}redefaultToEN(t={}){return this.clone({...t,defaultToEN:!0})}redefaultToSystem(t={}){return this.clone({...t,defaultToEN:!1})}months(t,n=!1){return G3(this,t,nte,()=>{const r=this.intl==="ja"||this.intl.startsWith("ja-");n&=!r;const i=n?{month:t,day:"numeric"}:{month:t},o=n?"format":"standalone";if(!this.monthsCache[o][t]){const a=r?s=>this.dtFormatter(s,i).format():s=>this.extract(s,i,"month");this.monthsCache[o][t]=GMe(a)}return this.monthsCache[o][t]})}weekdays(t,n=!1){return G3(this,t,ote,()=>{const r=n?{weekday:t,year:"numeric",month:"long",day:"numeric"}:{weekday:t},i=n?"format":"standalone";return this.weekdaysCache[i][t]||(this.weekdaysCache[i][t]=YMe(o=>this.extract(o,r,"weekday"))),this.weekdaysCache[i][t]})}meridiems(){return G3(this,void 0,()=>ate,()=>{if(!this.meridiemCache){const t={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[jt.utc(2016,11,13,9),jt.utc(2016,11,13,19)].map(n=>this.extract(n,t,"dayperiod"))}return this.meridiemCache})}eras(t){return G3(this,t,ste,()=>{const n={era:t};return this.eraCache[t]||(this.eraCache[t]=[jt.utc(-40,1,1),jt.utc(2017,1,1)].map(r=>this.extract(r,n,"era"))),this.eraCache[t]})}extract(t,n,r){const i=this.dtFormatter(t,n),o=i.formatToParts(),a=o.find(s=>s.type.toLowerCase()===r);return a?a.value:null}numberFormatter(t={}){return new XMe(this.intl,t.forceSimple||this.fastNumbers,t)}dtFormatter(t,n={}){return new JMe(t,this.intl,n)}relFormatter(t={}){return new QMe(this.intl,this.isEnglish(),t)}listFormatter(t={}){return BMe(this.intl,t)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||Eee(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:Kee()?HMe(this.locale):Nee}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(t){return this.locale===t.locale&&this.numberingSystem===t.numberingSystem&&this.outputCalendar===t.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}let FE=null;class ba extends pb{static get utcInstance(){return FE===null&&(FE=new ba(0)),FE}static instance(t){return t===0?ba.utcInstance:new ba(t)}static parseSpecifier(t){if(t){const n=t.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new ba(Q3(n[1],n[2]))}return null}constructor(t){super(),this.fixed=t}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${vb(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${vb(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(t,n){return vb(this.fixed,n)}get isUniversal(){return!0}offset(){return this.fixed}equals(t){return t.type==="fixed"&&t.fixed===this.fixed}get isValid(){return!0}}class eLe extends pb{constructor(t){super(),this.zoneName=t}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function Bf(e,t){if(Pt(e)||e===null)return t;if(e instanceof pb)return e;if(aLe(e)){const n=e.toLowerCase();return n==="default"?t:n==="local"||n==="system"?hC.instance:n==="utc"||n==="gmt"?ba.utcInstance:ba.parseSpecifier(n)||Od.create(e)}else return Uf(e)?ba.instance(e):typeof e=="object"&&"offset"in e&&typeof e.offset=="function"?e:new eLe(e)}const BE={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},$ee={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},tLe=BE.hanidec.replace(/[\[|\]]/g,"").split("");function nLe(e){let t=parseInt(e,10);if(isNaN(t)){t="";for(let n=0;n=o&&r<=a&&(t+=r-o)}}return parseInt(t,10)}else return t}const UE=new Map;function rLe(){UE.clear()}function Xl({numberingSystem:e},t=""){const n=e||"latn";let r=UE.get(n);r===void 0&&(r=new Map,UE.set(n,r));let i=r.get(t);return i===void 0&&(i=new RegExp(`${BE[n]}${t}`),r.set(t,i)),i}let Mee=()=>Date.now(),Lee="system",Ree=null,Oee=null,Pee=null,zee=60,Dee,Aee=null;class ci{static get now(){return Mee}static set now(t){Mee=t}static set defaultZone(t){Lee=t}static get defaultZone(){return Bf(Lee,hC.instance)}static get defaultLocale(){return Ree}static set defaultLocale(t){Ree=t}static get defaultNumberingSystem(){return Oee}static set defaultNumberingSystem(t){Oee=t}static get defaultOutputCalendar(){return Pee}static set defaultOutputCalendar(t){Pee=t}static get defaultWeekSettings(){return Aee}static set defaultWeekSettings(t){Aee=ZE(t)}static get twoDigitCutoffYear(){return zee}static set twoDigitCutoffYear(t){zee=t%100}static get throwOnInvalid(){return Dee}static set throwOnInvalid(t){Dee=t}static resetCaches(){Gn.resetCache(),Od.resetCache(),jt.resetCache(),rLe()}}class Jl{constructor(t,n){this.reason=t,this.explanation=n}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const Fee=[0,31,59,90,120,151,181,212,243,273,304,334],Bee=[0,31,60,91,121,152,182,213,244,274,305,335];function al(e,t){return new Jl("unit out of range",`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function WE(e,t,n){const r=new Date(Date.UTC(e,t-1,n));e<100&&e>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);const i=r.getUTCDay();return i===0?7:i}function Uee(e,t,n){return n+(mb(e)?Bee:Fee)[t-1]}function Wee(e,t){const n=mb(e)?Bee:Fee,r=n.findIndex(o=>ogb(r,t,n)?(c=r+1,l=1):c=r,{weekYear:c,weekNumber:l,weekday:s,...tk(e)}}function Vee(e,t=4,n=1){const{weekYear:r,weekNumber:i,weekday:o}=e,a=VE(WE(r,1,t),n),s=hg(r);let l=i*7+o-a-7+t,c;l<1?(c=r-1,l+=hg(c)):l>s?(c=r+1,l-=hg(r)):c=r;const{month:d,day:f}=Wee(c,l);return{year:c,month:d,day:f,...tk(e)}}function HE(e){const{year:t,month:n,day:r}=e,i=Uee(t,n,r);return{year:t,ordinal:i,...tk(e)}}function Hee(e){const{year:t,ordinal:n}=e,{month:r,day:i}=Wee(t,n);return{year:t,month:r,day:i,...tk(e)}}function Zee(e,t){if(!Pt(e.localWeekday)||!Pt(e.localWeekNumber)||!Pt(e.localWeekYear)){if(!Pt(e.weekday)||!Pt(e.weekNumber)||!Pt(e.weekYear))throw new dg("Cannot mix locale-based week fields with ISO-based week fields");return Pt(e.localWeekday)||(e.weekday=e.localWeekday),Pt(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),Pt(e.localWeekYear)||(e.weekYear=e.localWeekYear),delete e.localWeekday,delete e.localWeekNumber,delete e.localWeekYear,{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function iLe(e,t=4,n=1){const r=K3(e.weekYear),i=sl(e.weekNumber,1,gb(e.weekYear,t,n)),o=sl(e.weekday,1,7);return r?i?o?!1:al("weekday",e.weekday):al("week",e.weekNumber):al("weekYear",e.weekYear)}function oLe(e){const t=K3(e.year),n=sl(e.ordinal,1,hg(e.year));return t?n?!1:al("ordinal",e.ordinal):al("year",e.year)}function qee(e){const t=K3(e.year),n=sl(e.month,1,12),r=sl(e.day,1,X3(e.year,e.month));return t?n?r?!1:al("day",e.day):al("month",e.month):al("year",e.year)}function Gee(e){const{hour:t,minute:n,second:r,millisecond:i}=e,o=sl(t,0,23)||t===24&&n===0&&r===0&&i===0,a=sl(n,0,59),s=sl(r,0,59),l=sl(i,0,999);return o?a?s?l?!1:al("millisecond",i):al("second",r):al("minute",n):al("hour",t)}function Pt(e){return typeof e>"u"}function Uf(e){return typeof e=="number"}function K3(e){return typeof e=="number"&&e%1===0}function aLe(e){return typeof e=="string"}function sLe(e){return Object.prototype.toString.call(e)==="[object Date]"}function Yee(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Kee(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function lLe(e){return Array.isArray(e)?e:[e]}function Xee(e,t,n){if(e.length!==0)return e.reduce((r,i)=>{const o=[t(i),i];return r&&n(r[0],o[0])===r[0]?r:o},null)[1]}function uLe(e,t){return t.reduce((n,r)=>(n[r]=e[r],n),{})}function fg(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function ZE(e){if(e==null)return null;if(typeof e!="object")throw new Bo("Week settings must be an object");if(!sl(e.firstDay,1,7)||!sl(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some(t=>!sl(t,1,7)))throw new Bo("Invalid week settings");return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function sl(e,t,n){return K3(e)&&e>=t&&e<=n}function cLe(e,t){return e-t*Math.floor(e/t)}function Li(e,t=2){const n=e<0;let r;return n?r="-"+(""+-e).padStart(t,"0"):r=(""+e).padStart(t,"0"),r}function Wf(e){if(!(Pt(e)||e===null||e===""))return parseInt(e,10)}function _p(e){if(!(Pt(e)||e===null||e===""))return parseFloat(e)}function qE(e){if(!(Pt(e)||e===null||e==="")){const t=parseFloat("0."+e)*1e3;return Math.floor(t)}}function GE(e,t,n="round"){const r=10**t;switch(n){case"expand":return e>0?Math.ceil(e*r)/r:Math.floor(e*r)/r;case"trunc":return Math.trunc(e*r)/r;case"round":return Math.round(e*r)/r;case"floor":return Math.floor(e*r)/r;case"ceil":return Math.ceil(e*r)/r;default:throw new RangeError(`Value rounding ${n} is out of range`)}}function mb(e){return e%4===0&&(e%100!==0||e%400===0)}function hg(e){return mb(e)?366:365}function X3(e,t){const n=cLe(t-1,12)+1,r=e+(t-n)/12;return n===2?mb(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function J3(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t),t.setUTCFullYear(e.year,e.month-1,e.day)),+t}function Jee(e,t,n){return-VE(WE(e,1,t),n)+t-1}function gb(e,t=4,n=1){const r=Jee(e,t,n),i=Jee(e+1,t,n);return(hg(e)-r+i)/7}function YE(e){return e>99?e:e>ci.twoDigitCutoffYear?1900+e:2e3+e}function Qee(e,t,n,r=null){const i=new Date(e),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};r&&(o.timeZone=r);const a={timeZoneName:t,...o},s=new Intl.DateTimeFormat(n,a).formatToParts(i).find(l=>l.type.toLowerCase()==="timezonename");return s?s.value:null}function Q3(e,t){let n=parseInt(e,10);Number.isNaN(n)&&(n=0);const r=parseInt(t,10)||0,i=n<0||Object.is(n,-0)?-r:r;return n*60+i}function ete(e){const t=Number(e);if(typeof e=="boolean"||e===""||!Number.isFinite(t))throw new Bo(`Invalid unit value ${e}`);return t}function ek(e,t){const n={};for(const r in e)if(fg(e,r)){const i=e[r];if(i==null)continue;n[t(r)]=ete(i)}return n}function vb(e,t){const n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=e>=0?"+":"-";switch(t){case"short":return`${i}${Li(n,2)}:${Li(r,2)}`;case"narrow":return`${i}${n}${r>0?`:${r}`:""}`;case"techie":return`${i}${Li(n,2)}${Li(r,2)}`;default:throw new RangeError(`Value format ${t} is out of range for property format`)}}function tk(e){return uLe(e,["hour","minute","second","millisecond"])}const dLe=["January","February","March","April","May","June","July","August","September","October","November","December"],tte=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],fLe=["J","F","M","A","M","J","J","A","S","O","N","D"];function nte(e){switch(e){case"narrow":return[...fLe];case"short":return[...tte];case"long":return[...dLe];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const rte=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],ite=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],hLe=["M","T","W","T","F","S","S"];function ote(e){switch(e){case"narrow":return[...hLe];case"short":return[...ite];case"long":return[...rte];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const ate=["AM","PM"],pLe=["Before Christ","Anno Domini"],mLe=["BC","AD"],gLe=["B","A"];function ste(e){switch(e){case"narrow":return[...gLe];case"short":return[...mLe];case"long":return[...pLe];default:return null}}function vLe(e){return ate[e.hour<12?0:1]}function yLe(e,t){return ote(t)[e.weekday-1]}function bLe(e,t){return nte(t)[e.month-1]}function _Le(e,t){return ste(t)[e.year<0?0:1]}function xLe(e,t,n="always",r=!1){const i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},o=["hours","minutes","seconds"].indexOf(e)===-1;if(n==="auto"&&o){const f=e==="days";switch(t){case 1:return f?"tomorrow":`next ${i[e][0]}`;case-1:return f?"yesterday":`last ${i[e][0]}`;case 0:return f?"today":`this ${i[e][0]}`}}const a=Object.is(t,-0)||t<0,s=Math.abs(t),l=s===1,c=i[e],d=r?l?c[1]:c[2]||c[1]:l?i[e][0]:e;return a?`${s} ${d} ago`:`in ${s} ${d}`}function lte(e,t){let n="";for(const r of e)r.literal?n+=r.val:n+=t(r.val);return n}const wLe={D:Z3,DD:uee,DDD:cee,DDDD:dee,t:fee,tt:hee,ttt:pee,tttt:mee,T:gee,TT:vee,TTT:yee,TTTT:bee,f:_ee,ff:wee,fff:See,ffff:jee,F:xee,FF:kee,FFF:Cee,FFFF:Tee};class Yo{static create(t,n={}){return new Yo(t,n)}static parseFormat(t){let n=null,r="",i=!1;const o=[];for(let a=0;a0||i)&&o.push({literal:i||/^\s+$/.test(r),val:r===""?"'":r}),n=null,r="",i=!i):i||s===n?r+=s:(r.length>0&&o.push({literal:/^\s+$/.test(r),val:r}),r=s,n=s)}return r.length>0&&o.push({literal:i||/^\s+$/.test(r),val:r}),o}static macroTokenToFormatOpts(t){return wLe[t]}constructor(t,n){this.opts=n,this.loc=t,this.systemLoc=null}formatWithSystemDefault(t,n){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(t,{...this.opts,...n}).format()}dtFormatter(t,n={}){return this.loc.dtFormatter(t,{...this.opts,...n})}formatDateTime(t,n){return this.dtFormatter(t,n).format()}formatDateTimeParts(t,n){return this.dtFormatter(t,n).formatToParts()}formatInterval(t,n){return this.dtFormatter(t.start,n).dtf.formatRange(t.start.toJSDate(),t.end.toJSDate())}resolvedOptions(t,n){return this.dtFormatter(t,n).resolvedOptions()}num(t,n=0,r=void 0){if(this.opts.forceSimple)return Li(t,n);const i={...this.opts};return n>0&&(i.padTo=n),r&&(i.signDisplay=r),this.loc.numberFormatter(i).format(t)}formatDateTimeFromString(t,n){const r=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",o=(v,_)=>this.loc.extract(t,v,_),a=v=>t.isOffsetFixed&&t.offset===0&&v.allowZ?"Z":t.isValid?t.zone.formatOffset(t.ts,v.format):"",s=()=>r?vLe(t):o({hour:"numeric",hourCycle:"h12"},"dayperiod"),l=(v,_)=>r?bLe(t,v):o(_?{month:v}:{month:v,day:"numeric"},"month"),c=(v,_)=>r?yLe(t,v):o(_?{weekday:v}:{weekday:v,month:"long",day:"numeric"},"weekday"),d=v=>{const _=Yo.macroTokenToFormatOpts(v);return _?this.formatWithSystemDefault(t,_):v},f=v=>r?_Le(t,v):o({era:v},"era"),p=v=>{switch(v){case"S":return this.num(t.millisecond);case"u":case"SSS":return this.num(t.millisecond,3);case"s":return this.num(t.second);case"ss":return this.num(t.second,2);case"uu":return this.num(Math.floor(t.millisecond/10),2);case"uuu":return this.num(Math.floor(t.millisecond/100));case"m":return this.num(t.minute);case"mm":return this.num(t.minute,2);case"h":return this.num(t.hour%12===0?12:t.hour%12);case"hh":return this.num(t.hour%12===0?12:t.hour%12,2);case"H":return this.num(t.hour);case"HH":return this.num(t.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return t.zone.offsetName(t.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return t.zone.offsetName(t.ts,{format:"long",locale:this.loc.locale});case"z":return t.zoneName;case"a":return s();case"d":return i?o({day:"numeric"},"day"):this.num(t.day);case"dd":return i?o({day:"2-digit"},"day"):this.num(t.day,2);case"c":return this.num(t.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(t.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?o({month:"numeric",day:"numeric"},"month"):this.num(t.month);case"LL":return i?o({month:"2-digit",day:"numeric"},"month"):this.num(t.month,2);case"LLL":return l("short",!0);case"LLLL":return l("long",!0);case"LLLLL":return l("narrow",!0);case"M":return i?o({month:"numeric"},"month"):this.num(t.month);case"MM":return i?o({month:"2-digit"},"month"):this.num(t.month,2);case"MMM":return l("short",!1);case"MMMM":return l("long",!1);case"MMMMM":return l("narrow",!1);case"y":return i?o({year:"numeric"},"year"):this.num(t.year);case"yy":return i?o({year:"2-digit"},"year"):this.num(t.year.toString().slice(-2),2);case"yyyy":return i?o({year:"numeric"},"year"):this.num(t.year,4);case"yyyyyy":return i?o({year:"numeric"},"year"):this.num(t.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return this.num(t.weekYear.toString().slice(-2),2);case"kkkk":return this.num(t.weekYear,4);case"W":return this.num(t.weekNumber);case"WW":return this.num(t.weekNumber,2);case"n":return this.num(t.localWeekNumber);case"nn":return this.num(t.localWeekNumber,2);case"ii":return this.num(t.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(t.localWeekYear,4);case"o":return this.num(t.ordinal);case"ooo":return this.num(t.ordinal,3);case"q":return this.num(t.quarter);case"qq":return this.num(t.quarter,2);case"X":return this.num(Math.floor(t.ts/1e3));case"x":return this.num(t.ts);default:return d(v)}};return lte(Yo.parseFormat(n),p)}formatDurationFromString(t,n){const r=this.opts.signMode==="negativeLargestOnly"?-1:1,i=d=>{switch(d[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},o=(d,f)=>p=>{const v=i(p);if(v){const _=f.isNegativeDuration&&v!==f.largestUnit?r:1;let y;return this.opts.signMode==="negativeLargestOnly"&&v!==f.largestUnit?y="never":this.opts.signMode==="all"?y="always":y="auto",this.num(d.get(v)*_,p.length,y)}else return p},a=Yo.parseFormat(n),s=a.reduce((d,{literal:f,val:p})=>f?d:d.concat(p),[]),l=t.shiftTo(...s.map(i).filter(d=>d)),c={isNegativeDuration:l<0,largestUnit:Object.keys(l.values)[0]};return lte(a,o(l,c))}}const ute=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function pg(...e){const t=e.reduce((n,r)=>n+r.source,"");return RegExp(`^${t}$`)}function mg(...e){return t=>e.reduce(([n,r,i],o)=>{const[a,s,l]=o(t,i);return[{...n,...a},s||r,l]},[{},null,1]).slice(0,2)}function gg(e,...t){if(e==null)return[null,null];for(const[n,r]of t){const i=n.exec(e);if(i)return r(i)}return[null,null]}function cte(...e){return(t,n)=>{const r={};let i;for(i=0;iv!==void 0&&(_||v&&d)?-v:v;return[{years:p(_p(n)),months:p(_p(r)),weeks:p(_p(i)),days:p(_p(o)),hours:p(_p(a)),minutes:p(_p(s)),seconds:p(_p(l),l==="-0"),milliseconds:p(qE(c),f)}]}const OLe={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function JE(e,t,n,r,i,o,a){const s={year:t.length===2?YE(Wf(t)):Wf(t),month:tte.indexOf(n)+1,day:Wf(r),hour:Wf(i),minute:Wf(o)};return a&&(s.second=Wf(a)),e&&(s.weekday=e.length>3?rte.indexOf(e)+1:ite.indexOf(e)+1),s}const PLe=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function zLe(e){const[,t,n,r,i,o,a,s,l,c,d,f]=e,p=JE(t,i,r,n,o,a,s);let v;return l?v=OLe[l]:c?v=0:v=Q3(d,f),[p,new ba(v)]}function DLe(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const ALe=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,FLe=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,BLe=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function pte(e){const[,t,n,r,i,o,a,s]=e;return[JE(t,i,r,n,o,a,s),ba.utcInstance]}function ULe(e){const[,t,n,r,i,o,a,s]=e;return[JE(t,s,n,r,i,o,a),ba.utcInstance]}const WLe=pg(SLe,XE),VLe=pg(CLe,XE),HLe=pg(jLe,XE),ZLe=pg(fte),mte=mg($Le,yg,yb,bb),qLe=mg(TLe,yg,yb,bb),GLe=mg(ILe,yg,yb,bb),YLe=mg(yg,yb,bb);function KLe(e){return gg(e,[WLe,mte],[VLe,qLe],[HLe,GLe],[ZLe,YLe])}function XLe(e){return gg(DLe(e),[PLe,zLe])}function JLe(e){return gg(e,[ALe,pte],[FLe,pte],[BLe,ULe])}function QLe(e){return gg(e,[LLe,RLe])}const eRe=mg(yg);function tRe(e){return gg(e,[MLe,eRe])}const nRe=pg(ELe,NLe),rRe=pg(hte),iRe=mg(yg,yb,bb);function oRe(e){return gg(e,[nRe,mte],[rRe,iRe])}const gte="Invalid Duration",vte={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},aRe={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...vte},ll=146097/400,bg=146097/4800,sRe={years:{quarters:4,months:12,weeks:ll/7,days:ll,hours:ll*24,minutes:ll*24*60,seconds:ll*24*60*60,milliseconds:ll*24*60*60*1e3},quarters:{months:3,weeks:ll/28,days:ll/4,hours:ll*24/4,minutes:ll*24*60/4,seconds:ll*24*60*60/4,milliseconds:ll*24*60*60*1e3/4},months:{weeks:bg/7,days:bg,hours:bg*24,minutes:bg*24*60,seconds:bg*24*60*60,milliseconds:bg*24*60*60*1e3},...vte},xp=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],lRe=xp.slice(0).reverse();function cd(e,t,n=!1){const r={values:n?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix};return new fn(r)}function yte(e,t){let n=t.milliseconds??0;for(const r of lRe.slice(1))t[r]&&(n+=t[r]*e[r].milliseconds);return n}function bte(e,t){const n=yte(e,t)<0?-1:1;xp.reduceRight((r,i)=>{if(Pt(t[i]))return r;if(r){const o=t[r]*n,a=e[i][r],s=Math.floor(o/a);t[i]+=s*n,t[r]-=s*a*n}return i},null),xp.reduce((r,i)=>{if(Pt(t[i]))return r;if(r){const o=t[r]%1;t[r]-=o,t[i]+=o*e[r][i]}return i},null)}function _te(e){const t={};for(const[n,r]of Object.entries(e))r!==0&&(t[n]=r);return t}class fn{constructor(t){const n=t.conversionAccuracy==="longterm"||!1;let r=n?sRe:aRe;t.matrix&&(r=t.matrix),this.values=t.values,this.loc=t.loc||Gn.create(),this.conversionAccuracy=n?"longterm":"casual",this.invalid=t.invalid||null,this.matrix=r,this.isLuxonDuration=!0}static fromMillis(t,n){return fn.fromObject({milliseconds:t},n)}static fromObject(t,n={}){if(t==null||typeof t!="object")throw new Bo(`Duration.fromObject: argument expected to be an object, got ${t===null?"null":typeof t}`);return new fn({values:ek(t,fn.normalizeUnit),loc:Gn.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(t){if(Uf(t))return fn.fromMillis(t);if(fn.isDuration(t))return t;if(typeof t=="object")return fn.fromObject(t);throw new Bo(`Unknown duration argument ${t} of type ${typeof t}`)}static fromISO(t,n){const[r]=QLe(t);return r?fn.fromObject(r,n):fn.invalid("unparsable",`the input "${t}" can't be parsed as ISO 8601`)}static fromISOTime(t,n){const[r]=tRe(t);return r?fn.fromObject(r,n):fn.invalid("unparsable",`the input "${t}" can't be parsed as ISO 8601`)}static invalid(t,n=null){if(!t)throw new Bo("need to specify a reason the Duration is invalid");const r=t instanceof Jl?t:new Jl(t,n);if(ci.throwOnInvalid)throw new RMe(r);return new fn({invalid:r})}static normalizeUnit(t){const n={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[t&&t.toLowerCase()];if(!n)throw new lee(t);return n}static isDuration(t){return t&&t.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(t,n={}){const r={...n,floor:n.round!==!1&&n.floor!==!1};return this.isValid?Yo.create(this.loc,r).formatDurationFromString(this,t):gte}toHuman(t={}){if(!this.isValid)return gte;const n=t.showZeros!==!1,r=xp.map(i=>{const o=this.values[i];return Pt(o)||o===0&&!n?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...t,unit:i.slice(0,-1)}).format(o)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:t.listStyle||"narrow",...t}).format(r)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let t="P";return this.years!==0&&(t+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(t+=this.months+this.quarters*3+"M"),this.weeks!==0&&(t+=this.weeks+"W"),this.days!==0&&(t+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(t+="T"),this.hours!==0&&(t+=this.hours+"H"),this.minutes!==0&&(t+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(t+=GE(this.seconds+this.milliseconds/1e3,3)+"S"),t==="P"&&(t+="T0S"),t}toISOTime(t={}){if(!this.isValid)return null;const n=this.toMillis();return n<0||n>=864e5?null:(t={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...t,includeOffset:!1},jt.fromMillis(n,{zone:"UTC"}).toISOTime(t))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?yte(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t),r={};for(const i of xp)(fg(n.values,i)||fg(this.values,i))&&(r[i]=n.get(i)+this.get(i));return cd(this,{values:r},!0)}minus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t);return this.plus(n.negate())}mapUnits(t){if(!this.isValid)return this;const n={};for(const r of Object.keys(this.values))n[r]=ete(t(this.values[r],r));return cd(this,{values:n},!0)}get(t){return this[fn.normalizeUnit(t)]}set(t){if(!this.isValid)return this;const n={...this.values,...ek(t,fn.normalizeUnit)};return cd(this,{values:n})}reconfigure({locale:t,numberingSystem:n,conversionAccuracy:r,matrix:i}={}){const o={loc:this.loc.clone({locale:t,numberingSystem:n}),matrix:i,conversionAccuracy:r};return cd(this,o)}as(t){return this.isValid?this.shiftTo(t).get(t):NaN}normalize(){if(!this.isValid)return this;const t=this.toObject();return bte(this.matrix,t),cd(this,{values:t},!0)}rescale(){if(!this.isValid)return this;const t=_te(this.normalize().shiftToAll().toObject());return cd(this,{values:t},!0)}shiftTo(...t){if(!this.isValid)return this;if(t.length===0)return this;t=t.map(a=>fn.normalizeUnit(a));const n={},r={},i=this.toObject();let o;for(const a of xp)if(t.indexOf(a)>=0){o=a;let s=0;for(const c in r)s+=this.matrix[c][a]*r[c],r[c]=0;Uf(i[a])&&(s+=i[a]);const l=Math.trunc(s);n[a]=l,r[a]=(s*1e3-l*1e3)/1e3}else Uf(i[a])&&(r[a]=i[a]);for(const a in r)r[a]!==0&&(n[o]+=a===o?r[a]:r[a]/this.matrix[o][a]);return bte(this.matrix,n),cd(this,{values:n},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const t={};for(const n of Object.keys(this.values))t[n]=this.values[n]===0?0:-this.values[n];return cd(this,{values:t},!0)}removeZeros(){if(!this.isValid)return this;const t=_te(this.values);return cd(this,{values:t},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(t){if(!this.isValid||!t.isValid||!this.loc.equals(t.loc))return!1;function n(r,i){return r===void 0||r===0?i===void 0||i===0:r===i}for(const r of xp)if(!n(this.values[r],t.values[r]))return!1;return!0}}const _g="Invalid Interval";function uRe(e,t){return!e||!e.isValid?hi.invalid("missing or invalid start"):!t||!t.isValid?hi.invalid("missing or invalid end"):tt:!1}isBefore(t){return this.isValid?this.e<=t:!1}contains(t){return this.isValid?this.s<=t&&this.e>t:!1}set({start:t,end:n}={}){return this.isValid?hi.fromDateTimes(t||this.s,n||this.e):this}splitAt(...t){if(!this.isValid)return[];const n=t.map(wb).filter(a=>this.contains(a)).sort((a,s)=>a.toMillis()-s.toMillis()),r=[];let{s:i}=this,o=0;for(;i+this.e?this.e:a;r.push(hi.fromDateTimes(i,s)),i=s,o+=1}return r}splitBy(t){const n=fn.fromDurationLike(t);if(!this.isValid||!n.isValid||n.as("milliseconds")===0)return[];let{s:r}=this,i=1,o;const a=[];for(;rl*i));o=+s>+this.e?this.e:s,a.push(hi.fromDateTimes(r,o)),r=o,i+=1}return a}divideEqually(t){return this.isValid?this.splitBy(this.length()/t).slice(0,t):[]}overlaps(t){return this.e>t.s&&this.s=t.e:!1}equals(t){return!this.isValid||!t.isValid?!1:this.s.equals(t.s)&&this.e.equals(t.e)}intersection(t){if(!this.isValid)return this;const n=this.s>t.s?this.s:t.s,r=this.e=r?null:hi.fromDateTimes(n,r)}union(t){if(!this.isValid)return this;const n=this.st.e?this.e:t.e;return hi.fromDateTimes(n,r)}static merge(t){const[n,r]=t.sort((i,o)=>i.s-o.s).reduce(([i,o],a)=>o?o.overlaps(a)||o.abutsStart(a)?[i,o.union(a)]:[i.concat([o]),a]:[i,a],[[],null]);return r&&n.push(r),n}static xor(t){let n=null,r=0;const i=[],o=t.map(l=>[{time:l.s,type:"s"},{time:l.e,type:"e"}]),a=Array.prototype.concat(...o),s=a.sort((l,c)=>l.time-c.time);for(const l of s)r+=l.type==="s"?1:-1,r===1?n=l.time:(n&&+n!=+l.time&&i.push(hi.fromDateTimes(n,l.time)),n=null);return hi.merge(i)}difference(...t){return hi.xor([this].concat(t)).map(n=>this.intersection(n)).filter(n=>n&&!n.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:_g}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(t=Z3,n={}){return this.isValid?Yo.create(this.s.loc.clone(n),t).formatInterval(this):_g}toISO(t){return this.isValid?`${this.s.toISO(t)}/${this.e.toISO(t)}`:_g}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:_g}toISOTime(t){return this.isValid?`${this.s.toISOTime(t)}/${this.e.toISOTime(t)}`:_g}toFormat(t,{separator:n=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(t)}${n}${this.e.toFormat(t)}`:_g}toDuration(t,n){return this.isValid?this.e.diff(this.s,t,n):fn.invalid(this.invalidReason)}mapEndpoints(t){return hi.fromDateTimes(t(this.s),t(this.e))}}class nk{static hasDST(t=ci.defaultZone){const n=jt.now().setZone(t).set({month:12});return!t.isUniversal&&n.offset!==n.set({month:6}).offset}static isValidIANAZone(t){return Od.isValidZone(t)}static normalizeZone(t){return Bf(t,ci.defaultZone)}static getStartOfWeek({locale:t=null,locObj:n=null}={}){return(n||Gn.create(t)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:t=null,locObj:n=null}={}){return(n||Gn.create(t)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:t=null,locObj:n=null}={}){return(n||Gn.create(t)).getWeekendDays().slice()}static months(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||Gn.create(n,r,o)).months(t)}static monthsFormat(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||Gn.create(n,r,o)).months(t,!0)}static weekdays(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null}={}){return(i||Gn.create(n,r,null)).weekdays(t)}static weekdaysFormat(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null}={}){return(i||Gn.create(n,r,null)).weekdays(t,!0)}static meridiems({locale:t=null}={}){return Gn.create(t).meridiems()}static eras(t="short",{locale:n=null}={}){return Gn.create(n,null,"gregory").eras(t)}static features(){return{relative:Yee(),localeWeek:Kee()}}}function xte(e,t){const n=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),r=n(t)-n(e);return Math.floor(fn.fromMillis(r).as("days"))}function cRe(e,t,n){const r=[["years",(l,c)=>c.year-l.year],["quarters",(l,c)=>c.quarter-l.quarter+(c.year-l.year)*4],["months",(l,c)=>c.month-l.month+(c.year-l.year)*12],["weeks",(l,c)=>{const d=xte(l,c);return(d-d%7)/7}],["days",xte]],i={},o=e;let a,s;for(const[l,c]of r)n.indexOf(l)>=0&&(a=l,i[l]=c(e,t),s=o.plus(i),s>t?(i[l]--,e=o.plus(i),e>t&&(s=e,i[l]--,e=o.plus(i))):e=s);return[e,i,s,a]}function dRe(e,t,n,r){let[i,o,a,s]=cRe(e,t,n);const l=t-i,c=n.filter(f=>["hours","minutes","seconds","milliseconds"].indexOf(f)>=0);c.length===0&&(a0?fn.fromMillis(l,r).shiftTo(...c).plus(d):d}const fRe="missing Intl.DateTimeFormat.formatToParts support";function Dn(e,t=n=>n){return{regex:e,deser:([n])=>t(nLe(n))}}const hRe="\xA0",wte=`[ ${hRe}]`,kte=new RegExp(wte,"g");function pRe(e){return e.replace(/\./g,"\\.?").replace(kte,wte)}function Ste(e){return e.replace(/\./g,"").replace(kte," ").toLowerCase()}function Ql(e,t){return e===null?null:{regex:RegExp(e.map(pRe).join("|")),deser:([n])=>e.findIndex(r=>Ste(n)===Ste(r))+t}}function Cte(e,t){return{regex:e,deser:([,n,r])=>Q3(n,r),groups:t}}function rk(e){return{regex:e,deser:([t])=>t}}function mRe(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function gRe(e,t){const n=Xl(t),r=Xl(t,"{2}"),i=Xl(t,"{3}"),o=Xl(t,"{4}"),a=Xl(t,"{6}"),s=Xl(t,"{1,2}"),l=Xl(t,"{1,3}"),c=Xl(t,"{1,6}"),d=Xl(t,"{1,9}"),f=Xl(t,"{2,4}"),p=Xl(t,"{4,6}"),v=y=>({regex:RegExp(mRe(y.val)),deser:([b])=>b,literal:!0}),_=(y=>{if(e.literal)return v(y);switch(y.val){case"G":return Ql(t.eras("short"),0);case"GG":return Ql(t.eras("long"),0);case"y":return Dn(c);case"yy":return Dn(f,YE);case"yyyy":return Dn(o);case"yyyyy":return Dn(p);case"yyyyyy":return Dn(a);case"M":return Dn(s);case"MM":return Dn(r);case"MMM":return Ql(t.months("short",!0),1);case"MMMM":return Ql(t.months("long",!0),1);case"L":return Dn(s);case"LL":return Dn(r);case"LLL":return Ql(t.months("short",!1),1);case"LLLL":return Ql(t.months("long",!1),1);case"d":return Dn(s);case"dd":return Dn(r);case"o":return Dn(l);case"ooo":return Dn(i);case"HH":return Dn(r);case"H":return Dn(s);case"hh":return Dn(r);case"h":return Dn(s);case"mm":return Dn(r);case"m":return Dn(s);case"q":return Dn(s);case"qq":return Dn(r);case"s":return Dn(s);case"ss":return Dn(r);case"S":return Dn(l);case"SSS":return Dn(i);case"u":return rk(d);case"uu":return rk(s);case"uuu":return Dn(n);case"a":return Ql(t.meridiems(),0);case"kkkk":return Dn(o);case"kk":return Dn(f,YE);case"W":return Dn(s);case"WW":return Dn(r);case"E":case"c":return Dn(n);case"EEE":return Ql(t.weekdays("short",!1),1);case"EEEE":return Ql(t.weekdays("long",!1),1);case"ccc":return Ql(t.weekdays("short",!0),1);case"cccc":return Ql(t.weekdays("long",!0),1);case"Z":case"ZZ":return Cte(new RegExp(`([+-]${s.source})(?::(${r.source}))?`),2);case"ZZZ":return Cte(new RegExp(`([+-]${s.source})(${r.source})?`),2);case"z":return rk(/[a-z_+-/]{1,256}?/i);case" ":return rk(/[^\S\n\r]/);default:return v(y)}})(e)||{invalidReason:fRe};return _.token=e,_}const vRe={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function yRe(e,t,n){const{type:r,value:i}=e;if(r==="literal"){const l=/^\s+$/.test(i);return{literal:!l,val:l?" ":i}}const o=t[r];let a=r;r==="hour"&&(t.hour12!=null?a=t.hour12?"hour12":"hour24":t.hourCycle!=null?t.hourCycle==="h11"||t.hourCycle==="h12"?a="hour12":a="hour24":a=n.hour12?"hour12":"hour24");let s=vRe[a];if(typeof s=="object"&&(s=s[o]),s)return{literal:!1,val:s}}function bRe(e){return[`^${e.map(t=>t.regex).reduce((t,n)=>`${t}(${n.source})`,"")}$`,e]}function _Re(e,t,n){const r=e.match(t);if(r){const i={};let o=1;for(const a in n)if(fg(n,a)){const s=n[a],l=s.groups?s.groups+1:1;!s.literal&&s.token&&(i[s.token.val[0]]=s.deser(r.slice(o,o+l))),o+=l}return[r,i]}else return[r,{}]}function xRe(e){const t=i=>{switch(i){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let n=null,r;return Pt(e.z)||(n=Od.create(e.z)),Pt(e.Z)||(n||(n=new ba(e.Z)),r=e.Z),Pt(e.q)||(e.M=(e.q-1)*3+1),Pt(e.h)||(e.h<12&&e.a===1?e.h+=12:e.h===12&&e.a===0&&(e.h=0)),e.G===0&&e.y&&(e.y=-e.y),Pt(e.u)||(e.S=qE(e.u)),[Object.keys(e).reduce((i,o)=>{const a=t(o);return a&&(i[a]=e[o]),i},{}),n,r]}let QE=null;function wRe(){return QE||(QE=jt.fromMillis(1555555555555)),QE}function kRe(e,t){if(e.literal)return e;const n=Yo.macroTokenToFormatOpts(e.val),r=Ete(n,t);return r==null||r.includes(void 0)?e:r}function jte(e,t){return Array.prototype.concat(...e.map(n=>kRe(n,t)))}class Tte{constructor(t,n){if(this.locale=t,this.format=n,this.tokens=jte(Yo.parseFormat(n),t),this.units=this.tokens.map(r=>gRe(r,t)),this.disqualifyingUnit=this.units.find(r=>r.invalidReason),!this.disqualifyingUnit){const[r,i]=bRe(this.units);this.regex=RegExp(r,"i"),this.handlers=i}}explainFromTokens(t){if(this.isValid){const[n,r]=_Re(t,this.regex,this.handlers),[i,o,a]=r?xRe(r):[null,null,void 0];if(fg(r,"a")&&fg(r,"H"))throw new dg("Can't include meridiem when specifying 24-hour format");return{input:t,tokens:this.tokens,regex:this.regex,rawMatches:n,matches:r,result:i,zone:o,specificOffset:a}}else return{input:t,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function Ite(e,t,n){return new Tte(e,n).explainFromTokens(t)}function SRe(e,t,n){const{result:r,zone:i,specificOffset:o,invalidReason:a}=Ite(e,t,n);return[r,i,o,a]}function Ete(e,t){if(!e)return null;const n=Yo.create(t,e).dtFormatter(wRe()),r=n.formatToParts(),i=n.resolvedOptions();return r.map(o=>yRe(o,e,i))}const eN="Invalid DateTime",Nte=864e13;function _b(e){return new Jl("unsupported zone",`the zone "${e.name}" is not supported`)}function tN(e){return e.weekData===null&&(e.weekData=Y3(e.c)),e.weekData}function nN(e){return e.localWeekData===null&&(e.localWeekData=Y3(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function wp(e,t){const n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new jt({...n,...t,old:n})}function $te(e,t,n){let r=e-t*60*1e3;const i=n.offset(r);if(t===i)return[r,t];r-=(i-t)*60*1e3;const o=n.offset(r);return i===o?[r,i]:[e-Math.min(i,o)*60*1e3,Math.max(i,o)]}function ik(e,t){e+=t*60*1e3;const n=new Date(e);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function ok(e,t,n){return $te(J3(e),t,n)}function Mte(e,t){const n=e.o,r=e.c.year+Math.trunc(t.years),i=e.c.month+Math.trunc(t.months)+Math.trunc(t.quarters)*3,o={...e.c,year:r,month:i,day:Math.min(e.c.day,X3(r,i))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},a=fn.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),s=J3(o);let[l,c]=$te(s,n,e.zone);return a!==0&&(l+=a,c=e.zone.offset(l)),{ts:l,o:c}}function xg(e,t,n,r,i,o){const{setZone:a,zone:s}=n;if(e&&Object.keys(e).length!==0||t){const l=t||s,c=jt.fromObject(e,{...n,zone:l,specificOffset:o});return a?c:c.setZone(s)}else return jt.invalid(new Jl("unparsable",`the input "${i}" can't be parsed as ${r}`))}function ak(e,t,n=!0){return e.isValid?Yo.create(Gn.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function rN(e,t,n){const r=e.c.year>9999||e.c.year<0;let i="";if(r&&e.c.year>=0&&(i+="+"),i+=Li(e.c.year,r?6:4),n==="year")return i;if(t){if(i+="-",i+=Li(e.c.month),n==="month")return i;i+="-"}else if(i+=Li(e.c.month),n==="month")return i;return i+=Li(e.c.day),i}function Lte(e,t,n,r,i,o,a){let s=!n||e.c.millisecond!==0||e.c.second!==0,l="";switch(a){case"day":case"month":case"year":break;default:if(l+=Li(e.c.hour),a==="hour")break;if(t){if(l+=":",l+=Li(e.c.minute),a==="minute")break;s&&(l+=":",l+=Li(e.c.second))}else{if(l+=Li(e.c.minute),a==="minute")break;s&&(l+=Li(e.c.second))}if(a==="second")break;s&&(!r||e.c.millisecond!==0)&&(l+=".",l+=Li(e.c.millisecond,3))}return i&&(e.isOffsetFixed&&e.offset===0&&!o?l+="Z":e.o<0?(l+="-",l+=Li(Math.trunc(-e.o/60)),l+=":",l+=Li(Math.trunc(-e.o%60))):(l+="+",l+=Li(Math.trunc(e.o/60)),l+=":",l+=Li(Math.trunc(e.o%60)))),o&&(l+="["+e.zone.ianaName+"]"),l}const Rte={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},CRe={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},jRe={ordinal:1,hour:0,minute:0,second:0,millisecond:0},sk=["year","month","day","hour","minute","second","millisecond"],TRe=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],IRe=["year","ordinal","hour","minute","second","millisecond"];function lk(e){const t={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[e.toLowerCase()];if(!t)throw new lee(e);return t}function Ote(e){switch(e.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return lk(e)}}function ERe(e){if(xb===void 0&&(xb=ci.now()),e.type!=="iana")return e.offset(xb);const t=e.name;let n=iN.get(t);return n===void 0&&(n=e.offset(xb),iN.set(t,n)),n}function Pte(e,t){const n=Bf(t.zone,ci.defaultZone);if(!n.isValid)return jt.invalid(_b(n));const r=Gn.fromObject(t);let i,o;if(Pt(e.year))i=ci.now();else{for(const l of sk)Pt(e[l])&&(e[l]=Rte[l]);const a=qee(e)||Gee(e);if(a)return jt.invalid(a);const s=ERe(n);[i,o]=ok(e,s,n)}return new jt({ts:i,zone:n,loc:r,o})}function zte(e,t,n){const r=Pt(n.round)?!0:n.round,i=Pt(n.rounding)?"trunc":n.rounding,o=(s,l)=>(s=GE(s,r||n.calendary?0:2,n.calendary?"round":i),t.loc.clone(n).relFormatter(n).format(s,l)),a=s=>n.calendary?t.hasSame(e,s)?0:t.startOf(s).diff(e.startOf(s),s).get(s):t.diff(e,s).get(s);if(n.unit)return o(a(n.unit),n.unit);for(const s of n.units){const l=a(s);if(Math.abs(l)>=1)return o(l,s)}return o(e>t?-0:0,n.units[n.units.length-1])}function Dte(e){let t={},n;return e.length>0&&typeof e[e.length-1]=="object"?(t=e[e.length-1],n=Array.from(e).slice(0,e.length-1)):n=Array.from(e),[t,n]}let xb;const iN=new Map;class jt{constructor(t){const n=t.zone||ci.defaultZone;let r=t.invalid||(Number.isNaN(t.ts)?new Jl("invalid input"):null)||(n.isValid?null:_b(n));this.ts=Pt(t.ts)?ci.now():t.ts;let i=null,o=null;if(!r)if(t.old&&t.old.ts===this.ts&&t.old.zone.equals(n))[i,o]=[t.old.c,t.old.o];else{const a=Uf(t.o)&&!t.old?t.o:n.offset(this.ts);i=ik(this.ts,a),r=Number.isNaN(i.year)?new Jl("invalid input"):null,i=r?null:i,o=r?null:a}this._zone=n,this.loc=t.loc||Gn.create(),this.invalid=r,this.weekData=null,this.localWeekData=null,this.c=i,this.o=o,this.isLuxonDateTime=!0}static now(){return new jt({})}static local(){const[t,n]=Dte(arguments),[r,i,o,a,s,l,c]=n;return Pte({year:r,month:i,day:o,hour:a,minute:s,second:l,millisecond:c},t)}static utc(){const[t,n]=Dte(arguments),[r,i,o,a,s,l,c]=n;return t.zone=ba.utcInstance,Pte({year:r,month:i,day:o,hour:a,minute:s,second:l,millisecond:c},t)}static fromJSDate(t,n={}){const r=sLe(t)?t.valueOf():NaN;if(Number.isNaN(r))return jt.invalid("invalid input");const i=Bf(n.zone,ci.defaultZone);return i.isValid?new jt({ts:r,zone:i,loc:Gn.fromObject(n)}):jt.invalid(_b(i))}static fromMillis(t,n={}){if(Uf(t))return t<-Nte||t>Nte?jt.invalid("Timestamp out of range"):new jt({ts:t,zone:Bf(n.zone,ci.defaultZone),loc:Gn.fromObject(n)});throw new Bo(`fromMillis requires a numerical input, but received a ${typeof t} with value ${t}`)}static fromSeconds(t,n={}){if(Uf(t))return new jt({ts:t*1e3,zone:Bf(n.zone,ci.defaultZone),loc:Gn.fromObject(n)});throw new Bo("fromSeconds requires a numerical input")}static fromObject(t,n={}){t=t||{};const r=Bf(n.zone,ci.defaultZone);if(!r.isValid)return jt.invalid(_b(r));const i=Gn.fromObject(n),o=ek(t,Ote),{minDaysInFirstWeek:a,startOfWeek:s}=Zee(o,i),l=ci.now(),c=Pt(n.specificOffset)?r.offset(l):n.specificOffset,d=!Pt(o.ordinal),f=!Pt(o.year),p=!Pt(o.month)||!Pt(o.day),v=f||p,_=o.weekYear||o.weekNumber;if((v||d)&&_)throw new dg("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(p&&d)throw new dg("Can't mix ordinal dates with month/day");const y=_||o.weekday&&!v;let b,w,x=ik(l,c);y?(b=TRe,w=CRe,x=Y3(x,a,s)):d?(b=IRe,w=jRe,x=HE(x)):(b=sk,w=Rte);let S=!1;for(const M of b){const P=o[M];Pt(P)?S?o[M]=w[M]:o[M]=x[M]:S=!0}const C=y?iLe(o,a,s):d?oLe(o):qee(o),j=C||Gee(o);if(j)return jt.invalid(j);const T=y?Vee(o,a,s):d?Hee(o):o,[E,$]=ok(T,c,r),A=new jt({ts:E,zone:r,o:$,loc:i});return o.weekday&&v&&t.weekday!==A.weekday?jt.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${A.toISO()}`):A.isValid?A:jt.invalid(A.invalid)}static fromISO(t,n={}){const[r,i]=KLe(t);return xg(r,i,n,"ISO 8601",t)}static fromRFC2822(t,n={}){const[r,i]=XLe(t);return xg(r,i,n,"RFC 2822",t)}static fromHTTP(t,n={}){const[r,i]=JLe(t);return xg(r,i,n,"HTTP",n)}static fromFormat(t,n,r={}){if(Pt(t)||Pt(n))throw new Bo("fromFormat requires an input string and a format");const{locale:i=null,numberingSystem:o=null}=r,a=Gn.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0}),[s,l,c,d]=SRe(a,t,n);return d?jt.invalid(d):xg(s,l,r,`format ${n}`,t,c)}static fromString(t,n,r={}){return jt.fromFormat(t,n,r)}static fromSQL(t,n={}){const[r,i]=oRe(t);return xg(r,i,n,"SQL",t)}static invalid(t,n=null){if(!t)throw new Bo("need to specify a reason the DateTime is invalid");const r=t instanceof Jl?t:new Jl(t,n);if(ci.throwOnInvalid)throw new MMe(r);return new jt({invalid:r})}static isDateTime(t){return t&&t.isLuxonDateTime||!1}static parseFormatForOpts(t,n={}){const r=Ete(t,Gn.fromObject(n));return r?r.map(i=>i?i.val:null).join(""):null}static expandFormat(t,n={}){return jte(Yo.parseFormat(t),Gn.fromObject(n)).map(r=>r.val).join("")}static resetCache(){xb=void 0,iN.clear()}get(t){return this[t]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?tN(this).weekYear:NaN}get weekNumber(){return this.isValid?tN(this).weekNumber:NaN}get weekday(){return this.isValid?tN(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?nN(this).weekday:NaN}get localWeekNumber(){return this.isValid?nN(this).weekNumber:NaN}get localWeekYear(){return this.isValid?nN(this).weekYear:NaN}get ordinal(){return this.isValid?HE(this.c).ordinal:NaN}get monthShort(){return this.isValid?nk.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?nk.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?nk.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?nk.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const t=864e5,n=6e4,r=J3(this.c),i=this.zone.offset(r-t),o=this.zone.offset(r+t),a=this.zone.offset(r-i*n),s=this.zone.offset(r-o*n);if(a===s)return[this];const l=r-a*n,c=r-s*n,d=ik(l,a),f=ik(c,s);return d.hour===f.hour&&d.minute===f.minute&&d.second===f.second&&d.millisecond===f.millisecond?[wp(this,{ts:l}),wp(this,{ts:c})]:[this]}get isInLeapYear(){return mb(this.year)}get daysInMonth(){return X3(this.year,this.month)}get daysInYear(){return this.isValid?hg(this.year):NaN}get weeksInWeekYear(){return this.isValid?gb(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?gb(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(t={}){const{locale:n,numberingSystem:r,calendar:i}=Yo.create(this.loc.clone(t),t).resolvedOptions(this);return{locale:n,numberingSystem:r,outputCalendar:i}}toUTC(t=0,n={}){return this.setZone(ba.instance(t),n)}toLocal(){return this.setZone(ci.defaultZone)}setZone(t,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(t=Bf(t,ci.defaultZone),t.equals(this.zone))return this;if(t.isValid){let i=this.ts;if(n||r){const o=t.offset(this.ts),a=this.toObject();[i]=ok(a,o,t)}return wp(this,{ts:i,zone:t})}else return jt.invalid(_b(t))}reconfigure({locale:t,numberingSystem:n,outputCalendar:r}={}){const i=this.loc.clone({locale:t,numberingSystem:n,outputCalendar:r});return wp(this,{loc:i})}setLocale(t){return this.reconfigure({locale:t})}set(t){if(!this.isValid)return this;const n=ek(t,Ote),{minDaysInFirstWeek:r,startOfWeek:i}=Zee(n,this.loc),o=!Pt(n.weekYear)||!Pt(n.weekNumber)||!Pt(n.weekday),a=!Pt(n.ordinal),s=!Pt(n.year),l=!Pt(n.month)||!Pt(n.day),c=s||l,d=n.weekYear||n.weekNumber;if((c||a)&&d)throw new dg("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&a)throw new dg("Can't mix ordinal dates with month/day");let f;o?f=Vee({...Y3(this.c,r,i),...n},r,i):Pt(n.ordinal)?(f={...this.toObject(),...n},Pt(n.day)&&(f.day=Math.min(X3(f.year,f.month),f.day))):f=Hee({...HE(this.c),...n});const[p,v]=ok(f,this.o,this.zone);return wp(this,{ts:p,o:v})}plus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t);return wp(this,Mte(this,n))}minus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t).negate();return wp(this,Mte(this,n))}startOf(t,{useLocaleWeeks:n=!1}={}){if(!this.isValid)return this;const r={},i=fn.normalizeUnit(t);switch(i){case"years":r.month=1;case"quarters":case"months":r.day=1;case"weeks":case"days":r.hour=0;case"hours":r.minute=0;case"minutes":r.second=0;case"seconds":r.millisecond=0;break}if(i==="weeks")if(n){const o=this.loc.getStartOfWeek(),{weekday:a}=this;a=3&&(l+="T"),l+=Lte(this,s,n,r,i,o,a),l}toISODate({format:t="extended",precision:n="day"}={}){return this.isValid?rN(this,t==="extended",lk(n)):null}toISOWeekDate(){return ak(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:t=!1,suppressSeconds:n=!1,includeOffset:r=!0,includePrefix:i=!1,extendedZone:o=!1,format:a="extended",precision:s="milliseconds"}={}){return this.isValid?(s=lk(s),(i&&sk.indexOf(s)>=3?"T":"")+Lte(this,a==="extended",n,t,r,o,s)):null}toRFC2822(){return ak(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return ak(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?rN(this,!0):null}toSQLTime({includeOffset:t=!0,includeZone:n=!1,includeOffsetSpace:r=!0}={}){let i="HH:mm:ss.SSS";return(n||t)&&(r&&(i+=" "),n?i+="z":t&&(i+="ZZ")),ak(this,i,!0)}toSQL(t={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(t)}`:null}toString(){return this.isValid?this.toISO():eN}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(t={}){if(!this.isValid)return{};const n={...this.c};return t.includeConfig&&(n.outputCalendar=this.outputCalendar,n.numberingSystem=this.loc.numberingSystem,n.locale=this.loc.locale),n}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(t,n="milliseconds",r={}){if(!this.isValid||!t.isValid)return fn.invalid("created by diffing an invalid DateTime");const i={locale:this.locale,numberingSystem:this.numberingSystem,...r},o=lLe(n).map(fn.normalizeUnit),a=t.valueOf()>this.valueOf(),s=a?this:t,l=a?t:this,c=dRe(s,l,o,i);return a?c.negate():c}diffNow(t="milliseconds",n={}){return this.diff(jt.now(),t,n)}until(t){return this.isValid?hi.fromDateTimes(this,t):this}hasSame(t,n,r){if(!this.isValid)return!1;const i=t.valueOf(),o=this.setZone(t.zone,{keepLocalTime:!0});return o.startOf(n,r)<=i&&i<=o.endOf(n,r)}equals(t){return this.isValid&&t.isValid&&this.valueOf()===t.valueOf()&&this.zone.equals(t.zone)&&this.loc.equals(t.loc)}toRelative(t={}){if(!this.isValid)return null;const n=t.base||jt.fromObject({},{zone:this.zone}),r=t.padding?thisn.valueOf(),Math.min)}static max(...t){if(!t.every(jt.isDateTime))throw new Bo("max requires all arguments be DateTimes");return Xee(t,n=>n.valueOf(),Math.max)}static fromFormatExplain(t,n,r={}){const{locale:i=null,numberingSystem:o=null}=r,a=Gn.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});return Ite(a,t,n)}static fromStringExplain(t,n,r={}){return jt.fromFormatExplain(t,n,r)}static buildFormatParser(t,n={}){const{locale:r=null,numberingSystem:i=null}=n,o=Gn.fromOpts({locale:r,numberingSystem:i,defaultToEN:!0});return new Tte(o,t)}static fromFormatParser(t,n,r={}){if(Pt(t)||Pt(n))throw new Bo("fromFormatParser requires an input string and a format parser");const{locale:i=null,numberingSystem:o=null}=r,a=Gn.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});if(!a.equals(n.locale))throw new Bo(`fromFormatParser called with a locale of ${a}, but the format parser was created for ${n.locale}`);const{result:s,zone:l,specificOffset:c,invalidReason:d}=n.explainFromTokens(t);return d?jt.invalid(d):xg(s,l,r,`format ${n.format}`,t,c)}static get DATE_SHORT(){return Z3}static get DATE_MED(){return uee}static get DATE_MED_WITH_WEEKDAY(){return OMe}static get DATE_FULL(){return cee}static get DATE_HUGE(){return dee}static get TIME_SIMPLE(){return fee}static get TIME_WITH_SECONDS(){return hee}static get TIME_WITH_SHORT_OFFSET(){return pee}static get TIME_WITH_LONG_OFFSET(){return mee}static get TIME_24_SIMPLE(){return gee}static get TIME_24_WITH_SECONDS(){return vee}static get TIME_24_WITH_SHORT_OFFSET(){return yee}static get TIME_24_WITH_LONG_OFFSET(){return bee}static get DATETIME_SHORT(){return _ee}static get DATETIME_SHORT_WITH_SECONDS(){return xee}static get DATETIME_MED(){return wee}static get DATETIME_MED_WITH_SECONDS(){return kee}static get DATETIME_MED_WITH_WEEKDAY(){return PMe}static get DATETIME_FULL(){return See}static get DATETIME_FULL_WITH_SECONDS(){return Cee}static get DATETIME_HUGE(){return jee}static get DATETIME_HUGE_WITH_SECONDS(){return Tee}}function wb(e){if(jt.isDateTime(e))return e;if(e&&e.valueOf&&Uf(e.valueOf()))return jt.fromJSDate(e);if(e&&typeof e=="object")return jt.fromObject(e);throw new Bo(`Unknown datetime argument: ${e}, of type ${typeof e}`)}const $n=4,oN=5,Ate=3,Uo=4,Fte=9,dd=1e9,aN=1e6,Bte=6e7,sN={0:"Success",1:"Account In Use",2:"Account Loaded Twice",3:"Account Not Found",4:"Program Account Not Found",5:"Insufficient Funds For Fee",6:"Invalid Account For Fee",7:"Already Processed",8:"Blockhash Not Found",9:"Instruction Error",10:"Call Chain Too Deep",11:"Missing Signature For Fee",12:"Invalid Account Index",13:"Signature Failure",14:"Invalid Program For Execution",15:"Sanitize Failure",16:"Cluster Maintenance",17:"Account Borrow Outstanding",18:"Would Exceed Max Block Cost Limit",19:"Unsupported Version",20:"Invalid Writable Account",21:"Would Exceed Max Account Cost Limit",22:"Would Exceed Account Data Block Limit",23:"Too Many Account Locks",24:"Address Lookup Table Not Found",25:"Invalid Address Lookup Table Owner",26:"Invalid Address Lookup Table Data",27:"Invalid Address Lookup Table Index",28:"Invalid Rent Paying Account",29:"Would Exceed Max Vote Cost Limit",30:"Would Exceed Account Data Total Limit",31:"Duplicate Instruction",32:"Insufficient Funds For Rent",33:"Max Loaded Accounts Data Size Exceeded",34:"Invalid Loaded Accounts Data Size Limit",35:"Resanitization Needed",36:"Program Execution Temporarily Restricted",37:"Unbalanced Transaction",38:"Program Cache Hit Max Limit",39:"Commit Cancelled",40:"Bundle Peer",50:"Blockhash Nonce Already Advanced",51:"Blockhash Advanced Failed",52:"Blockhash Wrong Nonce"},uk="\xA0",kb=5,Ute=30,Sb=48,lN=13,uN=21,NRe=28,Vf=5,cN=21,ck=8,dN=ck,fN=122,Wte=cN+ck,$Re=Wte+fN+Vf,Vte="(max-width: 768px)",Hte="564px",Hf=110,Zte="1920px";var za=(e=>(e.AgaveJito="Agave Jito",e.Frankendancer="Frankendancer",e.Agave="Agave",e.AgavePaladin="Agave Paladin",e.Firedancer="Firedancer",e.AgaveBam="Agave BAM",e.Sig="Sig",e.AgaveRakurai="Agave Rakurai",e.FiredancerHarmonic="Firedancer Harmonic",e.AgaveHarmonic="Agave Harmonic",e.FrankendancerHarmonic="Frankendancer Harmonic",e))(za||{});const qte={1:"Agave Jito",2:"Frankendancer",3:"Agave",4:"Agave Paladin",5:"Firedancer",6:"Agave BAM",7:"Sig",8:"Agave Rakurai",9:"Firedancer Harmonic",10:"Agave Harmonic",11:"Frankendancer Harmonic"};function MRe(){if(typeof window>"u")return!1;const e=navigator.userAgent.toLowerCase();return/iphone|android|windows phone|ipad|android|tablet/.test(e)||"ontouchstart"in window&&!!(matchMedia!=null&&matchMedia("(hover: none)").matches)}const LRe=MRe(),fd="#E5484D",hN="#67B873",Gte="#C567EA",Yte="#2A7EDF",dk="#1CE7C2",RRe="#CBCBCB",Kte="#8A8A8A",pN="#B2BCC9",wg="#67696A",mN="#8E909D",Xte="#B4B4B4",Jte="#949494",ORe="rgba(250, 250, 250, 0.12)",PRe="rgba(250, 250, 250, 0.05)",zRe="#24262B",DRe="#F7F8F8",ARe="var(--gray-1, #111)",FRe="var(--gray-12, #eee)",BRe="var(--gray-10, #7b7b7b)",URe="#333333",WRe="#F7F7F7",Qte=Jte,hd="#557AE0",Zf=hN,VRe="#9982f0",HRe="#303134",ZRe="#37a4bc",qRe="#00205F",GRe="#010102",YRe="#03030C",KRe="#A7A7A7",XRe="#121213",JRe=dk,QRe="#3BA158",eOe="#030312",tOe="#020C12",nOe="#020912",rOe="#060E0E",iOe="#120602",oOe="#252D2C",aOe="#175E51",sOe="#2D2B25",lOe="#6A510C",uOe="#E6B11E",cOe="#2D2525",dOe="#5E1717",fOe="#CE3636",hOe="#A2A2A2",pOe="#666",mOe="#C8B3B3",gOe="#686868",vOe="#171765ff",yOe="linear-gradient(270deg, #1414B8 0%, #090952 100%)",bOe="#8F8FED",_Oe="#0E0E8E",xOe="#0C171D",wOe="linear-gradient(270deg, #1481B8 0%, #093952 100%)",kOe="#47B4EB",SOe="#0F3F57",COe="#041225",jOe="linear-gradient(270deg, #0E448B 0%, #090E15 100%)",TOe="#83B3F2",IOe="#0E448B",EOe="#091515",NOe=`linear-gradient(270deg, ${dk} 0%, #0C6B5A 100%)`,$Oe="#2EC9C9",MOe="#0C6B5A",LOe="#231511",ROe="linear-gradient(270deg, #8B2B0E 0%, #150C09 100%)",OOe="#F29D83",POe="#250C04",zOe="rgba(16, 129, 108, 0.53)",DOe="#ffffff1a",AOe="rgba(250, 250, 250, 0.12)",FOe="#cac4c4",BOe="#231f1f",UOe="var(--gray-11)",WOe="var(--gray-10)",VOe="var(--gray-9)",HOe="var(--gray-7)",ene="#3972C9",tne="#74AFEA",nne="#0F1313",rne="#118B74",ine="#871616",one="#163454",ane="#89603E",ZOe="#EF5F00",qOe="#F76B15",GOe="#0D9B8A",YOe="#53B9AB",KOe="#0588F0",XOe="#0090FF",sne=dk,lne="#E7B81C",une="#1C96E7",cne="#E7601C",dne="#9D1CE7",fne="#E71C88",hne="#898989",JOe="#FF7878",QOe="#FF9D0A",ePe="#FFC267",pne="#141720",fk="var(--gray-11)",hk="var(--gray-9)",mne="#56BF8C",gne="#4A7661",vne="#C27B45",yne="#714C32",bne="#DC6869",_ne="#7A3B40",Yu="#BDF3FF",pk="#6F77C0",xne="#363A63",gN="#20788C",tPe="#b1b1b1",wne="#7b837c",kne="#eee",Sne="#006851",Cne="#19307C",jne="#743F4D",nPe="#919191",rPe="#E5B319",iPe="#E55A19",oPe="#E5484D",vN="#55BA83",yN="#D94343",Tne="#232A38",aPe="#676767",sPe="#E13131",lPe="#5F6FA9",uPe="#A2A2A2",cPe="#DB8F38",dPe="#CACACA",bN="#858585",_N="#312D42",xN="#A66759",wN="#597FA6",kN="#A67F59",SN="#366357",CN="#B2904D",jN="#2F3842",TN="#B23232",IN="#82738C",fPe="#FAFAFA",hPe="#3CB4FF",pPe="#142D53",mPe="#FF5353",Ine="#525463",Ene="#23639E",Nne="#5C5555",$ne="#452909",qf="#C6C6C6",EN="#183A5A",Mne="#10273D",gPe="#7CE198",vPe="#A4A3A3",yPe="#1B659933",sr="#777b84",NN="#2C3235",pd="#D19DFF",kg="#4CCCE6",Gf="#1FD8A4",bPe="#6A6A6E",Lne=wg,Rne="rgba(250, 250, 250, 0.05)",$N="#30A46C",MN="#E5484D",mk="#FF8DCC",kp="#9EB1FF",_Pe="#292929",xPe="#9e9e9e",wPe="#1d6fba",kPe="#84858a",LN="rgba(0, 0, 0, .5)",One="rgba(125, 94, 84, .5)",Pne="#A18072",RN="#6C4E62",zne="rgba(158, 108, 0, .5)",Dne="#836A21",Ane="rgba(96, 100, 108, .5)",Fne="#B5B2BC",Bne="rgba(17, 50, 100, .5)",Une="#0090FF",SPe="var(--gray-11)",CPe="var(--gray-10)",jPe="#41B9D3",TPe="#C46BF0",IPe="#6BEFD7",EPe="#C6F06A",NPe="#71EF9B",$Pe="#6AC4F0",MPe="#DDD",LPe="#8FB6FC",RPe="linear-gradient(83.85deg, #024eff 0.22%, #3ce844 102.21%)",OPe="#F5F2EC",ON="#AFB2C2",PPe="rgba(178, 178, 178, 0.12)",zPe="#424242",DPe="rgba(114, 114, 114, 0.15)",APe="#646464",PN="#676767",FPe="var(--gray-11)",BPe="var(--gray-10)",UPe="#cbcbcb",WPe="#1190CF",VPe="#6CB1D3",HPe="#967DC8",gk="#871616",zN="#1d863b",DN="#1d6286",Wne="#1CE7C2",Vne="#076B59",ZPe="#313131",Hne="#666666",Zne=DN,qPe="#19457A",GPe="#FFF",YPe="var(--gray-10)",qne="var(--teal-9)",Gne="var(--cyan-9)",Yne="var(--red-8)",Kne="var(--sky-8)",Xne="var(--green-9)",Jne="var(--indigo-10)",KPe="var(--blue-9)",XPe="#15181e",JPe="#9aabc3",QPe="#250f0f",eze="#283551",tze="#3b0c0c",nze="#e3efff",rze="#484D53B2",ize="var(--gray-11)",oze="var(--gray-10)",aze="var(--gray-12)",sze="#70B8FF",lze="#070A13",uze="#070B14 ",cze="rgba(42, 126, 223, 0.5)",dze="rgba(125, 125, 125, 0.50)",fze="#2A7EDF",hze="#070a13",pze="#0D0D0D",mze="#250f0f",gze="#002163",vze="#3b0c0c",yze="#848484",bze="#A0A0A0",_ze="#ccc",xze="#878787",wze="rgba(191, 135, 253, 0.13)",kze="#283551",vk="#0000001F",Sze=Object.freeze(Object.defineProperty({__proto__:null,appTeal:dk,averageChangedColor:vne,averageUnchangedColor:yne,badChangedColor:bne,badUnchangedColor:_ne,bootProgressCatchupBackgroundColor:rOe,bootProgressFullSnapshotBackgroundColor:tOe,bootProgressGossipBackgroundColor:eOe,bootProgressGossipBarsColor:oOe,bootProgressGossipFilledBarColor:aOe,bootProgressGossipHighBarColor:cOe,bootProgressGossipHighFilledBarColor:dOe,bootProgressGossipHighThresholdBarColor:fOe,bootProgressGossipMidBarColor:sOe,bootProgressGossipMidFilledBarColor:lOe,bootProgressGossipMidThresholdBarColor:uOe,bootProgressIncrSnapshotBackgroundColor:nOe,bootProgressPrimaryTextColor:hOe,bootProgressSecondaryTextColor:pOe,bootProgressSnapshotUnitsColor:gOe,bootProgressSupermajorityBackgroundColor:iOe,bootProgressTertiaryColor:mOe,cardBackgroundColor:pne,chartAxisColor:sr,chartGridColor:NN,chartGridStrokeColor:Rne,circularProgressPathColor:Zne,circularProgressTrailColor:Hne,clusterDevelopmentColor:une,clusterDevnetColor:cne,clusterMainnetBetaColor:sne,clusterPythnetColor:dne,clusterPythtestColor:fne,clusterTestnetColor:lne,clusterUnknownColor:hne,computeUnitsColor:pd,containerBackgroundColor:PRe,containerBorderColor:ORe,dropdownBackgroundColor:zRe,dropdownButtonTextColor:DRe,elapsedTimeColor:bPe,epochNotLiveColor:hPe,epochSkippedSlotColor:mPe,epochSliderProgressColor:pPe,epochTextColor:fPe,errorToggleColor:MN,fadedText:kPe,failureColor:fd,feesColor:kg,firstTurbineSlotColor:ene,focusedBorderColor:wPe,goodChangedColor:mne,goodUnchangedColor:gne,gridLineColor:_N,gridTicksColor:bN,headerColor:Yu,headerLabelTextColor:Jte,highIncrementTextColor:oPe,iconButtonColor:Xte,incomePerCuToggleControlColor:kp,latestTurbineSlotColor:tne,lowIncrementTextColor:rPe,midIncrementTextColor:iPe,missingSlotColor:nne,mySlotsColor:Yte,navButtonInactiveTextColor:Qte,navButtonTextColor:WRe,needsReplaySlotColor:one,nextColor:Gte,nextSlotValueColor:dPe,nonDelinquentChartColor:xne,nonDelinquentColor:pk,nonVoteColor:Zf,popoverBackgroundColor:ARe,popoverPrimaryColor:FRe,popoverSecondaryColor:BRe,primaryTextColor:pN,programCacheColor:kne,progressBackgroundColor:ZRe,progressBarCompleteCatchupColor:MOe,progressBarCompleteFullSnapshotColor:SOe,progressBarCompleteGossipColor:_Oe,progressBarCompleteIncSnapshotColor:IOe,progressBarCompleteSupermajorityColor:POe,progressBarInProgressCatchupBackground:NOe,progressBarInProgressCatchupBorder:$Oe,progressBarInProgressFullSnapshotBackground:wOe,progressBarInProgressFullSnapshotBorder:kOe,progressBarInProgressGossipBackground:yOe,progressBarInProgressGossipBorder:bOe,progressBarInProgressIncSnapshotBackground:jOe,progressBarInProgressIncSnapshotBorder:TOe,progressBarInProgressSupermajorityBackground:ROe,progressBarInProgressSupermajorityBorder:OOe,progressBarIncompleteCatchupColor:EOe,progressBarIncompleteFullSnapshotColor:xOe,progressBarIncompleteGossipColor:vOe,progressBarIncompleteIncSnapshotColor:COe,progressBarIncompleteSupermajorityColor:LOe,progressGutterBackgroundColor:HRe,regularTextColor:mN,repairedNeedsReplaySlotColor:ane,repairedSlotsBoldTextColor:qOe,repairedSlotsTextColor:ZOe,replayedMissingSlotColor:ine,replayedSlotColor:rne,replayedSlotsBoldTextColor:YOe,replayedSlotsTextColor:GOe,requestedToggleControlColor:mk,rowSeparatorBackgroundColor:URe,sankeyBaseLabelColor:qf,sankeyDroppedLinkColor:Nne,sankeyIncomingLinkColor:Ene,sankeyLinkGradientEndColor:EN,sankeyLinkGradientMiddleColor:Mne,sankeyRetainedLinkColor:$ne,sankeyStartEndNodeColor:Ine,sankeySuccessRateColor:gPe,searchDisabledBackgroundColor:DPe,searchDisabledBorderColor:PPe,searchDisabledTextColor:zPe,searchIconColor:ON,secondaryTextColor:wg,shredPublishedColor:IN,shredReceivedRepairColor:kN,shredReceivedTurbineColor:wN,shredRepairRequestedColor:xN,shredReplayedNothingColor:jN,shredReplayedRepairColor:CN,shredReplayedTurbineColor:SN,shredSkippedColor:TN,skipRateLabelColor:APe,slotCardHeaderTextColor:UPe,slotCardSectionBackgroundColor:PN,slotCardSectionPrimaryColor:FPe,slotCardSectionSecondaryColor:BPe,slotDetailsBackgroundColor:XPe,slotDetailsChartControlsTriggered:sze,slotDetailsClickableSlotColor:KPe,slotDetailsColor:JPe,slotDetailsDisabledSlotBorderColor:rze,slotDetailsEarliestSlotColor:qne,slotDetailsFeesSlotColor:Kne,slotDetailsMySlotsNotSelectedColor:qPe,slotDetailsQuickSearchTextColor:YPe,slotDetailsRecentSlotColor:Gne,slotDetailsRewardsSlotColor:Jne,slotDetailsSearchLabelColor:GPe,slotDetailsSelectedBackgroundColor:eze,slotDetailsSelectedColor:nze,slotDetailsSkippedBackgroundColor:QPe,slotDetailsSkippedSelectedBackgroundColor:tze,slotDetailsSkippedSlotColor:Yne,slotDetailsStatsPrimary:ize,slotDetailsStatsSecondary:oze,slotDetailsStatsTertiary:aze,slotDetailsTipsSlotColor:Xne,slotNavBackgroundColor:GRe,slotNavFilterBackgroundColor:qRe,slotSelectorItemBackgroundColor:yPe,slotSelectorTextColor:vPe,slotStatusBlue:DN,slotStatusDullTeal:Vne,slotStatusGray:ZPe,slotStatusGreen:zN,slotStatusRed:gk,slotStatusTeal:Wne,slotTextActiveLinkColor:VPe,slotTextLinkColor:WPe,slotTextVisitedLinkColor:HPe,slotTimelineTextColor:tPe,slotsListBackgroundColor:hze,slotsListCurrentSlotBoxShadowColor:wze,slotsListCurrentSlotNumberBackgroundColor:kze,slotsListFutureSlotBackgroundColor:pze,slotsListFutureSlotColor:xze,slotsListMySlotBackgroundColor:uze,slotsListMySlotsBorderColor:cze,slotsListMySlotsSelectedBorderColor:fze,slotsListNotProcessedMySlotsBorderColor:dze,slotsListPastSlotColor:bze,slotsListPastSlotNumberColor:yze,slotsListSelectedBackgroundColor:gze,slotsListSkippedBackgroundColor:mze,slotsListSkippedSelectedBackgroundColor:vze,slotsListSlotBackgroundColor:lze,slotsListSlotColor:_ze,snapshotAreaChartDark:zOe,snapshotAreaChartGridLineColor:DOe,startLineColor:Lne,startupBackgroundColor:YRe,startupCompleteStepColor:QRe,startupProgressBackgroundColor:XRe,startupProgressTealColor:JRe,startupTextColor:KRe,successColor:hN,successToggleColor:$N,summaryAgaveTextColor:EPe,summaryBamTextColor:MPe,summaryFiredancerTextColor:IPe,summaryFrankendancerTextColor:TPe,summaryHarmonicTextColor:OPe,summaryJitoTextColor:NPe,summaryMySlotsColor:jPe,summaryPaladinTextColor:$Pe,summaryPrimaryTextColor:SPe,summaryRakuraiTextColor:RPe,summarySecondaryTextColor:CPe,summarySigTextColor:LPe,supermajorityPieChartTextColor:FOe,supermajorityPieChartUnfilledColor:BOe,supermajorityTableBorderColor:AOe,supermajorityTableOfflinePrimaryColor:UOe,supermajorityTableOfflineSecondaryColor:WOe,supermajorityTableOnlinePrimaryColor:VOe,supermajorityTableOnlineSecondaryColor:HOe,tableBodyColor:Kte,tableHeaderColor:RRe,tileBackgroundBlueColor:lPe,tileBackgroundRedColor:sPe,tileBusyGreenColor:vN,tileBusyRedColor:yN,tileChartDarkBackground:vk,tilePrimaryStatValueColor:cPe,tileSparklineBackgroundColor:Tne,tileSparklineRangeTextColor:aPe,tileSubHeaderColor:uPe,tipsColor:Gf,toastConnectingEndColor:ePe,toastConnectingStartColor:QOe,toastDisconnectedColor:JOe,toggleItemBackgroundColor:_Pe,toggleItemTextColor:xPe,totalValidatorsColor:gN,transactionAxisTextColor:nPe,transactionDefaultColor:LN,transactionExecuteColor:Ane,transactionExecuteTextColor:Fne,transactionFailedPathColor:jne,transactionLoadingColor:zne,transactionLoadingTextColor:Dne,transactionNonVotePathColor:Sne,transactionPostExecuteColor:Bne,transactionPostExecuteTextColor:Une,transactionPreloadingColor:One,transactionPreloadingTextColor:Pne,transactionValidateColor:RN,transactionVotePathColor:Cne,turbineSlotsBoldTextColor:XOe,turbineSlotsTextColor:KOe,unknownChangedColor:fk,unknownUnchangedColor:hk,voteDistanceColor:wne,voteLatencyColor:VRe,votesColor:hd},Symbol.toStringTag,{value:"Module"}));var Cze={isEqual:!0,isMatchingKey:!0,isPromise:!0,maxSize:!0,onCacheAdd:!0,onCacheChange:!0,onCacheHit:!0,transformKey:!0},jze=Array.prototype.slice;function yk(e){var t=e.length;return t?t===1?[e[0]]:t===2?[e[0],e[1]]:t===3?[e[0],e[1],e[2]]:jze.call(e,0):[]}function Tze(e){var t={};for(var n in e)Cze[n]||(t[n]=e[n]);return t}function Ize(e){return typeof e=="function"&&e.isMemoized}function Eze(e,t){return e===t||e!==e&&t!==t}function Qne(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n}var Nze=function(){function e(t){this.keys=[],this.values=[],this.options=t;var n=typeof t.isMatchingKey=="function";n?this.getKeyIndex=this._getKeyIndexFromMatchingKey:t.maxSize>1?this.getKeyIndex=this._getKeyIndexForMany:this.getKeyIndex=this._getKeyIndexForSingle,this.canTransformKey=typeof t.transformKey=="function",this.shouldCloneArguments=this.canTransformKey||n,this.shouldUpdateOnAdd=typeof t.onCacheAdd=="function",this.shouldUpdateOnChange=typeof t.onCacheChange=="function",this.shouldUpdateOnHit=typeof t.onCacheHit=="function"}return Object.defineProperty(e.prototype,"size",{get:function(){return this.keys.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"snapshot",{get:function(){return{keys:yk(this.keys),size:this.size,values:yk(this.values)}},enumerable:!1,configurable:!0}),e.prototype._getKeyIndexFromMatchingKey=function(t){var n=this.options,r=n.isMatchingKey,i=n.maxSize,o=this.keys,a=o.length;if(!a)return-1;if(r(o[0],t))return 0;if(i>1){for(var s=1;s1){for(var l=0;l1){for(var a=0;a=l&&(i.length=o.length=l)},e.prototype.updateAsyncCache=function(t){var n=this,r=this.options,i=r.onCacheChange,o=r.onCacheHit,a=this.keys[0],s=this.values[0];this.values[0]=s.then(function(l){return n.shouldUpdateOnHit&&o(n,n.options,t),n.shouldUpdateOnChange&&i(n,n.options,t),l},function(l){var c=n.getKeyIndex(a);throw c!==-1&&(n.keys.splice(c,1),n.values.splice(c,1)),l})},e}();function Yf(e,t){if(t===void 0&&(t={}),Ize(e))return Yf(e.fn,Qne(e.options,t));if(typeof e!="function")throw new TypeError("You must pass a function to `memoize`.");var n=t.isEqual,r=n===void 0?Eze:n,i=t.isMatchingKey,o=t.isPromise,a=o===void 0?!1:o,s=t.maxSize,l=s===void 0?1:s,c=t.onCacheAdd,d=t.onCacheChange,f=t.onCacheHit,p=t.transformKey,v=Qne({isEqual:r,isMatchingKey:i,isPromise:a,maxSize:l,onCacheAdd:c,onCacheChange:d,onCacheHit:f,transformKey:p},Tze(t)),_=new Nze(v),y=_.keys,b=_.values,w=_.canTransformKey,x=_.shouldCloneArguments,S=_.shouldUpdateOnAdd,C=_.shouldUpdateOnChange,j=_.shouldUpdateOnHit,T=function(){var E=x?yk(arguments):arguments;w&&(E=p(E));var $=y.length?_.getKeyIndex(E):-1;if($!==-1)j&&f(_,v,T),$&&(_.orderByLru(y[$],b[$],$),C&&d(_,v,T));else{var A=e.apply(this,arguments),M=x?E:yk(arguments);_.orderByLru(M,A,y.length),a&&_.updateAsyncCache(T),S&&c(_,v,T),C&&d(_,v,T)}return b[0]};return T.cache=_,T.fn=e,T.isMemoized=!0,T.options=v,T}function AN(e,t){return e.leader_slots.reduce((n,r,i)=>(e.staked_pubkeys[r]===t&&n.push(i*$n+e.start_slot),n),[])}function xi(e){return e-e%$n}const FN=[{unit:"years",suffix:"y"},{unit:"months",suffix:"m"},{unit:"weeks",suffix:"w"},{unit:"days",suffix:"d"},{unit:"hours",suffix:"h"},{unit:"minutes",suffix:"m"},{unit:"seconds",suffix:"s"}];function $ze(e,t){if(t!=null&&t.showOnlyTwoSignificantUnits){const n=FN.findIndex(({unit:r})=>!!e[r]);return FN.slice(n,n+2).map(({unit:r,suffix:i})=>[e[r],i])}return FN.filter(({unit:n})=>t!=null&&t.omitSeconds&&n==="seconds"?!1:!!e[n]).map(({unit:n,suffix:r})=>[e[n],r])}function ere(e,t){if(!e)return;if(e.toMillis()<1e3)return[[0,"s"]];const n=$ze(e,t);return n.length?n:[[0,"s"]]}function Sp(e,t){const n=ere(e,t);return n?n.map(([r,i])=>`${r}${i}`).join(" "):"Never"}function Mze(e,t={showSeconds:!0}){if(!e)return"Never";if(e.toMillis()<0)return"0s";let n="";return e.years&&(n&&(n+=" "),n+=`${e.years}y`),e.months&&(n&&(n+=" "),n+=`${e.months}m`),e.weeks&&(n&&(n+=" "),n+=`${e.weeks}w`),e.days&&(n&&(n+=" "),n+=`${e.days}d`),e.hours&&(n&&(n+=" "),n+=`${e.hours}h`),e.minutes&&(n&&(n+=" "),n+=`${e.minutes}m`),e.seconds&&t.showSeconds&&(n&&(n+=" "),n+=`${e.seconds}s`),n||(n="0s"),n}let Kf=jt.now();setInterval(()=>{Kf=jt.now()},1e3);function tre(e){return jt.fromMillis(Math.trunc(Number(e/1000000n)))}function Cb(e){return e!==void 0}const jb=e=>e>=18446744073709552e3?0:e;function nre(e){return e.vote.reduce((t,{activated_stake:n})=>t+n,0n)}function Tb(e,t){if(e===void 0)return;const n=Number(e)/dd;return n<1?n.toLocaleString(void 0,{maximumFractionDigits:t}):n<100?n.toLocaleString(void 0,{maximumFractionDigits:2}):n.toLocaleString(void 0,{maximumFractionDigits:0})}function BN(e,t){const n=Tb(e,t);if(n!==void 0)return`${n}\xA0SOL`}const Lze=e=>Array.isArray(e);function UN(e){if(navigator.clipboard){navigator.clipboard.writeText(e);return}const t=document.createElement("textarea");t.value=e,t.style.position="absolute",t.style.left="-999999px",document.body.appendChild(t),t.select();try{document.execCommand("copy")||console.error("Failed to copy text",e)}catch(n){console.error("Failed to copy text",e,n)}finally{document.body.removeChild(t)}}function Rze(e){const t=e.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}function WN(e,t){return e.txn_landed[t]&&![5,6].includes(e.txn_error_code[t])?e.txn_priority_fee[t]+e.txn_transaction_fee[t]:0n}function VN(e,t){return e.txn_landed[t]&&e.txn_error_code[t]===0?e.txn_tips[t]:0n}function md(e,t){return WN(e,t)+VN(e,t)}function HN(e){return e.split(":")[0]}function bk(e){switch(e){case"mainnet-beta":return sne;case"testnet":return lne;case"development":return une;case"devnet":return cne;case"pythnet":return dne;case"pythtest":return fne;case"unknown":case void 0:return hne}}function Ib(e){const t=e*8;return t<1e3?{value:_k(t),unit:"b"}:t<1e6?{value:_k(t/1e3),unit:"Kb"}:t<1e9?{value:_k(t/1e6),unit:"Mb"}:{value:_k(t/1e9),unit:"Gb"}}const Sg=[{unit:"B",divisor:1,threshold:1e3},{unit:"kB",divisor:1e3,threshold:1e6},{unit:"MB",divisor:1e6,threshold:1e9},{unit:"GB",divisor:1e9,threshold:1/0}];function Da(e,t=1,n,r=!0){if(e===0&&r)return{value:"0",unit:n??"B"};const i=Sg.find(o=>o.unit===n)??Sg.find(o=>e=9.5?Math.round(e):Math.round(e*10)/10}function Eb(e){let t=-1/0;for(let n=0;nt&&(t=r)}return t}function Oze(e){let t=1/0;for(let n=0;n{if(e)return e.toUpperCase().split("").map(t=>String.fromCodePoint(t.charCodeAt(0)-65+127462)).join("")},{maxSize:100}),xk={month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3},wk={local:new Intl.DateTimeFormat(void 0,{...xk,timeZoneName:"short"}),localNoTz:new Intl.DateTimeFormat(void 0,xk),utc:new Intl.DateTimeFormat(void 0,{...xk,timeZone:"UTC",timeZoneName:"short"}),utcNoTz:new Intl.DateTimeFormat(void 0,{...xk,timeZone:"UTC"})};function kk(e,t){const n=Number(e/1000000n),r=Number(e%1000000n),i=new Date(n),o=(t==null?void 0:t.timezone)??"local",a=(t==null?void 0:t.showTimezoneName)??!0,s=(o==="utc"?a?wk.utc:wk.utcNoTz:a?wk.local:wk.localNoTz).formatToParts(i),l=r.toString().padStart(6,"0");let c="",d="";for(const f of s)c+=f.value,d+=f.value,f.type==="fractionalSecond"&&(d+=l);return{inMillis:c,inNanos:d}}function zze(e){return e.level==="rooted"&&(e.vote_latency&&e.vote_latency>1||e.vote_latency===null&&!e.skipped)}function rre(e,t,n){let r=0;for(let i=e;it>=a.from&&t{if(!t)return"";const a=Cp(t,{units:"iec"}),s=e?e/t:0,l=Number(a.value);return`${isNaN(l)?"0":(l*s).toFixed(1)} / ${a.toString()}`};return u.jsx(V,{children:u.jsxs(V,{direction:"column",children:[u.jsx(Mt,{minHeight:"10px"}),u.jsx(N4,{value:r,className:H3.progress}),u.jsxs(V,{minHeight:"10px",children:[u.jsx(q,{className:H3.text,children:o()}),u.jsx(Mt,{flexGrow:"1"}),u.jsxs(q,{className:H3.text,children:["~",Sp(i)]})]})]})})}function Aze(){const e=X(Zu);if(e)return u.jsx(lre,{currentBytes:e.downloading_full_snapshot_current_bytes,totalBytes:e.downloading_full_snapshot_total_bytes,remainingSecs:e.downloading_full_snapshot_remaining_secs})}var Sk={exports:{}};/** -* @license -* Lodash -* Copyright OpenJS Foundation and other contributors -* Released under MIT license -* Based on Underscore.js 1.8.3 -* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors -*/Sk.exports,function(e,t){(function(){var n,r="4.17.21",i=200,o="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",s="Invalid `variable` option passed into `_.template`",l="__lodash_hash_undefined__",c=500,d="__lodash_placeholder__",f=1,p=2,v=4,_=1,y=2,b=1,w=2,x=4,S=8,C=16,j=32,T=64,E=128,$=256,A=512,M=30,P="...",te=800,Z=16,O=1,J=2,D=3,Y=1/0,F=9007199254740991,H=17976931348623157e292,ee=NaN,ce=4294967295,U=ce-1,ae=ce>>>1,je=[["ary",E],["bind",b],["bindKey",w],["curry",S],["curryRight",C],["flip",A],["partial",j],["partialRight",T],["rearg",$]],me="[object Arguments]",ke="[object Array]",he="[object AsyncFunction]",ue="[object Boolean]",re="[object Date]",ge="[object DOMException]",$e="[object Error]",pe="[object Function]",ye="[object GeneratorFunction]",Se="[object Map]",Ce="[object Number]",Be="[object Null]",Ge="[object Object]",xt="[object Promise]",St="[object Proxy]",ut="[object RegExp]",ct="[object Set]",bt="[object String]",Qe="[object Symbol]",Ke="[object Undefined]",De="[object WeakMap]",Dt="[object WeakSet]",pn="[object ArrayBuffer]",Yn="[object DataView]",fr="[object Float32Array]",Kn="[object Float64Array]",wr="[object Int8Array]",Pn="[object Int16Array]",$r="[object Int32Array]",tr="[object Uint8Array]",kr="[object Uint8ClampedArray]",ni="[object Uint16Array]",uo="[object Uint32Array]",Ki=/\b__p \+= '';/g,No=/\b(__p \+=) '' \+/g,Os=/(__e\(.*?\)|\b__t\)) \+\n'';/g,zn=/&(?:amp|lt|gt|quot|#39);/g,co=/[&<>"']/g,_a=RegExp(zn.source),yc=RegExp(co.source),bc=/<%-([\s\S]+?)%>/g,_c=/<%([\s\S]+?)%>/g,qa=/<%=([\s\S]+?)%>/g,kl=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,pi=/^\w*$/,Bn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Mr=/[\\^$.*+?()[\]{}|]/g,$o=RegExp(Mr.source),fo=/^\s+/,Lr=/\s/,ho=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,xa=/\{\n\/\* \[wrapped with (.+)\] \*/,it=/,? & /,Yt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,nr=/[()=,{}\[\]\/\s]/,ht=/\\(\\)?/g,ri=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ga=/\w*$/,Ya=/^[-+]0x[0-9a-f]+$/i,Ko=/^0b[01]+$/i,mi=/^\[object .+?Constructor\]$/,Un=/^0o[0-7]+$/i,hr=/^(?:0|[1-9]\d*)$/,Sr=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ka=/($^)/,po=/['\n\r\u2028\u2029\\]/g,mo="\\ud800-\\udfff",Wr="\\u0300-\\u036f",wa="\\ufe20-\\ufe2f",ji="\\u20d0-\\u20ff",gi=Wr+wa+ji,Ps="\\u2700-\\u27bf",go="a-z\\xdf-\\xf6\\xf8-\\xff",Xo="\\xac\\xb1\\xd7\\xf7",Pd="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",zd="\\u2000-\\u206f",bu=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Xi="A-Z\\xc0-\\xd6\\xd8-\\xde",ii="\\ufe0e\\ufe0f",xc=Xo+Pd+zd+bu,_u="['\u2019]",wc="["+mo+"]",kc="["+xc+"]",Sl="["+gi+"]",Xa="\\d+",z1="["+Ps+"]",Dd="["+go+"]",Sc="[^"+mo+xc+Xa+Ps+go+Xi+"]",Ad="\\ud83c[\\udffb-\\udfff]",Fm="(?:"+Sl+"|"+Ad+")",Fd="[^"+mo+"]",R="(?:\\ud83c[\\udde6-\\uddff]){2}",G="[\\ud800-\\udbff][\\udc00-\\udfff]",ie="["+Xi+"]",Ie="\\u200d",ze="(?:"+Dd+"|"+Sc+")",vt="(?:"+ie+"|"+Sc+")",Kt="(?:"+_u+"(?:d|ll|m|re|s|t|ve))?",In="(?:"+_u+"(?:D|LL|M|RE|S|T|VE))?",Di=Fm+"?",Ti="["+ii+"]?",Ji="(?:"+Ie+"(?:"+[Fd,R,G].join("|")+")"+Ti+Di+")*",pC="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Bd="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",jx=Ti+Di+Ji,Tx="(?:"+[z1,R,G].join("|")+")"+jx,D1="(?:"+[Fd+Sl+"?",Sl,R,G,wc].join("|")+")",A1=RegExp(_u,"g"),F1=RegExp(Sl,"g"),xu=RegExp(Ad+"(?="+Ad+")|"+D1+jx,"g"),Ud=RegExp([ie+"?"+Dd+"+"+Kt+"(?="+[kc,ie,"$"].join("|")+")",vt+"+"+In+"(?="+[kc,ie+ze,"$"].join("|")+")",ie+"?"+ze+"+"+Kt,ie+"+"+In,Bd,pC,Xa,Tx].join("|"),"g"),Ix=RegExp("["+Ie+mo+gi+ii+"]"),Ex=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Wd=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Vd=-1,rr={};rr[fr]=rr[Kn]=rr[wr]=rr[Pn]=rr[$r]=rr[tr]=rr[kr]=rr[ni]=rr[uo]=!0,rr[me]=rr[ke]=rr[pn]=rr[ue]=rr[Yn]=rr[re]=rr[$e]=rr[pe]=rr[Se]=rr[Ce]=rr[Ge]=rr[ut]=rr[ct]=rr[bt]=rr[De]=!1;var Xn={};Xn[me]=Xn[ke]=Xn[pn]=Xn[Yn]=Xn[ue]=Xn[re]=Xn[fr]=Xn[Kn]=Xn[wr]=Xn[Pn]=Xn[$r]=Xn[Se]=Xn[Ce]=Xn[Ge]=Xn[ut]=Xn[ct]=Xn[bt]=Xn[Qe]=Xn[tr]=Xn[kr]=Xn[ni]=Xn[uo]=!0,Xn[$e]=Xn[pe]=Xn[De]=!1;var pr={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Cr={"&":"&","<":"<",">":">",'"':""","'":"'"},wu={"&":"&","<":"<",">":">",""":'"',"'":"'"},Ai={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ii=parseFloat,Ei=parseInt,ir=typeof Ac=="object"&&Ac&&Ac.Object===Object&&Ac,Hd=typeof self=="object"&&self&&self.Object===Object&&self,oi=ir||Hd||Function("return this")(),B1=t&&!t.nodeType&&t,Mo=B1&&!0&&e&&!e.nodeType&&e,Ja=Mo&&Mo.exports===B1,U1=Ja&&ir.process,ka=function(){try{var le=Mo&&Mo.require&&Mo.require("util").types;return le||U1&&U1.binding&&U1.binding("util")}catch{}}(),Nx=ka&&ka.isArrayBuffer,$x=ka&&ka.isDate,zs=ka&&ka.isMap,Cl=ka&&ka.isRegExp,ku=ka&&ka.isSet,Cc=ka&&ka.isTypedArray;function Jo(le,Ne,we){switch(we.length){case 0:return le.call(Ne);case 1:return le.call(Ne,we[0]);case 2:return le.call(Ne,we[0],we[1]);case 3:return le.call(Ne,we[0],we[1],we[2])}return le.apply(Ne,we)}function Ds(le,Ne,we,Je){for(var _t=-1,Gt=le==null?0:le.length;++_t-1}function V1(le,Ne,we){for(var Je=-1,_t=le==null?0:le.length;++Je<_t;)if(we(Ne,le[Je]))return!0;return!1}function or(le,Ne){for(var we=-1,Je=le==null?0:le.length,_t=Array(Je);++we-1;);return we}function Px(le,Ne){for(var we=le.length;we--&&Tc(Ne,le[we],0)>-1;);return we}function mC(le,Ne){for(var we=le.length,Je=0;we--;)le[we]===Ne&&++Je;return Je}var J1=Y1(pr),N=Y1(Cr);function z(le){return"\\"+Ai[le]}function K(le,Ne){return le==null?n:le[Ne]}function Q(le){return Ix.test(le)}function de(le){return Ex.test(le)}function xe(le){for(var Ne,we=[];!(Ne=le.next()).done;)we.push(Ne.value);return we}function Me(le){var Ne=-1,we=Array(le.size);return le.forEach(function(Je,_t){we[++Ne]=[_t,Je]}),we}function Fe(le,Ne){return function(we){return le(Ne(we))}}function Ve(le,Ne){for(var we=-1,Je=le.length,_t=0,Gt=[];++we-1}function I0e(h,g){var k=this.__data__,I=Yx(k,h);return I<0?(++this.size,k.push([h,g])):k[I][1]=g,this}Nc.prototype.clear=S0e,Nc.prototype.delete=C0e,Nc.prototype.get=j0e,Nc.prototype.has=T0e,Nc.prototype.set=I0e;function $c(h){var g=-1,k=h==null?0:h.length;for(this.clear();++g=g?h:g)),h}function Bs(h,g,k,I,L,W){var ne,se=g&f,ve=g&p,Le=g&v;if(k&&(ne=L?k(h,I,L,W):k(h)),ne!==n)return ne;if(!Xr(h))return h;var Re=Ht(h);if(Re){if(ne=Mge(h),!se)return ja(h,ne)}else{var Ae=Ro(h),tt=Ae==pe||Ae==ye;if(Qd(h))return hz(h,se);if(Ae==Ge||Ae==me||tt&&!L){if(ne=ve||tt?{}:Mz(h),!se)return ve?xge(h,V0e(ne,h)):_ge(h,WP(ne,h))}else{if(!Xn[Ae])return L?h:{};ne=Lge(h,Ae,se)}}W||(W=new Tl);var pt=W.get(h);if(pt)return pt;W.set(h,ne),sD(h)?h.forEach(function($t){ne.add(Bs($t,g,k,$t,h,W))}):oD(h)&&h.forEach(function($t,mn){ne.set(mn,Bs($t,g,k,mn,h,W))});var Nt=Le?ve?FC:AC:ve?Ia:eo,nn=Re?n:Nt(h);return Sa(nn||h,function($t,mn){nn&&(mn=$t,$t=h[mn]),iv(ne,mn,Bs($t,g,k,mn,h,W))}),ne}function H0e(h){var g=eo(h);return function(k){return VP(k,h,g)}}function VP(h,g,k){var I=k.length;if(h==null)return!I;for(h=tn(h);I--;){var L=k[I],W=g[L],ne=h[L];if(ne===n&&!(L in h)||!W(ne))return!1}return!0}function HP(h,g,k){if(typeof h!="function")throw new ar(a);return dv(function(){h.apply(n,k)},g)}function ov(h,g,k,I){var L=-1,W=Su,ne=!0,se=h.length,ve=[],Le=g.length;if(!se)return ve;k&&(g=or(g,Sn(k))),I?(W=V1,ne=!1):g.length>=i&&(W=Ic,ne=!1,g=new Th(g));e:for(;++LL?0:L+k),I=I===n||I>L?L:Xt(I),I<0&&(I+=L),I=k>I?0:uD(I);k0&&k(se)?g>1?vo(se,g-1,k,I,L):Cu(L,se):I||(L[L.length]=se)}return L}var xC=bz(),GP=bz(!0);function Iu(h,g){return h&&xC(h,g,eo)}function wC(h,g){return h&&GP(h,g,eo)}function Xx(h,g){return Ca(g,function(k){return Pc(h[k])})}function Eh(h,g){g=Xd(g,h);for(var k=0,I=g.length;h!=null&&kg}function G0e(h,g){return h!=null&&Jn.call(h,g)}function Y0e(h,g){return h!=null&&g in tn(h)}function K0e(h,g,k){return h>=Lo(g,k)&&h=120&&Re.length>=120)?new Th(ne&&Re):n}Re=h[0];var Ae=-1,tt=se[0];e:for(;++Ae-1;)se!==h&&Ux.call(se,ve,1),Ux.call(h,ve,1);return h}function oz(h,g){for(var k=h?g.length:0,I=k-1;k--;){var L=g[k];if(k==I||L!==W){var W=L;Oc(L)?Ux.call(h,L,1):MC(h,L)}}return h}function EC(h,g){return h+Hx(AP()*(g-h+1))}function uge(h,g,k,I){for(var L=-1,W=Fi(Vx((g-h)/(k||1)),0),ne=we(W);W--;)ne[I?W:++L]=h,h+=k;return ne}function NC(h,g){var k="";if(!h||g<1||g>F)return k;do g%2&&(k+=h),g=Hx(g/2),g&&(h+=h);while(g);return k}function sn(h,g){return qC(Oz(h,g,Ea),h+"")}function cge(h){return UP(Xm(h))}function dge(h,g){var k=Xm(h);return l2(k,Ih(g,0,k.length))}function lv(h,g,k,I){if(!Xr(h))return h;g=Xd(g,h);for(var L=-1,W=g.length,ne=W-1,se=h;se!=null&&++LL?0:L+g),k=k>L?L:k,k<0&&(k+=L),L=g>k?0:k-g>>>0,g>>>=0;for(var W=we(L);++I>>1,ne=h[W];ne!==null&&!es(ne)&&(k?ne<=g:ne=i){var Le=g?null:Cge(h);if(Le)return et(Le);ne=!1,L=Ic,ve=new Th}else ve=g?[]:se;e:for(;++I=I?h:Us(h,g,k)}var fz=n0e||function(h){return oi.clearTimeout(h)};function hz(h,g){if(g)return h.slice();var k=h.length,I=RP?RP(k):new h.constructor(k);return h.copy(I),I}function PC(h){var g=new h.constructor(h.byteLength);return new Fx(g).set(new Fx(h)),g}function gge(h,g){var k=g?PC(h.buffer):h.buffer;return new h.constructor(k,h.byteOffset,h.byteLength)}function vge(h){var g=new h.constructor(h.source,Ga.exec(h));return g.lastIndex=h.lastIndex,g}function yge(h){return rv?tn(rv.call(h)):{}}function pz(h,g){var k=g?PC(h.buffer):h.buffer;return new h.constructor(k,h.byteOffset,h.length)}function mz(h,g){if(h!==g){var k=h!==n,I=h===null,L=h===h,W=es(h),ne=g!==n,se=g===null,ve=g===g,Le=es(g);if(!se&&!Le&&!W&&h>g||W&&ne&&ve&&!se&&!Le||I&&ne&&ve||!k&&ve||!L)return 1;if(!I&&!W&&!Le&&h=se)return ve;var Le=k[I];return ve*(Le=="desc"?-1:1)}}return h.index-g.index}function gz(h,g,k,I){for(var L=-1,W=h.length,ne=k.length,se=-1,ve=g.length,Le=Fi(W-ne,0),Re=we(ve+Le),Ae=!I;++se1?k[L-1]:n,ne=L>2?k[2]:n;for(W=h.length>3&&typeof W=="function"?(L--,W):n,ne&&ta(k[0],k[1],ne)&&(W=L<3?n:W,L=1),g=tn(g);++I-1?L[W?g[ne]:ne]:n}}function wz(h){return Rc(function(g){var k=g.length,I=k,L=Fs.prototype.thru;for(h&&g.reverse();I--;){var W=g[I];if(typeof W!="function")throw new ar(a);if(L&&!ne&&a2(W)=="wrapper")var ne=new Fs([],!0)}for(I=ne?I:k;++I1&&xn.reverse(),Re&&vese))return!1;var Le=W.get(h),Re=W.get(g);if(Le&&Re)return Le==g&&Re==h;var Ae=-1,tt=!0,pt=k&y?new Th:n;for(W.set(h,g),W.set(g,h);++Ae1?"& ":"")+g[I],g=g.join(k>2?", ":" "),h.replace(ho,`{ -/* [wrapped with `+g+`] */ -`)}function Oge(h){return Ht(h)||Mh(h)||!!(zP&&h&&h[zP])}function Oc(h,g){var k=typeof h;return g=g??F,!!g&&(k=="number"||k!="symbol"&&hr.test(h))&&h>-1&&h%1==0&&h0){if(++g>=te)return arguments[0]}else g=0;return h.apply(n,arguments)}}function l2(h,g){var k=-1,I=h.length,L=I-1;for(g=g===n?I:g;++k1?h[g-1]:n;return k=typeof k=="function"?(h.pop(),k):n,qz(h,k)});function Gz(h){var g=B(h);return g.__chain__=!0,g}function Z1e(h,g){return g(h),h}function u2(h,g){return g(h)}var q1e=Rc(function(h){var g=h.length,k=g?h[0]:0,I=this.__wrapped__,L=function(W){return _C(W,h)};return g>1||this.__actions__.length||!(I instanceof yn)||!Oc(k)?this.thru(L):(I=I.slice(k,+k+(g?1:0)),I.__actions__.push({func:u2,args:[L],thisArg:n}),new Fs(I,this.__chain__).thru(function(W){return g&&!W.length&&W.push(n),W}))});function G1e(){return Gz(this)}function Y1e(){return new Fs(this.value(),this.__chain__)}function K1e(){this.__values__===n&&(this.__values__=lD(this.value()));var h=this.__index__>=this.__values__.length,g=h?n:this.__values__[this.__index__++];return{done:h,value:g}}function X1e(){return this}function J1e(h){for(var g,k=this;k instanceof Gx;){var I=Bz(k);I.__index__=0,I.__values__=n,g?L.__wrapped__=I:g=I;var L=I;k=k.__wrapped__}return L.__wrapped__=h,g}function Q1e(){var h=this.__wrapped__;if(h instanceof yn){var g=h;return this.__actions__.length&&(g=new yn(this)),g=g.reverse(),g.__actions__.push({func:u2,args:[GC],thisArg:n}),new Fs(g,this.__chain__)}return this.thru(GC)}function eve(){return cz(this.__wrapped__,this.__actions__)}var tve=t2(function(h,g,k){Jn.call(h,k)?++h[k]:Mc(h,k,1)});function nve(h,g,k){var I=Ht(h)?W1:Z0e;return k&&ta(h,g,k)&&(g=n),I(h,It(g,3))}function rve(h,g){var k=Ht(h)?Ca:qP;return k(h,It(g,3))}var ive=xz(Uz),ove=xz(Wz);function ave(h,g){return vo(c2(h,g),1)}function sve(h,g){return vo(c2(h,g),Y)}function lve(h,g,k){return k=k===n?1:Xt(k),vo(c2(h,g),k)}function Yz(h,g){var k=Ht(h)?Sa:Yd;return k(h,It(g,3))}function Kz(h,g){var k=Ht(h)?Mx:ZP;return k(h,It(g,3))}var uve=t2(function(h,g,k){Jn.call(h,k)?h[k].push(g):Mc(h,k,[g])});function cve(h,g,k,I){h=Ta(h)?h:Xm(h),k=k&&!I?Xt(k):0;var L=h.length;return k<0&&(k=Fi(L+k,0)),m2(h)?k<=L&&h.indexOf(g,k)>-1:!!L&&Tc(h,g,k)>-1}var dve=sn(function(h,g,k){var I=-1,L=typeof g=="function",W=Ta(h)?we(h.length):[];return Yd(h,function(ne){W[++I]=L?Jo(g,ne,k):av(ne,g,k)}),W}),fve=t2(function(h,g,k){Mc(h,k,g)});function c2(h,g){var k=Ht(h)?or:QP;return k(h,It(g,3))}function hve(h,g,k,I){return h==null?[]:(Ht(g)||(g=g==null?[]:[g]),k=I?n:k,Ht(k)||(k=k==null?[]:[k]),rz(h,g,k))}var pve=t2(function(h,g,k){h[k?0:1].push(g)},function(){return[[],[]]});function mve(h,g,k){var I=Ht(h)?jl:K1,L=arguments.length<3;return I(h,It(g,4),k,L,Yd)}function gve(h,g,k){var I=Ht(h)?ju:K1,L=arguments.length<3;return I(h,It(g,4),k,L,ZP)}function vve(h,g){var k=Ht(h)?Ca:qP;return k(h,h2(It(g,3)))}function yve(h){var g=Ht(h)?UP:cge;return g(h)}function bve(h,g,k){(k?ta(h,g,k):g===n)?g=1:g=Xt(g);var I=Ht(h)?B0e:dge;return I(h,g)}function _ve(h){var g=Ht(h)?U0e:hge;return g(h)}function xve(h){if(h==null)return 0;if(Ta(h))return m2(h)?hn(h):h.length;var g=Ro(h);return g==Se||g==ct?h.size:jC(h).length}function wve(h,g,k){var I=Ht(h)?jc:pge;return k&&ta(h,g,k)&&(g=n),I(h,It(g,3))}var kve=sn(function(h,g){if(h==null)return[];var k=g.length;return k>1&&ta(h,g[0],g[1])?g=[]:k>2&&ta(g[0],g[1],g[2])&&(g=[g[0]]),rz(h,vo(g,1),[])}),d2=r0e||function(){return oi.Date.now()};function Sve(h,g){if(typeof g!="function")throw new ar(a);return h=Xt(h),function(){if(--h<1)return g.apply(this,arguments)}}function Xz(h,g,k){return g=k?n:g,g=h&&g==null?h.length:g,Lc(h,E,n,n,n,n,g)}function Jz(h,g){var k;if(typeof g!="function")throw new ar(a);return h=Xt(h),function(){return--h>0&&(k=g.apply(this,arguments)),h<=1&&(g=n),k}}var KC=sn(function(h,g,k){var I=b;if(k.length){var L=Ve(k,Ym(KC));I|=j}return Lc(h,I,g,k,L)}),Qz=sn(function(h,g,k){var I=b|w;if(k.length){var L=Ve(k,Ym(Qz));I|=j}return Lc(g,I,h,k,L)});function eD(h,g,k){g=k?n:g;var I=Lc(h,S,n,n,n,n,n,g);return I.placeholder=eD.placeholder,I}function tD(h,g,k){g=k?n:g;var I=Lc(h,C,n,n,n,n,n,g);return I.placeholder=tD.placeholder,I}function nD(h,g,k){var I,L,W,ne,se,ve,Le=0,Re=!1,Ae=!1,tt=!0;if(typeof h!="function")throw new ar(a);g=Vs(g)||0,Xr(k)&&(Re=!!k.leading,Ae="maxWait"in k,W=Ae?Fi(Vs(k.maxWait)||0,g):W,tt="trailing"in k?!!k.trailing:tt);function pt(yi){var El=I,Dc=L;return I=L=n,Le=yi,ne=h.apply(Dc,El),ne}function Nt(yi){return Le=yi,se=dv(mn,g),Re?pt(yi):ne}function nn(yi){var El=yi-ve,Dc=yi-Le,xD=g-El;return Ae?Lo(xD,W-Dc):xD}function $t(yi){var El=yi-ve,Dc=yi-Le;return ve===n||El>=g||El<0||Ae&&Dc>=W}function mn(){var yi=d2();if($t(yi))return xn(yi);se=dv(mn,nn(yi))}function xn(yi){return se=n,tt&&I?pt(yi):(I=L=n,ne)}function ts(){se!==n&&fz(se),Le=0,I=ve=L=se=n}function na(){return se===n?ne:xn(d2())}function ns(){var yi=d2(),El=$t(yi);if(I=arguments,L=this,ve=yi,El){if(se===n)return Nt(ve);if(Ae)return fz(se),se=dv(mn,g),pt(ve)}return se===n&&(se=dv(mn,g)),ne}return ns.cancel=ts,ns.flush=na,ns}var Cve=sn(function(h,g){return HP(h,1,g)}),jve=sn(function(h,g,k){return HP(h,Vs(g)||0,k)});function Tve(h){return Lc(h,A)}function f2(h,g){if(typeof h!="function"||g!=null&&typeof g!="function")throw new ar(a);var k=function(){var I=arguments,L=g?g.apply(this,I):I[0],W=k.cache;if(W.has(L))return W.get(L);var ne=h.apply(this,I);return k.cache=W.set(L,ne)||W,ne};return k.cache=new(f2.Cache||$c),k}f2.Cache=$c;function h2(h){if(typeof h!="function")throw new ar(a);return function(){var g=arguments;switch(g.length){case 0:return!h.call(this);case 1:return!h.call(this,g[0]);case 2:return!h.call(this,g[0],g[1]);case 3:return!h.call(this,g[0],g[1],g[2])}return!h.apply(this,g)}}function Ive(h){return Jz(2,h)}var Eve=mge(function(h,g){g=g.length==1&&Ht(g[0])?or(g[0],Sn(It())):or(vo(g,1),Sn(It()));var k=g.length;return sn(function(I){for(var L=-1,W=Lo(I.length,k);++L=g}),Mh=KP(function(){return arguments}())?KP:function(h){return si(h)&&Jn.call(h,"callee")&&!PP.call(h,"callee")},Ht=we.isArray,Vve=Nx?Sn(Nx):J0e;function Ta(h){return h!=null&&p2(h.length)&&!Pc(h)}function vi(h){return si(h)&&Ta(h)}function Hve(h){return h===!0||h===!1||si(h)&&ea(h)==ue}var Qd=o0e||lj,Zve=$x?Sn($x):Q0e;function qve(h){return si(h)&&h.nodeType===1&&!fv(h)}function Gve(h){if(h==null)return!0;if(Ta(h)&&(Ht(h)||typeof h=="string"||typeof h.splice=="function"||Qd(h)||Km(h)||Mh(h)))return!h.length;var g=Ro(h);if(g==Se||g==ct)return!h.size;if(cv(h))return!jC(h).length;for(var k in h)if(Jn.call(h,k))return!1;return!0}function Yve(h,g){return sv(h,g)}function Kve(h,g,k){k=typeof k=="function"?k:n;var I=k?k(h,g):n;return I===n?sv(h,g,n,k):!!I}function JC(h){if(!si(h))return!1;var g=ea(h);return g==$e||g==ge||typeof h.message=="string"&&typeof h.name=="string"&&!fv(h)}function Xve(h){return typeof h=="number"&&DP(h)}function Pc(h){if(!Xr(h))return!1;var g=ea(h);return g==pe||g==ye||g==he||g==St}function iD(h){return typeof h=="number"&&h==Xt(h)}function p2(h){return typeof h=="number"&&h>-1&&h%1==0&&h<=F}function Xr(h){var g=typeof h;return h!=null&&(g=="object"||g=="function")}function si(h){return h!=null&&typeof h=="object"}var oD=zs?Sn(zs):tge;function Jve(h,g){return h===g||CC(h,g,UC(g))}function Qve(h,g,k){return k=typeof k=="function"?k:n,CC(h,g,UC(g),k)}function eye(h){return aD(h)&&h!=+h}function tye(h){if(Dge(h))throw new _t(o);return XP(h)}function nye(h){return h===null}function rye(h){return h==null}function aD(h){return typeof h=="number"||si(h)&&ea(h)==Ce}function fv(h){if(!si(h)||ea(h)!=Ge)return!1;var g=Bx(h);if(g===null)return!0;var k=Jn.call(g,"constructor")&&g.constructor;return typeof k=="function"&&k instanceof k&&zx.call(k)==Qme}var QC=Cl?Sn(Cl):nge;function iye(h){return iD(h)&&h>=-F&&h<=F}var sD=ku?Sn(ku):rge;function m2(h){return typeof h=="string"||!Ht(h)&&si(h)&&ea(h)==bt}function es(h){return typeof h=="symbol"||si(h)&&ea(h)==Qe}var Km=Cc?Sn(Cc):ige;function oye(h){return h===n}function aye(h){return si(h)&&Ro(h)==De}function sye(h){return si(h)&&ea(h)==Dt}var lye=o2(TC),uye=o2(function(h,g){return h<=g});function lD(h){if(!h)return[];if(Ta(h))return m2(h)?Bt(h):ja(h);if(Q1&&h[Q1])return xe(h[Q1]());var g=Ro(h),k=g==Se?Me:g==ct?et:Xm;return k(h)}function zc(h){if(!h)return h===0?h:0;if(h=Vs(h),h===Y||h===-Y){var g=h<0?-1:1;return g*H}return h===h?h:0}function Xt(h){var g=zc(h),k=g%1;return g===g?k?g-k:g:0}function uD(h){return h?Ih(Xt(h),0,ce):0}function Vs(h){if(typeof h=="number")return h;if(es(h))return ee;if(Xr(h)){var g=typeof h.valueOf=="function"?h.valueOf():h;h=Xr(g)?g+"":g}if(typeof h!="string")return h===0?h:+h;h=X1(h);var k=Ko.test(h);return k||Un.test(h)?Ei(h.slice(2),k?2:8):Ya.test(h)?ee:+h}function cD(h){return Eu(h,Ia(h))}function cye(h){return h?Ih(Xt(h),-F,F):h===0?h:0}function Wn(h){return h==null?"":Qa(h)}var dye=qm(function(h,g){if(cv(g)||Ta(g)){Eu(g,eo(g),h);return}for(var k in g)Jn.call(g,k)&&iv(h,k,g[k])}),dD=qm(function(h,g){Eu(g,Ia(g),h)}),g2=qm(function(h,g,k,I){Eu(g,Ia(g),h,I)}),fye=qm(function(h,g,k,I){Eu(g,eo(g),h,I)}),hye=Rc(_C);function pye(h,g){var k=Zm(h);return g==null?k:WP(k,g)}var mye=sn(function(h,g){h=tn(h);var k=-1,I=g.length,L=I>2?g[2]:n;for(L&&ta(g[0],g[1],L)&&(I=1);++k1),W}),Eu(h,FC(h),k),I&&(k=Bs(k,f|p|v,jge));for(var L=g.length;L--;)MC(k,g[L]);return k});function Lye(h,g){return hD(h,h2(It(g)))}var Rye=Rc(function(h,g){return h==null?{}:sge(h,g)});function hD(h,g){if(h==null)return{};var k=or(FC(h),function(I){return[I]});return g=It(g),iz(h,k,function(I,L){return g(I,L[0])})}function Oye(h,g,k){g=Xd(g,h);var I=-1,L=g.length;for(L||(L=1,h=n);++Ig){var I=h;h=g,g=I}if(k||h%1||g%1){var L=AP();return Lo(h+L*(g-h+Ii("1e-"+((L+"").length-1))),g)}return EC(h,g)}var Zye=Gm(function(h,g,k){return g=g.toLowerCase(),h+(k?gD(g):g)});function gD(h){return nj(Wn(h).toLowerCase())}function vD(h){return h=Wn(h),h&&h.replace(Sr,J1).replace(F1,"")}function qye(h,g,k){h=Wn(h),g=Qa(g);var I=h.length;k=k===n?I:Ih(Xt(k),0,I);var L=k;return k-=g.length,k>=0&&h.slice(k,L)==g}function Gye(h){return h=Wn(h),h&&yc.test(h)?h.replace(co,N):h}function Yye(h){return h=Wn(h),h&&$o.test(h)?h.replace(Mr,"\\$&"):h}var Kye=Gm(function(h,g,k){return h+(k?"-":"")+g.toLowerCase()}),Xye=Gm(function(h,g,k){return h+(k?" ":"")+g.toLowerCase()}),Jye=_z("toLowerCase");function Qye(h,g,k){h=Wn(h),g=Xt(g);var I=g?hn(h):0;if(!g||I>=g)return h;var L=(g-I)/2;return i2(Hx(L),k)+h+i2(Vx(L),k)}function ebe(h,g,k){h=Wn(h),g=Xt(g);var I=g?hn(h):0;return g&&I>>0,k?(h=Wn(h),h&&(typeof g=="string"||g!=null&&!QC(g))&&(g=Qa(g),!g&&Q(h))?Jd(Bt(h),0,k):h.split(g,k)):[]}var sbe=Gm(function(h,g,k){return h+(k?" ":"")+nj(g)});function lbe(h,g,k){return h=Wn(h),k=k==null?0:Ih(Xt(k),0,h.length),g=Qa(g),h.slice(k,k+g.length)==g}function ube(h,g,k){var I=B.templateSettings;k&&ta(h,g,k)&&(g=n),h=Wn(h),g=g2({},g,I,Tz);var L=g2({},g.imports,I.imports,Tz),W=eo(L),ne=Wm(L,W),se,ve,Le=0,Re=g.interpolate||Ka,Ae="__p += '",tt=Qo((g.escape||Ka).source+"|"+Re.source+"|"+(Re===qa?ri:Ka).source+"|"+(g.evaluate||Ka).source+"|$","g"),pt="//# sourceURL="+(Jn.call(g,"sourceURL")?(g.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Vd+"]")+` -`;h.replace(tt,function($t,mn,xn,ts,na,ns){return xn||(xn=ts),Ae+=h.slice(Le,ns).replace(po,z),mn&&(se=!0,Ae+=`' + -__e(`+mn+`) + -'`),na&&(ve=!0,Ae+=`'; -`+na+`; -__p += '`),xn&&(Ae+=`' + -((__t = (`+xn+`)) == null ? '' : __t) + -'`),Le=ns+$t.length,$t}),Ae+=`'; -`;var Nt=Jn.call(g,"variable")&&g.variable;if(!Nt)Ae=`with (obj) { -`+Ae+` -} -`;else if(nr.test(Nt))throw new _t(s);Ae=(ve?Ae.replace(Ki,""):Ae).replace(No,"$1").replace(Os,"$1;"),Ae="function("+(Nt||"obj")+`) { -`+(Nt?"":`obj || (obj = {}); -`)+"var __t, __p = ''"+(se?", __e = _.escape":"")+(ve?`, __j = Array.prototype.join; -function print() { __p += __j.call(arguments, '') } -`:`; -`)+Ae+`return __p -}`;var nn=bD(function(){return Gt(W,pt+"return "+Ae).apply(n,ne)});if(nn.source=Ae,JC(nn))throw nn;return nn}function cbe(h){return Wn(h).toLowerCase()}function dbe(h){return Wn(h).toUpperCase()}function fbe(h,g,k){if(h=Wn(h),h&&(k||g===n))return X1(h);if(!h||!(g=Qa(g)))return h;var I=Bt(h),L=Bt(g),W=qd(I,L),ne=Px(I,L)+1;return Jd(I,W,ne).join("")}function hbe(h,g,k){if(h=Wn(h),h&&(k||g===n))return h.slice(0,an(h)+1);if(!h||!(g=Qa(g)))return h;var I=Bt(h),L=Px(I,Bt(g))+1;return Jd(I,0,L).join("")}function pbe(h,g,k){if(h=Wn(h),h&&(k||g===n))return h.replace(fo,"");if(!h||!(g=Qa(g)))return h;var I=Bt(h),L=qd(I,Bt(g));return Jd(I,L).join("")}function mbe(h,g){var k=M,I=P;if(Xr(g)){var L="separator"in g?g.separator:L;k="length"in g?Xt(g.length):k,I="omission"in g?Qa(g.omission):I}h=Wn(h);var W=h.length;if(Q(h)){var ne=Bt(h);W=ne.length}if(k>=W)return h;var se=k-hn(I);if(se<1)return I;var ve=ne?Jd(ne,0,se).join(""):h.slice(0,se);if(L===n)return ve+I;if(ne&&(se+=ve.length-se),QC(L)){if(h.slice(se).search(L)){var Le,Re=ve;for(L.global||(L=Qo(L.source,Wn(Ga.exec(L))+"g")),L.lastIndex=0;Le=L.exec(Re);)var Ae=Le.index;ve=ve.slice(0,Ae===n?se:Ae)}}else if(h.indexOf(Qa(L),se)!=se){var tt=ve.lastIndexOf(L);tt>-1&&(ve=ve.slice(0,tt))}return ve+I}function gbe(h){return h=Wn(h),h&&_a.test(h)?h.replace(zn,Tt):h}var vbe=Gm(function(h,g,k){return h+(k?" ":"")+g.toUpperCase()}),nj=_z("toUpperCase");function yD(h,g,k){return h=Wn(h),g=k?n:g,g===n?de(h)?Vr(h):Z1(h):h.match(g)||[]}var bD=sn(function(h,g){try{return Jo(h,n,g)}catch(k){return JC(k)?k:new _t(k)}}),ybe=Rc(function(h,g){return Sa(g,function(k){k=Nu(k),Mc(h,k,KC(h[k],h))}),h});function bbe(h){var g=h==null?0:h.length,k=It();return h=g?or(h,function(I){if(typeof I[1]!="function")throw new ar(a);return[k(I[0]),I[1]]}):[],sn(function(I){for(var L=-1;++LF)return[];var k=ce,I=Lo(h,ce);g=It(g),h-=ce;for(var L=Zd(I,g);++k0||g<0)?new yn(k):(h<0?k=k.takeRight(-h):h&&(k=k.drop(h)),g!==n&&(g=Xt(g),k=g<0?k.dropRight(-g):k.take(g-h)),k)},yn.prototype.takeRightWhile=function(h){return this.reverse().takeWhile(h).reverse()},yn.prototype.toArray=function(){return this.take(ce)},Iu(yn.prototype,function(h,g){var k=/^(?:filter|find|map|reject)|While$/.test(g),I=/^(?:head|last)$/.test(g),L=B[I?"take"+(g=="last"?"Right":""):g],W=I||/^find/.test(g);L&&(B.prototype[g]=function(){var ne=this.__wrapped__,se=I?[1]:arguments,ve=ne instanceof yn,Le=se[0],Re=ve||Ht(ne),Ae=function(mn){var xn=L.apply(B,Cu([mn],se));return I&&tt?xn[0]:xn};Re&&k&&typeof Le=="function"&&Le.length!=1&&(ve=Re=!1);var tt=this.__chain__,pt=!!this.__actions__.length,Nt=W&&!tt,nn=ve&&!pt;if(!W&&Re){ne=nn?ne:new yn(this);var $t=h.apply(ne,se);return $t.__actions__.push({func:u2,args:[Ae],thisArg:n}),new Fs($t,tt)}return Nt&&nn?h.apply(this,se):($t=this.thru(Ae),Nt?I?$t.value()[0]:$t.value():$t)})}),Sa(["pop","push","shift","sort","splice","unshift"],function(h){var g=Qi[h],k=/^(?:push|sort|unshift)$/.test(h)?"tap":"thru",I=/^(?:pop|shift)$/.test(h);B.prototype[h]=function(){var L=arguments;if(I&&!this.__chain__){var W=this.value();return g.apply(Ht(W)?W:[],L)}return this[k](function(ne){return g.apply(Ht(ne)?ne:[],L)})}}),Iu(yn.prototype,function(h,g){var k=B[g];if(k){var I=k.name+"";Jn.call(Hm,I)||(Hm[I]=[]),Hm[I].push({name:g,func:k})}}),Hm[n2(n,w).name]=[{name:"wrapper",func:n}],yn.prototype.clone=g0e,yn.prototype.reverse=v0e,yn.prototype.value=y0e,B.prototype.at=q1e,B.prototype.chain=G1e,B.prototype.commit=Y1e,B.prototype.next=K1e,B.prototype.plant=J1e,B.prototype.reverse=Q1e,B.prototype.toJSON=B.prototype.valueOf=B.prototype.value=eve,B.prototype.first=B.prototype.head,Q1&&(B.prototype[Q1]=X1e),B},_n=$i();Mo?((Mo.exports=_n)._=_n,B1._=_n):oi._=_n}).call(Ac)}(Sk,Sk.exports);var rt=Sk.exports;const Aa=fe(void 0),Fze=fe(null,(e,t,n)=>{var c;const r=e(di);if(!r)return;if(n=n.trim(),!n){t(Aa,void 0),t(An,void 0);return}const i=parseInt(n,10);if(!isNaN(i)&&i>=r.start_slot&&i<=r.end_slot){t(Aa,void 0),t(An,i);return}if(n.length<3){t(Aa,[]),t(An,void 0);return}const o=n.split(",").map(d=>d.trim().toLowerCase()).filter(d=>!!d),a=Object.entries(qte).reduce((d,[f,p])=>(o.some(v=>p.toLowerCase().includes(v))&&d.add(parseInt(f)),d),new Set),s=(c=e(gDe))==null?void 0:c.filter(({name:d,pubkey:f,clientId:p})=>p!=null&&a.has(p)||o.some(v=>(d==null?void 0:d.includes(v))||f.toLowerCase().includes(v))).map(({pubkey:d})=>d);if(!(s!=null&&s.length)){t(Aa,[]),t(An,void 0);return}const l=s.flatMap(d=>AN(r,d)).sort();t(Aa,l)}),Bze=fe(null,(e,t)=>{const n=e(Aa);if(!n)return;const r=e(An),i=e(eu),o=n.map(l=>Math.abs(l-(r??i??0))),a=Math.min(...o),s=Math.max(o.indexOf(a),0);t(An,n[s])}),Uze=fe(null,(e,t,n)=>{const r=e(An),i=e(Aa),o=e(eu);if(o!==void 0)if(i!=null&&i.length)if(r!==void 0){const a=i.map(c=>Math.abs(c-r)),s=Math.min(...a),l=Math.max(a.indexOf(s),0);if(l>=0){const c=Math.min(Math.max(l+Math.trunc(n/4),0),i.length-1);t(An,i[c])}}else t(Bze);else r!==void 0?t(An,r+n):t(An,n+o+$n*3)});var Xf=(e=>(e.Valid="valid",e.NotReady="invalid",e.OutsideEpoch="outside-epoch",e.BeforeFirstProcessed="before-first-processed",e.Future="future",e.NotYou="not-you",e))(Xf||{});function Wze(e,t,n,r,i){return e===void 0?"valid":!t||!n||r===void 0||i===void 0?"invalid":e=i?"future":"valid":"not-you"}const gd=function(){const e=fe(),t=fe(n=>{const r=n(di),i=n(e),o=n(ao),a=n(Jf),s=n(oo);return Wze(i,r,o,a,s)});return{slot:e,state:t,isValid:fe(n=>n(t)==="valid")}}(),Cn=fe(e=>e(gd.isValid)?e(gd.slot):void 0);var Io=(e=>(e.Count="Count",e.Pct="Pct %",e.Rate="Rate",e))(Io||{});const Cg=fe("Count"),Vze=fe(e=>{if(!e(Cn))return e(l3)}),Hze=fe(e=>{const t=e(Vze),n=e(rg);return t==null?void 0:t.reduce((r,i,o)=>{var l;const a=n==null?void 0:n[o];if(!a)return r;const s=NE.safeParse(a.kind);return s.error||(r[l=s.data]??(r[l]=[]),r[s.data].push(i)),r},{})}),Zze=fe(e=>{const t=e(rg),n=["snapld","snapdc","snapin"];if(!t)return;const r=t.reduce((i,o,a)=>{const s=NE.safeParse(o.kind);if(s.error||!n.includes(s.data))return i;const l=i.get(s.data)??[];return l.push(a),i.set(s.data,l),i},new Map);return Array.from(r.entries()).map(([i,o])=>[i,o])}),qze=fe(e=>{const t=e(l3),n=e(Zze);if(!(!t||!n))return n.reduce((r,[i,o])=>(r[i]=o.map(a=>t[a]),r),{})}),Gze=fe(e=>{var t;return e(Cn)?void 0:e(Cg)==="Rate"?e(cre):(t=e(kG))==null?void 0:t.waterfall}),ure=Co([]),cre=fe(e=>{var o;if(e(Cg)!=="Rate")return;const t=e(ure);if(t.length<2)return(o=t[0])==null?void 0:o.waterfall;const n=t[t.length-1],r=t[0],i=(n.ts-r.ts)/1e3;return sG(n.waterfall,a=>{for(const s in a.in)if(Object.prototype.hasOwnProperty.call(a.in,s)){const l=a.in[s]-r.waterfall.in[s];a.in[s]=Math.trunc(l/i)}for(const s in a.out)if(Object.prototype.hasOwnProperty.call(a.out,s)){const l=a.out[s]-r.waterfall.out[s];a.out[s]=Math.trunc(l/i)}})},(e,t,n)=>{t(ure,r=>{const i=performance.now();for(n&&r.push({waterfall:n,ts:i});r.length&&i-r[0].ts>1e3;)r.shift();const o=Object.values(r[r.length-1].waterfall.in);for(;r.length>1&&Object.values(r[0].waterfall.in).some((a,s)=>o[s]-a<0);)r.shift()})}),Nb=fe(e=>{const t=e(rg),n=rt.countBy(t,r=>r.kind);return Object.fromEntries(NE.options.map(r=>[r,n[r]??0]))}),Yze={};function ZN(e,t){let n=null;const r=new Map,i=new Set,o=s=>{let l;if(l=r.get(s),l!==void 0)if(n!=null&&n(l[1],s))o.remove(s);else return l[0];const c=e(s);return r.set(s,[c,Date.now()]),a("CREATE",s,c),c},a=(s,l,c)=>{for(const d of i)d({type:s,param:l,atom:c})};return o.unstable_listen=s=>(i.add(s),()=>{i.delete(s)}),o.getParams=()=>r.keys(),o.remove=s=>{{if(!r.has(s))return;const[l]=r.get(s);r.delete(s),a("REMOVE",s,l)}},o.setShouldRemove=s=>{if(n=s,!!n)for(const[l,[c,d]]of r)n(d,l)&&(r.delete(l),a("REMOVE",l,c))},o}const Kze=e=>typeof(e==null?void 0:e.then)=="function";function Xze(e=()=>{try{return window.localStorage}catch(n){(Yze?"production":void 0)!=="production"&&typeof window<"u"&&console.warn(n);return}},t){var n;let r,i;const o={getItem:(l,c)=>{var d,f;const p=_=>{if(_=_||"",r!==_){try{i=JSON.parse(_,t==null?void 0:t.reviver)}catch{return c}r=_}return i},v=(f=(d=e())==null?void 0:d.getItem(l))!=null?f:null;return Kze(v)?v.then(p):p(v)},setItem:(l,c)=>{var d;return(d=e())==null?void 0:d.setItem(l,JSON.stringify(c,void 0))},removeItem:l=>{var c;return(c=e())==null?void 0:c.removeItem(l)}},a=l=>(c,d,f)=>l(c,p=>{let v;try{v=JSON.parse(p||"")}catch{v=f}d(v)});let s;try{s=(n=e())==null?void 0:n.subscribe}catch{}return!s&&typeof window<"u"&&typeof window.addEventListener=="function"&&window.Storage&&(s=(l,c)=>{if(!(e()instanceof window.Storage))return()=>{};const d=f=>{f.storageArea===e()&&f.key===l&&c(f.newValue)};return window.addEventListener("storage",d),()=>{window.removeEventListener("storage",d)}}),s&&(o.subscribe=a(s)),o}Xze();const qN=3,jg=fe();fe();const Jze=fe(!1),dre=fe(),Ck=Co([]),di=fe(e=>{const t=e(oo),n=e(Ck);if(!n.length||t===void 0)return;const r=n.find(({start_slot:i,end_slot:o})=>t>=i&&t<=o);if(r)return r},(e,t,n)=>{t(Ck,r=>{r.findIndex(i=>i.epoch===n.epoch)===-1&&r.push(n)})}),Qze=fe(null,(e,t,n)=>{t(Ck,r=>r.filter(({epoch:i})=>i>=n))}),eDe=fe(e=>{const t=e(di);return t?e(Ck).find(n=>n.epoch===(t==null?void 0:t.epoch)+1):void 0}),[An,tDe]=function(){const e=fe();return[fe(t=>t(e),(t,n,r)=>{const i=t(di);if(!i)return;const o=r===void 0?void 0:rt.clamp(xi(r),i.start_slot,i.end_slot);n(e,o)}),fe(t=>t(e)===void 0)]}(),GN=Co({}),nDe=Yf(e=>fe(t=>e!==void 0&&t(GN)[e]||"incomplete"),{maxSize:1e3});var $b=(e=>(e.AllSlots="All Slots",e.MySlots="My Slots",e))($b||{});const Tg=function(){const e=fe();return fe(t=>t(e)??"All Slots",(t,n,r)=>{n(e,r);const i=t(Cn);n(An,i??void 0)})}(),rDe=fe(null,(e,t,n,r)=>{(r==="completed"||r==="optimistically_confirmed"||r==="rooted")&&t(oo,n+1),t(GN,i=>{i[n]=r})}),fre=10,iDe=fe(e=>{const t=e(ao),n=e(Cn);if(t===void 0||n===void 0)return;const r=t.indexOf(xi(n));if(r!==-1)return t.slice(Math.max(r-fre,0),r+fre)}),jk=1e3,oDe=fe(null,(e,t)=>{const n=e(An),r=e(iDe),i=e(oo),o=e(Aa),a=e(ao),s=e(Tg),l=n??i;l!==void 0&&t(GN,c=>{const d=l-jk/2,f=l+jk/2,p=Object.keys(c);for(const v of p){const _=Number(v),y=xi(_);o!=null&&o.includes(y)||r!=null&&r.includes(y)||s==="My Slots"&&(a!=null&&a.includes(y))||!isNaN(_)&&(_f)&&delete c[_]}})}),Tk=Co({}),YN=ZN(e=>fe(t=>{var n;return e!==void 0?(n=t(Tk)[e])==null?void 0:n.publish:void 0})),hre=ZN(e=>fe(t=>e!==void 0?t(Tk)[e]:void 0)),aDe=fe(null,(e,t,n)=>{const r=n.publish.slot;t(Tk,i=>{var o,a,s,l,c,d,f;n.transactions??(n.transactions=(o=i[r])==null?void 0:o.transactions),n.tile_primary_metric??(n.tile_primary_metric=(a=i[r])==null?void 0:a.tile_primary_metric),n.tile_timers??(n.tile_timers=(s=i[r])==null?void 0:s.tile_timers),n.waterfall??(n.waterfall=(l=i[r])==null?void 0:l.waterfall),n.scheduler_counts??(n.scheduler_counts=(c=i[r])==null?void 0:c.scheduler_counts),n.limits??(n.limits=(d=i[r])==null?void 0:d.limits),n.scheduler_stats??(n.scheduler_stats=(f=i[r])==null?void 0:f.scheduler_stats),i[r]=n})}),sDe=fe(null,(e,t)=>{const n=e(An),r=e(Cn),i=e(oo),o=e(Aa),a=n??i,s=e(Tg),l=e(ao),{earliestQuickSlots:c,mostRecentQuickSlots:d}=e(Tre);a!==void 0&&t(Tk,f=>{const p=a-jk/2,v=a+jk/2,_=Object.keys(f);for(const y of _){const b=Number(y),w=xi(b);o!=null&&o.length&&o.includes(w)||r!==void 0&&w===xi(r)||s==="My Slots"&&(l!=null&&l.includes(w))||c&&c.includes(b)||d&&d.includes(b)||!isNaN(b)&&(bv)&&(delete f[b],YN.remove(b))}})}),Jf=fe(e=>{var t;if(_i){const n=e(Zu);return(n==null?void 0:n.ledger_max_slot)==null?void 0:n.ledger_max_slot+1}return((t=e(Hl))==null?void 0:t.catching_up_first_replay_slot)??void 0}),pre=fe(e=>{const t=e(ao),n=e(Jf);if(!t||n===void 0)return;const r=t.findIndex(i=>i>=n);return r!==-1?r:void 0});fe(e=>{const t=e(ao),n=e(pre);return n?t==null?void 0:t[n]:void 0});const KN=fe(e=>{const t=e(ao),n=e(Mb);return n?t==null?void 0:t[n-1]:void 0}),mre=fe(void 0),oo=fe(e=>e(mre),(e,t,n)=>{const r=e(Lb);(r===void 0||n>=r)&&t(Lb,n),t(mre,i=>Math.max(n,i??0))}),ao=fe(e=>{const t=e(di),n=e(dp);if(!(!t||!n))return AN(t,n)}),lDe=fe(e=>{const t=e(eDe),n=e(dp);if(!(!t||!n))return AN(t,n)}),Mb=fe(void 0),Lb=fe(e=>{const t=e(ao),n=e(Mb);if(!(!t||n===void 0))return t[n]},(e,t,n)=>{const r=e(ao);r!=null&&t(Mb,i=>{let o=i??0;for((r[o-1]??0)>n&&(o=0);o=r.length))return o})}),uDe=fe(e=>{const t=e(lDe);if(t)return t[0]}),gre=fe(e=>{const t=e(ao),n=e(Mb);if(t)return n===void 0?t[t.length-1]:t[n-1]}),cDe=fe(e=>{const t=e(oo),n=e(gre);return t===void 0||n===void 0?!1:t>=n&&t<=n+$n}),eu=fe(e=>{const t=e(oo);if(t!=null)return xi(t)}),Ku=Co({}),XN=fe(e=>Object.values(e(Ku))),dDe=fe(e=>e(XN).length),vre=ZN(e=>fe(t=>e!==void 0?t(Ku)[e]:void 0)),fDe=fe(null,(e,t,n)=>{n!=null&&n.length&&t(Ku,r=>{for(const i of n)r[i.identity_pubkey]?r[i.identity_pubkey]=rt.merge(r[i.identity_pubkey],i):r[i.identity_pubkey]=i})}),hDe=6e4*5,pDe=fe(null,(e,t,n)=>{n!=null&&n.length&&(t(Ku,r=>{for(const i of n)r[i.identity_pubkey]&&(r[i.identity_pubkey].removed=!0,vre.remove(i.identity_pubkey))}),setTimeout(()=>{t(Ku,r=>{for(const i of n)r[i.identity_pubkey]&&delete r[i.identity_pubkey]})},hDe))}),Ig=fe(e=>{const t=e(Ku);if(!t)return;const n=Object.values(t).filter(s=>!s.removed),r=n.filter(s=>s.vote.every(l=>!l.activated_stake)&&!!s.gossip),i=n.filter(s=>s.vote.some(l=>l.activated_stake)),o=n.reduce((s,l)=>l.vote.reduce((c,d)=>d.delinquent?c:c+d.activated_stake,0n)+s,0n),a=n.reduce((s,l)=>l.vote.reduce((c,d)=>d.delinquent?c+d.activated_stake:c,0n)+s,0n);return{rpcCount:r.length,validatorCount:i.length,activeStake:o,delinquentStake:a}}),yre=fe(e=>{const t=e(Ig);if(t&&t.activeStake+t.delinquentStake)return t.activeStake+t.delinquentStake}),bre=fe(e=>{const t=e(Ku),n=e(dp),r=e(Ig);if(!t||!n||!r)return;const i=t[n];if(i)return nre(i)}),mDe=fe(e=>{const t=e(yre),n=e(bre);if(!(n===void 0||!t))return Number(n)/Number(t)*100}),_re=fe(e=>{const t=e(di),n=e(Ku),r=e(dDe);if(!(!t||r===0))return{epoch:t,peers:n}}),gDe=fe(e=>{const t=e(_re);if(!t)return;const{epoch:n,peers:r}=t;return[...new Set(n.leader_slots.map(i=>n.staked_pubkeys[i]))].map(i=>{var o,a,s,l,c;return{pubkey:i,name:(s=(a=(o=r[i])==null?void 0:o.info)==null?void 0:a.name)==null?void 0:s.toLowerCase(),clientId:(c=(l=r[i])==null?void 0:l.gossip)==null?void 0:c.client_id}})}),JN=function(){const e=Co(void 0);return fe(t=>t(e),(t,n,r)=>{const i=new Map;for(let o=0;oi(e)),fe(null,(i,o,a,s)=>{if(o(e,l=>{for(const c of a)l.add(c);for(const c of s)l.delete(c)}),!i(t))o(t,!0),o(n,l=>{for(const c of a)l.add(c);for(const c of s)l.delete(c)});else if(a.length>0||s.length>0){const l=Date.now(),c={addPeers:a,removePeers:s,timestamp:l};o(r,d=>{d.push(c)})}}),fe(i=>{const o=i(n),a=i(e);let s=0;for(const l of o)a.has(l)||s++;return{online:a.size+s-o.size,offline:s}}),fe(null,(i,o)=>{const a=i(r);if(a.length===0)return;const s=Date.now()-xre,l=a.findIndex(d=>d.timestamp>=s);if(l===0)return;const c=l===-1?a.length:l;o(n,d=>{for(let f=0;fl===-1?[]:d.slice(l))}),fe(null,(i,o)=>{o(e,new Set),o(t,!1),o(n,new Set),o(r,[])})]}(),xDe=fe(e=>{var i;const t=new Set,n=(i=e(JN))==null?void 0:i.keys();if(!n)return t;const r=e(wre);for(const o of n)r.has(o)||t.add(o);return t}),wDe=Yf(e=>fe(t=>{if(e===void 0)return!0;const n=t(oo);return n===void 0||e>=n}),{maxSize:1e3}),Eg=fe(e=>{const t=e(_G);if(!t)return 300;const n=Math.trunc(t/1e6);return Math.max(50,Math.min(n,1e3*10))}),kre=Co({}),Sre=fe(e=>{const t=e(di);if(t)return e(kre)[t.epoch]},(e,t,n)=>{t(kre,r=>{r[n.epoch]=n})}),kDe=fe(e=>{const t=e(oo);if(t===void 0)return null;const n=e(An);return n===void 0?"Live":xi(n)===xi(t)?"Current":n>t?"Future":"Past"}),[Ik,SDe,CDe,jDe]=function(){const e=Co(new Set);return[fe(t=>t(e)),fe(null,(t,n,r)=>{n(e,i=>{for(const o of r)i.add(o)})}),fe(null,(t,n,r)=>{n(e,i=>{i.delete(r)})}),fe(null,(t,n,r,i)=>{n(e,o=>{const a=new Set;for(const s of o)si||a.add(s);return a})})]}(),Cre=fe(e=>{const t=e(gG);if(t!=null)return Math.round(t/aN)}),[jre,TDe,IDe,EDe,NDe]=function(){const e=Co(new Map);return[fe(t=>{const n=t(e),r=t(Ik),i=new Set;for(const[o,a]of n){if(a===null){i.add(o);continue}rre(o,a,r)>1&&i.add(o)}return i}),fe(null,(t,n,r,i)=>{n(e,o=>{o.set(r,i)})}),fe(null,(t,n,r)=>{n(e,i=>{i.delete(r)})}),fe(null,(t,n,r)=>{n(e,i=>{if(!r){i.clear();return}const o=[];i.forEach((a,s)=>{(si.delete(a))})}),fe(null,(t,n,r)=>{const i=new Map;let o=0;for(let a=0;a{const t=e(ao),n=e(pre),r=e(Mb);if(!t||n===void 0)return{};const i=t.slice(n,r);return{earliestQuickSlots:i.slice(0,qN),mostRecentQuickSlots:i.slice(-qN).toReversed()}});function $De(){const e=X(Zu);if(e)return u.jsx(lre,{currentBytes:e.downloading_incremental_snapshot_current_bytes,totalBytes:e.downloading_incremental_snapshot_total_bytes,remainingSecs:e.downloading_incremental_snapshot_remaining_secs})}var QN=Ob(),qt=e=>Rb(e,QN),e$=Ob();qt.write=e=>Rb(e,e$);var Ek=Ob();qt.onStart=e=>Rb(e,Ek);var t$=Ob();qt.onFrame=e=>Rb(e,t$);var n$=Ob();qt.onFinish=e=>Rb(e,n$);var Ng=[];qt.setTimeout=(e,t)=>{const n=qt.now()+t,r=()=>{const o=Ng.findIndex(a=>a.cancel==r);~o&&Ng.splice(o,1),eh-=~o?1:0},i={time:n,handler:e,cancel:r};return Ng.splice(Ire(n),0,i),eh+=1,Ere(),i};var Ire=e=>~(~Ng.findIndex(t=>t.time>e)||~Ng.length);qt.cancel=e=>{Ek.delete(e),t$.delete(e),n$.delete(e),QN.delete(e),e$.delete(e)},qt.sync=e=>{i$=!0,qt.batchedUpdates(e),i$=!1},qt.throttle=e=>{let t;function n(){try{e(...t)}finally{t=null}}function r(...i){t=i,qt.onStart(n)}return r.handler=e,r.cancel=()=>{Ek.delete(n),t=null},r};var r$=typeof window<"u"?window.requestAnimationFrame:()=>{};qt.use=e=>r$=e,qt.now=typeof performance<"u"?()=>performance.now():Date.now,qt.batchedUpdates=e=>e(),qt.catch=console.error,qt.frameLoop="always",qt.advance=()=>{qt.frameLoop!=="demand"?console.warn("Cannot call the manual advancement of rafz whilst frameLoop is not set as demand"):$re()};var Qf=-1,eh=0,i$=!1;function Rb(e,t){i$?(t.delete(e),e(0)):(t.add(e),Ere())}function Ere(){Qf<0&&(Qf=0,qt.frameLoop!=="demand"&&r$(Nre))}function MDe(){Qf=-1}function Nre(){~Qf&&(r$(Nre),qt.batchedUpdates($re))}function $re(){const e=Qf;Qf=qt.now();const t=Ire(Qf);if(t&&(Mre(Ng.splice(0,t),n=>n.handler()),eh-=t),!eh){MDe();return}Ek.flush(),QN.flush(e?Math.min(64,Qf-e):16.667),t$.flush(),e$.flush(),n$.flush()}function Ob(){let e=new Set,t=e;return{add(n){eh+=t==e&&!e.has(n)?1:0,e.add(n)},delete(n){return eh-=t==e&&e.has(n)?1:0,e.delete(n)},flush(n){t.size&&(e=new Set,eh-=t.size,Mre(t,r=>r(n)&&e.add(r)),eh+=e.size,t=e)}}}function Mre(e,t){e.forEach(n=>{try{t(n)}catch(r){qt.catch(r)}})}var LDe=Object.defineProperty,RDe=(e,t)=>{for(var n in t)LDe(e,n,{get:t[n],enumerable:!0})},tu={};RDe(tu,{assign:()=>PDe,colors:()=>th,createStringInterpolator:()=>s$,skipAnimation:()=>Rre,to:()=>Lre,willAdvance:()=>l$});function o$(){}var ODe=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),He={arr:Array.isArray,obj:e=>!!e&&e.constructor.name==="Object",fun:e=>typeof e=="function",str:e=>typeof e=="string",num:e=>typeof e=="number",und:e=>e===void 0};function vd(e,t){if(He.arr(e)){if(!He.arr(t)||e.length!==t.length)return!1;for(let n=0;ne.forEach(t);function Xu(e,t,n){if(He.arr(e)){for(let r=0;rHe.und(e)?[]:He.arr(e)?e:[e];function Pb(e,t){if(e.size){const n=Array.from(e);e.clear(),Ft(n,t)}}var zb=(e,...t)=>Pb(e,n=>n(...t)),a$=()=>typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),s$,Lre,th=null,Rre=!1,l$=o$,PDe=e=>{e.to&&(Lre=e.to),e.now&&(qt.now=e.now),e.colors!==void 0&&(th=e.colors),e.skipAnimation!=null&&(Rre=e.skipAnimation),e.createStringInterpolator&&(s$=e.createStringInterpolator),e.requestAnimationFrame&&qt.use(e.requestAnimationFrame),e.batchedUpdates&&(qt.batchedUpdates=e.batchedUpdates),e.willAdvance&&(l$=e.willAdvance),e.frameLoop&&(qt.frameLoop=e.frameLoop)},Db=new Set,ul=[],u$=[],Nk=0,$k={get idle(){return!Db.size&&!ul.length},start(e){Nk>e.priority?(Db.add(e),qt.onStart(zDe)):(Ore(e),qt(c$))},advance:c$,sort(e){if(Nk)qt.onFrame(()=>$k.sort(e));else{const t=ul.indexOf(e);~t&&(ul.splice(t,1),Pre(e))}},clear(){ul=[],Db.clear()}};function zDe(){Db.forEach(Ore),Db.clear(),qt(c$)}function Ore(e){ul.includes(e)||Pre(e)}function Pre(e){ul.splice(DDe(ul,t=>t.priority>e.priority),0,e)}function c$(e){const t=u$;for(let n=0;n0}function DDe(e,t){const n=e.findIndex(t);return n<0?e.length:n}var ADe={transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199},nu="[-+]?\\d*\\.?\\d+",Mk=nu+"%";function Lk(...e){return"\\(\\s*("+e.join(")\\s*,\\s*(")+")\\s*\\)"}var FDe=new RegExp("rgb"+Lk(nu,nu,nu)),BDe=new RegExp("rgba"+Lk(nu,nu,nu,nu)),UDe=new RegExp("hsl"+Lk(nu,Mk,Mk)),WDe=new RegExp("hsla"+Lk(nu,Mk,Mk,nu)),VDe=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,HDe=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,ZDe=/^#([0-9a-fA-F]{6})$/,qDe=/^#([0-9a-fA-F]{8})$/;function GDe(e){let t;return typeof e=="number"?e>>>0===e&&e>=0&&e<=4294967295?e:null:(t=ZDe.exec(e))?parseInt(t[1]+"ff",16)>>>0:th&&th[e]!==void 0?th[e]:(t=FDe.exec(e))?($g(t[1])<<24|$g(t[2])<<16|$g(t[3])<<8|255)>>>0:(t=BDe.exec(e))?($g(t[1])<<24|$g(t[2])<<16|$g(t[3])<<8|Are(t[4]))>>>0:(t=VDe.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+"ff",16)>>>0:(t=qDe.exec(e))?parseInt(t[1],16)>>>0:(t=HDe.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+t[4]+t[4],16)>>>0:(t=UDe.exec(e))?(zre(Dre(t[1]),Rk(t[2]),Rk(t[3]))|255)>>>0:(t=WDe.exec(e))?(zre(Dre(t[1]),Rk(t[2]),Rk(t[3]))|Are(t[4]))>>>0:null}function d$(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function zre(e,t,n){const r=n<.5?n*(1+t):n+t-n*t,i=2*n-r,o=d$(i,r,e+1/3),a=d$(i,r,e),s=d$(i,r,e-1/3);return Math.round(o*255)<<24|Math.round(a*255)<<16|Math.round(s*255)<<8}function $g(e){const t=parseInt(e,10);return t<0?0:t>255?255:t}function Dre(e){return(parseFloat(e)%360+360)%360/360}function Are(e){const t=parseFloat(e);return t<0?0:t>1?255:Math.round(t*255)}function Rk(e){const t=parseFloat(e);return t<0?0:t>100?1:t/100}function Fre(e){let t=GDe(e);if(t===null)return e;t=t||0;const n=(t&4278190080)>>>24,r=(t&16711680)>>>16,i=(t&65280)>>>8,o=(t&255)/255;return`rgba(${n}, ${r}, ${i}, ${o})`}var Ab=(e,t,n)=>{if(He.fun(e))return e;if(He.arr(e))return Ab({range:e,output:t,extrapolate:n});if(He.str(e.output[0]))return s$(e);const r=e,i=r.output,o=r.range||[0,1],a=r.extrapolateLeft||r.extrapolate||"extend",s=r.extrapolateRight||r.extrapolate||"extend",l=r.easing||(c=>c);return c=>{const d=KDe(c,o);return YDe(c,o[d],o[d+1],i[d],i[d+1],l,a,s,r.map)}};function YDe(e,t,n,r,i,o,a,s,l){let c=l?l(e):e;if(cn){if(s==="identity")return c;s==="clamp"&&(c=n)}return r===i?r:t===n?e<=t?r:i:(t===-1/0?c=-c:n===1/0?c=c-t:c=(c-t)/(n-t),c=o(c),r===-1/0?c=-c:i===1/0?c=c+r:c=c*(i-r)+r,c)}function KDe(e,t){for(var n=1;n=e);++n);return n-1}var XDe={linear:e=>e},Fb=Symbol.for("FluidValue.get"),Mg=Symbol.for("FluidValue.observers"),cl=e=>!!(e&&e[Fb]),Fa=e=>e&&e[Fb]?e[Fb]():e,Bre=e=>e[Mg]||null;function JDe(e,t){e.eventObserved?e.eventObserved(t):e(t)}function Bb(e,t){const n=e[Mg];n&&n.forEach(r=>{JDe(r,t)})}var Ure=class{constructor(e){if(!e&&!(e=this.get))throw Error("Unknown getter");QDe(this,e)}},QDe=(e,t)=>Wre(e,Fb,t);function Lg(e,t){if(e[Fb]){let n=e[Mg];n||Wre(e,Mg,n=new Set),n.has(t)||(n.add(t),e.observerAdded&&e.observerAdded(n.size,t))}return t}function Ub(e,t){const n=e[Mg];if(n&&n.has(t)){const r=n.size-1;r?n.delete(t):e[Mg]=null,e.observerRemoved&&e.observerRemoved(r,t)}}var Wre=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),Ok=/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,eAe=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi,Vre=new RegExp(`(${Ok.source})(%|[a-z]+)`,"i"),tAe=/rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi,Pk=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/,Hre=e=>{const[t,n]=nAe(e);if(!t||a$())return e;const r=window.getComputedStyle(document.documentElement).getPropertyValue(t);return r?r.trim():n&&n.startsWith("--")?window.getComputedStyle(document.documentElement).getPropertyValue(n)||e:n&&Pk.test(n)?Hre(n):n||e},nAe=e=>{const t=Pk.exec(e);if(!t)return[,];const[,n,r]=t;return[n,r]},f$,rAe=(e,t,n,r,i)=>`rgba(${Math.round(t)}, ${Math.round(n)}, ${Math.round(r)}, ${i})`,Zre=e=>{f$||(f$=th?new RegExp(`(${Object.keys(th).join("|")})(?!\\w)`,"g"):/^\b$/);const t=e.output.map(i=>Fa(i).replace(Pk,Hre).replace(eAe,Fre).replace(f$,Fre)),n=t.map(i=>i.match(Ok).map(Number)),r=n[0].map((i,o)=>n.map(a=>{if(!(o in a))throw Error('The arity of each "output" value must be equal');return a[o]})).map(i=>Ab({...e,output:i}));return i=>{var s;const o=!Vre.test(t[0])&&((s=t.find(l=>Vre.test(l)))==null?void 0:s.replace(Ok,""));let a=0;return t[0].replace(Ok,()=>`${r[a++](i)}${o||""}`).replace(tAe,rAe)}},h$="react-spring: ",qre=e=>{const t=e;let n=!1;if(typeof t!="function")throw new TypeError(`${h$}once requires a function parameter`);return(...r)=>{n||(t(...r),n=!0)}},iAe=qre(console.warn);function oAe(){iAe(`${h$}The "interpolate" function is deprecated in v9 (use "to" instead)`)}var aAe=qre(console.warn);function sAe(){aAe(`${h$}Directly calling start instead of using the api object is deprecated in v9 (use ".start" instead), this will be removed in later 0.X.0 versions`)}function zk(e){return He.str(e)&&(e[0]=="#"||/\d/.test(e)||!a$()&&Pk.test(e)||e in(th||{}))}var jp=a$()?m.useEffect:m.useLayoutEffect,lAe=()=>{const e=m.useRef(!1);return jp(()=>(e.current=!0,()=>{e.current=!1}),[]),e};function p$(){const e=m.useState()[1],t=lAe();return()=>{t.current&&e(Math.random())}}function uAe(e,t){const[n]=m.useState(()=>({inputs:t,result:e()})),r=m.useRef(),i=r.current;let o=i;return o?t&&o.inputs&&cAe(t,o.inputs)||(o={inputs:t,result:e()}):o=n,m.useEffect(()=>{r.current=o,i==n&&(n.inputs=n.result=void 0)},[o]),o.result}function cAe(e,t){if(e.length!==t.length)return!1;for(let n=0;nm.useEffect(e,dAe),dAe=[];function g$(e){const t=m.useRef();return m.useEffect(()=>{t.current=e}),t.current}var Wb=Symbol.for("Animated:node"),fAe=e=>!!e&&e[Wb]===e,Ju=e=>e&&e[Wb],v$=(e,t)=>ODe(e,Wb,t),Dk=e=>e&&e[Wb]&&e[Wb].getPayload(),Gre=class{constructor(){v$(this,this)}getPayload(){return this.payload||[]}},Vb=class extends Gre{constructor(e){super(),this._value=e,this.done=!0,this.durationProgress=0,He.num(this._value)&&(this.lastPosition=this._value)}static create(e){return new Vb(e)}getPayload(){return[this]}getValue(){return this._value}setValue(e,t){return He.num(e)&&(this.lastPosition=e,t&&(e=Math.round(e/t)*t,this.done&&(this.lastPosition=e))),this._value===e?!1:(this._value=e,!0)}reset(){const{done:e}=this;this.done=!1,He.num(this._value)&&(this.elapsedTime=0,this.durationProgress=0,this.lastPosition=this._value,e&&(this.lastVelocity=null),this.v0=null)}},Hb=class extends Vb{constructor(e){super(0),this._string=null,this._toString=Ab({output:[e,e]})}static create(e){return new Hb(e)}getValue(){return this._string??(this._string=this._toString(this._value))}setValue(e){if(He.str(e)){if(e==this._string)return!1;this._string=e,this._value=1}else if(super.setValue(e))this._string=null;else return!1;return!0}reset(e){e&&(this._toString=Ab({output:[this.getValue(),e]})),this._value=0,super.reset()}},Ak={dependencies:null},Fk=class extends Gre{constructor(e){super(),this.source=e,this.setValue(e)}getValue(e){const t={};return Xu(this.source,(n,r)=>{fAe(n)?t[r]=n.getValue(e):cl(n)?t[r]=Fa(n):e||(t[r]=n)}),t}setValue(e){this.source=e,this.payload=this._makePayload(e)}reset(){this.payload&&Ft(this.payload,e=>e.reset())}_makePayload(e){if(e){const t=new Set;return Xu(e,this._addToPayload,t),Array.from(t)}}_addToPayload(e){Ak.dependencies&&cl(e)&&Ak.dependencies.add(e);const t=Dk(e);t&&Ft(t,n=>this.add(n))}},Yre=class extends Fk{constructor(e){super(e)}static create(e){return new Yre(e)}getValue(){return this.source.map(e=>e.getValue())}setValue(e){const t=this.getPayload();return e.length==t.length?t.map((n,r)=>n.setValue(e[r])).some(Boolean):(super.setValue(e.map(hAe)),!0)}};function hAe(e){return(zk(e)?Hb:Vb).create(e)}function y$(e){const t=Ju(e);return t?t.constructor:He.arr(e)?Yre:zk(e)?Hb:Vb}var Kre=(e,t)=>{const n=!He.fun(e)||e.prototype&&e.prototype.isReactComponent;return m.forwardRef((r,i)=>{const o=m.useRef(null),a=n&&m.useCallback(_=>{o.current=gAe(i,_)},[i]),[s,l]=mAe(r,t),c=p$(),d=()=>{const _=o.current;n&&!_||(_?t.applyAnimatedValues(_,s.getValue(!0)):!1)===!1&&c()},f=new pAe(d,l),p=m.useRef();jp(()=>(p.current=f,Ft(l,_=>Lg(_,f)),()=>{p.current&&(Ft(p.current.deps,_=>Ub(_,p.current)),qt.cancel(p.current.update))})),m.useEffect(d,[]),m$(()=>()=>{const _=p.current;Ft(_.deps,y=>Ub(y,_))});const v=t.getComponentProps(s.getValue());return m.createElement(e,{...v,ref:a})})},pAe=class{constructor(e,t){this.update=e,this.deps=t}eventObserved(e){e.type=="change"&&qt.write(this.update)}};function mAe(e,t){const n=new Set;return Ak.dependencies=n,e.style&&(e={...e,style:t.createAnimatedStyle(e.style)}),e=new Fk(e),Ak.dependencies=null,[e,n]}function gAe(e,t){return e&&(He.fun(e)?e(t):e.current=t),t}var Xre=Symbol.for("AnimatedComponent"),vAe=(e,{applyAnimatedValues:t=()=>!1,createAnimatedStyle:n=i=>new Fk(i),getComponentProps:r=i=>i}={})=>{const i={applyAnimatedValues:t,createAnimatedStyle:n,getComponentProps:r},o=a=>{const s=Jre(a)||"Anonymous";return He.str(a)?a=o[a]||(o[a]=Kre(a,i)):a=a[Xre]||(a[Xre]=Kre(a,i)),a.displayName=`Animated(${s})`,a};return Xu(e,(a,s)=>{He.arr(e)&&(s=Jre(a)),o[s]=o(a)}),{animated:o}},Jre=e=>He.str(e)?e:e&&He.str(e.displayName)?e.displayName:He.fun(e)&&e.name||null;function Ba(e,...t){return He.fun(e)?e(...t):e}var Zb=(e,t)=>e===!0||!!(t&&e&&(He.fun(e)?e(t):ha(e).includes(t))),Qre=(e,t)=>He.obj(e)?t&&e[t]:e,eie=(e,t)=>e.default===!0?e[t]:e.default?e.default[t]:void 0,yAe=e=>e,Bk=(e,t=yAe)=>{let n=bAe;e.default&&e.default!==!0&&(e=e.default,n=Object.keys(e));const r={};for(const i of n){const o=t(e[i],i);He.und(o)||(r[i]=o)}return r},bAe=["config","onProps","onStart","onChange","onPause","onResume","onRest"],_Ae={config:1,from:1,to:1,ref:1,loop:1,reset:1,pause:1,cancel:1,reverse:1,immediate:1,default:1,delay:1,onProps:1,onStart:1,onChange:1,onPause:1,onResume:1,onRest:1,onResolve:1,items:1,trail:1,sort:1,expires:1,initial:1,enter:1,update:1,leave:1,children:1,onDestroyed:1,keys:1,callId:1,parentId:1};function xAe(e){const t={};let n=0;if(Xu(e,(r,i)=>{_Ae[i]||(t[i]=r,n++)}),n)return t}function b$(e){const t=xAe(e);if(t){const n={to:t};return Xu(e,(r,i)=>i in t||(n[i]=r)),n}return{...e}}function qb(e){return e=Fa(e),He.arr(e)?e.map(qb):zk(e)?tu.createStringInterpolator({range:[0,1],output:[e,e]})(1):e}function tie(e){for(const t in e)return!0;return!1}function _$(e){return He.fun(e)||He.arr(e)&&He.obj(e[0])}function x$(e,t){var n;(n=e.ref)==null||n.delete(e),t==null||t.delete(e)}function nie(e,t){var n;t&&e.ref!==t&&((n=e.ref)==null||n.delete(e),t.add(e),e.ref=t)}var w$={default:{tension:170,friction:26},gentle:{tension:120,friction:14},wobbly:{tension:180,friction:12},stiff:{tension:210,friction:20},slow:{tension:280,friction:60},molasses:{tension:280,friction:120}},k$={...w$.default,mass:1,damping:1,easing:XDe.linear,clamp:!1},wAe=class{constructor(){this.velocity=0,Object.assign(this,k$)}};function kAe(e,t,n){n&&(n={...n},rie(n,t),t={...n,...t}),rie(e,t),Object.assign(e,t);for(const a in k$)e[a]==null&&(e[a]=k$[a]);let{frequency:r,damping:i}=e;const{mass:o}=e;return He.und(r)||(r<.01&&(r=.01),i<0&&(i=0),e.tension=Math.pow(2*Math.PI/r,2)*o,e.friction=4*Math.PI*i*o/r),e}function rie(e,t){if(!He.und(t.decay))e.duration=void 0;else{const n=!He.und(t.tension)||!He.und(t.friction);(n||!He.und(t.frequency)||!He.und(t.damping)||!He.und(t.mass))&&(e.duration=void 0,e.decay=void 0),n&&(e.frequency=void 0)}}var iie=[],SAe=class{constructor(){this.changed=!1,this.values=iie,this.toValues=null,this.fromValues=iie,this.config=new wAe,this.immediate=!1}};function oie(e,{key:t,props:n,defaultProps:r,state:i,actions:o}){return new Promise((a,s)=>{let l,c,d=Zb(n.cancel??(r==null?void 0:r.cancel),t);if(d)v();else{He.und(n.pause)||(i.paused=Zb(n.pause,t));let _=r==null?void 0:r.pause;_!==!0&&(_=i.paused||Zb(_,t)),l=Ba(n.delay||0,t),_?(i.resumeQueue.add(p),o.pause()):(o.resume(),p())}function f(){i.resumeQueue.add(p),i.timeouts.delete(c),c.cancel(),l=c.time-qt.now()}function p(){l>0&&!tu.skipAnimation?(i.delayed=!0,c=qt.setTimeout(v,l),i.pauseQueue.add(f),i.timeouts.add(c)):v()}function v(){i.delayed&&(i.delayed=!1),i.pauseQueue.delete(f),i.timeouts.delete(c),e<=(i.cancelId||0)&&(d=!0);try{o.start({...n,callId:e,cancel:d},a)}catch(_){s(_)}}})}var S$=(e,t)=>t.length==1?t[0]:t.some(n=>n.cancelled)?Rg(e.get()):t.every(n=>n.noop)?aie(e.get()):ru(e.get(),t.every(n=>n.finished)),aie=e=>({value:e,noop:!0,finished:!0,cancelled:!1}),ru=(e,t,n=!1)=>({value:e,finished:t,cancelled:n}),Rg=e=>({value:e,cancelled:!0,finished:!1});function sie(e,t,n,r){const{callId:i,parentId:o,onRest:a}=t,{asyncTo:s,promise:l}=n;return!o&&e===s&&!t.reset?l:n.promise=(async()=>{n.asyncId=i,n.asyncTo=e;const c=Bk(t,(b,w)=>w==="onRest"?void 0:b);let d,f;const p=new Promise((b,w)=>(d=b,f=w)),v=b=>{const w=i<=(n.cancelId||0)&&Rg(r)||i!==n.asyncId&&ru(r,!1);if(w)throw b.result=w,f(b),b},_=(b,w)=>{const x=new lie,S=new uie;return(async()=>{if(tu.skipAnimation)throw Gb(n),S.result=ru(r,!1),f(S),S;v(x);const C=He.obj(b)?{...b}:{...w,to:b};C.parentId=i,Xu(c,(T,E)=>{He.und(C[E])&&(C[E]=T)});const j=await r.start(C);return v(x),n.paused&&await new Promise(T=>{n.resumeQueue.add(T)}),j})()};let y;if(tu.skipAnimation)return Gb(n),ru(r,!1);try{let b;He.arr(e)?b=(async w=>{for(const x of w)await _(x)})(e):b=Promise.resolve(e(_,r.stop.bind(r))),await Promise.all([b.then(d),p]),y=ru(r.get(),!0,!1)}catch(b){if(b instanceof lie)y=b.result;else if(b instanceof uie)y=b.result;else throw b}finally{i==n.asyncId&&(n.asyncId=o,n.asyncTo=o?s:void 0,n.promise=o?l:void 0)}return He.fun(a)&&qt.batchedUpdates(()=>{a(y,r,r.item)}),y})()}function Gb(e,t){Pb(e.timeouts,n=>n.cancel()),e.pauseQueue.clear(),e.resumeQueue.clear(),e.asyncId=e.asyncTo=e.promise=void 0,t&&(e.cancelId=t)}var lie=class extends Error{constructor(){super("An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise.")}},uie=class extends Error{constructor(){super("SkipAnimationSignal")}},C$=e=>e instanceof j$,CAe=1,j$=class extends Ure{constructor(){super(...arguments),this.id=CAe++,this._priority=0}get priority(){return this._priority}set priority(e){this._priority!=e&&(this._priority=e,this._onPriorityChange(e))}get(){const e=Ju(this);return e&&e.getValue()}to(...e){return tu.to(this,e)}interpolate(...e){return oAe(),tu.to(this,e)}toJSON(){return this.get()}observerAdded(e){e==1&&this._attach()}observerRemoved(e){e==0&&this._detach()}_attach(){}_detach(){}_onChange(e,t=!1){Bb(this,{type:"change",parent:this,value:e,idle:t})}_onPriorityChange(e){this.idle||$k.sort(this),Bb(this,{type:"priority",parent:this,priority:e})}},Tp=Symbol.for("SpringPhase"),cie=1,T$=2,I$=4,E$=e=>(e[Tp]&cie)>0,nh=e=>(e[Tp]&T$)>0,Yb=e=>(e[Tp]&I$)>0,die=(e,t)=>t?e[Tp]|=T$|cie:e[Tp]&=~T$,fie=(e,t)=>t?e[Tp]|=I$:e[Tp]&=~I$,jAe=class extends j${constructor(e,t){if(super(),this.animation=new SAe,this.defaultProps={},this._state={paused:!1,delayed:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._pendingCalls=new Set,this._lastCallId=0,this._lastToId=0,this._memoizedDuration=0,!He.und(e)||!He.und(t)){const n=He.obj(e)?{...e}:{...t,from:e};He.und(n.default)&&(n.default=!0),this.start(n)}}get idle(){return!(nh(this)||this._state.asyncTo)||Yb(this)}get goal(){return Fa(this.animation.to)}get velocity(){const e=Ju(this);return e instanceof Vb?e.lastVelocity||0:e.getPayload().map(t=>t.lastVelocity||0)}get hasAnimated(){return E$(this)}get isAnimating(){return nh(this)}get isPaused(){return Yb(this)}get isDelayed(){return this._state.delayed}advance(e){let t=!0,n=!1;const r=this.animation;let{toValues:i}=r;const{config:o}=r,a=Dk(r.to);!a&&cl(r.to)&&(i=ha(Fa(r.to))),r.values.forEach((c,d)=>{if(c.done)return;const f=c.constructor==Hb?1:a?a[d].lastPosition:i[d];let p=r.immediate,v=f;if(!p){if(v=c.lastPosition,o.tension<=0){c.done=!0;return}let _=c.elapsedTime+=e;const y=r.fromValues[d],b=c.v0!=null?c.v0:c.v0=He.arr(o.velocity)?o.velocity[d]:o.velocity;let w;const x=o.precision||(y==f?.005:Math.min(1,Math.abs(f-y)*.001));if(He.und(o.duration))if(o.decay){const S=o.decay===!0?.998:o.decay,C=Math.exp(-(1-S)*_);v=y+b/(1-S)*(1-C),p=Math.abs(c.lastPosition-v)<=x,w=b*C}else{w=c.lastVelocity==null?b:c.lastVelocity;const S=o.restVelocity||x/10,C=o.clamp?0:o.bounce,j=!He.und(C),T=y==f?c.v0>0:yS,!(!E&&(p=Math.abs(f-v)<=x,p)));++P){j&&($=v==f||v>f==T,$&&(w=-w*C,v=f));const te=-o.tension*1e-6*(v-f),Z=-o.friction*.001*w,O=(te+Z)/o.mass;w=w+O*A,v=v+w*A}}else{let S=1;o.duration>0&&(this._memoizedDuration!==o.duration&&(this._memoizedDuration=o.duration,c.durationProgress>0&&(c.elapsedTime=o.duration*c.durationProgress,_=c.elapsedTime+=e)),S=(o.progress||0)+_/this._memoizedDuration,S=S>1?1:S<0?0:S,c.durationProgress=S),v=y+o.easing(S)*(f-y),w=(v-c.lastPosition)/e,p=S==1}c.lastVelocity=w,Number.isNaN(v)&&(console.warn("Got NaN while animating:",this),p=!0)}a&&!a[d].done&&(p=!1),p?c.done=!0:t=!1,c.setValue(v,o.round)&&(n=!0)});const s=Ju(this),l=s.getValue();if(t){const c=Fa(r.to);(l!==c||n)&&!o.decay?(s.setValue(c),this._onChange(c)):n&&o.decay&&this._onChange(l),this._stop()}else n&&this._onChange(l)}set(e){return qt.batchedUpdates(()=>{this._stop(),this._focus(e),this._set(e)}),this}pause(){this._update({pause:!0})}resume(){this._update({pause:!1})}finish(){if(nh(this)){const{to:e,config:t}=this.animation;qt.batchedUpdates(()=>{this._onStart(),t.decay||this._set(e,!1),this._stop()})}return this}update(e){return(this.queue||(this.queue=[])).push(e),this}start(e,t){let n;return He.und(e)?(n=this.queue||[],this.queue=[]):n=[He.obj(e)?e:{...t,to:e}],Promise.all(n.map(r=>this._update(r))).then(r=>S$(this,r))}stop(e){const{to:t}=this.animation;return this._focus(this.get()),Gb(this._state,e&&this._lastCallId),qt.batchedUpdates(()=>this._stop(t,e)),this}reset(){this._update({reset:!0})}eventObserved(e){e.type=="change"?this._start():e.type=="priority"&&(this.priority=e.priority+1)}_prepareNode(e){const t=this.key||"";let{to:n,from:r}=e;n=He.obj(n)?n[t]:n,(n==null||_$(n))&&(n=void 0),r=He.obj(r)?r[t]:r,r==null&&(r=void 0);const i={to:n,from:r};return E$(this)||(e.reverse&&([n,r]=[r,n]),r=Fa(r),He.und(r)?Ju(this)||this._set(n):this._set(r)),i}_update({...e},t){const{key:n,defaultProps:r}=this;e.default&&Object.assign(r,Bk(e,(a,s)=>/^on/.test(s)?Qre(a,n):a)),mie(this,e,"onProps"),Jb(this,"onProps",e,this);const i=this._prepareNode(e);if(Object.isFrozen(this))throw Error("Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?");const o=this._state;return oie(++this._lastCallId,{key:n,props:e,defaultProps:r,state:o,actions:{pause:()=>{Yb(this)||(fie(this,!0),zb(o.pauseQueue),Jb(this,"onPause",ru(this,Kb(this,this.animation.to)),this))},resume:()=>{Yb(this)&&(fie(this,!1),nh(this)&&this._resume(),zb(o.resumeQueue),Jb(this,"onResume",ru(this,Kb(this,this.animation.to)),this))},start:this._merge.bind(this,i)}}).then(a=>{if(e.loop&&a.finished&&!(t&&a.noop)){const s=hie(e);if(s)return this._update(s,!0)}return a})}_merge(e,t,n){if(t.cancel)return this.stop(!0),n(Rg(this));const r=!He.und(e.to),i=!He.und(e.from);if(r||i)if(t.callId>this._lastToId)this._lastToId=t.callId;else return n(Rg(this));const{key:o,defaultProps:a,animation:s}=this,{to:l,from:c}=s;let{to:d=l,from:f=c}=e;i&&!r&&(!t.default||He.und(d))&&(d=f),t.reverse&&([d,f]=[f,d]);const p=!vd(f,c);p&&(s.from=f),f=Fa(f);const v=!vd(d,l);v&&this._focus(d);const _=_$(t.to),{config:y}=s,{decay:b,velocity:w}=y;(r||i)&&(y.velocity=0),t.config&&!_&&kAe(y,Ba(t.config,o),t.config!==a.config?Ba(a.config,o):void 0);let x=Ju(this);if(!x||He.und(d))return n(ru(this,!0));const S=He.und(t.reset)?i&&!t.default:!He.und(f)&&Zb(t.reset,o),C=S?f:this.get(),j=qb(d),T=He.num(j)||He.arr(j)||zk(j),E=!_&&(!T||Zb(a.immediate||t.immediate,o));if(v){const P=y$(d);if(P!==x.constructor)if(E)x=this._set(j);else throw Error(`Cannot animate between ${x.constructor.name} and ${P.name}, as the "to" prop suggests`)}const $=x.constructor;let A=cl(d),M=!1;if(!A){const P=S||!E$(this)&&p;(v||P)&&(M=vd(qb(C),j),A=!M),(!vd(s.immediate,E)&&!E||!vd(y.decay,b)||!vd(y.velocity,w))&&(A=!0)}if(M&&nh(this)&&(s.changed&&!S?A=!0:A||this._stop(l)),!_&&((A||cl(l))&&(s.values=x.getPayload(),s.toValues=cl(d)?null:$==Hb?[1]:ha(j)),s.immediate!=E&&(s.immediate=E,!E&&!S&&this._set(l)),A)){const{onRest:P}=s;Ft(IAe,Z=>mie(this,t,Z));const te=ru(this,Kb(this,l));zb(this._pendingCalls,te),this._pendingCalls.add(n),s.changed&&qt.batchedUpdates(()=>{var Z;s.changed=!S,P==null||P(te,this),S?Ba(a.onRest,te):(Z=s.onStart)==null||Z.call(s,te,this)})}S&&this._set(C),_?n(sie(t.to,t,this._state,this)):A?this._start():nh(this)&&!v?this._pendingCalls.add(n):n(aie(C))}_focus(e){const t=this.animation;e!==t.to&&(Bre(this)&&this._detach(),t.to=e,Bre(this)&&this._attach())}_attach(){let e=0;const{to:t}=this.animation;cl(t)&&(Lg(t,this),C$(t)&&(e=t.priority+1)),this.priority=e}_detach(){const{to:e}=this.animation;cl(e)&&Ub(e,this)}_set(e,t=!0){const n=Fa(e);if(!He.und(n)){const r=Ju(this);if(!r||!vd(n,r.getValue())){const i=y$(n);!r||r.constructor!=i?v$(this,i.create(n)):r.setValue(n),r&&qt.batchedUpdates(()=>{this._onChange(n,t)})}}return Ju(this)}_onStart(){const e=this.animation;e.changed||(e.changed=!0,Jb(this,"onStart",ru(this,Kb(this,e.to)),this))}_onChange(e,t){t||(this._onStart(),Ba(this.animation.onChange,e,this)),Ba(this.defaultProps.onChange,e,this),super._onChange(e,t)}_start(){const e=this.animation;Ju(this).reset(Fa(e.to)),e.immediate||(e.fromValues=e.values.map(t=>t.lastPosition)),nh(this)||(die(this,!0),Yb(this)||this._resume())}_resume(){tu.skipAnimation?this.finish():$k.start(this)}_stop(e,t){if(nh(this)){die(this,!1);const n=this.animation;Ft(n.values,i=>{i.done=!0}),n.toValues&&(n.onChange=n.onPause=n.onResume=void 0),Bb(this,{type:"idle",parent:this});const r=t?Rg(this.get()):ru(this.get(),Kb(this,e??n.to));zb(this._pendingCalls,r),n.changed&&(n.changed=!1,Jb(this,"onRest",r,this))}}};function Kb(e,t){const n=qb(t),r=qb(e.get());return vd(r,n)}function hie(e,t=e.loop,n=e.to){const r=Ba(t);if(r){const i=r!==!0&&b$(r),o=(i||e).reverse,a=!i||i.reset;return Xb({...e,loop:t,default:!1,pause:void 0,to:!o||_$(n)?n:void 0,from:a?e.from:void 0,reset:a,...i})}}function Xb(e){const{to:t,from:n}=e=b$(e),r=new Set;return He.obj(t)&&pie(t,r),He.obj(n)&&pie(n,r),e.keys=r.size?Array.from(r):null,e}function TAe(e){const t=Xb(e);return He.und(t.default)&&(t.default=Bk(t)),t}function pie(e,t){Xu(e,(n,r)=>n!=null&&t.add(r))}var IAe=["onStart","onRest","onChange","onPause","onResume"];function mie(e,t,n){e.animation[n]=t[n]!==eie(t,n)?Qre(t[n],e.key):void 0}function Jb(e,t,...n){var r,i,o,a;(i=(r=e.animation)[t])==null||i.call(r,...n),(a=(o=e.defaultProps)[t])==null||a.call(o,...n)}var EAe=["onStart","onChange","onRest"],NAe=1,gie=class{constructor(e,t){this.id=NAe++,this.springs={},this.queue=[],this._lastAsyncId=0,this._active=new Set,this._changed=new Set,this._started=!1,this._state={paused:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._events={onStart:new Map,onChange:new Map,onRest:new Map},this._onFrame=this._onFrame.bind(this),t&&(this._flush=t),e&&this.start({default:!0,...e})}get idle(){return!this._state.asyncTo&&Object.values(this.springs).every(e=>e.idle&&!e.isDelayed&&!e.isPaused)}get item(){return this._item}set item(e){this._item=e}get(){const e={};return this.each((t,n)=>e[n]=t.get()),e}set(e){for(const t in e){const n=e[t];He.und(n)||this.springs[t].set(n)}}update(e){return e&&this.queue.push(Xb(e)),this}start(e){let{queue:t}=this;return e?t=ha(e).map(Xb):this.queue=[],this._flush?this._flush(this,t):(xie(this,t),N$(this,t))}stop(e,t){if(e!==!!e&&(t=e),t){const n=this.springs;Ft(ha(t),r=>n[r].stop(!!e))}else Gb(this._state,this._lastAsyncId),this.each(n=>n.stop(!!e));return this}pause(e){if(He.und(e))this.start({pause:!0});else{const t=this.springs;Ft(ha(e),n=>t[n].pause())}return this}resume(e){if(He.und(e))this.start({pause:!1});else{const t=this.springs;Ft(ha(e),n=>t[n].resume())}return this}each(e){Xu(this.springs,e)}_onFrame(){const{onStart:e,onChange:t,onRest:n}=this._events,r=this._active.size>0,i=this._changed.size>0;(r&&!this._started||i&&!this._started)&&(this._started=!0,Pb(e,([s,l])=>{l.value=this.get(),s(l,this,this._item)}));const o=!r&&this._started,a=i||o&&n.size?this.get():null;i&&t.size&&Pb(t,([s,l])=>{l.value=a,s(l,this,this._item)}),o&&(this._started=!1,Pb(n,([s,l])=>{l.value=a,s(l,this,this._item)}))}eventObserved(e){if(e.type=="change")this._changed.add(e.parent),e.idle||this._active.add(e.parent);else if(e.type=="idle")this._active.delete(e.parent);else return;qt.onFrame(this._onFrame)}};function N$(e,t){return Promise.all(t.map(n=>vie(e,n))).then(n=>S$(e,n))}async function vie(e,t,n){const{keys:r,to:i,from:o,loop:a,onRest:s,onResolve:l}=t,c=He.obj(t.default)&&t.default;a&&(t.loop=!1),i===!1&&(t.to=null),o===!1&&(t.from=null);const d=He.arr(i)||He.fun(i)?i:void 0;d?(t.to=void 0,t.onRest=void 0,c&&(c.onRest=void 0)):Ft(EAe,y=>{const b=t[y];if(He.fun(b)){const w=e._events[y];t[y]=({finished:x,cancelled:S})=>{const C=w.get(b);C?(x||(C.finished=!1),S&&(C.cancelled=!0)):w.set(b,{value:null,finished:x||!1,cancelled:S||!1})},c&&(c[y]=t[y])}});const f=e._state;t.pause===!f.paused?(f.paused=t.pause,zb(t.pause?f.pauseQueue:f.resumeQueue)):f.paused&&(t.pause=!0);const p=(r||Object.keys(e.springs)).map(y=>e.springs[y].start(t)),v=t.cancel===!0||eie(t,"cancel")===!0;(d||v&&f.asyncId)&&p.push(oie(++e._lastAsyncId,{props:t,state:f,actions:{pause:o$,resume:o$,start(y,b){v?(Gb(f,e._lastAsyncId),b(Rg(e))):(y.onRest=s,b(sie(d,y,f,e)))}}})),f.paused&&await new Promise(y=>{f.resumeQueue.add(y)});const _=S$(e,await Promise.all(p));if(a&&_.finished&&!(n&&_.noop)){const y=hie(t,a,i);if(y)return xie(e,[y]),vie(e,y,!0)}return l&&qt.batchedUpdates(()=>l(_,e,e.item)),_}function $$(e,t){const n={...e.springs};return t&&Ft(ha(t),r=>{He.und(r.keys)&&(r=Xb(r)),He.obj(r.to)||(r={...r,to:void 0}),_ie(n,r,i=>bie(i))}),yie(e,n),n}function yie(e,t){Xu(t,(n,r)=>{e.springs[r]||(e.springs[r]=n,Lg(n,e))})}function bie(e,t){const n=new jAe;return n.key=e,t&&Lg(n,t),n}function _ie(e,t,n){t.keys&&Ft(t.keys,r=>{(e[r]||(e[r]=n(r)))._prepareNode(t)})}function xie(e,t){Ft(t,n=>{_ie(e.springs,n,r=>bie(r,e))})}var Qb=({children:e,...t})=>{const n=m.useContext(Uk),r=t.pause||!!n.pause,i=t.immediate||!!n.immediate;t=uAe(()=>({pause:r,immediate:i}),[r,i]);const{Provider:o}=Uk;return m.createElement(o,{value:t},e)},Uk=$Ae(Qb,{});Qb.Provider=Uk.Provider,Qb.Consumer=Uk.Consumer;function $Ae(e,t){return Object.assign(e,m.createContext(t)),e.Provider._context=e,e.Consumer._context=e,e}var wie=()=>{const e=[],t=function(r){sAe();const i=[];return Ft(e,(o,a)=>{if(He.und(r))i.push(o.start());else{const s=n(r,o,a);s&&i.push(o.start(s))}}),i};t.current=e,t.add=function(r){e.includes(r)||e.push(r)},t.delete=function(r){const i=e.indexOf(r);~i&&e.splice(i,1)},t.pause=function(){return Ft(e,r=>r.pause(...arguments)),this},t.resume=function(){return Ft(e,r=>r.resume(...arguments)),this},t.set=function(r){Ft(e,(i,o)=>{const a=He.fun(r)?r(o,i):r;a&&i.set(a)})},t.start=function(r){const i=[];return Ft(e,(o,a)=>{if(He.und(r))i.push(o.start());else{const s=this._getProps(r,o,a);s&&i.push(o.start(s))}}),i},t.stop=function(){return Ft(e,r=>r.stop(...arguments)),this},t.update=function(r){return Ft(e,(i,o)=>i.update(this._getProps(r,i,o))),this};const n=function(r,i,o){return He.fun(r)?r(o,i):r};return t._getProps=n,t};function MAe(e,t,n){const r=He.fun(t)&&t;r&&!n&&(n=[]);const i=m.useMemo(()=>r||arguments.length==3?wie():void 0,[]),o=m.useRef(0),a=p$(),s=m.useMemo(()=>({ctrls:[],queue:[],flush(w,x){const S=$$(w,x);return o.current>0&&!s.queue.length&&!Object.keys(S).some(C=>!w.springs[C])?N$(w,x):new Promise(C=>{yie(w,S),s.queue.push(()=>{C(N$(w,x))}),a()})}}),[]),l=m.useRef([...s.ctrls]),c=[],d=g$(e)||0;m.useMemo(()=>{Ft(l.current.slice(e,d),w=>{x$(w,i),w.stop(!0)}),l.current.length=e,f(d,e)},[e]),m.useMemo(()=>{f(0,Math.min(d,e))},n);function f(w,x){for(let S=w;S$$(w,c[x])),v=m.useContext(Qb),_=g$(v),y=v!==_&&tie(v);jp(()=>{o.current++,s.ctrls=l.current;const{queue:w}=s;w.length&&(s.queue=[],Ft(w,x=>x())),Ft(l.current,(x,S)=>{i==null||i.add(x),y&&x.start({default:v});const C=c[S];C&&(nie(x,C.ref),x.ref?x.queue.push(C):x.start(C))})}),m$(()=>()=>{Ft(s.ctrls,w=>w.stop(!0))});const b=p.map(w=>({...w}));return i?[b,i]:b}function e_(e,t){const n=He.fun(e),[[r],i]=MAe(1,n?e:[e],n?[]:t);return n||arguments.length==2?[r,i]:r}function M$(e,t,n){const r=He.fun(t)&&t,{reset:i,sort:o,trail:a=0,expires:s=!0,exitBeforeEnter:l=!1,onDestroyed:c,ref:d,config:f}=r?r():t,p=m.useMemo(()=>r||arguments.length==3?wie():void 0,[]),v=ha(e),_=[],y=m.useRef(null),b=i?null:y.current;jp(()=>{y.current=_}),m$(()=>(Ft(_,O=>{p==null||p.add(O.ctrl),O.ctrl.ref=p}),()=>{Ft(y.current,O=>{O.expired&&clearTimeout(O.expirationId),x$(O.ctrl,p),O.ctrl.stop(!0)})}));const w=RAe(v,r?r():t,b),x=i&&y.current||[];jp(()=>Ft(x,({ctrl:O,item:J,key:D})=>{x$(O,p),Ba(c,J,D)}));const S=[];if(b&&Ft(b,(O,J)=>{O.expired?(clearTimeout(O.expirationId),x.push(O)):(J=S[J]=w.indexOf(O.key),~J&&(_[J]=O))}),Ft(v,(O,J)=>{_[J]||(_[J]={key:w[J],item:O,phase:"mount",ctrl:new gie},_[J].ctrl.item=O)}),S.length){let O=-1;const{leave:J}=r?r():t;Ft(S,(D,Y)=>{const F=b[Y];~D?(O=_.indexOf(F),_[O]={...F,item:v[D]}):J&&_.splice(++O,0,F)})}He.fun(o)&&_.sort((O,J)=>o(O.item,J.item));let C=-a;const j=p$(),T=Bk(t),E=new Map,$=m.useRef(new Map),A=m.useRef(!1);Ft(_,(O,J)=>{const D=O.key,Y=O.phase,F=r?r():t;let H,ee;const ce=Ba(F.delay||0,D);if(Y=="mount")H=F.enter,ee="enter";else{const me=w.indexOf(D)<0;if(Y!="leave")if(me)H=F.leave,ee="leave";else if(H=F.update)ee="update";else return;else if(!me)H=F.enter,ee="enter";else return}if(H=Ba(H,O.item,J),H=He.obj(H)?b$(H):{to:H},!H.config){const me=f||T.config;H.config=Ba(me,O.item,J,ee)}C+=a;const U={...T,delay:ce+C,ref:d,immediate:F.immediate,reset:!1,...H};if(ee=="enter"&&He.und(U.from)){const me=r?r():t,ke=He.und(me.initial)||b?me.from:me.initial;U.from=Ba(ke,O.item,J)}const{onResolve:ae}=U;U.onResolve=me=>{Ba(ae,me);const ke=y.current,he=ke.find(ue=>ue.key===D);if(he&&!(me.cancelled&&he.phase!="update")&&he.ctrl.idle){const ue=ke.every(re=>re.ctrl.idle);if(he.phase=="leave"){const re=Ba(s,he.item);if(re!==!1){const ge=re===!0?0:re;if(he.expired=!0,!ue&&ge>0){ge<=2147483647&&(he.expirationId=setTimeout(j,ge));return}}}ue&&ke.some(re=>re.expired)&&($.current.delete(he),l&&(A.current=!0),j())}};const je=$$(O.ctrl,U);ee==="leave"&&l?$.current.set(O,{phase:ee,springs:je,payload:U}):E.set(O,{phase:ee,springs:je,payload:U})});const M=m.useContext(Qb),P=g$(M),te=M!==P&&tie(M);jp(()=>{te&&Ft(_,O=>{O.ctrl.start({default:M})})},[M]),Ft(E,(O,J)=>{if($.current.size){const D=_.findIndex(Y=>Y.key===J.key);_.splice(D,1)}}),jp(()=>{Ft($.current.size?$.current:E,({phase:O,payload:J},D)=>{const{ctrl:Y}=D;D.phase=O,p==null||p.add(Y),te&&O=="enter"&&Y.start({default:M}),J&&(nie(Y,J.ref),(Y.ref||p)&&!A.current?Y.update(J):(Y.start(J),A.current&&(A.current=!1)))})},i?void 0:n);const Z=O=>m.createElement(m.Fragment,null,_.map((J,D)=>{const{springs:Y}=E.get(J)||J.ctrl,F=O({...Y},J.item,J,D);return F&&F.type?m.createElement(F.type,{...F.props,key:He.str(J.key)||He.num(J.key)?J.key:J.ctrl.id,ref:F.ref}):F}));return p?[Z,p]:Z}var LAe=1;function RAe(e,{key:t,keys:n=t},r){if(n===null){const i=new Set;return e.map(o=>{const a=r&&r.find(s=>s.item===o&&s.phase!=="leave"&&!i.has(s));return a?(i.add(a),a.key):LAe++})}return He.und(n)?e:He.fun(n)?e.map(n):ha(n)}var kie=class extends j${constructor(e,t){super(),this.source=e,this.idle=!0,this._active=new Set,this.calc=Ab(...t);const n=this._get(),r=y$(n);v$(this,r.create(n))}advance(e){const t=this._get(),n=this.get();vd(t,n)||(Ju(this).setValue(t),this._onChange(t,this.idle)),!this.idle&&Sie(this._active)&&L$(this)}_get(){const e=He.arr(this.source)?this.source.map(Fa):ha(Fa(this.source));return this.calc(...e)}_start(){this.idle&&!Sie(this._active)&&(this.idle=!1,Ft(Dk(this),e=>{e.done=!1}),tu.skipAnimation?(qt.batchedUpdates(()=>this.advance()),L$(this)):$k.start(this))}_attach(){let e=1;Ft(ha(this.source),t=>{cl(t)&&Lg(t,this),C$(t)&&(t.idle||this._active.add(t),e=Math.max(e,t.priority+1))}),this.priority=e,this._start()}_detach(){Ft(ha(this.source),e=>{cl(e)&&Ub(e,this)}),this._active.clear(),L$(this)}eventObserved(e){e.type=="change"?e.idle?this.advance():(this._active.add(e.parent),this._start()):e.type=="idle"?this._active.delete(e.parent):e.type=="priority"&&(this.priority=ha(this.source).reduce((t,n)=>Math.max(t,(C$(n)?n.priority:0)+1),0))}};function OAe(e){return e.idle!==!1}function Sie(e){return!e.size||Array.from(e).every(OAe)}function L$(e){e.idle||(e.idle=!0,Ft(Dk(e),t=>{t.done=!0}),Bb(e,{type:"idle",parent:e}))}var t_=(e,...t)=>new kie(e,t);tu.assign({createStringInterpolator:Zre,to:(e,t)=>new kie(e,t)});var Cie=/^--/;function PAe(e,t){return t==null||typeof t=="boolean"||t===""?"":typeof t=="number"&&t!==0&&!Cie.test(e)&&!(n_.hasOwnProperty(e)&&n_[e])?t+"px":(""+t).trim()}var jie={};function zAe(e,t){if(!e.nodeType||!e.setAttribute)return!1;const n=e.nodeName==="filter"||e.parentNode&&e.parentNode.nodeName==="filter",{className:r,style:i,children:o,scrollTop:a,scrollLeft:s,viewBox:l,...c}=t,d=Object.values(c),f=Object.keys(c).map(p=>n||e.hasAttribute(p)?p:jie[p]||(jie[p]=p.replace(/([A-Z])/g,v=>"-"+v.toLowerCase())));o!==void 0&&(e.textContent=o);for(const p in i)if(i.hasOwnProperty(p)){const v=PAe(p,i[p]);Cie.test(p)?e.style.setProperty(p,v):e.style[p]=v}f.forEach((p,v)=>{e.setAttribute(p,d[v])}),r!==void 0&&(e.className=r),a!==void 0&&(e.scrollTop=a),s!==void 0&&(e.scrollLeft=s),l!==void 0&&e.setAttribute("viewBox",l)}var n_={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},DAe=(e,t)=>e+t.charAt(0).toUpperCase()+t.substring(1),AAe=["Webkit","Ms","Moz","O"];n_=Object.keys(n_).reduce((e,t)=>(AAe.forEach(n=>e[DAe(n,t)]=e[t]),e),n_);var FAe=/^(matrix|translate|scale|rotate|skew)/,BAe=/^(translate)/,UAe=/^(rotate|skew)/,R$=(e,t)=>He.num(e)&&e!==0?e+t:e,Wk=(e,t)=>He.arr(e)?e.every(n=>Wk(n,t)):He.num(e)?e===t:parseFloat(e)===t,WAe=class extends Fk{constructor({x:e,y:t,z:n,...r}){const i=[],o=[];(e||t||n)&&(i.push([e||0,t||0,n||0]),o.push(a=>[`translate3d(${a.map(s=>R$(s,"px")).join(",")})`,Wk(a,0)])),Xu(r,(a,s)=>{if(s==="transform")i.push([a||""]),o.push(l=>[l,l===""]);else if(FAe.test(s)){if(delete r[s],He.und(a))return;const l=BAe.test(s)?"px":UAe.test(s)?"deg":"";i.push(ha(a)),o.push(s==="rotate3d"?([c,d,f,p])=>[`rotate3d(${c},${d},${f},${R$(p,l)})`,Wk(p,0)]:c=>[`${s}(${c.map(d=>R$(d,l)).join(",")})`,Wk(c,s.startsWith("scale")?1:0)])}}),i.length&&(r.transform=new VAe(i,o)),super(r)}},VAe=class extends Ure{constructor(e,t){super(),this.inputs=e,this.transforms=t,this._value=null}get(){return this._value||(this._value=this._get())}_get(){let e="",t=!0;return Ft(this.inputs,(n,r)=>{const i=Fa(n[0]),[o,a]=this.transforms[r](He.arr(i)?i:n.map(Fa));e+=" "+o,t=t&&a}),t?"none":e}observerAdded(e){e==1&&Ft(this.inputs,t=>Ft(t,n=>cl(n)&&Lg(n,this)))}observerRemoved(e){e==0&&Ft(this.inputs,t=>Ft(t,n=>cl(n)&&Ub(n,this)))}eventObserved(e){e.type=="change"&&(this._value=null),Bb(this,e)}},HAe=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"];tu.assign({batchedUpdates:Kc.unstable_batchedUpdates,createStringInterpolator:Zre,colors:ADe});var ZAe=vAe(HAe,{applyAnimatedValues:zAe,createAnimatedStyle:e=>new WAe(e),getComponentProps:({scrollTop:e,scrollLeft:t,...n})=>n}),iu=ZAe.animated;function qAe(){const e=X(Zu);if(!e)return;const t=e.downloading_full_snapshot_throughput?`${Cp(e.downloading_full_snapshot_throughput).toString()}/s`:"-";return u.jsxs(V,{children:[u.jsx(ud,{label:"Peer",value:e.downloading_full_snapshot_peer}),u.jsx(ud,{label:"Slot",value:e.downloading_full_snapshot_slot}),u.jsx(ud,{label:"Throughput",value:t})]})}function GAe(){const e=X(Zu);return e?u.jsx(ud,{label:"Slot",value:e.waiting_for_supermajority_slot}):null}function YAe(){const e=X(Zu);return e?u.jsx(N4,{value:e.waiting_for_supermajority_stake_percent||0,className:H3.progress}):null}function KAe(){const e=X(Zu);if(!e)return;const t=e.downloading_incremental_snapshot_throughput?`${Cp(e.downloading_incremental_snapshot_throughput).toString()}/s`:"-";return u.jsxs(V,{children:[u.jsx(ud,{label:"Peer",value:e.downloading_incremental_snapshot_peer}),u.jsx(ud,{label:"Slot",value:e.downloading_incremental_snapshot_slot}),u.jsx(ud,{label:"Throughput",value:t})]})}const Tie=[{step:"initializing"},{step:"searching_for_full_snapshot"},{step:"downloading_full_snapshot",rightChildren:u.jsx(Aze,{}),bottomChildren:u.jsx(qAe,{})},{step:"searching_for_incremental_snapshot"},{step:"downloading_incremental_snapshot",rightChildren:u.jsx($De,{}),bottomChildren:u.jsx(KAe,{})},{step:"cleaning_blockstore"},{step:"cleaning_accounts"},{step:"loading_ledger"},{step:"processing_ledger",bottomChildren:u.jsx(EMe,{})},{step:"starting_services"},{step:"waiting_for_supermajority",rightChildren:u.jsx(YAe,{}),bottomChildren:u.jsx(GAe,{}),optional:!0},{step:"running"}];function XAe(){const e=X(Zu),[t,n]=Vl(ol),r=X(Ku),i=!!Object.values(r).length,[o,a]=m.useState();m.useEffect(()=>{(e==null?void 0:e.phase)!=="running"&&n(!0),a(f=>e?e.phase==="running":f)},[n,e]);const s=o===!0||o===void 0;m.useEffect(()=>{i&&(e==null?void 0:e.phase)==="running"&&n(!1)},[i,n,t,e==null?void 0:e.phase]);const l=Math.max(0,Tie.findIndex(({step:f})=>f===(e==null?void 0:e.phase))),[c,d]=e_(()=>({from:{opacity:t?1:0,zIndex:t?1:-1}}));return m.useEffect(()=>{d.stop(),t?d.start({from:{opacity:1,zIndex:1}}):d.start({from:{opacity:1,zIndex:1},to:{opacity:0,zIndex:-1}})},[d,t]),u.jsx(iu.div,{className:PG.outerContainer,style:c,children:u.jsxs(V,{direction:"column",gap:"4",className:PG.innerContainer,children:[u.jsx(Mt,{flexGrow:"1"}),u.jsx("img",{src:Vi?ree:gMe,alt:"fd",height:"50px",style:{marginBottom:"28px"}}),Tie.map(({step:f,rightChildren:p,bottomChildren:v,optional:_},y)=>{if(_&&f!==(e==null?void 0:e.phase))return null;const b=JAe(f);return y===l?u.jsx(wMe,{label:b,hide:s,rightChildren:p,bottomChildren:v},f):yt!==void 0).map((t,n)=>t==="for"?t:t==="rpc"?"RPC":(n===0?t[0].toUpperCase():t[0])+t.slice(1)).join(" ")}const QAe="_container_e8h4h_1",eFe="_blur_e8h4h_4",Iie={container:QAe,blur:eFe};function Eie(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;tvFe(e||null),{maxSize:1e3}),yFe="_hide_1etvv_1",Mie={hide:yFe};function ks({url:e,size:t,hideFallback:n,hideTooltip:r=!1,isYou:i}){const[o,a]=Vl($ie(e)),[s,l]=m.useState(o),[c,d]=m.useState(!1),f=`${t}px`,p={width:f,height:f,minWidth:f,minHeight:f};if(!e||s){if(n)return u.jsx("div",{style:p});if(i){const _=u.jsx("img",{src:gFe,style:p});return r?_:u.jsx(ui,{content:"Your current validator",children:_})}return u.jsx("img",{src:Nie,alt:"private",style:p})}const v=()=>{a(),l(!0)};return u.jsxs(u.Fragment,{children:[u.jsx("img",{className:Te({[Mie.hide]:!c}),style:p,onError:v,onLoad:()=>d(!0),src:e}),u.jsx("img",{className:Te({[Mie.hide]:c}),style:p,src:Nie,alt:"private"})]})}const O$=Yf((e,t,n)=>new Intl.NumberFormat(void 0,{minimumFractionDigits:n?e:0,maximumFractionDigits:e,minimumSignificantDigits:!n&&t?1:t,maximumSignificantDigits:t}),{maxSize:100});function P$(e,t){const{trailingZeroes:n=!0,decimalsOnZero:r=!1}=t;if(e===0&&!r)return"0";let i;if("decimals"in t){const s=typeof t.decimals=="function"?t.decimals(e):t.decimals;i=O$(s,void 0,n)}else{const{significantDigits:s,exactIntegers:l}=t;l&&Math.abs(e)>Math.pow(10,s)?i=O$(0,void 0,n):i=O$(void 0,s||1,n)}let o="";t.useSuffix&&([e,o]=bFe(e));const a=i.format(e);return a==="-0"?"0":a+o}function bFe(e){if(isFinite(e)){const t=Math.abs(e);if(t>=1e12)return[e/1e12,"T"];if(t>=1e9)return[e/1e9,"B"];if(t>=1e6)return[e/1e6,"M"];if(t>=1e3)return[e/1e3,"K"]}return[e,""]}const Lie=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",maximumFractionDigits:0}),z$=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",minimumFractionDigits:1,maximumFractionDigits:1});function _Fe(e){switch(e){case 1:return"Once";case 2:return"Twice";default:return`${e} times`}}function xFe(){var e=m.useRef(!0);return e.current?(e.current=!1,!0):e.current}var Rie=function(){};function wFe(e){for(var t=[],n=1;ns.preventDefault(),children:t})})]})}function Bie(e){const t=X(dG),n=Oie();if(Qu(n,e),!!t)return Kf.diff(jt.fromMillis(Math.trunc(Number(t.startupTimeNanos)/1e6))).rescale()}function Ip(e,t,n,r){var i=this,o=m.useRef(null),a=m.useRef(0),s=m.useRef(0),l=m.useRef(null),c=m.useRef([]),d=m.useRef(),f=m.useRef(),p=m.useRef(e),v=m.useRef(!0);p.current=e;var _=typeof window<"u",y=!t&&t!==0&&_;if(typeof e!="function")throw new TypeError("Expected a function");t=+t||0;var b=!!(n=n||{}).leading,w=!("trailing"in n)||!!n.trailing,x="maxWait"in n,S="debounceOnServer"in n&&!!n.debounceOnServer,C=x?Math.max(+n.maxWait||0,t):null;m.useEffect(function(){return v.current=!0,function(){v.current=!1}},[]);var j=m.useMemo(function(){var T=function(Z){var O=c.current,J=d.current;return c.current=d.current=null,a.current=Z,s.current=s.current||Z,f.current=p.current.apply(J,O)},E=function(Z,O){y&&cancelAnimationFrame(l.current),l.current=y?requestAnimationFrame(Z):setTimeout(Z,O)},$=function(Z){if(!v.current)return!1;var O=Z-o.current;return!o.current||O>=t||O<0||x&&Z-a.current>=C},A=function(Z){return l.current=null,w&&c.current?T(Z):(c.current=d.current=null,f.current)},M=function Z(){var O=Date.now();if(b&&s.current===a.current&&P(),$(O))return A(O);if(v.current){var J=t-(O-o.current),D=x?Math.min(J,C-(O-a.current)):J;E(Z,D)}},P=function(){r&&r({})},te=function(){if(_||S){var Z=Date.now(),O=$(Z);if(c.current=[].slice.call(arguments),d.current=i,o.current=Z,O){if(!l.current&&v.current)return a.current=o.current,E(M,t),b?T(o.current):f.current;if(x)return E(M,t),T(o.current)}return l.current||E(M,t),f.current}};return te.cancel=function(){var Z=l.current;Z&&(y?cancelAnimationFrame(l.current):clearTimeout(l.current)),a.current=0,c.current=o.current=d.current=l.current=null,Z&&r&&r({})},te.isPending=function(){return!!l.current},te.flush=function(){return l.current?A(Date.now()):f.current},te},[b,x,t,C,w,y,_,S,r]);return j}function DFe(e,t){return e===t}function Uie(e,t,n){var r=n&&n.equalityFn||DFe,i=m.useRef(e),o=m.useState({})[1],a=Ip(m.useCallback(function(l){i.current=l,o({})},[o]),t,n,o),s=m.useRef(e);return r(s.current,e)||(a(e),s.current=e),[i.current,a]}function Ua(e,t,n){var r=n===void 0?{}:n,i=r.leading,o=r.trailing;return Ip(e,t,{maxWait:t,leading:i===void 0||i,trailing:o===void 0||o})}function Gr(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}var AFe=["color"],Wie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,AFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.5 2C7.77614 2 8 2.22386 8 2.5L8 11.2929L11.1464 8.14645C11.3417 7.95118 11.6583 7.95118 11.8536 8.14645C12.0488 8.34171 12.0488 8.65829 11.8536 8.85355L7.85355 12.8536C7.75979 12.9473 7.63261 13 7.5 13C7.36739 13 7.24021 12.9473 7.14645 12.8536L3.14645 8.85355C2.95118 8.65829 2.95118 8.34171 3.14645 8.14645C3.34171 7.95118 3.65829 7.95118 3.85355 8.14645L7 11.2929L7 2.5C7 2.22386 7.22386 2 7.5 2Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),FFe=["color"],Vie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,FFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.14645 2.14645C7.34171 1.95118 7.65829 1.95118 7.85355 2.14645L11.8536 6.14645C12.0488 6.34171 12.0488 6.65829 11.8536 6.85355C11.6583 7.04882 11.3417 7.04882 11.1464 6.85355L8 3.70711L8 12.5C8 12.7761 7.77614 13 7.5 13C7.22386 13 7 12.7761 7 12.5L7 3.70711L3.85355 6.85355C3.65829 7.04882 3.34171 7.04882 3.14645 6.85355C2.95118 6.65829 2.95118 6.34171 3.14645 6.14645L7.14645 2.14645Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),BFe=["color"],A$=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,BFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M4.18179 6.18181C4.35753 6.00608 4.64245 6.00608 4.81819 6.18181L7.49999 8.86362L10.1818 6.18181C10.3575 6.00608 10.6424 6.00608 10.8182 6.18181C10.9939 6.35755 10.9939 6.64247 10.8182 6.81821L7.81819 9.81821C7.73379 9.9026 7.61934 9.95001 7.49999 9.95001C7.38064 9.95001 7.26618 9.9026 7.18179 9.81821L4.18179 6.81821C4.00605 6.64247 4.00605 6.35755 4.18179 6.18181Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),UFe=["color"],F$=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,UFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M4.18179 8.81819C4.00605 8.64245 4.00605 8.35753 4.18179 8.18179L7.18179 5.18179C7.26618 5.0974 7.38064 5.04999 7.49999 5.04999C7.61933 5.04999 7.73379 5.0974 7.81819 5.18179L10.8182 8.18179C10.9939 8.35753 10.9939 8.64245 10.8182 8.81819C10.6424 8.99392 10.3575 8.99392 10.1818 8.81819L7.49999 6.13638L4.81819 8.81819C4.64245 8.99392 4.35753 8.99392 4.18179 8.81819Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),WFe=["color"],VFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,WFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),HFe=["color"],Hie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,HFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),ZFe=["color"],qFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,ZFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M6.1584 3.13508C6.35985 2.94621 6.67627 2.95642 6.86514 3.15788L10.6151 7.15788C10.7954 7.3502 10.7954 7.64949 10.6151 7.84182L6.86514 11.8418C6.67627 12.0433 6.35985 12.0535 6.1584 11.8646C5.95694 11.6757 5.94673 11.3593 6.1356 11.1579L9.565 7.49985L6.1356 3.84182C5.94673 3.64036 5.95694 3.32394 6.1584 3.13508Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),GFe=["color"],YFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,GFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M3.13523 8.84197C3.3241 9.04343 3.64052 9.05363 3.84197 8.86477L7.5 5.43536L11.158 8.86477C11.3595 9.05363 11.6759 9.04343 11.8648 8.84197C12.0536 8.64051 12.0434 8.32409 11.842 8.13523L7.84197 4.38523C7.64964 4.20492 7.35036 4.20492 7.15803 4.38523L3.15803 8.13523C2.95657 8.32409 2.94637 8.64051 3.13523 8.84197Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),KFe=["color"],XFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,KFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M1 9.50006C1 10.3285 1.67157 11.0001 2.5 11.0001H4L4 10.0001H2.5C2.22386 10.0001 2 9.7762 2 9.50006L2 2.50006C2 2.22392 2.22386 2.00006 2.5 2.00006L9.5 2.00006C9.77614 2.00006 10 2.22392 10 2.50006V4.00002H5.5C4.67158 4.00002 4 4.67159 4 5.50002V12.5C4 13.3284 4.67158 14 5.5 14H12.5C13.3284 14 14 13.3284 14 12.5V5.50002C14 4.67159 13.3284 4.00002 12.5 4.00002H11V2.50006C11 1.67163 10.3284 1.00006 9.5 1.00006H2.5C1.67157 1.00006 1 1.67163 1 2.50006V9.50006ZM5 5.50002C5 5.22388 5.22386 5.00002 5.5 5.00002H12.5C12.7761 5.00002 13 5.22388 13 5.50002V12.5C13 12.7762 12.7761 13 12.5 13H5.5C5.22386 13 5 12.7762 5 12.5V5.50002Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),JFe=["color"],QFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,JFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M13.15 7.49998C13.15 4.66458 10.9402 1.84998 7.50002 1.84998C4.72167 1.84998 3.34849 3.9064 2.76335 5H4.5C4.77614 5 5 5.22386 5 5.5C5 5.77614 4.77614 6 4.5 6H1.5C1.22386 6 1 5.77614 1 5.5V2.5C1 2.22386 1.22386 2 1.5 2C1.77614 2 2 2.22386 2 2.5V4.31318C2.70453 3.07126 4.33406 0.849976 7.50002 0.849976C11.5628 0.849976 14.15 4.18537 14.15 7.49998C14.15 10.8146 11.5628 14.15 7.50002 14.15C5.55618 14.15 3.93778 13.3808 2.78548 12.2084C2.16852 11.5806 1.68668 10.839 1.35816 10.0407C1.25306 9.78536 1.37488 9.49315 1.63024 9.38806C1.8856 9.28296 2.17781 9.40478 2.2829 9.66014C2.56374 10.3425 2.97495 10.9745 3.4987 11.5074C4.47052 12.4963 5.83496 13.15 7.50002 13.15C10.9402 13.15 13.15 10.3354 13.15 7.49998ZM7.5 4.00001C7.77614 4.00001 8 4.22387 8 4.50001V7.29291L9.85355 9.14646C10.0488 9.34172 10.0488 9.65831 9.85355 9.85357C9.65829 10.0488 9.34171 10.0488 9.14645 9.85357L7.14645 7.85357C7.05268 7.7598 7 7.63262 7 7.50001V4.50001C7 4.22387 7.22386 4.00001 7.5 4.00001Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),eBe=["color"],B$=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,eBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M12.8536 2.85355C13.0488 2.65829 13.0488 2.34171 12.8536 2.14645C12.6583 1.95118 12.3417 1.95118 12.1464 2.14645L7.5 6.79289L2.85355 2.14645C2.65829 1.95118 2.34171 1.95118 2.14645 2.14645C1.95118 2.34171 1.95118 2.65829 2.14645 2.85355L6.79289 7.5L2.14645 12.1464C1.95118 12.3417 1.95118 12.6583 2.14645 12.8536C2.34171 13.0488 2.65829 13.0488 2.85355 12.8536L7.5 8.20711L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L8.20711 7.5L12.8536 2.85355Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),tBe=["color"],nBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,tBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),rBe=["color"],iBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,rBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M11.1464 6.85355C11.3417 7.04882 11.6583 7.04882 11.8536 6.85355C12.0488 6.65829 12.0488 6.34171 11.8536 6.14645L7.85355 2.14645C7.65829 1.95118 7.34171 1.95118 7.14645 2.14645L3.14645 6.14645C2.95118 6.34171 2.95118 6.65829 3.14645 6.85355C3.34171 7.04882 3.65829 7.04882 3.85355 6.85355L7.5 3.20711L11.1464 6.85355ZM11.1464 12.8536C11.3417 13.0488 11.6583 13.0488 11.8536 12.8536C12.0488 12.6583 12.0488 12.3417 11.8536 12.1464L7.85355 8.14645C7.65829 7.95118 7.34171 7.95118 7.14645 8.14645L3.14645 12.1464C2.95118 12.3417 2.95118 12.6583 3.14645 12.8536C3.34171 13.0488 3.65829 13.0488 3.85355 12.8536L7.5 9.20711L11.1464 12.8536Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),oBe=["color"],aBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,oBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M2 2.5C2 2.22386 2.22386 2 2.5 2H5.5C5.77614 2 6 2.22386 6 2.5C6 2.77614 5.77614 3 5.5 3H3V5.5C3 5.77614 2.77614 6 2.5 6C2.22386 6 2 5.77614 2 5.5V2.5ZM9 2.5C9 2.22386 9.22386 2 9.5 2H12.5C12.7761 2 13 2.22386 13 2.5V5.5C13 5.77614 12.7761 6 12.5 6C12.2239 6 12 5.77614 12 5.5V3H9.5C9.22386 3 9 2.77614 9 2.5ZM2.5 9C2.77614 9 3 9.22386 3 9.5V12H5.5C5.77614 12 6 12.2239 6 12.5C6 12.7761 5.77614 13 5.5 13H2.5C2.22386 13 2 12.7761 2 12.5V9.5C2 9.22386 2.22386 9 2.5 9ZM12.5 9C12.7761 9 13 9.22386 13 9.5V12.5C13 12.7761 12.7761 13 12.5 13H9.5C9.22386 13 9 12.7761 9 12.5C9 12.2239 9.22386 12 9.5 12H12V9.5C12 9.22386 12.2239 9 12.5 9Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),sBe=["color"],lBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,sBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M5.5 2C5.77614 2 6 2.22386 6 2.5V5.5C6 5.77614 5.77614 6 5.5 6H2.5C2.22386 6 2 5.77614 2 5.5C2 5.22386 2.22386 5 2.5 5H5V2.5C5 2.22386 5.22386 2 5.5 2ZM9.5 2C9.77614 2 10 2.22386 10 2.5V5H12.5C12.7761 5 13 5.22386 13 5.5C13 5.77614 12.7761 6 12.5 6H9.5C9.22386 6 9 5.77614 9 5.5V2.5C9 2.22386 9.22386 2 9.5 2ZM2 9.5C2 9.22386 2.22386 9 2.5 9H5.5C5.77614 9 6 9.22386 6 9.5V12.5C6 12.7761 5.77614 13 5.5 13C5.22386 13 5 12.7761 5 12.5V10H2.5C2.22386 10 2 9.77614 2 9.5ZM9 9.5C9 9.22386 9.22386 9 9.5 9H12.5C12.7761 9 13 9.22386 13 9.5C13 9.77614 12.7761 10 12.5 10H10V12.5C10 12.7761 9.77614 13 9.5 13C9.22386 13 9 12.7761 9 12.5V9.5Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),uBe=["color"],Zie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,uBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.49991 0.876892C3.84222 0.876892 0.877075 3.84204 0.877075 7.49972C0.877075 11.1574 3.84222 14.1226 7.49991 14.1226C11.1576 14.1226 14.1227 11.1574 14.1227 7.49972C14.1227 3.84204 11.1576 0.876892 7.49991 0.876892ZM1.82707 7.49972C1.82707 4.36671 4.36689 1.82689 7.49991 1.82689C10.6329 1.82689 13.1727 4.36671 13.1727 7.49972C13.1727 10.6327 10.6329 13.1726 7.49991 13.1726C4.36689 13.1726 1.82707 10.6327 1.82707 7.49972ZM8.24992 4.49999C8.24992 4.9142 7.91413 5.24999 7.49992 5.24999C7.08571 5.24999 6.74992 4.9142 6.74992 4.49999C6.74992 4.08577 7.08571 3.74999 7.49992 3.74999C7.91413 3.74999 8.24992 4.08577 8.24992 4.49999ZM6.00003 5.99999H6.50003H7.50003C7.77618 5.99999 8.00003 6.22384 8.00003 6.49999V9.99999H8.50003H9.00003V11H8.50003H7.50003H6.50003H6.00003V9.99999H6.50003H7.00003V6.99999H6.50003H6.00003V5.99999Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),cBe=["color"],qie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,cBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),dBe=["color"],fBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,dBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M1.85001 7.50043C1.85001 4.37975 4.37963 1.85001 7.50001 1.85001C10.6204 1.85001 13.15 4.37975 13.15 7.50043C13.15 10.6211 10.6204 13.1509 7.50001 13.1509C4.37963 13.1509 1.85001 10.6211 1.85001 7.50043ZM7.50001 0.850006C3.82728 0.850006 0.850006 3.82753 0.850006 7.50043C0.850006 11.1733 3.82728 14.1509 7.50001 14.1509C11.1727 14.1509 14.15 11.1733 14.15 7.50043C14.15 3.82753 11.1727 0.850006 7.50001 0.850006ZM7.00001 8.00001V3.12811C7.16411 3.10954 7.33094 3.10001 7.50001 3.10001C9.93006 3.10001 11.9 5.07014 11.9 7.50043C11.9 7.66935 11.8905 7.83604 11.872 8.00001H7.00001Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),hBe=["color"],pBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,hBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.49991 0.876892C3.84222 0.876892 0.877075 3.84204 0.877075 7.49972C0.877075 11.1574 3.84222 14.1226 7.49991 14.1226C11.1576 14.1226 14.1227 11.1574 14.1227 7.49972C14.1227 3.84204 11.1576 0.876892 7.49991 0.876892ZM1.82707 7.49972C1.82707 4.36671 4.36689 1.82689 7.49991 1.82689C10.6329 1.82689 13.1727 4.36671 13.1727 7.49972C13.1727 10.6327 10.6329 13.1726 7.49991 13.1726C4.36689 13.1726 1.82707 10.6327 1.82707 7.49972ZM7.50003 4C7.77617 4 8.00003 4.22386 8.00003 4.5V7H10.5C10.7762 7 11 7.22386 11 7.5C11 7.77614 10.7762 8 10.5 8H8.00003V10.5C8.00003 10.7761 7.77617 11 7.50003 11C7.22389 11 7.00003 10.7761 7.00003 10.5V8H4.50003C4.22389 8 4.00003 7.77614 4.00003 7.5C4.00003 7.22386 4.22389 7 4.50003 7H7.00003V4.5C7.00003 4.22386 7.22389 4 7.50003 4Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),mBe=["color"],gBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,mBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M4.85355 2.14645C5.04882 2.34171 5.04882 2.65829 4.85355 2.85355L3.70711 4H9C11.4853 4 13.5 6.01472 13.5 8.5C13.5 10.9853 11.4853 13 9 13H5C4.72386 13 4.5 12.7761 4.5 12.5C4.5 12.2239 4.72386 12 5 12H9C10.933 12 12.5 10.433 12.5 8.5C12.5 6.567 10.933 5 9 5H3.70711L4.85355 6.14645C5.04882 6.34171 5.04882 6.65829 4.85355 6.85355C4.65829 7.04882 4.34171 7.04882 4.14645 6.85355L2.14645 4.85355C1.95118 4.65829 1.95118 4.34171 2.14645 4.14645L4.14645 2.14645C4.34171 1.95118 4.65829 1.95118 4.85355 2.14645Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),vBe=["color"],yBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,vBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M3.89949 9.49998C3.89949 9.72089 3.7204 9.89997 3.49949 9.89997C3.27857 9.89997 3.09949 9.72089 3.09949 9.49998L3.09949 2.46566L1.78233 3.78282C1.62612 3.93903 1.37285 3.93903 1.21664 3.78282C1.06043 3.62661 1.06043 3.37334 1.21664 3.21713L3.21664 1.21713C3.29166 1.14212 3.3934 1.09998 3.49949 1.09998C3.60557 1.09998 3.70732 1.14212 3.78233 1.21713L5.78233 3.21713C5.93854 3.37334 5.93854 3.62661 5.78233 3.78282C5.62612 3.93903 5.37285 3.93903 5.21664 3.78282L3.89949 2.46566L3.89949 9.49998ZM8.49998 1.99998C8.22383 1.99998 7.99998 2.22383 7.99998 2.49998C7.99998 2.77612 8.22383 2.99998 8.49998 2.99998H14.5C14.7761 2.99998 15 2.77612 15 2.49998C15 2.22383 14.7761 1.99998 14.5 1.99998H8.49998ZM8.49998 4.99998C8.22383 4.99998 7.99998 5.22383 7.99998 5.49998C7.99998 5.77612 8.22383 5.99998 8.49998 5.99998H14.5C14.7761 5.99998 15 5.77612 15 5.49998C15 5.22383 14.7761 4.99998 14.5 4.99998H8.49998ZM7.99998 8.49998C7.99998 8.22383 8.22383 7.99998 8.49998 7.99998H14.5C14.7761 7.99998 15 8.22383 15 8.49998C15 8.77612 14.7761 8.99998 14.5 8.99998H8.49998C8.22383 8.99998 7.99998 8.77612 7.99998 8.49998Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),bBe=["color"],Gie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,bBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.49998 0.849976C7.22383 0.849976 6.99998 1.07383 6.99998 1.34998V3.52234C6.99998 3.79848 7.22383 4.02234 7.49998 4.02234C7.77612 4.02234 7.99998 3.79848 7.99998 3.52234V1.8718C10.8862 2.12488 13.15 4.54806 13.15 7.49998C13.15 10.6204 10.6204 13.15 7.49998 13.15C4.37957 13.15 1.84998 10.6204 1.84998 7.49998C1.84998 6.10612 2.35407 4.83128 3.19049 3.8459C3.36919 3.63538 3.34339 3.31985 3.13286 3.14115C2.92234 2.96245 2.60681 2.98825 2.42811 3.19877C1.44405 4.35808 0.849976 5.86029 0.849976 7.49998C0.849976 11.1727 3.82728 14.15 7.49998 14.15C11.1727 14.15 14.15 11.1727 14.15 7.49998C14.15 3.82728 11.1727 0.849976 7.49998 0.849976ZM6.74049 8.08072L4.22363 4.57237C4.15231 4.47295 4.16346 4.33652 4.24998 4.25C4.33649 4.16348 4.47293 4.15233 4.57234 4.22365L8.08069 6.74051C8.56227 7.08599 8.61906 7.78091 8.19998 8.2C7.78089 8.61909 7.08597 8.56229 6.74049 8.08072Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),_Be=["color"],xBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,_Be);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159ZM4.25 6.5C4.25 6.22386 4.47386 6 4.75 6H6V4.75C6 4.47386 6.22386 4.25 6.5 4.25C6.77614 4.25 7 4.47386 7 4.75V6H8.25C8.52614 6 8.75 6.22386 8.75 6.5C8.75 6.77614 8.52614 7 8.25 7H7V8.25C7 8.52614 6.77614 8.75 6.5 8.75C6.22386 8.75 6 8.52614 6 8.25V7H4.75C4.47386 7 4.25 6.77614 4.25 6.5Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),wBe=["color"],kBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,wBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M6.5 10C8.433 10 10 8.433 10 6.5C10 4.567 8.433 3 6.5 3C4.567 3 3 4.567 3 6.5C3 8.433 4.567 10 6.5 10ZM6.5 11C7.56251 11 8.53901 10.6318 9.30884 10.0159L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L10.0159 9.30884C10.6318 8.53901 11 7.56251 11 6.5C11 4.01472 8.98528 2 6.5 2C4.01472 2 2 4.01472 2 6.5C2 8.98528 4.01472 11 6.5 11ZM4.75 6C4.47386 6 4.25 6.22386 4.25 6.5C4.25 6.77614 4.47386 7 4.75 7H8.25C8.52614 7 8.75 6.77614 8.75 6.5C8.75 6.22386 8.52614 6 8.25 6H4.75Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))});const SBe="_copy-button_1km2g_1",CBe="_icon_1km2g_8",jBe="_hide-icon-until-hover_1km2g_12",Zk={copyButton:SBe,icon:CBe,hideIconUntilHover:jBe};function Dg({value:e,color:t,size:n,hideIconUntilHover:r,className:i,children:o}){const[a,s]=m.useState(!1),l=Ip(()=>s(!1),1e3);return e===void 0?o:u.jsxs(hs,{className:Te(i,Zk.copyButton,r&&Zk.hideIconUntilHover),variant:"ghost",size:"1",onClick:c=>{UN(e),s(!0),l(),c.stopPropagation()},children:[o,a?u.jsx(VFe,{className:Zk.icon,color:"green",height:n}):u.jsx(XFe,{className:Zk.icon,color:t,height:n})]})}function qk({children:e,...t}){return t.content?u.jsx(ui,{...t,children:e}):u.jsx(u.Fragment,{children:e})}function TBe(){var o;const{peer:e,identityKey:t}=a_(),n=Hn(`(min-width: ${Hte})`),r=Hn("(min-width: 798px)"),i=Hn("(min-width: 914px)");return m.useEffect(()=>{var s;const a=((s=e==null?void 0:e.info)==null?void 0:s.name)??t;document.title=a?`${hb} | ${a}`:hb},[t,e]),u.jsx(IBe,{showDropdown:!0,children:u.jsxs("div",{className:Te(rh.container,rh.horizontal,rh.pointer),children:[u.jsx(ks,{url:(o=e==null?void 0:e.info)==null?void 0:o.icon_url,size:28,isYou:!0}),n&&u.jsx(Yie,{shouldShrink:!0}),r&&u.jsxs(u.Fragment,{children:[u.jsx(Jie,{showTooltip:!0}),u.jsx(Xie,{showTooltip:!0})]}),i&&u.jsxs(u.Fragment,{children:[u.jsx(Qie,{}),u.jsx(Kie,{showTooltip:!0}),u.jsx(eoe,{})]})]})})}function IBe({showDropdown:e,children:t}){return e?u.jsx(zg,{content:u.jsx(EBe,{}),align:"end",children:t}):t}function EBe(){var t;const{peer:e}=a_();return u.jsxs(V,{direction:"column",wrap:"wrap",gap:"2",className:Te(rh.container,rh.dropdownMenu),style:{zIndex:Hf},children:[u.jsxs(V,{gap:"2",children:[u.jsx(ks,{url:(t=e==null?void 0:e.info)==null?void 0:t.icon_url,size:24,isYou:!0}),u.jsx(Yie,{})]}),u.jsx(Jie,{}),u.jsx(Xie,{}),u.jsx(Qie,{}),u.jsx(Kie,{}),u.jsx(NBe,{}),u.jsx($Be,{}),u.jsx(eoe,{})]})}function Yie({shouldShrink:e}){const{identityKey:t}=a_();return u.jsx(ih,{label:"Validator Name",copyValue:t,shouldShrink:e,children:t})}function NBe(){var t;const{peer:e}=a_();return u.jsx(ih,{label:"Vote Pubkey",children:(t=e==null?void 0:e.vote[0])==null?void 0:t.vote_account})}function $Be(){const e=X(hG),t=Tb(e);return u.jsx(ih,{label:"Vote Balance",children:u.jsx(Ag,{value:t,suffix:"SOL"})})}function Kie({showTooltip:e}){const t=X(fG),n=Tb(t);return u.jsx(ih,{label:"Identity Balance",tooltip:e?"Account balance of this validators identity account. The balance is on the highest slot of the currently active fork of the validator.":void 0,children:u.jsx(Ag,{value:n,suffix:"SOL"})})}function Xie({showTooltip:e}){const t=X(mDe),n=t===void 0?void 0:P$(t,{significantDigits:4,trailingZeroes:!1});return u.jsx(ih,{label:"Stake %",tooltip:e?"What percentage of total stake is delegated to this validator":void 0,children:u.jsx(Ag,{value:n,suffix:"%"})})}function Jie({showTooltip:e}){const t=X(bre),n=Tb(t);return u.jsx(ih,{label:"Stake Amount",tooltip:e?"Amount of total stake that is delegated to this validator":void 0,children:u.jsx(Ag,{value:n,suffix:"SOL"})})}function Qie(){var n;const{peer:e}=a_(),t=e==null?void 0:e.vote.reduce((r,i)=>i.activated_stake>r.maxStake?{maxStake:i.activated_stake,commission:i.commission}:r,{maxStake:0n,commission:void 0});return u.jsx(ih,{label:"Commission",children:u.jsx(Ag,{value:(n=t==null?void 0:t.commission)==null?void 0:n.toLocaleString(),suffix:"%"})})}function eoe(){const e=Bie(6e4),t=e?ere(e,{omitSeconds:!0}):void 0;return u.jsx(ih,{label:"Uptime",children:t==null?void 0:t.map(([n,r],i)=>u.jsxs(m.Fragment,{children:[i!==0&&"\xA0",u.jsx(Ag,{value:n,suffix:r,excludeSpace:!0})]},`${n}${r}`))})}function ih({label:e,tooltip:t,shouldShrink:n=!1,children:r,copyValue:i}){return r?u.jsx(qk,{content:t,children:u.jsxs(V,{direction:"column",minWidth:"0",flexShrink:n?"1":"0",children:[u.jsx(q,{truncate:!0,className:rh.label,children:e}),u.jsx(Dg,{value:i,color:"white",size:"10px",hideIconUntilHover:!0,children:u.jsx(q,{truncate:!0,className:rh.value,children:r})})]})}):null}function Ag({value:e,suffix:t,valueColor:n,excludeSpace:r}){return u.jsxs(u.Fragment,{children:[u.jsxs("span",{style:{color:n},children:[e,!r&&"\xA0"]}),u.jsx("span",{className:rh.valueSuffix,children:t})]})}const MBe="_nav-link_tb1ax_1",LBe="_icon_tb1ax_14",RBe="_dropdown-icon_tb1ax_19",OBe="_active_tb1ax_29",PBe="_nav-dropdown-content_tb1ax_41",s_={navLink:MBe,icon:LBe,dropdownIcon:RBe,active:OBe,navDropdownContent:PBe},zBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M21 5.47 12 12 7.62 7.62 3 11V8.52L7.83 5l4.38 4.38L21 3v2.47zM21 15h-4.7l-4.17 3.34L6 12.41l-3 2.13V17l2.8-2 6.2 6 5-4h4v-2z"})),DBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"})),ABe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zM9 14H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm-8 4H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2z"})),FBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M18 11v2h4v-2h-4zm-2 6.61c.96.71 2.21 1.65 3.2 2.39.4-.53.8-1.07 1.2-1.6-.99-.74-2.24-1.68-3.2-2.4-.4.54-.8 1.08-1.2 1.61zM20.4 5.6c-.4-.53-.8-1.07-1.2-1.6-.99.74-2.24 1.68-3.2 2.4.4.53.8 1.07 1.2 1.6.96-.72 2.21-1.65 3.2-2.4zM4 9c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1v4h2v-4h1l5 3V6L8 9H4zm11.5 3c0-1.33-.58-2.53-1.5-3.35v6.69c.92-.81 1.5-2.01 1.5-3.34z"})),BBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"})),Gk={Overview:"/","Slot Details":"/slotDetails",Schedule:"/leaderSchedule",Gossip:"/gossip"};function Yk(){const e=D9e();return m.useMemo(()=>{const t=Object.entries(Gk).find(([n,r])=>e.pathname===r);return t?t[0]:"Overview"},[e.pathname])}function UBe(){const e=X(ao),t=X(eu),n=X(An),r=Ee(An),[i,o]=m.useMemo(()=>{if(e===void 0)return[-1,-1];const a=e.findIndex(l=>l>(n??t??0));let s=a-1;return s===e.findIndex(l=>l===(n??t??0))&&s--,[s,a]},[t,e,n]);return m.useMemo(()=>({navPrevLeaderSlot:(a=1)=>{if(i>-1&&a>0){const s=e==null?void 0:e[i-a+1];s!==void 0&&r(s)}},navNextLeaderSlot:(a=1)=>{if(o>-1&&a>0){const s=e==null?void 0:e[o+a-1];s!==void 0&&r(s)}}}),[e,o,i,r])}const WBe={Overview:zBe,Schedule:ABe,Gossip:FBe,"Slot Details":DBe},Kk=m.forwardRef(({label:e,isActive:t,showDropdownIcon:n=!1,isLink:r,...i},o)=>{const a=X(qy),s=bk(a),l=WBe[e],c=Gk[e],d=m.useMemo(()=>{const f=t?s:Qte;return u.jsxs(u.Fragment,{children:[u.jsx(l,{className:s_.icon,fill:f}),u.jsx(q,{truncate:!0,children:e}),n&&u.jsx(BBe,{className:s_.dropdownIcon,fill:f})]})},[l,s,t,e,n]);return u.jsx(hs,{ref:o,...i,size:"2",variant:"soft",color:"gray",className:Te(s_.navLink,{[s_.active]:t}),style:{color:t?s:void 0},asChild:r,children:r?u.jsx(lp,{to:c,children:d}):d})});Kk.displayName="NavButton";function VBe(){const e=Yk();return u.jsx(V,{gap:`${Vf}px`,children:Object.keys(Gk).map(t=>{const n=t;if(!(n==="Gossip"&&_i))return u.jsx(Kk,{label:n,isActive:e===n,isLink:!0},n)})})}function HBe(){const e=X(jg),t=Yk();return u.jsxs(bV,{children:[u.jsx(_V,{asChild:!0,children:u.jsx(Kk,{label:t,isActive:!0,showDropdownIcon:!0,isLink:!1},t)}),u.jsx(a7,{container:e,children:u.jsx(xV,{side:"bottom",sideOffset:5,className:s_.navDropdownContent,style:{zIndex:Hf},children:Object.keys(Gk).map(n=>{const r=n;if(!(r==="Gossip"&&_i))return u.jsx(wV,{asChild:!0,children:u.jsx(Kk,{label:r,isActive:r===t,isLink:!0},r)},r)})})})]})}function ZBe(){const e=UBe();return m.useEffect(()=>{const t=n=>{n.code==="ArrowLeft"?e.navPrevLeaderSlot():n.code==="ArrowRight"&&e.navNextLeaderSlot()};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[e]),null}const toe="/assets/firedancer_logo-CrgwxzPk.svg",noe="/assets/frankendancer_logo-CHyfJ772.svg",qBe="_logo_1ml9x_1",GBe={logo:qBe};function YBe(){return u.jsx(Z0,{children:u.jsx(lp,{to:"/",children:u.jsx("img",{className:GBe.logo,width:cN,src:Vi?toe:noe,alt:hb})})})}const KBe="_cluster-container_7aa6c_1",XBe="_cluster_7aa6c_1",JBe="_cluster-name_7aa6c_19",U$={clusterContainer:KBe,cluster:XBe,clusterName:JBe},QBe=e=>m.createElement("svg",{width:12,height:12,viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{d:"M6.39844 3.39062V9.89844H11.6484V11.0742H0V9.89844H5.25V3.39062C4.72135 3.20833 4.36589 2.85286 4.18359 2.32422H2.32422L4.07422 6.39844C4.07422 6.72656 3.98307 7.02734 3.80078 7.30078C3.61849 7.55599 3.3724 7.76562 3.0625 7.92969C2.7526 8.07552 2.40625 8.14844 2.02344 8.14844C1.65885 8.14844 1.32161 8.07552 1.01172 7.92969C0.701823 7.76562 0.455729 7.55599 0.273438 7.30078C0.0911458 7.02734 0 6.72656 0 6.39844L1.75 2.32422H0.574219V1.14844H4.18359C4.29297 0.820312 4.49349 0.546875 4.78516 0.328125C5.09505 0.109375 5.44141 0 5.82422 0C6.20703 0 6.54427 0.109375 6.83594 0.328125C7.14583 0.546875 7.35547 0.820312 7.46484 1.14844H11.0742V2.32422H9.89844L11.6484 6.39844C11.6484 6.72656 11.5573 7.02734 11.375 7.30078C11.1927 7.55599 10.9466 7.76562 10.6367 7.92969C10.3268 8.07552 9.98958 8.14844 9.625 8.14844C9.24219 8.14844 8.89583 8.07552 8.58594 7.92969C8.27604 7.76562 8.02995 7.55599 7.84766 7.30078C7.66536 7.02734 7.57422 6.72656 7.57422 6.39844L9.32422 2.32422H7.46484C7.28255 2.85286 6.92708 3.20833 6.39844 3.39062ZM10.7188 6.39844L9.625 3.85547L8.53125 6.39844H10.7188ZM3.11719 6.39844L2.02344 3.85547L0.929688 6.39844H3.11719ZM5.82422 2.32422C5.98828 2.32422 6.125 2.26953 6.23438 2.16016C6.34375 2.03255 6.39844 1.89583 6.39844 1.75C6.39844 1.58594 6.34375 1.44922 6.23438 1.33984C6.125 1.21224 5.98828 1.14844 5.82422 1.14844C5.66016 1.14844 5.52344 1.21224 5.41406 1.33984C5.30469 1.44922 5.25 1.58594 5.25 1.75C5.25 1.89583 5.30469 2.03255 5.41406 2.16016C5.52344 2.26953 5.66016 2.32422 5.82422 2.32422Z"})),eUe=e=>m.createElement("svg",{width:7,height:11,viewBox:"0 0 7 11",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{d:"M2.48828 10.5H1.88672L2.48828 6.42578H0.4375C0.145833 6.42578 0.0729167 6.29818 0.21875 6.04297C0.273438 5.95182 0.282552 5.92448 0.246094 5.96094C1.17578 4.33854 2.30599 2.35156 3.63672 0H4.23828L3.63672 4.07422H5.6875C5.94271 4.07422 6.02474 4.20182 5.93359 4.45703L2.48828 10.5Z"})),tUe=e=>m.createElement("svg",{width:12,height:12,viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{d:"M4.18359 2.26953L3.41797 2.13281C2.9987 2.04167 2.64323 2.15104 2.35156 2.46094L0 4.8125L2.10547 5.71484C2.1237 5.67839 2.1875 5.54167 2.29688 5.30469C2.40625 5.06771 2.55208 4.77604 2.73438 4.42969C2.91667 4.08333 3.1263 3.72786 3.36328 3.36328C3.61849 2.98047 3.89193 2.61589 4.18359 2.26953ZM5.33203 8.50391L2.89844 6.07031C2.89844 6.07031 2.95312 5.95182 3.0625 5.71484C3.17188 5.47786 3.31771 5.17708 3.5 4.8125C3.70052 4.44792 3.92839 4.07422 4.18359 3.69141C4.45703 3.29036 4.7487 2.9349 5.05859 2.625C5.69661 1.98698 6.29818 1.49479 6.86328 1.14844C7.42839 0.783854 7.94792 0.519531 8.42188 0.355469C8.91406 0.191406 9.35156 0.0911458 9.73438 0.0546875C10.1172 0.0182292 10.4362 0.0182292 10.6914 0.0546875C10.9466 0.0911458 11.1289 0.127604 11.2383 0.164062C11.2747 0.273438 11.3112 0.455729 11.3477 0.710938C11.3841 0.966146 11.3841 1.28516 11.3477 1.66797C11.3112 2.05078 11.2109 2.48828 11.0469 2.98047C10.8828 3.45443 10.6185 3.97396 10.2539 4.53906C9.90755 5.10417 9.41536 5.70573 8.77734 6.34375C8.46745 6.65365 8.11198 6.94531 7.71094 7.21875C7.32812 7.47396 6.95443 7.70182 6.58984 7.90234C6.22526 8.08464 5.92448 8.23047 5.6875 8.33984C5.45052 8.44922 5.33203 8.50391 5.33203 8.50391ZM9.13281 7.21875L9.26953 7.98438C9.36068 8.40365 9.2513 8.75911 8.94141 9.05078L6.58984 11.4023L5.6875 9.29688C5.72396 9.27865 5.86068 9.21484 6.09766 9.10547C6.33464 8.99609 6.6263 8.85026 6.97266 8.66797C7.31901 8.48568 7.67448 8.27604 8.03906 8.03906C8.42188 7.78385 8.78646 7.51042 9.13281 7.21875ZM4.07422 9.07812C4.07422 8.75 3.99219 8.45833 3.82812 8.20312C3.68229 7.92969 3.47266 7.72005 3.19922 7.57422C2.94401 7.41016 2.65234 7.32812 2.32422 7.32812C2.08724 7.32812 1.85938 7.3737 1.64062 7.46484C1.42188 7.55599 1.23958 7.68359 1.09375 7.84766C0.947917 7.97526 0.820312 8.1849 0.710938 8.47656C0.601562 8.75 0.501302 9.0599 0.410156 9.40625C0.31901 9.73438 0.236979 10.0534 0.164062 10.3633C0.109375 10.6732 0.0638021 10.9284 0.0273438 11.1289C0.00911458 11.3112 0 11.4023 0 11.4023C0 11.4023 0.0911458 11.3932 0.273438 11.375C0.473958 11.3385 0.729167 11.293 1.03906 11.2383C1.34896 11.1654 1.66797 11.0833 1.99609 10.9922C2.34245 10.901 2.65234 10.8008 2.92578 10.6914C3.21745 10.582 3.42708 10.4544 3.55469 10.3086C3.71875 10.1628 3.84635 9.98047 3.9375 9.76172C4.02865 9.54297 4.07422 9.3151 4.07422 9.07812ZM6.39844 3.82812C6.39844 4.15625 6.50781 4.4388 6.72656 4.67578C6.96354 4.89453 7.24609 5.00391 7.57422 5.00391C7.90234 5.00391 8.17578 4.89453 8.39453 4.67578C8.63151 4.4388 8.75 4.15625 8.75 3.82812C8.75 3.5 8.63151 3.22656 8.39453 3.00781C8.17578 2.77083 7.90234 2.65234 7.57422 2.65234C7.24609 2.65234 6.96354 2.77083 6.72656 3.00781C6.50781 3.22656 6.39844 3.5 6.39844 3.82812Z"}));function roe({strategy:e,iconSize:t,tooltipContent:n}){const r=X(qy),i=m.useMemo(()=>({width:`${t}px`,height:`${t}px`,color:bk(r)}),[r,t]),o=m.useMemo(()=>{if(e===ld.balanced)return u.jsx(QBe,{...i});if(e===ld.perf)return u.jsx(eUe,{...i});if(e===ld.revenue)return u.jsx(tUe,{...i})},[e,i]);return n?u.jsx(ui,{content:n,children:u.jsx("div",{style:{lineHeight:0},children:o})}):o}const l_=2;function nUe(){const e=X(qy),t=X(uG),n=X(cG);if(!e&&!t)return null;let r=e;return e==="mainnet-beta"&&(r="mainnet"),u.jsxs(V,{width:`${fN+l_}px`,className:U$.clusterContainer,gap:"5px",ml:`-${l_}px`,p:`${l_}px 5px ${l_}px ${l_}px`,children:[u.jsxs(V,{className:U$.cluster,flexGrow:"1",direction:"column",align:"center",style:{background:bk(e)},children:[u.jsx(ui,{content:"Cluster the validator is joined to",children:u.jsx(q,{className:U$.clusterName,children:r})}),u.jsx(ui,{content:`Current validator software version. Commit Hash: ${n||"unknown"}`,children:u.jsxs(q,{children:["v",t]})})]}),u.jsx(iUe,{})]})}function rUe(){const e=X(qy),t=bk(e);return u.jsx("div",{style:{background:t,height:kb,width:"100%"}})}function iUe(){const e=X(s3),t=m.useMemo(()=>{if(e===ld.balanced)return"Transaction scheduler strategy: balanced";if(e===ld.perf)return"Transaction scheduler strategy: performance";if(e===ld.revenue)return"Transaction scheduler strategy: revenue"},[e]);if(e)return u.jsx(roe,{strategy:e,iconSize:12,tooltipContent:t})}const oUe="_nav-filter-toggle-group_148xa_1",aUe="_lg_148xa_47",sUe="_toggle-button_148xa_43",lUe="_floating_148xa_61",uUe="_mirror_148xa_75",cUe="_slot-nav-container_148xa_81",dUe="_nav-background_148xa_85",Ep={navFilterToggleGroup:oUe,lg:aUe,toggleButton:sUe,floating:lUe,mirror:uUe,slotNavContainer:cUe,navBackground:dUe},fUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M13 7h9v2h-9zm0 8h9v2h-9zm3-4h6v2h-6zm-3 1L8 7v4H2v2h6v4z"}));function Fg(){const e=Hn(Vte),[t,n]=Vl(Jze),r=Yk()==="Schedule",i=r||!t,o=r;return{isNarrowScreen:e,showNav:i,setIsNavCollapsed:n,showOnlyEpochBar:o,blurBackground:e&&!t&&!o,occupyRowWidth:o||!e&&!t}}function W$({isFloating:e,isLarge:t}){const{showNav:n,setIsNavCollapsed:r,showOnlyEpochBar:i}=Fg(),o=`${t?NRe:uN}px`;return i?u.jsx("div",{style:{height:o,width:o}}):u.jsx(nl,{size:"1",onClick:()=>r(a=>!a),className:Te(Ep.toggleButton,{[Ep.floating]:e}),style:{height:o,width:o},children:u.jsx(fUe,{className:Te({[Ep.lg]:t,[Ep.mirror]:n})})})}function ioe(){const{setIsNavCollapsed:e}=Fg();return u.jsx("div",{onClick:()=>e(!0),className:"blur",style:{zIndex:Hf-2}})}const hUe="_nav-background_1sjct_1",pUe={navBackground:hUe},mUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M18 13h-.68l-2 2h1.91L19 17H5l1.78-2h2.05l-2-2H6l-3 3v4c0 1.1.89 2 1.99 2H19a2 2 0 0 0 2-2v-4l-3-3zm-1-5.05-4.95 4.95-3.54-3.54 4.95-4.95L17 7.95zm-4.24-5.66L6.39 8.66a.996.996 0 0 0 0 1.41l4.95 4.95c.39.39 1.02.39 1.41 0l6.36-6.36a.996.996 0 0 0 0-1.41L14.16 2.3a.975.975 0 0 0-1.4-.01z"})),gUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"m11.99 18.54-7.37-5.73L3 14.07l9 7 9-7-1.63-1.27-7.38 5.74zM12 16l7.36-5.73L21 9l-9-7-9 7 1.63 1.27L12 16z"})),vUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"}),m.createElement("path",{d:"M22 7.47V5.35C20.05 4.77 16.56 4 12 4c-2.15 0-4.11.86-5.54 2.24.13-.85.4-2.4 1.01-4.24H5.35C4.77 3.95 4 7.44 4 12c0 2.15.86 4.11 2.24 5.54-.85-.14-2.4-.4-4.24-1.01v2.12C3.95 19.23 7.44 20 12 20c2.15 0 4.11-.86 5.54-2.24-.14.85-.4 2.4-1.01 4.24h2.12c.58-1.95 1.35-5.44 1.35-10 0-2.15-.86-4.11-2.24-5.54.85.13 2.4.4 4.24 1.01zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"})),yUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{fillRule:"evenodd",d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm6 10c0 3.31-2.69 6-6 6s-6-2.69-6-6h2c0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4v3L8 7l4-4v3c3.31 0 6 2.69 6 6z"})),bUe="_health-pane_hbx15_1",_Ue="_vertical_hbx15_14",xUe="_narrow_hbx15_18",wUe="_health-box_hbx15_22",kUe="_stacked_hbx15_36",SUe="_alerting_hbx15_44",CUe="_popover_hbx15_58",jUe="_title_hbx15_62",TUe="_status_hbx15_67",IUe="_content_hbx15_77",dl={healthPane:bUe,vertical:_Ue,narrow:xUe,healthBox:wUe,stacked:kUe,alerting:SUe,popover:CUe,title:jUe,status:TUe,content:IUe},ooe={forceUpdateIntervalMs:1500,halfLifeMs:5e3,initMinSamples:5};function Bg(e,t){const{forceUpdateIntervalMs:n,halfLifeMs:r,initMinSamples:i}={...ooe,...t},o=m.useMemo(()=>r/Math.log(2),[r]),[a,s]=m.useState(),l=m.useRef(),c=m.useRef(e);c.current=e;const d=m.useRef(),f=m.useRef(0),p=m.useRef(!1);p.current=a!==void 0;const v=m.useCallback(()=>{s(void 0),l.current=void 0,d.current=void 0,f.current=0,y.current!==void 0&&(clearTimeout(y.current),y.current=void 0)},[]),_=m.useCallback(b=>{b??(b=c.current);const w=performance.now();if(l.current===void 0){b!=null&&(l.current={value:b,tsMs:w});return}b??(b=l.current.value);const{value:x,tsMs:S}=l.current,C=w-S;if(!isFinite(C)||C<=0)return;const j=b-x;if(!isFinite(j)||j<0){v();return}if(l.current={value:b,tsMs:w},!p.current&&j>0){if(f.current+=1,!d.current){d.current={value:b,tsMs:w};return}if(f.current{const E=j/C*1e3;if(T===void 0)return E>0?E:T;const $=-Math.expm1(-C/o);return T*(1-$)+E*$})},[i,v,o]),y=m.useRef();return m.useEffect(()=>{if(y.current!==void 0&&(clearTimeout(y.current),y.current=void 0),_(e),n!==void 0){let b=function(){y.current=setTimeout(()=>{_(),b()},n)};b()}return()=>{y.current!==void 0&&(clearTimeout(y.current),y.current=void 0)}},[n,_,e]),{ema:a,reset:v}}function Ug(e,t=ooe){return Bg(e,t).ema??0}const V$=["turbine","gossip","tpu","repair","metrics"],aoe={Ingress:{turbine:64e6/8,gossip:1e9/8,tpu:1e8/8,repair:1e6/8,metrics:1e4/8,Total:118901e4/8},Egress:{turbine:1e9/8,gossip:1e9/8,tpu:1e6/8,repair:1e6/8,metrics:1e4/8,Total:205001e4/8}};function soe(e){return e?"Unhealthy":"Healthy"}function EUe(){const e=Hn("(max-width: 450px)"),t=Hn("(max-width: 390px)"),n=AUe(),r="Health Pane",i=Te(dl.healthPane,{[dl.narrow]:t});return e&&n.length>1?u.jsx(zg,{className:dl.popover,content:u.jsx(V,{direction:"column",gap:"8px",children:n.map(o=>u.jsx(loe,{...o},o.title))}),children:u.jsx("button",{"aria-label":r,className:Te(i,dl.vertical),children:n.map(o=>u.jsx(uoe,{...o,isStacked:!0},o.title))})}):u.jsx("div",{"aria-label":r,className:i,children:n.map(o=>u.jsx(uoe,{...o},o.title))})}function loe({title:e,description:t,isAlerting:n}){return u.jsxs(V,{direction:"column",gap:"4px",children:[u.jsxs(V,{gap:"5px",children:[u.jsx(q,{className:dl.title,children:e}),u.jsx(q,{className:Te(dl.status,{[dl.alerting]:n}),children:soe(n)})]}),u.jsx("div",{className:dl.content,children:u.jsx(q,{children:t})})]})}function uoe({title:e,description:t,Icon:n,isAlerting:r,isStacked:i=!1}){const o=`${e}: ${soe(r)}`,a=Te(dl.healthBox,{[dl.alerting]:r});return i?u.jsx("div",{"aria-label":o,className:Te(a,dl.stacked)}):u.jsx(zg,{className:dl.popover,content:u.jsx(loe,{title:e,description:t,isAlerting:r}),children:u.jsx("button",{"aria-label":o,className:a,children:u.jsx(n,{width:"75%"})})})}function NUe(){const e=X(zT),t=X(RT),n=X(Gy),r=e==="delinquent";return m.useMemo(()=>({title:"Vote Health",Icon:mUe,isAlerting:r,description:r?t==null||n==null?"Missing vote slot or turbine slot data.":`We haven't landed a vote since slot ${t} (${t-n}).`:"Our consensus votes are being received by other nodes normally."}),[r,t,n])}function $Ue(){const e=X(RG);return m.useMemo(()=>e?{title:"Bundle Health",Icon:gUe,isAlerting:e.status!=="connected",description:`Currently ${e.status} ${e.status==="disconnected"?"from":"to"} ${e.name} - ${e.url} (${e.ip})`}:null,[e])}const coe={forceUpdateIntervalMs:void 0},MUe=_i?coe:{forceUpdateIntervalMs:1e3,initMinSamples:2,halfLifeMs:1e3},LUe=.5,doe=_i?coe:{halfLifeMs:1e3};function RUe(){const e=X(Gy),t=e==null,{ema:n}=Bg(_i?null:e,MUe),r=t||n!=null&&n_i?null:{title:"Turbine Health",Icon:vUe,isAlerting:l,description:l?t?"Missing turbine slot data.":"We are receiving little to no block data from other nodes over Turbine.":"Block data is arriving normally over Turbine."},[l,t])}const OUe=V$.indexOf("turbine"),PUe=V$.indexOf("repair"),zUe=12;function DUe(){const e=X(Gy),t=X(fp);return m.useMemo(()=>{if(_i)return null;const n=e==null||t==null||e-t>zUe;return{title:"Replay Health",Icon:yUe,isAlerting:n,description:n?e==null||t==null?"Missing turbine slot or processed slot data.":`Replay is ${e-t} behind the rest of the cluster.`:"Replay is keeping up with the cluster."}},[e,t])}function AUe(){const e=NUe(),t=$Ue(),n=RUe(),r=DUe();return[e,t,n,r].filter(i=>i!=null)}function foe({isStartup:e}){const t=Hn("(max-width: 1218px)"),n=Hn("(max-width: 401px)"),r=Hn(`(max-width: ${Hte})`),{isNarrowScreen:i,blurBackground:o,showNav:a,showOnlyEpochBar:s}=Fg(),l=!a&&n,c="3px";return u.jsxs("div",{className:"sticky",style:{top:0,backgroundColor:"var(--color-background)",zIndex:Hf},children:[u.jsx(rUe,{}),u.jsxs(Mt,{px:"2",className:"app-width-container",children:[u.jsxs(V,{height:`${Sb}px`,align:"center",children:[u.jsxs(V,{className:Te({[pUe.navBackground]:a&&!s}),height:"100%",align:"center",gapX:l?c:`${ck}px`,pr:l?c:`${Vf}px`,ml:`${-dN}px`,pl:`${dN}px`,children:[!e&&i&&!a&&u.jsx(W$,{isLarge:!0}),u.jsx(YBe,{}),u.jsx(nUe,{})]}),u.jsxs(V,{position:"relative",gapX:l?c:`${lN}px`,height:"100%",flexGrow:"1",align:"center",justify:"between",pl:l?c:`${lN-Vf}px`,minWidth:"0",flexShrink:"100",children:[!e&&u.jsxs(V,{flexShrink:r?"1":"0",minWidth:"100px",children:[u.jsx(ZBe,{}),t?u.jsx(HBe,{}):u.jsx(VBe,{})]}),u.jsxs(V,{gap:i?"1":"3",justify:"end",align:"center",minWidth:"50px",flexGrow:"1",children:[u.jsx(TBe,{}),u.jsx(EUe,{}),u.jsxs(V,{gap:"1",direction:i?"column":"row",children:[u.jsx(FUe,{}),e?u.jsx(UUe,{}):u.jsx(BUe,{})]})]}),o&&u.jsx(ioe,{})]})]}),!e&&!i&&u.jsx("div",{style:{position:"relative"},children:u.jsx("div",{style:{position:"absolute",top:0,left:0},children:u.jsx(W$,{isFloating:!a})})})]})]})}function FUe(){return u.jsx(zg,{content:u.jsx(q,{size:"2",wrap:"wrap",children:u.jsx("a",{href:"https://db-ip.com",children:"IP Geolocation by DB-IP"})}),children:u.jsx(Zie,{color:"var(--gray-11)"})})}function BUe(){const e=X(ol),t=Ee(W3),n=Ee(tee);return e?u.jsx(nl,{ref:n,variant:"ghost",color:"gray",onClick:()=>t(!0),children:u.jsx(Gie,{})}):null}function UUe(){const e=X(ol),t=Ee(W3),n=X(tee),r=X(dre),i=m.useCallback(()=>{if(!n||!r)return;const{bottom:o,left:a,width:s,height:l}=n.getBoundingClientRect();r.style.setProperty("--transform-origin",`${Math.round(a+s/2)}px ${Math.round(o-l/2)}px`),t(!1)},[r,n,t]);return e?u.jsx(nl,{variant:"ghost",color:"gray",onClick:i,children:u.jsx(B$,{color:"white"})}):null}const WUe="_logo-container_1po46_1",VUe="_hidden_1po46_30",hoe={logoContainer:WUe,hidden:VUe};function HUe(){const e=X(Gu),[t,n]=m.useState(!0);return e&&t&&n(!1),u.jsx(V,{className:Te(hoe.logoContainer,{[hoe.hidden]:!t}),children:u.jsx("img",{src:ree,alt:"fd"})})}const ZUe="_secondary-color_2x9jp_1",qUe="_ellipsis_2x9jp_5",GUe="_card_2x9jp_11",YUe="_sparkline-card_2x9jp_19",KUe="_snapshot-tile-title_2x9jp_25",XUe="_snapshot-tile-busy_2x9jp_31",JUe="_sparkline-container_2x9jp_36",QUe="_bars-card_2x9jp_54",eWe="_card-header_2x9jp_62",tWe="_title_2x9jp_68",nWe="_accounts-rate_2x9jp_74",rWe="_total_2x9jp_79",iWe="_throughput_2x9jp_84",oWe="_with-prefix_2x9jp_87",aWe="_reading-card_2x9jp_95",sWe="_read-path-container_2x9jp_96",lWe="_read-path_2x9jp_96",uWe="_decompressing-card_2x9jp_124",cWe="_decompressing-card-left_2x9jp_127",dWe="_decompressing-card-right_2x9jp_137",fWe="_inserting-card_2x9jp_146",lr={secondaryColor:ZUe,ellipsis:qUe,card:GUe,sparklineCard:YUe,snapshotTileTitle:KUe,snapshotTileBusy:XUe,sparklineContainer:JUe,barsCard:QUe,cardHeader:eWe,title:tWe,accountsRate:nWe,total:rWe,throughput:iWe,withPrefix:oWe,readingCard:aWe,readPathContainer:sWe,readPath:lWe,decompressingCard:uWe,decompressingCardLeft:cWe,decompressingCardRight:dWe,insertingCard:fWe},hWe="_busy_1fw9w_1",pWe={busy:hWe};function Xk({busy:e,className:t}){const n=e!==void 0?Math.trunc(e*100):void 0;return u.jsx(V,{gap:"1",align:"end",children:u.jsxs(q,{className:t??pWe.busy,style:{color:`color-mix(in srgb, ${vN}, ${yN} ${n}%)`},children:[n??"-","%"]})})}function mWe(e){const t=new Set;let n=null,r=performance.now();function i(){const s=()=>{const l=performance.now();if(l-r>=e){const c=l-r;r=l,t.forEach(d=>d(l,c))}n=requestAnimationFrame(s)};n=requestAnimationFrame(s)}function o(){n!=null&&cancelAnimationFrame(n),n=null}function a(s){return t.add(s),n==null&&i(),()=>{t.delete(s),t.size||o()}}return{subscribeClock:a}}const Jk=2;function poe({isLive:e,tileCount:t,liveIdlePerTile:n,queryIdlePerTile:r}){var c;const i=m.useMemo(()=>new Array(t).fill(0),[t]),o=n==null?void 0:n.map(d=>d===-1?void 0:1-d),a=r==null?void 0:r.map(d=>{const f=d.filter(p=>p!==-1);if(f.length)return 1-rt.mean(f)}).filter(d=>d!==void 0),s=i.map((d,f)=>{const p=r==null?void 0:r.map(v=>1-v[f]).filter(v=>v!==void 0&&v<=1);if(p!=null&&p.length)return rt.mean(p)}),l=(c=e?o:s)==null?void 0:c.filter(d=>d!==void 0&&d<=1);return{avgBusy:l!=null&&l.length?rt.mean(l):void 0,aggQueryBusyPerTs:a,tileCountArr:i,liveBusyPerTile:o,busy:l}}function H$(e){const t=m.useRef();return e!==void 0&&(t.current=e),e??t.current}const moe=[0,1],gWe=150,goe=3,Z$=new Map;function voe(e,t,n){var i;const r=performance.now();for(e.push({value:n,ts:r});(((i=e[1])==null?void 0:i.ts)??0)+t{if(!(t!=null&&t.length))return;if(!vWe(t))return t;const w=performance.now(),x=n/(t.length-1),S=w-n;return t.map((C,j)=>({value:C,ts:S+j*x}))},[n,t]),{pxPerTick:p,width:v,windowMs:_}=m.useMemo(()=>{let w=n,x=i;const S=x/(w/s);return d||(w+=s*goe,x+=S*goe),{pxPerTick:S,width:x,windowMs:w}},[i,n,d,s]),y=m.useRef([{value:void 0,ts:performance.now()-_},{value:void 0,ts:performance.now()}]),b=m.useRef(!1);return m.useEffect(()=>{if(b.current||!(f!=null&&f.length))return;b.current=!0;const w=performance.now(),x=f[f.length-1].ts;y.current=f.map(({ts:S,value:C})=>({value:C,ts:w-(x-S)}))},[f]),m.useEffect(()=>{a||d||voe(y.current,_,e)},[d,_,a,e]),Qu(()=>{var x;if(a||d)return;const w=(x=y.current[y.current.length-1])==null?void 0:x.ts;w!==void 0&&performance.now()-w{function w(x,S){var $,A;const C=x.length;if(C===0){c([]);return}const j=S-_,T=v/_,E=new Array(C);for(let M=0;M({value:T,ts:x-(S-j)}));w(C,x)}else{Z$.has(s)||Z$.set(s,mWe(s));const x=Z$.get(s);if(x)return x.subscribeClock(S=>{w(y.current,S)})}},[r,f,d,s,v,_]),{scaledDataPoints:l,range:moe,pxPerTick:p,chartTickMs:s,isLive:!d}}const yWe="_range-label_14i5c_1",bWe="_top_14i5c_9",_We="_bottom_14i5c_13",xWe="_g-transform_14i5c_17",u_={rangeLabel:yWe,top:bWe,bottom:_We,gTransform:xWe},wWe=400*4,kWe=80;function c_({value:e,history:t,height:n=24,background:r,windowMs:i=wWe,strokeWidth:o=Jk,updateIntervalMs:a=kWe,tickMs:s}){const[l,{width:c}]=Ss(),{scaledDataPoints:d,range:f,pxPerTick:p,chartTickMs:v,isLive:_}=yoe({value:e,history:t,windowMs:i,height:n,width:c,updateIntervalMs:a,tickMs:s});return u.jsx(boe,{svgRef:l,scaledDataPoints:d,range:f,height:n,background:r,pxPerTick:p,tickMs:v,isLive:_,strokeWidth:o})}function boe({svgRef:e,scaledDataPoints:t,range:n=moe,showRange:r=!1,height:i,background:o=Tne,pxPerTick:a,tickMs:s,isLive:l,strokeWidth:c=Jk}){const d=m.useRef(null),f=m.useRef(null),p=m.useRef(null),v=m.useMemo(()=>{const y=n[1]-n[0],b=(i-c*2)/y,w=b*(n[1]-1);return[w+b,w]},[i,n,c]),_=m.useMemo(()=>t.map(({x:y,y:b})=>`${y},${b}`).join(" "),[t]);return m.useLayoutEffect(()=>{var b,w,x;const y=d.current;if(y)if(l){p.current||(p.current=y.animate([{transform:"translate3d(0px, 0, 0)"},{transform:"translate3d(0px, 0, 0)"}],{duration:s,easing:"linear",fill:"forwards"}),p.current.cancel()),p.current.finish(),(b=f.current)==null||b.setAttribute("points",_);const S=p.current.effect;S.setKeyframes([{transform:"translate3d(0px, 0, 0)"},{transform:`translate3d(${-a}px, 0, 0)`}]),S.updateTiming({duration:s,easing:"linear",fill:"forwards"}),p.current.currentTime=0,p.current.play()}else(w=f.current)==null||w.setAttribute("points",_),(x=p.current)==null||x.cancel()},[l,_,a,s]),u.jsxs(u.Fragment,{children:[u.jsxs("svg",{ref:e,xmlns:"http://www.w3.org/2000/svg",width:"100%",height:`${i}px`,fill:"none",style:{background:o},shapeRendering:"optimizeSpeed",children:[u.jsx("g",{ref:d,className:u_.gTransform,children:u.jsx("polyline",{ref:f,stroke:"url(#paint0_linear_2971_11300)",strokeWidth:c,strokeLinecap:"butt",vectorEffect:"non-scaling-stroke",pointerEvents:"none"})}),u.jsx("defs",{children:u.jsxs("linearGradient",{id:"paint0_linear_2971_11300",x1:"59.5",y1:v[0],x2:"59.5",y2:v[1],gradientUnits:"userSpaceOnUse",children:[u.jsx("stop",{stopColor:vN}),u.jsx("stop",{offset:"1",stopColor:yN})]})})]}),r&&u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:Te(u_.rangeLabel,u_.top),children:[Math.round(n[1]*100),"%"]}),u.jsxs("div",{className:Te(u_.rangeLabel,u_.bottom),children:[Math.round(n[0]*100),"%"]})]})]})}const Qk=15,_oe=Qk*6+1,xoe=Qk*15+1,SWe=6e3,CWe=50;function q$({title:e,tileType:t,isComplete:n}){const r=X(Nb),i=X(qze),{avgBusy:o}=poe({isLive:!0,tileCount:r[t],liveIdlePerTile:i==null?void 0:i[t]}),a=H$(o),{scaledDataPoints:s,range:l,pxPerTick:c,chartTickMs:d,isLive:f}=yoe({value:a,windowMs:SWe,height:_oe,width:xoe,updateIntervalMs:CWe,stopShifting:n});return u.jsxs(Ey,{className:Te(lr.card,lr.sparklineCard),children:[u.jsxs(V,{justify:"between",align:"center",children:[u.jsx(q,{className:lr.snapshotTileTitle,children:e}),u.jsx(Xk,{busy:a,className:lr.snapshotTileBusy})]}),u.jsx(V,{className:lr.sparklineContainer,style:{alignSelf:"center",width:`${xoe}px`,backgroundSize:`${Qk}px ${Qk}px`},children:u.jsx(boe,{scaledDataPoints:s,range:l,showRange:!0,height:_oe,background:"transparent",tickMs:d,pxPerTick:c,isLive:f})})]})}const jWe="_bars_1d34t_1",TWe={bars:jWe},IWe=2;function G$({value:e,max:t,barWidth:n=IWe}){const r=!t||!e?0:rt.clamp(e/t,0,1);return u.jsx("div",{className:TWe.bars,style:{"--bar-width":`${n}px`,"--bar-gap":`${n*1.5}px`,"--pct":r}})}function woe(e,t,n){const r=performance.now(),i=[...e,[t,r]];for(;i.length>2&&i[0]&&i[0][1]<=r-n;)i.shift();return i}function koe(e,t=500){const[n,r]=m.useState([]);m.useEffect(()=>{e!=null&&r(o=>woe(o,e,t))},[e,t]),Qu(()=>{r(o=>{const a=performance.now(),s=o[o.length-1];return s&&s[1]{r([])},[]);return{valuePerSecond:m.useMemo(()=>{if(!(n.length<=1))return 1e3*(n[n.length-1][0]-n[0][0])/(n[n.length-1][1]-n[0][1])},[n]),reset:i}}const EWe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M2 20h20v-4H2v4zm2-3h2v2H4v-2zM2 4v4h20V4H2zm4 3H4V5h2v2zm-4 7h20v-4H2v4zm2-3h2v2H4v-2z"}));function Y$({headerContent:e,footer:t,throughput:n,containerClassName:r,maxThroughput:i}){return u.jsxs(Ey,{className:Te(lr.card,lr.barsCard,r),children:[u.jsx(V,{justify:"between",align:"center",wrap:"wrap",gapX:"4",className:lr.cardHeader,children:e}),u.jsx(G$,{value:n??0,max:i}),t]})}function e6({value:e,unit:t}){return u.jsxs(u.Fragment,{children:[u.jsx(q,{children:e??"--"}),t&&u.jsxs(u.Fragment,{children:[" ",u.jsx(q,{className:lr.secondaryColor,children:t})]})]})}function K$({text:e}){return u.jsx(q,{className:Te(lr.title,lr.ellipsis),children:e})}function NWe({cumulativeAccounts:e}){const t=X(Gu),{valuePerSecond:n,reset:r}=koe(e,1e3);m.useEffect(()=>{r()},[t,r]);const i=m.useMemo(()=>{if(e!=null&&n==null)return"0";if(n!=null)return z$.format(n)},[n,e]);return u.jsx("div",{className:lr.accountsRate,children:u.jsx(e6,{value:i,unit:"Accounts / sec"})})}function X$({completed:e,total:t}){return u.jsxs("div",{className:lr.total,children:[u.jsx(e6,{value:e==null?void 0:e.value,unit:e==null?void 0:e.unit}),u.jsx(q,{children:" / "}),u.jsx(e6,{value:t==null?void 0:t.value,unit:t==null?void 0:t.unit})]})}function t6({prefix:e,throughput:t}){return u.jsxs("div",{className:Te(lr.throughput,{[lr.withPrefix]:!!e}),children:[e&&u.jsxs(q,{className:lr.secondaryColor,children:[e," "]}),u.jsx(e6,{value:t==null?void 0:t.value,unit:t==null?void 0:t.unit}),u.jsx(q,{className:lr.secondaryColor,children:"/sec"})]})}function $We({readPath:e}){return u.jsxs(V,{align:"center",gap:"10px",wrap:"nowrap",className:lr.readPathContainer,children:[u.jsx(EWe,{}),u.jsx(q,{className:Te(lr.readPath,lr.ellipsis),children:e})]})}function MWe({compressedCompleted:e,compressedTotal:t,readPath:n}){const r=X(Gu),{ema:i,reset:o}=Bg(e);m.useEffect(()=>{o()},[r,o]);const a=i==null?void 0:Da(i),s=e==null?void 0:Da(e),l=t==null?void 0:Da(t),c=m.useMemo(()=>u.jsx($We,{readPath:n}),[n]);return u.jsx(Y$,{containerClassName:lr.readingCard,headerContent:u.jsxs(u.Fragment,{children:[u.jsx(K$,{text:"Reading"}),u.jsx(X$,{completed:s,total:l}),u.jsx(t6,{throughput:a})]}),footer:c,throughput:i,maxThroughput:8e8})}function LWe({compressedCompleted:e,decompressedCompleted:t,compressedTotal:n}){const r=X(Gu),{ema:i,reset:o}=Bg(e),{ema:a,reset:s}=Bg(t);m.useEffect(()=>{o(),s()},[r,o,s]);const l=i==null?void 0:Da(i),c=a==null?void 0:Da(a),d=e==null?void 0:Da(e),f=n==null?void 0:Da(n);return u.jsx(Y$,{containerClassName:lr.decompressingCard,headerContent:u.jsxs(u.Fragment,{children:[u.jsxs(V,{flexGrow:"1",justify:"between",align:"center",className:lr.decompressingCardLeft,children:[u.jsx(K$,{text:"Decompressing"}),u.jsx(X$,{completed:d,total:f})]}),u.jsxs(V,{gapX:"30px",justify:"end",flexGrow:"1",className:lr.decompressingCardRight,children:[u.jsx(t6,{prefix:"Input",throughput:l}),u.jsx(t6,{prefix:"Output",throughput:c})]})]}),throughput:i,maxThroughput:8e8})}function RWe({decompressedThroughput:e,decompressedCompleted:t,decompressedTotal:n,cumulativeAccounts:r}){const i=e==null?void 0:Da(e),o=t==null?void 0:Da(t),a=n==null?void 0:Da(n);return u.jsx(Y$,{containerClassName:lr.insertingCard,headerContent:u.jsxs(u.Fragment,{children:[u.jsx(K$,{text:"Inserting"}),u.jsx(NWe,{cumulativeAccounts:r}),u.jsx(X$,{completed:o,total:a}),u.jsx(t6,{throughput:i})]}),throughput:e,maxThroughput:35e8})}const OWe="_secondary-text_1iskf_1",PWe="_phase-header-container_1iskf_5",zWe="_phase-name_1iskf_11",DWe="_no-wrap_1iskf_15",AWe="_complete-pct-container_1iskf_19",oh={secondaryText:OWe,phaseHeaderContainer:PWe,phaseName:zWe,noWrap:DWe,completePctContainer:AWe},FWe="_progress-bar_drgbz_1",BWe="_current_drgbz_14",UWe="_progressing-bar_drgbz_21",WWe="_gossip_drgbz_33",VWe="_complete_drgbz_35",HWe="_full-snapshot_drgbz_46",ZWe="_incr-snapshot_drgbz_59",qWe="_catching-up_drgbz_72",GWe="_supermajority_drgbz_85",bd={progressBar:FWe,current:BWe,progressingBar:UWe,gossip:WWe,complete:VWe,fullSnapshot:HWe,incrSnapshot:ZWe,catchingUp:qWe,supermajority:GWe},YWe={[wn.joining_gossip]:bd.gossip,[wn.loading_full_snapshot]:bd.fullSnapshot,[wn.loading_incremental_snapshot]:bd.incrSnapshot,[wn.catching_up]:bd.catchingUp,[wn.waiting_for_supermajority]:bd.supermajority,[wn.running]:""};function KWe({phaseCompleteFraction:e}){const[t,n]=m.useState(0);m.useEffect(()=>{n(rt.clamp(e,0,1))},[e]);const r=X(Gu),i=X(U3),o=X(eee);return u.jsx(V,{className:bd.progressBar,children:i.map(({phase:a,completionFraction:s})=>{if(a===wn.running)return;const l=a===r,c=`${s*100}%`;return u.jsx("div",{className:Te(YWe[a],{[bd.current]:l,[bd.complete]:o.has(a)}),style:{width:c},children:l&&u.jsx("div",{className:bd.progressingBar,style:{transform:`scaleX(${t})`}})},a)})})}const XWe={[wn.joining_gossip]:"Joining Gossip",[wn.loading_full_snapshot]:"Loading Full Snapshot",[wn.loading_incremental_snapshot]:"Loading Incremental Snapshot",[wn.catching_up]:"Catching Up",[wn.waiting_for_supermajority]:"Waiting for Supermajority",[wn.running]:"Running"};function JWe(){const e=Bie(1e3);return u.jsx(q,{children:e==null?"--":Mze(e)})}function J$({phaseCompleteFraction:e,overallCompleteFraction:t,remainingSeconds:n,showLoadingIcon:r=!1}){const i=X(Gu),[o,a]=m.useState(),s=Ua(d=>{const f=d==null?void 0:Math.max(Math.round(d),0);a(f)},1e3);m.useEffect(()=>{s(n)},[s,n]);const l=m.useMemo(()=>{if(o!=null)return Sp(fn.fromObject({seconds:o}).rescale(),{showOnlyTwoSignificantUnits:!0})},[o]),c=rt.clamp(Math.round(t*100),0,100);return i?u.jsxs(Mt,{flexShrink:"0",className:oh.phaseHeaderContainer,children:[u.jsxs(V,{justify:"between",mt:"7",mb:"2",gapX:"8px",wrap:"wrap",children:[u.jsxs("span",{className:oh.noWrap,children:[u.jsx(q,{className:oh.secondaryText,children:"Elapsed "}),u.jsx(JWe,{})]}),u.jsxs("span",{children:[u.jsxs(q,{className:oh.phaseName,children:[XWe[i],"... "]}),l&&u.jsxs("span",{className:oh.noWrap,children:[u.jsx(q,{className:oh.secondaryText,children:"Remaining "}),u.jsxs(q,{style:{display:"inline-block",minWidth:"120px"},children:["~",l]})]})]}),u.jsxs(q,{className:oh.completePctContainer,children:[u.jsx(q,{className:oh.secondaryText,children:"Complete "}),c,"%",r&&u.jsx(Iy,{size:"3",ml:"8px"})]})]}),u.jsx(KWe,{phaseCompleteFraction:e})]}):null}function Soe(e){const t=X(QQ),n=X(U3),r=X(eee);return m.useMemo(()=>t?rt.sum(n.map(i=>i===t?i.completionFraction*rt.clamp(e,0,1):r.has(i.phase)?i.completionFraction:0)):0,[r,e,t,n])}const QWe="5",Coe="26px";function eVe(e){const{loading_full_snapshot_total_bytes_compressed:t,loading_full_snapshot_read_bytes_compressed:n,loading_full_snapshot_decompress_bytes_compressed:r,loading_full_snapshot_decompress_bytes_decompressed:i,loading_full_snapshot_insert_bytes_decompressed:o,loading_full_snapshot_read_path:a,loading_full_snapshot_insert_accounts:s,loading_incremental_snapshot_total_bytes_compressed:l,loading_incremental_snapshot_read_bytes_compressed:c,loading_incremental_snapshot_decompress_bytes_compressed:d,loading_incremental_snapshot_decompress_bytes_decompressed:f,loading_incremental_snapshot_insert_bytes_decompressed:p,loading_incremental_snapshot_read_path:v,loading_incremental_snapshot_insert_accounts:_}=e,y=e.phase===wn.loading_full_snapshot||!l?{totalCompressedBytes:t,readCompressedBytes:n,readPath:a,decompressCompressedBytes:r,decompressDecompressedBytes:i,insertDecompressedBytes:o,insertAccounts:s}:{totalCompressedBytes:l,readCompressedBytes:c,readPath:v,decompressCompressedBytes:d,decompressDecompressedBytes:f,insertDecompressedBytes:p,insertAccounts:_},b=y.insertDecompressedBytes&&y.decompressCompressedBytes&&y.decompressDecompressedBytes?y.insertDecompressedBytes*(y.decompressCompressedBytes/y.decompressDecompressedBytes):0,w=y.totalCompressedBytes&&y.decompressCompressedBytes&&y.decompressDecompressedBytes?y.totalCompressedBytes*y.decompressDecompressedBytes/y.decompressCompressedBytes:0;return{...y,insertCompressedBytes:b,totalDecompressedBytes:w}}function tVe(){const e=X(Hl),t=(e==null?void 0:e.phase)===wn.loading_incremental_snapshot,n=Hn("(max-width: 560px)"),r=n?"wrap":"nowrap",i=n?Coe:QWe,o=e?eVe(e):void 0,{ema:a,reset:s}=Bg(o==null?void 0:o.insertDecompressedBytes);m.useEffect(()=>{s()},[e==null?void 0:e.phase,s]);const{totalCompressedBytes:l,readCompressedBytes:c,readPath:d,decompressCompressedBytes:f,decompressDecompressedBytes:p,insertDecompressedBytes:v,insertAccounts:_,insertCompressedBytes:y,totalDecompressedBytes:b}=o??{},w=a==null||b==null||v==null?void 0:Math.round((b-v)/a),x=Math.min(l&&y?y/l:0,1),S=Soe(x);if(!(!e||!o))return u.jsxs(u.Fragment,{children:[u.jsx(J$,{phaseCompleteFraction:x,overallCompleteFraction:S,remainingSeconds:w}),u.jsxs(V,{mt:"52px",direction:"column",gap:Coe,className:yd.startupContentIndentation,children:[u.jsxs(V,{className:lr.rowContainer,gap:i,wrap:r,children:[u.jsx(MWe,{compressedCompleted:c,compressedTotal:l,readPath:d}),u.jsx(q$,{title:"CPU Utilization",tileType:"snapld",isComplete:t&&!!c&&c===l})]}),u.jsxs(V,{className:lr.rowContainer,gap:i,wrap:r,children:[u.jsx(LWe,{compressedCompleted:f,decompressedCompleted:p,compressedTotal:l}),u.jsx(q$,{title:"CPU Utilization",tileType:"snapdc",isComplete:t&&!!f&&f===l})]}),u.jsxs(V,{className:lr.rowContainer,gap:i,wrap:r,children:[u.jsx(RWe,{decompressedThroughput:a,decompressedCompleted:v,decompressedTotal:b,cumulativeAccounts:_}),u.jsx(q$,{title:"CPU Utilization",tileType:"snapin",isComplete:t&&!!y&&y===l})]})]})]})}const nVe=!0,Hi="u-",rVe="uplot",iVe=Hi+"hz",oVe=Hi+"vt",aVe=Hi+"title",sVe=Hi+"wrap",lVe=Hi+"under",uVe=Hi+"over",cVe=Hi+"axis",Np=Hi+"off",dVe=Hi+"select",fVe=Hi+"cursor-x",hVe=Hi+"cursor-y",pVe=Hi+"cursor-pt",mVe=Hi+"legend",gVe=Hi+"live",vVe=Hi+"inline",yVe=Hi+"series",bVe=Hi+"marker",joe=Hi+"label",_Ve=Hi+"value",d_="width",f_="height",h_="top",Toe="bottom",Wg="left",Q$="right",eM="#000",Ioe=eM+"0",tM="mousemove",Eoe="mousedown",nM="mouseup",Noe="mouseenter",$oe="mouseleave",Moe="dblclick",xVe="resize",wVe="scroll",Loe="change",n6="dppxchange",rM="--",Vg=typeof window<"u",iM=Vg?document:null,Hg=Vg?window:null,kVe=Vg?navigator:null;let Fn,r6;function oM(){let e=devicePixelRatio;Fn!=e&&(Fn=e,r6&&lM(Loe,r6,oM),r6=matchMedia(`(min-resolution: ${Fn-.001}dppx) and (max-resolution: ${Fn+.001}dppx)`),$p(Loe,r6,oM),Hg.dispatchEvent(new CustomEvent(n6)))}function Cs(e,t){if(t!=null){let n=e.classList;!n.contains(t)&&n.add(t)}}function aM(e,t){let n=e.classList;n.contains(t)&&n.remove(t)}function zr(e,t,n){e.style[t]=n+"px"}function ou(e,t,n,r){let i=iM.createElement(e);return t!=null&&Cs(i,t),n==null||n.insertBefore(i,r),i}function fl(e,t){return ou("div",e,t)}const Roe=new WeakMap;function ec(e,t,n,r,i){let o="translate("+t+"px,"+n+"px)",a=Roe.get(e);o!=a&&(e.style.transform=o,Roe.set(e,o),t<0||n<0||t>r||n>i?Cs(e,Np):aM(e,Np))}const Ooe=new WeakMap;function Poe(e,t,n){let r=t+n,i=Ooe.get(e);r!=i&&(Ooe.set(e,r),e.style.background=t,e.style.borderColor=n)}const zoe=new WeakMap;function Doe(e,t,n,r){let i=t+""+n,o=zoe.get(e);i!=o&&(zoe.set(e,i),e.style.height=n+"px",e.style.width=t+"px",e.style.marginLeft=r?-t/2+"px":0,e.style.marginTop=r?-n/2+"px":0)}const sM={passive:!0},SVe={...sM,capture:!0};function $p(e,t,n,r){t.addEventListener(e,n,r?SVe:sM)}function lM(e,t,n,r){t.removeEventListener(e,n,sM)}Vg&&oM();function au(e,t,n,r){let i;n=n||0,r=r||t.length-1;let o=r<=2147483647;for(;r-n>1;)i=o?n+r>>1:Ts((n+r)/2),t[i]{let i=-1,o=-1;for(let a=n;a<=r;a++)if(e(t[a])){i=a;break}for(let a=r;a>=n;a--)if(e(t[a])){o=a;break}return[i,o]}}const Foe=e=>e!=null,Boe=e=>e!=null&&e>0,i6=Aoe(Foe),CVe=Aoe(Boe);function jVe(e,t,n,r=0,i=!1){let o=i?CVe:i6,a=i?Boe:Foe;[t,n]=o(e,t,n);let s=e[t],l=e[t];if(t>-1)if(r==1)s=e[t],l=e[n];else if(r==-1)s=e[n],l=e[t];else for(let c=t;c<=n;c++){let d=e[c];a(d)&&(dl&&(l=d))}return[s??yr,l??-yr]}function o6(e,t,n,r){let i=Voe(e),o=Voe(t);e==t&&(i==-1?(e*=n,t/=n):(e/=n,t*=n));let a=n==10?_d:Hoe,s=i==1?Ts:hl,l=o==1?hl:Ts,c=s(a(Zi(e))),d=l(a(Zi(t))),f=Zg(n,c),p=Zg(n,d);return n==10&&(c<0&&(f=br(f,-c)),d<0&&(p=br(p,-d))),r||n==2?(e=f*i,t=p*o):(e=Joe(e,f),t=l6(t,p)),[e,t]}function uM(e,t,n,r){let i=o6(e,t,n,r);return e==0&&(i[0]=0),t==0&&(i[1]=0),i}const cM=.1,Uoe={mode:3,pad:cM},p_={pad:0,soft:null,mode:0},TVe={min:p_,max:p_};function a6(e,t,n,r){return u6(n)?Woe(e,t,n):(p_.pad=n,p_.soft=r?0:null,p_.mode=r?3:0,Woe(e,t,TVe))}function Ln(e,t){return e??t}function IVe(e,t,n){for(t=Ln(t,0),n=Ln(n,e.length-1);t<=n;){if(e[t]!=null)return!0;t++}return!1}function Woe(e,t,n){let r=n.min,i=n.max,o=Ln(r.pad,0),a=Ln(i.pad,0),s=Ln(r.hard,-yr),l=Ln(i.hard,yr),c=Ln(r.soft,yr),d=Ln(i.soft,-yr),f=Ln(r.mode,0),p=Ln(i.mode,0),v=t-e,_=_d(v),y=pa(Zi(e),Zi(t)),b=_d(y),w=Zi(b-_);(v<1e-24||w>10)&&(v=0,(e==0||t==0)&&(v=1e-24,f==2&&c!=yr&&(o=0),p==2&&d!=-yr&&(a=0)));let x=v||y||1e3,S=_d(x),C=Zg(10,Ts(S)),j=x*(v==0?e==0?.1:1:o),T=br(Joe(e-j,C/10),24),E=e>=c&&(f==1||f==3&&T<=c||f==2&&T>=c)?c:yr,$=pa(s,T=E?E:su(E,T)),A=x*(v==0?t==0?.1:1:a),M=br(l6(t+A,C/10),24),P=t<=d&&(p==1||p==3&&M>=d||p==2&&M<=d)?d:-yr,te=su(l,M>P&&t<=P?P:pa(P,M));return $==te&&$==0&&(te=100),[$,te]}const EVe=new Intl.NumberFormat(Vg?kVe.language:"en-US"),dM=e=>EVe.format(e),js=Math,s6=js.PI,Zi=js.abs,Ts=js.floor,qi=js.round,hl=js.ceil,su=js.min,pa=js.max,Zg=js.pow,Voe=js.sign,_d=js.log10,Hoe=js.log2,NVe=(e,t=1)=>js.sinh(e)*t,fM=(e,t=1)=>js.asinh(e/t),yr=1/0;function Zoe(e){return(_d((e^e>>31)-(e>>31))|0)+1}function hM(e,t,n){return su(pa(e,t),n)}function qoe(e){return typeof e=="function"}function bn(e){return qoe(e)?e:()=>e}const $Ve=()=>{},Goe=e=>e,Yoe=(e,t)=>t,MVe=e=>null,Koe=e=>!0,Xoe=(e,t)=>e==t,LVe=/\.\d*?(?=9{6,}|0{6,})/gm,Mp=e=>{if(eae(e)||ah.has(e))return e;const t=`${e}`,n=t.match(LVe);if(n==null)return e;let r=n[0].length-1;if(t.indexOf("e-")!=-1){let[i,o]=t.split("e");return+`${Mp(i)}e${o}`}return br(e,r)};function Lp(e,t){return Mp(br(Mp(e/t))*t)}function l6(e,t){return Mp(hl(Mp(e/t))*t)}function Joe(e,t){return Mp(Ts(Mp(e/t))*t)}function br(e,t=0){if(eae(e))return e;let n=10**t,r=e*n*(1+Number.EPSILON);return qi(r)/n}const ah=new Map;function Qoe(e){return((""+e).split(".")[1]||"").length}function m_(e,t,n,r){let i=[],o=r.map(Qoe);for(let a=t;a=0?0:s)+(a>=o[c]?0:o[c]),p=e==10?d:br(d,f);i.push(p),ah.set(p,f)}}return i}const g_={},pM=[],qg=[null,null],sh=Array.isArray,eae=Number.isInteger,RVe=e=>e===void 0;function tae(e){return typeof e=="string"}function u6(e){let t=!1;if(e!=null){let n=e.constructor;t=n==null||n==Object}return t}function OVe(e){return e!=null&&typeof e=="object"}const PVe=Object.getPrototypeOf(Uint8Array),nae="__proto__";function Gg(e,t=u6){let n;if(sh(e)){let r=e.find(i=>i!=null);if(sh(r)||t(r)){n=Array(e.length);for(let i=0;io){for(i=a-1;i>=0&&e[i]==null;)e[i--]=null;for(i=a+1;ia-s)],i=r[0].length,o=new Map;for(let a=0;a"u"?e=>Promise.resolve().then(e):queueMicrotask;function WVe(e){let t=e[0],n=t.length,r=Array(n);for(let o=0;ot[o]-t[a]);let i=[];for(let o=0;o=r&&e[i]==null;)i--;if(i<=r)return!0;const o=pa(1,Ts((i-r+1)/t));for(let a=e[r],s=r+o;s<=i;s+=o){const l=e[s];if(l!=null){if(l<=a)return!1;a=l}}return!0}const rae=["January","February","March","April","May","June","July","August","September","October","November","December"],iae=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function oae(e){return e.slice(0,3)}const ZVe=iae.map(oae),qVe=rae.map(oae),GVe={MMMM:rae,MMM:qVe,WWWW:iae,WWW:ZVe};function v_(e){return(e<10?"0":"")+e}function YVe(e){return(e<10?"00":e<100?"0":"")+e}const KVe={YYYY:e=>e.getFullYear(),YY:e=>(e.getFullYear()+"").slice(2),MMMM:(e,t)=>t.MMMM[e.getMonth()],MMM:(e,t)=>t.MMM[e.getMonth()],MM:e=>v_(e.getMonth()+1),M:e=>e.getMonth()+1,DD:e=>v_(e.getDate()),D:e=>e.getDate(),WWWW:(e,t)=>t.WWWW[e.getDay()],WWW:(e,t)=>t.WWW[e.getDay()],HH:e=>v_(e.getHours()),H:e=>e.getHours(),h:e=>{let t=e.getHours();return t==0?12:t>12?t-12:t},AA:e=>e.getHours()>=12?"PM":"AM",aa:e=>e.getHours()>=12?"pm":"am",a:e=>e.getHours()>=12?"p":"a",mm:e=>v_(e.getMinutes()),m:e=>e.getMinutes(),ss:e=>v_(e.getSeconds()),s:e=>e.getSeconds(),fff:e=>YVe(e.getMilliseconds())};function mM(e,t){t=t||GVe;let n=[],r=/\{([a-z]+)\}|[^{]+/gi,i;for(;i=r.exec(e);)n.push(i[0][0]=="{"?KVe[i[1]]:i[0]);return o=>{let a="";for(let s=0;se%1==0,c6=[1,2,2.5,5],QVe=m_(10,-32,0,c6),sae=m_(10,0,32,c6),eHe=sae.filter(aae),Rp=QVe.concat(sae),gM=` -`,lae="{YYYY}",uae=gM+lae,cae="{M}/{D}",y_=gM+cae,d6=y_+"/{YY}",dae="{aa}",tHe="{h}:{mm}",Yg=tHe+dae,fae=gM+Yg,hae=":{ss}",Zn=null;function pae(e){let t=e*1e3,n=t*60,r=n*60,i=r*24,o=i*30,a=i*365,s=(e==1?m_(10,0,3,c6).filter(aae):m_(10,-3,0,c6)).concat([t,t*5,t*10,t*15,t*30,n,n*5,n*10,n*15,n*30,r,r*2,r*3,r*4,r*6,r*8,r*12,i,i*2,i*3,i*4,i*5,i*6,i*7,i*8,i*9,i*10,i*15,o,o*2,o*3,o*4,o*6,a,a*2,a*5,a*10,a*25,a*50,a*100]);const l=[[a,lae,Zn,Zn,Zn,Zn,Zn,Zn,1],[i*28,"{MMM}",uae,Zn,Zn,Zn,Zn,Zn,1],[i,cae,uae,Zn,Zn,Zn,Zn,Zn,1],[r,"{h}"+dae,d6,Zn,y_,Zn,Zn,Zn,1],[n,Yg,d6,Zn,y_,Zn,Zn,Zn,1],[t,hae,d6+" "+Yg,Zn,y_+" "+Yg,Zn,fae,Zn,1],[e,hae+".{fff}",d6+" "+Yg,Zn,y_+" "+Yg,Zn,fae,Zn,1]];function c(d){return(f,p,v,_,y,b)=>{let w=[],x=y>=a,S=y>=o&&y=i?i:y,A=Ts(v)-Ts(j),M=E+A+l6(j-E,$);w.push(M);let P=d(M),te=P.getHours()+P.getMinutes()/n+P.getSeconds()/r,Z=y/r,O=f.axes[p]._space,J=b/O;for(;M=br(M+y,e==1?0:3),!(M>_);)if(Z>1){let D=Ts(br(te+Z,6))%24,Y=d(M).getHours()-D;Y>1&&(Y=-1),M-=Y*r,te=(te+Z)%24;let F=w[w.length-1];br((M-F)/y,3)*J>=.7&&w.push(M)}else w.push(M)}return w}}return[s,l,c]}const[nHe,rHe,iHe]=pae(1),[oHe,aHe,sHe]=pae(.001);m_(2,-53,53,[1]);function mae(e,t){return e.map(n=>n.map((r,i)=>i==0||i==8||r==null?r:t(i==1||n[8]==0?r:n[1]+r)))}function gae(e,t){return(n,r,i,o,a)=>{let s=t.find(_=>a>=_[0])||t[t.length-1],l,c,d,f,p,v;return r.map(_=>{let y=e(_),b=y.getFullYear(),w=y.getMonth(),x=y.getDate(),S=y.getHours(),C=y.getMinutes(),j=y.getSeconds(),T=b!=l&&s[2]||w!=c&&s[3]||x!=d&&s[4]||S!=f&&s[5]||C!=p&&s[6]||j!=v&&s[7]||s[1];return l=b,c=w,d=x,f=S,p=C,v=j,T(y)})}}function lHe(e,t){let n=mM(t);return(r,i,o,a,s)=>i.map(l=>n(e(l)))}function vM(e,t,n){return new Date(e,t,n)}function vae(e,t){return t(e)}const uHe="{YYYY}-{MM}-{DD} {h}:{mm}{aa}";function yae(e,t){return(n,r,i,o)=>o==null?rM:t(e(r))}function cHe(e,t){let n=e.series[t];return n.width?n.stroke(e,t):n.points.width?n.points.stroke(e,t):null}function dHe(e,t){return e.series[t].fill(e,t)}const fHe={show:!0,live:!0,isolate:!1,mount:$Ve,markers:{show:!0,width:2,stroke:cHe,fill:dHe,dash:"solid"},idx:null,idxs:null,values:[]};function hHe(e,t){let n=e.cursor.points,r=fl(),i=n.size(e,t);zr(r,d_,i),zr(r,f_,i);let o=i/-2;zr(r,"marginLeft",o),zr(r,"marginTop",o);let a=n.width(e,t,i);return a&&zr(r,"borderWidth",a),r}function pHe(e,t){let n=e.series[t].points;return n._fill||n._stroke}function mHe(e,t){let n=e.series[t].points;return n._stroke||n._fill}function gHe(e,t){return e.series[t].points.size}const yM=[0,0];function vHe(e,t,n){return yM[0]=t,yM[1]=n,yM}function f6(e,t,n,r=!0){return i=>{i.button==0&&(!r||i.target==t)&&n(i)}}function bM(e,t,n,r=!0){return i=>{(!r||i.target==t)&&n(i)}}const yHe={show:!0,x:!0,y:!0,lock:!1,move:vHe,points:{one:!1,show:hHe,size:gHe,width:0,stroke:mHe,fill:pHe},bind:{mousedown:f6,mouseup:f6,click:f6,dblclick:f6,mousemove:bM,mouseleave:bM,mouseenter:bM},drag:{setScale:!0,x:!0,y:!1,dist:0,uni:null,click:(e,t)=>{t.stopPropagation(),t.stopImmediatePropagation()},_x:!1,_y:!1},focus:{dist:(e,t,n,r,i)=>r-i,prox:-1,bias:0},hover:{skip:[void 0],prox:null,bias:0},left:-10,top:-10,idx:null,dataIdx:null,idxs:null,event:null},bae={show:!0,stroke:"rgba(0,0,0,0.07)",width:2},_M=Ri({},bae,{filter:Yoe}),_ae=Ri({},_M,{size:10}),xae=Ri({},bae,{show:!1}),xM='12px system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',wae="bold "+xM,kae=1.5,Sae={show:!0,scale:"x",stroke:eM,space:50,gap:5,alignTo:1,size:50,labelGap:0,labelSize:30,labelFont:wae,side:2,grid:_M,ticks:_ae,border:xae,font:xM,lineGap:kae,rotate:0},bHe="Value",_He="Time",Cae={show:!0,scale:"x",auto:!1,sorted:1,min:yr,max:-yr,idxs:[]};function xHe(e,t,n,r,i){return t.map(o=>o==null?"":dM(o))}function wHe(e,t,n,r,i,o,a){let s=[],l=ah.get(i)||0;n=a?n:br(l6(n,i),l);for(let c=n;c<=r;c=br(c+i,l))s.push(Object.is(c,-0)?0:c);return s}function wM(e,t,n,r,i,o,a){const s=[],l=e.scales[e.axes[t].scale].log,c=l==10?_d:Hoe,d=Ts(c(n));i=Zg(l,d),l==10&&(i=Rp[au(i,Rp)]);let f=n,p=i*l;l==10&&(p=Rp[au(p,Rp)]);do s.push(f),f=f+i,l==10&&!ah.has(f)&&(f=br(f,ah.get(i))),f>=p&&(i=f,p=i*l,l==10&&(p=Rp[au(p,Rp)]));while(f<=r);return s}function kHe(e,t,n,r,i,o,a){let s=e.scales[e.axes[t].scale].asinh,l=r>s?wM(e,t,pa(s,n),r,i):[s],c=r>=0&&n<=0?[0]:[];return(n<-s?wM(e,t,pa(s,-r),-n,i):[s]).reverse().map(d=>-d).concat(c,l)}const jae=/./,SHe=/[12357]/,CHe=/[125]/,Tae=/1/,kM=(e,t,n,r)=>e.map((i,o)=>t==4&&i==0||o%r==0&&n.test(i.toExponential()[i<0?1:0])?i:null);function jHe(e,t,n,r,i){let o=e.axes[n],a=o.scale,s=e.scales[a],l=e.valToPos,c=o._space,d=l(10,a),f=l(9,a)-d>=c?jae:l(7,a)-d>=c?SHe:l(5,a)-d>=c?CHe:Tae;if(f==Tae){let p=Zi(l(1,a)-d);if(pi,$ae={show:!0,auto:!0,sorted:0,gaps:Nae,alpha:1,facets:[Ri({},Eae,{scale:"x"}),Ri({},Eae,{scale:"y"})]},Mae={scale:"y",auto:!0,sorted:0,show:!0,spanGaps:!1,gaps:Nae,alpha:1,points:{show:NHe,filter:null},values:null,min:yr,max:-yr,idxs:[],path:null,clip:null};function $He(e,t,n,r,i){return n/10}const Lae={time:nVe,auto:!0,distr:1,log:10,asinh:1,min:null,max:null,dir:1,ori:0},MHe=Ri({},Lae,{time:!1,ori:1}),Rae={};function Oae(e,t){let n=Rae[e];return n||(n={key:e,plots:[],sub(r){n.plots.push(r)},unsub(r){n.plots=n.plots.filter(i=>i!=r)},pub(r,i,o,a,s,l,c){for(let d=0;d{let w=a.pxRound;const x=c.dir*(c.ori==0?1:-1),S=c.ori==0?Xg:Jg;let C,j;x==1?(C=n,j=r):(C=r,j=n);let T=w(f(s[C],c,y,v)),E=w(p(l[C],d,b,_)),$=w(f(s[j],c,y,v)),A=w(p(o==1?d.max:d.min,d,b,_)),M=new Path2D(i);return S(M,$,A),S(M,T,A),S(M,T,E),M})}function h6(e,t,n,r,i,o){let a=null;if(e.length>0){a=new Path2D;const s=t==0?g6:TM;let l=n;for(let f=0;fp[0]){let v=p[0]-l;v>0&&s(a,l,r,v,r+o),l=p[1]}}let c=n+i-l,d=10;c>0&&s(a,l,r-d/2,c,r+o+d)}return a}function RHe(e,t,n){let r=e[e.length-1];r&&r[0]==t?r[1]=n:e.push([t,n])}function jM(e,t,n,r,i,o,a){let s=[],l=e.length;for(let c=i==1?n:r;c>=n&&c<=r;c+=i)if(t[c]===null){let d=c,f=c;if(i==1)for(;++c<=r&&t[c]===null;)f=c;else for(;--c>=n&&t[c]===null;)f=c;let p=o(e[d]),v=f==d?p:o(e[f]),_=d-i;p=a<=0&&_>=0&&_=0&&y>=0&&y=p&&s.push([p,v])}return s}function Pae(e){return e==0?Goe:e==1?qi:t=>Lp(t,e)}function zae(e){let t=e==0?p6:m6,n=e==0?(i,o,a,s,l,c)=>{i.arcTo(o,a,s,l,c)}:(i,o,a,s,l,c)=>{i.arcTo(a,o,l,s,c)},r=e==0?(i,o,a,s,l)=>{i.rect(o,a,s,l)}:(i,o,a,s,l)=>{i.rect(a,o,l,s)};return(i,o,a,s,l,c=0,d=0)=>{c==0&&d==0?r(i,o,a,s,l):(c=su(c,s/2,l/2),d=su(d,s/2,l/2),t(i,o+c,a),n(i,o+s,a,o+s,a+l,c),n(i,o+s,a+l,o,a+l,d),n(i,o,a+l,o,a,d),n(i,o,a,o+s,a,c),i.closePath())}}const p6=(e,t,n)=>{e.moveTo(t,n)},m6=(e,t,n)=>{e.moveTo(n,t)},Xg=(e,t,n)=>{e.lineTo(t,n)},Jg=(e,t,n)=>{e.lineTo(n,t)},g6=zae(0),TM=zae(1),Dae=(e,t,n,r,i,o)=>{e.arc(t,n,r,i,o)},Aae=(e,t,n,r,i,o)=>{e.arc(n,t,r,i,o)},Fae=(e,t,n,r,i,o,a)=>{e.bezierCurveTo(t,n,r,i,o,a)},Bae=(e,t,n,r,i,o,a)=>{e.bezierCurveTo(n,t,i,r,a,o)};function Uae(e){return(t,n,r,i,o)=>Op(t,n,(a,s,l,c,d,f,p,v,_,y,b)=>{let{pxRound:w,points:x}=a,S,C;c.ori==0?(S=p6,C=Dae):(S=m6,C=Aae);const j=br(x.width*Fn,3);let T=(x.size-x.width)/2*Fn,E=br(T*2,3),$=new Path2D,A=new Path2D,{left:M,top:P,width:te,height:Z}=t.bbox;g6(A,M-E,P-E,te+E*2,Z+E*2);const O=J=>{if(l[J]!=null){let D=w(f(s[J],c,y,v)),Y=w(p(l[J],d,b,_));S($,D+T,Y),C($,D,Y,T,0,s6*2)}};if(o)o.forEach(O);else for(let J=r;J<=i;J++)O(J);return{stroke:j>0?$:null,fill:$,clip:A,flags:Kg|SM}})}function Wae(e){return(t,n,r,i,o,a)=>{r!=i&&(o!=r&&a!=r&&e(t,n,r),o!=i&&a!=i&&e(t,n,i),e(t,n,a))}}const OHe=Wae(Xg),PHe=Wae(Jg);function Vae(e){const t=Ln(e==null?void 0:e.alignGaps,0);return(n,r,i,o)=>Op(n,r,(a,s,l,c,d,f,p,v,_,y,b)=>{[i,o]=i6(l,i,o);let w=a.pxRound,x=te=>w(f(te,c,y,v)),S=te=>w(p(te,d,b,_)),C,j;c.ori==0?(C=Xg,j=OHe):(C=Jg,j=PHe);const T=c.dir*(c.ori==0?1:-1),E={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:Kg},$=E.stroke;let A=!1;if(o-i>=y*4){let te=U=>n.posToVal(U,c.key,!0),Z=null,O=null,J,D,Y,F=x(s[T==1?i:o]),H=x(s[i]),ee=x(s[o]),ce=te(T==1?H+1:ee-1);for(let U=T==1?i:o;U>=i&&U<=o;U+=T){let ae=s[U],je=(T==1?aece)?F:x(ae),me=l[U];je==F?me!=null?(D=me,Z==null?(C($,je,S(D)),J=Z=O=D):DO&&(O=D)):me===null&&(A=!0):(Z!=null&&j($,F,S(Z),S(O),S(J),S(D)),me!=null?(D=me,C($,je,S(D)),Z=O=J=D):(Z=O=null,me===null&&(A=!0)),F=je,ce=te(F+T))}Z!=null&&Z!=O&&Y!=F&&j($,F,S(Z),S(O),S(J),S(D))}else for(let te=T==1?i:o;te>=i&&te<=o;te+=T){let Z=l[te];Z===null?A=!0:Z!=null&&C($,x(s[te]),S(Z))}let[M,P]=CM(n,r);if(a.fill!=null||M!=0){let te=E.fill=new Path2D($),Z=a.fillTo(n,r,a.min,a.max,M),O=S(Z),J=x(s[i]),D=x(s[o]);T==-1&&([D,J]=[J,D]),C(te,D,O),C(te,J,O)}if(!a.spanGaps){let te=[];A&&te.push(...jM(s,l,i,o,T,x,t)),E.gaps=te=a.gaps(n,r,i,o,te),E.clip=h6(te,c.ori,v,_,y,b)}return P!=0&&(E.band=P==2?[xd(n,r,i,o,$,-1),xd(n,r,i,o,$,1)]:xd(n,r,i,o,$,P)),E})}function zHe(e){const t=Ln(e.align,1),n=Ln(e.ascDesc,!1),r=Ln(e.alignGaps,0),i=Ln(e.extend,!1);return(o,a,s,l)=>Op(o,a,(c,d,f,p,v,_,y,b,w,x,S)=>{[s,l]=i6(f,s,l);let C=c.pxRound,{left:j,width:T}=o.bbox,E=ee=>C(_(ee,p,x,b)),$=ee=>C(y(ee,v,S,w)),A=p.ori==0?Xg:Jg;const M={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:Kg},P=M.stroke,te=p.dir*(p.ori==0?1:-1);let Z=$(f[te==1?s:l]),O=E(d[te==1?s:l]),J=O,D=O;i&&t==-1&&(D=j,A(P,D,Z)),A(P,O,Z);for(let ee=te==1?s:l;ee>=s&&ee<=l;ee+=te){let ce=f[ee];if(ce==null)continue;let U=E(d[ee]),ae=$(ce);t==1?A(P,U,Z):A(P,J,ae),A(P,U,ae),Z=ae,J=U}let Y=J;i&&t==1&&(Y=j+T,A(P,Y,Z));let[F,H]=CM(o,a);if(c.fill!=null||F!=0){let ee=M.fill=new Path2D(P),ce=c.fillTo(o,a,c.min,c.max,F),U=$(ce);A(ee,Y,U),A(ee,D,U)}if(!c.spanGaps){let ee=[];ee.push(...jM(d,f,s,l,te,E,r));let ce=c.width*Fn/2,U=n||t==1?ce:-ce,ae=n||t==-1?-ce:ce;ee.forEach(je=>{je[0]+=U,je[1]+=ae}),M.gaps=ee=c.gaps(o,a,s,l,ee),M.clip=h6(ee,p.ori,b,w,x,S)}return H!=0&&(M.band=H==2?[xd(o,a,s,l,P,-1),xd(o,a,s,l,P,1)]:xd(o,a,s,l,P,H)),M})}function Hae(e,t,n,r,i,o,a=yr){if(e.length>1){let s=null;for(let l=0,c=1/0;l{}),{fill:f,stroke:p}=c;return(v,_,y,b)=>Op(v,_,(w,x,S,C,j,T,E,$,A,M,P)=>{let te=w.pxRound,Z=n,O=r*Fn,J=s*Fn,D=l*Fn,Y,F;C.ori==0?[Y,F]=o(v,_):[F,Y]=o(v,_);const H=C.dir*(C.ori==0?1:-1);let ee=C.ori==0?g6:TM,ce=C.ori==0?d:(De,Dt,pn,Yn,fr,Kn,wr)=>{d(De,Dt,pn,fr,Yn,wr,Kn)},U=Ln(v.bands,pM).find(De=>De.series[0]==_),ae=U!=null?U.dir:0,je=w.fillTo(v,_,w.min,w.max,ae),me=te(E(je,j,P,A)),ke,he,ue,re=M,ge=te(w.width*Fn),$e=!1,pe=null,ye=null,Se=null,Ce=null;f!=null&&(ge==0||p!=null)&&($e=!0,pe=f.values(v,_,y,b),ye=new Map,new Set(pe).forEach(De=>{De!=null&&ye.set(De,new Path2D)}),ge>0&&(Se=p.values(v,_,y,b),Ce=new Map,new Set(Se).forEach(De=>{De!=null&&Ce.set(De,new Path2D)})));let{x0:Be,size:Ge}=c;if(Be!=null&&Ge!=null){Z=1,x=Be.values(v,_,y,b),Be.unit==2&&(x=x.map(Dt=>v.posToVal($+Dt*M,C.key,!0)));let De=Ge.values(v,_,y,b);Ge.unit==2?he=De[0]*M:he=T(De[0],C,M,$)-T(0,C,M,$),re=Hae(x,S,T,C,M,$,re),ue=re-he+O}else re=Hae(x,S,T,C,M,$,re),ue=re*a+O,he=re-ue;ue<1&&(ue=0),ge>=he/2&&(ge=0),ue<5&&(te=Goe);let xt=ue>0,St=re-ue-(xt?ge:0);he=te(hM(St,D,J)),ke=(Z==0?he/2:Z==H?0:he)-Z*H*((Z==0?O/2:0)+(xt?ge/2:0));const ut={stroke:null,fill:null,clip:null,band:null,gaps:null,flags:0},ct=$e?null:new Path2D;let bt=null;if(U!=null)bt=v.data[U.series[1]];else{let{y0:De,y1:Dt}=c;De!=null&&Dt!=null&&(S=Dt.values(v,_,y,b),bt=De.values(v,_,y,b))}let Qe=Y*he,Ke=F*he;for(let De=H==1?y:b;De>=y&&De<=b;De+=H){let Dt=S[De];if(Dt==null)continue;if(bt!=null){let tr=bt[De]??0;if(Dt-tr==0)continue;me=E(tr,j,P,A)}let pn=C.distr!=2||c!=null?x[De]:De,Yn=T(pn,C,M,$),fr=E(Ln(Dt,je),j,P,A),Kn=te(Yn-ke),wr=te(pa(fr,me)),Pn=te(su(fr,me)),$r=wr-Pn;if(Dt!=null){let tr=Dt<0?Ke:Qe,kr=Dt<0?Qe:Ke;$e?(ge>0&&Se[De]!=null&&ee(Ce.get(Se[De]),Kn,Pn+Ts(ge/2),he,pa(0,$r-ge),tr,kr),pe[De]!=null&&ee(ye.get(pe[De]),Kn,Pn+Ts(ge/2),he,pa(0,$r-ge),tr,kr)):ee(ct,Kn,Pn+Ts(ge/2),he,pa(0,$r-ge),tr,kr),ce(v,_,De,Kn-ge/2,Pn,he+ge,$r)}}return ge>0?ut.stroke=$e?Ce:ct:$e||(ut._fill=w.width==0?w._fill:w._stroke??w._fill,ut.width=0),ut.fill=$e?ye:ct,ut})}function AHe(e,t){const n=Ln(t==null?void 0:t.alignGaps,0);return(r,i,o,a)=>Op(r,i,(s,l,c,d,f,p,v,_,y,b,w)=>{[o,a]=i6(c,o,a);let x=s.pxRound,S=Y=>x(p(Y,d,b,_)),C=Y=>x(v(Y,f,w,y)),j,T,E;d.ori==0?(j=p6,E=Xg,T=Fae):(j=m6,E=Jg,T=Bae);const $=d.dir*(d.ori==0?1:-1);let A=S(l[$==1?o:a]),M=A,P=[],te=[];for(let Y=$==1?o:a;Y>=o&&Y<=a;Y+=$)if(c[Y]!=null){let F=l[Y],H=S(F);P.push(M=H),te.push(C(c[Y]))}const Z={stroke:e(P,te,j,E,T,x),fill:null,clip:null,band:null,gaps:null,flags:Kg},O=Z.stroke;let[J,D]=CM(r,i);if(s.fill!=null||J!=0){let Y=Z.fill=new Path2D(O),F=s.fillTo(r,i,s.min,s.max,J),H=C(F);E(Y,M,H),E(Y,A,H)}if(!s.spanGaps){let Y=[];Y.push(...jM(l,c,o,a,$,S,n)),Z.gaps=Y=s.gaps(r,i,o,a,Y),Z.clip=h6(Y,d.ori,_,y,b,w)}return D!=0&&(Z.band=D==2?[xd(r,i,o,a,O,-1),xd(r,i,o,a,O,1)]:xd(r,i,o,a,O,D)),Z})}function FHe(e){return AHe(BHe,e)}function BHe(e,t,n,r,i,o){const a=e.length;if(a<2)return null;const s=new Path2D;if(n(s,e[0],t[0]),a==2)r(s,e[1],t[1]);else{let l=Array(a),c=Array(a-1),d=Array(a-1),f=Array(a-1);for(let p=0;p0!=c[p]>0?l[p]=0:(l[p]=3*(f[p-1]+f[p])/((2*f[p]+f[p-1])/c[p-1]+(f[p]+2*f[p-1])/c[p]),isFinite(l[p])||(l[p]=0));l[a-1]=c[a-2];for(let p=0;p{jn.pxRatio=Fn}));const UHe=Vae(),WHe=Uae();function qae(e,t,n,r){return(r?[e[0],e[1]].concat(e.slice(2)):[e[0]].concat(e.slice(1))).map((i,o)=>EM(i,o,t,n))}function VHe(e,t){return e.map((n,r)=>r==0?{}:Ri({},t,n))}function EM(e,t,n,r){return Ri({},t==0?n:r,e)}function Gae(e,t,n){return t==null?qg:[t,n]}const HHe=Gae;function ZHe(e,t,n){return t==null?qg:a6(t,n,cM,!0)}function Yae(e,t,n,r){return t==null?qg:o6(t,n,e.scales[r].log,!1)}const qHe=Yae;function Kae(e,t,n,r){return t==null?qg:uM(t,n,e.scales[r].log,!1)}const GHe=Kae;function YHe(e,t,n,r,i){let o=pa(Zoe(e),Zoe(t)),a=t-e,s=au(i/r*a,n);do{let l=n[s],c=r*l/a;if(c>=i&&o+(l<5?ah.get(l):0)<=17)return[l,c]}while(++s(t=qi((n=+i)*Fn))+"px"),[e,t,n]}function KHe(e){e.show&&[e.font,e.labelFont].forEach(t=>{let n=br(t[2]*Fn,1);t[0]=t[0].replace(/[0-9.]+px/,n+"px"),t[1]=n})}function jn(e,t,n){const r={mode:Ln(e.mode,1)},i=r.mode;function o(N,z,K,Q){let de=z.valToPct(N);return Q+K*(z.dir==-1?1-de:de)}function a(N,z,K,Q){let de=z.valToPct(N);return Q+K*(z.dir==-1?de:1-de)}function s(N,z,K,Q){return z.ori==0?o(N,z,K,Q):a(N,z,K,Q)}r.valToPosH=o,r.valToPosV=a;let l=!1;r.status=0;const c=r.root=fl(rVe);if(e.id!=null&&(c.id=e.id),Cs(c,e.class),e.title){let N=fl(aVe,c);N.textContent=e.title}const d=ou("canvas"),f=r.ctx=d.getContext("2d"),p=fl(sVe,c);$p("click",p,N=>{N.target===_&&(pr!=Wd||Cr!=Vd)&&Ai.click(r,N)},!0);const v=r.under=fl(lVe,p);p.appendChild(d);const _=r.over=fl(uVe,p);e=Gg(e);const y=+Ln(e.pxAlign,1),b=Pae(y);(e.plugins||[]).forEach(N=>{N.opts&&(e=N.opts(r,e)||e)});const w=e.ms||.001,x=r.series=i==1?qae(e.series||[],Cae,Mae,!1):VHe(e.series||[null],$ae),S=r.axes=qae(e.axes||[],Sae,Iae,!0),C=r.scales={},j=r.bands=e.bands||[];j.forEach(N=>{N.fill=bn(N.fill||null),N.dir=Ln(N.dir,-1)});const T=i==2?x[1].facets[0].scale:x[0].scale,E={axes:Kt,series:z1},$=(e.drawOrder||["axes","series"]).map(N=>E[N]);function A(N){const z=N.distr==3?K=>_d(K>0?K:N.clamp(r,K,N.min,N.max,N.key)):N.distr==4?K=>fM(K,N.asinh):N.distr==100?K=>N.fwd(K):K=>K;return K=>{let Q=z(K),{_min:de,_max:xe}=N,Me=xe-de;return(Q-de)/Me}}function M(N){let z=C[N];if(z==null){let K=(e.scales||g_)[N]||g_;if(K.from!=null){M(K.from);let Q=Ri({},C[K.from],K,{key:N});Q.valToPct=A(Q),C[N]=Q}else{z=C[N]=Ri({},N==T?Lae:MHe,K),z.key=N;let Q=z.time,de=z.range,xe=sh(de);if((N!=T||i==2&&!Q)&&(xe&&(de[0]==null||de[1]==null)&&(de={min:de[0]==null?Uoe:{mode:1,hard:de[0],soft:de[0]},max:de[1]==null?Uoe:{mode:1,hard:de[1],soft:de[1]}},xe=!1),!xe&&u6(de))){let Me=de;de=(Fe,Ve,et)=>Ve==null?qg:a6(Ve,et,Me)}z.range=bn(de||(Q?HHe:N==T?z.distr==3?qHe:z.distr==4?GHe:Gae:z.distr==3?Yae:z.distr==4?Kae:ZHe)),z.auto=bn(xe?!1:z.auto),z.clamp=bn(z.clamp||$He),z._min=z._max=null,z.valToPct=A(z)}}}M("x"),M("y"),i==1&&x.forEach(N=>{M(N.scale)}),S.forEach(N=>{M(N.scale)});for(let N in e.scales)M(N);const P=C[T],te=P.distr;let Z,O;P.ori==0?(Cs(c,iVe),Z=o,O=a):(Cs(c,oVe),Z=a,O=o);const J={};for(let N in C){let z=C[N];(z.min!=null||z.max!=null)&&(J[N]={min:z.min,max:z.max},z.min=z.max=null)}const D=e.tzDate||(N=>new Date(qi(N/w))),Y=e.fmtDate||mM,F=w==1?iHe(D):sHe(D),H=gae(D,mae(w==1?rHe:aHe,Y)),ee=yae(D,vae(uHe,Y)),ce=[],U=r.legend=Ri({},fHe,e.legend),ae=r.cursor=Ri({},yHe,{drag:{y:i==2}},e.cursor),je=U.show,me=ae.show,ke=U.markers;U.idxs=ce,ke.width=bn(ke.width),ke.dash=bn(ke.dash),ke.stroke=bn(ke.stroke),ke.fill=bn(ke.fill);let he,ue,re,ge=[],$e=[],pe,ye=!1,Se={};if(U.live){const N=x[1]?x[1].values:null;ye=N!=null,pe=ye?N(r,1,0):{_:0};for(let z in pe)Se[z]=rM}if(je)if(he=ou("table",mVe,c),re=ou("tbody",null,he),U.mount(r,he),ye){ue=ou("thead",null,he,re);let N=ou("tr",null,ue);ou("th",null,N);for(var Ce in pe)ou("th",joe,N).textContent=Ce}else Cs(he,vVe),U.live&&Cs(he,gVe);const Be={show:!0},Ge={show:!1};function xt(N,z){if(z==0&&(ye||!U.live||i==2))return qg;let K=[],Q=ou("tr",yVe,re,re.childNodes[z]);Cs(Q,N.class),N.show||Cs(Q,Np);let de=ou("th",null,Q);if(ke.show){let Fe=fl(bVe,de);if(z>0){let Ve=ke.width(r,z);Ve&&(Fe.style.border=Ve+"px "+ke.dash(r,z)+" "+ke.stroke(r,z)),Fe.style.background=ke.fill(r,z)}}let xe=fl(joe,de);N.label instanceof HTMLElement?xe.appendChild(N.label):xe.textContent=N.label,z>0&&(ke.show||(xe.style.color=N.width>0?ke.stroke(r,z):ke.fill(r,z)),ut("click",de,Fe=>{if(ae._lock)return;pi(Fe);let Ve=x.indexOf(N);if((Fe.ctrlKey||Fe.metaKey)!=U.isolate){let et=x.some((ot,st)=>st>0&&st!=Ve&&ot.show);x.forEach((ot,st)=>{st>0&&Ja(st,et?st==Ve?Be:Ge:Be,!0,Sn.setSeries)})}else Ja(Ve,{show:!N.show},!0,Sn.setSeries)},!1),$o&&ut(Noe,de,Fe=>{ae._lock||(pi(Fe),Ja(x.indexOf(N),Cc,!0,Sn.setSeries))},!1));for(var Me in pe){let Fe=ou("td",_Ve,Q);Fe.textContent="--",K.push(Fe)}return[Q,K]}const St=new Map;function ut(N,z,K,Q=!0){const de=St.get(z)||{},xe=ae.bind[N](r,z,K,Q);xe&&($p(N,z,de[N]=xe),St.set(z,de))}function ct(N,z,K){const Q=St.get(z)||{};for(let de in Q)(N==null||de==N)&&(lM(de,z,Q[de]),delete Q[de]);N==null&&St.delete(z)}let bt=0,Qe=0,Ke=0,De=0,Dt=0,pn=0,Yn=Dt,fr=pn,Kn=Ke,wr=De,Pn=0,$r=0,tr=0,kr=0;r.bbox={};let ni=!1,uo=!1,Ki=!1,No=!1,Os=!1,zn=!1;function co(N,z,K){(K||N!=r.width||z!=r.height)&&_a(N,z),In(!1),Ki=!0,uo=!0,Bd()}function _a(N,z){r.width=bt=Ke=N,r.height=Qe=De=z,Dt=pn=0,qa(),kl();let K=r.bbox;Pn=K.left=Lp(Dt*Fn,.5),$r=K.top=Lp(pn*Fn,.5),tr=K.width=Lp(Ke*Fn,.5),kr=K.height=Lp(De*Fn,.5)}const yc=3;function bc(){let N=!1,z=0;for(;!N;){z++;let K=ze(z),Q=vt(z);N=z==yc||K&&Q,N||(_a(r.width,r.height),uo=!0)}}function _c({width:N,height:z}){co(N,z)}r.setSize=_c;function qa(){let N=!1,z=!1,K=!1,Q=!1;S.forEach((de,xe)=>{if(de.show&&de._show){let{side:Me,_size:Fe}=de,Ve=Me%2,et=de.label!=null?de.labelSize:0,ot=Fe+et;ot>0&&(Ve?(Ke-=ot,Me==3?(Dt+=ot,Q=!0):K=!0):(De-=ot,Me==0?(pn+=ot,N=!0):z=!0))}}),ri[0]=N,ri[1]=K,ri[2]=z,ri[3]=Q,Ke-=mi[1]+mi[3],Dt+=mi[3],De-=mi[2]+mi[0],pn+=mi[0]}function kl(){let N=Dt+Ke,z=pn+De,K=Dt,Q=pn;function de(xe,Me){switch(xe){case 1:return N+=Me,N-Me;case 2:return z+=Me,z-Me;case 3:return K-=Me,K+Me;case 0:return Q-=Me,Q+Me}}S.forEach((xe,Me)=>{if(xe.show&&xe._show){let Fe=xe.side;xe._pos=de(Fe,xe._size),xe.label!=null&&(xe._lpos=de(Fe,xe.labelSize))}})}if(ae.dataIdx==null){let N=ae.hover,z=N.skip=new Set(N.skip??[]);z.add(void 0);let K=N.prox=bn(N.prox),Q=N.bias??(N.bias=0);ae.dataIdx=(de,xe,Me,Fe)=>{if(xe==0)return Me;let Ve=Me,et=K(de,xe,Me,Fe)??yr,ot=et>=0&&et0;)z.has(Bt[mt])||(an=mt);if(Q==0||Q==1)for(mt=Me;Tt==null&&mt++et&&(Ve=null);return Ve}}const pi=N=>{ae.event=N};ae.idxs=ce,ae._lock=!1;let Bn=ae.points;Bn.show=bn(Bn.show),Bn.size=bn(Bn.size),Bn.stroke=bn(Bn.stroke),Bn.width=bn(Bn.width),Bn.fill=bn(Bn.fill);const Mr=r.focus=Ri({},e.focus||{alpha:.3},ae.focus),$o=Mr.prox>=0,fo=$o&&Bn.one;let Lr=[],ho=[],xa=[];function it(N,z){let K=Bn.show(r,z);if(K instanceof HTMLElement)return Cs(K,pVe),Cs(K,N.class),ec(K,-10,-10,Ke,De),_.insertBefore(K,Lr[z]),K}function Yt(N,z){if(i==1||z>0){let K=i==1&&C[N.scale].time,Q=N.value;N.value=K?tae(Q)?yae(D,vae(Q,Y)):Q||ee:Q||IHe,N.label=N.label||(K?_He:bHe)}if(fo||z>0){N.width=N.width==null?1:N.width,N.paths=N.paths||UHe||MVe,N.fillTo=bn(N.fillTo||LHe),N.pxAlign=+Ln(N.pxAlign,y),N.pxRound=Pae(N.pxAlign),N.stroke=bn(N.stroke||null),N.fill=bn(N.fill||null),N._stroke=N._fill=N._paths=N._focus=null;let K=EHe(pa(1,N.width),1),Q=N.points=Ri({},{size:K,width:pa(1,K*.2),stroke:N.stroke,space:K*2,paths:WHe,_stroke:null,_fill:null},N.points);Q.show=bn(Q.show),Q.filter=bn(Q.filter),Q.fill=bn(Q.fill),Q.stroke=bn(Q.stroke),Q.paths=bn(Q.paths),Q.pxAlign=N.pxAlign}if(je){let K=xt(N,z);ge.splice(z,0,K[0]),$e.splice(z,0,K[1]),U.values.push(null)}if(me){ce.splice(z,0,null);let K=null;fo?z==0&&(K=it(N,z)):z>0&&(K=it(N,z)),Lr.splice(z,0,K),ho.splice(z,0,0),xa.splice(z,0,0)}Ni("addSeries",z)}function nr(N,z){z=z??x.length,N=i==1?EM(N,z,Cae,Mae):EM(N,z,{},$ae),x.splice(z,0,N),Yt(x[z],z)}r.addSeries=nr;function ht(N){if(x.splice(N,1),je){U.values.splice(N,1),$e.splice(N,1);let z=ge.splice(N,1)[0];ct(null,z.firstChild),z.remove()}me&&(ce.splice(N,1),Lr.splice(N,1)[0].remove(),ho.splice(N,1),xa.splice(N,1)),Ni("delSeries",N)}r.delSeries=ht;const ri=[!1,!1,!1,!1];function Ga(N,z){if(N._show=N.show,N.show){let K=N.side%2,Q=C[N.scale];Q==null&&(N.scale=K?x[1].scale:T,Q=C[N.scale]);let de=Q.time;N.size=bn(N.size),N.space=bn(N.space),N.rotate=bn(N.rotate),sh(N.incrs)&&N.incrs.forEach(Me=>{!ah.has(Me)&&ah.set(Me,Qoe(Me))}),N.incrs=bn(N.incrs||(Q.distr==2?eHe:de?w==1?nHe:oHe:Rp)),N.splits=bn(N.splits||(de&&Q.distr==1?F:Q.distr==3?wM:Q.distr==4?kHe:wHe)),N.stroke=bn(N.stroke),N.grid.stroke=bn(N.grid.stroke),N.ticks.stroke=bn(N.ticks.stroke),N.border.stroke=bn(N.border.stroke);let xe=N.values;N.values=sh(xe)&&!sh(xe[0])?bn(xe):de?sh(xe)?gae(D,mae(xe,Y)):tae(xe)?lHe(D,xe):xe||H:xe||xHe,N.filter=bn(N.filter||(Q.distr>=3&&Q.log==10?jHe:Q.distr==3&&Q.log==2?THe:Yoe)),N.font=Xae(N.font),N.labelFont=Xae(N.labelFont),N._size=N.size(r,null,z,0),N._space=N._rotate=N._incrs=N._found=N._splits=N._values=null,N._size>0&&(ri[z]=!0,N._el=fl(cVe,p))}}function Ya(N,z,K,Q){let[de,xe,Me,Fe]=K,Ve=z%2,et=0;return Ve==0&&(Fe||xe)&&(et=z==0&&!de||z==2&&!Me?qi(Sae.size/3):0),Ve==1&&(de||Me)&&(et=z==1&&!xe||z==3&&!Fe?qi(Iae.size/2):0),et}const Ko=r.padding=(e.padding||[Ya,Ya,Ya,Ya]).map(N=>bn(Ln(N,Ya))),mi=r._padding=Ko.map((N,z)=>N(r,z,ri,0));let Un,hr=null,Sr=null;const Ka=i==1?x[0].idxs:null;let po=null,mo=!1;function Wr(N,z){if(t=N??[],r.data=r._data=t,i==2){Un=0;for(let K=1;K=0,zn=!0,Bd()}}r.setData=Wr;function wa(){mo=!0;let N,z;i==1&&(Un>0?(hr=Ka[0]=0,Sr=Ka[1]=Un-1,N=t[0][hr],z=t[0][Sr],te==2?(N=hr,z=Sr):N==z&&(te==3?[N,z]=o6(N,N,P.log,!1):te==4?[N,z]=uM(N,N,P.log,!1):P.time?z=N+qi(86400/w):[N,z]=a6(N,z,cM,!0))):(hr=Ka[0]=N=null,Sr=Ka[1]=z=null)),Mo(T,N,z)}let ji,gi,Ps,go,Xo,Pd,zd,bu,Xi,ii;function xc(N,z,K,Q,de,xe){N??(N=Ioe),K??(K=pM),Q??(Q="butt"),de??(de=Ioe),xe??(xe="round"),N!=ji&&(f.strokeStyle=ji=N),de!=gi&&(f.fillStyle=gi=de),z!=Ps&&(f.lineWidth=Ps=z),xe!=Xo&&(f.lineJoin=Xo=xe),Q!=Pd&&(f.lineCap=Pd=Q),K!=go&&f.setLineDash(go=K)}function _u(N,z,K,Q){z!=gi&&(f.fillStyle=gi=z),N!=zd&&(f.font=zd=N),K!=bu&&(f.textAlign=bu=K),Q!=Xi&&(f.textBaseline=Xi=Q)}function wc(N,z,K,Q,de=0){if(Q.length>0&&N.auto(r,mo)&&(z==null||z.min==null)){let xe=Ln(hr,0),Me=Ln(Sr,Q.length-1),Fe=K.min==null?jVe(Q,xe,Me,de,N.distr==3):[K.min,K.max];N.min=su(N.min,K.min=Fe[0]),N.max=pa(N.max,K.max=Fe[1])}}const kc={min:null,max:null};function Sl(){for(let Q in C){let de=C[Q];J[Q]==null&&(de.min==null||J[T]!=null&&de.auto(r,mo))&&(J[Q]=kc)}for(let Q in C){let de=C[Q];J[Q]==null&&de.from!=null&&J[de.from]!=null&&(J[Q]=kc)}J[T]!=null&&In(!0);let N={};for(let Q in J){let de=J[Q];if(de!=null){let xe=N[Q]=Gg(C[Q],OVe);if(de.min!=null)Ri(xe,de);else if(Q!=T||i==2)if(Un==0&&xe.from==null){let Me=xe.range(r,null,null,Q);xe.min=Me[0],xe.max=Me[1]}else xe.min=yr,xe.max=-yr}}if(Un>0){x.forEach((Q,de)=>{if(i==1){let xe=Q.scale,Me=J[xe];if(Me==null)return;let Fe=N[xe];if(de==0){let Ve=Fe.range(r,Fe.min,Fe.max,xe);Fe.min=Ve[0],Fe.max=Ve[1],hr=au(Fe.min,t[0]),Sr=au(Fe.max,t[0]),Sr-hr>1&&(t[0][hr]Fe.max&&Sr--),Q.min=po[hr],Q.max=po[Sr]}else Q.show&&Q.auto&&wc(Fe,Me,Q,t[de],Q.sorted);Q.idxs[0]=hr,Q.idxs[1]=Sr}else if(de>0&&Q.show&&Q.auto){let[xe,Me]=Q.facets,Fe=xe.scale,Ve=Me.scale,[et,ot]=t[de],st=N[Fe],Ot=N[Ve];st!=null&&wc(st,J[Fe],xe,et,xe.sorted),Ot!=null&&wc(Ot,J[Ve],Me,ot,Me.sorted),Q.min=Me.min,Q.max=Me.max}});for(let Q in N){let de=N[Q],xe=J[Q];if(de.from==null&&(xe==null||xe.min==null)){let Me=de.range(r,de.min==yr?null:de.min,de.max==-yr?null:de.max,Q);de.min=Me[0],de.max=Me[1]}}}for(let Q in N){let de=N[Q];if(de.from!=null){let xe=N[de.from];if(xe.min==null)de.min=de.max=null;else{let Me=de.range(r,xe.min,xe.max,Q);de.min=Me[0],de.max=Me[1]}}}let z={},K=!1;for(let Q in N){let de=N[Q],xe=C[Q];if(xe.min!=de.min||xe.max!=de.max){xe.min=de.min,xe.max=de.max;let Me=xe.distr;xe._min=Me==3?_d(xe.min):Me==4?fM(xe.min,xe.asinh):Me==100?xe.fwd(xe.min):xe.min,xe._max=Me==3?_d(xe.max):Me==4?fM(xe.max,xe.asinh):Me==100?xe.fwd(xe.max):xe.max,z[Q]=K=!0}}if(K){x.forEach((Q,de)=>{i==2?de>0&&z.y&&(Q._paths=null):z[Q.scale]&&(Q._paths=null)});for(let Q in z)Ki=!0,Ni("setScale",Q);me&&ae.left>=0&&(No=zn=!0)}for(let Q in J)J[Q]=null}function Xa(N){let z=hM(hr-1,0,Un-1),K=hM(Sr+1,0,Un-1);for(;N[z]==null&&z>0;)z--;for(;N[K]==null&&K0){let N=x.some(z=>z._focus)&&ii!=Mr.alpha;N&&(f.globalAlpha=ii=Mr.alpha),x.forEach((z,K)=>{if(K>0&&z.show&&(Dd(K,!1),Dd(K,!0),z._paths==null)){let Q=ii;ii!=z.alpha&&(f.globalAlpha=ii=z.alpha);let de=i==2?[0,t[K][0].length-1]:Xa(t[K]);z._paths=z.paths(r,K,de[0],de[1]),ii!=Q&&(f.globalAlpha=ii=Q)}}),x.forEach((z,K)=>{if(K>0&&z.show){let Q=ii;ii!=z.alpha&&(f.globalAlpha=ii=z.alpha),z._paths!=null&&Sc(K,!1);{let de=z._paths!=null?z._paths.gaps:null,xe=z.points.show(r,K,hr,Sr,de),Me=z.points.filter(r,K,xe,de);(xe||Me)&&(z.points._paths=z.points.paths(r,K,hr,Sr,Me),Sc(K,!0))}ii!=Q&&(f.globalAlpha=ii=Q),Ni("drawSeries",K)}}),N&&(f.globalAlpha=ii=1)}}function Dd(N,z){let K=z?x[N].points:x[N];K._stroke=K.stroke(r,N),K._fill=K.fill(r,N)}function Sc(N,z){let K=z?x[N].points:x[N],{stroke:Q,fill:de,clip:xe,flags:Me,_stroke:Fe=K._stroke,_fill:Ve=K._fill,_width:et=K.width}=K._paths;et=br(et*Fn,3);let ot=null,st=et%2/2;z&&Ve==null&&(Ve=et>0?"#fff":Fe);let Ot=K.pxAlign==1&&st>0;if(Ot&&f.translate(st,st),!z){let hn=Pn-et/2,Bt=$r-et/2,an=tr+et,Tt=kr+et;ot=new Path2D,ot.rect(hn,Bt,an,Tt)}z?Fd(Fe,et,K.dash,K.cap,Ve,Q,de,Me,xe):Ad(N,Fe,et,K.dash,K.cap,Ve,Q,de,Me,ot,xe),Ot&&f.translate(-st,-st)}function Ad(N,z,K,Q,de,xe,Me,Fe,Ve,et,ot){let st=!1;Ve!=0&&j.forEach((Ot,hn)=>{if(Ot.series[0]==N){let Bt=x[Ot.series[1]],an=t[Ot.series[1]],Tt=(Bt._paths||g_).band;sh(Tt)&&(Tt=Ot.dir==1?Tt[0]:Tt[1]);let mt,mr=null;Bt.show&&Tt&&IVe(an,hr,Sr)?(mr=Ot.fill(r,hn)||xe,mt=Bt._paths.clip):Tt=null,Fd(z,K,Q,de,mr,Me,Fe,Ve,et,ot,mt,Tt),st=!0}}),st||Fd(z,K,Q,de,xe,Me,Fe,Ve,et,ot)}const Fm=Kg|SM;function Fd(N,z,K,Q,de,xe,Me,Fe,Ve,et,ot,st){xc(N,z,K,Q,de),(Ve||et||st)&&(f.save(),Ve&&f.clip(Ve),et&&f.clip(et)),st?(Fe&Fm)==Fm?(f.clip(st),ot&&f.clip(ot),G(de,Me),R(N,xe,z)):Fe&SM?(G(de,Me),f.clip(st),R(N,xe,z)):Fe&Kg&&(f.save(),f.clip(st),ot&&f.clip(ot),G(de,Me),f.restore(),R(N,xe,z)):(G(de,Me),R(N,xe,z)),(Ve||et||st)&&f.restore()}function R(N,z,K){K>0&&(z instanceof Map?z.forEach((Q,de)=>{f.strokeStyle=ji=de,f.stroke(Q)}):z!=null&&N&&f.stroke(z))}function G(N,z){z instanceof Map?z.forEach((K,Q)=>{f.fillStyle=gi=Q,f.fill(K)}):z!=null&&N&&f.fill(z)}function ie(N,z,K,Q){let de=S[N],xe;if(Q<=0)xe=[0,0];else{let Me=de._space=de.space(r,N,z,K,Q),Fe=de._incrs=de.incrs(r,N,z,K,Q,Me);xe=YHe(z,K,Fe,Q,Me)}return de._found=xe}function Ie(N,z,K,Q,de,xe,Me,Fe,Ve,et){let ot=Me%2/2;y==1&&f.translate(ot,ot),xc(Fe,Me,Ve,et,Fe),f.beginPath();let st,Ot,hn,Bt,an=de+(Q==0||Q==3?-xe:xe);K==0?(Ot=de,Bt=an):(st=de,hn=an);for(let Tt=0;Tt{if(!K.show)return;let de=C[K.scale];if(de.min==null){K._show&&(z=!1,K._show=!1,In(!1));return}else K._show||(z=!1,K._show=!0,In(!1));let xe=K.side,Me=xe%2,{min:Fe,max:Ve}=de,[et,ot]=ie(Q,Fe,Ve,Me==0?Ke:De);if(ot==0)return;let st=de.distr==2,Ot=K._splits=K.splits(r,Q,Fe,Ve,et,ot,st),hn=de.distr==2?Ot.map(mt=>po[mt]):Ot,Bt=de.distr==2?po[Ot[1]]-po[Ot[0]]:et,an=K._values=K.values(r,K.filter(r,hn,Q,ot,Bt),Q,ot,Bt);K._rotate=xe==2?K.rotate(r,an,Q,ot):0;let Tt=K._size;K._size=hl(K.size(r,an,Q,N)),Tt!=null&&K._size!=Tt&&(z=!1)}),z}function vt(N){let z=!0;return Ko.forEach((K,Q)=>{let de=K(r,Q,ri,N);de!=mi[Q]&&(z=!1),mi[Q]=de}),z}function Kt(){for(let N=0;Npo[ar]):hn,an=ot.distr==2?po[hn[1]]-po[hn[0]]:Ve,Tt=z.ticks,mt=z.border,mr=Tt.show?Tt.size:0,Vr=qi(mr*Fn),$i=qi((z.alignTo==2?z._size-mr-z.gap:z.gap)*Fn),_n=z._rotate*-s6/180,le=b(z._pos*Fn),Ne=(Vr+$i)*Fe,we=le+Ne;xe=Q==0?we:0,de=Q==1?we:0;let Je=z.font[0],_t=z.align==1?Wg:z.align==2?Q$:_n>0?Wg:_n<0?Q$:Q==0?"center":K==3?Q$:Wg,Gt=_n||Q==1?"middle":K==2?h_:Toe;_u(Je,Me,_t,Gt);let En=z.font[1]*z.lineGap,tn=hn.map(ar=>b(s(ar,ot,st,Ot))),Qo=z._values;for(let ar=0;ar{K>0&&(z._paths=null,N&&(i==1?(z.min=null,z.max=null):z.facets.forEach(Q=>{Q.min=null,Q.max=null})))})}let Di=!1,Ti=!1,Ji=[];function pC(){Ti=!1;for(let N=0;N0&&queueMicrotask(pC)}r.batch=jx;function Tx(){if(ni&&(Sl(),ni=!1),Ki&&(bc(),Ki=!1),uo){if(zr(v,Wg,Dt),zr(v,h_,pn),zr(v,d_,Ke),zr(v,f_,De),zr(_,Wg,Dt),zr(_,h_,pn),zr(_,d_,Ke),zr(_,f_,De),zr(p,d_,bt),zr(p,f_,Qe),d.width=qi(bt*Fn),d.height=qi(Qe*Fn),S.forEach(({_el:N,_show:z,_size:K,_pos:Q,side:de})=>{if(N!=null)if(z){let xe=de===3||de===0?K:0,Me=de%2==1;zr(N,Me?"left":"top",Q-xe),zr(N,Me?"width":"height",K),zr(N,Me?"top":"left",Me?pn:Dt),zr(N,Me?"height":"width",Me?De:Ke),aM(N,Np)}else Cs(N,Np)}),ji=gi=Ps=Xo=Pd=zd=bu=Xi=go=null,ii=1,jc(!0),Dt!=Yn||pn!=fr||Ke!=Kn||De!=wr){In(!1);let N=Ke/Kn,z=De/wr;if(me&&!No&&ae.left>=0){ae.left*=N,ae.top*=z,xu&&ec(xu,qi(ae.left),0,Ke,De),Ud&&ec(Ud,0,qi(ae.top),Ke,De);for(let K=0;K=0&&ir.width>0){ir.left*=N,ir.width*=N,ir.top*=z,ir.height*=z;for(let K in Z1)zr(Hd,K,ir[K])}Yn=Dt,fr=pn,Kn=Ke,wr=De}Ni("setSize"),uo=!1}bt>0&&Qe>0&&(f.clearRect(0,0,d.width,d.height),Ni("drawClear"),$.forEach(N=>N()),Ni("draw")),ir.show&&Os&&(oi(ir),Os=!1),me&&No&&(jl(null,!0,!1),No=!1),U.show&&U.live&&zn&&(or(),zn=!1),l||(l=!0,r.status=1,Ni("ready")),mo=!1,Di=!1}r.redraw=(N,z)=>{Ki=z||!1,N!==!1?Mo(T,P.min,P.max):Bd()};function D1(N,z){let K=C[N];if(K.from==null){if(Un==0){let Q=K.range(r,z.min,z.max,N);z.min=Q[0],z.max=Q[1]}if(z.min>z.max){let Q=z.min;z.min=z.max,z.max=Q}if(Un>1&&z.min!=null&&z.max!=null&&z.max-z.min<1e-16)return;N==T&&K.distr==2&&Un>0&&(z.min=au(z.min,t[0]),z.max=au(z.max,t[0]),z.min==z.max&&z.max++),J[N]=z,ni=!0,Bd()}}r.setScale=D1;let A1,F1,xu,Ud,Ix,Ex,Wd,Vd,rr,Xn,pr,Cr,wu=!1;const Ai=ae.drag;let Ii=Ai.x,Ei=Ai.y;me&&(ae.x&&(A1=fl(fVe,_)),ae.y&&(F1=fl(hVe,_)),P.ori==0?(xu=A1,Ud=F1):(xu=F1,Ud=A1),pr=ae.left,Cr=ae.top);const ir=r.select=Ri({show:!0,over:!0,left:0,width:0,top:0,height:0},e.select),Hd=ir.show?fl(dVe,ir.over?_:v):null;function oi(N,z){if(ir.show){for(let K in N)ir[K]=N[K],K in Z1&&zr(Hd,K,N[K]);z!==!1&&Ni("setSelect")}}r.setSelect=oi;function B1(N){if(x[N].show)je&&aM(ge[N],Np);else if(je&&Cs(ge[N],Np),me){let z=fo?Lr[0]:Lr[N];z!=null&&ec(z,-10,-10,Ke,De)}}function Mo(N,z,K){D1(N,{min:z,max:K})}function Ja(N,z,K,Q){z.focus!=null&&Jo(N),z.show!=null&&x.forEach((de,xe)=>{xe>0&&(N==xe||N==null)&&(de.show=z.show,B1(xe),i==2?(Mo(de.facets[0].scale,null,null),Mo(de.facets[1].scale,null,null)):Mo(de.scale,null,null),Bd())}),K!==!1&&Ni("setSeries",N,z),Q&&qd("setSeries",r,N,z)}r.setSeries=Ja;function U1(N,z){Ri(j[N],z)}function ka(N,z){N.fill=bn(N.fill||null),N.dir=Ln(N.dir,-1),z=z??j.length,j.splice(z,0,N)}function Nx(N){N==null?j.length=0:j.splice(N,1)}r.addBand=ka,r.setBand=U1,r.delBand=Nx;function $x(N,z){x[N].alpha=z,me&&Lr[N]!=null&&(Lr[N].style.opacity=z),je&&ge[N]&&(ge[N].style.opacity=z)}let zs,Cl,ku;const Cc={focus:!0};function Jo(N){if(N!=ku){let z=N==null,K=Mr.alpha!=1;x.forEach((Q,de)=>{if(i==1||de>0){let xe=z||de==0||de==N;Q._focus=z?null:xe,K&&$x(de,xe?1:Mr.alpha)}}),ku=N,K&&Bd()}}je&&$o&&ut($oe,he,N=>{ae._lock||(pi(N),ku!=null&&Ja(null,Cc,!0,Sn.setSeries))});function Ds(N,z,K){let Q=C[z];K&&(N=N/Fn-(Q.ori==1?pn:Dt));let de=Ke;Q.ori==1&&(de=De,N=de-N),Q.dir==-1&&(N=de-N);let xe=Q._min,Me=Q._max,Fe=N/de,Ve=xe+(Me-xe)*Fe,et=Q.distr;return et==3?Zg(10,Ve):et==4?NVe(Ve,Q.asinh):et==100?Q.bwd(Ve):Ve}function Sa(N,z){let K=Ds(N,T,z);return au(K,t[0],hr,Sr)}r.valToIdx=N=>au(N,t[0]),r.posToIdx=Sa,r.posToVal=Ds,r.valToPos=(N,z,K)=>C[z].ori==0?o(N,C[z],K?tr:Ke,K?Pn:0):a(N,C[z],K?kr:De,K?$r:0),r.setCursor=(N,z,K)=>{pr=N.left,Cr=N.top,jl(null,z,K)};function Mx(N,z){zr(Hd,Wg,ir.left=N),zr(Hd,d_,ir.width=z)}function W1(N,z){zr(Hd,h_,ir.top=N),zr(Hd,f_,ir.height=z)}let Ca=P.ori==0?Mx:W1,Su=P.ori==1?Mx:W1;function V1(){if(je&&U.live)for(let N=i==2?1:0;N{ce[Q]=K}):RVe(N.idx)||ce.fill(N.idx),U.idx=ce[0]),je&&U.live){for(let K=0;K0||i==1&&!ye)&&Cu(K,ce[K]);V1()}zn=!1,z!==!1&&Ni("setLegend")}r.setLegend=or;function Cu(N,z){let K=x[N],Q=N==0&&te==2?po:t[N],de;ye?de=K.values(r,N,z)??Se:(de=K.value(r,z==null?null:Q[z],N,z),de=de==null?Se:{_:de}),U.values[N]=de}function jl(N,z,K){rr=pr,Xn=Cr,[pr,Cr]=ae.move(r,pr,Cr),ae.left=pr,ae.top=Cr,me&&(xu&&ec(xu,qi(pr),0,Ke,De),Ud&&ec(Ud,0,qi(Cr),Ke,De));let Q,de=hr>Sr;zs=yr,Cl=null;let xe=P.ori==0?Ke:De,Me=P.ori==1?Ke:De;if(pr<0||Un==0||de){Q=ae.idx=null;for(let Fe=0;Fe0&&mr.show){let Ne=_n==null?-10:_n==Q?et:Z(i==1?t[0][_n]:t[mt][0][_n],P,xe,0),we=le==null?-10:O(le,i==1?C[mr.scale]:C[mr.facets[1].scale],Me,0);if($o&&le!=null){let Je=P.ori==1?pr:Cr,_t=Zi(Mr.dist(r,mt,_n,we,Je));if(_t=0?1:-1,Qo=En>=0?1:-1;Qo==tn&&(Qo==1?Gt==1?le>=En:le<=En:Gt==1?le<=En:le>=En)&&(zs=_t,Cl=mt)}else zs=_t,Cl=mt}}if(zn||fo){let Je,_t;P.ori==0?(Je=Ne,_t=we):(Je=we,_t=Ne);let Gt,En,tn,Qo,As,ar,Qi=!0,Ec=Bn.bbox;if(Ec!=null){Qi=!1;let ai=Ec(r,mt);tn=ai.left,Qo=ai.top,Gt=ai.width,En=ai.height}else tn=Je,Qo=_t,Gt=En=Bn.size(r,mt);if(ar=Bn.fill(r,mt),As=Bn.stroke(r,mt),fo)mt==Cl&&zs<=Mr.prox&&(ot=tn,st=Qo,Ot=Gt,hn=En,Bt=Qi,an=ar,Tt=As);else{let ai=Lr[mt];ai!=null&&(ho[mt]=tn,xa[mt]=Qo,Doe(ai,Gt,En,Qi),Poe(ai,ar,As),ec(ai,hl(tn),hl(Qo),Ke,De))}}}}if(fo){let mt=Mr.prox,mr=ku==null?zs<=mt:zs>mt||Cl!=ku;if(zn||mr){let Vr=Lr[0];Vr!=null&&(ho[0]=ot,xa[0]=st,Doe(Vr,Ot,hn,Bt),Poe(Vr,an,Tt),ec(Vr,hl(ot),hl(st),Ke,De))}}}if(ir.show&&wu)if(N!=null){let[Fe,Ve]=Sn.scales,[et,ot]=Sn.match,[st,Ot]=N.cursor.sync.scales,hn=N.cursor.drag;if(Ii=hn._x,Ei=hn._y,Ii||Ei){let{left:Bt,top:an,width:Tt,height:mt}=N.select,mr=N.scales[st].ori,Vr=N.posToVal,$i,_n,le,Ne,we,Je=Fe!=null&&et(Fe,st),_t=Ve!=null&&ot(Ve,Ot);Je&&Ii?(mr==0?($i=Bt,_n=Tt):($i=an,_n=mt),le=C[Fe],Ne=Z(Vr($i,st),le,xe,0),we=Z(Vr($i+_n,st),le,xe,0),Ca(su(Ne,we),Zi(we-Ne))):Ca(0,xe),_t&&Ei?(mr==1?($i=Bt,_n=Tt):($i=an,_n=mt),le=C[Ve],Ne=O(Vr($i,Ot),le,Me,0),we=O(Vr($i+_n,Ot),le,Me,0),Su(su(Ne,we),Zi(we-Ne))):Su(0,Me)}else Bm()}else{let Fe=Zi(rr-Ix),Ve=Zi(Xn-Ex);if(P.ori==1){let Ot=Fe;Fe=Ve,Ve=Ot}Ii=Ai.x&&Fe>=Ai.dist,Ei=Ai.y&&Ve>=Ai.dist;let et=Ai.uni;et!=null?Ii&&Ei&&(Ii=Fe>=et,Ei=Ve>=et,!Ii&&!Ei&&(Ve>Fe?Ei=!0:Ii=!0)):Ai.x&&Ai.y&&(Ii||Ei)&&(Ii=Ei=!0);let ot,st;Ii&&(P.ori==0?(ot=Wd,st=pr):(ot=Vd,st=Cr),Ca(su(ot,st),Zi(st-ot)),Ei||Su(0,Me)),Ei&&(P.ori==1?(ot=Wd,st=pr):(ot=Vd,st=Cr),Su(su(ot,st),Zi(st-ot)),Ii||Ca(0,xe)),!Ii&&!Ei&&(Ca(0,0),Su(0,0))}if(Ai._x=Ii,Ai._y=Ei,N==null){if(K){if(Wm!=null){let[Fe,Ve]=Sn.scales;Sn.values[0]=Fe!=null?Ds(P.ori==0?pr:Cr,Fe):null,Sn.values[1]=Ve!=null?Ds(P.ori==1?pr:Cr,Ve):null}qd(tM,r,pr,Cr,Ke,De,Q)}if($o){let Fe=K&&Sn.setSeries,Ve=Mr.prox;ku==null?zs<=Ve&&Ja(Cl,Cc,!0,Fe):zs>Ve?Ja(null,Cc,!0,Fe):Cl!=ku&&Ja(Cl,Cc,!0,Fe)}}zn&&(U.idx=Q,or()),z!==!1&&Ni("setCursor")}let ju=null;Object.defineProperty(r,"rect",{get(){return ju==null&&jc(!1),ju}});function jc(N=!1){N?ju=null:(ju=_.getBoundingClientRect(),Ni("syncRect",ju))}function Lx(N,z,K,Q,de,xe,Me){ae._lock||wu&&N!=null&&N.movementX==0&&N.movementY==0||(H1(N,z,K,Q,de,xe,Me,!1,N!=null),N!=null?jl(null,!0,!0):jl(z,!0,!1))}function H1(N,z,K,Q,de,xe,Me,Fe,Ve){if(ju==null&&jc(!1),pi(N),N!=null)K=N.clientX-ju.left,Q=N.clientY-ju.top;else{if(K<0||Q<0){pr=-10,Cr=-10;return}let[et,ot]=Sn.scales,st=z.cursor.sync,[Ot,hn]=st.values,[Bt,an]=st.scales,[Tt,mt]=Sn.match,mr=z.axes[0].side%2==1,Vr=P.ori==0?Ke:De,$i=P.ori==1?Ke:De,_n=mr?xe:de,le=mr?de:xe,Ne=mr?Q:K,we=mr?K:Q;if(Bt!=null?K=Tt(et,Bt)?s(Ot,C[et],Vr,0):-10:K=Vr*(Ne/_n),an!=null?Q=mt(ot,an)?s(hn,C[ot],$i,0):-10:Q=$i*(we/le),P.ori==1){let Je=K;K=Q,Q=Je}}Ve&&(z==null||z.cursor.event.type==tM)&&((K<=1||K>=Ke-1)&&(K=Lp(K,Ke)),(Q<=1||Q>=De-1)&&(Q=Lp(Q,De))),Fe?(Ix=K,Ex=Q,[Wd,Vd]=ae.move(r,K,Q)):(pr=K,Cr=Q)}const Z1={width:0,height:0,left:0,top:0};function Bm(){oi(Z1,!1)}let kh,Tc,Rx,q1;function G1(N,z,K,Q,de,xe,Me){wu=!0,Ii=Ei=Ai._x=Ai._y=!1,H1(N,z,K,Q,de,xe,Me,!0,!1),N!=null&&(ut(nM,iM,Um,!1),qd(Eoe,r,Wd,Vd,Ke,De,null));let{left:Fe,top:Ve,width:et,height:ot}=ir;kh=Fe,Tc=Ve,Rx=et,q1=ot}function Um(N,z,K,Q,de,xe,Me){wu=Ai._x=Ai._y=!1,H1(N,z,K,Q,de,xe,Me,!1,!0);let{left:Fe,top:Ve,width:et,height:ot}=ir,st=et>0||ot>0,Ot=kh!=Fe||Tc!=Ve||Rx!=et||q1!=ot;if(st&&Ot&&oi(ir),Ai.setScale&&st&&Ot){let hn=Fe,Bt=et,an=Ve,Tt=ot;if(P.ori==1&&(hn=Ve,Bt=ot,an=Fe,Tt=et),Ii&&Mo(T,Ds(hn,T),Ds(hn+Bt,T)),Ei)for(let mt in C){let mr=C[mt];mt!=T&&mr.from==null&&mr.min!=yr&&Mo(mt,Ds(an+Tt,mt),Ds(an,mt))}Bm()}else ae.lock&&(ae._lock=!ae._lock,jl(z,!0,N!=null));N!=null&&(ct(nM,iM),qd(nM,r,pr,Cr,Ke,De,null))}function Y1(N,z,K,Q,de,xe,Me){if(ae._lock)return;pi(N);let Fe=wu;if(wu){let Ve=!0,et=!0,ot=10,st,Ot;P.ori==0?(st=Ii,Ot=Ei):(st=Ei,Ot=Ii),st&&Ot&&(Ve=pr<=ot||pr>=Ke-ot,et=Cr<=ot||Cr>=De-ot),st&&Ve&&(pr=pr{let de=Sn.match[2];K=de(r,z,K),K!=-1&&Ja(K,Q,!0,!1)},me&&(ut(Eoe,_,G1),ut(tM,_,Lx),ut(Noe,_,N=>{pi(N),jc(!1)}),ut($oe,_,Y1),ut(Moe,_,K1),IM.add(r),r.syncRect=jc);const Zd=r.hooks=e.hooks||{};function Ni(N,z,K){Ti?Ji.push([N,z,K]):N in Zd&&Zd[N].forEach(Q=>{Q.call(null,r,z,K)})}(e.plugins||[]).forEach(N=>{for(let z in N.hooks)Zd[z]=(Zd[z]||[]).concat(N.hooks[z])});const X1=(N,z,K)=>K,Sn=Ri({key:null,setSeries:!1,filters:{pub:Koe,sub:Koe},scales:[T,x[1]?x[1].scale:null],match:[Xoe,Xoe,X1],values:[null,null]},ae.sync);Sn.match.length==2&&Sn.match.push(X1),ae.sync=Sn;const Wm=Sn.key,Ic=Oae(Wm);function qd(N,z,K,Q,de,xe,Me){Sn.filters.pub(N,z,K,Q,de,xe,Me)&&Ic.pub(N,z,K,Q,de,xe,Me)}Ic.sub(r);function Px(N,z,K,Q,de,xe,Me){Sn.filters.sub(N,z,K,Q,de,xe,Me)&&Tu[N](null,z,K,Q,de,xe,Me)}r.pub=Px;function mC(){Ic.unsub(r),IM.delete(r),St.clear(),lM(n6,Hg,Ox),c.remove(),he==null||he.remove(),Ni("destroy")}r.destroy=mC;function J1(){Ni("init",e,t),Wr(t||e.data,!1),J[T]?D1(T,J[T]):wa(),Os=ir.show&&(ir.width>0||ir.height>0),No=zn=!0,co(e.width,e.height)}return x.forEach(Yt),S.forEach(Ga),n?n instanceof HTMLElement?(n.appendChild(c),J1()):n(r,J1):J1(),r}jn.assign=Ri,jn.fmtNum=dM,jn.rangeNum=a6,jn.rangeLog=o6,jn.rangeAsinh=uM,jn.orient=Op,jn.pxRatio=Fn,jn.join=BVe,jn.fmtDate=mM,jn.tzDate=JVe,jn.sync=Oae;{jn.addGap=RHe,jn.clipGaps=h6;let e=jn.paths={points:Uae};e.linear=Vae,e.stepped=zHe,e.bars=DHe,e.spline=FHe}Object.is||Object.defineProperty(Object,"is",{value:(e,t)=>e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t});const XHe=(e,t)=>{const{width:n,height:r,...i}=e,{width:o,height:a,...s}=t;let l="keep";if((r!==a||n!==o)&&(l="update"),Object.keys(i).length!==Object.keys(s).length)return"create";for(const c of Object.keys(i))if(!Object.is(i[c],s[c])){l="create";break}return l},JHe=(e,t)=>e.length!==t.length?!1:e.every((n,r)=>{const i=t[r];if(n.length!==i.length)return!1;if(Array.isArray(n))return n.every((o,a)=>o===i[a])});function v6(e,t,n,r,i,o){return e>r?(t=i,n=o):to&&(n=o,t=o-e),[t,n]}const Jae=e=>e._size??0,Qae=fe({}),y6=fe(null,(e,t,n,r)=>{const{chartId:i,isMatchingChartId:o}=r||{},a=e(Qae);if(i&&a[i])n(a[i],i);else for(const[s,l]of Object.entries(a))o&&!o(s)||n(l,s)}),QHe="_uplot_1swaw_1",eZe={uplot:QHe};function Pp({id:e,options:t,data:n,target:r,onDelete:i,onCreate:o,resetScales:a=!0,className:s}){var S,C;const l=m.useRef(null),c=m.useRef(null),d=m.useRef(t),f=m.useRef(r),p=m.useRef(n),v=m.useRef(o),_=m.useRef(i),y=Ee(Qae);m.useEffect(()=>{v.current=o,_.current=i});const b=m.useCallback(j=>{var T;j&&((T=_.current)==null||T.call(_,j),j.destroy(),l.current=null,y(E=>{const $={...E};return delete $[e],$}))},[e,y]),w=m.useCallback(()=>{var T;const j=new jn(d.current,p.current,f.current||c.current);l.current=j,y(E=>({...E,[e]:j})),(T=v.current)==null||T.call(v,j)},[e,y]);m.useEffect(()=>(w(),()=>{b(l.current)}),[w,b]),m.useEffect(()=>{if(d.current!==t){const j=XHe(d.current,t);d.current=t,!l.current||j==="create"?(b(l.current),w()):j==="update"&&l.current.setSize({width:t.width,height:t.height})}},[t,w,b]),m.useEffect(()=>{p.current!==n&&(l.current?JHe(p.current,n)||(a?l.current.setData(n,!0):(l.current.setData(n,!1),l.current.redraw())):(p.current=n,w()),p.current=n)},[n,a,w]),m.useEffect(()=>(f.current!==r&&(f.current=r,w()),()=>b(l.current)),[r,w,b]);const x=Ua(()=>{requestAnimationFrame(()=>{var j;return(j=l.current)==null?void 0:j.setSize({width:d.current.width,height:d.current.height})})},500,{leading:!0,trailing:!0});return(t.height!==((S=l.current)==null?void 0:S.height)||t.width!==((C=l.current)==null?void 0:C.width))&&x(),r?null:u.jsx("div",{id:e,ref:c,className:Te(eZe.uplot,s)})}const NM=fe(null),zp=fe(e=>{const t=e(nee);return t==null?void 0:t+1}),tZe=fe(e=>{const t=e(zp),n=e(ese);return t!=null&&!!n.size}),[ese,nZe,tse,b_,rZe]=function(){const e=Co(new Set),t=fe(),n=fe();return[fe(r=>r(e)),fe(null,(r,i,o)=>{r(ol)&&i(e,a=>{o.forEach(s=>{a.add(s),i(t,l=>l?Math.min(l,s):s),i(n,l=>l?Math.max(l,s):s)})})}),fe(r=>r(t)),fe(r=>r(n)),fe(null,(r,i)=>{i(t,void 0),i(n,void 0),i(e,new Set)})]}(),[iZe,oZe,aZe]=function(){const e=Co(new Set);return[fe(t=>t(e)),fe(null,(t,n,r)=>{t(ol)&&n(e,i=>{r.forEach(o=>{i.add(o)})})}),fe(null,(t,n)=>{n(e,new Set)})]}();function nse(e,t,n,r){if(!n)return 0;const i=Math.ceil((e-t+1)/n);return Math.min(i-1,r)}function $M(e,t){return t==null?!1:e<=t}function MM(e,t){return t.has(e)}function LM(e,t){return t.has(e)}function b6(e,t,n){for(let r=t;r>=e;r--)if(n(r))return!0;return!1}function sZe(e,t,n,r,i,o,a){return o?tne:i?ene:b6(e,t,s=>!$M(s,n)&&!MM(s,r)&&!LM(s,a))?nne:b6(e,t,s=>!$M(s,n)&&MM(s,r))?ane:b6(e,t,s=>!$M(s,n)&&LM(s,a))?one:b6(e,t,s=>!MM(s,r)&&!LM(s,a))?ine:rne}const lZe=ca(),rse=4,uZe=rse;function cZe(e,t){return{hooks:{drawSeries:[n=>{const r=e.current.totalSlotsEstimate;if(r==null||!t.current)return;const i=n.ctx;i.save();const o=n.bbox.top,a=n.bbox.height,s=rse*window.devicePixelRatio,l=uZe*window.devicePixelRatio,c=s/2,d=Math.trunc((n.bbox.width+l)/(s+l)),f=r/d,{startSlot:p,repairSlots:v,latestReplaySlot:_,firstTurbineSlot:y,latestTurbineSlot:b,turbineSlots:w}=t.current,x=nse(b,p,f,d-1),S=nse(y,p,f,d-1),C=lZe.get(NM);C==null||C.style.setProperty("--turbine-start-x",`${RM(S,s,l)/window.devicePixelRatio}px`),C==null||C.style.setProperty("--turbine-head-x",`${RM(x,s,l)/window.devicePixelRatio}px`);const j=new Map;for(let T=0;T<=x;T++){const E=T*f,$=p+Math.trunc(E),A=(T+1)*f,M=Math.min(b,p+Math.ceil(A)-1),P=RM(T,s,l),te=sZe($,M,_,v,T===S,T===x,w),Z=j.get(te)??[];Z.push(P),j.set(te,Z)}for(const[T,E]of j.entries()){i.fillStyle=T,i.beginPath();for(const $ of E)i.roundRect($,o,s,a,c);i.fill()}i.restore()}]}}}function RM(e,t,n){return e*(t+n)}const dZe=[[0],[null]];function fZe({catchingUpRatesRef:e}){const[t,n]=Ss(),r=X(zp),i=X(iZe),o=X(ese),a=X(tse),s=X(b_),l=X(fp),c=m.useRef(),d=m.useRef(),f=m.useMemo(()=>({width:0,height:0,scales:{x:{time:!1}},axes:[{show:!1},{show:!1}],series:[{},{points:{show:!1}}],cursor:{x:!1,y:!1},legend:{show:!1},plugins:[cZe(e,c)]}),[c,e]);f.width=n.width,f.height=n.height;const p=m.useCallback(y=>{d.current=y},[]),v=m.useCallback(y=>{var b;c.current=y,(b=d.current)==null||b.redraw()},[]),_=Ua(v,100,{trailing:!0});if(m.useEffect(()=>{r==null||!o.size||a==null||s==null||_({startSlot:r,repairSlots:i,turbineSlots:o,firstTurbineSlot:a,latestTurbineSlot:s,latestReplaySlot:l})},[a,l,s,i,r,_,o]),!(r==null||!o.size||a==null||s==null))return u.jsx(Mt,{height:"77px",ref:t,children:u.jsx(Pp,{id:"catching-up-slot-bars",options:f,data:dZe,onCreate:p})})}const hZe="_card_1yavk_1",pZe="_secondary-color_1yavk_13",mZe="_bold_1yavk_17",gZe="_ellipsis_1yavk_21",vZe="_labels-row_1yavk_27",yZe="_labels-left_1yavk_39",bZe="_turbine-label_1yavk_46",_Ze="_start_1yavk_54",xZe="_head_1yavk_58",wZe="_footer-row_1yavk_64",kZe="_left-footer_1yavk_76",SZe="_footer-title_1yavk_83",CZe="_footer-value_1yavk_88",jZe="_bars-stats-container_1yavk_95",TZe="_bars-stats-row_1yavk_99",IZe="_replayed_1yavk_104",EZe="_speed_1yavk_111",NZe="_to-replay_1yavk_118",ur={card:hZe,secondaryColor:pZe,bold:mZe,ellipsis:gZe,labelsRow:vZe,labelsLeft:yZe,turbineLabel:bZe,start:_Ze,head:xZe,footerRow:wZe,leftFooter:kZe,footerTitle:SZe,footerValue:CZe,barsStatsContainer:jZe,barsStatsRow:TZe,replayed:IZe,speed:EZe,toReplay:NZe};function $Ze(){const e=X(zp);if(e)return u.jsxs(V,{className:ur.footerRow,children:[u.jsxs(V,{className:ur.leftFooter,children:[u.jsxs(q,{className:Te(ur.footerValue,ur.ellipsis),children:[u.jsx(q,{className:ur.secondaryColor,children:"Slot "}),e]}),u.jsx(q,{className:Te(ur.footerTitle,ur.ellipsis),children:"Repair"})]}),u.jsx(q,{className:Te(ur.rightFooter,ur.footerTitle,ur.ellipsis),children:"Turbine"})]})}function MZe(){const e=X(zp),t=X(tse),n=X(b_);if(!(e==null||t==null||n==null))return u.jsxs(V,{className:ur.labelsRow,children:[u.jsx(V,{justify:"end",flexShrink:"0",className:ur.labelsLeft,children:u.jsx(ise,{slot:t})}),u.jsx(V,{justify:"end",flexGrow:"1",minWidth:"0",className:ur.labelsRight,children:u.jsx(ise,{slot:n,isHead:!0})})]})}function ise({isHead:e=!1,slot:t}){const n=X(NM),[r,{width:i}]=Ss();return m.useEffect(()=>{n==null||n.style.setProperty(e?"--turbine-head-label-width":"--turbine-start-label-width",`${i}px`)},[n,e,i]),u.jsxs(V,{ref:r,direction:"column",className:Te(ur.turbineLabel,e?ur.head:ur.start),children:[u.jsx(q,{className:ur.bold,children:e?"Turbine Head":"Turbine Start"}),u.jsx(q,{children:t})]})}const _6=1e4,ose=50,LZe=[Ir.shred_published,Ir.shred_replayed,Ir.shred_received_repair,Ir.shred_received_turbine,Ir.shred_repair_request],RZe=[Ir.shred_received_repair,Ir.shred_published,Ir.shred_replayed,Ir.shred_received_turbine,Ir.shred_repair_request],OZe={"Repair Requested":xN,"Received Turbine":wN,"Received Repair":kN,"Replayed Turbine":SN,"Replayed Repair":CN,"Replayed Nothing":jN,Skipped:TN,Published:IN};function PZe(){const e=fe(),t=fe(),n=fe(),r=fe(i=>{const o=i(n),a=i(bG);if(!(!o||a==null)&&!(a+1>o.max))return{min:Math.max(a+1,o.min),max:o.max}});return{minCompletedSlot:fe(i=>i(e)),range:fe(i=>i(n)),rangeAfterStartup:r,groupLeaderSlots:fe(i=>{const o=i(r);if(!o)return[];const a=[xi(o.min)];for(;a[a.length-1]+$n-1i(t)),addShredEvents:fe(null,(i,o,{reference_slot:a,reference_ts:s,slot_delta:l,shred_idx:c,event:d,event_ts_delta:f})=>{let p=i(n),v=i(e);o(t,_=>{const y=_??{referenceTs:Math.round(Number(s)/aN),slots:new Map};for(let b=0;b{if(a){o(n,void 0),o(e,void 0),o(t,void 0);return}o(t,l=>{const c=i(n),d=i(Cre)??Date.now();if(!l||!c)return l;if(s)for(let p=c.min;p<=c.max;p++){const v=l.slots.get(p);v&&(v.maxEventTsDelta==null||ase(v.maxEventTsDelta,d,l.referenceTs))&&l.slots.delete(p)}else{let p=c.min;if(c.max-c.min>50){for(let _=p;_<=c.max-50;_++)l.slots.get(_)&&l.slots.delete(_);p=c.max-50}let v=!1;for(let _=c.max;_>=p;_--){const y=l.slots.get(_);if((y==null?void 0:y.maxEventTsDelta)!=null){if(!v&&y.completionTsDelta!=null&&ase(y.completionTsDelta,d,l.referenceTs)){v=!0;continue}v&&l.slots.delete(_)}}}const f=l.slots.keys();return o(n,p=>{if(!(!p||!l.slots.size))return{min:Math.min(...f),max:p.max}}),l})})}}function ase(e,t,n){const r=t-n,i=_6+ose;return r-e>i}const __=PZe();function zZe(e,t,n){const r=n??new Array;return r[e]=Math.min(t,r[e]??t),r}function DZe(e,t,n,r){const i=r??{shreds:[]};return i.minEventTsDelta=Math.min(n,i.minEventTsDelta??n),i.maxEventTsDelta=Math.max(n,i.maxEventTsDelta??n),t===Ir.slot_complete?(i.completionTsDelta=Math.min(n,i.completionTsDelta??n),i):e==null?(console.error("Missing shred ID"),i):(i.shreds[e]=zZe(t,n,i.shreds[e]),i)}function sse(e){return`slot-group-label-${xi(e)}`}function lse(e){return`slot-label-${e}`}const lh=ca(),wd="shredsXScaleKey";function AZe(e){const t=[];return{hooks:{draw:[n=>{if(n.ctx.save(),e){n.ctx.strokeStyle=_N,n.ctx.lineWidth=1,n.ctx.beginPath();const P=n.bbox.left,te=n.bbox.left+n.bbox.width;for(let Z=0;Z<3;Z++)n.ctx.moveTo(P,n.bbox.top+n.bbox.height*Z/3),n.ctx.lineTo(te,n.bbox.top+n.bbox.height*Z/3);n.ctx.stroke(),n.ctx.restore()}const r=__,i=lh.get(r.slotsShreds),o=lh.get(r.range),a=lh.get(r.minCompletedSlot),s=lh.get(Ik),l=lh.get(r.rangeAfterStartup),c=Date.now(),d=lh.get(Cre);if(d){const P=c-d;for(t.push(P);t.length>20;)t.shift()}const f=t.length?rt.sum(t)/t.length:void 0,p=f==null?d??c:c-f,v=n.scales[wd].max;if(!i||!o||v==null||!e&&(lh.get(ol)||a==null||!l))return;const _=p-ose-i.referenceTs,y=e?o.min:Math.max(o.min,a??o.min),b=o.max;n.ctx.rect(n.bbox.left,n.bbox.top,n.bbox.width,n.bbox.height),n.ctx.clip();const w=P=>n.valToPos(P,wd,!0),{maxShreds:x,orderedSlotNumbers:S}=FZe(y,b,i,n.scales[wd],_),C=e?Math.trunc(n.bbox.height/3):n.bbox.height,j=e?P=>{switch(P){case Ir.shred_received_turbine:case Ir.shred_published:return 0;case Ir.shred_repair_request:case Ir.shred_received_repair:return C;case Ir.shred_replayed:return C*2}}:void 0,T=rt.clamp(C/x,1,10),E=1,$=Math.max(T,3),A=Math.trunc((C+E)/(T+E)),M=x/A;for(const P of S){const te={},Z=(D,Y)=>{te[D]??(te[D]=[]),te[D].push(Y)},O=i.slots.get(P);if((O==null?void 0:O.minEventTsDelta)==null)continue;const J=s.has(P);for(let D=0;D{const o=[];let a=0;for(let s=e;s<=t;s++){const l=n.slots.get(s);!l||!l.shreds.length||l.minEventTsDelta==null||r.max!=null&&l.minEventTsDelta-i>r.max||r.min!=null&&l.completionTsDelta!=null&&l.completionTsDelta-i=b)continue;const T=(d==null?void 0:d(x))??0;w.set(x,s||l?[j,c+T]:[j,c+T,b-j]),b=j}for(const[x,S]of w.entries()){if(l){e(TN,S);continue}switch(x){case Ir.shred_repair_request:{e(xN,S);break}case Ir.shred_received_turbine:{e(wN,S);break}case Ir.shred_received_repair:{e(kN,S);break}case Ir.shred_replayed:{w.has(Ir.shred_received_repair)?e(CN,S):w.has(Ir.shred_received_turbine)?e(SN,S):e(jN,S);break}case Ir.shred_published:e(IN,S)}}}function UZe(e,t,n){for(const r of RZe){const i=WZe(e,t,n,o=>(o==null?void 0:o[r])!=null);if(i!==-1)return i}return e}function WZe(e,t,n,r){for(let i=e;ir.valToPos(p,wd,!1),f=d(i);for(let p=0;ps+r).reduce((a,s)=>(a.length===0&&!(s in e)||s in e&&e[s]===void 0||a.push(s),a),[]);if(i.length===0)continue;const o=i.reduce((a,s)=>{var d,f;const l=(d=e[s])==null?void 0:d[0],c=(f=e[s])==null?void 0:f[1];return l!=null&&(a[0]=Math.min(a[0],l)),a[1]=a[1]===void 0||c===void 0?void 0:Math.max(c,a[1]),a},[1/0,-1/0]);n[r]=o}return n}function dse(e,t,n){if(!e)return;const r=e[0]-t,i=n(r);if(e[1]==null)return[i,void 0];const o=e[1]-t,a=n(o);return[i,a-i]}function fse(e,t,n,r){const i=e?"--group-x":"--slot-x";if(!t){r.style.setProperty(i,"-100000px");return}const[o,a]=t;r.style.setProperty(i,`${o-(e?1:0)}px`);const s=a??n-o+1;r.style.width=`${s+(e?1*2:0)}px`;const l=a==null;e&&r.style.setProperty("--group-name-opacity",l?"0":"1")}const GZe="_slot-group-label_mfowj_1",YZe="_you_mfowj_13",KZe="_slot-group-top-container_mfowj_17",XZe="_skipped_mfowj_21",JZe="_slot-group-name-container_mfowj_25",QZe="_name_mfowj_30",eqe="_slot-bars-container_mfowj_41",tqe="_slot-bar_mfowj_41",nqe="_legend-color-box_mfowj_72",rqe="_legend-label_mfowj_78",lu={slotGroupLabel:GZe,you:YZe,slotGroupTopContainer:KZe,skipped:XZe,slotGroupNameContainer:JZe,name:QZe,slotBarsContainer:eqe,slotBar:tqe,legendColorBox:nqe,legendLabel:rqe};function OM(e){const t=X(di);if(!t)return;const n=e-t.start_slot,r=Math.trunc(n/4);return t.staked_pubkeys[t.leader_slots[r]]}function PM(e){var s,l,c,d;const t=(s=e==null?void 0:e.gossip)==null?void 0:s.version,n=(l=e==null?void 0:e.gossip)==null?void 0:l.client_id,r=(n?qte[n]:void 0)??(t?t[0]==="0"?za.Frankendancer:za.Agave:void 0),i=(c=e==null?void 0:e.gossip)==null?void 0:c.country_code,o=Pze(i),a=(d=e==null?void 0:e.gossip)==null?void 0:d.city_name;return m.useMemo(()=>({client:r,version:t,countryCode:i,countryFlag:o,cityName:a}),[a,r,i,o,t])}function ma(e){var f;const t=X(dp),n=OM(e),r=Hk(n??""),i=t===n,o=((f=r==null?void 0:r.info)==null?void 0:f.name)??"Private",{version:a,client:s,countryCode:l,countryFlag:c,cityName:d}=PM(r);return{pubkey:n,peer:r,isLeader:i,name:o,client:s,version:a,countryCode:l,countryFlag:c,cityName:d}}function iqe(){const e=X(V3),t=X(__.groupLeaderSlots);if(!e)return u.jsx(V,{flexShrink:"0",overflowX:"hidden",position:"relative",height:"15px",children:t.map(n=>u.jsx(oqe,{firstSlot:n},n))})}function oqe({firstSlot:e}){var s;const{peer:t,name:n,isLeader:r}=ma(e),i=m.useMemo(()=>Array.from({length:$n},(l,c)=>e+c),[e]),o=X(Ik),a=m.useMemo(()=>{const l=new Set;for(const c of i)o.has(c)&&l.add(c);return l},[i,o]);return u.jsxs(V,{height:"100%",minHeight:"0",direction:"column",gap:"2px",position:"absolute",id:sse(e),className:Te(lu.slotGroupLabel,{[lu.you]:r}),children:[u.jsx(V,{justify:"center",flexGrow:"1",minHeight:"0",minWidth:"0",px:"2px",className:Te(lu.slotGroupTopContainer,{[lu.skipped]:a.size>0}),children:u.jsxs(V,{align:"center",gap:"4px",minWidth:"0",className:lu.slotGroupNameContainer,children:[u.jsx(ks,{url:(s=t==null?void 0:t.info)==null?void 0:s.icon_url,size:10,isYou:r,hideTooltip:!0}),u.jsx(q,{className:lu.name,children:n})]})}),u.jsx(V,{height:"2px",position:"relative",className:lu.slotBarsContainer,children:i.map(l=>u.jsx("div",{className:Te(lu.slotBar,{[lu.skipped]:a.has(l)}),id:lse(l)},l))})]})}const aqe=40,zM=15,DM={min:200,max:1600},sqe=e=>{const t=e*DM.max,n=[Math.trunc(t/DM.min)*DM.min];for(;n[n.length-1]<_6*e;)n.push(n[n.length-1]*2);return n};function hse({chartId:e,isOnStartupScreen:t,...n}){const r=Hn("(max-width: 2100px)"),i=Hn("(max-width: 1800px)"),o=Hn("(max-width: 1500px)"),a=Hn("(max-width: 1200px)"),s=Hn("(max-width: 900px)"),l=Hn("(max-width: 600px)")?1/7:s?2/7:a?3/7:o?4/7:i?5/7:r?6/7:1,c=m.useRef(),d=m.useRef(0),[f,p]=Ss(),v=m.useCallback(w=>{c.current=w},[]),[_,y]=m.useMemo(()=>[[[Math.trunc(l*-_6),0],new Array(2)],sqe(l)],[l]);m.useEffect(()=>{c.current&&(c.current.axes[0].incrs=()=>y,c.current.setData(_,!0))},[_,y]);const b=m.useMemo(()=>({padding:[0,zM,0,zM],width:0,height:0,scales:{[wd]:{time:!1},y:{time:!1,range:[0,1]}},series:[{scale:wd},{}],cursor:{show:!1,drag:{[wd]:!1,y:!1}},legend:{show:!1},axes:[{scale:wd,incrs:y,size:30,ticks:{opacity:.2,stroke:sr,size:5,width:1/devicePixelRatio},values:(w,x)=>x.map(S=>S===0?"now":`${(S/1e3).toFixed(1)}s`),grid:{stroke:_N,width:1/devicePixelRatio},stroke:bN},{size:0,grid:{filter:()=>[0],stroke:bN,width:1}}],plugins:[AZe(t)]}),[t,y]);return b.width=p.width,b.height=p.height,Aie(w=>{var x;c&&(d.current==null||w-d.current>=aqe)&&(d.current=w,(x=c.current)==null||x.redraw(!0,!1))}),u.jsxs(V,{direction:"column",gap:"2px",...n,children:[!t&&u.jsx(iqe,{}),u.jsx(Mt,{flexGrow:"1",minHeight:"0",mx:`-${zM}px`,ref:f,children:u.jsx(Pp,{id:e,options:b,data:_,onCreate:v})})]})}const lqe="_card_1vnw5_1",uqe="_narrow_1vnw5_7",pse={card:lqe,narrow:uqe};function so({children:e,hideChildren:t,isNarrow:n=!1,...r}){return u.jsx("div",{...r,className:Te(pse.card,n&&pse.narrow,r.className),children:!t&&e})}const cqe="_header_10qjn_1",dqe="_full-width_10qjn_5",fqe="_dark_10qjn_9",hqe="_subHeader_10qjn_14",pqe="_tile-container_10qjn_20",mqe="_tile_10qjn_20",Dp={header:cqe,fullWidth:dqe,dark:fqe,subHeader:hqe,tileContainer:pqe,tile:mqe},gqe="_stat-container_1hzk8_1",vqe="_label_1hzk8_10",yqe="_value-container_1hzk8_15",bqe="_value_1hzk8_15",x6={statContainer:gqe,label:vqe,valueContainer:yqe,value:bqe};var AM={exports:{}},Qg=typeof Reflect=="object"?Reflect:null,mse=Qg&&typeof Qg.apply=="function"?Qg.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)},w6;Qg&&typeof Qg.ownKeys=="function"?w6=Qg.ownKeys:Object.getOwnPropertySymbols?w6=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:w6=function(e){return Object.getOwnPropertyNames(e)};function _qe(e){console&&console.warn&&console.warn(e)}var gse=Number.isNaN||function(e){return e!==e};function cr(){cr.init.call(this)}AM.exports=cr,AM.exports.once=Sqe,cr.EventEmitter=cr,cr.prototype._events=void 0,cr.prototype._eventsCount=0,cr.prototype._maxListeners=void 0;var vse=10;function k6(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(cr,"defaultMaxListeners",{enumerable:!0,get:function(){return vse},set:function(e){if(typeof e!="number"||e<0||gse(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");vse=e}}),cr.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},cr.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||gse(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function yse(e){return e._maxListeners===void 0?cr.defaultMaxListeners:e._maxListeners}cr.prototype.getMaxListeners=function(){return yse(this)},cr.prototype.emit=function(e){for(var t=[],n=1;n0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var s=i[e];if(s===void 0)return!1;if(typeof s=="function")mse(s,this,t);else for(var l=s.length,c=kse(s,l),n=0;n0&&a.length>i&&!a.warned){a.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=a.length,_qe(s)}return e}cr.prototype.addListener=function(e,t){return bse(this,e,t,!1)},cr.prototype.on=cr.prototype.addListener,cr.prototype.prependListener=function(e,t){return bse(this,e,t,!0)};function xqe(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _se(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=xqe.bind(r);return i.listener=n,r.wrapFn=i,i}cr.prototype.once=function(e,t){return k6(t),this.on(e,_se(this,e,t)),this},cr.prototype.prependOnceListener=function(e,t){return k6(t),this.prependListener(e,_se(this,e,t)),this},cr.prototype.removeListener=function(e,t){var n,r,i,o,a;if(k6(t),r=this._events,r===void 0)return this;if(n=r[e],n===void 0)return this;if(n===t||n.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if(typeof n!="function"){for(i=-1,o=n.length-1;o>=0;o--)if(n[o]===t||n[o].listener===t){a=n[o].listener,i=o;break}if(i<0)return this;i===0?n.shift():wqe(n,i),n.length===1&&(r[e]=n[0]),r.removeListener!==void 0&&this.emit("removeListener",e,a||t)}return this},cr.prototype.off=cr.prototype.removeListener,cr.prototype.removeAllListeners=function(e){var t,n,r;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var i=Object.keys(n),o;for(r=0;r=0;r--)this.removeListener(e,t[r]);return this};function xse(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?kqe(i):kse(i,i.length)}cr.prototype.listeners=function(e){return xse(this,e,!0)},cr.prototype.rawListeners=function(e){return xse(this,e,!1)},cr.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):wse.call(e,t)},cr.prototype.listenerCount=wse;function wse(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}cr.prototype.eventNames=function(){return this._eventsCount>0?w6(this._events):[]};function kse(e,t){for(var n=new Array(t),r=0;r{const r=i=>n.current(i);return t.addListener(FM,r),()=>{t.removeListener(FM,r)}},[t])}const Iqe=Yf((e,t,n)=>rt.throttle(()=>{switch(n){case"publish":{e({topic:"slot",key:"query",id:1,params:{slot:t}});break}case"detailed":{e({topic:"slot",key:"query_detailed",id:2,params:{slot:t}});break}case"transactions":{e({topic:"slot",key:"query_transactions",id:3,params:{slot:t}});break}}},5e3,{trailing:!1}),{maxSize:250});function UM(e,t,n){const r=S6(),i=X(wDe(e)),o=m.useCallback(()=>{!e||i||n||Iqe(r,e,t)()},[t,i,e,n,r]);m.useEffect(()=>{const l=setTimeout(()=>o(),250);return()=>{clearTimeout(l)}},[o]);const[a,s]=m.useState(!0);return i_(()=>{setTimeout(()=>s(!1),3e3)}),{hasWaitedForData:!a}}function Is(e){const t=X(YN(e)),n=!!t,{hasWaitedForData:r}=UM(e,"publish",n);return{publish:t,hasWaitedForData:r}}function tc(e){const t=X(hre(e)),n=!!(t!=null&&t.waterfall)&&!!(t!=null&&t.tile_timers)&&!!(t!=null&&t.tile_primary_metric)&&!!t.scheduler_counts&&!!t.scheduler_stats&&!!t.limits,{hasWaitedForData:r}=UM(e,"detailed",n);return{response:t,hasWaitedForData:r}}function pl(e){const t=X(hre(e)),n=!!(t!=null&&t.transactions),{hasWaitedForData:r}=UM(e,"transactions",n);return{response:t,hasWaitedForData:r}}function Eqe({type:e,label:t}){var l,c,d;const n=X(Cn),r=!n,i=X(SG),o=tc(r?void 0:n),a=r?(l=i==null?void 0:i.tile_primary_metric)==null?void 0:l[e]:(d=(c=o.response)==null?void 0:c.tile_primary_metric)==null?void 0:d[e],s=e==="net_in"||e==="net_out"?{minWidth:"55px"}:void 0;return u.jsxs("div",{className:x6.statContainer,children:[u.jsx(q,{className:x6.label,children:t}),u.jsx("div",{className:x6.valueContainer,style:s,children:u.jsx(q,{className:x6.value,children:Nqe(e,a)})})]})}function Nqe(e,t){if(t===void 0||t===-1)return"-";if(e==="net_in"||e==="net_out"){const n=t*8,r=Cp(t*8,{precision:n>1e9?2:0}),i=Number(r.value);if(!t)return"0";const o=r.unit.replace("B","b");return`${i} ${o}/s`}if(e==="bundle_rx_delay_millis_p90"||e==="bundle_rtt_smoothed_millis")return`${Math.max(1,Math.round(t))} ms`;if(e==="verify"||e==="dedup"||e==="pack"){if(t<.01&&t>0)return`${(t*100).toFixed(2)}%`;{const n=t*100;return`${Math.trunc(n)}%`}}return t.toLocaleString()}const $qe="_btn_1lb0v_1",Mqe={btn:$qe};let WM=!1;function Lqe({children:e,tileCountArr:t,liveBusyPerTile:n,queryIdlePerTile:r,width:i,header:o,isExpanded:a,setIsExpanded:s}){return t.length>1?u.jsxs(QZ,{open:a,onOpenChange:l=>{WM||(s(l),WM=!0,setTimeout(()=>WM=!1,10))},defaultOpen:!1,children:[u.jsx(eq,{children:a?u.jsx("div",{}):u.jsx(hs,{className:Mqe.btn,children:e})}),u.jsx(tq,{width:`${i}px`,size:"1",side:"top",sideOffset:-17,align:"center",children:u.jsxs(V,{gap:"3",direction:"column",children:[o,n?n.map((l,c)=>u.jsx(Rqe,{busy:l},c)):t==null?void 0:t.map((l,c)=>{const d=r==null?void 0:r.map(f=>f[c]!==void 0&&f[c]!==-1?1-f[c]:void 0).filter(Cb);if(d!=null&&d.length)return u.jsxs(V,{children:[u.jsx(c_,{history:d}),u.jsx(Xk,{busy:rt.mean(d)})]},c)})]})})]}):u.jsx(V,{gap:"1",children:e})}function Rqe({busy:e}){const t=H$(e);return u.jsxs(V,{children:[u.jsx(c_,{value:t}),u.jsx(Xk,{busy:t})]})}function Wa({header:e,subHeader:t,tileCount:n,statLabel:r,liveIdlePerTile:i,queryIdlePerTile:o,metricType:a,sparklineHeight:s,isExpanded:l=!1,setIsExpanded:c=()=>{},isDark:d=!1,isNarrow:f}){const[p,{width:v}]=Ss(),_=X(Cn)===void 0,{avgBusy:y,aggQueryBusyPerTs:b,tileCountArr:w,liveBusyPerTile:x,busy:S}=poe({isLive:_,tileCount:n,liveIdlePerTile:i,queryIdlePerTile:o}),C=H$(y);return u.jsx(V,{ref:p,children:u.jsx(so,{className:Te(Dp.fullWidth,d&&Dp.dark),isNarrow:f,children:u.jsxs(V,{direction:"column",justify:"between",height:"100%",gap:"1",children:[u.jsx(Tse,{header:e,subHeader:t,statLabel:r,metricType:a}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(c_,{value:b===void 0?C:void 0,history:b,height:s,background:d?vk:void 0}),u.jsxs(Lqe,{tileCountArr:w,liveBusyPerTile:x,queryIdlePerTile:o,width:v,header:u.jsx(Tse,{header:e,subHeader:t,statLabel:r,metricType:a}),isExpanded:l,setIsExpanded:c,children:[u.jsx("div",{className:Dp.tileContainer,children:w.map((j,T)=>{const E=S==null?void 0:S[T];return E===void 0?u.jsx("div",{className:Dp.tile,style:{background:d?"#232A38":"gray"}},T):u.jsx("div",{className:Dp.tile,style:{"--busy":`${E*100}%`}},T)})}),u.jsx(Xk,{busy:C})]})]})})})}function Tse({header:e,subHeader:t,metricType:n,statLabel:r}){return u.jsxs(V,{justify:"between",gap:"1",children:[u.jsxs(V,{direction:"column",gap:"0",children:[u.jsx(q,{className:Dp.header,children:e}),t&&u.jsx(q,{className:Dp.subHeader,children:t})]}),n&&u.jsx(Eqe,{type:n,label:r})]})}function VM(){var s;const e=X(Cn),t=!e,n=X(rg),r=X(Nb),i=X(Hze),o=tc(e),a=m.useMemo(()=>{var l,c;if(!(!((c=(l=o.response)==null?void 0:l.tile_timers)!=null&&c.length)||t||!n))return o.response.tile_timers.reduce((d,f)=>{var v;if(!f.tile_timers.length)return d;const p={};f.tile_timers.length!==n.length&&console.warn("Length mismatch between tiles and time timers",f.tile_timers,n);for(let _=0;_u.jsx(Wa,{header:s,tileCount:r[s],liveIdlePerTile:i==null?void 0:i[s],queryIdlePerTile:o||a==null?void 0:a[s],statLabel:"",sparklineHeight:Oqe,isExpanded:n,setIsExpanded:t},s))})}function Dqe(){const e=m.useRef({}),t=X(zp),n=X(b_),r=X(fp),i=r??(t==null?void 0:t-1),o=Ug(i),a=Ug(n);return e.current.replaySlotsPerSecond=o,e.current.turbineSlotsPerSecond=a,m.useEffect(()=>{if(t==null||n==null||e.current.totalSlotsEstimate!=null)return;const s=Ise(400,100,t,r,n);e.current={totalSlotsEstimate:s}},[r,n,t,e]),Qu(()=>{const s=e.current.totalSlotsEstimate;if(t==null||n==null||s==null||o==null||a==null)return;const l=Ise(o,a,t,r,n),c=r==null||l==null?void 0:l+t-1-r,d=o===0||c==null?void 0:c/o;if(e.current.remainingSeconds=d,!l||l>=s)return;const f=Math.min(.15*s,s-l),p=s-f;e.current.totalSlotsEstimate=p},500),e}function Ise(e,t,n,r,i){const o=r??n-1;if(o===i)return i-n;if(e<=t)return;const a=o-n+1,s=e*(i-o)/(e-t);return a+s}function Aqe({catchingUpRates:e}){const t=X(zp),n=X(b_),r=X(fp),i=e.replaySlotsPerSecond,o=e.turbineSlotsPerSecond,a=i==null||o==null?void 0:Math.round(i-o);return u.jsxs(Mt,{mt:"3px",className:ur.barsStatsContainer,children:[u.jsxs(V,{justify:"between",className:ur.barsStatsRow,children:[u.jsx(C6,{className:ur.replayed,value:r==null||t==null?void 0:r-t+1,label:"Slots Replayed"}),u.jsx(C6,{className:ur.toReplay,value:r==null||n==null?void 0:n-r,label:"Slots Remaining"})]}),u.jsxs(V,{justify:"between",className:ur.barsStatsColumn,children:[u.jsx(C6,{className:ur.speed,value:i,label:"Slots/s Replay Speed"}),u.jsx(C6,{className:ur.speed,value:a,label:"Slots/s Catchup Speed"})]})]})}function C6({value:e,label:t,className:n}){const r=e===void 0?"--":e.toLocaleString(void 0,{maximumFractionDigits:0});return u.jsxs(q,{truncate:!0,className:n,children:[u.jsxs(q,{className:ur.bold,children:[r," "]}),t]})}function Ese(){return u.jsx(V,{gapX:"15px",gapY:"5px",wrap:"wrap",children:Object.entries(OZe).map(([e,t])=>u.jsxs(V,{gap:"5px",flexShrink:"0",children:[u.jsx("div",{className:lu.legendColorBox,style:{backgroundColor:t}}),u.jsx(q,{className:lu.legendLabel,children:e})]},e))})}function Fqe(){const e=Ee(NM),t=X(tZe),n=Dqe(),r=X(zp),i=X(b_),o=X(fp),a=m.useMemo(()=>{if(r==null||i==null||o==null)return 0;const l=i-r+1;if(!l)return 0;const c=o-r+1;return rt.clamp(c/l,0,1)},[o,i,r]),s=Soe(a);return u.jsxs(u.Fragment,{children:[u.jsx(J$,{phaseCompleteFraction:a,overallCompleteFraction:s,remainingSeconds:n.current.remainingSeconds}),u.jsxs(V,{direction:"column",mt:"8px",gap:"8px",className:yd.startupContentIndentation,children:[t&&u.jsxs(V,{ref:e,direction:"column",gap:"5px",children:[u.jsx(MZe,{}),u.jsx(fZe,{catchingUpRatesRef:n}),u.jsx($Ze,{}),u.jsx(Aqe,{catchingUpRates:n.current})]}),u.jsxs(V,{direction:"column",className:ur.card,mb:"14px",children:[u.jsxs(V,{gapX:"15px",gapY:"2",align:"center",wrap:"wrap",children:[u.jsx(q,{className:ur.title,children:"Shreds"}),u.jsx(Ese,{})]}),u.jsx(hse,{flexGrow:"1",minHeight:"280px",chartId:"catching-up-shreds",isOnStartupScreen:!0})]}),u.jsx(zqe,{})]})]})}const Bqe="_secondary-color_1cuvx_1",Uqe="_card_1cuvx_5",Wqe="_pie-chart-title_1cuvx_18",Vqe="_pie-chart-container_1cuvx_24",Hqe="_pie-chart_1cuvx_18",Zqe="_shimmer_1cuvx_58",qqe="_threshold-marker_1cuvx_43",Gqe="_marker-line_1cuvx_47",Yqe="_marker-icon_1cuvx_51",Kqe="_overlay_1cuvx_74",Xqe="_pie-chart-content_1cuvx_86",Jqe="_lg_1cuvx_93",Qqe="_eighty_1cuvx_97",eGe="_details-box_1cuvx_103",tGe="_copyButton_1cuvx_105",nGe="_label_1cuvx_111",rGe="_snapshot-source_1cuvx_116",wi={secondaryColor:Bqe,card:Uqe,pieChartTitle:Wqe,pieChartContainer:Vqe,pieChart:Hqe,shimmer:Zqe,thresholdMarker:qqe,markerLine:Gqe,markerIcon:Yqe,overlay:Kqe,pieChartContent:Xqe,lg:Jqe,eighty:Qqe,detailsBox:eGe,copyButton:tGe,label:nGe,snapshotSource:rGe},iGe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("circle",{cx:12,cy:12,r:8})),oGe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6 2.69-6 6-6m0-2c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8z"})),aGe="_container_1vhtf_1",sGe="_horizontal_1vhtf_4",lGe="_vertical_1vhtf_9",uGe="_table-card_1vhtf_15",cGe="_narrow_1vhtf_21",dGe="_rows-container_1vhtf_26",fGe="_row_1vhtf_26",hGe="_xnarrow_1vhtf_44",pGe="_online_1vhtf_48",mGe="_pubkey-text_1vhtf_51",gGe="_peer_1vhtf_56",vGe="_status_1vhtf_62",yGe="_version_1vhtf_66",bGe="_client-icon_1vhtf_66",_Ge="_client-icon-placeholder_1vhtf_66",xGe="_suffix_1vhtf_70",wGe="_offline_1vhtf_75",kGe="_header-row_1vhtf_92",SGe="_toggle-row_1vhtf_97",CGe="_cell_1vhtf_116",jGe="_header_1vhtf_92",TGe="_pubkey_1vhtf_51",IGe="_stake_1vhtf_174",EGe="_stake-pct_1vhtf_187",un={container:aGe,horizontal:sGe,vertical:lGe,tableCard:uGe,narrow:cGe,rowsContainer:dGe,row:fGe,xnarrow:hGe,online:pGe,pubkeyText:mGe,peer:gGe,status:vGe,version:yGe,clientIcon:bGe,clientIconPlaceholder:_Ge,suffix:xGe,offline:wGe,headerRow:kGe,toggleRow:SGe,cell:CGe,header:jGe,pubkey:TGe,stake:IGe,stakePct:EGe},NGe="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='%23111113'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3c/svg%3e",$Ge="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='%23111113'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='%23111113'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cg%20clip-path='url(%23clip0_474_23049)'%3e%3cpath%20d='M39.3846%2011.9422C39.3846%207.91449%2036.1195%204.64941%2032.0918%204.64941C28.0641%204.64941%2024.7991%207.91449%2024.7991%2011.9422C24.7991%2015.9698%2028.0641%2019.2349%2032.0918%2019.2349C36.1195%2019.2349%2039.3846%2015.9698%2039.3846%2011.9422Z'%20fill='white'/%3e%3cpath%20d='M32.0907%2017.6901C35.3062%2017.6901%2037.9129%2015.0834%2037.9129%2011.8678C37.9129%208.65226%2035.3062%206.04553%2032.0907%206.04553C28.8751%206.04553%2026.2684%208.65226%2026.2684%2011.8678C26.2684%2015.0834%2028.8751%2017.6901%2032.0907%2017.6901Z'%20fill='white'%20stroke='%23000000F2'%20stroke-width='0.540037'/%3e%3cpath%20d='M32.6719%2010.4479C32.2543%2010.7361%2031.8053%2010.8349%2031.3257%2010.7436C30.8452%2010.6529%2030.4636%2010.4018%2030.1799%209.99083L29.7579%209.3793L30.3633%208.96143L30.7854%209.57296C30.9533%209.81627%2031.1774%209.96374%2031.4585%2010.0148C31.7388%2010.0665%2032.0029%2010.0068%2032.249%209.83693L33.3171%209.09511C33.6566%208.85936%2034.123%208.94414%2034.3578%209.2843L32.6719%2010.4479Z'%20fill='%23000000F2'/%3e%3cpath%20d='M33.4893%2012.4798C33.2006%2012.0614%2033.1011%2011.6119%2033.1914%2011.1321C33.2812%2010.6515%2033.5315%2010.27%2033.9417%209.98692L34.552%209.56567L34.9707%2010.1723L34.3603%2010.5935C34.1175%2010.7611%2033.9705%2010.9851%2033.92%2011.2664C33.8688%2011.5468%2033.9289%2011.8111%2034.0991%2012.0577L34.8439%2013.1301C35.0793%2013.469%2034.9946%2013.9345%2034.6551%2014.1689L33.4893%2012.4798Z'%20fill='%23000000F2'/%3e%3cpath%20d='M31.4498%2013.3013C31.8674%2013.013%2032.3164%2012.9143%2032.796%2013.0055C33.2764%2013.0962%2033.6581%2013.3473%2033.9417%2013.7583L34.3638%2014.3698L33.7584%2014.7877L33.3363%2014.1762C33.1684%2013.9329%2032.9442%2013.7854%2032.6631%2013.7343C32.3828%2013.6827%2032.1188%2013.7423%2031.8726%2013.9122L30.8045%2014.654C30.4651%2014.8898%2029.9986%2014.805%2029.7639%2014.4648L31.4498%2013.3013Z'%20fill='%23000000F2'/%3e%3cpath%20d='M30.6689%2011.3224C30.9576%2011.7408%2031.0571%2012.1903%2030.9668%2012.6701C30.877%2013.1507%2030.6267%2013.5321%2030.2165%2013.8152L29.6062%2014.2365L29.1875%2013.6299L29.7979%2013.2086C30.0407%2013.041%2030.1877%2012.817%2030.2383%2012.5358C30.2894%2012.2554%2030.2293%2011.9911%2030.0591%2011.7445L29.3143%2010.672C29.0789%2010.3332%2029.1636%209.86764%2029.5031%209.6333L30.6689%2011.3224Z'%20fill='%23000000F2'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_474_23049'%3e%3crect%20width='15'%20height='15'%20fill='white'%20transform='translate(24.5%204.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",MGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cg%20clip-path='url(%23clip0_bam)'%3e%3cg%20transform='translate(25.5%204.5)%20scale(0.1%200.10204)'%3e%3cpath%20d='M124.208%2034.2304C125.338%2034.8826%20125.338%2035.939%20124.208%2036.5912L100.697%2050.1653C99.5673%2050.8175%2097.7375%2050.8175%2096.6079%2050.1653L85.4912%2043.7471C83.8097%2042.7763%2081.0548%2042.6789%2079.3221%2043.6202C77.5894%2044.5616%2077.5025%2046.217%2079.2301%2047.2144L90.4746%2053.7064C91.6041%2054.3586%2091.6041%2055.415%2090.4746%2056.0672L66.9634%2069.6413C65.8338%2070.2935%2064.0041%2070.2935%2062.8745%2069.6413L5.62989%2036.5912C4.50034%2035.939%204.50033%2034.8826%205.62989%2034.2304L62.8694%201.18319C63.9989%200.531042%2065.8338%200.528091%2066.9634%201.18024L124.208%2034.2304ZM58.7805%2037.7745C57.0887%2036.7977%2054.3389%2036.7977%2052.6471%2037.7745L49.5805%2039.545C47.8887%2040.5218%2047.8887%2042.1094%2049.5805%2043.0861C51.2722%2044.0629%2054.022%2044.0629%2055.7138%2043.0861L58.7805%2041.3156C60.4723%2040.3388%2060.4723%2038.7512%2058.7805%2037.7745ZM78.2028%2026.561C76.511%2025.5843%2073.7612%2025.5843%2072.0694%2026.561L69.0027%2028.3316C67.311%2029.3083%2067.3109%2030.8959%2069.0027%2031.8727C70.6945%2032.8494%2073.4443%2032.8494%2075.1361%2031.8727L78.2028%2030.1021C79.8945%2029.1254%2079.8945%2027.5378%2078.2028%2026.561Z'%20fill='white'/%3e%3cpath%20d='M59.2891%2076.1449L2.04445%2043.0947C0.914891%2042.4425%200%2042.9707%200%2044.275V110.375C0%20111.674%200.914891%20113.264%202.04445%20113.916L24.5334%20126.9C25.663%20127.553%2026.5779%20127.024%2026.5779%20125.72V108.162C26.5779%20106.226%2027.871%20105.285%2029.5423%20106.185C31.2136%20107.085%2032.7112%20109.555%2032.7112%20111.556V129.261C32.7112%20130.566%2033.6261%20132.15%2034.7557%20132.802L59.2891%20146.967C60.4135%20147.616%2061.3335%20147.085%2061.3335%20145.786V79.6859C61.3335%2078.3816%2060.4135%2076.7941%2059.2891%2076.1449ZM32.7112%2086.7681C32.7112%2088.7216%2031.3363%2089.5154%2029.6445%2088.5387C27.9527%2087.5619%2026.5779%2085.1805%2026.5779%2083.227V79.6859C26.5779%2077.7265%2027.9476%2076.9357%2029.6445%2077.9154C31.3414%2078.8951%2032.7112%2081.2676%2032.7112%2083.227V86.7681Z'%20fill='white'/%3e%3cpath%20d='M129.768%2044.2782L129.758%20110.384C129.758%20111.683%20128.838%20113.276%20127.714%20113.926L115.447%20121.008C114.318%20121.66%20113.403%20121.126%20113.403%20119.821V102.116C113.403%20100.115%20111.977%2099.3333%20110.239%20100.402C108.501%20101.47%20107.269%20103.869%20107.269%20105.805V123.363C107.269%20124.667%20106.349%20126.254%20105.22%20126.907L92.9531%20133.989C91.8235%20134.641%2090.9086%20134.107%2090.9086%20132.803V115.097C90.9086%20113.096%2089.4826%20112.314%2087.7448%20113.383C86.007%20114.451%2084.7753%20116.85%2084.7753%20118.786V136.344C84.7753%20137.648%2083.8553%20139.235%2082.7257%20139.888L70.459%20146.97C69.3294%20147.622%2068.4146%20147.082%2068.4146%20145.784L68.4248%2079.6773C68.435%2078.373%2069.3499%2076.7884%2070.4794%2076.1362L93.9906%2062.562C95.1202%2061.9099%2096.0351%2062.444%2096.0351%2063.7483V76.7323C96.0351%2078.7212%2097.4508%2079.5091%2099.1835%2078.4556C100.916%2077.4021%20102.163%2074.9883%20102.163%2073.0466V60.2101C102.163%2058.9058%20103.083%2057.3183%20104.213%2056.6661L127.724%2043.0919C128.848%2042.4427%20129.768%2042.9739%20129.768%2044.2782Z'%20fill='white'/%3e%3c/g%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_bam'%3e%3crect%20width='13'%20height='15'%20fill='white'%20transform='translate(25.5%204.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",LGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M30.9666%2013.9482L32%204.5V15.7351H30.4462L29.7889%2016.2729L29.3705%2016.0637V15.6963L30.3462%2014.9648H31.1439L30.9666%2013.9482Z'%20fill='white'/%3e%3cpath%20d='M33.0334%2013.9482L32%204.5V15.7351H33.5538L34.2112%2016.2729L34.6295%2016.0637V15.6963L33.6539%2014.9648H32.8562L33.0334%2013.9482Z'%20fill='white'/%3e%3cpath%20d='M32.7769%2016.0338H31.2231L31.5278%2018.1254C31.9083%2017.9732%2032.1222%2017.9697%2032.5027%2018.1254L32.7769%2016.0338Z'%20fill='white'/%3e%3ccircle%20cx='32'%20cy='18.9024'%20r='0.597609'%20fill='white'/%3e%3c/svg%3e",RGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M30.3732%2012.8333L28.5766%2017.4999H26.5V12.8333H30.3732Z'%20fill='white'/%3e%3cpath%20d='M32.2294%207.25712L26.5%2012.8333V6.5H33.007L32.2294%207.25712Z'%20fill='white'/%3e%3cpath%20d='M37.5001%2017.4997H28.5142L29.2508%2016.7805L35.0308%2011.1317L31.1466%2011.1272L32.9948%206.5H33.7908C36.6966%206.5%2038.0893%2010.2843%2035.9518%2012.3714L34.1024%2014.1786L34.1002%2014.181L37.5001%2017.5V17.4997Z'%20fill='white'/%3e%3c/svg%3e",OGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M16.1566%209.23523L18.3627%2017.4735H12.9886L11.3783%2014.6581L9.93787%2017.2225H6.92126L6.00037%2013.9823L7.64783%2011.9999L10.9594%2013.9257L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M26.0904%2015.5H24.5V8.5H26.0904V15.5Z'%20fill='white'/%3e%3cpath%20d='M39.5%2015.5H37.9096V8.5H39.5V15.5Z'%20fill='white'/%3e%3cpath%20d='M36.0011%2013.9841H32.8203V12.6465H36.0011V13.9841Z'%20fill='white'/%3e%3cpath%20d='M27.9989%2012.6465H26.3583V11.2049H27.9989V12.6465Z'%20fill='white'/%3e%3cpath%20d='M32.8203%2012.6465H31.1797V11.2049H32.8203V12.6465Z'%20fill='white'/%3e%3cpath%20d='M37.6417%2012.6465H36.0011V11.2049H37.6417V12.6465Z'%20fill='white'/%3e%3cpath%20d='M31.1797%2011.2049H27.9989V9.8673H31.1797V11.2049Z'%20fill='white'/%3e%3c/svg%3e",PGe="/assets/firedancer_circle_logo-D9jlxCje.svg",zGe="/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg",DGe="/assets/frankendancer_circle_logo-D5z79vwQ.svg",AGe="/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg",FGe="data:image/svg+xml,%3csvg%20width='35'%20height='20'%20viewBox='0%200%2035%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='25'%20cy='10'%20r='9.5'%20stroke='%233E332E'/%3e%3cmask%20id='path-2-inside-1_10887_28103'%20fill='white'%3e%3cpath%20d='M10%200C13.2712%200%2016.1755%201.57069%2018%203.99902C16.7442%205.67051%2016%207.74835%2016%2010C16%2012.2514%2016.7445%2014.3286%2018%2016C16.1756%2018.4287%2013.2715%2020%2010%2020C4.47715%2020%200%2015.5228%200%2010C0%204.47715%204.47715%200%2010%200Z'/%3e%3c/mask%3e%3cpath%20d='M18%203.99902L18.7995%204.5997L19.2508%203.99902L18.7995%203.39835L18%203.99902ZM18%2016L18.7995%2016.6006L19.2507%2016L18.7995%2015.3994L18%2016ZM10%200V1C12.9434%201%2015.5568%202.41194%2017.2005%204.5997L18%203.99902L18.7995%203.39835C16.7943%200.729431%2013.599%20-1%2010%20-1V0ZM18%203.99902L17.2005%203.39835C15.819%205.23708%2015%207.52433%2015%2010H16H17C17%207.97237%2017.6693%206.10394%2018.7995%204.5997L18%203.99902ZM16%2010H15C15%2012.4755%2015.8194%2014.7621%2017.2005%2016.6006L18%2016L18.7995%2015.3994C17.6695%2013.8951%2017%2012.0272%2017%2010H16ZM18%2016L17.2005%2015.3994C15.5567%2017.5876%2012.9436%2019%2010%2019V20V21C13.5994%2021%2016.7944%2019.2698%2018.7995%2016.6006L18%2016ZM10%2020V19C5.02944%2019%201%2014.9706%201%2010H0H-1C-1%2016.0751%203.92487%2021%2010%2021V20ZM0%2010H1C1%205.02944%205.02944%201%2010%201V0V-1C3.92487%20-1%20-1%203.92487%20-1%2010H0Z'%20fill='%233E332E'%20mask='url(%23path-2-inside-1_10887_28103)'/%3e%3c/svg%3e",BGe="_small-icon_imn4j_1",UGe="_medium-icon_imn4j_5",WGe="_large-icon_imn4j_9",VGe="_xlarge-icon_imn4j_13",HGe={smallIcon:BGe,mediumIcon:UGe,largeIcon:WGe,xlargeIcon:VGe},ZGe={[za.Frankendancer]:{src:DGe,alt:"Frankendancer Logo"},[za.Firedancer]:{src:PGe,alt:"Firedancer Logo"},[za.Agave]:{src:NGe,alt:"Anza Logo"},[za.AgaveJito]:{src:$Ge,alt:"Anza Jito Logo"},[za.AgavePaladin]:{src:LGe,alt:"Anza Paladin Logo"},[za.AgaveBam]:{src:MGe,alt:"Anza Bam Logo"},[za.AgaveRakurai]:{src:RGe,alt:"Anza Rakurai Logo"},[za.Sig]:null,[za.FiredancerHarmonic]:{src:zGe,alt:"Firedancer Harmonic Logo"},[za.AgaveHarmonic]:{src:OGe,alt:"Anza Harmonic Logo"},[za.FrankendancerHarmonic]:{src:AGe,alt:"Frankendancer Harmonic Logo"}},Nse=m.memo(function({client:e,size:t,showPlaceholder:n,className:r,placeholderClassName:i}){const o=Te(HGe[`${t}Icon`],r),a=e?ZGe[e]:void 0;return a?u.jsx("img",{src:a.src,alt:a.alt,className:o}):n?u.jsx("img",{src:FGe,alt:"Empty clients logo",className:Te(o,i)}):null}),qGe=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",minimumSignificantDigits:3,maximumSignificantDigits:3});function HM(e){if(e==null)return;const t=qGe.formatToParts(Number(e)/dd);let n="",r;for(const{value:i,type:o}of t)o==="compact"?r=i:n+=i;return{formatted:n,suffix:r}}function GGe(e,t,n){if(e==null||!t)return;const r=10**n,i=100n*BigInt(r)*e/t;return Number(i)/r}const j6=0,uh=1,e1=2,$se=4;function Mse(e){return()=>e}function YGe(e){e()}function x_(e,t){return n=>e(t(n))}function Lse(e,t){return()=>e(t)}function KGe(e,t){return n=>e(t,n)}function ZM(e){return e!==void 0}function XGe(...e){return()=>{e.map(YGe)}}function t1(){}function T6(e,t){return t(e),e}function JGe(e,t){return t(e)}function Dr(...e){return e}function qn(e,t){return e(uh,t)}function Jt(e,t){e(j6,t)}function qM(e){e(e1)}function ki(e){return e($se)}function yt(e,t){return qn(e,KGe(t,j6))}function uu(e,t){const n=e(uh,r=>{n(),t(r)});return n}function Rse(e){let t,n;return r=>i=>{t=i,n&&clearTimeout(n),n=setTimeout(()=>{r(t)},e)}}function Ose(e,t){return e===t}function Ar(e=Ose){let t;return n=>r=>{e(t,r)||(t=r,n(r))}}function zt(e){return t=>n=>{e(n)&&t(n)}}function lt(e){return t=>x_(t,e)}function nc(e){return t=>()=>{t(e)}}function Ue(e,...t){const n=QGe(...t);return(r,i)=>{switch(r){case e1:qM(e);return;case uh:return qn(e,n(i))}}}function rc(e,t){return n=>r=>{n(t=e(t,r))}}function Ap(e){return t=>n=>{e>0?e--:t(n)}}function kd(e){let t=null,n;return r=>i=>{t=i,!n&&(n=setTimeout(()=>{n=void 0,r(t)},e))}}function cn(...e){const t=new Array(e.length);let n=0,r=null;const i=Math.pow(2,e.length)-1;return e.forEach((o,a)=>{const s=Math.pow(2,a);qn(o,l=>{const c=n;n=n|s,t[a]=l,c!==i&&n===i&&r&&(r(),r=null)})}),o=>a=>{const s=()=>{o([a].concat(t))};n===i?s():r=s}}function QGe(...e){return t=>e.reduceRight(JGe,t)}function eYe(e){let t,n;const r=()=>t==null?void 0:t();return function(i,o){switch(i){case uh:return o?n===o?void 0:(r(),n=o,t=qn(e,o),t):(r(),t1);case e1:r(),n=null;return}}}function Ye(e){let t=e;const n=kn();return(r,i)=>{switch(r){case j6:t=i;break;case uh:{i(t);break}case $se:return t}return n(r,i)}}function Wo(e,t){return T6(Ye(t),n=>yt(e,n))}function kn(){const e=[];return(t,n)=>{switch(t){case j6:e.slice().forEach(r=>{r(n)});return;case e1:e.splice(0,e.length);return;case uh:return e.push(n),()=>{const r=e.indexOf(n);r>-1&&e.splice(r,1)}}}}function Es(e){return T6(kn(),t=>yt(e,t))}function Rn(e,t=[],{singleton:n}={singleton:!0}){return{constructor:e,dependencies:t,id:tYe(),singleton:n}}const tYe=()=>Symbol();function nYe(e){const t=new Map,n=({constructor:r,dependencies:i,id:o,singleton:a})=>{if(a&&t.has(o))return t.get(o);const s=r(i.map(l=>n(l)));return a&&t.set(o,s),s};return n(e)}function Oi(...e){const t=kn(),n=new Array(e.length);let r=0;const i=Math.pow(2,e.length)-1;return e.forEach((o,a)=>{const s=Math.pow(2,a);qn(o,l=>{n[a]=l,r=r|s,r===i&&Jt(t,n)})}),function(o,a){switch(o){case e1:{qM(t);return}case uh:return r===i&&a(n),qn(t,a)}}}function Rt(e,t=Ose){return Ue(e,Ar(t))}function GM(...e){return function(t,n){switch(t){case e1:return;case uh:return XGe(...e.map(r=>qn(r,n)))}}}var Va=(e=>(e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e))(Va||{});const rYe={0:"debug",3:"error",1:"log",2:"warn"},iYe=()=>typeof globalThis>"u"?window:globalThis,ch=Rn(()=>{const e=Ye(3);return{log:Ye((t,n,r=1)=>{var i;const o=(i=iYe().VIRTUOSO_LOG_LEVEL)!=null?i:ki(e);r>=o&&console[rYe[r]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",t,n)}),logLevel:e}},[],{singleton:!0});function ic(e,t,n){return YM(e,t,n).callbackRef}function YM(e,t,n){const r=Oe.useRef(null);let i=a=>{};const o=Oe.useMemo(()=>typeof ResizeObserver<"u"?new ResizeObserver(a=>{const s=()=>{const l=a[0].target;l.offsetParent!==null&&e(l)};n?s():requestAnimationFrame(s)}):null,[e,n]);return i=a=>{a&&t?(o==null||o.observe(a),r.current=a):(r.current&&(o==null||o.unobserve(r.current)),r.current=null)},{callbackRef:i,ref:r}}function Pse(e,t,n,r,i,o,a,s,l){const c=Oe.useCallback(d=>{const f=oYe(d.children,t,s?"offsetWidth":"offsetHeight",i);let p=d.parentElement;for(;!p.dataset.virtuosoScroller;)p=p.parentElement;const v=p.lastElementChild.dataset.viewportType==="window";let _;v&&(_=p.ownerDocument.defaultView);const y=a?s?a.scrollLeft:a.scrollTop:v?s?_.scrollX||_.document.documentElement.scrollLeft:_.scrollY||_.document.documentElement.scrollTop:s?p.scrollLeft:p.scrollTop,b=a?s?a.scrollWidth:a.scrollHeight:v?s?_.document.documentElement.scrollWidth:_.document.documentElement.scrollHeight:s?p.scrollWidth:p.scrollHeight,w=a?s?a.offsetWidth:a.offsetHeight:v?s?_.innerWidth:_.innerHeight:s?p.offsetWidth:p.offsetHeight;r({scrollHeight:b,scrollTop:Math.max(y,0),viewportHeight:w}),o==null||o(s?zse("column-gap",getComputedStyle(d).columnGap,i):zse("row-gap",getComputedStyle(d).rowGap,i)),f!==null&&e(f)},[e,t,i,o,a,r,s]);return YM(c,n,l)}function oYe(e,t,n,r){const i=e.length;if(i===0)return null;const o=[];for(let a=0;a{if(!(l!=null&&l.offsetParent))return;const c=l.getBoundingClientRect(),d=c.width;let f,p;if(t){const v=t.getBoundingClientRect(),_=c.top-v.top;p=v.height-Math.max(0,_),f=_+t.scrollTop}else{const v=a.current.ownerDocument.defaultView;p=v.innerHeight-Math.max(0,c.top),f=c.top+v.scrollY}r.current={offsetTop:f,visibleHeight:p,visibleWidth:d},e(r.current)},[e,t]),{callbackRef:o,ref:a}=YM(i,!0,n),s=Oe.useCallback(()=>{i(a.current)},[i,a]);return Oe.useEffect(()=>{var l;if(t){t.addEventListener("scroll",s);const c=new ResizeObserver(()=>{requestAnimationFrame(s)});return c.observe(t),()=>{t.removeEventListener("scroll",s),c.unobserve(t)}}else{const c=(l=a.current)==null?void 0:l.ownerDocument.defaultView;return c==null||c.addEventListener("scroll",s),c==null||c.addEventListener("resize",s),()=>{c==null||c.removeEventListener("scroll",s),c==null||c.removeEventListener("resize",s)}}},[s,t,a]),o}const ga=Rn(()=>{const e=kn(),t=kn(),n=Ye(0),r=kn(),i=Ye(0),o=kn(),a=kn(),s=Ye(0),l=Ye(0),c=Ye(0),d=Ye(0),f=kn(),p=kn(),v=Ye(!1),_=Ye(!1),y=Ye(!1);return yt(Ue(e,lt(({scrollTop:b})=>b)),t),yt(Ue(e,lt(({scrollHeight:b})=>b)),a),yt(t,i),{deviation:n,fixedFooterHeight:c,fixedHeaderHeight:l,footerHeight:d,headerHeight:s,horizontalDirection:_,scrollBy:p,scrollContainerState:e,scrollHeight:a,scrollingInProgress:v,scrollTo:f,scrollTop:t,skipAnimationFrameInResizeObserver:y,smoothScrollTargetReached:r,statefulScrollTop:i,viewportHeight:o}},[],{singleton:!0}),w_={lvl:0};function Dse(e,t){const n=e.length;if(n===0)return[];let{index:r,value:i}=t(e[0]);const o=[];for(let a=1;at&&(s=s.concat(JM(i,t,n))),r>=t&&r<=n&&s.push({k:r,v:a}),r<=n&&(s=s.concat(JM(o,t,n))),s}function E6(e){const{l:t,lvl:n,r}=e;if(r.lvl>=n-1&&t.lvl>=n-1)return e;if(n>r.lvl+1){if(QM(t))return Wse(Gi(e,{lvl:n-1}));if(!_r(t)&&!_r(t.r))return Gi(t.r,{l:Gi(t,{r:t.r.l}),lvl:n,r:Gi(e,{l:t.r.r,lvl:n-1})});throw new Error("Unexpected empty nodes")}else{if(QM(e))return eL(Gi(e,{lvl:n-1}));if(!_r(r)&&!_r(r.l)){const i=r.l,o=QM(i)?r.lvl-1:r.lvl;return Gi(i,{l:Gi(e,{lvl:n-1,r:i.l}),lvl:i.lvl+1,r:eL(Gi(r,{l:i.r,lvl:o}))})}else throw new Error("Unexpected empty nodes")}}function Gi(e,t){return Bse(t.k!==void 0?t.k:e.k,t.v!==void 0?t.v:e.v,t.lvl!==void 0?t.lvl:e.lvl,t.l!==void 0?t.l:e.l,t.r!==void 0?t.r:e.r)}function Ase(e){return _r(e.r)?e.l:E6(Gi(e,{r:Ase(e.r)}))}function QM(e){return _r(e)||e.lvl>e.r.lvl}function Fse(e){return _r(e.r)?[e.k,e.v]:Fse(e.r)}function Bse(e,t,n,r=w_,i=w_){return{k:e,l:r,lvl:n,r:i,v:t}}function Use(e){return eL(Wse(e))}function Wse(e){const{l:t}=e;return!_r(t)&&t.lvl===e.lvl?Gi(t,{r:Gi(e,{l:t.r})}):e}function eL(e){const{lvl:t,r:n}=e;return!_r(n)&&!_r(n.r)&&n.lvl===t&&n.r.lvl===t?Gi(n,{l:Gi(e,{r:n.l}),lvl:t+1}):e}function aYe(e){return Dse(e,({k:t,v:n})=>({index:t,value:n}))}function Vse(e,t){return!!(e&&e.startIndex===t.startIndex&&e.endIndex===t.endIndex)}function S_(e,t){return!!(e&&e[0]===t[0]&&e[1]===t[1])}const tL=Rn(()=>({recalcInProgress:Ye(!1)}),[],{singleton:!0});function Hse(e,t,n){return e[N6(e,t,n)]}function N6(e,t,n,r=0){let i=e.length-1;for(;r<=i;){const o=Math.floor((r+i)/2),a=e[o],s=n(a,t);if(s===0)return o;if(s===-1){if(i-r<2)return o-1;i=o-1}else{if(i===r)return o;r=o+1}}throw new Error(`Failed binary finding record in array - ${e.join(",")}, searched for ${t}`)}function sYe(e,t,n,r){const i=N6(e,t,r),o=N6(e,n,r,i);return e.slice(i,o+1)}function du(e,t){return Math.round(e.getBoundingClientRect()[t])}function $6(e){return!_r(e.groupOffsetTree)}function nL({index:e},t){return t===e?0:t=f||o===p)&&(e=XM(e,f)):(c=p!==o,l=!0),d>i&&i>=f&&p!==o&&(e=Ns(e,i+1,p));c&&(e=Ns(e,a,o))}return[e,n]}function cYe(e){return typeof e.groupIndex<"u"}function dYe({offset:e},t){return t===e?0:t0?s+n:s}function Zse(e,t){if(!$6(t))return e;let n=0;for(;t.groupIndices[n]<=e+n;)n++;return e+n}function qse(e,t,n){if(cYe(e))return t.groupIndices[e.groupIndex]+1;{const r=e.index==="LAST"?n:e.index;let i=Zse(r,t);return i=Math.max(0,i,Math.min(n,i)),i}}function fYe(e,t,n,r=0){return r>0&&(t=Math.max(t,Hse(e,r,nL).offset)),Dse(sYe(e,t,n,dYe),mYe)}function hYe(e,[t,n,r,i]){t.length>0&&r("received item sizes",t,Va.DEBUG);const o=e.sizeTree;let a=o,s=0;if(n.length>0&&_r(o)&&t.length===2){const p=t[0].size,v=t[1].size;a=n.reduce((_,y)=>Ns(Ns(_,y,p),y+1,v),a)}else[a,s]=uYe(a,t);if(a===o)return e;const{lastIndex:l,lastOffset:c,lastSize:d,offsetTree:f}=rL(e.offsetTree,s,a,i);return{groupIndices:n,groupOffsetTree:n.reduce((p,v)=>Ns(p,v,C_(v,f,i)),n1()),lastIndex:l,lastOffset:c,lastSize:d,offsetTree:f,sizeTree:a}}function pYe(e){return Fp(e).map(({k:t,v:n},r,i)=>{const o=i[r+1];return{endIndex:o?o.k-1:1/0,size:n,startIndex:t}})}function Gse(e,t){let n=0,r=0;for(;ni.start===r&&(i.end===t||i.end===1/0)&&i.value===n}const vYe={offsetHeight:"height",offsetWidth:"width"},oc=Rn(([{log:e},{recalcInProgress:t}])=>{const n=kn(),r=kn(),i=Wo(r,0),o=kn(),a=kn(),s=Ye(0),l=Ye([]),c=Ye(void 0),d=Ye(void 0),f=Ye((j,T)=>du(j,vYe[T])),p=Ye(void 0),v=Ye(0),_=lYe(),y=Wo(Ue(n,cn(l,e,v),rc(hYe,_),Ar()),_),b=Wo(Ue(l,Ar(),rc((j,T)=>({current:T,prev:j.current}),{current:[],prev:[]}),lt(({prev:j})=>j)),[]);yt(Ue(l,zt(j=>j.length>0),cn(y,v),lt(([j,T,E])=>{const $=j.reduce((A,M,P)=>Ns(A,M,C_(M,T.offsetTree,E)||P),n1());return{...T,groupIndices:j,groupOffsetTree:$}})),y),yt(Ue(r,cn(y),zt(([j,{lastIndex:T}])=>j[{endIndex:T,size:E,startIndex:j}])),n),yt(c,d);const w=Wo(Ue(c,lt(j=>j===void 0)),!0);yt(Ue(d,zt(j=>j!==void 0&&_r(ki(y).sizeTree)),lt(j=>[{endIndex:0,size:j,startIndex:0}])),n);const x=Es(Ue(n,cn(y),rc(({sizes:j},[T,E])=>({changed:E!==j,sizes:E}),{changed:!1,sizes:_}),lt(j=>j.changed)));qn(Ue(s,rc((j,T)=>({diff:j.prev-T,prev:T}),{diff:0,prev:0}),lt(j=>j.diff)),j=>{const{groupIndices:T}=ki(y);if(j>0)Jt(t,!0),Jt(o,j+Gse(j,T));else if(j<0){const E=ki(b);E.length>0&&(j-=Gse(-j,E)),Jt(a,j)}}),qn(Ue(s,cn(e)),([j,T])=>{j<0&&T("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value",{firstItemIndex:s},Va.ERROR)});const S=Es(o);yt(Ue(o,cn(y),lt(([j,T])=>{const E=T.groupIndices.length>0,$=[],A=T.lastSize;if(E){const M=k_(T.sizeTree,0);let P=0,te=0;for(;P{let Y=O.ranges;return O.prevSize!==0&&(Y=[...O.ranges,{endIndex:J+j-1,size:O.prevSize,startIndex:O.prevIndex}]),{prevIndex:J+j,prevSize:D,ranges:Y}},{prevIndex:j,prevSize:0,ranges:$}).ranges}return Fp(T.sizeTree).reduce((M,{k:P,v:te})=>({prevIndex:P+j,prevSize:te,ranges:[...M.ranges,{endIndex:P+j-1,size:M.prevSize,startIndex:M.prevIndex}]}),{prevIndex:0,prevSize:A,ranges:[]}).ranges})),n);const C=Es(Ue(a,cn(y,v),lt(([j,{offsetTree:T},E])=>{const $=-j;return C_($,T,E)})));return yt(Ue(a,cn(y,v),lt(([j,T,E])=>{if(T.groupIndices.length>0){if(_r(T.sizeTree))return T;let $=n1();const A=ki(b);let M=0,P=0,te=0;for(;M<-j;){te=A[P];const Z=A[P+1]-te-1;P++,M+=Z+1}if($=Fp(T.sizeTree).reduce((Z,{k:O,v:J})=>Ns(Z,Math.max(0,O+j),J),$),M!==-j){const Z=k_(T.sizeTree,te);$=Ns($,0,Z);const O=cu(T.sizeTree,-j+1)[1];$=Ns($,1,O)}return{...T,sizeTree:$,...rL(T.offsetTree,0,$,E)}}else{const $=Fp(T.sizeTree).reduce((A,{k:M,v:P})=>Ns(A,Math.max(0,M+j),P),n1());return{...T,sizeTree:$,...rL(T.offsetTree,0,$,E)}}})),y),{beforeUnshiftWith:S,data:p,defaultItemSize:d,firstItemIndex:s,fixedItemSize:c,gap:v,groupIndices:l,itemSize:f,listRefresh:x,shiftWith:a,shiftWithOffset:C,sizeRanges:n,sizes:y,statefulTotalCount:i,totalCount:r,trackItemSizes:w,unshiftWith:o}},Dr(ch,tL),{singleton:!0});function yYe(e){return e.reduce((t,n)=>(t.groupIndices.push(t.totalCount),t.totalCount+=n+1,t),{groupIndices:[],totalCount:0})}const Yse=Rn(([{groupIndices:e,sizes:t,totalCount:n},{headerHeight:r,scrollTop:i}])=>{const o=kn(),a=kn(),s=Es(Ue(o,lt(yYe)));return yt(Ue(s,lt(l=>l.totalCount)),n),yt(Ue(s,lt(l=>l.groupIndices)),e),yt(Ue(Oi(i,t,r),zt(([l,c])=>$6(c)),lt(([l,c,d])=>cu(c.groupOffsetTree,Math.max(l-d,0),"v")[0]),Ar(),lt(l=>[l])),a),{groupCounts:o,topItemsIndexes:a}},Dr(oc,ga)),dh=Rn(([{log:e}])=>{const t=Ye(!1),n=Es(Ue(t,zt(r=>r),Ar()));return qn(t,r=>{r&&ki(e)("props updated",{},Va.DEBUG)}),{didMount:n,propsReady:t}},Dr(ch),{singleton:!0}),bYe=typeof document<"u"&&"scrollBehavior"in document.documentElement.style;function Kse(e){const t=typeof e=="number"?{index:e}:e;return t.align||(t.align="start"),(!t.behavior||!bYe)&&(t.behavior="auto"),t.offset||(t.offset=0),t}const j_=Rn(([{gap:e,listRefresh:t,sizes:n,totalCount:r},{fixedFooterHeight:i,fixedHeaderHeight:o,footerHeight:a,headerHeight:s,scrollingInProgress:l,scrollTo:c,smoothScrollTargetReached:d,viewportHeight:f},{log:p}])=>{const v=kn(),_=kn(),y=Ye(0);let b=null,w=null,x=null;function S(){b&&(b(),b=null),x&&(x(),x=null),w&&(clearTimeout(w),w=null),Jt(l,!1)}return yt(Ue(v,cn(n,f,r,y,s,a,p),cn(e,o,i),lt(([[C,j,T,E,$,A,M,P],te,Z,O])=>{const J=Kse(C),{align:D,behavior:Y,offset:F}=J,H=E-1,ee=qse(J,j,H);let ce=C_(ee,j.offsetTree,te)+A;D==="end"?(ce+=Z+cu(j.sizeTree,ee)[1]-T+O,ee===H&&(ce+=M)):D==="center"?ce+=(Z+cu(j.sizeTree,ee)[1]-T+O)/2:ce-=$,F&&(ce+=F);const U=ae=>{S(),ae?(P("retrying to scroll to",{location:C},Va.DEBUG),Jt(v,C)):(Jt(_,!0),P("list did not change, scroll successful",{},Va.DEBUG))};if(S(),Y==="smooth"){let ae=!1;x=qn(t,je=>{ae=ae||je}),b=uu(d,()=>{U(ae)})}else b=uu(Ue(t,_Ye(150)),U);return w=setTimeout(()=>{S()},1200),Jt(l,!0),P("scrolling from index to",{behavior:Y,index:ee,top:ce},Va.DEBUG),{behavior:Y,top:ce}})),c),{scrollTargetReached:_,scrollToIndex:v,topListHeight:y}},Dr(oc,ga,ch),{singleton:!0});function _Ye(e){return t=>{const n=setTimeout(()=>{t(!1)},e);return r=>{r&&(t(!0),clearTimeout(n))}}}function iL(e,t){e==0?t():requestAnimationFrame(()=>{iL(e-1,t)})}function oL(e,t){const n=t-1;return typeof e=="number"?e:e.index==="LAST"?n:e.index}const T_=Rn(([{defaultItemSize:e,listRefresh:t,sizes:n},{scrollTop:r},{scrollTargetReached:i,scrollToIndex:o},{didMount:a}])=>{const s=Ye(!0),l=Ye(0),c=Ye(!0);return yt(Ue(a,cn(l),zt(([d,f])=>!!f),nc(!1)),s),yt(Ue(a,cn(l),zt(([d,f])=>!!f),nc(!1)),c),qn(Ue(Oi(t,a),cn(s,n,e,c),zt(([[,d],f,{sizeTree:p},v,_])=>d&&(!_r(p)||ZM(v))&&!f&&!_),cn(l)),([,d])=>{uu(i,()=>{Jt(c,!0)}),iL(4,()=>{uu(r,()=>{Jt(s,!0)}),Jt(o,d)})}),{initialItemFinalLocationReached:c,initialTopMostItemIndex:l,scrolledToInitialItem:s}},Dr(oc,ga,j_,dh),{singleton:!0});function Xse(e,t){return Math.abs(e-t)<1.01}const I_="up",E_="down",xYe="none",wYe={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollHeight:0,scrollTop:0,viewportHeight:0}},kYe=0,N_=Rn(([{footerHeight:e,headerHeight:t,scrollBy:n,scrollContainerState:r,scrollTop:i,viewportHeight:o}])=>{const a=Ye(!1),s=Ye(!0),l=kn(),c=kn(),d=Ye(4),f=Ye(kYe),p=Wo(Ue(GM(Ue(Rt(i),Ap(1),nc(!0)),Ue(Rt(i),Ap(1),nc(!1),Rse(100))),Ar()),!1),v=Wo(Ue(GM(Ue(n,nc(!0)),Ue(n,nc(!1),Rse(200))),Ar()),!1);yt(Ue(Oi(Rt(i),Rt(f)),lt(([x,S])=>x<=S),Ar()),s),yt(Ue(s,kd(50)),c);const _=Es(Ue(Oi(r,Rt(o),Rt(t),Rt(e),Rt(d)),rc((x,[{scrollHeight:S,scrollTop:C},j,T,E,$])=>{const A=C+j-S>-$,M={scrollHeight:S,scrollTop:C,viewportHeight:j};if(A){let te,Z;return C>x.state.scrollTop?(te="SCROLLED_DOWN",Z=x.state.scrollTop-C):(te="SIZE_DECREASED",Z=x.state.scrollTop-C||x.scrollTopDelta),{atBottom:!0,atBottomBecause:te,scrollTopDelta:Z,state:M}}let P;return M.scrollHeight>x.state.scrollHeight?P="SIZE_INCREASED":jx&&x.atBottom===S.atBottom))),y=Wo(Ue(r,rc((x,{scrollHeight:S,scrollTop:C,viewportHeight:j})=>{if(Xse(x.scrollHeight,S))return{changed:!1,jump:0,scrollHeight:S,scrollTop:C};{const T=S-(C+j)<1;return x.scrollTop!==C&&T?{changed:!0,jump:x.scrollTop-C,scrollHeight:S,scrollTop:C}:{changed:!0,jump:0,scrollHeight:S,scrollTop:C}}},{changed:!1,jump:0,scrollHeight:0,scrollTop:0}),zt(x=>x.changed),lt(x=>x.jump)),0);yt(Ue(_,lt(x=>x.atBottom)),a),yt(Ue(a,kd(50)),l);const b=Ye(E_);yt(Ue(r,lt(({scrollTop:x})=>x),Ar(),rc((x,S)=>ki(v)?{direction:x.direction,prevScrollTop:S}:{direction:Sx.direction)),b),yt(Ue(r,kd(50),nc(xYe)),b);const w=Ye(0);return yt(Ue(p,zt(x=>!x),nc(0)),w),yt(Ue(i,kd(100),cn(p),zt(([x,S])=>!!S),rc(([x,S],[C])=>[S,C],[0,0]),lt(([x,S])=>S-x)),w),{atBottomState:_,atBottomStateChange:l,atBottomThreshold:d,atTopStateChange:c,atTopThreshold:f,isAtBottom:a,isAtTop:s,isScrolling:p,lastJumpDueToItemResize:y,scrollDirection:b,scrollVelocity:w}},Dr(ga)),M6="top",L6="bottom",Jse="none";function Qse(e,t,n){return typeof e=="number"?n===I_&&t===M6||n===E_&&t===L6?e:0:n===I_?t===M6?e.main:e.reverse:t===L6?e.main:e.reverse}function ele(e,t){var n;return typeof e=="number"?e:(n=e[t])!=null?n:0}const aL=Rn(([{deviation:e,fixedHeaderHeight:t,headerHeight:n,scrollTop:r,viewportHeight:i}])=>{const o=kn(),a=Ye(0),s=Ye(0),l=Ye(0),c=Wo(Ue(Oi(Rt(r),Rt(i),Rt(n),Rt(o,S_),Rt(l),Rt(a),Rt(t),Rt(e),Rt(s)),lt(([d,f,p,[v,_],y,b,w,x,S])=>{const C=d-x,j=b+w,T=Math.max(p-C,0);let E=Jse;const $=ele(S,M6),A=ele(S,L6);return v-=x,v+=p+w,_+=p+w,_-=x,v>d+j-$&&(E=I_),_d!=null),Ar(S_)),[0,0]);return{increaseViewportBy:s,listBoundary:o,overscan:l,topListHeight:a,visibleRange:c}},Dr(ga),{singleton:!0});function SYe(e,t,n){if($6(t)){const r=Zse(e,t);return[{index:cu(t.groupOffsetTree,r)[0],offset:0,size:0},{data:n==null?void 0:n[0],index:r,offset:0,size:0}]}return[{data:n==null?void 0:n[0],index:e,offset:0,size:0}]}const sL={bottom:0,firstItemIndex:0,items:[],offsetBottom:0,offsetTop:0,top:0,topItems:[],topListHeight:0,totalCount:0};function R6(e,t,n,r,i,o){const{lastIndex:a,lastOffset:s,lastSize:l}=i;let c=0,d=0;if(e.length>0){c=e[0].offset;const y=e[e.length-1];d=y.offset+y.size}const f=n-a,p=s+f*l+(f-1)*r,v=c,_=p-d;return{bottom:d,firstItemIndex:o,items:nle(e,i,o),offsetBottom:_,offsetTop:c,top:v,topItems:nle(t,i,o),topListHeight:t.reduce((y,b)=>b.size+y,0),totalCount:n}}function tle(e,t,n,r,i,o){let a=0;if(n.groupIndices.length>0)for(const d of n.groupIndices){if(d-a>=e)break;a++}const s=e+a,l=oL(t,s),c=Array.from({length:s}).map((d,f)=>({data:o[f+l],index:f+l,offset:0,size:0}));return R6(c,[],s,i,n,r)}function nle(e,t,n){if(e.length===0)return[];if(!$6(t))return e.map(c=>({...c,index:c.index+n,originalIndex:c.index}));const r=e[0].index,i=e[e.length-1].index,o=[],a=I6(t.groupOffsetTree,r,i);let s,l=0;for(const c of e){(!s||s.end{const y=Ye([]),b=Ye(0),w=kn();yt(o.topItemsIndexes,y);const x=Wo(Ue(Oi(v,_,Rt(l,S_),Rt(i),Rt(r),Rt(c),d,Rt(y),Rt(t),Rt(n),e),zt(([T,E,,$,,,,,,,A])=>{const M=A&&A.length!==$;return T&&!E&&!M}),lt(([,,[T,E],$,A,M,P,te,Z,O,J])=>{const D=A,{offsetTree:Y,sizeTree:F}=D,H=ki(b);if($===0)return{...sL,totalCount:$};if(T===0&&E===0)return H===0?{...sL,totalCount:$}:tle(H,M,A,Z,O,J||[]);if(_r(F))return H>0?null:R6(SYe(oL(M,$),D,J),[],$,O,D,Z);const ee=[];if(te.length>0){const me=te[0],ke=te[te.length-1];let he=0;for(const ue of I6(F,me,ke)){const re=ue.value,ge=Math.max(ue.start,me),$e=Math.min(ue.end,ke);for(let pe=ge;pe<=$e;pe++)ee.push({data:J==null?void 0:J[pe],index:pe,offset:he,size:re}),he+=re}}if(!P)return R6([],ee,$,O,D,Z);const ce=te.length>0?te[te.length-1]+1:0,U=fYe(Y,T,E,ce);if(U.length===0)return null;const ae=$-1,je=T6([],me=>{for(const ke of U){const he=ke.value;let ue=he.offset,re=ke.start;const ge=he.size;if(he.offset=E);pe++)me.push({data:J==null?void 0:J[pe],index:pe,offset:ue,size:ge}),ue+=ge+O}});return R6(je,ee,$,O,D,Z)}),zt(T=>T!==null),Ar()),sL);yt(Ue(e,zt(ZM),lt(T=>T==null?void 0:T.length)),i),yt(Ue(x,lt(T=>T.topListHeight)),f),yt(f,s),yt(Ue(x,lt(T=>[T.top,T.bottom])),a),yt(Ue(x,lt(T=>T.items)),w);const S=Es(Ue(x,zt(({items:T})=>T.length>0),cn(i,e),zt(([{items:T},E])=>T[T.length-1].originalIndex===E-1),lt(([,T,E])=>[T-1,E]),Ar(S_),lt(([T])=>T))),C=Es(Ue(x,kd(200),zt(({items:T,topItems:E})=>T.length>0&&T[0].originalIndex===E.length),lt(({items:T})=>T[0].index),Ar())),j=Es(Ue(x,zt(({items:T})=>T.length>0),lt(({items:T})=>{let E=0,$=T.length-1;for(;T[E].type==="group"&&E<$;)E++;for(;T[$].type==="group"&&$>E;)$--;return{endIndex:T[$].index,startIndex:T[E].index}}),Ar(Vse)));return{endReached:S,initialItemCount:b,itemsRendered:w,listState:x,rangeChanged:j,startReached:C,topItemsIndexes:y,...p}},Dr(oc,Yse,aL,T_,j_,N_,dh,tL),{singleton:!0}),rle=Rn(([{fixedFooterHeight:e,fixedHeaderHeight:t,footerHeight:n,headerHeight:r},{listState:i}])=>{const o=kn(),a=Wo(Ue(Oi(n,e,r,t,i),lt(([s,l,c,d,f])=>s+l+c+d+f.offsetBottom+f.bottom)),0);return yt(Rt(a),o),{totalListHeight:a,totalListHeightChanged:o}},Dr(ga,Bp),{singleton:!0}),CYe=Rn(([{viewportHeight:e},{totalListHeight:t}])=>{const n=Ye(!1),r=Wo(Ue(Oi(n,e,t),zt(([i])=>i),lt(([,i,o])=>Math.max(0,i-o)),kd(0),Ar()),0);return{alignToBottom:n,paddingTopAddition:r}},Dr(ga,rle),{singleton:!0}),ile=Rn(()=>({context:Ye(null)})),jYe=({itemBottom:e,itemTop:t,locationParams:{align:n,behavior:r,...i},viewportBottom:o,viewportTop:a})=>to?{...i,align:n??"end",behavior:r}:null,ole=Rn(([{gap:e,sizes:t,totalCount:n},{fixedFooterHeight:r,fixedHeaderHeight:i,headerHeight:o,scrollingInProgress:a,scrollTop:s,viewportHeight:l},{scrollToIndex:c}])=>{const d=kn();return yt(Ue(d,cn(t,l,n,o,i,r,s),cn(e),lt(([[f,p,v,_,y,b,w,x],S])=>{const{align:C,behavior:j,calculateViewLocation:T=jYe,done:E,...$}=f,A=qse(f,p,_-1),M=C_(A,p.offsetTree,S)+y+b,P=M+cu(p.sizeTree,A)[1],te=x+b,Z=x+v-w,O=T({itemBottom:P,itemTop:M,locationParams:{align:C,behavior:j,...$},viewportBottom:Z,viewportTop:te});return O?E&&uu(Ue(a,zt(J=>!J),Ap(ki(a)?1:2)),E):E&&E(),O}),zt(f=>f!==null)),c),{scrollIntoView:d}},Dr(oc,ga,j_,Bp,ch),{singleton:!0});function ale(e){return e?e==="smooth"?"smooth":"auto":!1}const TYe=(e,t)=>typeof e=="function"?ale(e(t)):t&&ale(e),IYe=Rn(([{listRefresh:e,totalCount:t,fixedItemSize:n,data:r},{atBottomState:i,isAtBottom:o},{scrollToIndex:a},{scrolledToInitialItem:s},{didMount:l,propsReady:c},{log:d},{scrollingInProgress:f},{context:p},{scrollIntoView:v}])=>{const _=Ye(!1),y=kn();let b=null;function w(j){Jt(a,{align:"end",behavior:j,index:"LAST"})}qn(Ue(Oi(Ue(Rt(t),Ap(1)),l),cn(Rt(_),o,s,f),lt(([[j,T],E,$,A,M])=>{let P=T&&A,te="auto";return P&&(te=TYe(E,$||M),P=P&&!!te),{followOutputBehavior:te,shouldFollow:P,totalCount:j}}),zt(({shouldFollow:j})=>j)),({followOutputBehavior:j,totalCount:T})=>{b&&(b(),b=null),ki(n)?requestAnimationFrame(()=>{ki(d)("following output to ",{totalCount:T},Va.DEBUG),w(j)}):b=uu(e,()=>{ki(d)("following output to ",{totalCount:T},Va.DEBUG),w(j),b=null})});function x(j){const T=uu(i,E=>{j&&!E.atBottom&&E.notAtBottomBecause==="SIZE_INCREASED"&&!b&&(ki(d)("scrolling to bottom due to increased size",{},Va.DEBUG),w("auto"))});setTimeout(T,100)}qn(Ue(Oi(Rt(_),t,c),zt(([j,,T])=>j&&T),rc(({value:j},[,T])=>({refreshed:j===T,value:T}),{refreshed:!1,value:0}),zt(({refreshed:j})=>j),cn(_,t)),([,j])=>{ki(s)&&x(j!==!1)}),qn(y,()=>{x(ki(_)!==!1)}),qn(Oi(Rt(_),i),([j,T])=>{j&&!T.atBottom&&T.notAtBottomBecause==="VIEWPORT_HEIGHT_DECREASING"&&w("auto")});const S=Ye(null),C=kn();return yt(GM(Ue(Rt(r),lt(j=>{var T;return(T=j==null?void 0:j.length)!=null?T:0})),Ue(Rt(t))),C),qn(Ue(Oi(Ue(C,Ap(1)),l),cn(Rt(S),s,f,p),lt(([[j,T],E,$,A,M])=>T&&$&&(E==null?void 0:E({context:M,totalCount:j,scrollingInProgress:A}))),zt(j=>!!j),kd(0)),j=>{b&&(b(),b=null),ki(n)?requestAnimationFrame(()=>{ki(d)("scrolling into view",{}),Jt(v,j)}):b=uu(e,()=>{ki(d)("scrolling into view",{}),Jt(v,j),b=null})}),{autoscrollToBottom:y,followOutput:_,scrollIntoViewOnChange:S}},Dr(oc,N_,j_,T_,dh,ch,ga,ile,ole)),EYe=Rn(([{data:e,firstItemIndex:t,gap:n,sizes:r},{initialTopMostItemIndex:i},{initialItemCount:o,listState:a},{didMount:s}])=>(yt(Ue(s,cn(o),zt(([,l])=>l!==0),cn(i,r,t,n,e),lt(([[,l],c,d,f,p,v=[]])=>tle(l,c,d,f,p,v))),a),{}),Dr(oc,T_,Bp,dh),{singleton:!0}),NYe=Rn(([{didMount:e},{scrollTo:t},{listState:n}])=>{const r=Ye(0);return qn(Ue(e,cn(r),zt(([,i])=>i!==0),lt(([,i])=>({top:i}))),i=>{uu(Ue(n,Ap(1),zt(o=>o.items.length>1)),()=>{requestAnimationFrame(()=>{Jt(t,i)})})}),{initialScrollTop:r}},Dr(dh,ga,Bp),{singleton:!0}),sle=Rn(([{scrollVelocity:e}])=>{const t=Ye(!1),n=kn(),r=Ye(!1);return yt(Ue(e,cn(r,t,n),zt(([i,o])=>!!o),lt(([i,o,a,s])=>{const{enter:l,exit:c}=o;if(a){if(c(i,s))return!1}else if(l(i,s))return!0;return a}),Ar()),t),qn(Ue(Oi(t,e,n),cn(r)),([[i,o,a],s])=>{i&&s&&s.change&&s.change(o,a)}),{isSeeking:t,scrollSeekConfiguration:r,scrollSeekRangeChanged:n,scrollVelocity:e}},Dr(N_),{singleton:!0}),lL=Rn(([{scrollContainerState:e,scrollTo:t}])=>{const n=kn(),r=kn(),i=kn(),o=Ye(!1),a=Ye(void 0);return yt(Ue(Oi(n,r),lt(([{scrollHeight:s,scrollTop:l,viewportHeight:c},{offsetTop:d}])=>({scrollHeight:s,scrollTop:Math.max(0,l-d),viewportHeight:c}))),e),yt(Ue(t,cn(r),lt(([s,{offsetTop:l}])=>({...s,top:s.top+l}))),i),{customScrollParent:a,useWindowScroll:o,windowScrollContainerState:n,windowScrollTo:i,windowViewportRect:r}},Dr(ga)),$Ye=Rn(([{sizeRanges:e,sizes:t},{headerHeight:n,scrollTop:r},{initialTopMostItemIndex:i},{didMount:o},{useWindowScroll:a,windowScrollContainerState:s,windowViewportRect:l}])=>{const c=kn(),d=Ye(void 0),f=Ye(null),p=Ye(null);return yt(s,f),yt(l,p),qn(Ue(c,cn(t,r,a,f,p,n)),([v,_,y,b,w,x,S])=>{const C=pYe(_.sizeTree);b&&w!==null&&x!==null&&(y=w.scrollTop-x.offsetTop),y-=S,v({ranges:C,scrollTop:y})}),yt(Ue(d,zt(ZM),lt(MYe)),i),yt(Ue(o,cn(d),zt(([,v])=>v!==void 0),Ar(),lt(([,v])=>v.ranges)),e),{getState:c,restoreStateFrom:d}},Dr(oc,ga,T_,dh,lL));function MYe(e){return{align:"start",index:0,offset:e.scrollTop}}const LYe=Rn(([{topItemsIndexes:e}])=>{const t=Ye(0);return yt(Ue(t,zt(n=>n>=0),lt(n=>Array.from({length:n}).map((r,i)=>i))),e),{topItemCount:t}},Dr(Bp));function lle(e){let t=!1,n;return()=>(t||(t=!0,n=e()),n)}const RYe=lle(()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent)),OYe=Rn(([{deviation:e,scrollBy:t,scrollingInProgress:n,scrollTop:r},{isAtBottom:i,isScrolling:o,lastJumpDueToItemResize:a,scrollDirection:s},{listState:l},{beforeUnshiftWith:c,gap:d,shiftWithOffset:f,sizes:p},{log:v},{recalcInProgress:_}])=>{const y=Es(Ue(l,cn(a),rc(([,w,x,S],[{bottom:C,items:j,offsetBottom:T,totalCount:E},$])=>{const A=C+T;let M=0;return x===E&&w.length>0&&j.length>0&&(j[0].originalIndex===0&&w[0].originalIndex===0||(M=A-S,M!==0&&(M+=$))),[M,j,E,A]},[0,[],0,0]),zt(([w])=>w!==0),cn(r,s,n,i,v,_),zt(([,w,x,S,,,C])=>!C&&!S&&w!==0&&x===I_),lt(([[w],,,,,x])=>(x("Upward scrolling compensation",{amount:w},Va.DEBUG),w))));function b(w){w>0?(Jt(t,{behavior:"auto",top:-w}),Jt(e,0)):(Jt(e,0),Jt(t,{behavior:"auto",top:-w}))}return qn(Ue(y,cn(e,o)),([w,x,S])=>{S&&RYe()?Jt(e,x-w):b(-w)}),qn(Ue(Oi(Wo(o,!1),e,_),zt(([w,x,S])=>!w&&!S&&x!==0),lt(([w,x])=>x),kd(1)),b),yt(Ue(f,lt(w=>({top:-w}))),t),qn(Ue(c,cn(p,d),lt(([w,{groupIndices:x,lastSize:S,sizeTree:C},j])=>{function T(E){return E*(S+j)}if(x.length===0)return T(w);{let E=0;const $=k_(C,0);let A=0,M=0;for(;Aw&&(E-=$,P=w-A+1),A+=P,E+=T(P),M++}return E}})),w=>{Jt(e,w),requestAnimationFrame(()=>{Jt(t,{top:w}),requestAnimationFrame(()=>{Jt(e,0),Jt(_,!1)})})}),{deviation:e}},Dr(ga,N_,Bp,oc,ch,tL)),PYe=Rn(([e,t,n,r,i,o,a,s,l,c,d])=>({...e,...t,...n,...r,...i,...o,...a,...s,...l,...c,...d}),Dr(aL,EYe,dh,sle,rle,NYe,CYe,lL,ole,ch,ile)),ule=Rn(([{data:e,defaultItemSize:t,firstItemIndex:n,fixedItemSize:r,gap:i,groupIndices:o,itemSize:a,sizeRanges:s,sizes:l,statefulTotalCount:c,totalCount:d,trackItemSizes:f},{initialItemFinalLocationReached:p,initialTopMostItemIndex:v,scrolledToInitialItem:_},y,b,w,{listState:x,topItemsIndexes:S,...C},{scrollToIndex:j},T,{topItemCount:E},{groupCounts:$},A])=>(yt(C.rangeChanged,A.scrollSeekRangeChanged),yt(Ue(A.windowViewportRect,lt(M=>M.visibleHeight)),y.viewportHeight),{data:e,defaultItemHeight:t,firstItemIndex:n,fixedItemHeight:r,gap:i,groupCounts:$,initialItemFinalLocationReached:p,initialTopMostItemIndex:v,scrolledToInitialItem:_,sizeRanges:s,topItemCount:E,topItemsIndexes:S,totalCount:d,...w,groupIndices:o,itemSize:a,listState:x,scrollToIndex:j,statefulTotalCount:c,trackItemSizes:f,...C,...A,...y,sizes:l,...b}),Dr(oc,T_,ga,$Ye,IYe,Bp,j_,OYe,LYe,Yse,PYe));function zYe(e,t){const n={},r={};let i=0;const o=e.length;for(;i(w[x]=S=>{const C=b[t.methods[x]];Jt(C,S)},w),{})}function d(b){return a.reduce((w,x)=>(w[x]=eYe(b[t.events[x]]),w),{})}const f=Oe.forwardRef((b,w)=>{const{children:x,...S}=b,[C]=Oe.useState(()=>T6(nYe(e),E=>{l(E,S)})),[j]=Oe.useState(Lse(d,C));O6(()=>{for(const E of a)E in S&&qn(j[E],S[E]);return()=>{Object.values(j).map(qM)}},[S,j,C]),O6(()=>{l(C,S)}),Oe.useImperativeHandle(w,Mse(c(C)));const T=n;return u.jsx(s.Provider,{value:C,children:n?u.jsx(T,{...zYe([...r,...i,...a],S),children:x}):x})}),p=b=>{const w=Oe.useContext(s);return Oe.useCallback(x=>{Jt(w[b],x)},[w,b])},v=b=>{const w=Oe.useContext(s)[b],x=Oe.useCallback(S=>qn(w,S),[w]);return Oe.useSyncExternalStore(x,()=>ki(w),()=>ki(w))},_=b=>{const w=Oe.useContext(s)[b],[x,S]=Oe.useState(Lse(ki,w));return O6(()=>qn(w,C=>{C!==x&&S(Mse(C))}),[w,x]),x},y=Oe.version.startsWith("18")?v:_;return{Component:f,useEmitter:(b,w)=>{const x=Oe.useContext(s)[b];O6(()=>qn(x,w),[w,x])},useEmitterValue:y,usePublisher:p}}const P6=Oe.createContext(void 0),cle=Oe.createContext(void 0),dle=typeof document<"u"?Oe.useLayoutEffect:Oe.useEffect;function cL(e){return"self"in e}function DYe(e){return"body"in e}function fle(e,t,n,r=t1,i,o){const a=Oe.useRef(null),s=Oe.useRef(null),l=Oe.useRef(null),c=Oe.useCallback(p=>{let v,_,y;const b=p.target;if(DYe(b)||cL(b)){const x=cL(b)?b:b.defaultView;y=o?x.scrollX:x.scrollY,v=o?x.document.documentElement.scrollWidth:x.document.documentElement.scrollHeight,_=o?x.innerWidth:x.innerHeight}else y=o?b.scrollLeft:b.scrollTop,v=o?b.scrollWidth:b.scrollHeight,_=o?b.offsetWidth:b.offsetHeight;const w=()=>{e({scrollHeight:v,scrollTop:Math.max(y,0),viewportHeight:_})};p.suppressFlushSync?w():WB.flushSync(w),s.current!==null&&(y===s.current||y<=0||y===v-_)&&(s.current=null,t(!0),l.current&&(clearTimeout(l.current),l.current=null))},[e,t,o]);Oe.useEffect(()=>{const p=i||a.current;return r(i||a.current),c({suppressFlushSync:!0,target:p}),p.addEventListener("scroll",c,{passive:!0}),()=>{r(null),p.removeEventListener("scroll",c)}},[a,c,n,r,i]);function d(p){const v=a.current;if(!v||(o?"offsetWidth"in v&&v.offsetWidth===0:"offsetHeight"in v&&v.offsetHeight===0))return;const _=p.behavior==="smooth";let y,b,w;cL(v)?(b=Math.max(du(v.document.documentElement,o?"width":"height"),o?v.document.documentElement.scrollWidth:v.document.documentElement.scrollHeight),y=o?v.innerWidth:v.innerHeight,w=o?window.scrollX:window.scrollY):(b=v[o?"scrollWidth":"scrollHeight"],y=du(v,o?"width":"height"),w=v[o?"scrollLeft":"scrollTop"]);const x=b-y;if(p.top=Math.ceil(Math.max(Math.min(x,p.top),0)),Xse(y,b)||p.top===w){e({scrollHeight:b,scrollTop:w,viewportHeight:y}),_&&t(!0);return}_?(s.current=p.top,l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{l.current=null,s.current=null,t(!0)},1e3)):s.current=null,o&&(p={behavior:p.behavior,left:p.top}),v.scrollTo(p)}function f(p){o&&(p={behavior:p.behavior,left:p.top}),a.current.scrollBy(p)}return{scrollByCallback:f,scrollerRef:a,scrollToCallback:d}}const dL="-webkit-sticky",hle="sticky",fL=lle(()=>{if(typeof document>"u")return hle;const e=document.createElement("div");return e.style.position=dL,e.style.position===dL?dL:hle});function hL(e){return e}const AYe=Rn(()=>{const e=Ye(s=>`Item ${s}`),t=Ye(s=>`Group ${s}`),n=Ye({}),r=Ye(hL),i=Ye("div"),o=Ye(t1),a=(s,l=null)=>Wo(Ue(n,lt(c=>c[s]),Ar()),l);return{components:n,computeItemKey:r,EmptyPlaceholder:a("EmptyPlaceholder"),FooterComponent:a("Footer"),GroupComponent:a("Group","div"),groupContent:t,HeaderComponent:a("Header"),HeaderFooterTag:i,ItemComponent:a("Item","div"),itemContent:e,ListComponent:a("List","div"),ScrollerComponent:a("Scroller","div"),scrollerRef:o,ScrollSeekPlaceholder:a("ScrollSeekPlaceholder"),TopItemListComponent:a("TopItemList")}}),FYe=Rn(([e,t])=>({...e,...t}),Dr(ule,AYe)),BYe=({height:e})=>u.jsx("div",{style:{height:e}}),UYe={overflowAnchor:"none",position:fL(),zIndex:1},ple={overflowAnchor:"none"},WYe={...ple,display:"inline-block",height:"100%"},mle=Oe.memo(function({showTopList:e=!1}){const t=Wt("listState"),n=ml("sizeRanges"),r=Wt("useWindowScroll"),i=Wt("customScrollParent"),o=ml("windowScrollContainerState"),a=ml("scrollContainerState"),s=i||r?o:a,l=Wt("itemContent"),c=Wt("context"),d=Wt("groupContent"),f=Wt("trackItemSizes"),p=Wt("itemSize"),v=Wt("log"),_=ml("gap"),y=Wt("horizontalDirection"),{callbackRef:b}=Pse(n,p,f,e?t1:s,v,_,i,y,Wt("skipAnimationFrameInResizeObserver")),[w,x]=Oe.useState(0);gL("deviation",O=>{w!==O&&x(O)});const S=Wt("EmptyPlaceholder"),C=Wt("ScrollSeekPlaceholder")||BYe,j=Wt("ListComponent"),T=Wt("ItemComponent"),E=Wt("GroupComponent"),$=Wt("computeItemKey"),A=Wt("isSeeking"),M=Wt("groupIndices").length>0,P=Wt("alignToBottom"),te=Wt("initialItemFinalLocationReached"),Z=e?{}:{boxSizing:"border-box",...y?{display:"inline-block",height:"100%",marginLeft:w!==0?w:P?"auto":0,paddingLeft:t.offsetTop,paddingRight:t.offsetBottom,whiteSpace:"nowrap"}:{marginTop:w!==0?w:P?"auto":0,paddingBottom:t.offsetBottom,paddingTop:t.offsetTop},...te?{}:{visibility:"hidden"}};return!e&&t.totalCount===0&&S?u.jsx(S,{...Fr(S,c)}):u.jsx(j,{...Fr(j,c),"data-testid":e?"virtuoso-top-item-list":"virtuoso-item-list",ref:b,style:Z,children:(e?t.topItems:t.items).map(O=>{const J=O.originalIndex,D=$(J+t.firstItemIndex,O.data,c);return A?m.createElement(C,{...Fr(C,c),height:O.size,index:O.index,key:D,type:O.type||"item",...O.type==="group"?{}:{groupIndex:O.groupIndex}}):O.type==="group"?m.createElement(E,{...Fr(E,c),"data-index":J,"data-item-index":O.index,"data-known-size":O.size,key:D,style:UYe},d(O.index,c)):m.createElement(T,{...Fr(T,c),...gle(T,O.data),"data-index":J,"data-item-group-index":O.groupIndex,"data-item-index":O.index,"data-known-size":O.size,key:D,style:y?WYe:ple},M?l(O.index,O.groupIndex,O.data,c):l(O.index,O.data,c))})})}),VYe={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},HYe={outline:"none",overflowX:"auto",position:"relative"},r1=e=>({height:"100%",position:"absolute",top:0,width:"100%",...e?{display:"flex",flexDirection:"column"}:{}}),ZYe={position:fL(),top:0,width:"100%",zIndex:1};function Fr(e,t){if(typeof e!="string")return{context:t}}function gle(e,t){return{item:typeof e=="string"?void 0:t}}const qYe=Oe.memo(function(){const e=Wt("HeaderComponent"),t=ml("headerHeight"),n=Wt("HeaderFooterTag"),r=ic(Oe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,Wt("skipAnimationFrameInResizeObserver")),i=Wt("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Fr(e,i)})}):null}),GYe=Oe.memo(function(){const e=Wt("FooterComponent"),t=ml("footerHeight"),n=Wt("HeaderFooterTag"),r=ic(Oe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,Wt("skipAnimationFrameInResizeObserver")),i=Wt("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Fr(e,i)})}):null});function pL({useEmitter:e,useEmitterValue:t,usePublisher:n}){return Oe.memo(function({children:r,style:i,context:o,...a}){const s=n("scrollContainerState"),l=t("ScrollerComponent"),c=n("smoothScrollTargetReached"),d=t("scrollerRef"),f=t("horizontalDirection")||!1,{scrollByCallback:p,scrollerRef:v,scrollToCallback:_}=fle(s,c,l,d,void 0,f);return e("scrollTo",_),e("scrollBy",p),u.jsx(l,{"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,ref:v,style:{...f?HYe:VYe,...i},tabIndex:0,...a,...Fr(l,o),children:r})})}function mL({useEmitter:e,useEmitterValue:t,usePublisher:n}){return Oe.memo(function({children:r,style:i,context:o,...a}){const s=n("windowScrollContainerState"),l=t("ScrollerComponent"),c=n("smoothScrollTargetReached"),d=t("totalListHeight"),f=t("deviation"),p=t("customScrollParent"),v=Oe.useRef(null),_=t("scrollerRef"),{scrollByCallback:y,scrollerRef:b,scrollToCallback:w}=fle(s,c,l,_,p);return dle(()=>{var x;return b.current=p||((x=v.current)==null?void 0:x.ownerDocument.defaultView),()=>{b.current=null}},[b,p]),e("windowScrollTo",w),e("scrollBy",y),u.jsx(l,{ref:v,"data-virtuoso-scroller":!0,style:{position:"relative",...i,...d!==0?{height:d+f}:{}},...a,...Fr(l,o),children:r})})}const YYe=({children:e})=>{const t=Oe.useContext(P6),n=ml("viewportHeight"),r=ml("fixedItemHeight"),i=Wt("alignToBottom"),o=Wt("horizontalDirection"),a=Oe.useMemo(()=>x_(n,l=>du(l,o?"width":"height")),[n,o]),s=ic(a,!0,Wt("skipAnimationFrameInResizeObserver"));return Oe.useEffect(()=>{t&&(n(t.viewportHeight),r(t.itemHeight))},[t,n,r]),u.jsx("div",{"data-viewport-type":"element",ref:s,style:r1(i),children:e})},KYe=({children:e})=>{const t=Oe.useContext(P6),n=ml("windowViewportRect"),r=ml("fixedItemHeight"),i=Wt("customScrollParent"),o=KM(n,i,Wt("skipAnimationFrameInResizeObserver")),a=Wt("alignToBottom");return Oe.useEffect(()=>{t&&(r(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,r]),u.jsx("div",{"data-viewport-type":"window",ref:o,style:r1(a),children:e})},XYe=({children:e})=>{const t=Wt("TopItemListComponent")||"div",n=Wt("headerHeight"),r={...ZYe,marginTop:`${n}px`},i=Wt("context");return u.jsx(t,{style:r,...Fr(t,i),children:e})},JYe=Oe.memo(function(e){const t=Wt("useWindowScroll"),n=Wt("topItemsIndexes").length>0,r=Wt("customScrollParent"),i=Wt("context");return u.jsxs(r||t?tKe:eKe,{...e,context:i,children:[n&&u.jsx(XYe,{children:u.jsx(mle,{showTopList:!0})}),u.jsxs(r||t?KYe:YYe,{children:[u.jsx(qYe,{}),u.jsx(mle,{}),u.jsx(GYe,{})]})]})}),{Component:QYe,useEmitter:gL,useEmitterValue:Wt,usePublisher:ml}=uL(FYe,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",scrollIntoViewOnChange:"scrollIntoViewOnChange",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",groupCounts:"groupCounts",topItemCount:"topItemCount",firstItemIndex:"firstItemIndex",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"HeaderFooterTag",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",horizontalDirection:"horizontalDirection",skipAnimationFrameInResizeObserver:"skipAnimationFrameInResizeObserver"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",autoscrollToBottom:"autoscrollToBottom",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},JYe),eKe=pL({useEmitter:gL,useEmitterValue:Wt,usePublisher:ml}),tKe=mL({useEmitter:gL,useEmitterValue:Wt,usePublisher:ml}),vL=QYe,nKe=Rn(()=>{const e=Ye(c=>u.jsxs("td",{children:["Item $",c]})),t=Ye(null),n=Ye(c=>u.jsxs("td",{colSpan:1e3,children:["Group ",c]})),r=Ye(null),i=Ye(null),o=Ye({}),a=Ye(hL),s=Ye(t1),l=(c,d=null)=>Wo(Ue(o,lt(f=>f[c]),Ar()),d);return{components:o,computeItemKey:a,context:t,EmptyPlaceholder:l("EmptyPlaceholder"),FillerRow:l("FillerRow"),fixedFooterContent:i,fixedHeaderContent:r,itemContent:e,groupContent:n,ScrollerComponent:l("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:l("ScrollSeekPlaceholder"),TableBodyComponent:l("TableBody","tbody"),TableComponent:l("Table","table"),TableFooterComponent:l("TableFoot","tfoot"),TableHeadComponent:l("TableHead","thead"),TableRowComponent:l("TableRow","tr"),GroupComponent:l("Group","tr")}}),rKe=Rn(([e,t])=>({...e,...t}),Dr(ule,nKe)),iKe=({height:e})=>u.jsx("tr",{children:u.jsx("td",{style:{height:e}})}),oKe=({height:e})=>u.jsx("tr",{children:u.jsx("td",{style:{border:0,height:e,padding:0}})}),aKe={overflowAnchor:"none"},vle={position:fL(),zIndex:2,overflowAnchor:"none"},yle=Oe.memo(function({showTopList:e=!1}){const t=Qt("listState"),n=Qt("computeItemKey"),r=Qt("firstItemIndex"),i=Qt("context"),o=Qt("isSeeking"),a=Qt("fixedHeaderHeight"),s=Qt("groupIndices").length>0,l=Qt("itemContent"),c=Qt("groupContent"),d=Qt("ScrollSeekPlaceholder")||iKe,f=Qt("GroupComponent"),p=Qt("TableRowComponent"),v=(e?t.topItems:[]).reduce((y,b,w)=>(w===0?y.push(b.size):y.push(y[w-1]+b.size),y),[]),_=(e?t.topItems:t.items).map(y=>{const b=y.originalIndex,w=n(b+r,y.data,i),x=e?b===0?0:v[b-1]:0;return o?m.createElement(d,{...Fr(d,i),height:y.size,index:y.index,key:w,type:y.type||"item"}):y.type==="group"?m.createElement(f,{...Fr(f,i),"data-index":b,"data-item-index":y.index,"data-known-size":y.size,key:w,style:{...vle,top:a}},c(y.index,i)):m.createElement(p,{...Fr(p,i),...gle(p,y.data),"data-index":b,"data-item-index":y.index,"data-known-size":y.size,"data-item-group-index":y.groupIndex,key:w,style:e?{...vle,top:a+x}:aKe},s?l(y.index,y.groupIndex,y.data,i):l(y.index,y.data,i))});return u.jsx(u.Fragment,{children:_})}),sKe=Oe.memo(function(){const e=Qt("listState"),t=Qt("topItemsIndexes").length>0,n=fu("sizeRanges"),r=Qt("useWindowScroll"),i=Qt("customScrollParent"),o=fu("windowScrollContainerState"),a=fu("scrollContainerState"),s=i||r?o:a,l=Qt("trackItemSizes"),c=Qt("itemSize"),d=Qt("log"),{callbackRef:f,ref:p}=Pse(n,c,l,s,d,void 0,i,!1,Qt("skipAnimationFrameInResizeObserver")),[v,_]=Oe.useState(0);yL("deviation",M=>{v!==M&&(p.current.style.marginTop=`${M}px`,_(M))});const y=Qt("EmptyPlaceholder"),b=Qt("FillerRow")||oKe,w=Qt("TableBodyComponent"),x=Qt("paddingTopAddition"),S=Qt("statefulTotalCount"),C=Qt("context");if(S===0&&y)return u.jsx(y,{...Fr(y,C)});const j=(t?e.topItems:[]).reduce((M,P)=>M+P.size,0),T=e.offsetTop+x+v-j,E=e.offsetBottom,$=T>0?u.jsx(b,{context:C,height:T},"padding-top"):null,A=E>0?u.jsx(b,{context:C,height:E},"padding-bottom"):null;return u.jsxs(w,{"data-testid":"virtuoso-item-list",ref:f,...Fr(w,C),children:[$,t&&u.jsx(yle,{showTopList:!0}),u.jsx(yle,{}),A]})}),lKe=({children:e})=>{const t=Oe.useContext(P6),n=fu("viewportHeight"),r=fu("fixedItemHeight"),i=ic(Oe.useMemo(()=>x_(n,o=>du(o,"height")),[n]),!0,Qt("skipAnimationFrameInResizeObserver"));return Oe.useEffect(()=>{t&&(n(t.viewportHeight),r(t.itemHeight))},[t,n,r]),u.jsx("div",{"data-viewport-type":"element",ref:i,style:r1(!1),children:e})},uKe=({children:e})=>{const t=Oe.useContext(P6),n=fu("windowViewportRect"),r=fu("fixedItemHeight"),i=Qt("customScrollParent"),o=KM(n,i,Qt("skipAnimationFrameInResizeObserver"));return Oe.useEffect(()=>{t&&(r(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,r]),u.jsx("div",{"data-viewport-type":"window",ref:o,style:r1(!1),children:e})},cKe=Oe.memo(function(e){const t=Qt("useWindowScroll"),n=Qt("customScrollParent"),r=fu("fixedHeaderHeight"),i=fu("fixedFooterHeight"),o=Qt("fixedHeaderContent"),a=Qt("fixedFooterContent"),s=Qt("context"),l=ic(Oe.useMemo(()=>x_(r,w=>du(w,"height")),[r]),!0,Qt("skipAnimationFrameInResizeObserver")),c=ic(Oe.useMemo(()=>x_(i,w=>du(w,"height")),[i]),!0,Qt("skipAnimationFrameInResizeObserver")),d=n||t?hKe:fKe,f=n||t?uKe:lKe,p=Qt("TableComponent"),v=Qt("TableHeadComponent"),_=Qt("TableFooterComponent"),y=o?u.jsx(v,{ref:l,style:{position:"sticky",top:0,zIndex:2},...Fr(v,s),children:o()},"TableHead"):null,b=a?u.jsx(_,{ref:c,style:{bottom:0,position:"sticky",zIndex:1},...Fr(_,s),children:a()},"TableFoot"):null;return u.jsx(d,{...e,...Fr(d,s),children:u.jsx(f,{children:u.jsxs(p,{style:{borderSpacing:0,overflowAnchor:"none"},...Fr(p,s),children:[y,u.jsx(sKe,{},"TableBody"),b]})})})}),{Component:dKe,useEmitter:yL,useEmitterValue:Qt,usePublisher:fu}=uL(rKe,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",firstItemIndex:"firstItemIndex",itemContent:"itemContent",groupContent:"groupContent",fixedHeaderContent:"fixedHeaderContent",fixedFooterContent:"fixedFooterContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",topItemCount:"topItemCount",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",groupCounts:"groupCounts",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},cKe),fKe=pL({useEmitter:yL,useEmitterValue:Qt,usePublisher:fu}),hKe=mL({useEmitter:yL,useEmitterValue:Qt,usePublisher:fu}),pKe=dKe,ble={bottom:0,itemHeight:0,items:[],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},mKe={bottom:0,itemHeight:0,items:[{index:0}],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},{ceil:_le,floor:z6,max:$_,min:bL,round:xle}=Math;function wle(e,t,n){return Array.from({length:t-e+1}).map((r,i)=>({data:n===null?null:n[i+e],index:i+e}))}function gKe(e){return{...mKe,items:e}}function D6(e,t){return e&&e.width===t.width&&e.height===t.height}function vKe(e,t){return e&&e.column===t.column&&e.row===t.row}const yKe=Rn(([{increaseViewportBy:e,listBoundary:t,overscan:n,visibleRange:r},{footerHeight:i,headerHeight:o,scrollBy:a,scrollContainerState:s,scrollTo:l,scrollTop:c,smoothScrollTargetReached:d,viewportHeight:f},p,v,{didMount:_,propsReady:y},{customScrollParent:b,useWindowScroll:w,windowScrollContainerState:x,windowScrollTo:S,windowViewportRect:C},j])=>{const T=Ye(0),E=Ye(0),$=Ye(ble),A=Ye({height:0,width:0}),M=Ye({height:0,width:0}),P=kn(),te=kn(),Z=Ye(0),O=Ye(null),J=Ye({column:0,row:0}),D=kn(),Y=kn(),F=Ye(!1),H=Ye(0),ee=Ye(!0),ce=Ye(!1),U=Ye(!1);qn(Ue(_,cn(H),zt(([ue,re])=>!!re)),()=>{Jt(ee,!1)}),qn(Ue(Oi(_,ee,M,A,H,ce),zt(([ue,re,ge,$e,,pe])=>ue&&!re&&ge.height!==0&&$e.height!==0&&!pe)),([,,,,ue])=>{Jt(ce,!0),iL(1,()=>{Jt(P,ue)}),uu(Ue(c),()=>{Jt(t,[0,0]),Jt(ee,!0)})}),yt(Ue(Y,zt(ue=>ue!=null&&ue.scrollTop>0),nc(0)),E),qn(Ue(_,cn(Y),zt(([,ue])=>ue!=null)),([,ue])=>{ue&&(Jt(A,ue.viewport),Jt(M,ue.item),Jt(J,ue.gap),ue.scrollTop>0&&(Jt(F,!0),uu(Ue(c,Ap(1)),re=>{Jt(F,!1)}),Jt(l,{top:ue.scrollTop})))}),yt(Ue(A,lt(({height:ue})=>ue)),f),yt(Ue(Oi(Rt(A,D6),Rt(M,D6),Rt(J,(ue,re)=>ue&&ue.column===re.column&&ue.row===re.row),Rt(c)),lt(([ue,re,ge,$e])=>({gap:ge,item:re,scrollTop:$e,viewport:ue}))),D),yt(Ue(Oi(Rt(T),r,Rt(J,vKe),Rt(M,D6),Rt(A,D6),Rt(O),Rt(E),Rt(F),Rt(ee),Rt(H)),zt(([,,,,,,,ue])=>!ue),lt(([ue,[re,ge],$e,pe,ye,Se,Ce,,Be,Ge])=>{const{column:xt,row:St}=$e,{height:ut,width:ct}=pe,{width:bt}=ye;if(Ce===0&&(ue===0||bt===0))return ble;if(ct===0){const wr=oL(Ge,ue),Pn=wr+Math.max(Ce-1,0);return gKe(wle(wr,Pn,Se))}const Qe=kle(bt,ct,xt);let Ke,De;Be?re===0&&ge===0&&Ce>0?(Ke=0,De=Ce-1):(Ke=Qe*z6((re+St)/(ut+St)),De=Qe*_le((ge+St)/(ut+St))-1,De=bL(ue-1,$_(De,Qe-1)),Ke=bL(De,$_(0,Ke))):(Ke=0,De=-1);const Dt=wle(Ke,De,Se),{bottom:pn,top:Yn}=Sle(ye,$e,pe,Dt),fr=_le(ue/Qe),Kn=fr*ut+(fr-1)*St-pn;return{bottom:pn,itemHeight:ut,items:Dt,itemWidth:ct,offsetBottom:Kn,offsetTop:Yn,top:Yn}})),$),yt(Ue(O,zt(ue=>ue!==null),lt(ue=>ue.length)),T),yt(Ue(Oi(A,M,$,J),zt(([ue,re,{items:ge}])=>ge.length>0&&re.height!==0&&ue.height!==0),lt(([ue,re,{items:ge},$e])=>{const{bottom:pe,top:ye}=Sle(ue,$e,re,ge);return[ye,pe]}),Ar(S_)),t);const ae=Ye(!1);yt(Ue(c,cn(ae),lt(([ue,re])=>re||ue!==0)),ae);const je=Es(Ue(Oi($,T),zt(([{items:ue}])=>ue.length>0),cn(ae),zt(([[ue,re],ge])=>{const $e=ue.items[ue.items.length-1].index===re-1;return(ge||ue.bottom>0&&ue.itemHeight>0&&ue.offsetBottom===0&&ue.items.length===re)&&$e}),lt(([[,ue]])=>ue-1),Ar())),me=Es(Ue(Rt($),zt(({items:ue})=>ue.length>0&&ue[0].index===0),nc(0),Ar())),ke=Es(Ue(Rt($),cn(F),zt(([{items:ue},re])=>ue.length>0&&!re),lt(([{items:ue}])=>({endIndex:ue[ue.length-1].index,startIndex:ue[0].index})),Ar(Vse),kd(0)));yt(ke,v.scrollSeekRangeChanged),yt(Ue(P,cn(A,M,T,J),lt(([ue,re,ge,$e,pe])=>{const ye=Kse(ue),{align:Se,behavior:Ce,offset:Be}=ye;let Ge=ye.index;Ge==="LAST"&&(Ge=$e-1),Ge=$_(0,Ge,bL($e-1,Ge));let xt=_L(re,pe,ge,Ge);return Se==="end"?xt=xle(xt-re.height+ge.height):Se==="center"&&(xt=xle(xt-re.height/2+ge.height/2)),Be&&(xt+=Be),{behavior:Ce,top:xt}})),l);const he=Wo(Ue($,lt(ue=>ue.offsetBottom+ue.bottom)),0);return yt(Ue(C,lt(ue=>({height:ue.visibleHeight,width:ue.visibleWidth}))),A),{customScrollParent:b,data:O,deviation:Z,footerHeight:i,gap:J,headerHeight:o,increaseViewportBy:e,initialItemCount:E,itemDimensions:M,overscan:n,restoreStateFrom:Y,scrollBy:a,scrollContainerState:s,scrollHeight:te,scrollTo:l,scrollToIndex:P,scrollTop:c,smoothScrollTargetReached:d,totalCount:T,useWindowScroll:w,viewportDimensions:A,windowScrollContainerState:x,windowScrollTo:S,windowViewportRect:C,...v,gridState:$,horizontalDirection:U,initialTopMostItemIndex:H,totalListHeight:he,...p,endReached:je,propsReady:y,rangeChanged:ke,startReached:me,stateChanged:D,stateRestoreInProgress:F,...j}},Dr(aL,ga,N_,sle,dh,lL,ch));function kle(e,t,n){return $_(1,z6((e+n)/(z6(t)+n)))}function Sle(e,t,n,r){const{height:i}=n;if(i===void 0||r.length===0)return{bottom:0,top:0};const o=_L(e,t,n,r[0].index);return{bottom:_L(e,t,n,r[r.length-1].index)+i,top:o}}function _L(e,t,n,r){const i=kle(e.width,n.width,t.column),o=z6(r/i),a=o*n.height+$_(0,o-1)*t.row;return a>0?a+t.row:a}const bKe=Rn(()=>{const e=Ye(f=>`Item ${f}`),t=Ye({}),n=Ye(null),r=Ye("virtuoso-grid-item"),i=Ye("virtuoso-grid-list"),o=Ye(hL),a=Ye("div"),s=Ye(t1),l=(f,p=null)=>Wo(Ue(t,lt(v=>v[f]),Ar()),p),c=Ye(!1),d=Ye(!1);return yt(Rt(d),c),{components:t,computeItemKey:o,context:n,FooterComponent:l("Footer"),HeaderComponent:l("Header"),headerFooterTag:a,itemClassName:r,ItemComponent:l("Item","div"),itemContent:e,listClassName:i,ListComponent:l("List","div"),readyStateChanged:c,reportReadyState:d,ScrollerComponent:l("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:l("ScrollSeekPlaceholder","div")}}),_Ke=Rn(([e,t])=>({...e,...t}),Dr(yKe,bKe)),xKe=Oe.memo(function(){const e=Yr("gridState"),t=Yr("listClassName"),n=Yr("itemClassName"),r=Yr("itemContent"),i=Yr("computeItemKey"),o=Yr("isSeeking"),a=gl("scrollHeight"),s=Yr("ItemComponent"),l=Yr("ListComponent"),c=Yr("ScrollSeekPlaceholder"),d=Yr("context"),f=gl("itemDimensions"),p=gl("gap"),v=Yr("log"),_=Yr("stateRestoreInProgress"),y=gl("reportReadyState"),b=ic(Oe.useMemo(()=>w=>{const x=w.parentElement.parentElement.scrollHeight;a(x);const S=w.firstChild;if(S){const{height:C,width:j}=S.getBoundingClientRect();f({height:C,width:j})}p({column:jle("column-gap",getComputedStyle(w).columnGap,v),row:jle("row-gap",getComputedStyle(w).rowGap,v)})},[a,f,p,v]),!0,!1);return dle(()=>{e.itemHeight>0&&e.itemWidth>0&&y(!0)},[e]),_?null:u.jsx(l,{className:t,ref:b,...Fr(l,d),"data-testid":"virtuoso-item-list",style:{paddingBottom:e.offsetBottom,paddingTop:e.offsetTop},children:e.items.map(w=>{const x=i(w.index,w.data,d);return o?u.jsx(c,{...Fr(c,d),height:e.itemHeight,index:w.index,width:e.itemWidth},x):m.createElement(s,{...Fr(s,d),className:n,"data-index":w.index,key:x},r(w.index,w.data,d))})})}),wKe=Oe.memo(function(){const e=Yr("HeaderComponent"),t=gl("headerHeight"),n=Yr("headerFooterTag"),r=ic(Oe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,!1),i=Yr("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Fr(e,i)})}):null}),kKe=Oe.memo(function(){const e=Yr("FooterComponent"),t=gl("footerHeight"),n=Yr("headerFooterTag"),r=ic(Oe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,!1),i=Yr("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Fr(e,i)})}):null}),SKe=({children:e})=>{const t=Oe.useContext(cle),n=gl("itemDimensions"),r=gl("viewportDimensions"),i=ic(Oe.useMemo(()=>o=>{r(o.getBoundingClientRect())},[r]),!0,!1);return Oe.useEffect(()=>{t&&(r({height:t.viewportHeight,width:t.viewportWidth}),n({height:t.itemHeight,width:t.itemWidth}))},[t,r,n]),u.jsx("div",{ref:i,style:r1(!1),children:e})},CKe=({children:e})=>{const t=Oe.useContext(cle),n=gl("windowViewportRect"),r=gl("itemDimensions"),i=Yr("customScrollParent"),o=KM(n,i,!1);return Oe.useEffect(()=>{t&&(r({height:t.itemHeight,width:t.itemWidth}),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:t.viewportWidth}))},[t,n,r]),u.jsx("div",{ref:o,style:r1(!1),children:e})},jKe=Oe.memo(function({...e}){const t=Yr("useWindowScroll"),n=Yr("customScrollParent"),r=n||t?IKe:TKe,i=n||t?CKe:SKe,o=Yr("context");return u.jsx(r,{...e,...Fr(r,o),children:u.jsxs(i,{children:[u.jsx(wKe,{}),u.jsx(xKe,{}),u.jsx(kKe,{})]})})}),{useEmitter:Cle,useEmitterValue:Yr,usePublisher:gl}=uL(_Ke,{optional:{context:"context",totalCount:"totalCount",overscan:"overscan",itemContent:"itemContent",components:"components",computeItemKey:"computeItemKey",data:"data",initialItemCount:"initialItemCount",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",listClassName:"listClassName",itemClassName:"itemClassName",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",restoreStateFrom:"restoreStateFrom",initialTopMostItemIndex:"initialTopMostItemIndex",increaseViewportBy:"increaseViewportBy"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",stateChanged:"stateChanged",readyStateChanged:"readyStateChanged"}},jKe),TKe=pL({useEmitter:Cle,useEmitterValue:Yr,usePublisher:gl}),IKe=mL({useEmitter:Cle,useEmitterValue:Yr,usePublisher:gl});function jle(e,t,n){return t!=="normal"&&!(t!=null&&t.endsWith("px"))&&n(`${e} was not resolved to pixel value correctly`,t,Va.WARN),t==="normal"?0:parseInt(t??"0",10)}const EKe="_digit_1rfzd_1",NKe="_hidden_1rfzd_5",$Ke="_selection-text_1rfzd_10",xL={digit:EKe,hidden:NKe,selectionText:$Ke};function MKe(){const[e,t]=m.useState(()=>document.visibilityState==="visible");return m.useEffect(()=>{const n=()=>{t(document.visibilityState==="visible")};return document.addEventListener("visibilitychange",n),()=>document.removeEventListener("visibilitychange",n)},[]),e}const LKe=20;function M_(e){return MKe()?u.jsx(OKe,{...e}):null}function RKe(e,t){const{start:n,target:r}=t;return{start:n,target:r,maxDigitsSeen:Math.max(e.maxDigitsSeen,wL(n),wL(r))}}function OKe({value:e,animationDurationMs:t=150,height:n,className:r,containerRowJustify:i}){const[o,a]=m.useReducer(RKe,{start:e,target:e,maxDigitsSeen:wL(e)}),{start:s,target:l,maxDigitsSeen:c}=o,[d,f]=m.useState(e),[p,v]=m.useState(()=>{const T=Ile(e).reverse(),E=Array.from({length:T.length});return{digits:T,animations:E}}),_=l>s?"incr":"decr",{stepDurationMs:y,shouldJumpToTarget:b}=m.useMemo(()=>{const T=Math.abs(l-s),E=Math.trunc(t/T);return E{const T=d===l||b?l:_==="incr"?d+1:d-1;return{number:T,paddedDigits:Ile(T,c)}},[d,_,c,b,l]),x=m.useCallback((T,E)=>{v($=>{const A=[...$.animations];return A[E]=T,{...$,animations:A}})},[]),S=m.useCallback((T,E)=>{v($=>{const A=[...$.digits],M=[...$.animations];A[E]=T,M[E]=void 0;const P={digits:A,animations:M};return parseInt([...P.digits].reverse().join(""),10)===Math.abs(w.number)&&f(w.number),P})},[w.number]),C=m.useMemo(()=>p.animations.some(T=>!!T),[p.animations]);m.useLayoutEffect(()=>{e===l||C||a({start:d,target:e})},[d,C,w.number,l,e]);const j=m.useMemo(()=>{if(n!=null)return{height:`${n}px`}},[n]);return u.jsxs(V,{position:"relative",justify:i,children:[u.jsx(q,{className:Te(r,xL.selectionText),style:j,children:d}),u.jsxs(V,{height:"100%",position:"absolute",inert:"true",children:[w.number<0&&u.jsx(q,{className:r,children:"-"}),w.paddedDigits.map((T,E)=>{const $=w.paddedDigits.length-1-E;return u.jsx(PKe,{idxFromBack:$,currentDigit:p.digits[$],nextDigit:T,direction:_,animation:p.animations[$],pauseNextAnimation:l!==e,animationDurationMs:y,onAnimationStart:x,onAnimationCompleted:S,className:r},$)})]})]})}function PKe({idxFromBack:e,currentDigit:t,nextDigit:n,direction:r,animation:i,pauseNextAnimation:o,onAnimationStart:a,onAnimationCompleted:s,animationDurationMs:l,className:c}){const d=m.useRef(null),f=m.useRef(null);return m.useLayoutEffect(()=>{if(i||o||t===n)return;const p=d.current;if(!p)return;const v=p.animate(r==="incr"?[{transform:"translateY(-50%)"},{transform:"translateY(0px)"}]:[{transform:"translateY(0px)"},{transform:"translateY(-50%)"}],{duration:l,easing:"ease-in-out",fill:"forwards"});f.current=v,a(v,e),v.finished.catch(()=>{}).finally(()=>{f.current=null,s(n,e)})},[l,t,n,r,e,o,s,i,a]),Pg(()=>{var p;(p=f.current)==null||p.cancel()}),u.jsx(Mt,{height:"100%",overflowY:"hidden",children:u.jsxs(V,{ref:d,height:"200%",direction:"column",children:[u.jsx(Tle,{className:c,digit:r==="incr"?n:t}),u.jsx(Tle,{className:c,digit:r==="incr"?t:n})]})})}function Tle({digit:e,className:t}){return u.jsx(q,{className:Te(t,xL.digit,{[xL.hidden]:e==null}),children:e})}function Ile(e,t){const n=Math.abs(e).toString().split("").map(i=>parseInt(i,10));if(t==null)return n;const r=Math.max(0,t-n.length);return[...Array(r).fill(null),...n]}function wL(e){return Math.abs(e).toString().length}const zKe="_container_zkl3s_1",DKe="_added_zkl3s_6",AKe="_removed_zkl3s_10",kL={container:zKe,added:DKe,removed:AKe},FKe=`Last ${xre/6e4}m`;function Ele({isOffline:e}){const t=X(yDe);return u.jsxs(V,{className:kL.container,align:"center",gap:"5px",children:[u.jsx(q,{children:FKe}),u.jsxs(q,{className:kL.added,children:["+",e?t.offline:t.online]}),u.jsxs(q,{className:kL.removed,children:["-",e?t.online:t.offline]})]})}const Nle="16px",SL=33,$le="15px";function BKe({isStacked:e}){var j;const[t,{width:n}]=Ss(),r=n<496,i=!r&&n<642,o=r?"xnarrow":i?"narrow":"wide",[a,s]=m.useState(!0),[l,c]=m.useState(!0),d=X(JN),f=X(wre),p=X(xDe),v=m.useCallback((T,E)=>{var M,P;const $=(M=d==null?void 0:d.get(T))==null?void 0:M[0],A=(P=d==null?void 0:d.get(E))==null?void 0:P[0];return $==null&&A==null?0:$==null?1:A==null?-1:$===A?0:$[...p].sort(v),[p,v]),y=m.useMemo(()=>[...f].sort(v),[f,v]),b=(j=X(Hl))==null?void 0:j.wait_for_supermajority_total_stake,w=m.useCallback(T=>_[T],[_]),x=m.useCallback(T=>{const E=w(T),[$,A]=(d==null?void 0:d.get(E))??[];return u.jsx(Lle,{pubkey:E,lamportsStake:$,info:A,totalStake:b,isOffline:!0,size:o})},[w,o,d,b]),S=m.useCallback(T=>y[T],[y]),C=m.useCallback(T=>{const E=S(T),[$,A]=(d==null?void 0:d.get(E))??[];return u.jsx(Lle,{pubkey:E,lamportsStake:$,info:A,totalStake:b,size:o})},[S,o,d,b]);return u.jsx(V,{ref:t,className:Te(un.container,e?un.vertical:un.horizontal),style:{"--row-height":`${SL}px`},children:u.jsxs(so,{className:Te(wi.card,un.tableCard,{[un.narrow]:i,[un.xnarrow]:r}),children:[u.jsxs(A6,{size:o,flexShrink:"0",className:un.headerRow,children:[u.jsx(o1,{size:o,className:un.peer,children:"Peer"}),u.jsx(o1,{size:o,className:un.status,children:"Status"}),u.jsx(o1,{size:o,className:un.pubkey,children:"Pubkey"}),u.jsx(o1,{size:o,className:un.version,children:"Version"}),u.jsx(o1,{size:o,className:un.stake,children:"Stake (SOL)"}),u.jsx(o1,{size:o,className:un.stakePct,children:"Stake %"})]}),u.jsx(A6,{size:o,flexShrink:"0",gapX:"8px",align:"center",className:Te(un.toggleRow,un.offline),asChild:!0,children:u.jsxs("button",{type:"button","aria-expanded":a,"aria-controls":"supermajority-offline-rows",onClick:()=>s(T=>!T),children:[u.jsx(Mle,{isExpanded:a}),u.jsxs(V,{align:"center",gap:$le,children:[u.jsxs(V,{align:"center",gap:"1",children:[u.jsx(M_,{value:p.size}),u.jsx(q,{children:"Nodes Offline"})]}),u.jsx(Ele,{isOffline:!0})]})]})}),u.jsx(Mt,{display:a?void 0:"none",className:un.rowsContainer,id:"supermajority-offline-rows",children:u.jsx(vL,{totalCount:_.length,fixedItemHeight:SL,computeItemKey:w,itemContent:x})}),u.jsx(A6,{size:o,flexShrink:"0",gapX:"8px",align:"center",className:Te(un.toggleRow,un.online),asChild:!0,children:u.jsxs("button",{type:"button","aria-expanded":l,"aria-controls":"supermajority-online-rows",onClick:()=>c(T=>!T),children:[u.jsx(Mle,{isExpanded:l}),u.jsxs(V,{align:"center",gap:$le,children:[u.jsxs(V,{align:"center",gap:"1",children:[u.jsx(M_,{value:f.size}),u.jsx(q,{children:"Nodes Online"})]}),u.jsx(Ele,{})]})]})}),u.jsx(Mt,{id:"supermajority-online-rows",display:l?void 0:"none",className:un.rowsContainer,children:u.jsx(vL,{totalCount:y.length,fixedItemHeight:SL,computeItemKey:S,itemContent:C})})]})})}function Mle({isExpanded:e}){const t=e?Hie:qFe;return u.jsx(t,{height:Nle,width:Nle,color:"white"})}const A6=m.forwardRef(function({size:e,className:t,...n},r){return u.jsx(V,{ref:r,className:Te(un.row,un[e],t),...n})});function Lle({pubkey:e,lamportsStake:t,info:n,totalStake:r,isOffline:i=!1,size:o}){return u.jsxs(A6,{size:o,className:i?un.offline:un.online,children:[u.jsx(UKe,{name:n==null?void 0:n.name,iconUrl:ire(n),size:o}),u.jsx(WKe,{isOffline:i,size:o}),u.jsx(VKe,{pubkey:e,size:o}),u.jsx(HKe,{pubkey:e,size:o}),u.jsx(ZKe,{lamportsStake:t,size:o}),u.jsx(qKe,{lamportsStake:t,totalStake:r,size:o})]})}function i1({children:e,className:t,size:n}){return u.jsx(V,{align:"center",className:Te(un.cell,un[n],t),children:e})}function o1({children:e,className:t,size:n}){return u.jsx(V,{align:"center",className:Te(un.cell,un.header,un[n],t),children:u.jsx(q,{truncate:!0,children:e})})}function UKe({name:e,iconUrl:t,size:n}){return u.jsxs(i1,{size:n,className:un.peer,children:[u.jsx(ks,{url:t,size:16}),u.jsx(q,{truncate:!0,children:e??"-"})]})}function WKe({isOffline:e=!1,size:t}){const n=e?oGe:iGe;return u.jsxs(i1,{size:t,className:Te(un.status),children:[u.jsx(n,{height:12,width:12,fill:"currentColor"}),t==="wide"&&u.jsx(q,{truncate:!0,children:e?"Offline":"Online"})]})}function VKe({pubkey:e,size:t}){return u.jsx(i1,{size:t,className:un.pubkey,children:u.jsx(Dg,{value:e,color:"white",size:"10px",hideIconUntilHover:!0,children:u.jsx(q,{truncate:!0,className:un.pubkeyText,children:e})})})}function HKe({pubkey:e,size:t}){const n=Hk(e),{version:r,client:i}=PM(n);return u.jsxs(i1,{size:t,className:Te(un.version),children:[u.jsx(V,{width:"37px",flexShrink:"0",children:u.jsx(Nse,{client:i,size:"xlarge",showPlaceholder:!0,className:un.clientIcon,placeholderClassName:un.clientIconPlaceholder})}),t!=="xnarrow"&&u.jsx(q,{truncate:!0,children:r?`v${r}`:"-"})]})}function ZKe({lamportsStake:e,size:t}){const n=HM(e);return u.jsx(i1,{size:t,className:un.stake,children:u.jsxs(q,{children:[u.jsx(q,{children:(n==null?void 0:n.formatted)??"-"}),(n==null?void 0:n.suffix)&&u.jsxs(q,{className:un.suffix,children:[" ",n.suffix]})]})})}const Rle=2;function qKe({lamportsStake:e,totalStake:t,size:n}){const r=GGe(e,t,Rle);return u.jsx(i1,{size:n,className:un.stakePct,children:u.jsxs(q,{children:[u.jsx(q,{children:r===void 0?"-":r.toFixed(Rle)}),r!==void 0&&u.jsx(q,{className:un.suffix,children:" %"})]})})}const GKe="data:image/svg+xml,%3csvg%20width='12'%20height='11'%20viewBox='0%200%2012%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0%2011H12L6.0482%200L0%2011Z'%20fill='%23F29D83'/%3e%3c/svg%3e";function YKe(){const e=X(Hl),t=e==null?void 0:e.wait_for_supermajority_total_stake,n=e==null?void 0:e.wait_for_supermajority_connected_stake,r=t&&n?rt.clamp(Number(n)/Number(t),0,1):0,i=m.useMemo(()=>HM(t),[t]),o=HM(n);return e?u.jsxs(V,{height:"100%",maxWidth:"100%",position:"relative",align:"center",justify:"center",className:wi.pieChart,children:[u.jsx("div",{className:wi.shimmer}),u.jsx("div",{className:wi.overlay,style:{"--progress-pct":`${Math.round(r*100)}%`}}),u.jsxs(V,{direction:"column",position:"absolute",height:"50%",width:"0px",bottom:"0",left:"50%",align:"center",className:wi.thresholdMarker,gap:"1px",children:[u.jsx(Mt,{className:wi.markerLine,height:"100%",flexShrink:"0"}),u.jsx("img",{className:wi.markerIcon,src:GKe,alt:"80% supermajority pointer"})]}),u.jsxs(V,{direction:"column",position:"relative",height:"70%",width:"70%",align:"center",justify:"center",gapY:"4%",className:wi.pieChartContent,children:[u.jsxs(q,{children:[u.jsx(q,{weight:"bold",className:wi.lg,children:(r*100).toFixed(2)}),u.jsx(q,{weight:"bold",className:wi.secondaryColor,children:" %"}),u.jsx(q,{className:wi.lg,children:" / "}),u.jsx(q,{weight:"bold",className:Te(wi.lg,wi.eighty),children:"80"}),u.jsx(q,{weight:"bold",color:"bronze",children:" %"})]}),u.jsxs(q,{children:[(o==null?void 0:o.formatted)??"--",(o==null?void 0:o.suffix)&&u.jsxs(q,{className:wi.secondaryColor,children:[" ",o.suffix]})," / ",u.jsx(q,{children:(i==null?void 0:i.formatted)??"--"}),(i==null?void 0:i.suffix)&&u.jsxs(q,{className:wi.secondaryColor,children:[" ",i.suffix]})]})]})]}):null}function KKe(){const e=X(Hl),t=X(nee);if(!e)return null;const n=e.wait_for_supermajority_attempt,r=e.loading_incremental_snapshot_read_path??e.loading_full_snapshot_read_path;return u.jsxs(V,{flexShrink:"0",direction:"column",width:"100%",className:wi.detailsBox,gapY:"10px",children:[u.jsxs(V,{gapX:"8px",justify:"between",children:[u.jsx(L_,{label:"Slot",value:t==null?void 0:t.toString()}),u.jsx(L_,{label:"Shred Version",value:e.wait_for_supermajority_shred_version}),u.jsx(L_,{label:"Forked",value:n==null?void 0:_Fe(n)})]}),u.jsx(L_,{label:"Bank Hash",value:e.wait_for_supermajority_bank_hash,allowCopy:!0}),u.jsx(L_,{label:"Snapshot Source",value:r,wrap:!0,valueClassName:wi.snapshotSource,allowCopy:!0})]})}function L_({label:e,value:t,wrap:n=!1,valueClassName:r,allowCopy:i=!1}){return u.jsxs(V,{direction:"column",gap:"3px",children:[u.jsx(q,{className:wi.label,children:e}),u.jsx(Dg,{className:wi.copyButton,value:i&&t?t:void 0,color:"white",size:"12px",hideIconUntilHover:!0,children:u.jsx(q,{className:r,truncate:!n,children:t??"--"})})]})}const Ole="400px",CL="24px",Ple="50px";function XKe(){var i;const e=Hn("(max-width: 1025px)"),t=X(Hl),n=(i=X(QQ))==null?void 0:i.completionFraction;if(!t||!n)return null;const r=1-.01/n;return u.jsxs(u.Fragment,{children:[u.jsx(J$,{phaseCompleteFraction:r,overallCompleteFraction:.99,showLoadingIcon:!0}),u.jsxs(V,{flexGrow:"1",mt:e?"18px":"36px",direction:e?"column-reverse":"row",justify:e?"end":"center",align:"stretch",gap:e?CL:Ple,minHeight:"0",children:[u.jsx(BKe,{isStacked:e}),u.jsxs(V,{direction:"column",align:"center",width:e?"100%":void 0,minWidth:"300px",maxWidth:e?void 0:Ole,flexBasis:"30%",flexGrow:e?"0":"1",flexShrink:"1",children:[u.jsx(q,{className:wi.pieChartTitle,children:"Stake Online"}),u.jsx(V,{className:wi.pieChartContainer,mt:e?"4px":"8px",maxHeight:Ole,justify:"center",children:u.jsx(YKe,{})}),u.jsx(Mt,{height:e?CL:void 0,minHeight:CL,maxHeight:Ple,flexGrow:"1"}),u.jsx(KKe,{})]})]})]})}const JKe={[wn.joining_gossip]:yd.gossip,[wn.loading_full_snapshot]:yd.fullSnapshot,[wn.loading_incremental_snapshot]:yd.incrSnapshot,[wn.catching_up]:yd.catchingUp,[wn.waiting_for_supermajority]:yd.supermajority};function QKe(){const e=Ee(ol),t=X(Gu);return m.useEffect(()=>{e(t!=="running")},[e,t]),u.jsxs(u.Fragment,{children:[t&&u.jsx(eXe,{phase:t}),u.jsx(HUe,{})]})}function eXe({phase:e}){const t=Ee(dre),n=X(ol),r=X(W3),i=e?JKe[e]:"",o=Hn("(max-width: 750px)");return u.jsxs(V,{direction:"column",ref:a=>t(a),overflowY:"auto",className:Te(yd.container,i,{[yd.collapsed]:!n||!r}),children:[u.jsx(foe,{isStartup:!0}),u.jsxs(V,{flexGrow:"1",direction:"column",width:"100%",maxWidth:Zte,minHeight:"0",mx:"auto",px:o?"20px":"89px",children:[(e===wn.loading_full_snapshot||e===wn.loading_incremental_snapshot)&&u.jsx(tVe,{}),e===wn.catching_up&&u.jsx(Fqe,{}),e===wn.waiting_for_supermajority&&u.jsx(XKe,{}),u.jsx(Mt,{pb:"20px"})]})]})}function tXe({children:e}){const t=X(ol);return Vi?u.jsxs(u.Fragment,{children:[u.jsx(QKe,{}),u.jsx("div",{children:e})]}):u.jsxs(u.Fragment,{children:[u.jsx(XAe,{}),u.jsx("div",{className:Te(Iie.container,{[Iie.blur]:t}),children:e})]})}const nXe="_container_1i8oq_1",rXe="_toast_1i8oq_10",iXe="_disconnected_1i8oq_19",oXe="_connecting_1i8oq_29",aXe="_text_1i8oq_39",R_={container:nXe,toast:rXe,disconnected:iXe,connecting:oXe,text:aXe};var ac=(e=>(e.Disconnected="disconnected",e.Connecting="connecting",e.Connected="connected",e))(ac||{});const jL=fe(ac.Disconnected),zle={opacity:0,top:-100},sXe={opacity:1,top:18};function Dle(e,t){if(e)return e===ac.Disconnected?{className:R_.disconnected,text:"validator disconnected."}:e===ac.Connecting?{className:R_.connecting,text:"validator connecting..."}:Dle(t)}function lXe(){const e=X(jL),t=o_(e),[n,r]=m.useState(!0);i_(()=>{setTimeout(()=>r(!1),3e3)});const[i,o]=e_(()=>({from:zle}));m.useEffect(()=>{n||(e===ac.Connecting||e===ac.Disconnected?o.start({to:sXe}):o.start({to:zle}))},[o,n,e]);const a=Dle(e,t);if(a)return u.jsx(iu.div,{className:R_.container,style:i,children:u.jsx("div",{className:`${R_.toast} ${a.className}`,children:u.jsx(q,{className:R_.text,children:a.text})})})}const uXe="_slots-list_1sk8v_1",cXe="_hidden_1sk8v_3",dXe="_no-slots-text_1sk8v_8",TL={slotsList:uXe,hidden:cXe,noSlotsText:dXe},fXe="_slot-group-container_1sejw_1",hXe="_slot-group_1sejw_1",pXe="_left-column_1sejw_14",mXe="_future_1sejw_20",gXe="_you_1sejw_28",vXe="_current_1sejw_36",yXe="_slot-name_1sejw_43",bXe="_skipped_1sejw_47",_Xe="_current-slot-row_1sejw_57",xXe="_past_1sejw_63",wXe="_processed_1sejw_74",kXe="_selected_1sejw_87",SXe="_ellipsis_1sejw_105",CXe="_slot-item-content_1sejw_111",jXe="_placeholder_1sejw_119",TXe="_slot-statuses_1sejw_123",IXe="_slot-status_1sejw_123",EXe="_slot-status-progress_1sejw_132",NXe="_tall_1sejw_142",$Xe="_short_1sejw_149",MXe="_scroll-slots-placeholder_1sejw_173",LXe="_shimmer_1sejw_184",RXe="_absolute-full-size_1sejw_176",OXe="_scroll-placeholder-item_1sejw_197",on={slotGroupContainer:fXe,slotGroup:hXe,leftColumn:pXe,future:mXe,you:gXe,current:vXe,slotName:yXe,skipped:bXe,currentSlotRow:_Xe,past:xXe,processed:wXe,selected:kXe,ellipsis:SXe,slotItemContent:CXe,placeholder:jXe,slotStatuses:TXe,slotStatus:IXe,slotStatusProgress:EXe,tall:NXe,short:$Xe,scrollSlotsPlaceholder:MXe,shimmer:LXe,absoluteFullSize:RXe,scrollPlaceholderItem:OXe},O_=m.memo(function({slot:e,size:t}){const{client:n}=ma(e);return u.jsx(Nse,{client:n,size:t})}),PXe=Yf(e=>fe(t=>{var r;const n=xi(e);for(let i=0;i<$n;i++)if((r=t(YN(n+i)))!=null&&r.skipped)return!0;return!1}),{maxSize:500});function IL(e){return X(PXe(e))}const Ale=fe(!1);function P_({showNowIfCurrent:e,durationOptions:t}){const n=X(gre),r=X(Lb),i=X(uDe),o=r??i,a=X(oo),s=X(cDe),l=X(Eg),[c,d]=m.useState(a);r_(()=>{d(v=>{if(!a)return v;if(!v)return a;const _=v-a;return _>10?v-Math.trunc(_/2):_>4?v:_<-4?v-Math.trunc(_/2):v+1})},l);const f=m.useMemo(()=>{if(!(o==null||c==null))return fn.fromMillis(l*(o-c)).rescale()},[c,o,l]),p=m.useMemo(()=>{if(n==null||o==null||c==null)return;const v=o-n,_=(c-n)/v*100;return _<0||_>100?0:_},[c,o,n]);return e&&s?{progressSinceLastLeader:100,nextSlotText:"Now",nextLeaderSlot:a}:{progressSinceLastLeader:p??0,nextSlotText:Sp(f,t),nextLeaderSlot:o}}const zXe="_progress_51hag_1",DXe={progress:zXe};function a1({width:e="100%",height:t="3px",style:n,className:r,variant:i="soft",...o}){return u.jsx(N4,{className:Te(DXe.progress,r),style:{width:e,height:t,...n},variant:i,...o})}function AXe(e){return X(Ale)?u.jsx("div",{className:on.placeholder}):u.jsx(FXe,{...e})}const Fle=fe(e=>{const t=e(eu),n=e(Jf);if(!e(ao)||t===void 0||n===void 0)return;const r=e(Lb);return function(i){return{isCurrentSlotGroup:t<=i&&iMath.ceil(t/46),[t]);return u.jsxs(Mt,{position:"absolute",width:`${e-1}px`,height:`${t}px`,overflow:"hidden",className:on.scrollSlotsPlaceholder,children:[u.jsx("div",{className:Te(on.absoluteFullSize,on.shimmer)}),u.jsx("div",{className:on.absoluteFullSize,children:Array.from({length:n},(r,i)=>u.jsx("div",{className:on.scrollPlaceholderItem},i))})]})});function F6({slot:e,iconSize:t=15}){var o;const{peer:n,isLeader:r,name:i}=ma(e);return u.jsxs(V,{gap:"4px",minWidth:"0",children:[u.jsx(ks,{url:(o=n==null?void 0:n.info)==null?void 0:o.icon_url,size:t,isYou:r,hideTooltip:!0}),u.jsx(q,{className:Te(on.slotName,on.ellipsis),children:i})]})}function Ule({flag:e,width:t}){return u.jsx(V,{width:t,children:e&&u.jsx(q,{children:e})})}function z_({firstSlot:e,isCurrentSlot:t=!1,isPastSlot:n=!1}){return u.jsx(V,{className:Te(on.slotStatuses,{[on.tall]:t,[on.short]:!t&&!n}),direction:"column",justify:"between",children:Array.from({length:$n}).map((r,i)=>{const o=e+($n-1)-i;return t?u.jsx(qXe,{slot:o},i):n?u.jsx(GXe,{slot:o},i):u.jsx(EL,{},i)})})}function EL({borderColor:e,backgroundColor:t,slotDuration:n}){return u.jsx(V,{className:on.slotStatus,style:{borderColor:e,backgroundColor:t},children:n&&u.jsx("div",{style:{"--slot-duration":`${n}ms`},className:on.slotStatusProgress})})}function Wle(e){if(!e)return{};if(e.skipped)return{backgroundColor:gk};switch(e.level){case"incomplete":return{};case"completed":return{borderColor:zN};case"optimistically_confirmed":return{backgroundColor:zN};case"finalized":case"rooted":return{backgroundColor:Wne}}}function qXe({slot:e}){const t=X(oo),n=Is(e),r=X(Eg),i=m.useMemo(()=>e===t,[e,t]),o=m.useMemo(()=>i?{borderColor:DN}:Wle(n.publish),[i,n.publish]);return u.jsx(EL,{borderColor:o.borderColor,backgroundColor:o.backgroundColor,slotDuration:i?r:void 0})}function GXe({slot:e}){const t=Is(e),n=X(Cn),r=m.useMemo(()=>{var o,a;const i=Wle(t.publish);return((o=t==null?void 0:t.publish)==null?void 0:o.level)==="rooted"&&!((a=t.publish)!=null&&a.skipped)&&(n===void 0||xi(e)!==xi(n))&&(i.backgroundColor=Vne),i},[t.publish,n,e]);return u.jsx(EL,{borderColor:r.borderColor,backgroundColor:r.backgroundColor})}const YXe="_container_1l1zm_1",KXe="_button_1l1zm_5",Vle={container:YXe,button:KXe};function XXe(){const e=Ee(An),t=X(kDe);return t==="Live"?null:u.jsx("div",{className:Vle.container,children:u.jsxs(hs,{className:Vle.button,style:{zIndex:3},onClick:()=>{e(void 0)},children:[u.jsx(q,{children:"Skip to RT"}),t==="Past"?u.jsx(Vie,{}):u.jsx(Wie,{})]})})}const JXe=m.memo(XXe);function QXe(e){if(!e)return;const t=e.end_slot-e.start_slot+1,n=Math.ceil(t/$n);return{getSlotAtIndex:r=>{if(!(r<0||r>=n))return xi(e.end_slot-r*$n)},getIndexForSlot:r=>{if(!(re.end_slot))return Math.trunc((e.end_slot-r)/$n)},itemsCount:n}}function eJe(e){if(e==null)return;const t=e.reduce((n,r,i)=>(n[r]=e.length-i-1,n),{});return{getSlotAtIndex:n=>e[e.length-n-1],getIndexForSlot:n=>n>=e[e.length-1]?0:t[xi(n)]??e.length-rt.sortedIndex(e,n)-1,itemsCount:e.length}}const tJe=e=>e,nJe={top:24,bottom:0};function rJe({width:e,height:t}){const n=X(Tg),r=X(di);return r?n===$b.MySlots?u.jsx(lJe,{width:e,height:t},r.epoch):u.jsx(sJe,{width:e,height:t},r.epoch):null}function Hle({width:e,height:t,itemsCount:n,getSlotAtIndex:r,getIndexForSlot:i}){const o=m.useRef(null),a=m.useRef(null),s=m.useRef(null),[l,c]=m.useState(!0),[d,f]=m.useState(!0);m.useEffect(()=>{const x=setTimeout(()=>{c(!1)},100);return()=>clearTimeout(x)},[]);const p=Ee(An),v=Ip(()=>{},100),{rangeChanged:_,scrollSeekConfiguration:y}=m.useMemo(()=>{const x=({startIndex:S})=>{s.current=S+1};return{rangeChanged:x,scrollSeekConfiguration:{enter:S=>Math.abs(S)>1500,exit:S=>Math.abs(S)<500,change:(S,C)=>x(C)}}},[s]);m.useEffect(()=>{if(!o.current)return;const x=o.current,S=rt.throttle(()=>{if(s.current===null)return;v();const j=Math.min(s.current+oN,n-1),T=r(j);p(T)},50,{leading:!0,trailing:!0}),C=()=>{S()};return x.addEventListener("wheel",C),x.addEventListener("touchmove",C),()=>{x.removeEventListener("wheel",C),x.removeEventListener("touchmove",C)}},[r,v,p,n,s]);const b=m.useCallback(x=>{const S=r(x);return S==null?null:u.jsx(AXe,{leaderSlotForGroup:S})},[r]),w=m.useCallback(x=>f(x>=t),[t]);return u.jsxs(Mt,{ref:o,position:"relative",width:`${e}px`,height:`${t}px`,children:[u.jsx(oJe,{listRef:a,getIndexForSlot:i}),u.jsx(aJe,{listRef:a,getIndexForSlot:i,debouncedScroll:v}),d&&u.jsx(ZXe,{width:e,height:t}),u.jsx(JXe,{}),u.jsx(vL,{ref:a,className:Te(TL.slotsList,{[TL.hidden]:l}),width:e,height:t,totalCount:n,increaseViewportBy:nJe,defaultItemHeight:42,skipAnimationFrameInResizeObserver:!0,computeItemKey:tJe,itemContent:b,rangeChanged:_,components:{ScrollSeekPlaceholder:iJe},scrollSeekConfiguration:y,totalListHeightChanged:w})]})}const iJe=m.memo(function(){return null}),oJe=m.memo(function({listRef:e,getIndexForSlot:t}){const n=X(eu),r=X(tDe);return m.useEffect(()=>{if(!r||n===void 0||!e.current)return;const i=t(n),o=i?Math.max(0,i-oN):0;e.current.scrollToIndex({index:o,align:"start"})},[r,n,t,e]),null}),aJe=m.memo(function({listRef:e,getIndexForSlot:t,debouncedScroll:n}){const r=m.useRef(null),i=X(An);return m.useEffect(()=>{if(i===void 0||!e.current||n.isPending())return;const o=t(i),a=o?Math.max(0,o-oN):0,s=r.current;return r.current=requestAnimationFrame(()=>{var l;s!==null&&cancelAnimationFrame(s),(l=e.current)==null||l.scrollToIndex({index:a,align:"start"})}),()=>{r.current!==null&&(cancelAnimationFrame(r.current),r.current=null)}},[t,i,e,n]),null});function sJe({width:e,height:t}){const n=X(di),r=m.useMemo(()=>QXe(n),[n]);return r?u.jsx(Hle,{width:e,height:t,...r}):null}function lJe({width:e,height:t}){const n=X(ao),r=m.useMemo(()=>eJe(n),[n]);return r?r.itemsCount===0?u.jsx(V,{width:`${e}px`,height:`${t}px`,justify:"center",align:"center",children:u.jsxs(q,{className:TL.noSlotsText,children:["No Slots",u.jsx("br",{}),"Available"]})}):u.jsx(Hle,{width:e,height:t,...r}):null}let vl;typeof window<"u"?vl=window:typeof self<"u"?vl=self:vl=global;let NL=null,$L=null;const Zle=20,ML=vl.clearTimeout,qle=vl.setTimeout,LL=vl.cancelAnimationFrame||vl.mozCancelAnimationFrame||vl.webkitCancelAnimationFrame,Gle=vl.requestAnimationFrame||vl.mozRequestAnimationFrame||vl.webkitRequestAnimationFrame;LL==null||Gle==null?(NL=ML,$L=function(e){return qle(e,Zle)}):(NL=function([e,t]){LL(e),ML(t)},$L=function(e){const t=Gle(function(){ML(n),e()}),n=qle(function(){LL(t),e()},Zle);return[t,n]});function uJe(e){let t,n,r,i,o,a,s;const l=typeof document<"u"&&document.attachEvent;if(!l){a=function(y){const b=y.__resizeTriggers__,w=b.firstElementChild,x=b.lastElementChild,S=w.firstElementChild;x.scrollLeft=x.scrollWidth,x.scrollTop=x.scrollHeight,S.style.width=w.offsetWidth+1+"px",S.style.height=w.offsetHeight+1+"px",w.scrollLeft=w.scrollWidth,w.scrollTop=w.scrollHeight},o=function(y){return y.offsetWidth!==y.__resizeLast__.width||y.offsetHeight!==y.__resizeLast__.height},s=function(y){if(y.target.className&&typeof y.target.className.indexOf=="function"&&y.target.className.indexOf("contract-trigger")<0&&y.target.className.indexOf("expand-trigger")<0)return;const b=this;a(this),this.__resizeRAF__&&NL(this.__resizeRAF__),this.__resizeRAF__=$L(function(){o(b)&&(b.__resizeLast__.width=b.offsetWidth,b.__resizeLast__.height=b.offsetHeight,b.__resizeListeners__.forEach(function(w){w.call(b,y)}))})};let d=!1,f="";r="animationstart";const p="Webkit Moz O ms".split(" ");let v="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),_="";{const y=document.createElement("fakeelement");if(y.style.animationName!==void 0&&(d=!0),d===!1){for(let b=0;b div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',p=d.head||d.getElementsByTagName("head")[0],v=d.createElement("style");v.id="detectElementResize",v.type="text/css",e!=null&&v.setAttribute("nonce",e),v.styleSheet?v.styleSheet.cssText=f:v.appendChild(d.createTextNode(f)),p.appendChild(v)}};return{addResizeListener:function(d,f){if(l)d.attachEvent("onresize",f);else{if(!d.__resizeTriggers__){const p=d.ownerDocument,v=vl.getComputedStyle(d);v&&v.position==="static"&&(d.style.position="relative"),c(p),d.__resizeLast__={},d.__resizeListeners__=[],(d.__resizeTriggers__=p.createElement("div")).className="resize-triggers";const _=p.createElement("div");_.className="expand-trigger",_.appendChild(p.createElement("div"));const y=p.createElement("div");y.className="contract-trigger",d.__resizeTriggers__.appendChild(_),d.__resizeTriggers__.appendChild(y),d.appendChild(d.__resizeTriggers__),a(d),d.addEventListener("scroll",s,!0),r&&(d.__resizeTriggers__.__animationListener__=function(b){b.animationName===n&&a(d)},d.__resizeTriggers__.addEventListener(r,d.__resizeTriggers__.__animationListener__))}d.__resizeListeners__.push(f)}},removeResizeListener:function(d,f){if(l)d.detachEvent("onresize",f);else if(d.__resizeListeners__.splice(d.__resizeListeners__.indexOf(f),1),!d.__resizeListeners__.length){d.removeEventListener("scroll",s,!0),d.__resizeTriggers__.__animationListener__&&(d.__resizeTriggers__.removeEventListener(r,d.__resizeTriggers__.__animationListener__),d.__resizeTriggers__.__animationListener__=null);try{d.__resizeTriggers__=!d.removeChild(d.__resizeTriggers__)}catch{}}}}}class $s extends m.Component{constructor(...t){super(...t),this.state={height:this.props.defaultHeight||0,width:this.props.defaultWidth||0},this._autoSizer=null,this._detectElementResize=null,this._didLogDeprecationWarning=!1,this._parentNode=null,this._resizeObserver=null,this._timeoutId=null,this._onResize=()=>{this._timeoutId=null;const{disableHeight:n,disableWidth:r,onResize:i}=this.props;if(this._parentNode){const o=window.getComputedStyle(this._parentNode)||{},a=parseFloat(o.paddingLeft||"0"),s=parseFloat(o.paddingRight||"0"),l=parseFloat(o.paddingTop||"0"),c=parseFloat(o.paddingBottom||"0"),d=this._parentNode.getBoundingClientRect(),f=d.height-l-c,p=d.width-a-s;if(!n&&this.state.height!==f||!r&&this.state.width!==p){this.setState({height:f,width:p});const v=()=>{this._didLogDeprecationWarning||(this._didLogDeprecationWarning=!0,console.warn("scaledWidth and scaledHeight parameters have been deprecated; use width and height instead"))};typeof i=="function"&&i({height:f,width:p,get scaledHeight(){return v(),f},get scaledWidth(){return v(),p}})}}},this._setRef=n=>{this._autoSizer=n}}componentDidMount(){const{nonce:t}=this.props,n=this._autoSizer?this._autoSizer.parentNode:null;if(n!=null&&n.ownerDocument&&n.ownerDocument.defaultView&&n instanceof n.ownerDocument.defaultView.HTMLElement){this._parentNode=n;const r=n.ownerDocument.defaultView.ResizeObserver;r!=null?(this._resizeObserver=new r(()=>{this._timeoutId=setTimeout(this._onResize,0)}),this._resizeObserver.observe(n)):(this._detectElementResize=uJe(t),this._detectElementResize.addResizeListener(n,this._onResize)),this._onResize()}}componentWillUnmount(){this._parentNode&&(this._detectElementResize&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize),this._timeoutId!==null&&clearTimeout(this._timeoutId),this._resizeObserver&&this._resizeObserver.disconnect())}render(){const{children:t,defaultHeight:n,defaultWidth:r,disableHeight:i=!1,disableWidth:o=!1,doNotBailOutOnEmptyChildren:a=!1,nonce:s,onResize:l,style:c={},tagName:d="div",...f}=this.props,{height:p,width:v}=this.state,_={overflow:"visible"},y={};let b=!1;return i||(p===0&&(b=!0),_.height=0,y.height=p,y.scaledHeight=p),o||(v===0&&(b=!0),_.width=0,y.width=v,y.scaledWidth=v),a&&(b=!1),m.createElement(d,{ref:this._setRef,style:{..._,...c},...f},!b&&t(y))}}function cJe(){const[e,t]=Vl(Tg),n=m.useCallback(r=>{r&&t(r)},[t]);return u.jsx(V,{height:`${uN}px`,width:"100%",children:u.jsxs($7,{type:"single",value:e,"aria-label":"Slots List Toggle",onValueChange:n,className:Ep.navFilterToggleGroup,children:[u.jsx(U0,{value:$b.AllSlots,"aria-label":"All Slots toggle",tabIndex:0,children:u.jsx(q,{children:"All Slots"})}),u.jsx(U0,{value:$b.MySlots,"aria-label":"My Slots toggle",tabIndex:0,children:u.jsx(q,{children:"My Slots"})})]})})}const dJe="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='20px'%20viewBox='0%20-960%20960%20960'%20width='20px'%20fill='%23FF5353'%3e%3cpath%20d='m48-144%20432-720%20432%20720H48Zm431.79-120q15.21%200%2025.71-10.29t10.5-25.5q0-15.21-10.29-25.71t-25.5-10.5q-15.21%200-25.71%2010.29t-10.5%2025.5q0%2015.21%2010.29%2025.71t25.5%2010.5ZM444-384h72v-192h-72v192Z'/%3e%3c/svg%3e",fJe="data:image/svg+xml,%3csvg%20width='10'%20height='11'%20viewBox='0%200%2010%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6.39453%201.5H9.67578V7.32422H5.57422L5.35547%206.17578H2.07422V10.25H0.925781V0.324219H6.17578L6.39453%201.5Z'%20fill='%231DB247'/%3e%3c/svg%3e",hJe="_epoch-progress_niwu5_1",pJe="_clickable_niwu5_8",mJe="_leader-slot_niwu5_12",gJe="_before-start_niwu5_21",vJe="_skipped-slot_niwu5_26",yJe="_skipped-slot-icon_niwu5_36",bJe="_first-processed-slot_niwu5_45",_Je="_first-processed-slot-icon_niwu5_56",xJe="_slider-root_niwu5_65",wJe="_slider-track_niwu5_76",kJe="_slider-thumb_niwu5_82",SJe="_collapsed_niwu5_92",CJe="_tooltip_niwu5_106",jJe="_hide_niwu5_114",TJe="_show_niwu5_123",Yi={epochProgress:hJe,clickable:pJe,leaderSlot:mJe,beforeStart:gJe,skippedSlot:vJe,skippedSlotIcon:yJe,firstProcessedSlot:bJe,firstProcessedSlotIcon:_Je,sliderRoot:xJe,sliderTrack:wJe,sliderThumb:kJe,collapsed:SJe,tooltip:CJe,hide:jJe,show:TJe};function IJe(e,t,n=window){const r=m.useRef(t);m.useEffect(()=>{r.current=t});const i=Lze(e)?e:[e];m.useEffect(()=>{if(!r.current||!n||!n.addEventListener||i.length===0)return;const o=a=>{var s;return(s=r.current)==null?void 0:s.call(r,a)};return i.forEach(a=>n.addEventListener(a,o,{passive:!1})),()=>{i.forEach(a=>n.removeEventListener(a,o,!1))}},[...i,n])}const RL=10800;function Up({slot:e,epochStartSlot:t,epochEndSlot:n}){if(!e||t===void 0||n===void 0||t===n)return 0;e=Math.min(Math.max(e,t),n);const r=n-t;return(e-t)/r}function EJe(e){return Math.trunc(e*RL)}function NJe(e,t,n){if(e===void 0||t===void 0||n===void 0)return;const r=e/RL,i=n-t;return Math.trunc(i*r)+t}function $Je(e,t){return Up(t)}function MJe(e,t){if(!e||!t)return 3e3;const n=e.end_slot-e.start_slot;return n<1e4?300:n<5e4?1e3:n<1e5?3e3:n<2e5?5e3:n<3e5?1e4:n<4e5?15e3:3e4}function Yle(e,t){return e.length?e.reduce((n,r,i)=>{if(i===0)return n;const o=n[n.length-1];return Math.abs(r.pct-o.pct)clearTimeout(f.current));const p=m.useCallback(y=>{t(y),d(!0),clearTimeout(f.current),f.current=setTimeout(()=>d(!1),100)},[t]),v=m.useCallback(y=>{const b=NJe(y[0],e==null?void 0:e.start_slot,e==null?void 0:e.end_slot);b!==void 0&&p(b)},[e==null?void 0:e.end_slot,e==null?void 0:e.start_slot,p]),_=Ua(v,100,{trailing:!0});return IJe("pointerup",()=>{i.current=!1,o(!1)}),u.jsx(V,{direction:"column",width:"100%",flexGrow:"1",align:"center",ref:a,children:u.jsxs(KH,{orientation:"vertical",className:Yi.sliderRoot,style:{zIndex:Hf},value:n,onValueChange:y=>{i.current=!0,r(y),_(y),o(!0)},onValueCommit:()=>{i.current=!1,_.flush(),o(!1)},max:RL,children:[u.jsxs(XH,{className:Yi.sliderTrack,children:[u.jsx(PJe,{isSliderChangingValueRef:i,setSliderValue:r},e==null?void 0:e.epoch),u.jsx(UJe,{updateSlot:p,slotHeight:l}),u.jsx(HJe,{updateSlot:p}),u.jsx(GJe,{updateSlot:p})]}),u.jsx(zJe,{isOpen:c})]})})}function OJe({isSliderChangingValueRef:e,setSliderValue:t}){const n=X(di),r=X(KN),i=X(eu),o=X(An),a=X(Tg),[s,l]=m.useReducer($Je,{slot:i,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot},Up),c=m.useMemo(()=>MJe(n,s),[n,s]);return Qu(()=>{m.startTransition(()=>{l({slot:i,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot})})},c),m.useEffect(()=>{if(e.current)return;const d=o?Up({slot:o,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot}):a===$b.MySlots?Up({slot:r,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot}):s,f=EJe(d);t(p=>p[0]===f?p:[f])},[n==null?void 0:n.end_slot,n==null?void 0:n.start_slot,s,e,t,o,a,r]),u.jsx(Mt,{className:Yi.epochProgress,height:`${s*100}%`})}const PJe=m.memo(OJe);function zJe({isOpen:e}){const t=X(An),{showNav:n}=Fg();return u.jsx(JH,{className:Te(Yi.sliderThumb,{[Yi.collapsed]:!n}),children:u.jsx(q,{size:"1",className:Te("rt-TooltipContent","rt-TooltipText",Yi.tooltip,e?Yi.show:Yi.hide),children:t})})}const DJe=e=>fe(t=>{const n=t(eu);return e>(n??0)});function AJe({slot:e,pct:t,height:n,updateSlot:r}){const i=X(Jf),o=X(m.useMemo(()=>DJe(e),[e])),a=l=>c=>{c.stopPropagation(),c.preventDefault(),r(l)},s=i?e{if(!n||!(r!=null&&r.length))return;const o=r.map(a=>({slot:a,pct:Up({slot:a,epochStartSlot:n.start_slot,epochEndSlot:n.end_slot})}));return Yle(o,.005)},[n,r]);return u.jsx(u.Fragment,{children:i==null?void 0:i.map(({slot:o,pct:a})=>u.jsx(FJe,{slot:o,pct:a,height:t,updateSlot:e},o))})}const UJe=m.memo(BJe);function WJe({slot:e,pct:t,updateSlot:n}){const r=i=>o=>{o.stopPropagation(),o.preventDefault(),n(i)};return u.jsx(u.Fragment,{children:u.jsx("div",{className:Te(Yi.skippedSlot,Yi.clickable),style:{bottom:`${t*100}%`},onPointerDown:r(e),children:u.jsx("img",{src:dJe,alt:"skipped slot",className:Te(Yi.skippedSlotIcon,Yi.clickable),style:{bottom:"-3px"},onPointerDown:r(e)})})})}function VJe({updateSlot:e}){const t=X(di),n=X(u3),r=m.useMemo(()=>{if(!t||!(n!=null&&n.length))return;const i=n.map(o=>({slot:o,pct:Up({slot:o,epochStartSlot:t.start_slot,epochEndSlot:t.end_slot})}));return Yle(i,.005)},[t,n]);return u.jsx(u.Fragment,{children:r==null?void 0:r.map(({slot:i,pct:o})=>u.jsx(WJe,{slot:i,pct:o,updateSlot:e},i))})}const HJe=m.memo(VJe);function ZJe({slot:e,pct:t,updateSlot:n}){const r=i=>o=>{o.stopPropagation(),o.preventDefault(),n(i)};return u.jsxs(u.Fragment,{children:[u.jsx(Mt,{className:Te(Yi.firstProcessedSlot,Yi.clickable),style:{bottom:`${t*100}%`},onPointerDown:r(e)}),u.jsx("img",{src:fJe,alt:"first processed slot",className:Te(Yi.firstProcessedSlotIcon,Yi.clickable),style:{bottom:`calc(${t*100}%)`},onPointerDown:r(e)})]})}function qJe({updateSlot:e}){const t=X(di),n=X(Jf),r=m.useMemo(()=>{if(!(!n||!t))return Up({slot:n,epochStartSlot:t.start_slot,epochEndSlot:t.end_slot})},[t,n]);return!r||!n?null:u.jsx(ZJe,{slot:n,pct:r,updateSlot:e})}const GJe=m.memo(qJe),Kle=kb+Sb;function YJe(){const e=Hn(Vte),{showNav:t,occupyRowWidth:n,showOnlyEpochBar:r}=Fg(),i=t?dN:0,o=m.useMemo(()=>r?Wte:$Re,[r]);return u.jsxs(u.Fragment,{children:[u.jsx(KJe,{}),u.jsx("div",{style:{flexShrink:0,width:n?`${o}px`:"0"},children:u.jsxs(V,{width:t?`${o+i}px`:"0",overflow:t?"visible":"hidden",className:Te("sticky",Ep.slotNavContainer,{[Ep.navBackground]:!r}),style:{zIndex:Hf-1},top:`${Kle}px`,height:`calc(100vh - ${Kle}px)`,ml:`${-i}px`,pl:`${i}px`,pb:"2",children:[u.jsxs(V,{flexShrink:"0",direction:"column",width:`${cN}px`,pt:e?"0":`${uN+Vf}px`,children:[e&&u.jsx("div",{style:{marginBottom:`${Vf}px`},children:u.jsx(W$,{})}),u.jsx(LJe,{})]}),!r&&u.jsxs(V,{ml:`${ck}px`,direction:"column",width:`${fN}px`,flexShrink:"0",gap:`${Vf}px`,children:[u.jsx(cJe,{}),u.jsx(V,{flexGrow:"1",children:u.jsx($s,{children:({height:a,width:s})=>u.jsx(rJe,{width:s,height:a})})})]})]})})]})}function KJe(){const e=Ee(An),t=X(Cn);return m.useEffect(()=>{t!==void 0&&e(t)},[t,e]),null}const XJe=ca(),s1=C9e({component:JJe,beforeLoad:()=>XJe.set(gd.slot,void 0)});function JJe(){const e=X(V3);return u.jsxs(u.Fragment,{children:[u.jsx(lXe,{}),u.jsx(tXe,{children:u.jsxs("div",{id:"scroll-container",style:{position:"relative",height:"100dvh",maxHeight:e?"100vh":"unset",overflowY:e?"hidden":"auto",willChange:"scroll-position",contain:"paint",isolation:"isolate"},children:[u.jsx(foe,{}),u.jsxs(V,{className:"app-width-container",px:"2",position:"relative",children:[u.jsx(YJe,{}),u.jsx(QJe,{})]})]})})]})}function QJe(){const e=Yk()==="Schedule",{setIsNavCollapsed:t,isNarrowScreen:n,occupyRowWidth:r,blurBackground:i}=Fg();return m.useEffect(()=>{t(n)},[n,t]),u.jsxs(Mt,{position:"relative",flexGrow:"1",minWidth:"0",pb:"2",pl:e||!r?"0px":`${lN-Vf}px`,children:[u.jsx(Dq,{}),i&&u.jsx(ioe,{})]})}const eQe="_text_nk1yn_1",tQe={text:eQe};function Sd({text:e}){return u.jsx(q,{className:tQe.text,children:e})}var nQe=typeof Ac=="object"&&Ac&&Ac.Object===Object&&Ac,Xle=nQe,rQe=Xle,iQe=typeof self=="object"&&self&&self.Object===Object&&self,oQe=rQe||iQe||Function("return this")(),sc=oQe,aQe=sc,sQe=aQe.Symbol,l1=sQe,Jle=l1,Qle=Object.prototype,lQe=Qle.hasOwnProperty,uQe=Qle.toString,D_=Jle?Jle.toStringTag:void 0;function cQe(e){var t=lQe.call(e,D_),n=e[D_];try{e[D_]=void 0;var r=!0}catch{}var i=uQe.call(e);return r&&(t?e[D_]=n:delete e[D_]),i}var dQe=cQe,fQe=Object.prototype,hQe=fQe.toString;function pQe(e){return hQe.call(e)}var mQe=pQe,eue=l1,gQe=dQe,vQe=mQe,yQe="[object Null]",bQe="[object Undefined]",tue=eue?eue.toStringTag:void 0;function _Qe(e){return e==null?e===void 0?bQe:yQe:tue&&tue in Object(e)?gQe(e):vQe(e)}var Wp=_Qe;function xQe(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Cd=xQe,wQe=Wp,kQe=Cd,SQe="[object AsyncFunction]",CQe="[object Function]",jQe="[object GeneratorFunction]",TQe="[object Proxy]";function IQe(e){if(!kQe(e))return!1;var t=wQe(e);return t==CQe||t==jQe||t==SQe||t==TQe}var B6=IQe;const nue=to(B6);var EQe=sc,NQe=EQe["__core-js_shared__"],$Qe=NQe,OL=$Qe,rue=function(){var e=/[^.]+$/.exec(OL&&OL.keys&&OL.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function MQe(e){return!!rue&&rue in e}var LQe=MQe,RQe=Function.prototype,OQe=RQe.toString;function PQe(e){if(e!=null){try{return OQe.call(e)}catch{}try{return e+""}catch{}}return""}var iue=PQe,zQe=B6,DQe=LQe,AQe=Cd,FQe=iue,BQe=/[\\^$.*+?()[\]{}|]/g,UQe=/^\[object .+?Constructor\]$/,WQe=Function.prototype,VQe=Object.prototype,HQe=WQe.toString,ZQe=VQe.hasOwnProperty,qQe=RegExp("^"+HQe.call(ZQe).replace(BQe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function GQe(e){if(!AQe(e)||DQe(e))return!1;var t=zQe(e)?qQe:UQe;return t.test(FQe(e))}var YQe=GQe;function KQe(e,t){return e==null?void 0:e[t]}var XQe=KQe,JQe=YQe,QQe=XQe;function eet(e,t){var n=QQe(e,t);return JQe(n)?n:void 0}var Vp=eet,tet=Vp,net=tet(Object,"create"),U6=net,oue=U6;function ret(){this.__data__=oue?oue(null):{},this.size=0}var iet=ret;function oet(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var aet=oet,set=U6,uet="__lodash_hash_undefined__",cet=Object.prototype,det=cet.hasOwnProperty;function fet(e){var t=this.__data__;if(set){var n=t[e];return n===uet?void 0:n}return det.call(t,e)?t[e]:void 0}var het=fet,pet=U6,met=Object.prototype,get=met.hasOwnProperty;function vet(e){var t=this.__data__;return pet?t[e]!==void 0:get.call(t,e)}var yet=vet,bet=U6,_et="__lodash_hash_undefined__";function xet(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=bet&&t===void 0?_et:t,this}var wet=xet,ket=iet,Cet=aet,jet=het,Tet=yet,Iet=wet;function u1(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}var Het=Vet,Zet=W6;function qet(e,t){var n=this.__data__,r=Zet(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Get=qet,Yet=$et,Ket=Aet,Xet=Uet,Jet=Het,Qet=Get;function c1(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}var sue=Gtt;function Ytt(e,t,n){for(var r=-1,i=e==null?0:e.length;++r=pnt){var c=t?null:fnt(e);if(c)return hnt(c);a=!1,i=dnt,l=new lnt}else l=t?[]:s;e:for(;++r0&&f.height>0,b=Math.round(n[0]),w=Math.round(n[1]);y&&(r==="top"?(b-=f.width/2,w-=f.height+14):r==="right"?(b+=14,w-=f.height/2):r==="bottom"?(b-=f.width/2,w+=14):r==="left"?(b-=f.width+14,w-=f.height/2):r==="center"&&(b-=f.width/2,w-=f.height/2),v={transform:hue(b,w)},p.current||(_=!0),p.current=[b,w]);var x=e_({to:v,config:l,immediate:!s||_}),S=Hp({},jnt,o.tooltip.wrapper,{transform:(t=x.transform)!=null?t:hue(b,w),opacity:x.transform?1:0});return u.jsx(iu.div,{ref:d,style:S,children:i})});pue.displayName="TooltipWrapper";var UL=m.memo(function(e){var t=e.size,n=t===void 0?12:t,r=e.color,i=e.style;return u.jsx("span",{style:Hp({display:"block",width:n,height:n,background:r},i===void 0?{}:i)})}),WL=m.memo(function(e){var t,n=e.id,r=e.value,i=e.format,o=e.enableChip,a=o!==void 0&&o,s=e.color,l=e.renderContent,c=Ms(),d=WR(i);if(typeof l=="function")t=l();else{var f=r;d!==void 0&&f!==void 0&&(f=d(f)),t=u.jsxs("div",{style:c.tooltip.basic,children:[a&&u.jsx(UL,{color:s,style:c.tooltip.chip}),f!==void 0?u.jsxs("span",{children:[n,": ",u.jsx("strong",{children:""+f})]}):n]})}return u.jsx("div",{style:c.tooltip.container,children:t})}),Tnt={width:"100%",borderCollapse:"collapse"},Int=m.memo(function(e){var t,n=e.title,r=e.rows,i=r===void 0?[]:r,o=e.renderContent,a=Ms();return i.length?(t=typeof o=="function"?o():u.jsxs("div",{children:[n&&n,u.jsx("table",{style:Hp({},Tnt,a.tooltip.table),children:u.jsx("tbody",{children:i.map(function(s,l){return u.jsx("tr",{children:s.map(function(c,d){return u.jsx("td",{style:a.tooltip.tableCell,children:c},d)})},l)})})})]}),u.jsx("div",{style:a.tooltip.container,children:t})):null});Int.displayName="TableTooltip";var VL=m.memo(function(e){var t=e.x0,n=e.x1,r=e.y0,i=e.y1,o=Ms(),a=w1(),s=a.animate,l=a.config,c=m.useMemo(function(){return Hp({},o.crosshair.line,{pointerEvents:"none"})},[o.crosshair.line]),d=e_({x1:t,x2:n,y1:r,y2:i,config:l,immediate:!s});return u.jsx(iu.line,Hp({},d,{fill:"none",style:c}))});VL.displayName="CrosshairLine";var Ent=m.memo(function(e){var t,n,r=e.width,i=e.height,o=e.type,a=e.x,s=e.y;return o==="cross"?(t={x0:a,x1:a,y0:0,y1:i},n={x0:0,x1:r,y0:s,y1:s}):o==="top-left"?(t={x0:a,x1:a,y0:0,y1:s},n={x0:0,x1:a,y0:s,y1:s}):o==="top"?t={x0:a,x1:a,y0:0,y1:s}:o==="top-right"?(t={x0:a,x1:a,y0:0,y1:s},n={x0:a,x1:r,y0:s,y1:s}):o==="right"?n={x0:a,x1:r,y0:s,y1:s}:o==="bottom-right"?(t={x0:a,x1:a,y0:s,y1:i},n={x0:a,x1:r,y0:s,y1:s}):o==="bottom"?t={x0:a,x1:a,y0:s,y1:i}:o==="bottom-left"?(t={x0:a,x1:a,y0:s,y1:i},n={x0:0,x1:a,y0:s,y1:s}):o==="left"?n={x0:0,x1:a,y0:s,y1:s}:o==="x"?t={x0:a,x1:a,y0:0,y1:i}:o==="y"&&(n={x0:0,x1:r,y0:s,y1:s}),u.jsxs(u.Fragment,{children:[t&&u.jsx(VL,{x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1}),n&&u.jsx(VL,{x0:n.x0,x1:n.x1,y0:n.y0,y1:n.y1})]})});Ent.displayName="Crosshair";var mue=m.createContext({showTooltipAt:function(){},showTooltipFromEvent:function(){},hideTooltip:function(){}}),HL={isVisible:!1,position:[null,null],content:null,anchor:null},gue=m.createContext(HL),Nnt=function(e){var t=m.useState(HL),n=t[0],r=t[1],i=m.useCallback(function(s,l,c){var d=l[0],f=l[1];c===void 0&&(c="top"),r({isVisible:!0,position:[d,f],anchor:c,content:s})},[r]),o=m.useCallback(function(s,l,c){c===void 0&&(c="top");var d=e.current.getBoundingClientRect(),f=e.current.offsetWidth,p=f===d.width?1:f/d.width,v="touches"in l?l.touches[0]:l,_=v.clientX,y=v.clientY,b=(_-d.left)*p,w=(y-d.top)*p;c!=="left"&&c!=="right"||(c=b-1&&e%1==0&&e<=Wrt}var XL=Vrt,Hrt=B6,Zrt=XL;function qrt(e){return e!=null&&Zrt(e.length)&&!Hrt(e)}var Y6=qrt,Grt=Y6,Yrt=lc;function Krt(e){return Yrt(e)&&Grt(e)}var Nue=Krt,K6={exports:{}};function Xrt(){return!1}var Jrt=Xrt;K6.exports,function(e,t){var n=sc,r=Jrt,i=t&&!t.nodeType&&t,o=i&&!0&&e&&!e.nodeType&&e,a=o&&o.exports===i,s=a?n.Buffer:void 0,l=s?s.isBuffer:void 0,c=l||r;e.exports=c}(K6,K6.exports);var X6=K6.exports,Qrt=Wp,eit=YL,tit=lc,nit="[object Object]",rit=Function.prototype,iit=Object.prototype,$ue=rit.toString,oit=iit.hasOwnProperty,ait=$ue.call(Object);function sit(e){if(!tit(e)||Qrt(e)!=nit)return!1;var t=eit(e);if(t===null)return!0;var n=oit.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&$ue.call(n)==ait}var Mue=sit;const F_=to(Mue);var lit=Wp,uit=XL,cit=lc,dit="[object Arguments]",fit="[object Array]",hit="[object Boolean]",pit="[object Date]",mit="[object Error]",git="[object Function]",vit="[object Map]",yit="[object Number]",bit="[object Object]",_it="[object RegExp]",xit="[object Set]",wit="[object String]",kit="[object WeakMap]",Sit="[object ArrayBuffer]",Cit="[object DataView]",jit="[object Float32Array]",Tit="[object Float64Array]",Iit="[object Int8Array]",Eit="[object Int16Array]",Nit="[object Int32Array]",$it="[object Uint8Array]",Mit="[object Uint8ClampedArray]",Lit="[object Uint16Array]",Rit="[object Uint32Array]",Br={};Br[jit]=Br[Tit]=Br[Iit]=Br[Eit]=Br[Nit]=Br[$it]=Br[Mit]=Br[Lit]=Br[Rit]=!0,Br[dit]=Br[fit]=Br[Sit]=Br[hit]=Br[Cit]=Br[pit]=Br[mit]=Br[git]=Br[vit]=Br[yit]=Br[bit]=Br[_it]=Br[xit]=Br[wit]=Br[kit]=!1;function Oit(e){return cit(e)&&uit(e.length)&&!!Br[lit(e)]}var Pit=Oit;function zit(e){return function(t){return e(t)}}var J6=zit,Q6={exports:{}};Q6.exports,function(e,t){var n=Xle,r=t&&!t.nodeType&&t,i=r&&!0&&e&&!e.nodeType&&e,o=i&&i.exports===r,a=o&&n.process,s=function(){try{var l=i&&i.require&&i.require("util").types;return l||a&&a.binding&&a.binding("util")}catch{}}();e.exports=s}(Q6,Q6.exports);var JL=Q6.exports,Dit=Pit,Ait=J6,Lue=JL,Rue=Lue&&Lue.isTypedArray,Fit=Rue?Ait(Rue):Dit,QL=Fit;function Bit(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var Oue=Bit,Uit=qL,Wit=A_,Vit=Object.prototype,Hit=Vit.hasOwnProperty;function Zit(e,t,n){var r=e[t];(!(Hit.call(e,t)&&Wit(r,n))||n===void 0&&!(t in e))&&Uit(e,t,n)}var eR=Zit,qit=eR,Git=qL;function Yit(e,t,n,r){var i=!n;n||(n={});for(var o=-1,a=t.length;++o-1&&e%1==0&&e0){if(++t>=oat)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var uat=lat,cat=iat,dat=uat,fat=dat(cat),Zue=fat,hat=Uue,pat=Vue,mat=Zue;function gat(e,t){return mat(pat(e,t,hat),e+"")}var que=gat,vat=A_,yat=Y6,bat=e5,_at=Cd;function xat(e,t,n){if(!_at(n))return!1;var r=typeof t;return(r=="number"?yat(n)&&bat(t,n.length):r=="string"&&t in n)?vat(n[t],e):!1}var wat=xat,kat=que,Sat=wat;function Cat(e){return kat(function(t,n){var r=-1,i=n.length,o=i>1?n[i-1]:void 0,a=i>2?n[2]:void 0;for(o=e.length>3&&typeof o=="function"?(i--,o):void 0,a&&Sat(n[0],n[1],a)&&(o=i<3?void 0:o,i=1),t=Object(t);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?r5(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?r5(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Est.exec(e))?new Vo(t[1],t[2],t[3],1):(t=Nst.exec(e))?new Vo(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=$st.exec(e))?r5(t[1],t[2],t[3],t[4]):(t=Mst.exec(e))?r5(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Lst.exec(e))?cce(t[1],t[2]/100,t[3]/100,1):(t=Rst.exec(e))?cce(t[1],t[2]/100,t[3]/100,t[4]):rce.hasOwnProperty(e)?ace(rce[e]):e==="transparent"?new Vo(NaN,NaN,NaN,0):null}function ace(e){return new Vo(e>>16&255,e>>8&255,e&255,1)}function r5(e,t,n,r){return r<=0&&(e=t=n=NaN),new Vo(e,t,n,r)}function sce(e){return e instanceof h1||(e=oR(e)),e?(e=e.rgb(),new Vo(e.r,e.g,e.b,e.opacity)):new Vo}function qp(e,t,n,r){return arguments.length===1?sce(e):new Vo(e,t,n,r??1)}function Vo(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}n5(Vo,qp,iR(h1,{brighter(e){return e=e==null?p1:Math.pow(p1,e),new Vo(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Zp:Math.pow(Zp,e),new Vo(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Vo(Gp(this.r),Gp(this.g),Gp(this.b),i5(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:lce,formatHex:lce,formatHex8:zst,formatRgb:uce,toString:uce}));function lce(){return`#${Yp(this.r)}${Yp(this.g)}${Yp(this.b)}`}function zst(){return`#${Yp(this.r)}${Yp(this.g)}${Yp(this.b)}${Yp((isNaN(this.opacity)?1:this.opacity)*255)}`}function uce(){const e=i5(this.opacity);return`${e===1?"rgb(":"rgba("}${Gp(this.r)}, ${Gp(this.g)}, ${Gp(this.b)}${e===1?")":`, ${e})`}`}function i5(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Gp(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Yp(e){return e=Gp(e),(e<16?"0":"")+e.toString(16)}function cce(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new pu(e,t,n,r)}function dce(e){if(e instanceof pu)return new pu(e.h,e.s,e.l,e.opacity);if(e instanceof h1||(e=oR(e)),!e)return new pu;if(e instanceof pu)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),a=NaN,s=o-i,l=(o+i)/2;return s?(t===o?a=(n-r)/s+(n0&&l<1?0:a,new pu(a,s,l,e.opacity)}function Dst(e,t,n,r){return arguments.length===1?dce(e):new pu(e,t,n,r??1)}function pu(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}n5(pu,Dst,iR(h1,{brighter(e){return e=e==null?p1:Math.pow(p1,e),new pu(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Zp:Math.pow(Zp,e),new pu(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Vo(aR(e>=240?e-240:e+120,i,r),aR(e,i,r),aR(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new pu(fce(this.h),o5(this.s),o5(this.l),i5(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=i5(this.opacity);return`${e===1?"hsl(":"hsla("}${fce(this.h)}, ${o5(this.s)*100}%, ${o5(this.l)*100}%${e===1?")":`, ${e})`}`}}));function fce(e){return e=(e||0)%360,e<0?e+360:e}function o5(e){return Math.max(0,Math.min(1,e||0))}function aR(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const Ast=Math.PI/180,Fst=180/Math.PI;var hce=-.14861,sR=1.78277,lR=-.29227,a5=-.90649,H_=1.97294,pce=H_*a5,mce=H_*sR,gce=sR*lR-a5*hce;function Bst(e){if(e instanceof Kp)return new Kp(e.h,e.s,e.l,e.opacity);e instanceof Vo||(e=sce(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(gce*r+pce*t-mce*n)/(gce+pce-mce),o=r-i,a=(H_*(n-i)-lR*o)/a5,s=Math.sqrt(a*a+o*o)/(H_*i*(1-i)),l=s?Math.atan2(a,o)*Fst-120:NaN;return new Kp(l<0?l+360:l,s,i,e.opacity)}function cc(e,t,n,r){return arguments.length===1?Bst(e):new Kp(e,t,n,r??1)}function Kp(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}n5(Kp,cc,iR(h1,{brighter(e){return e=e==null?p1:Math.pow(p1,e),new Kp(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Zp:Math.pow(Zp,e),new Kp(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*Ast,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new Vo(255*(t+n*(hce*r+sR*i)),255*(t+n*(lR*r+a5*i)),255*(t+n*(H_*r)),this.opacity)}}));function Ust(e,t,n,r,i){var o=e*e,a=o*e;return((1-3*e+3*o-a)*t+(4-6*o+3*a)*n+(1+3*e+3*o-3*a)*r+a*i)/6}function Wst(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],o=e[r+1],a=r>0?e[r-1]:2*i-o,s=r()=>e;function vce(e,t){return function(n){return e+n*t}}function Vst(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Hst(e,t){var n=t-e;return n?vce(e,n>180||n<-180?n-360*Math.round(n/360):n):uR(isNaN(e)?t:e)}function Zst(e){return(e=+e)==1?g1:function(t,n){return n-t?Vst(t,n,e):uR(isNaN(t)?n:t)}}function g1(e,t){var n=t-e;return n?vce(e,n):uR(isNaN(e)?t:e)}(function e(t){var n=Zst(t);function r(i,o){var a=n((i=qp(i)).r,(o=qp(o)).r),s=n(i.g,o.g),l=n(i.b,o.b),c=g1(i.opacity,o.opacity);return function(d){return i.r=a(d),i.g=s(d),i.b=l(d),i.opacity=c(d),i+""}}return r.gamma=e,r})(1);function qst(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),o=new Array(n),a,s;for(a=0;a=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n=i)&&(n=i)}return n}function wce(e,t){let n;if(t===void 0)for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function dR(e,t){let n=0;if(t===void 0)for(let r of e)(r=+r)&&(n+=r);else{let r=-1;for(let i of e)(i=+t(i,++r,e))&&(n+=i)}return n}function slt(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}const kce=Symbol("implicit");function dc(){var e=new bce,t=[],n=[],r=kce;function i(o){let a=e.get(o);if(a===void 0){if(r!==kce)return r;e.set(o,a=t.push(o)-1)}return n[a%n.length]}return i.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new bce;for(const a of o)e.has(a)||e.set(a,t.push(a)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return dc(t,n).unknown(r)},slt.apply(i,arguments),i}function llt(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function s5(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function ult(e){return e=s5(Math.abs(e)),e?e[1]:NaN}function clt(e,t){return function(n,r){for(var i=n.length,o=[],a=0,s=e[0],l=0;i>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),o.push(n.substring(i-=s,i+s)),!((l+=s+1)>r));)s=e[a=(a+1)%e.length];return o.reverse().join(t)}}function dlt(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var flt=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function fR(e){if(!(t=flt.exec(e)))throw new Error("invalid format: "+e);var t;return new hR({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}fR.prototype=hR.prototype;function hR(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}hR.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function hlt(e){e:for(var t=e.length,n=1,r=-1,i;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var Sce;function plt(e,t){var n=s5(e,t);if(!n)return e+"";var r=n[0],i=n[1],o=i-(Sce=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+s5(e,Math.max(0,t+o-1))[0]}function Cce(e,t){var n=s5(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const jce={"%":function(e,t){return(e*100).toFixed(t)},b:function(e){return Math.round(e).toString(2)},c:function(e){return e+""},d:llt,e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},g:function(e,t){return e.toPrecision(t)},o:function(e){return Math.round(e).toString(8)},p:function(e,t){return Cce(e*100,t)},r:Cce,s:plt,X:function(e){return Math.round(e).toString(16).toUpperCase()},x:function(e){return Math.round(e).toString(16)}};function Tce(e){return e}var Ice=Array.prototype.map,Ece=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function mlt(e){var t=e.grouping===void 0||e.thousands===void 0?Tce:clt(Ice.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal+"",o=e.numerals===void 0?Tce:dlt(Ice.call(e.numerals,String)),a=e.percent===void 0?"%":e.percent+"",s=e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function c(f){f=fR(f);var p=f.fill,v=f.align,_=f.sign,y=f.symbol,b=f.zero,w=f.width,x=f.comma,S=f.precision,C=f.trim,j=f.type;j==="n"?(x=!0,j="g"):jce[j]||(S===void 0&&(S=12),C=!0,j="g"),(b||p==="0"&&v==="=")&&(b=!0,p="0",v="=");var T=y==="$"?n:y==="#"&&/[boxX]/.test(j)?"0"+j.toLowerCase():"",E=y==="$"?r:/[%p]/.test(j)?a:"",$=jce[j],A=/[defgprs%]/.test(j);S=S===void 0?6:/[gprs]/.test(j)?Math.max(1,Math.min(21,S)):Math.max(0,Math.min(20,S));function M(P){var te=T,Z=E,O,J,D;if(j==="c")Z=$(P)+Z,P="";else{P=+P;var Y=P<0||1/P<0;if(P=isNaN(P)?l:$(Math.abs(P),S),C&&(P=hlt(P)),Y&&+P==0&&_!=="+"&&(Y=!1),te=(Y?_==="("?_:s:_==="-"||_==="("?"":_)+te,Z=(j==="s"?Ece[8+Sce/3]:"")+Z+(Y&&_==="("?")":""),A){for(O=-1,J=P.length;++OD||D>57){Z=(D===46?i+P.slice(O+1):P.slice(O))+Z,P=P.slice(0,O);break}}}x&&!b&&(P=t(P,1/0));var F=te.length+P.length+Z.length,H=F>1)+te+P+Z+H.slice(F);break;default:P=H+te+P+Z;break}return o(P)}return M.toString=function(){return f+""},M}function d(f,p){var v=c((f=fR(f),f.type="f",f)),_=Math.max(-8,Math.min(8,Math.floor(ult(p)/3)))*3,y=Math.pow(10,-_),b=Ece[8+_/3];return function(w){return v(y*w)+b}}return{format:c,formatPrefix:d}}var l5,Nce;glt({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function glt(e){return l5=mlt(e),Nce=l5.format,l5.formatPrefix,l5}var pR=new Date,mR=new Date;function jd(e,t,n,r){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=function(o){return e(o=new Date(+o)),o},i.ceil=function(o){return e(o=new Date(o-1)),t(o,1),e(o),o},i.round=function(o){var a=i(o),s=i.ceil(o);return o-a0))return l;do l.push(c=new Date(+o)),t(o,s),e(o);while(c=a)for(;e(a),!o(a);)a.setTime(a-1)},function(a,s){if(a>=a)if(s<0)for(;++s<=0;)for(;t(a,-1),!o(a););else for(;--s>=0;)for(;t(a,1),!o(a););})},n&&(i.count=function(o,a){return pR.setTime(+o),mR.setTime(+a),e(pR),e(mR),Math.floor(n(pR,mR))},i.every=function(o){return o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?function(a){return r(a)%o===0}:function(a){return i.count(0,a)%o===0}):i}),i}const vlt=1e3,gR=vlt*60,ylt=gR*60,vR=ylt*24,$ce=vR*7;var yR=jd(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*gR)/vR,e=>e.getDate()-1);yR.range;function Xp(e){return jd(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*gR)/$ce})}var Mce=Xp(0),u5=Xp(1),blt=Xp(2),_lt=Xp(3),v1=Xp(4),xlt=Xp(5),wlt=Xp(6);Mce.range,u5.range,blt.range,_lt.range,v1.range,xlt.range,wlt.range;var Jp=jd(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()});Jp.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:jd(function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n*e)})},Jp.range;var bR=jd(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/vR},function(e){return e.getUTCDate()-1});bR.range;function Qp(e){return jd(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/$ce})}var Lce=Qp(0),c5=Qp(1),klt=Qp(2),Slt=Qp(3),y1=Qp(4),Clt=Qp(5),jlt=Qp(6);Lce.range,c5.range,klt.range,Slt.range,y1.range,Clt.range,jlt.range;var em=jd(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()});em.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:jd(function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})},em.range;function _R(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function xR(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Z_(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function Tlt(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,o=e.days,a=e.shortDays,s=e.months,l=e.shortMonths,c=q_(i),d=G_(i),f=q_(o),p=G_(o),v=q_(a),_=G_(a),y=q_(s),b=G_(s),w=q_(l),x=G_(l),S={a:Y,A:F,b:H,B:ee,c:null,d:Ace,e:Ace,f:Klt,g:aut,G:lut,H:qlt,I:Glt,j:Ylt,L:Fce,m:Xlt,M:Jlt,p:ce,q:U,Q:Zce,s:qce,S:Qlt,u:eut,U:tut,V:nut,w:rut,W:iut,x:null,X:null,y:out,Y:sut,Z:uut,"%":Hce},C={a:ae,A:je,b:me,B:ke,c:null,d:Uce,e:Uce,f:hut,g:kut,G:Cut,H:cut,I:dut,j:fut,L:Wce,m:put,M:mut,p:he,q:ue,Q:Zce,s:qce,S:gut,u:vut,U:yut,V:but,w:_ut,W:xut,x:null,X:null,y:wut,Y:Sut,Z:jut,"%":Hce},j={a:M,A:P,b:te,B:Z,c:O,d:zce,e:zce,f:Wlt,g:Pce,G:Oce,H:Dce,I:Dce,j:Alt,L:Ult,m:Dlt,M:Flt,p:A,q:zlt,Q:Hlt,s:Zlt,S:Blt,u:Mlt,U:Llt,V:Rlt,w:$lt,W:Olt,x:J,X:D,y:Pce,Y:Oce,Z:Plt,"%":Vlt};S.x=T(n,S),S.X=T(r,S),S.c=T(t,S),C.x=T(n,C),C.X=T(r,C),C.c=T(t,C);function T(re,ge){return function($e){var pe=[],ye=-1,Se=0,Ce=re.length,Be,Ge,xt;for($e instanceof Date||($e=new Date(+$e));++ye53)return null;"w"in pe||(pe.w=1),"Z"in pe?(Se=xR(Z_(pe.y,0,1)),Ce=Se.getUTCDay(),Se=Ce>4||Ce===0?c5.ceil(Se):c5(Se),Se=bR.offset(Se,(pe.V-1)*7),pe.y=Se.getUTCFullYear(),pe.m=Se.getUTCMonth(),pe.d=Se.getUTCDate()+(pe.w+6)%7):(Se=_R(Z_(pe.y,0,1)),Ce=Se.getDay(),Se=Ce>4||Ce===0?u5.ceil(Se):u5(Se),Se=yR.offset(Se,(pe.V-1)*7),pe.y=Se.getFullYear(),pe.m=Se.getMonth(),pe.d=Se.getDate()+(pe.w+6)%7)}else("W"in pe||"U"in pe)&&("w"in pe||(pe.w="u"in pe?pe.u%7:"W"in pe?1:0),Ce="Z"in pe?xR(Z_(pe.y,0,1)).getUTCDay():_R(Z_(pe.y,0,1)).getDay(),pe.m=0,pe.d="W"in pe?(pe.w+6)%7+pe.W*7-(Ce+5)%7:pe.w+pe.U*7-(Ce+6)%7);return"Z"in pe?(pe.H+=pe.Z/100|0,pe.M+=pe.Z%100,xR(pe)):_R(pe)}}function $(re,ge,$e,pe){for(var ye=0,Se=ge.length,Ce=$e.length,Be,Ge;ye=Ce)return-1;if(Be=ge.charCodeAt(ye++),Be===37){if(Be=ge.charAt(ye++),Ge=j[Be in Rce?ge.charAt(ye++):Be],!Ge||(pe=Ge(re,$e,pe))<0)return-1}else if(Be!=$e.charCodeAt(pe++))return-1}return pe}function A(re,ge,$e){var pe=c.exec(ge.slice($e));return pe?(re.p=d.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function M(re,ge,$e){var pe=v.exec(ge.slice($e));return pe?(re.w=_.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function P(re,ge,$e){var pe=f.exec(ge.slice($e));return pe?(re.w=p.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function te(re,ge,$e){var pe=w.exec(ge.slice($e));return pe?(re.m=x.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function Z(re,ge,$e){var pe=y.exec(ge.slice($e));return pe?(re.m=b.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function O(re,ge,$e){return $(re,t,ge,$e)}function J(re,ge,$e){return $(re,n,ge,$e)}function D(re,ge,$e){return $(re,r,ge,$e)}function Y(re){return a[re.getDay()]}function F(re){return o[re.getDay()]}function H(re){return l[re.getMonth()]}function ee(re){return s[re.getMonth()]}function ce(re){return i[+(re.getHours()>=12)]}function U(re){return 1+~~(re.getMonth()/3)}function ae(re){return a[re.getUTCDay()]}function je(re){return o[re.getUTCDay()]}function me(re){return l[re.getUTCMonth()]}function ke(re){return s[re.getUTCMonth()]}function he(re){return i[+(re.getUTCHours()>=12)]}function ue(re){return 1+~~(re.getUTCMonth()/3)}return{format:function(re){var ge=T(re+="",S);return ge.toString=function(){return re},ge},parse:function(re){var ge=E(re+="",!1);return ge.toString=function(){return re},ge},utcFormat:function(re){var ge=T(re+="",C);return ge.toString=function(){return re},ge},utcParse:function(re){var ge=E(re+="",!0);return ge.toString=function(){return re},ge}}}var Rce={"-":"",_:" ",0:"0"},lo=/^\s*\d+/,Ilt=/^%/,Elt=/[\\^$*+?|[\]().{}]/g;function On(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",o=i.length;return r+(o[t.toLowerCase(),n]))}function $lt(e,t,n){var r=lo.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function Mlt(e,t,n){var r=lo.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function Llt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function Rlt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function Olt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Oce(e,t,n){var r=lo.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function Pce(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Plt(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function zlt(e,t,n){var r=lo.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function Dlt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function zce(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function Alt(e,t,n){var r=lo.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Dce(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function Flt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function Blt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function Ult(e,t,n){var r=lo.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function Wlt(e,t,n){var r=lo.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Vlt(e,t,n){var r=Ilt.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Hlt(e,t,n){var r=lo.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function Zlt(e,t,n){var r=lo.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Ace(e,t){return On(e.getDate(),t,2)}function qlt(e,t){return On(e.getHours(),t,2)}function Glt(e,t){return On(e.getHours()%12||12,t,2)}function Ylt(e,t){return On(1+yR.count(Jp(e),e),t,3)}function Fce(e,t){return On(e.getMilliseconds(),t,3)}function Klt(e,t){return Fce(e,t)+"000"}function Xlt(e,t){return On(e.getMonth()+1,t,2)}function Jlt(e,t){return On(e.getMinutes(),t,2)}function Qlt(e,t){return On(e.getSeconds(),t,2)}function eut(e){var t=e.getDay();return t===0?7:t}function tut(e,t){return On(Mce.count(Jp(e)-1,e),t,2)}function Bce(e){var t=e.getDay();return t>=4||t===0?v1(e):v1.ceil(e)}function nut(e,t){return e=Bce(e),On(v1.count(Jp(e),e)+(Jp(e).getDay()===4),t,2)}function rut(e){return e.getDay()}function iut(e,t){return On(u5.count(Jp(e)-1,e),t,2)}function out(e,t){return On(e.getFullYear()%100,t,2)}function aut(e,t){return e=Bce(e),On(e.getFullYear()%100,t,2)}function sut(e,t){return On(e.getFullYear()%1e4,t,4)}function lut(e,t){var n=e.getDay();return e=n>=4||n===0?v1(e):v1.ceil(e),On(e.getFullYear()%1e4,t,4)}function uut(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+On(t/60|0,"0",2)+On(t%60,"0",2)}function Uce(e,t){return On(e.getUTCDate(),t,2)}function cut(e,t){return On(e.getUTCHours(),t,2)}function dut(e,t){return On(e.getUTCHours()%12||12,t,2)}function fut(e,t){return On(1+bR.count(em(e),e),t,3)}function Wce(e,t){return On(e.getUTCMilliseconds(),t,3)}function hut(e,t){return Wce(e,t)+"000"}function put(e,t){return On(e.getUTCMonth()+1,t,2)}function mut(e,t){return On(e.getUTCMinutes(),t,2)}function gut(e,t){return On(e.getUTCSeconds(),t,2)}function vut(e){var t=e.getUTCDay();return t===0?7:t}function yut(e,t){return On(Lce.count(em(e)-1,e),t,2)}function Vce(e){var t=e.getUTCDay();return t>=4||t===0?y1(e):y1.ceil(e)}function but(e,t){return e=Vce(e),On(y1.count(em(e),e)+(em(e).getUTCDay()===4),t,2)}function _ut(e){return e.getUTCDay()}function xut(e,t){return On(c5.count(em(e)-1,e),t,2)}function wut(e,t){return On(e.getUTCFullYear()%100,t,2)}function kut(e,t){return e=Vce(e),On(e.getUTCFullYear()%100,t,2)}function Sut(e,t){return On(e.getUTCFullYear()%1e4,t,4)}function Cut(e,t){var n=e.getUTCDay();return e=n>=4||n===0?y1(e):y1.ceil(e),On(e.getUTCFullYear()%1e4,t,4)}function jut(){return"+0000"}function Hce(){return"%"}function Zce(e){return+e}function qce(e){return Math.floor(+e/1e3)}var b1,Gce;Tut({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Tut(e){return b1=Tlt(e),Gce=b1.format,b1.parse,b1.utcFormat,b1.utcParse,b1}function en(e){for(var t=e.length/6|0,n=new Array(t),r=0;rGst(e[e.length-1]);var tm=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(en);const _5=xr(tm);var nm=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(en);const x5=xr(nm);var rm=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(en);const w5=xr(rm);var im=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(en);const k5=xr(im);var om=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(en);const S5=xr(om);var am=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(en);const C5=xr(am);var sm=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(en);const j5=xr(sm);var lm=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(en);const T5=xr(lm);var um=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(en);const I5=xr(um);var cm=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(en);const E5=xr(cm);var dm=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(en);const N5=xr(dm);var fm=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(en);const $5=xr(fm);var hm=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(en);const M5=xr(hm);var pm=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(en);const L5=xr(pm);var mm=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(en);const R5=xr(mm);var gm=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(en);const O5=xr(gm);var vm=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(en);const P5=xr(vm);var ym=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(en);const z5=xr(ym);var bm=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(en);const D5=xr(bm);var _m=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(en);const A5=xr(_m);var xm=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(en);const F5=xr(xm);var wm=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(en);const B5=xr(wm);var km=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(en);const U5=xr(km);var Sm=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(en);const W5=xr(Sm);var Cm=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(en);const V5=xr(Cm);var jm=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(en);const H5=xr(jm);var Tm=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(en);const Z5=xr(Tm);function q5(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-e*(35.34-e*(2381.73-e*(6402.7-e*(7024.72-e*2710.57)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+e*(170.73+e*(52.82-e*(131.46-e*(176.58-e*67.37)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+e*(442.36-e*(2482.43-e*(6167.24-e*(6614.94-e*2475.67)))))))+")"}const G5=cR(cc(300,.5,0),cc(-240,.5,1));var Y5=cR(cc(-100,.75,.35),cc(80,1.5,.8)),K5=cR(cc(260,.75,.35),cc(80,1.5,.8)),X5=cc();function J5(e){(e<0||e>1)&&(e-=Math.floor(e));var t=Math.abs(e-.5);return X5.h=360*e-100,X5.s=1.5-1.5*t,X5.l=.8-.9*t,X5+""}var Q5=qp(),Iut=Math.PI/3,Eut=Math.PI*2/3;function eS(e){var t;return e=(.5-e)*Math.PI,Q5.r=255*(t=Math.sin(e))*t,Q5.g=255*(t=Math.sin(e+Iut))*t,Q5.b=255*(t=Math.sin(e+Eut))*t,Q5+""}function tS(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+e*(1172.33-e*(10793.56-e*(33300.12-e*(38394.49-e*14825.05)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+e*(557.33+e*(1225.33-e*(3574.96-e*(1073.77+e*707.56)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+e*(3211.1-e*(15327.97-e*(27814-e*(22569.18-e*6838.66)))))))+")"}function nS(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}const rS=nS(en("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));var iS=nS(en("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),oS=nS(en("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),aS=nS(en("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),Nut=DL,$ut=sue,Mut=lue,Lut=Yue,Rut=J6,Out=AL,Put=200;function zut(e,t,n,r){var i=-1,o=$ut,a=!0,s=e.length,l=[],c=t.length;if(!s)return l;n&&(t=Lut(t,Rut(n))),r?(o=Mut,a=!1):t.length>=Put&&(o=Out,a=!1,t=new Nut(t));e:for(;++i1?0:e<-1?K_:Math.acos(e)}function Xce(e){return e>=1?sS:e<=-1?-sS:Math.asin(e)}const kR=Math.PI,SR=2*kR,Em=1e-6,Zut=SR-Em;function Jce(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return Jce;const n=10**t;return function(r){this._+=r[0];for(let i=1,o=r.length;iEm)if(!(Math.abs(d*s-l*c)>Em)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let p=n-o,v=r-a,_=s*s+l*l,y=p*p+v*v,b=Math.sqrt(_),w=Math.sqrt(f),x=i*Math.tan((kR-Math.acos((_+f-y)/(2*b*w)))/2),S=x/w,C=x/b;Math.abs(S-1)>Em&&this._append`L${e+S*c},${t+S*d}`,this._append`A${i},${i},0,0,${+(d*p>c*v)},${this._x1=e+C*s},${this._y1=t+C*l}`}}arc(e,t,n,r,i,o){if(e=+e,t=+t,n=+n,o=!!o,n<0)throw new Error(`negative radius: ${n}`);let a=n*Math.cos(r),s=n*Math.sin(r),l=e+a,c=t+s,d=1^o,f=o?r-i:i-r;this._x1===null?this._append`M${l},${c}`:(Math.abs(this._x1-l)>Em||Math.abs(this._y1-c)>Em)&&this._append`L${l},${c}`,n&&(f<0&&(f=f%SR+SR),f>Zut?this._append`A${n},${n},0,1,${d},${e-a},${t-s}A${n},${n},0,1,${d},${this._x1=l},${this._y1=c}`:f>Em&&this._append`A${n},${n},0,${+(f>=kR)},${d},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}};function Qce(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new Gut(t)}function Yut(e){return e.innerRadius}function Kut(e){return e.outerRadius}function Xut(e){return e.startAngle}function Jut(e){return e.endAngle}function Qut(e){return e&&e.padAngle}function ect(e,t,n,r,i,o,a,s){var l=n-e,c=r-t,d=a-i,f=s-o,p=f*l-d*c;if(!(p*pO*O+J*J&&($=M,A=P),{cx:$,cy:A,x01:-d,y01:-f,x11:$*(i/j-1),y11:A*(i/j-1)}}function tct(){var e=Yut,t=Kut,n=Si(0),r=null,i=Xut,o=Jut,a=Qut,s=null,l=Qce(c);function c(){var d,f,p=+e.apply(this,arguments),v=+t.apply(this,arguments),_=i.apply(this,arguments)-sS,y=o.apply(this,arguments)-sS,b=Kce(y-_),w=y>_;if(s||(s=d=l()),vZo))s.moveTo(0,0);else if(b>lS-Zo)s.moveTo(v*Im(_),v*fc(_)),s.arc(0,0,v,_,y,!w),p>Zo&&(s.moveTo(p*Im(y),p*fc(y)),s.arc(0,0,p,y,_,w));else{var x=_,S=y,C=_,j=y,T=b,E=b,$=a.apply(this,arguments)/2,A=$>Zo&&(r?+r.apply(this,arguments):_1(p*p+v*v)),M=wR(Kce(v-p)/2,+n.apply(this,arguments)),P=M,te=M,Z,O;if(A>Zo){var J=Xce(A/p*fc($)),D=Xce(A/v*fc($));(T-=J*2)>Zo?(J*=w?1:-1,C+=J,j-=J):(T=0,C=j=(_+y)/2),(E-=D*2)>Zo?(D*=w?1:-1,x+=D,S-=D):(E=0,x=S=(_+y)/2)}var Y=v*Im(x),F=v*fc(x),H=p*Im(j),ee=p*fc(j);if(M>Zo){var ce=v*Im(S),U=v*fc(S),ae=p*Im(C),je=p*fc(C),me;if(bZo?te>Zo?(Z=uS(ae,je,Y,F,v,te,w),O=uS(ce,U,H,ee,v,te,w),s.moveTo(Z.cx+Z.x01,Z.cy+Z.y01),teZo)||!(T>Zo)?s.lineTo(H,ee):P>Zo?(Z=uS(H,ee,ce,U,p,-P,w),O=uS(Y,F,ae,je,p,-P,w),s.lineTo(Z.cx+Z.x01,Z.cy+Z.y01),Pe?1:t>=e?0:NaN}function oct(e){return e}function act(){var e=oct,t=ict,n=null,r=Si(0),i=Si(lS),o=Si(0);function a(s){var l,c=(s=ede(s)).length,d,f,p=0,v=new Array(c),_=new Array(c),y=+r.apply(this,arguments),b=Math.min(lS,Math.max(-lS,i.apply(this,arguments)-y)),w,x=Math.min(Math.abs(b)/c,o.apply(this,arguments)),S=x*(b<0?-1:1),C;for(l=0;l0&&(p+=C);for(t!=null?v.sort(function(j,T){return t(_[j],_[T])}):n!=null&&v.sort(function(j,T){return n(s[j],s[T])}),l=0,f=p?(b-c*S)/p:0;l0?C*f:0)+S,_[d]={data:s[d],index:l,value:C,startAngle:y,endAngle:w,padAngle:x};return _}return a.value=function(s){return arguments.length?(e=typeof s=="function"?s:Si(+s),a):e},a.sortValues=function(s){return arguments.length?(t=s,n=null,a):t},a.sort=function(s){return arguments.length?(n=s,t=null,a):n},a.startAngle=function(s){return arguments.length?(r=typeof s=="function"?s:Si(+s),a):r},a.endAngle=function(s){return arguments.length?(i=typeof s=="function"?s:Si(+s),a):i},a.padAngle=function(s){return arguments.length?(o=typeof s=="function"?s:Si(+s),a):o},a}function fh(){}function cS(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function dS(e){this._context=e}dS.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:cS(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:cS(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function sct(e){return new dS(e)}function rde(e){this._context=e}rde.prototype={areaStart:fh,areaEnd:fh,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:cS(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function lct(e){return new rde(e)}function ide(e){this._context=e}ide.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:cS(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function uct(e){return new ide(e)}function ode(e,t){this._basis=new dS(e),this._beta=t}ode.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,n=e.length-1;if(n>0)for(var r=e[0],i=t[0],o=e[n]-r,a=t[n]-i,s=-1,l;++s<=n;)l=s/n,this._basis.point(this._beta*e[s]+(1-this._beta)*(r+l*o),this._beta*t[s]+(1-this._beta)*(i+l*a));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};const cct=function e(t){function n(r){return t===1?new dS(r):new ode(r,t)}return n.beta=function(r){return e(+r)},n}(.85);function fS(e,t,n){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-n),e._x2,e._y2)}function jR(e,t){this._context=e,this._k=(1-t)/6}jR.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:fS(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:fS(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const dct=function e(t){function n(r){return new jR(r,t)}return n.tension=function(r){return e(+r)},n}(0);function TR(e,t){this._context=e,this._k=(1-t)/6}TR.prototype={areaStart:fh,areaEnd:fh,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:fS(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const fct=function e(t){function n(r){return new TR(r,t)}return n.tension=function(r){return e(+r)},n}(0);function IR(e,t){this._context=e,this._k=(1-t)/6}IR.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:fS(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const hct=function e(t){function n(r){return new IR(r,t)}return n.tension=function(r){return e(+r)},n}(0);function ER(e,t,n){var r=e._x1,i=e._y1,o=e._x2,a=e._y2;if(e._l01_a>Zo){var s=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,l=3*e._l01_a*(e._l01_a+e._l12_a);r=(r*s-e._x0*e._l12_2a+e._x2*e._l01_2a)/l,i=(i*s-e._y0*e._l12_2a+e._y2*e._l01_2a)/l}if(e._l23_a>Zo){var c=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,d=3*e._l23_a*(e._l23_a+e._l12_a);o=(o*c+e._x1*e._l23_2a-t*e._l12_2a)/d,a=(a*c+e._y1*e._l23_2a-n*e._l12_2a)/d}e._context.bezierCurveTo(r,i,o,a,e._x2,e._y2)}function ade(e,t){this._context=e,this._alpha=t}ade.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:ER(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const pct=function e(t){function n(r){return t?new ade(r,t):new jR(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function sde(e,t){this._context=e,this._alpha=t}sde.prototype={areaStart:fh,areaEnd:fh,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:ER(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const mct=function e(t){function n(r){return t?new sde(r,t):new TR(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function lde(e,t){this._context=e,this._alpha=t}lde.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:ER(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const gct=function e(t){function n(r){return t?new lde(r,t):new IR(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function ude(e){this._context=e}ude.prototype={areaStart:fh,areaEnd:fh,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function vct(e){return new ude(e)}function cde(e){return e<0?-1:1}function dde(e,t,n){var r=e._x1-e._x0,i=t-e._x1,o=(e._y1-e._y0)/(r||i<0&&-0),a=(n-e._y1)/(i||r<0&&-0),s=(o*i+a*r)/(r+i);return(cde(o)+cde(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function fde(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function NR(e,t,n){var r=e._x0,i=e._y0,o=e._x1,a=e._y1,s=(o-r)/3;e._context.bezierCurveTo(r+s,i+s*t,o-s,a-s*n,o,a)}function hS(e){this._context=e}hS.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:NR(this,this._t0,fde(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,NR(this,fde(this,n=dde(this,e,t)),n);break;default:NR(this,this._t0,n=dde(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function hde(e){this._context=new pde(e)}(hde.prototype=Object.create(hS.prototype)).point=function(e,t){hS.prototype.point.call(this,t,e)};function pde(e){this._context=e}pde.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,i,o){this._context.bezierCurveTo(t,e,r,n,o,i)}};function mde(e){return new hS(e)}function gde(e){return new hde(e)}function vde(e){this._context=e}vde.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=yde(e),i=yde(t),o=0,a=1;a=0;--t)i[t]=(a[t]-i[t+1])/o[t];for(o[n-1]=(e[n]+i[n-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function bct(e){return new pS(e,.5)}function _ct(e){return new pS(e,0)}function xct(e){return new pS(e,1)}var wct=ece,kct=nce,Sct=t5;function Cct(e,t,n){for(var r=-1,i=t.length,o={};++r0&&n(s)?t>1?xde(s,t-1,n,r,i):Kct(i,s):r||(i[i.length]=s)}return i}var Jct=xde,Qct=Jct;function edt(e){var t=e==null?0:e.length;return t?Qct(e,1):[]}var tdt=edt,ndt=tdt,rdt=Vue,idt=Zue;function odt(e){return idt(rdt(e,void 0,ndt),e+"")}var adt=odt,sdt=Vct,ldt=adt,udt=ldt(function(e,t){return e==null?{}:sdt(e,t)}),cdt=udt;const ddt=to(cdt);function fdt(e,t){for(var n=-1,r=e==null?0:e.length;++ns))return!1;var c=o.get(e),d=o.get(t);if(c&&d)return c==t&&d==e;var f=-1,p=!0,v=n&ydt?new pdt:void 0;for(o.set(e,t),o.set(t,e);++f=0||(i[n]=e[n]);return i}var Qft=["axis.ticks.text","axis.legend.text","legends.title.text","legends.text","legends.ticks.text","legends.title.text","labels.text","dots.text","markers.text","annotations.text"],eht=function(e,t){return mu({},t,e)},tht=function(e,t){var n=$at({},e,t);return Qft.forEach(function(r){W_(n,r,eht(yl(n,r),n.text))}),n},Hde=m.createContext(),Zde=function(e){var t=e.children,n=e.animate,r=n===void 0||n,i=e.config,o=i===void 0?"default":i,a=m.useMemo(function(){var s=tlt(o)?w$[o]:o;return{animate:r,config:s}},[r,o]);return u.jsx(Hde.Provider,{value:a,children:t})},vS={animate:_e.bool,motionConfig:_e.oneOfType([_e.oneOf(Object.keys(w$)),_e.shape({mass:_e.number,tension:_e.number,friction:_e.number,clamp:_e.bool,precision:_e.number,velocity:_e.number,duration:_e.number,easing:_e.func})])};Zde.propTypes={children:_e.node.isRequired,animate:vS.animate,config:vS.motionConfig};var w1=function(){return m.useContext(Hde)},nht={nivo:["#d76445","#f47560","#e8c1a0","#97e3d5","#61cdbb","#00b0a7"],BrBG:wt(tm),PRGn:wt(nm),PiYG:wt(rm),PuOr:wt(im),RdBu:wt(om),RdGy:wt(am),RdYlBu:wt(sm),RdYlGn:wt(lm),spectral:wt(um),blues:wt(wm),greens:wt(km),greys:wt(Sm),oranges:wt(Tm),purples:wt(Cm),reds:wt(jm),BuGn:wt(cm),BuPu:wt(dm),GnBu:wt(fm),OrRd:wt(hm),PuBuGn:wt(pm),PuBu:wt(mm),PuRd:wt(gm),RdPu:wt(vm),YlGnBu:wt(ym),YlGn:wt(bm),YlOrBr:wt(_m),YlOrRd:wt(xm)},rht=Object.keys(nht);wt(tm),wt(nm),wt(rm),wt(im),wt(om),wt(am),wt(sm),wt(lm),wt(um),wt(wm),wt(km),wt(Sm),wt(Tm),wt(Cm),wt(jm),wt(cm),wt(dm),wt(fm),wt(hm),wt(pm),wt(mm),wt(gm),wt(vm),wt(ym),wt(bm),wt(_m),wt(xm),_e.oneOfType([_e.oneOf(rht),_e.func,_e.arrayOf(_e.string)]);var iht={basis:sct,basisClosed:lct,basisOpen:uct,bundle:cct,cardinal:dct,cardinalClosed:fct,cardinalOpen:hct,catmullRom:pct,catmullRomClosed:mct,catmullRomOpen:gct,linear:nde,linearClosed:vct,monotoneX:mde,monotoneY:gde,natural:yct,step:bct,stepAfter:xct,stepBefore:_ct},UR=Object.keys(iht);UR.filter(function(e){return e.endsWith("Closed")}),Yce(UR,"bundle","basisClosed","basisOpen","cardinalClosed","cardinalOpen","catmullRomClosed","catmullRomOpen","linearClosed"),Yce(UR,"bundle","basisClosed","basisOpen","cardinalClosed","cardinalOpen","catmullRomClosed","catmullRomOpen","linearClosed"),_e.shape({top:_e.number,right:_e.number,bottom:_e.number,left:_e.number}).isRequired;var oht=["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"];_e.oneOf(oht),dc(Y_);var aht={top:0,right:0,bottom:0,left:0},qde=function(e,t,n){return n===void 0&&(n={}),m.useMemo(function(){var r=mu({},aht,n);return{margin:r,innerWidth:e-r.left-r.right,innerHeight:t-r.top-r.bottom,outerWidth:e,outerHeight:t}},[e,t,n.top,n.right,n.bottom,n.left])},sht=function(){var e=m.useRef(null),t=m.useState({left:0,top:0,width:0,height:0}),n=t[0],r=t[1],i=m.useState(function(){return typeof ResizeObserver>"u"?null:new ResizeObserver(function(o){var a=o[0];return r(a.contentRect)})})[0];return m.useEffect(function(){return e.current&&i!==null&&i.observe(e.current),function(){i!==null&&i.disconnect()}},[]),[e,n]},lht=function(e){return m.useMemo(function(){return tht(Jft,e)},[e])},uht=function(e){return typeof e=="function"?e:typeof e=="string"?e.indexOf("time:")===0?Gce(e.slice("5")):Nce(e):function(t){return""+t}},WR=function(e){return m.useMemo(function(){return uht(e)},[e])},Gde=m.createContext(),cht={},Yde=function(e){var t=e.theme,n=t===void 0?cht:t,r=e.children,i=lht(n);return u.jsx(Gde.Provider,{value:i,children:r})};Yde.propTypes={children:_e.node.isRequired,theme:_e.object};var Ms=function(){return m.useContext(Gde)},dht=["outlineWidth","outlineColor","outlineOpacity"],Kde=function(e){return e.outlineWidth,e.outlineColor,e.outlineOpacity,BR(e,dht)},Xde=function(e){var t=e.children,n=e.condition,r=e.wrapper;return n?m.cloneElement(r,{},t):t};Xde.propTypes={children:_e.node.isRequired,condition:_e.bool.isRequired,wrapper:_e.element.isRequired};var fht={position:"relative"},VR=function(e){var t=e.children,n=e.theme,r=e.renderWrapper,i=r===void 0||r,o=e.isInteractive,a=o===void 0||o,s=e.animate,l=e.motionConfig,c=m.useRef(null);return u.jsx(Yde,{theme:n,children:u.jsx(Zde,{animate:s,config:l,children:u.jsx(Ont,{container:c,children:u.jsxs(Xde,{condition:i,wrapper:u.jsx("div",{style:fht,ref:c}),children:[t,a&&u.jsx(Rnt,{})]})})})})};VR.propTypes={children:_e.element.isRequired,isInteractive:_e.bool,renderWrapper:_e.bool,theme:_e.object,animate:_e.bool,motionConfig:_e.oneOfType([_e.string,vS.motionConfig])},_e.func.isRequired,_e.bool,_e.bool,_e.object.isRequired,_e.bool.isRequired,_e.oneOfType([_e.string,vS.motionConfig]),_e.func.isRequired;var hht=["id","colors"],Jde=function(e){var t=e.id,n=e.colors,r=BR(e,hht);return u.jsx("linearGradient",mu({id:t,x1:0,x2:0,y1:0,y2:1},r,{children:n.map(function(i){var o=i.offset,a=i.color,s=i.opacity;return u.jsx("stop",{offset:o+"%",stopColor:a,stopOpacity:s!==void 0?s:1},o)})}))};Jde.propTypes={id:_e.string.isRequired,colors:_e.arrayOf(_e.shape({offset:_e.number.isRequired,color:_e.string.isRequired,opacity:_e.number})).isRequired,gradientTransform:_e.string};var Qde={linearGradient:Jde},X_={color:"#000000",background:"#ffffff",size:4,padding:4,stagger:!1},HR=m.memo(function(e){var t=e.id,n=e.background,r=n===void 0?X_.background:n,i=e.color,o=i===void 0?X_.color:i,a=e.size,s=a===void 0?X_.size:a,l=e.padding,c=l===void 0?X_.padding:l,d=e.stagger,f=d===void 0?X_.stagger:d,p=s+c,v=s/2,_=c/2;return f===!0&&(p=2*s+2*c),u.jsxs("pattern",{id:t,width:p,height:p,patternUnits:"userSpaceOnUse",children:[u.jsx("rect",{width:p,height:p,fill:r}),u.jsx("circle",{cx:_+v,cy:_+v,r:v,fill:o}),f&&u.jsx("circle",{cx:1.5*c+s+v,cy:1.5*c+s+v,r:v,fill:o})]})});HR.displayName="PatternDots",HR.propTypes={id:_e.string.isRequired,color:_e.string.isRequired,background:_e.string.isRequired,size:_e.number.isRequired,padding:_e.number.isRequired,stagger:_e.bool.isRequired};var Td=function(e){return e*Math.PI/180},ZR=function(e){return 180*e/Math.PI},pht=function(e){return e.startAngle+(e.endAngle-e.startAngle)/2},k1=function(e,t){return{x:Math.cos(e)*t,y:Math.sin(e)*t}},J_={spacing:5,rotation:0,background:"#000000",color:"#ffffff",lineWidth:2},qR=m.memo(function(e){var t=e.id,n=e.spacing,r=n===void 0?J_.spacing:n,i=e.rotation,o=i===void 0?J_.rotation:i,a=e.background,s=a===void 0?J_.background:a,l=e.color,c=l===void 0?J_.color:l,d=e.lineWidth,f=d===void 0?J_.lineWidth:d,p=Math.round(o)%360,v=Math.abs(r);p>180?p-=360:p>90?p-=180:p<-180?p+=360:p<-90&&(p+=180);var _,y=v,b=v;return p===0?_=` - M 0 0 L `+y+` 0 - M 0 `+b+" L "+y+" "+b+` - `:p===90?_=` - M 0 0 L 0 `+b+` - M `+y+" 0 L "+y+" "+b+` - `:(y=Math.abs(v/Math.sin(Td(p))),b=v/Math.sin(Td(90-p)),_=p>0?` - M 0 `+-b+" L "+2*y+" "+b+` - M `+-y+" "+-b+" L "+y+" "+b+` - M `+-y+" 0 L "+y+" "+2*b+` - `:` - M `+-y+" "+b+" L "+y+" "+-b+` - M `+-y+" "+2*b+" L "+2*y+" "+-b+` - M 0 `+2*b+" L "+2*y+` 0 - `),u.jsxs("pattern",{id:t,width:y,height:b,patternUnits:"userSpaceOnUse",children:[u.jsx("rect",{width:y,height:b,fill:s,stroke:"rgba(255, 0, 0, 0.1)",strokeWidth:0}),u.jsx("path",{d:_,strokeWidth:f,stroke:c,strokeLinecap:"square"})]})});qR.displayName="PatternLines",qR.propTypes={id:_e.string.isRequired,spacing:_e.number.isRequired,rotation:_e.number.isRequired,background:_e.string.isRequired,color:_e.string.isRequired,lineWidth:_e.number.isRequired};var Q_={color:"#000000",background:"#ffffff",size:4,padding:4,stagger:!1},GR=m.memo(function(e){var t=e.id,n=e.color,r=n===void 0?Q_.color:n,i=e.background,o=i===void 0?Q_.background:i,a=e.size,s=a===void 0?Q_.size:a,l=e.padding,c=l===void 0?Q_.padding:l,d=e.stagger,f=d===void 0?Q_.stagger:d,p=s+c,v=c/2;return f===!0&&(p=2*s+2*c),u.jsxs("pattern",{id:t,width:p,height:p,patternUnits:"userSpaceOnUse",children:[u.jsx("rect",{width:p,height:p,fill:o}),u.jsx("rect",{x:v,y:v,width:s,height:s,fill:r}),f&&u.jsx("rect",{x:1.5*c+s,y:1.5*c+s,width:s,height:s,fill:r})]})});GR.displayName="PatternSquares",GR.propTypes={id:_e.string.isRequired,color:_e.string.isRequired,background:_e.string.isRequired,size:_e.number.isRequired,padding:_e.number.isRequired,stagger:_e.bool.isRequired};var efe={patternDots:HR,patternLines:qR,patternSquares:GR},mht=["type"],YR=mu({},Qde,efe),tfe=function(e){var t=e.defs;return!t||t.length<1?null:u.jsx("defs",{"aria-hidden":!0,children:t.map(function(n){var r=n.type,i=BR(n,mht);return YR[r]?m.createElement(YR[r],mu({key:i.id},i)):null})})};tfe.propTypes={defs:_e.arrayOf(_e.shape({type:_e.oneOf(Object.keys(YR)).isRequired,id:_e.string.isRequired}))};var ght=m.memo(tfe),KR=function(e){var t=e.width,n=e.height,r=e.margin,i=e.defs,o=e.children,a=e.role,s=e.ariaLabel,l=e.ariaLabelledBy,c=e.ariaDescribedBy,d=e.isFocusable,f=Ms();return u.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:t,height:n,role:a,"aria-label":s,"aria-labelledby":l,"aria-describedby":c,focusable:d,tabIndex:d?0:void 0,children:[u.jsx(ght,{defs:i}),u.jsx("rect",{width:t,height:n,fill:f.background}),u.jsx("g",{transform:"translate("+r.left+","+r.top+")",children:o})]})};KR.propTypes={width:_e.number.isRequired,height:_e.number.isRequired,margin:_e.shape({top:_e.number.isRequired,left:_e.number.isRequired}).isRequired,defs:_e.array,children:_e.oneOfType([_e.arrayOf(_e.node),_e.node]).isRequired,role:_e.string,isFocusable:_e.bool,ariaLabel:_e.string,ariaLabelledBy:_e.string,ariaDescribedBy:_e.string};var nfe=function(e){var t=e.size,n=e.color,r=e.borderWidth,i=e.borderColor;return u.jsx("circle",{r:t/2,fill:n,stroke:i,strokeWidth:r,style:{pointerEvents:"none"}})};nfe.propTypes={size:_e.number.isRequired,color:_e.string.isRequired,borderWidth:_e.number.isRequired,borderColor:_e.string.isRequired};var vht=m.memo(nfe),rfe=function(e){var t=e.x,n=e.y,r=e.symbol,i=r===void 0?vht:r,o=e.size,a=e.datum,s=e.color,l=e.borderWidth,c=e.borderColor,d=e.label,f=e.labelTextAnchor,p=f===void 0?"middle":f,v=e.labelYOffset,_=v===void 0?-12:v,y=Ms(),b=w1(),w=b.animate,x=b.config,S=e_({transform:"translate("+t+", "+n+")",config:x,immediate:!w});return u.jsxs(iu.g,{transform:S.transform,style:{pointerEvents:"none"},children:[m.createElement(i,{size:o,color:s,datum:a,borderWidth:l,borderColor:c}),d&&u.jsx("text",{textAnchor:p,y:_,style:Kde(y.dots.text),children:d})]})};rfe.propTypes={x:_e.number.isRequired,y:_e.number.isRequired,datum:_e.object.isRequired,size:_e.number.isRequired,color:_e.string.isRequired,borderWidth:_e.number.isRequired,borderColor:_e.string.isRequired,symbol:_e.oneOfType([_e.func,_e.object]),label:_e.oneOfType([_e.string,_e.number]),labelTextAnchor:_e.oneOf(["start","middle","end"]),labelYOffset:_e.number},m.memo(rfe);var ife=function(e){var t=e.width,n=e.height,r=e.axis,i=e.scale,o=e.value,a=e.lineStyle,s=e.textStyle,l=e.legend,c=e.legendNode,d=e.legendPosition,f=d===void 0?"top-right":d,p=e.legendOffsetX,v=p===void 0?14:p,_=e.legendOffsetY,y=_===void 0?14:_,b=e.legendOrientation,w=b===void 0?"horizontal":b,x=Ms(),S=0,C=0,j=0,T=0;if(r==="y"?(j=i(o),C=t):(S=i(o),T=n),l&&!c){var E=function($){var A=$.axis,M=$.width,P=$.height,te=$.position,Z=$.offsetX,O=$.offsetY,J=$.orientation,D=0,Y=0,F=J==="vertical"?-90:0,H="start";if(A==="x")switch(te){case"top-left":D=-Z,Y=O,H="end";break;case"top":Y=-O,H=J==="horizontal"?"middle":"start";break;case"top-right":D=Z,Y=O,H=J==="horizontal"?"start":"end";break;case"right":D=Z,Y=P/2,H=J==="horizontal"?"start":"middle";break;case"bottom-right":D=Z,Y=P-O,H="start";break;case"bottom":Y=P+O,H=J==="horizontal"?"middle":"end";break;case"bottom-left":Y=P-O,D=-Z,H=J==="horizontal"?"end":"start";break;case"left":D=-Z,Y=P/2,H=J==="horizontal"?"end":"middle"}else switch(te){case"top-left":D=Z,Y=-O,H="start";break;case"top":D=M/2,Y=-O,H=J==="horizontal"?"middle":"start";break;case"top-right":D=M-Z,Y=-O,H=J==="horizontal"?"end":"start";break;case"right":D=M+Z,H=J==="horizontal"?"start":"middle";break;case"bottom-right":D=M-Z,Y=O,H="end";break;case"bottom":D=M/2,Y=O,H=J==="horizontal"?"middle":"end";break;case"bottom-left":D=Z,Y=O,H=J==="horizontal"?"start":"end";break;case"left":D=-Z,H=J==="horizontal"?"end":"middle"}return{x:D,y:Y,rotation:F,textAnchor:H}}({axis:r,width:t,height:n,position:f,offsetX:v,offsetY:y,orientation:w});c=u.jsx("text",{transform:"translate("+E.x+", "+E.y+") rotate("+E.rotation+")",textAnchor:E.textAnchor,dominantBaseline:"central",style:s,children:l})}return u.jsxs("g",{transform:"translate("+S+", "+j+")",children:[u.jsx("line",{x1:0,x2:C,y1:0,y2:T,stroke:x.markers.lineColor,strokeWidth:x.markers.lineStrokeWidth,style:a}),c]})};ife.propTypes={width:_e.number.isRequired,height:_e.number.isRequired,axis:_e.oneOf(["x","y"]).isRequired,scale:_e.func.isRequired,value:_e.oneOfType([_e.number,_e.string,_e.instanceOf(Date)]).isRequired,lineStyle:_e.object,textStyle:_e.object,legend:_e.string,legendPosition:_e.oneOf(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"]),legendOffsetX:_e.number.isRequired,legendOffsetY:_e.number.isRequired,legendOrientation:_e.oneOf(["horizontal","vertical"]).isRequired};var yht=m.memo(ife),ofe=function(e){var t=e.markers,n=e.width,r=e.height,i=e.xScale,o=e.yScale;return t&&t.length!==0?t.map(function(a,s){return u.jsx(yht,mu({},a,{width:n,height:r,scale:a.axis==="y"?o:i}),s)}):null};ofe.propTypes={width:_e.number.isRequired,height:_e.number.isRequired,xScale:_e.func.isRequired,yScale:_e.func.isRequired,markers:_e.arrayOf(_e.shape({axis:_e.oneOf(["x","y"]).isRequired,value:_e.oneOfType([_e.number,_e.string,_e.instanceOf(Date)]).isRequired,lineStyle:_e.object,textStyle:_e.object}))},m.memo(ofe);var bht=function(e){return nue(e)?e:function(t){return yl(t,e)}},ex=function(e){return m.useMemo(function(){return bht(e)},[e])},_ht=Object.keys(Qde),xht=Object.keys(efe),wht=function(e,t,n){if(e==="*")return!0;if(nue(e))return e(t);if(F_(e)){var r=n?yl(t,n):t;return Xft(ddt(r,Object.keys(e)),e)}return!1},kht=function(e,t,n,r){var i={},o=i.dataKey,a=i.colorKey,s=a===void 0?"color":a,l=i.targetKey,c=l===void 0?"fill":l,d=[],f={};return e.length&&t.length&&(d=[].concat(e),t.forEach(function(p){for(var v=function(){var y=n[_],b=y.id,w=y.match;if(wht(w,p,o)){var x=e.find(function(M){return M.id===b});if(x){if(xht.includes(x.type))if(x.background==="inherit"||x.color==="inherit"){var S=yl(p,s),C=x.background,j=x.color,T=b;x.background==="inherit"&&(T=T+".bg."+S,C=S),x.color==="inherit"&&(T=T+".fg."+S,j=S),W_(p,c,"url(#"+T+")"),f[T]||(d.push(mu({},x,{id:T,background:C,color:j})),f[T]=1)}else W_(p,c,"url(#"+b+")");else if(_ht.includes(x.type))if(x.colors.map(function(M){return M.color}).includes("inherit")){var E=yl(p,s),$=b,A=mu({},x,{colors:x.colors.map(function(M,P){return M.color!=="inherit"?M:($=$+"."+P+"."+E,mu({},M,{color:M.color==="inherit"?E:M.color}))})});A.id=$,W_(p,c,"url(#"+$+")"),f[$]||(d.push(A),f[$]=1)}else W_(p,c,"url(#"+b+")")}return"break"}},_=0;_u.jsx(WL,{id:e.label,enableChip:!0,color:e.color}),XR={container:{display:"flex",alignItems:"center"},sourceChip:{marginRight:7},targetChip:{marginLeft:7,marginRight:7}},Bht=({link:e})=>u.jsx(WL,{id:u.jsxs("span",{style:XR.container,children:[u.jsx(UL,{color:e.source.color,style:XR.sourceChip}),u.jsx("strong",{children:e.source.label})," > ",u.jsx("strong",{children:e.target.label}),u.jsx(UL,{color:e.target.color,style:XR.targetChip}),u.jsx("strong",{children:e.formattedValue})]})});function Uht(e){return e.target.depth}function Wht(e){return e.depth}function Vht(e,t){return t-1-e.height}function lfe(e,t){return e.sourceLinks.length?e.depth:t-1}function Hht(e){return e.targetLinks.length?e.depth:e.sourceLinks.length?wce(e.sourceLinks,Uht)-1:0}function bS(e){return function(){return e}}var We=(e=>(e.IncPackCranked="Crank:inc",e.IncPackRetained="Buffered:inc",e.IncResolvRetained="Unresolved:inc",e.IncQuic="QUIC",e.IncUdp="UDP",e.IncGossip="Gossip",e.IncBlockEngine="Jito",e.SlotStart="Received",e.SlotEnd="Packed",e.End="End",e.Networking="networking:tile",e.QUIC="QUIC:tile",e.Verification="verify:tile",e.Dedup="dedup:tile",e.Resolv="resolv:tile",e.Pack="pack:tile",e.Execle="execle:tile",e.NetOverrun="Too slow:net",e.QUICOverrun="Too slow:quic",e.QUICInvalid="Malformed:quic",e.QUICTooManyFrags="Out of buffers:quic",e.QUICAbandoned="Abandoned:quic",e.VerifyOverrun="Too slow:verify",e.VerifyParse="Unparseable",e.VerifyFailed="Bad signature",e.VerifyDuplicate="Duplicate:verify",e.DedupDeuplicate="Duplicate:dedup",e.ResolvFailed="Bad LUT",e.ResolvExpired="Expired:resolv",e.ResolvNoLedger="No ledger",e.ResolvRetained="Unresolved:resolv",e.PackInvalid="Unpackable",e.PackInvalidBundle="Bad Bundle",e.PackExpired="Expired:pack",e.PackAlreadyExecuted="AlreadyExecuted:pack",e.PackRetained="Buffered:pack",e.PackLeaderSlow="Buffer full",e.PackWaitFull="Storage full",e.BankInvalid="Unexecutable",e.BankNonceAlreadyAdvanced="NonceAlreadyAdvanced",e.BankNonceAdvanceFailed="NonceAdvanceFailed",e.BankNonceWrongBlockhash="NonceWrongBlockhash",e.BlockSuccess="Success",e.BlockFailure="Failure",e.Votes="Votes",e.NonVoteSuccess="Non-vote Success",e.NonVoteFailure="Non-vote Failure",e))(We||{});const Zht=["Received","Packed"],ufe=["networking:tile","QUIC:tile","verify:tile","dedup:tile","resolv:tile","pack:tile","execle:tile"],cfe=["Too slow:net","Too slow:quic","Malformed:quic","Out of buffers:quic","Abandoned:quic","Too slow:verify","Unparseable","Bad signature","Duplicate:verify","Duplicate:dedup","Bad LUT","Expired:resolv","No ledger","Unresolved:resolv","Unpackable","Bad Bundle","Expired:pack","AlreadyExecuted:pack","Buffered:pack","Buffer full","Storage full","Unexecutable","NonceAlreadyAdvanced","NonceAdvanceFailed","NonceWrongBlockhash"],dfe=["QUIC","UDP"],JR=["Buffered:inc","Buffered:pack","Unresolved:inc","Unresolved:resolv"],ffe=["Success","Non-vote Success"],hfe=["Failure","Non-vote Failure"],qht=[{id:"QUIC"},{id:"UDP"},{id:"Buffered:pack",labelPositionOverride:"right"},{id:"Unresolved:resolv",labelPositionOverride:"right"},{id:"Too slow:net",labelPositionOverride:"right"},{id:"Too slow:quic",labelPositionOverride:"right"},{id:"Malformed:quic",labelPositionOverride:"right"},{id:"Out of buffers:quic",labelPositionOverride:"right"},{id:"Abandoned:quic",labelPositionOverride:"right"},{id:"Too slow:verify",labelPositionOverride:"right"},{id:"Unparseable",labelPositionOverride:"right"},{id:"Bad signature",labelPositionOverride:"right"},{id:"Duplicate:verify",labelPositionOverride:"right"},{id:"Duplicate:dedup",labelPositionOverride:"right"},{id:"Bad LUT",labelPositionOverride:"right"},{id:"Expired:resolv",labelPositionOverride:"right"},{id:"No ledger",labelPositionOverride:"right"},{id:"Unpackable",labelPositionOverride:"right"},{id:"Bad Bundle",labelPositionOverride:"right"},{id:"Expired:pack",labelPositionOverride:"right"},{id:"AlreadyExecuted:pack",labelPositionOverride:"right"},{id:"Buffer full",labelPositionOverride:"right"},{id:"Storage full",labelPositionOverride:"right"},{id:"Unexecutable",labelPositionOverride:"right"},{id:"NonceAlreadyAdvanced",labelPositionOverride:"right"},{id:"NonceAdvanceFailed",labelPositionOverride:"right"},{id:"NonceWrongBlockhash",labelPositionOverride:"right"},{id:"Received",alignLabelBottom:!0,labelPositionOverride:"right"},{id:"QUIC:tile",alignLabelBottom:!0},{id:"verify:tile",alignLabelBottom:!0},{id:"dedup:tile",alignLabelBottom:!0},{id:"resolv:tile",alignLabelBottom:!0},{id:"Gossip"},{id:"Jito"},{id:"Unresolved:inc",labelPositionOverride:"left"},{id:"Crank:inc",labelPositionOverride:"left"},{id:"Buffered:inc",labelPositionOverride:"left"},{id:"pack:tile",alignLabelBottom:!0},{id:"execle:tile",alignLabelBottom:!0},{id:"End",hideLabel:!0},{id:"Packed",alignLabelBottom:!0,labelPositionOverride:"left"},{id:"Failure"},{id:"Success"},{id:"Votes"},{id:"Non-vote Failure"},{id:"Non-vote Success"}],Ght=ca(),Yht=1,pfe=-1e3,mfe=12,Kht=30,Xht=3e3,Jht=2;function gfe(e,t){return _S(e.source,t.source)||e.index-t.index}function vfe(e,t){return _S(e.target,t.target)||e.index-t.index}function _S(e,t){return e.y0-t.y0}function yfe(e){return e.value}function Qht(e){return e.index}function ept(e){return e.nodes}function tpt(e){return e.links}function bfe(e,t){const n=e.get(t);if(!n)throw new Error("missing: "+t);return n}function _fe({nodes:e}){for(const t of e){let n=t.y0,r=n;for(const i of t.sourceLinks)i.y0=n+i.width/2,n+=i.width;for(const i of t.targetLinks)i.y1=r+i.width/2,r+=i.width}}function npt(){let e=0,t=0,n=1,r=1,i=24,o=8,a,s=Qht,l=lfe,c,d,f=ept,p=tpt,v=6;function _(){const D={nodes:f.apply(null,arguments),links:p.apply(null,arguments)};return y(D),b(D),w(D),x(D),j(D),_fe(D),J(D),D}_.update=function(D){return _fe(D),D},_.nodeId=function(D){return arguments.length?(s=typeof D=="function"?D:bS(D),_):s},_.nodeAlign=function(D){return arguments.length?(l=typeof D=="function"?D:bS(D),_):l},_.nodeSort=function(D){return arguments.length?(c=D,_):c},_.nodeWidth=function(D){return arguments.length?(i=+D,_):i},_.nodePadding=function(D){return arguments.length?(o=a=+D,_):o},_.nodes=function(D){return arguments.length?(f=typeof D=="function"?D:bS(D),_):f},_.links=function(D){return arguments.length?(p=typeof D=="function"?D:bS(D),_):p},_.linkSort=function(D){return arguments.length?(d=D,_):d},_.size=function(D){return arguments.length?(e=t=0,n=+D[0],r=+D[1],_):[n-e,r-t]},_.extent=function(D){return arguments.length?(e=+D[0][0],n=+D[1][0],t=+D[0][1],r=+D[1][1],_):[[e,t],[n,r]]},_.iterations=function(D){return arguments.length?(v=+D,_):v};function y({nodes:D,links:Y}){for(const[H,ee]of D.entries())ee.index=H,ee.sourceLinks=[],ee.targetLinks=[];const F=new Map(D.map((H,ee)=>[s(H,ee,D),H]));for(const[H,ee]of Y.entries()){ee.index=H;let{source:ce,target:U}=ee;typeof ce!="object"&&(ce=ee.source=bfe(F,ce)),typeof U!="object"&&(U=ee.target=bfe(F,U)),ce.sourceLinks.push(ee),U.targetLinks.push(ee)}if(d!=null)for(const{sourceLinks:H,targetLinks:ee}of D)H.sort(d),ee.sort(d)}function b({nodes:D}){for(const Y of D)if(Y.fixedValue===void 0){let F=-1/0;Y.sourceLinks.length&&(F=Math.max(dR(Y.sourceLinks,yfe))),Y.targetLinks.length&&(F=Math.max(dR(Y.targetLinks,yfe))),F===-1/0&&(F=0),Y.value=F}else Y.value=Y.fixedValue}function w({nodes:D}){const Y=D.length;let F=new Set(D),H=new Set,ee=0;for(;F.size;){for(const ce of F){ce.depth=ee;for(const{target:U}of ce.sourceLinks)H.add(U)}if(++ee>Y)throw new Error("circular link");F=H,H=new Set}}function x({nodes:D}){const Y=D.length;let F=new Set(D),H=new Set,ee=0;for(;F.size;){for(const ce of F){ce.height=ee;for(const{source:U}of ce.targetLinks)H.add(U)}if(++ee>Y)throw new Error("circular link");F=H,H=new Set}}function S({nodes:D}){const Y=xce(D,ae=>ae.depth)+1;let F=(n-e-i)/(Y-1);const H=F/Jht,ee=new Array(Y),ce=e+H,U=n-H;F=(U-ce-i)/(Y-1-2);for(const ae of D){let je=l.call(null,ae,Y);const me=Math.max(0,Math.min(Y-1,Math.floor(je)));ae.layer=me,me===1?ae.x0=e+H:me<1?ae.x0=e+me*H:me===Y-1?ae.x0=U+H:ae.x0=ce+(me-1)*F,ae.x1=ae.x0+Yht,ee[me]?ee[me].push(ae):ee[me]=[ae]}if(c)for(const ae of ee)ae.sort(c);return ee}function C(D){const Y=Ght.get(Cg)===Io.Pct,F=wce(D,H=>(r-t-(H.length-1)*a)/dR(H,ee=>Math.max(ee.value,Y?1:Xht)));for(let H=0;HF.length)-1)),C(Y);for(let F=0;F0))continue;let me=(ae/je-U.y0)*Y+mfe;U.y0+=me,U.y1+=me,U.id===We.SlotStart&&(U.y0=t+(r-t)/6,U.y1=U.y0+U.height),U.id===We.SlotEnd&&(U.y1=r-(r-t)/6,U.y0=U.y1-U.height),P(U)}c===void 0&&ce.sort(_S),$(ce,F)}}function E(D,Y,F){for(let H=D.length,ee=H-2;ee>=0;--ee){const ce=D[ee];for(const U of ce){let ae=0,je=0;for(const{target:ke,value:he}of U.sourceLinks){let ue=(he?Math.abs(he):1)*(ke.layer-U.layer);ae+=O(U,ke)*ue,je+=ue}if(!(je>0))continue;let me=(ae/je-U.y0)*Y-mfe;U.y0+=me,U.y1+=me,U.id===We.SlotStart&&(U.y0=t+(r-t)/6,U.y1=U.y0+U.height),U.id===We.SlotEnd&&(U.y1=r-(r-t)/6,U.y0=U.y1-U.height),P(U)}c===void 0&&ce.sort(_S),$(ce,F)}}function $(D,Y){const F=D.length>>1,H=D[F];M(D,H.y0-a,F-1,Y),A(D,H.y1+a,F+1,Y),M(D,r,D.length-1,Y),A(D,t,0,Y)}function A(D,Y,F,H){for(;F1e-6&&(ee.y0+=ce,ee.y1+=ce),Y=ee.y1+a}}function M(D,Y,F,H){for(;F>=0;--F){const ee=D[F],ce=(ee.y1-Y)*H;ce>1e-6&&(ee.y0-=ce,ee.y1-=ce),Y=ee.y0-a}}function P({sourceLinks:D,targetLinks:Y}){if(d===void 0){for(const{source:{sourceLinks:F}}of Y)F.sort(vfe);for(const{target:{targetLinks:F}}of D)F.sort(gfe)}}function te(D){if(d===void 0)for(const{sourceLinks:Y,targetLinks:F}of D)Y.sort(vfe),F.sort(gfe)}function Z(D,Y){let F=D.y0-(D.sourceLinks.length-1)*a/2;for(const{target:H,width:ee}of D.sourceLinks){if(H===Y)break;F+=ee+a}for(const{source:H,width:ee,target:{id:ce}}of Y.targetLinks){if(ce.includes("Dropped")&&(F-=Kht),H===D)break;F-=ee}return F}function O(D,Y){let F=Y.y0-(Y.targetLinks.length-1)*a/2;for(const{source:H,width:ee}of Y.targetLinks){if(H===D)break;F+=ee+a}for(const{target:H,width:ee}of D.sourceLinks){if(H===Y)break;F-=ee}return F}function J(D){const Y=D.nodes.reduce((F,H)=>Math.max(F,H.y1),0);D.nodes.forEach(F=>{Zht.includes(F.id)&&(F.y0=0,F.y1=Y,F.height=Y)})}return _}const rpt={center:Hht,justify:lfe,start:Wht,end:Vht},ipt=e=>rpt[e],Tn={layout:"horizontal",align:"center",sort:"auto",colors:{scheme:"nivo"},nodeOpacity:.75,nodeHoverOpacity:1,nodeHoverOthersOpacity:.15,nodeThickness:12,nodeInnerPadding:0,nodeBorderWidth:1,nodeBorderColor:{from:"color",modifiers:[["darker",.5]]},nodeBorderRadius:0,linkOpacity:.25,linkHoverOpacity:.6,linkHoverOthersOpacity:.15,linkContract:0,linkBlendMode:"multiply",enableLinkGradient:!1,enableLabels:!0,label:"id",labelPosition:"inside",labelPadding:9,labelOrientation:"horizontal",labelTextColor:{from:"color",modifiers:[["darker",.8]]},isInteractive:!1,nodeTooltip:Fht,linkTooltip:Bht,legends:[],layers:["links","nodes","labels"],role:"img",animate:!1,motionConfig:"gentle"};function opt(e,t){for(var n=-1,r=e==null?0:e.length;++ne.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}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 wS(){return wS=Object.assign?Object.assign.bind():function(e){for(var t=1;t11))throw new Error("Invalid size '"+e.size+"' for diverging color scheme '"+e.scheme+"', must be between 3~11");var s=dc(QR[e.scheme][e.size||11]),l=function(f){return s(n(f))};return l.scale=s,l}if(H0t(e.scheme)){if(e.size!==void 0&&(e.size<3||e.size>9))throw new Error("Invalid size '"+e.size+"' for sequential color scheme '"+e.scheme+"', must be between 3~9");var c=dc(QR[e.scheme][e.size||9]),d=function(f){return c(n(f))};return d.scale=c,d}}throw new Error("Invalid colors, when using an object, you should either pass a 'datum' or a 'scheme' property")}return function(){return e}},X0t=function(e,t){return m.useMemo(function(){return K0t(e,t)},[e,t])};const J0t=e=>e.id,Q0t=({data:e,formatValue:t,layout:n,alignFunction:r,sortFunction:i,linkSortMode:o,nodeThickness:a,nodeSpacing:s,nodeInnerPadding:l,width:c,height:d,getColor:f,getLabel:p})=>{const v=npt().nodeAlign(r).nodeSort(i).linkSort(o).nodeWidth(a).nodePadding(s).size(n==="horizontal"?[c,d]:[d,c]).nodeId(J0t),_=P0t(e);return v(_),_.nodes.forEach(y=>{if(y.color=f(y),y.label=p(y),y.formattedValue=t(y.value),n==="horizontal")y.x=y.x0+l,y.y=y.y0,y.width=Math.max(y.x1-y.x0-l*2,0),y.height=Math.max(y.y1-y.y0,0);else{y.x=y.y0,y.y=y.x0+l,y.width=Math.max(y.y1-y.y0,0),y.height=Math.max(y.x1-y.x0-l*2,0);const b=y.x0,w=y.x1;y.x0=y.y0,y.x1=y.y1,y.y0=b,y.y1=w}}),_.links.forEach(y=>{y.formattedValue=t(y.value),y.color=y.source.color,y.pos0=y.y0,y.pos1=y.y1,y.thickness=y.width,delete y.y0,delete y.y1,delete y.width}),_},egt=({data:e,valueFormat:t,layout:n,width:r,height:i,sort:o,align:a,colors:s,nodeThickness:l,nodeSpacing:c,nodeInnerPadding:d,nodeBorderColor:f,label:p,labelTextColor:v})=>{const[_,y]=m.useState(null),[b,w]=m.useState(null),x=m.useMemo(()=>{if(o!=="auto")return o==="input"?null:o==="ascending"?(Z,O)=>Z.value-O.value:o==="descending"?(Z,O)=>O.value-Z.value:o},[o]),S=o==="input"?null:void 0,C=m.useMemo(()=>typeof a=="function"?a:ipt(a),[a]),j=X0t(s,"id"),T=Pfe(f),E=ex(p),$=Pfe(v),A=WR(t),{nodes:M,links:P}=m.useMemo(()=>Q0t({data:e,formatValue:A,layout:n,alignFunction:C,sortFunction:x,linkSortMode:S,nodeThickness:l,nodeSpacing:c,nodeInnerPadding:d,width:r,height:i,getColor:j,getLabel:E}),[e,A,n,C,x,S,l,c,d,r,i,j,E]),te=m.useMemo(()=>M.map(Z=>({id:Z.id,label:Z.label,color:Z.color})),[M]);return{nodes:M,links:P,legendData:te,getNodeBorderColor:T,currentNode:_,setCurrentNode:y,currentLink:b,setCurrentLink:w,getLabelTextColor:$}},tgt=({node:e,x:t,y:n,width:r,height:i,color:o,opacity:a,borderWidth:s,borderRadius:l,setCurrent:c,isInteractive:d,onClick:f,tooltip:p})=>u.jsx("rect",{x:t,y:n,width:r,height:i,fill:Ine}),ngt=({nodes:e,nodeOpacity:t,nodeHoverOpacity:n,nodeHoverOthersOpacity:r,borderWidth:i,getBorderColor:o,borderRadius:a,setCurrentNode:s,currentNode:l,currentLink:c,isCurrentNode:d,isInteractive:f,onClick:p,tooltip:v})=>u.jsx(u.Fragment,{children:e.map(_=>u.jsx(tgt,{node:_,x:_.x,y:_.y,width:_.width,height:_.height,color:_.color,opacity:1,borderWidth:i,borderColor:o(_),borderRadius:a,setCurrent:s,isInteractive:f,onClick:p,tooltip:v},_.id))}),rgt=()=>{const e=CR().curve(mde);return(t,n)=>{const r=Math.max(1,t.thickness-n*2),i=Math.max(1,r/2),o=(t.target.x0-t.source.x1)*.12,a=[[t.source.x1,t.pos0-i],[t.source.x1+o,t.pos0-i],[t.target.x0-o,t.pos1-i],[t.target.x0,t.pos1-i],[t.target.x0,t.pos1+i],[t.target.x0-o,t.pos1+i],[t.source.x1+o,t.pos0+i],[t.source.x1,t.pos0+i],[t.source.x1,t.pos0-i]];return e(a)+"Z"}},igt=()=>{const e=CR().curve(gde);return(t,n)=>{const r=Math.max(1,t.thickness-n*2)/2,i=(t.target.y0-t.source.y1)*.12,o=[[t.pos0+r,t.source.y1],[t.pos0+r,t.source.y1+i],[t.pos1+r,t.target.y0-i],[t.pos1+r,t.target.y0],[t.pos1-r,t.target.y0],[t.pos1-r,t.target.y0-i],[t.pos0-r,t.source.y1+i],[t.pos0-r,t.source.y1],[t.pos0+r,t.source.y1]];return e(o)+"Z"}},ogt=({id:e,layout:t})=>{let n;return t==="horizontal"?n={x1:"0%",x2:"100%",y1:"0%",y2:"0%"}:n={x1:"0%",x2:"0%",y1:"0%",y2:"100%"},u.jsxs("linearGradient",{id:e,spreadMethod:"pad",...n,children:[u.jsx("stop",{stopColor:EN}),u.jsx("stop",{offset:"0.24",stopColor:Mne}),u.jsx("stop",{offset:"1",stopColor:EN})]})};function zfe(e,t){const[n,r]=m.useState(!1),i=m.useRef();return m.useEffect(()=>{[...dfe,We.SlotStart].includes(e)||(t?(i.current&&(clearTimeout(i.current),i.current=void 0),r(!0)):i.current||(i.current=setTimeout(()=>{r(!1),i.current=void 0},3e3)))},[e,r,t]),!!t||n}const agt=({link:e,layout:t,path:n,color:r,opacity:i,enableGradient:o,setCurrent:a,tooltip:s,isInteractive:l,onClick:c})=>{const d=`${e.source.id}.${e.target.id}.${e.index}`;let f;return dfe.includes(e.source.id)?f=Ene:JR.includes(e.source.id)||JR.includes(e.target.id)?f=$ne:ffe.includes(e.target.id)?f=Zf:hfe.includes(e.target.id)?f=fd:e.target.id===We.Votes?f=hd:cfe.includes(e.target.id)&&(f=Nne),zfe(e.target.id,e.value)?u.jsxs(u.Fragment,{children:[o&&u.jsx(ogt,{id:d,layout:t,startColor:e.startColor||e.source.color,endColor:e.endColor||e.target.color}),u.jsx("path",{fill:f??(o?`url("#${encodeURI(d)}")`:r),d:n})]}):null},sgt=({links:e,layout:t,linkOpacity:n,linkHoverOpacity:r,linkHoverOthersOpacity:i,linkContract:o,linkBlendMode:a,enableLinkGradient:s,setCurrentLink:l,currentLink:c,currentNode:d,isCurrentLink:f,isInteractive:p,onClick:v,tooltip:_})=>{const y=m.useMemo(()=>t==="horizontal"?rgt():igt(),[t]);return u.jsx(u.Fragment,{children:e.map(b=>u.jsx(agt,{link:b,layout:t,path:y(b,o),color:b.color,opacity:1,blendMode:a,enableGradient:s,setCurrent:l,isInteractive:p,onClick:v,tooltip:_},`${b.source.id}.${b.target.id}.${b.index}`))})};function lgt({children:e,node:t,value:n}){return zfe(t,n)?e:null}const ugt=ca();function cgt(){switch(ugt.get(Cg)){case Io.Pct:return"%";case Io.Rate:return"/s";case Io.Count:return""}}const dgt=({nodes:e,layout:t,width:n,height:r,labelPosition:i,labelPadding:o,labelOrientation:a})=>{const s=a==="vertical"?-90:0,l=e.filter(c=>!c.hideLabel).map(c=>{let d,f,p;return t==="horizontal"?(f=c.y+c.height/2-5,c.alignLabelBottom&&(f=c.y1),ufe.includes(c.id)?(d=c.x0+(c.x1-c.x0)/2,f=f+10,p="middle"):c.labelPositionOverride==="right"?(d=c.x1+o,p=a==="vertical"?"middle":"start"):c.labelPositionOverride==="left"?(d=c.x-o,p=a==="vertical"?"middle":"end"):c.x{var v,_;const[d,f]=fgt(c.label,c.value),p=(v=c.label.split(":")[0])==null?void 0:v.trim();return u.jsx(lgt,{node:c.label,value:c.value,children:u.jsxs("text",{dominantBaseline:"central",textAnchor:c.textAnchor,transform:`translate(${c.x}, ${c.y}) rotate(${s})`,className:"sankey-label",children:[hgt(p).map((y,b)=>u.jsx("tspan",{x:"0",dy:b===0?"0em":"1em",style:{fill:d},children:y},y)),u.jsxs("tspan",{x:"0",dy:"1em",style:{fill:f},children:[(_=c.value)==null?void 0:_.toLocaleString(),cgt()]})]},c.id)},c.id)})})};function fgt(e,t){return t?JR.includes(e)?[qf,qf]:ffe.includes(e)?[qf,Zf]:ufe.includes(e)?[wg,wg]:cfe.includes(e)||hfe.includes(e)?[qf,fd]:e===We.Votes?[qf,hd]:[qf,qf]:[wg,wg]}function hgt(e){if(e.length<17||!e.includes(" "))return[e];const t=Math.trunc(e.length/2),n=e.lastIndexOf(" ",t),r=e.indexOf(" ",t+1),i=t-n{const{margin:je,innerWidth:me,innerHeight:ke,outerWidth:he,outerHeight:ue}=qde(o,a,s),{nodes:re,links:ge,legendData:$e,getNodeBorderColor:pe,currentNode:ye,setCurrentNode:Se,currentLink:Ce,setCurrentLink:Be,getLabelTextColor:Ge}=egt({data:e,valueFormat:t,layout:n,width:me,height:ke,sort:r,align:i,colors:l,nodeThickness:c,nodeSpacing:d,nodeInnerPadding:f,nodeBorderColor:p,label:te,labelTextColor:Z});let xt=()=>!1,St=()=>!1;if(Ce&&(xt=({id:bt})=>bt===Ce.source.id||bt===Ce.target.id,St=({source:bt,target:Qe})=>bt.id===Ce.source.id&&Qe.id===Ce.target.id),ye){let bt=[ye.id];ge.filter(({source:Qe,target:Ke})=>Qe.id===ye.id||Ke.id===ye.id).forEach(({source:Qe,target:Ke})=>{bt.push(Qe.id),bt.push(Ke.id)}),bt=_nt(bt),xt=({id:Qe})=>bt.includes(Qe),St=({source:Qe,target:Ke})=>Qe.id===ye.id||Ke.id===ye.id}const ut={links:ge,nodes:re,margin:je,width:o,height:a,outerWidth:he,outerHeight:ue},ct={links:null,nodes:null,labels:null,legends:null};return H.includes("links")&&(ct.links=u.jsx(sgt,{links:ge,layout:n,linkContract:j,linkOpacity:x,linkHoverOpacity:S,linkHoverOthersOpacity:C,linkBlendMode:T,enableLinkGradient:E,setCurrentLink:Be,currentNode:ye,currentLink:Ce,isCurrentLink:St,isInteractive:D,onClick:Y,tooltip:J},"links")),H.includes("nodes")&&(ct.nodes=u.jsx(ngt,{nodes:re,nodeOpacity:v,nodeHoverOpacity:_,nodeHoverOthersOpacity:y,borderWidth:b,borderRadius:w,getBorderColor:pe,setCurrentNode:Se,currentNode:ye,currentLink:Ce,isCurrentNode:xt,isInteractive:D,onClick:Y,tooltip:O},"nodes")),H.includes("labels")&&$&&(ct.labels=u.jsx(dgt,{nodes:re,layout:n,width:me,height:ke,labelPosition:A,labelPadding:M,labelOrientation:P,getLabelTextColor:Ge},"labels")),H.includes("legends")&&(ct.legends=u.jsx(m.Fragment,{children:F.map((bt,Qe)=>u.jsx(sfe,{...bt,containerWidth:me,containerHeight:ke,data:$e},`legend${Qe}`))},"legends")),u.jsx(KR,{width:he,height:ue,margin:je,role:ee,ariaLabel:ce,ariaLabelledBy:U,ariaDescribedBy:ae,children:H.map((bt,Qe)=>typeof bt=="function"?u.jsx(m.Fragment,{children:m.createElement(bt,ut)},Qe):(ct==null?void 0:ct[bt])??null)})},mgt=({isInteractive:e=Tn.isInteractive,animate:t=Tn.animate,motionConfig:n=Tn.motionConfig,theme:r,renderWrapper:i,...o})=>u.jsx(VR,{animate:t,isInteractive:e,motionConfig:n,renderWrapper:i,theme:r,children:u.jsx(pgt,{isInteractive:e,...o})});function Dfe({displayType:e,durationNanos:t,totalIncoming:n}){return function(r){switch(e){case Io.Count:return r;case Io.Pct:{let i=Math.max(0,Math.round(r/n*1e4)/100);return!i&&r&&(i=.01),i}case Io.Rate:{if(!t)return r;const i=t/1e9;return Math.trunc(r/i)}}}}function ggt(e){return e.net_overrun}function vgt(e){return e.quic_overrun+e.quic_frag_drop+e.quic_abandoned+e.tpu_quic_invalid+e.tpu_udp_invalid}function ygt(e){return e.verify_overrun+e.verify_parse+e.verify_failed+e.verify_duplicate}function bgt(e){return e.dedup_duplicate}function _gt(e,t){return e.resolv_expired+e.resolv_lut_failed+e.resolv_no_ledger+e.resolv_ancient+t}function xgt(e){return e.pack_invalid+e.pack_already_executed+e.pack_invalid_bundle+e.pack_expired+e.pack_leader_slow+e.pack_retained+e.pack_wait_full}function Afe(e,t){const n=Math.min(e.in.resolv_retained,e.out.resolv_retained),r=e.in.resolv_retained-n,i=e.out.resolv_retained-n,o=e.in.quic+e.in.udp-ggt(e.out),a=o-vgt(e.out),s=e.in.block_engine+e.in.gossip+a-ygt(e.out),l=s-bgt(e.out),c=r+l-_gt(e.out,i),d=e.in.pack_retained+e.in.pack_cranked+c-xgt(e.out),f=d-e.out.bank_invalid-e.out.bank_nonce_already_advanced-e.out.bank_nonce_advance_failed-e.out.bank_nonce_wrong_blockhash;return[{source:We.IncQuic,target:We.SlotStart,value:t(e.in.quic)},{source:We.IncUdp,target:We.SlotStart,value:t(e.in.udp)},{source:We.SlotStart,target:We.NetOverrun,value:t(e.out.net_overrun)},{source:We.SlotStart,target:We.QUIC,value:t(o)},{source:We.QUIC,target:We.QUICOverrun,value:t(e.out.quic_overrun)},{source:We.QUIC,target:We.QUICInvalid,value:t(e.out.tpu_quic_invalid+e.out.tpu_udp_invalid)},{source:We.QUIC,target:We.QUICTooManyFrags,value:t(e.out.quic_frag_drop)},{source:We.QUIC,target:We.QUICAbandoned,value:t(e.out.quic_abandoned)},{source:We.QUIC,target:We.Verification,value:t(a)},{source:We.IncGossip,target:We.Verification,value:t(e.in.gossip)},{source:We.IncBlockEngine,target:We.Verification,value:t(e.in.block_engine)},{source:We.Verification,target:We.VerifyOverrun,value:t(e.out.verify_overrun)},{source:We.Verification,target:We.VerifyParse,value:t(e.out.verify_parse)},{source:We.Verification,target:We.VerifyFailed,value:t(e.out.verify_failed)},{source:We.Verification,target:We.VerifyDuplicate,value:t(e.out.verify_duplicate)},{source:We.Verification,target:We.Dedup,value:t(s)},{source:We.Dedup,target:We.DedupDeuplicate,value:t(e.out.dedup_duplicate)},{source:We.Dedup,target:We.Resolv,value:t(l)},{source:We.IncResolvRetained,target:We.Resolv,value:t(r)},{source:We.Resolv,target:We.ResolvRetained,value:t(i)},{source:We.Resolv,target:We.ResolvFailed,value:t(e.out.resolv_lut_failed)},{source:We.Resolv,target:We.ResolvExpired,value:t(e.out.resolv_expired+e.out.resolv_ancient)},{source:We.Resolv,target:We.ResolvNoLedger,value:t(e.out.resolv_no_ledger)},{source:We.Resolv,target:We.Pack,value:t(c)},{source:We.IncPackCranked,target:We.Pack,value:t(e.in.pack_cranked)},{source:We.IncPackRetained,target:We.Pack,value:t(e.in.pack_retained)},{source:We.Pack,target:We.PackRetained,value:t(e.out.pack_retained)},{source:We.Pack,target:We.PackInvalid,value:t(e.out.pack_invalid)},{source:We.Pack,target:We.PackInvalidBundle,value:t(e.out.pack_invalid_bundle)},{source:We.Pack,target:We.PackExpired,value:t(e.out.pack_expired)},{source:We.Pack,target:We.PackAlreadyExecuted,value:t(e.out.pack_already_executed)},{source:We.Pack,target:We.PackLeaderSlow,value:t(e.out.pack_leader_slow)},{source:We.Pack,target:We.PackWaitFull,value:t(e.out.pack_wait_full)},{source:We.Pack,target:We.Execle,value:t(d)},{source:We.Execle,target:We.BankInvalid,value:t(e.out.bank_invalid)},{source:We.Execle,target:We.BankNonceAlreadyAdvanced,value:t(e.out.bank_nonce_already_advanced)},{source:We.Execle,target:We.BankNonceAdvanceFailed,value:t(e.out.bank_nonce_advance_failed)},{source:We.Execle,target:We.BankNonceWrongBlockhash,value:t(e.out.bank_nonce_wrong_blockhash)},{source:We.Execle,target:We.End,value:t(f)},{source:We.End,target:We.SlotEnd,value:t(f)}]}function wgt(e,t){const n=rt.sum(Object.values(e.in)),r=Dfe({displayType:t,durationNanos:void 0,totalIncoming:n});return[...Afe(e,r),{source:We.SlotEnd,target:We.BlockFailure,value:r(e.out.block_fail)},{source:We.SlotEnd,target:We.BlockSuccess,value:r(e.out.block_success)}]}function kgt(e,t,n,r,i,o,a){const s=rt.sum(Object.values(e.in)),l=Dfe({displayType:t,durationNanos:n,totalIncoming:s}),c=(r??0)+(i??0);return[...Afe(e,l),{source:We.SlotEnd,target:We.Votes,value:l(c)},{source:We.SlotEnd,target:We.NonVoteFailure,value:l(a??0)},{source:We.SlotEnd,target:We.NonVoteSuccess,value:l(o??0)}]}function Sgt(){const e=X(Cn);return u.jsx(Cgt,{slot:e},e)}function Cgt({slot:e}){var o,a,s,l,c,d;const t=X(Cg),n=X(Gze),r=tc(e),i=m.useMemo(()=>{var _,y,b,w,x,S;const f=n??((_=r.response)==null?void 0:_.waterfall);if(!f)return;const p=n?wgt(f,t):kgt(f,t,(y=r.response)==null?void 0:y.publish.duration_nanos,(b=r.response)==null?void 0:b.publish.success_vote_transaction_cnt,(w=r.response)==null?void 0:w.publish.failed_vote_transaction_cnt,(x=r.response)==null?void 0:x.publish.success_nonvote_transaction_cnt,(S=r.response)==null?void 0:S.publish.failed_nonvote_transaction_cnt),v=p.flatMap(C=>[C.source,C.target]);return{nodes:qht.filter(C=>v.includes(C.id)),links:p}},[t,n,(o=r.response)==null?void 0:o.publish.duration_nanos,(a=r.response)==null?void 0:a.publish.failed_nonvote_transaction_cnt,(s=r.response)==null?void 0:s.publish.failed_vote_transaction_cnt,(l=r.response)==null?void 0:l.publish.success_nonvote_transaction_cnt,(c=r.response)==null?void 0:c.publish.success_vote_transaction_cnt,(d=r.response)==null?void 0:d.waterfall]);return!i||!i.links.length?r.hasWaitedForData?u.jsx(V,{justify:"center",align:"center",height:"100%",children:u.jsx(q,{children:"No waterfall avaliable for this slot"})}):u.jsx(V,{justify:"center",align:"center",height:"100%",children:u.jsx(Iy,{style:{height:50,width:50}})}):u.jsx($s,{children:({height:f,width:p})=>{const v=p<600;if(v){const _=f;f=p,p=_}return u.jsx(mgt,{height:f,width:p,data:i,margin:{top:10,right:n?100:v?145:130,bottom:35,left:85},align:"center",isInteractive:!1,nodeThickness:0,nodeSpacing:jgt(f),nodeBorderWidth:0,sort:"input",nodeBorderRadius:0,linkOpacity:1,enableLinkGradient:!0,labelPosition:"outside",labelPadding:16,animate:!1,nodeTooltip:Ffe,linkTooltip:Ffe})}})}function Ffe(){return null}function jgt(e){return e<275?32:e<300?36:e<325?40:e<350?48:52}const Tgt="_container_k3j09_1",Igt={container:Tgt};function Egt(){const[e,t]=m.useState(!1),n=X(V3),r=e&&!n,{tileCounts:i,groupedLiveIdlePerTile:o,showLive:a,queryIdleData:s}=VM(),l=i.net?"net":"sock";return u.jsxs("div",{className:Igt.container,children:[u.jsx(Wa,{header:l,subHeader:"(in)",tileCount:i[l],liveIdlePerTile:o==null?void 0:o[l],queryIdlePerTile:a||s==null?void 0:s[l],statLabel:"Ingress",metricType:"net_in",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"QUIC",tileCount:i.quic,liveIdlePerTile:o==null?void 0:o.quic,queryIdlePerTile:a||s==null?void 0:s.quic,statLabel:"Conns",metricType:"quic",isExpanded:r,setIsExpanded:t}),"bundle"in i&&u.jsx(Wa,{header:"bundle",tileCount:i.bundle,liveIdlePerTile:o==null?void 0:o.bundle,queryIdlePerTile:a||s==null?void 0:s.bundle,...a?{statLabel:"RTT",metricType:"bundle_rtt_smoothed_millis"}:{statLabel:"Lat p90",metricType:"bundle_rx_delay_millis_p90"},isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"verify",tileCount:i.verify,liveIdlePerTile:o==null?void 0:o.verify,queryIdlePerTile:a||s==null?void 0:s.verify,statLabel:"Failed",metricType:"verify",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"dedup",tileCount:i.dedup,liveIdlePerTile:o==null?void 0:o.dedup,queryIdlePerTile:a||s==null?void 0:s.dedup,statLabel:"Dupes",metricType:"dedup",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:To.resolv,tileCount:i[To.resolv],liveIdlePerTile:o==null?void 0:o[To.resolv],queryIdlePerTile:a||s==null?void 0:s[To.resolv],statLabel:"Resolv",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"pack",tileCount:i.pack,liveIdlePerTile:o==null?void 0:o.pack,queryIdlePerTile:a||s==null?void 0:s.pack,statLabel:"Full",metricType:"pack",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:To.bank,tileCount:i[To.bank],liveIdlePerTile:o==null?void 0:o[To.bank],queryIdlePerTile:a||s==null?void 0:s[To.bank],statLabel:"TPS",metricType:"bank",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:To.poh,tileCount:i[To.poh],liveIdlePerTile:o==null?void 0:o[To.poh],queryIdlePerTile:a||s==null?void 0:s[To.poh],statLabel:"Hash",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"shred",tileCount:i.shred,liveIdlePerTile:o==null?void 0:o.shred,queryIdlePerTile:a||s==null?void 0:s.shred,statLabel:"Shreds",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:l,subHeader:"(out)",tileCount:i[l],liveIdlePerTile:o==null?void 0:o[l],queryIdlePerTile:a||s==null?void 0:s[l],statLabel:"Egress",metricType:"net_out",isExpanded:r,setIsExpanded:t})]})}const Ngt="_container_k6h1w_1",$gt="_toggle-group_k6h1w_46",Mgt="_toggle-group-item_k6h1w_53",tx={container:Ngt,toggleGroup:$gt,toggleGroupItem:Mgt};function Lgt(){const[e,t]=Vl(Cg);return u.jsx("div",{className:tx.container,children:u.jsxs($7,{className:tx.toggleGroup,type:"single","aria-label":"Dropped Type",value:e,children:[u.jsx(U0,{className:tx.toggleGroupItem,value:Io.Count,"aria-label":Io.Count,onClick:()=>t(Io.Count),children:"Count"}),u.jsx(U0,{className:tx.toggleGroupItem,value:Io.Pct,"aria-label":Io.Pct,onClick:()=>t(Io.Pct),children:"Pct %"}),u.jsx(U0,{className:tx.toggleGroupItem,value:Io.Rate,"aria-label":Io.Rate,onClick:()=>t(Io.Rate),children:"Rate"})]})})}const Rgt="_slot-performance-container_6u4bp_1",Ogt="_sankey-container_6u4bp_5",Pgt="_slot-sankey-container_6u4bp_11",eO={slotPerformanceContainer:Rgt,sankeyContainer:Ogt,slotSankeyContainer:Pgt};function Bfe(){return u.jsx(so,{children:u.jsxs(V,{direction:"column",gap:"1",className:eO.slotPerformanceContainer,children:[u.jsx(V,{gap:"3",children:u.jsx(Sd,{text:"TPU Waterfall"})}),u.jsx(zgt,{}),u.jsx(Egt,{})]})})}function zgt(){return u.jsxs("div",{className:eO.sankeyContainer,children:[u.jsx(Lgt,{}),u.jsx("div",{className:eO.slotSankeyContainer,children:u.jsx(Sgt,{})})]})}const Dgt="_chart_102uq_43",Agt={chart:Dgt},Fgt="_chart_1hpd4_1",Bgt="_focused_1hpd4_32",tO={chart:Fgt,focused:Bgt};function nO(){return{hooks:{init:[e=>{const t=e.root.querySelectorAll(".u-axis")[0];t&&t.addEventListener("mousedown",n=>{const r=n.clientX,i=e.axes[0].scale;if(i===void 0)return;const o=e.scales[i],{min:a,max:s}=o,l=((s??0)-(a??0))/(e.bbox.width/jn.pxRatio),c=f=>{const p=(f.clientX-r)*l;if(!e.data[0].length)return;const v=e.data[0][0]??0,_=e.data[0][e.data[0].length-1]??0;e.setScale(i,{min:Math.max(v,f.shiftKey?(a??0)-p:(a??0)+p),max:Math.min(_,(s??0)+p)})},d=()=>{document.removeEventListener("mousemove",c),document.removeEventListener("mousemove",d)};document.addEventListener("mousemove",c),document.addEventListener("mouseup",d)})}]}}}const Ufe="banks",Id="lamports",hh="computeUnits",Vt="banksXScale",Ugt="txnExecutionDuration",Wfe="txnExecutionDurationTooltip",Vfe=fe(),Hfe=fe(0),Zfe=fe(0),qfe=fe(!0),Gfe=fe(void 0),Yfe=fe(e=>{const t=e(Gfe);return t===void 0?e(s3)===ld.balanced:t},(e,t,n)=>{t(Gfe,n)}),Wgt=ca(),rO=1/9,iO=[{color:"42 126 223"},{color:"30 156 80"},{color:"30 156 80",opacity:.05},{color:"174 85 17",opacity:.05},{color:"244 5 5",opacity:.05},{color:"244 5 5",opacity:.1}],oO=e=>iO[e]??iO[iO.length-1];function Kfe({computeUnits:e,bankCount:t,tEnd:n,maxComputeUnits:r}){return Math.round((e-r)/t/rO+n)}function Vgt(e,t,n){const r=[];function i(o,a,s,l){const c=(o.x-a.x)*(s.y-l.y)-(o.y-a.y)*(s.x-l.x);if(c===0)return;const d=((o.x-s.x)*(s.y-l.y)-(o.y-s.y)*(s.x-l.x))/c,f=((o.x-s.x)*(o.y-a.y)-(o.y-s.y)*(o.x-a.x))/c;if(!(d<0||d>1||f<0||f>1))return{x:o.x+d*(a.x-o.x),y:o.y+d*(a.y-o.y)}}for(const o of e){const a=i(t,n,o[0],o[1]);a&&r.push(a)}if(r.length)return r.length!==2&&console.debug(r),r.sort((o,a)=>o.x-a.x)}function Hgt(e,t,n,r,i){const o=Number(n.target_end_timestamp_nanos-n.start_timestamp_nanos),a=e.min??0,s=e.max??o,l=t.max??r,c=t.min??0,d=[[{x:a,y:l},{x:s,y:l}],[{x:a,y:l},{x:a,y:c}],[{x:a,y:c},{x:s,y:c}],[{x:s,y:l},{x:s,y:c}]],f=[];for(let p=1;p<=i;p++){const v=Kfe({computeUnits:0,tEnd:o,maxComputeUnits:r,bankCount:p}),_=Kfe({computeUnits:r,tEnd:o,maxComputeUnits:r,bankCount:p}),y=Vgt(d,{x:v,y:0},{x:_,y:r});y&&f.push({line:y,bankCount:p})}return f}function Xfe(e){return[{x:e.left,y:e.top+e.height},{x:e.left+e.width,y:e.top+e.height},{x:e.left+e.width,y:e.top},{x:e.left,y:e.top}]}function bl(e,t){return Math.abs(e-t)<2}function Zgt(e,t,n){const r=Xfe(e),i=[...t,...n];for(const a of r)((a.x>=t[0].x||bl(a.x,t[0].x))&&(a.x<=n[0].x||bl(a.x,n[0].x))&&(a.y>=t[0].y||bl(a.y,t[0].y))&&(a.y<=n[0].y||bl(a.y,n[0].y))||(a.x>=t[1].x||bl(a.x,t[1].x))&&(a.x<=n[1].x||bl(a.x,n[1].x))&&(a.y>=t[1].y||bl(a.y,t[1].y))&&(a.y<=n[1].y||bl(a.y,n[1].y)))&&i.push(a);const o={x:i.reduce((a,s)=>a+s.x,0)/i.length,y:i.reduce((a,s)=>a+s.y,0)/i.length};return i.sort((a,s)=>{const l=Math.atan2(a.y-o.y,a.x-o.x),c=Math.atan2(s.y-o.y,s.x-o.x);return l-c}),i}function qgt(e,t,n,r,i){if(!i.opacity)return;const o=Zgt(t,n,r);if(o.length>1){e.beginPath(),e.moveTo(o[0].x,o[0].y);for(let a=1;a{window.addEventListener("dppxchange",aO)},destroy:()=>{window.removeEventListener("dppxchange",aO)},drawSeries:[(r,i)=>{if(r.series[i].label!=="Active Bank")return;const o=e.current,a=t.current,s=n.current;if(o===null||a===null||s===null)return;const l=r.ctx;l.save();const c=!Wgt.get(Yfe),d=Number(o.target_end_timestamp_nanos-o.start_timestamp_nanos),f=Math.trunc(a+.05*d*rO),p=c?[]:Hgt(r.scales[Vt],r.scales[hh],o,f,s);p.unshift({line:[{x:r.scales[Vt].min??0,y:a},{x:r.scales[Vt].max??45e7,y:a}],bankCount:0});const v=[];aO(),l.font=Jfe;const _={x:-100,y:30};for(let y=0;yjn.pxRatio*50||bl(x,r.bbox.left)&&Math.abs(S-_.y)>jn.pxRatio*20){l.save();const E=Math.atan2(j-S,C-x);l.translate(x,S),l.rotate(E),l.fillStyle=l.strokeStyle;const $=`${w-1} Bank${w===2?"":"s"} Active`;l.measureText($).width<=r.bbox.left+r.bbox.width-x&&l.fillText($,4*jn.pxRatio,-8*jn.pxRatio),l.restore()}_.x=x,_.y=S}}if(v.length>0){v.unshift({line:[{x:r.bbox.left,y:bl(v[0].line[0].x,r.bbox.left)?v[0].line[0].y:r.bbox.top+r.bbox.height},{x:r.bbox.left,y:r.bbox.top}],bankCount:v[0].bankCount-1}),v.push({line:[{x:r.bbox.left+r.bbox.width,y:r.bbox.top+r.bbox.height},{x:r.bbox.left+r.bbox.width,y:bl(v[v.length-1].line[1].x,r.bbox.left+r.bbox.width)?v[v.length-1].line[1].y:r.bbox.top}],bankCount:v[v.length-1].bankCount+1});for(let y=1;yS||i===d.after&&n[d.offsetSize]>C)&&(i=S>C?d.before:d.after);var j=i===d.before?S:C,T=parseInt(c[d.maxSize]);(!T||j{const n=document.getElementById(Qfe);n&&(nx=n)},drawSeries:[(t,n)=>{if(t.series[n].label!=="Active Bank"||(nx.style.display="none",e!==ld.revenue))return;const r=t.scales[Vt],i=Math.round(t.valToPos(kS,Vt,!0));if(r.min!==void 0&&kSr.max)return;const o=t.ctx;if(o.save(),o.beginPath(),o.strokeStyle=Lne,o.lineWidth=3,o.setLineDash([5,5]),o.moveTo(i,t.bbox.top),o.lineTo(i,t.bbox.top+t.bbox.height),o.stroke(),o.restore(),nx){const a={left:Math.round(t.valToPos(kS,Vt,!1))+t.over.offsetLeft-sO/2,top:t.over.offsetTop-sO};ehe(nx,a,"center","bottom"),nx.style.display="block"}}]}}}const the=1;let rx=!1;function nhe(){return document.getElementById("scroll-container")??document.body}function ix({elId:e,showOnCursor:t,showPointer:n,closeTooltipElId:r,getClosestIdx:i}){let o,a,s,l,c=!1;function d(){const x=o.getBoundingClientRect();s=x.left,l=x.top}function f(){rx=!0,w.style.pointerEvents="auto",y(),setTimeout(()=>{var x;document.addEventListener("click",b),r&&((x=document.getElementById(r))==null||x.addEventListener("click",p))},0)}function p(){var x;rx=!1,w.style.pointerEvents="none",w.style.display="none",document.removeEventListener("click",b),r&&((x=document.getElementById(r))==null||x.removeEventListener("click",p))}const v=rt.throttle(p,100,{leading:!0,trailing:!0});function _(){n&&(document.body.style.cursor="pointer",document.body.addEventListener("click",f))}function y(){n&&(document.body.style.cursor="unset",document.body.removeEventListener("click",f))}function b(x){const S=document.getElementById(e);x.target&&(S!=null&&S.contains(x.target))||(p(),y())}let w;return{opts:(x,S)=>{i&&(S.cursor??(S.cursor={}),S.cursor.dataIdx=(C,j,T)=>j===the?i(C):T)},hooks:{init:x=>{const S=document.getElementById(e);S?w=S:(w=document.createElement("div"),w.id=e,document.body.appendChild(w)),w&&(w.style.display="none",w.style.pointerEvents="none",o=x.over,a=document.body,o.onmouseenter=()=>{c=!0},o.onmouseleave=()=>{c=!1,!rx&&(w.style.display="none",y(),rx=!1)},nhe().addEventListener("scroll",v))},destroy:()=>{o.onmouseenter=null,o.onmouseleave=null,y(),p(),nhe().removeEventListener("scroll",v)},setSize:()=>{d()},syncRect:()=>{d()},setCursor:x=>{var E;if(!c||rx)return;const{left:S,top:C}=x.cursor,j=(E=x.cursor.idxs)==null?void 0:E[i?the:0];if(S===void 0||C===void 0||j===void 0)return;const T=x.posToVal(S,x.series[0].scale??"x");if(j!==null&&t(x,T,j)){const $={left:S+s+5,top:C+l};w.style.display="block",w.style.pointerEvents="none",_(),ehe(w,$,"right","start",{bound:a})}else w.style.display="none",y()},setScale:()=>{y(),p()}}}}function t1t(e){function t(n,r,i){const o=r>=n.data[0][i]?i:i-1;return e({elapsedTime:r,activeBanks:n.data[1][o],computeUnits:n.data[2][o],fees:n.data[3][o],tips:n.data[4][o]}),!0}return ix({elId:"cu-chart-tooltip",showOnCursor:t})}function lO(e){const t=e.factor||.75,n=.1;let r,i,o,a,s,l,c;return{hooks:{ready(d){var y;const f=d.series[0].scale??"x",p=((y=d.series.find((b,w)=>w>0&&b.show!==!1))==null?void 0:y.scale)??"y";r=d.scales[f].min??0,i=d.scales[f].max??0,o=d.scales[p].min??0,a=d.scales[p].max??0,s=i-r,l=a-o;const v=d.over;let _=v.getBoundingClientRect();c=new ResizeObserver(()=>{_=v.getBoundingClientRect()}),c.observe(v),v.addEventListener("wheel",b=>{if(b.ctrlKey||b.metaKey||b.shiftKey){if(b.preventDefault(),b.ctrlKey||b.metaKey){let{left:w,top:x}=d.cursor;w??(w=0),x??(x=0);const S=w/_.width,C=1-x/_.height,j=d.posToVal(w,Vt),T=d.posToVal(x,"y"),E=(d.scales[f].max??0)-(d.scales[f].min??0),$=(d.scales[p].max??0)-(d.scales[p].min??0),A=b.deltaY<0?E*t:E/t;let M=j-S*A,P=M+A;[M,P]=v6(A,M,P,s,r??0,i??0);const te=b.deltaY<0?$*t:$/t;let Z=T-C*te,O=Z+te;[Z,O]=v6(te,Z,O,l,o??0,a??0),requestAnimationFrame(()=>d.batch(()=>{d.setScale(Vt,{min:M,max:P})}))}else if(b.shiftKey){const w=(d.scales[f].max??0)-(d.scales[f].min??0);let x=w*n;b.deltaY>=0&&(x*=-1);const[S,C]=v6(w,(d.scales[f].min??0)+x,(d.scales[f].max??0)+x,w,r??0,i??0);requestAnimationFrame(()=>d.setScale(Vt,{min:S,max:C}))}}})},destroy(d){c==null||c.disconnect()}}}}const n1t=ca();let uO=!1;function cO(e){const t=(e==null?void 0:e.minRange)??0;return{hooks:{setScale:(n,r)=>{const i=n.series[0].scale??"x";if(uO||r!==i)return;const o=n.scales[i];uO=!0;let a=o.min??0,s=o.max??0;if(s-a{i===(l.series[0].scale??"x")&&l.setScale(i,{min:a,max:s})}),uO=!1}}}}var dn=(e=>(e.DEFAULT="All",e.PRELOADING="Pre-Loading",e.VALIDATE="Validate",e.LOADING="Loading",e.EXECUTE="Execute",e.POST_EXECUTE="Post-Execute",e))(dn||{});const r1t={All:LN,"Pre-Loading":One,Validate:RN,Loading:zne,Execute:Ane,"Post-Execute":Bne},va={All:LN,"Pre-Loading":Pne,Validate:RN,Loading:Dne,Execute:Fne,"Post-Execute":Une};var Ci=(e=>(e[e.ERROR=0]="ERROR",e[e.MICROBLOCK=1]="MICROBLOCK",e[e.BUNDLE=2]="BUNDLE",e[e.LANDED=3]="LANDED",e[e.SIMPLE=4]="SIMPLE",e[e.FEES=5]="FEES",e[e.TIPS=6]="TIPS",e[e.CUS_CONSUMED=7]="CUS_CONSUMED",e[e.CUS_REQUESTED=8]="CUS_REQUESTED",e[e.INCOME_CUS=9]="INCOME_CUS",e))(Ci||{});const rhe="bank-",dO=2e6;function fO(e,t=!1){if(!e)return 0;const n=e.txn_mb_end_timestamps_nanos.map(i=>Number(i-e.start_timestamp_nanos));n.push(Number(e.target_end_timestamp_nanos-e.start_timestamp_nanos));const r=rt.max(n)??0;return t?r+dO:r}function hO(e,t,n){if(t<0)return{preLoading:0n,validating:0n,loading:0n,execute:0n,postExecute:0n};let r=e.txn_mb_start_timestamps_nanos[t],i=e.txn_mb_end_timestamps_nanos[t];const o=Vi?e.txn_start_timestamps_nanos:e.txn_preload_end_timestamps_nanos;if(e.txn_from_bundle[t]&&(n!=null&&n.length)){const _=n.indexOf(t)??-1;n[_-1]>0&&(r=o[t]);const y=_!==-1?n[_+1]:-1;y>0&&(i=o[y])}const a=e.txn_preload_end_timestamps_nanos[t],s=e.txn_start_timestamps_nanos[t],l=e.txn_load_end_timestamps_nanos[t];let c,d,f;Vi?(c=s-r,d=a-s,f=l-a):(c=a-r,f=s-a,d=l-s);let p,v;if(_i||!e.txn_from_bundle[t]||!(n!=null&&n.length))p=e.txn_end_timestamps_nanos[t]-e.txn_load_end_timestamps_nanos[t],v=i-e.txn_end_timestamps_nanos[t];else{const _=n.indexOf(t)??-1,y=_!==-1?n[_+1]:-1;y>0?(p=o[y]-e.txn_load_end_timestamps_nanos[t],v=e.txn_end_timestamps_nanos[y]-e.txn_end_timestamps_nanos[t]):(p=e.txn_end_timestamps_nanos[t]-e.txn_load_end_timestamps_nanos[t],v=i-e.txn_end_timestamps_nanos[t])}return{preLoading:c,validating:f,loading:d,execute:p,postExecute:v}}function SS(e,t){const n=e.txn_microblock_id[t],r=[];for(let i=0;iNumber(o-t.start_timestamp_nanos);if(Vi){if(e0){if(e{const d=c.series[0].scale??"x";r=c.scales[d].min??0,i=c.scales[d].max??0,n=i-r;function f(){const v=a.dx/s.dx,_=s.x/e.width,y=t*v;let b=o-_*y,w=b+y;[b,w]=v6(y,b,w,n,r,i),c.batch(()=>{c.setScale(d,{min:b,max:w})}),l=!1}function p(v){ohe(v,s,e),l||(l=!0,requestAnimationFrame(f))}c.over.addEventListener("touchstart",function(v){c.scales[d].max===void 0||c.scales[d].min===void 0||(e=c.over.getBoundingClientRect(),t=c.scales[d].max-c.scales[d].min,o=c.posToVal(a.x,d),ohe(v,a,e),document.addEventListener("touchmove",p,{passive:!0}))}),c.over.addEventListener("touchend",function(v){document.removeEventListener("touchmove",p)})}}}}function a1t(e){const t=[...e.txn_mb_start_timestamps_nanos.map((l,c)=>({timestampNanos:Number(l-e.start_timestamp_nanos),txn_idx:c,isTxnStart:!0})),...e.txn_mb_end_timestamps_nanos.map((l,c)=>({timestampNanos:Number(l-e.start_timestamp_nanos),txn_idx:c,isTxnStart:!1}))].sort((l,c)=>l.timestampNanos-c.timestampNanos),n=[];let r=0,i=0,o=0;const a=t.reduce((l,c,d)=>{const f=c.txn_idx,p=e.txn_landed[f]?c.isTxnStart?e.txn_compute_units_requested[f]:-e.txn_compute_units_requested[f]+e.txn_compute_units_consumed[f]:0,v=c.isTxnStart?0:Number(WN(e,f)),_=c.isTxnStart?0:Number(VN(e,f));n[e.txn_bank_idx[f]]=c.isTxnStart;const y=n.filter(C=>C).length,b=l[0].length-1,w=(l[2][b]||0)+p,x=(l[3][b]||0)+v,S=(l[4][b]||0)+_;return y>o&&(o=y),w>i&&(i=w),x>r&&(r=x),S>r&&(r=S),d>0&&t[d-1].timestampNanos===c.timestampNanos?(l[1][b]=y,l[2][b]=w,l[3][b]=x,l[4][b]=S):(l[0].push(c.timestampNanos),l[1].push(y),l[2].push(w),l[3].push(x),l[4].push(S)),l},[[-dO],[0],[0],[0],[0]]),s=fO(e,!0);return a.forEach(l=>{l.push(null)}),a[0][a[0].length-1]=s,{chartData:a,maxBankCount:o,maxComputeUnits:i,maxLamports:r}}const{stepped:mO}=jn.paths,gO=mO==null?void 0:mO({align:1}),CS=(e,t,n,r)=>(gO==null?void 0:gO(e,t,n,r))??null,s1t="cu-chart";function l1t({slotTransactions:e,maxComputeUnits:t,bankTileCount:n,onCreate:r}){const i=Ee(Vfe),o=Ee(Hfe),a=Ee(Zfe),s=m.useRef(e);s.current=e;const l=m.useRef(t);l.current=t;const c=m.useRef(n);c.current=n;const{chartData:d,maxBankCount:f,maxComputeUnits:p,maxLamports:v}=m.useMemo(()=>a1t(e),[e]),_=m.useCallback((b,w)=>!(b>0||w({width:0,height:0,class:tO.chart,drawOrder:["axes","series"],cursor:{sync:{key:Vt},points:{show:!1}},scales:{[Vt]:{time:!1},[hh]:{range:(b,w,x)=>{if(_(w,x))return[0,t+1e6];const S=Math.max(x-w,5e4);return[Math.max(w-S,0),Math.min(x+S,t+1e6)]}},[Ufe]:{range:[0,f+1]},[Id]:{range:[0,v*1.1]}},axes:[{border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{width:1/devicePixelRatio,stroke:NN},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},size:30,values:(b,w)=>w.map(x=>x/1e6+"ms"),space:100,scale:Vt},{scale:hh,border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{width:1/devicePixelRatio,stroke:NN},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},values:(b,w)=>w.map(x=>x/1e6+"M"),space:50,size(b,w,x,S){var $,A;const C=b.axes[x];if(S>1)return C._size;let j=(($=C.ticks)==null?void 0:$.size)??0+(C.gap??0);j+=5;const T=(w??[]).reduce((M,P)=>P.length>M.length?P:M,"");T!==""&&(b.ctx.font=((A=C.font)==null?void 0:A[0])??"Inter Tight",j+=b.ctx.measureText(T).width/devicePixelRatio);const E=Math.ceil(j);return o(E),E}},{scale:Id,stroke:sr,border:{show:!0,width:1/devicePixelRatio,stroke:sr},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},values:(b,w)=>w.map(x=>x/dd+" SOL"),side:1,space:50,size(b,w,x,S){var $,A;const C=b.axes[x];if(S>1)return C._size;let j=(($=C.ticks)==null?void 0:$.size)??0+(C.gap??0);j+=5;const T=(w??[]).reduce((M,P)=>P.length>M.length?P:M,"");T!==""&&(b.ctx.font=((A=C.font)==null?void 0:A[0])??"Inter Tight",j+=b.ctx.measureText(T).width/devicePixelRatio);const E=Math.ceil(j);return a(E),E}}],series:[{scale:Vt},{label:"Active Bank",stroke:"rgba(117, 77, 18, 1)",paths:CS,points:{show:!1},width:2/devicePixelRatio,scale:Ufe},{label:"Compute Units",stroke:pd,paths:CS,points:{show:!1},width:2/devicePixelRatio,scale:hh},{label:"Fees",stroke:kg,paths:CS,points:{show:!1},width:2/devicePixelRatio,scale:Id},{label:"Tips",stroke:Gf,paths:CS,points:{show:!1},width:2/devicePixelRatio,scale:Id}],legend:{show:!1},plugins:[e1t(),Ygt({slotTransactionsRef:s,maxComputeUnitsRef:l,bankTileCountRef:c}),nO(),lO({factor:.75}),t1t(i),cO(),o1t(),pO()]}),[f,v,i,_,t,o,a]);return u.jsx("div",{style:{height:"100%"},children:u.jsx($s,{children:({height:b,width:w})=>(y.width=w,y.height=b,u.jsx(u.Fragment,{children:u.jsx(Pp,{id:s1t,options:y,data:d,onCreate:r})}))})})}const u1t="_tooltip_h8khk_1",c1t={tooltip:u1t};function ox({elId:e,children:t}){const n=X(jg);return u.jsx(lU,{container:n,id:e,className:c1t.tooltip,children:t})}const d1t="_tooltip_11ays_1",f1t="_active-banks_11ays_14",h1t="_compute-units_11ays_18",p1t="_elapsed-time_11ays_22",m1t="_fees_11ays_26",g1t="_tips_11ays_30",v1t="_label_11ays_34",qo={tooltip:d1t,activeBanks:f1t,computeUnits:h1t,elapsedTime:p1t,fees:m1t,tips:g1t,label:v1t};function y1t(){var t;const e=X(Vfe);return u.jsx(ox,{elId:"cu-chart-tooltip",children:e&&u.jsxs("div",{className:qo.tooltip,children:[u.jsx(q,{className:Te(qo.activeBanks,qo.label),children:"Active\xA0banks"}),u.jsx(q,{className:qo.activeBanks,children:e.activeBanks??"-"}),u.jsx(q,{className:Te(qo.computeUnits,qo.label),children:"Compute\xA0units"}),u.jsxs(q,{className:qo.computeUnits,children:[((t=e.computeUnits)==null?void 0:t.toLocaleString())??"-","\xA0CUs"]}),u.jsx(q,{className:Te(qo.elapsedTime,qo.label),children:"Time\xA0elapsed"}),u.jsx(q,{className:qo.elapsedTime,children:e.elapsedTime!=null?`${(e.elapsedTime/1e6).toLocaleString(void 0,{maximumFractionDigits:6})} ms`:"-"}),u.jsx(q,{className:Te(qo.tips,qo.label),children:"Tips"}),u.jsx(q,{className:qo.tips,children:BN(BigInt(e.tips||0),Uo)}),u.jsx(q,{className:Te(qo.fees,qo.label),children:"Fees"}),u.jsx(q,{className:qo.fees,children:BN(BigInt(e.fees||0),Uo)})]})})}const b1t="_button_1b3a4_1",vO={button:b1t};function _1t({onUplot:e}){const t=X(qfe);return u.jsxs(V,{gap:"3",align:"center",children:[u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsxs(V,{gap:"1px",children:[u.jsx(nl,{variant:"soft",onClick:()=>e(n=>{const r=n.scales[Vt].min??0,i=n.scales[Vt].max??0,o=i-r;if(o<=0)return;const a=o*.2;n.setScale(Vt,{min:r+a,max:i-a})}),className:vO.button,children:u.jsx(xBe,{width:"18",height:"18"})}),u.jsx(nl,{variant:"soft",onClick:()=>e(n=>{const r=n.data[0][0],i=n.data[0].at(-1)??r,o=n.scales[Vt].min??0,a=n.scales[Vt].max??0,s=a-o;if(s<=0)return;const l=s*.2;n.setScale(Vt,{min:Math.max(o-l,r),max:Math.min(a+l,i)})}),disabled:t,className:vO.button,children:u.jsx(kBe,{width:"18",height:"18"})}),u.jsx(hs,{variant:"soft",onClick:()=>e(n=>n.setScale(Vt,{min:n.data[0][0],max:n.data[0].at(-1)??0})),disabled:t,className:vO.button,children:u.jsx(gBe,{width:"18",height:"18"})})]})]})}const x1t="_label_1q3ew_1",w1t={label:x1t};function k1t({checked:e,onCheckedChange:t,label:n,color:r}){return u.jsx(V,{align:"center",gap:"2",children:u.jsx(q,{as:"label",className:w1t.label,style:{color:r},children:u.jsxs(V,{gap:"2",children:[u.jsx(Y7,{checked:e,onCheckedChange:t,size:"1"}),n]})})})}function S1t({onUplot:e}){const[t,n]=Vl(Yfe),r=i=>{n(i),e(o=>{o.redraw(!1,!1)})};return u.jsx(k1t,{label:"Show Projections",checked:t,onCheckedChange:r,color:pN})}const ahe="500px";function C1t(){var a;const e=X(Cn),t=pl(e),n=m.useRef(),r=X(Nb)[To.bank],i=m.useCallback(s=>{n.current=s},[]),o=m.useCallback(s=>n.current&&s(n.current),[]);return!e||!((a=t.response)!=null&&a.transactions)?u.jsx(j1t,{}):u.jsxs(u.Fragment,{children:[u.jsx(so,{children:u.jsxs(V,{direction:"column",height:ahe,gap:"2",children:[u.jsxs(V,{gap:"3",children:[u.jsx(Sd,{text:"Slot Progression"}),u.jsx(_1t,{onUplot:o}),u.jsx(S1t,{onUplot:o})]}),u.jsxs("div",{className:Agt.chart,children:[u.jsx(l1t,{slotTransactions:t.response.transactions,maxComputeUnits:t.response.publish.max_compute_units??Bte,bankTileCount:r,onCreate:i}),u.jsx(Jgt,{})]})]})}),u.jsx(y1t,{})]})}function j1t(){return u.jsx(so,{style:{display:"flex",flexGrow:"1",height:ahe,justifyContent:"center",alignItems:"center"},children:u.jsx(q,{children:"Loading Slot Progress..."})})}function she(e,t){return Math.round(e*(t=10**t))/t}const T1t=1,lhe=(e,t,n,r,i)=>she(t+e*(n+i),6);function I1t(e,t,n,r,i){let o=(1-t)/(e-1);(isNaN(o)||o===1/0)&&(o=0);const a=0,s=t/e,l=she(s,6),c=l,d=l;if(r==null)for(let f=0;f=n&&e<=i&&t>=r&&t<=o}const vc=class vc{constructor(t,n,r,i,o=0){$u(this,"x");$u(this,"y");$u(this,"w");$u(this,"h");$u(this,"l");$u(this,"o");$u(this,"q");this.x=t,this.y=n,this.w=r,this.h=i,this.l=o,this.o=[],this.q=null}split(){const t=this.w/2,n=this.h/2,r=this.l+1;this.q=[new vc(this.x+t,this.y,t,n,r),new vc(this.x,this.y,t,n,r),new vc(this.x,this.y+n,t,n,r),new vc(this.x+t,this.y+n,t,n,r)]}quads(t,n,r,i,o){if(!this.q)return;const a=this.x+this.w/2,s=this.y+this.h/2,l=na,f=n+i>s;l&&d&&o(this.q[0]),c&&l&&o(this.q[1]),c&&f&&o(this.q[2]),d&&f&&o(this.q[3])}add(t){if(this.q)this.quads(t.x,t.y,t.w,t.h,n=>n.add(t));else if(this.o.push(t),this.o.length>vc.MAX_OBJECTS&&this.lr.add(n));this.o.length=0}}get(t,n,r,i,o){for(const a of this.o)o(a);this.q&&this.quads(t,n,r,i,a=>a.get(t,n,r,i,o))}clear(){this.o.length=0,this.q=null}};$u(vc,"MAX_OBJECTS",10),$u(vc,"MAX_LEVELS",4);let yO=vc;function uhe(e,t,n=Math.E){return e===0||t===0?0:((e<=0||t<=0)&&(console.error(e,t),console.error("Logarithms are only defined for positive numbers.")),n===Math.E?Math.log(e)-Math.log(t):Math.log(e)/Math.log(n)-Math.log(t)/Math.log(n))}function N1t(e,t){if(Math.trunc(e)!==e){let n=0;for(;Math.trunc(e)!==e;)e*=10,n++;return e/(Math.pow(10,n)*t)}else return e/t}function bO(e){return`${rhe}${e}`}function $1t(e,t){if(t<0||e.txn_mb_start_timestamps_nanos[t]===void 0)return;const n=e.start_timestamp_nanos,r=Number(e.txn_mb_start_timestamps_nanos[t]-n),i=Number(e.txn_preload_end_timestamps_nanos[t]-n),o=Number(e.txn_start_timestamps_nanos[t]-n),a=Number(e.txn_load_end_timestamps_nanos[t]-n),s=Number(e.txn_end_timestamps_nanos[t]-n),l=Number(e.txn_mb_end_timestamps_nanos[t]-n);return{mbStartTs:r,preloadTs:i,txnStartTs:o,loadEndTs:a,txnEndTs:s,mbEndTs:l}}function jS(e,t,n,r){const i={};for(let s=0;s+s).sort((s,l)=>s-l),a=[[-dO],[null],[null]];for(let s=0;s!d(e,c)))a[1].push(null),a[2].push(null);else if(a[1].push(c),c===null)a[2].push(null);else{const d=e.txn_microblock_id[c];a[2][a[2].length-1]===d||a[2][a[2].length-1]===void 0?a[2].push(void 0):a[2].push(d)}}a[0].push(n);for(let s=1;srt.round(o,n);let i=Number(e);return t||(i=Math.abs(i)),Math.abs(i)<1e3?{value:r(i),unit:"ns"}:(i/=1e3,Math.abs(i)<1e3?{value:r(i),unit:"\xB5s"}:(i/=1e3,Math.abs(i)<1e5?{value:r(i),unit:"ms"}:(i/=1e3,Math.abs(i)<120?{value:r(i),unit:"s"}:(i/=60,Math.abs(i)<120?{value:r(i),unit:"m"}:(i/=60,{value:r(i),unit:"h"})))))}const Ls=fe(null,(e,t,n)=>{function r(o){return o.startsWith("bank-")}function i(o,a){const s=Number(a.replace(rhe,""));isNaN(s)||n(o,s)}t(y6,i,{isMatchingChartId:r})}),M1t="landed";function L1t(e,t){return e.txn_landed[t]}const che=fe([]),dhe={},[ax,_O]=function(){const e=fe({...dhe}),t=fe();return[fe(n=>n(e),(n,r,i)=>{if(r(e,i),Object.keys(i).length){const o=new Set;r(Ls,a=>{var s;if((s=a.data[1])!=null&&s.length)for(let l=0;ln(t))]}();function R1t({baseChartData:e,transactions:t,value:n,filterEnum:r,filterFunc:i,mergeMatchingPoints:o}){const a=[null];let s=null;for(let l=1;l{const c={...n(ax)};l===void 0?delete c[e]:c[e]=(f,p)=>t(f,p,l);const d=jS(o,a,s,Object.values(c));i.data.splice(1,1,d[1]),i.data.splice(2,1,d[2]),i.setData(i.data,!1),r(ax,c),i.redraw(!0,!0)})}function TS(e,t){function n(r,i,o){switch(o){case"All":return!0;case"Yes":return t(r,i);case"No":return!t(r,i)}}return fhe(e,n)}const O1t=TS("error",(e,t)=>e.txn_error_code[t]!==0),P1t=TS("bundle",(e,t)=>e.txn_from_bundle[t]),z1t=TS(M1t,L1t),D1t=TS("simple",(e,t)=>e.txn_is_simple_vote[t]),A1t=fhe("arrival",(e,t,{min:n,max:r})=>{const i=Number(e.txn_arrival_timestamps_nanos[t]-e.start_timestamp_nanos);return(n===void 0||i>=n)&&i<=r});let IS={};function F1t(e,t){Object.values(IS).forEach(n=>n(e,t))}function B1t(){IS={}}function sx(e,t,n){return fe(null,(r,i,o,a,s,l)=>{function c(d,f){const p=d.data.length,v=r(che),_=R1t({filterEnum:e,filterFunc:t,transactions:a,baseChartData:v[f],value:l,mergeMatchingPoints:n});d.data.splice(p,0,_),d.addSeries({...d.series[1],label:`${e}`},p),whe(d.series.filter(y=>y.show).length-1),d.setData(d.data,!1),r(ES)===void 0&&d.redraw(!0,!0)}IS[e]=c,c(o,s)})}const U1t=sx(Ci.FEES,(e,t)=>!!Number(e.txn_priority_fee[t]+e.txn_transaction_fee[t])),W1t=sx(Ci.TIPS,(e,t)=>!!Number(e.txn_tips[t])),V1t=sx(Ci.CUS_CONSUMED,(e,t)=>!!e.txn_compute_units_consumed[t]),H1t=sx(Ci.CUS_REQUESTED,(e,t,n)=>!!e.txn_compute_units_requested[t]),Z1t=sx(Ci.INCOME_CUS,(e,t)=>e.txn_compute_units_consumed[t]>0&&Number(md(e,t))/e.txn_compute_units_consumed[t]>0),lx=fe(null,(e,t,n,r)=>{const i=n.series.findIndex(o=>o.label===`${r}`);i!==-1&&(n.delSeries(i),n.data.splice(i,1),whe(n.data.length-1),n.setData(n.data,!1),e(ES)===void 0&&n.redraw(!0,!0),delete IS[r])}),xO=fe(1),ES=fe(),q1t=0,Ed=1,hhe=2;function ux(e){return e===q1t}function NS(e){return e===Ed}function $S(e){return e===hhe}function phe(e){return e>hhe}function mhe(e,t,n=2){const r=10n**BigInt(n),i=e*r/t;return Number(i)/Number(r)}function MS(e,t){return function(n){return n.current?e(n.current).reduce((r,i,o)=>i>r?i:r,t):t}}const G1t=MS(e=>e.txn_priority_fee.map((t,n)=>t+e.txn_transaction_fee[n]),0n),Y1t=MS(e=>e.txn_tips,0n),K1t=MS(e=>e.txn_compute_units_consumed,0),X1t=MS(e=>e.txn_compute_units_requested,0);function ghe(e,t){if(!e.txn_landed[t])return 0;const n=e.txn_compute_units_consumed[t];return n?Number(md(e,t))/n:0}function vhe(e){const t=e.txn_priority_fee.reduce((r,i,o)=>{if(!e)return r;const a=ghe(e,o);return r[a]??(r[a]=[]),r[a].push(o),r},{}),n=Object.keys(t).sort((r,i)=>Number(i)-Number(r));return{rankings:n.reduce((r,i,o)=>{const a=t[i];for(const s of a)r.set(s,o+1);return r},new Map),totalRanks:n.length}}function J1t(e){if(!e.current)return new Map;const{rankings:t,totalRanks:n}=vhe(e.current);for(const[r,i]of t)t.set(r,(n-i+1)/n);return t}const Q1t=1,evt=T1t;let yhe=0;const bhe=.5,tvt=1.3;let S1;function wO(e){S1=e}let C1="";function _he(e){C1=e}let kO;function xhe(e){kO=e}let Nd=0;const whe=e=>{Nd=e-1,ca().set(xO,Nd)};function nvt(e,t){let n=0n,r=0n,i=0,o=0,a=new Map;function s(){n=G1t(e)}function l(){r=Y1t(e)}function c(){i=K1t(e)}function d(){o=X1t(e)}function f(){a=J1t(e)}Nd=1;const p={mode:1,fill:(O,J,D,Y)=>{var F,H,ee,ce;if(!e.current)return{fill:""};if(ux(J))return{fill:""};if(NS(J))return{fill:r1t[!O||!e.current?dn.DEFAULT:ihe(O[0][D],e.current,Y,(F=t[Y])==null?void 0:F.bundleTxnIdx)],brightness:kO===O[Ed][D]?tvt:void 0};if($S(J))return{fill:""};if(Y===Ci.FEES){const U=O[Ed][D]??-1,ae=e.current.txn_priority_fee[U]+e.current.txn_transaction_fee[U];if(!ae)return{fill:""};const je=mhe(ae,n,4);return{fill:`rgba(76, 204, 230, ${Math.max(Math.min(.8,je*4),.3)})`}}if(Y===Ci.TIPS){const U=O[Ed][D]??-1,ae=(H=e.current)==null?void 0:H.txn_tips[U];if(!ae)return{fill:""};const je=mhe(ae,r,4);return{fill:`rgba(31, 216, 164, ${Math.max(Math.min(.8,je*4),.3)})`}}if(Y===Ci.CUS_REQUESTED){const U=O[Ed][D]??-1,ae=(ee=e.current)==null?void 0:ee.txn_compute_units_requested[U];if(!ae)return{fill:""};const je=ae/o;return{fill:`rgba(255, 141, 204, ${Math.max(Math.min(.85,je),.2)})`}}if(Y===Ci.CUS_CONSUMED){const U=O[Ed][D]??-1,ae=(ce=e.current)==null?void 0:ce.txn_compute_units_consumed[U];if(!ae)return{fill:""};const je=ae/i;return{fill:`rgba(209, 157, 255, ${Math.max(Math.min(.85,je),.2)})`}}if(Y===Ci.INCOME_CUS){const U=O[Ed][D]??-1,ae=a.get(U)??0;return{fill:`rgba(158, 177, 255, ${Math.max(Math.min(.8,ae),.3)})`}}return{fill:""}},stroke:(O,J,D,Y)=>{var F,H,ee;if(ux(J)||NS(J))return"";if($S(J)){const ce=O[Ed][D]??-1,U=(F=e.current)==null?void 0:F.txn_error_code[ce];return S1?U===S1&&(!C1||((H=e.current)==null?void 0:H.txn_source_tpu[ce])===C1)?"rgba(162,5,8, .8)":U?"rgba(162,5,8, .1)":"rgba(19,173,79, .1)":C1?((ee=e.current)==null?void 0:ee.txn_source_tpu[ce])===C1&&(!S1||U===S1)?U?"rgba(162,5,8, .8)":"rgba(19,173,79, .8)":U?"rgba(162,5,8, .1)":"rgba(19,173,79, .1)":U?"rgba(162,5,8, .5)":"rgba(19,173,79, .5)"}return""}},{mode:v,fill:_,stroke:y}=p;function b(O,J,D,Y){I1t(J,Q1t,evt,O,(F,H,ee)=>{const ce=D*H,U=D*ee;Y(F,ce,U)})}const w=[.6,1/0];1-w[0];function x(){(w[1]??1/0)*jn.pxRatio}x();const S=new Map,C=new Map;function j(O){let J;const D=kO!==void 0;D&&(O.filter=`brightness(${bhe})`),S.forEach(({path:Y,brightness:F,fill:H})=>{H&&(D&&F!==J&&(O.filter=`brightness(${F??bhe})`,J=F),O.fillStyle=H,O.fill(Y))}),O.filter="",C.forEach((Y,F)=>{F&&(O.strokeStyle=F,O.stroke(Y))}),S.clear(),C.clear()}function T(O,J,D,Y,F,H,ee,ce,U,ae,je,me,ke){var $e,pe,ye;if(!e.current)return;const he=je+1,ue=_(O,he,me,ke);let re=S.get(ue.fill+ue.brightness);const ge=O[Ed][me];if(ge!=null){if(phe(he)){if(ke===Ci.FEES){const Se=e.current.txn_priority_fee[ge]+e.current.txn_transaction_fee[ge];if(Se!==void 0){let Ce=1/uhe(Number(n),Number(Se),1.7);Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Be=U*Ce,Ge=U-Be;U-=Ge,ee+=Ge}}if(ke===Ci.TIPS){const Se=($e=e.current)==null?void 0:$e.txn_tips[ge];if(Se!==void 0){let Ce=1/uhe(Number(r),Number(Se),1.7);Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Be=U*Ce,Ge=U-Be;U-=Ge,ee+=Ge}}if(ke===Ci.CUS_CONSUMED){const Se=(pe=e.current)==null?void 0:pe.txn_compute_units_consumed[ge];if(Se!==void 0){let Ce=Se/i;Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Be=U*Ce,Ge=U-Be;U-=Ge,ee+=Ge}}if(ke===Ci.CUS_REQUESTED){const Se=(ye=e.current)==null?void 0:ye.txn_compute_units_requested[ge];if(Se!==void 0){let Ce=Se/o;Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Be=U*Ce,Ge=U-Be;U-=Ge,ee+=Ge}}if(ke===Ci.INCOME_CUS){let Se=a.get(ge)??0;Se>.9&&(Se=.95),Se<.1&&(Se=.1);const Ce=U*Se,Be=U-Ce;U-=Be,ee+=Be}}if(re==null&&S.set(ue.fill+ue.brightness,re={path:new Path2D,fill:ue.fill,brightness:ue.brightness}),D(re.path,H,ee,ce,U),ae){const Se=y(O,he,me,ke);let Ce=C.get(Se);Ce==null&&C.set(Se,Ce=new Path2D),D(Ce,H+ae/2,ee+ae/2,ce-ae,U-ae)}$S(he)||$.add({x:rt.round(H-Y),y:rt.round(ee-F),w:ce,h:U,sidx:je+(je>1?2:1),didx:me})}}function E(O,J,D,Y){return jn.orient(O,J,(F,H,ee,ce,U,ae,je,me,ke,he,ue,re,ge,$e)=>{const pe=rt.round((F.width||0)*jn.pxRatio);O.ctx.save(),$e(O.ctx,O.bbox.left,O.bbox.top,O.bbox.width,O.bbox.height),O.ctx.clip(),b(J-1,Nd,ue,(ye,Se,Ce)=>{(ux(J)||NS(J))&&Ce&&(yhe=Ce),ux(J)||NS(J)||(Se-=yhe);for(let Be=0;Be=O.bbox.left&&Ge<=O.bbox.left+O.bbox.width){const ut=O.scales[Vt].min!=null&&O.scales[Vt].max!=null?4e8/(O.scales[Vt].max-O.scales[Vt].min):void 0;T(O.data,O.ctx,$e,me,ke,Ge,rt.round(ke+Se)+10,phe(J)?Math.max(3,Math.min(St-Ge,ut??1)):St-Ge,rt.round(Ce)-20,pe,ye,Be,ee[Be]??0)}Be=xt-1}}),O.ctx.lineWidth=pe,j(O.ctx),O.ctx.restore()}),null}let $;const A=Array(Nd).fill(null),M=Array(Nd).fill(0),P=Array(Nd).fill(0),te=jn.fmtDate("{YYYY}-{MM}-{DD} {HH}:{mm}:{ss}");let Z=null;return{hooks:{init:O=>{Z=O.root.querySelector(".u-series:first-child .u-value"),window.addEventListener("dppxchange",x),s(),l(),c(),d(),f()},destroy:O=>{window.removeEventListener("dppxchange",x)},drawClear:O=>{$=$||new yO(0,0,O.bbox.width,O.bbox.height),$.clear(),O.series.forEach(J=>{J._paths=null})},setCursor:O=>{{const J=O.posToVal(O.cursor.left??0,Vt);Z&&(Z.textContent=O.scales[Vt].time?te(new Date(J*1e3)):J.toFixed(2))}}},opts:(O,J)=>{jn.assign(J,{cursor:{sync:{key:Vt},y:!1,dataIdx:(D,Y,F,H)=>{var ce;if(ux(Y)||$S(Y))return F;const ee=rt.round(D.cursor.left*jn.pxRatio);if(ee>=0){const U=M[Y-1];A[Y-1]=null,$.get(ee,U,1,1,ae=>{E1t(ee,U,ae.x,ae.y,ae.x+ae.w,ae.y+ae.h)&&(A[Y-1]=ae)})}return(ce=A[Y-1])==null?void 0:ce.didx},points:{fill:"rgba(255,255,255,0.2)",bbox:(D,Y)=>{const F=A[Y-1],H={left:F?rt.round(F.x/devicePixelRatio):-10,top:F?rt.round(F.y/devicePixelRatio):-10,width:F?rt.round(F.w/devicePixelRatio):0,height:F?rt.round(F.h/devicePixelRatio):0},ee=rt.round((D.bbox.left+D.bbox.width)/devicePixelRatio)-H.left-10;return H.width>ee&&(H.width=ee),H}}},scales:{[Vt]:{range(D,Y,F){return[Y,F]}},y:{range:[0,1]}}}),J.axes&&jn.assign(J.axes[0],{splits:null,grid:{show:v!==2}}),J.axes&&jn.assign(J.axes[1],{splits:(D,Y)=>(b(null,Nd,D.bbox.height,(F,H,ee)=>{M[F]=rt.round(H+ee/2),P[F]=D.posToVal(M[F]/jn.pxRatio,"y")}),P),values:()=>Array(Nd).fill(null).map((D,Y)=>O.series[Y+1].label),gap:5,size:0,grid:{show:!1},ticks:{show:!1},side:3}),J.series.forEach((D,Y)=>{Y>0&&jn.assign(D,{paths:E,points:{show:!1}})})}}}const rvt="_group-label_1cg9k_1",ivt="_min-text-width_1cg9k_4",ovt="_group_1cg9k_1",avt="_tooltip-open_1cg9k_15",svt="_item_1cg9k_18",lvt="_item-color_1cg9k_65",j1={groupLabel:rvt,minTextWidth:ivt,group:ovt,tooltipOpen:avt,item:svt,itemColor:lvt},uvt="_slider_zs58s_1",cvt="_arrival-label_zs58s_68",dvt="_minimize-button_zs58s_77",fvt="_chart-control-tooltip_zs58s_83",cx={slider:uvt,arrivalLabel:cvt,minimizeButton:dvt,chartControlTooltip:fvt},LS=m.forwardRef(hvt);function hvt({label:e,options:t,value:n,onChange:r,isTooltipOpen:i,closeTooltip:o,optionColors:a,hasMinTextWidth:s},l){const c=m.useRef(new Map);return m.useImperativeHandle(l,()=>({focus:d=>{var f;(f=c.current.get(d))==null||f.focus()}}),[]),u.jsxs(V,{align:"center",children:[e&&u.jsx(q,{className:Te(j1.groupLabel,{[j1.minTextWidth]:s}),children:e}),u.jsx(ui,{className:cx.chartControlTooltip,content:`Applied "${n}"`,open:!!i,side:"bottom",children:u.jsx($7,{className:Te(j1.group,i&&j1.tooltipOpen),type:"single",value:n,"aria-label":e,onValueChange:d=>d&&r(d),children:t.map(d=>u.jsxs(U0,{ref:f=>{f?c.current.set(d,f):c.current.delete(d)},className:j1.item,value:d,"aria-label":d,onBlur:o,children:[(a==null?void 0:a[d])&&u.jsx("div",{className:j1.itemColor,style:{background:a[d]}}),d]},d))})})]})}const pvt="_label_1q3ew_1",SO={label:pvt};function dx({checked:e,onCheckedChange:t,label:n,color:r}){return u.jsx(V,{align:"center",gap:"2",children:u.jsx(q,{as:"label",className:SO.label,style:{color:r},children:u.jsxs(V,{gap:"2",children:[u.jsx(Y7,{checked:e,onCheckedChange:t,size:"1"}),n]})})})}const CO=fe(-1),jO=fe(dn.DEFAULT);var khe=1,mvt=.9,gvt=.8,vvt=.17,TO=.1,IO=.999,yvt=.9999,bvt=.99,_vt=/[\\\/_+.#"@\[\(\{&]/,xvt=/[\\\/_+.#"@\[\(\{&]/g,wvt=/[\s-]/,She=/[\s-]/g;function EO(e,t,n,r,i,o,a){if(o===t.length)return i===e.length?khe:bvt;var s=`${i},${o}`;if(a[s]!==void 0)return a[s];for(var l=r.charAt(o),c=n.indexOf(l,i),d=0,f,p,v,_;c>=0;)f=EO(e,t,n,r,c+1,o+1,a),f>d&&(c===i?f*=khe:_vt.test(e.charAt(c-1))?(f*=gvt,v=e.slice(i,c-1).match(xvt),v&&i>0&&(f*=Math.pow(IO,v.length))):wvt.test(e.charAt(c-1))?(f*=mvt,_=e.slice(i,c-1).match(She),_&&i>0&&(f*=Math.pow(IO,_.length))):(f*=vvt,i>0&&(f*=Math.pow(IO,c-i))),e.charAt(c)!==t.charAt(o)&&(f*=yvt)),(ff&&(f=p*TO)),f>d&&(d=f),c=n.indexOf(l,c+1);return a[s]=d,d}function Che(e){return e.toLowerCase().replace(She," ")}function kvt(e,t,n){return e=n&&n.length>0?`${e+" "+n.join(" ")}`:e,EO(e,t,Che(e),Che(t),0,0,{})}var Svt=Symbol.for("react.lazy"),RS=pj[" use ".trim().toString()];function Cvt(e){return typeof e=="object"&&e!==null&&"then"in e}function jhe(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===Svt&&"_payload"in e&&Cvt(e._payload)}function jvt(e){const t=Tvt(e),n=m.forwardRef((r,i)=>{let{children:o,...a}=r;jhe(o)&&typeof RS=="function"&&(o=RS(o._payload));const s=m.Children.toArray(o),l=s.find(Evt);if(l){const c=l.props.children,d=s.map(f=>f===l?m.Children.count(c)>1?m.Children.only(null):m.isValidElement(c)?c.props.children:null:f);return u.jsx(t,{...a,ref:i,children:m.isValidElement(c)?m.cloneElement(c,void 0,d):null})}return u.jsx(t,{...a,ref:i,children:o})});return n.displayName=`${e}.Slot`,n}function Tvt(e){const t=m.forwardRef((n,r)=>{let{children:i,...o}=n;if(jhe(i)&&typeof RS=="function"&&(i=RS(i._payload)),m.isValidElement(i)){const a=$vt(i),s=Nvt(o,i.props);return i.type!==m.Fragment&&(s.ref=r?zl(r,a):a),m.cloneElement(i,s)}return m.Children.count(i)>1?m.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Ivt=Symbol("radix.slottable");function Evt(e){return m.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Ivt}function Nvt(e,t){const n={...t};for(const r in t){const i=e[r],o=t[r];/^on[A-Z]/.test(r)?i&&o?n[r]=(...a)=>{const s=o(...a);return i(...a),s}:i&&(n[r]=i):r==="style"?n[r]={...i,...o}:r==="className"&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}function $vt(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Mvt=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ph=Mvt.reduce((e,t)=>{const n=jvt(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),fx='[cmdk-group=""]',NO='[cmdk-group-items=""]',Lvt='[cmdk-group-heading=""]',The='[cmdk-item=""]',Ihe=`${The}:not([aria-disabled="true"])`,$O="cmdk-item-select",T1="data-value",Rvt=(e,t,n)=>kvt(e,t,n),Ehe=m.createContext(void 0),hx=()=>m.useContext(Ehe),Nhe=m.createContext(void 0),MO=()=>m.useContext(Nhe),$he=m.createContext(void 0),Mhe=m.forwardRef((e,t)=>{let n=I1(()=>{var U,ae;return{search:"",value:(ae=(U=e.value)!=null?U:e.defaultValue)!=null?ae:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=I1(()=>new Set),i=I1(()=>new Map),o=I1(()=>new Map),a=I1(()=>new Set),s=Lhe(e),{label:l,children:c,value:d,onValueChange:f,filter:p,shouldFilter:v,loop:_,disablePointerSelection:y=!1,vimBindings:b=!0,...w}=e,x=wo(),S=wo(),C=wo(),j=m.useRef(null),T=Hvt();Mm(()=>{if(d!==void 0){let U=d.trim();n.current.value=U,E.emit()}},[d]),Mm(()=>{T(6,Z)},[]);let E=m.useMemo(()=>({subscribe:U=>(a.current.add(U),()=>a.current.delete(U)),snapshot:()=>n.current,setState:(U,ae,je)=>{var me,ke,he,ue;if(!Object.is(n.current[U],ae)){if(n.current[U]=ae,U==="search")te(),M(),T(1,P);else if(U==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let re=document.getElementById(C);re?re.focus():(me=document.getElementById(x))==null||me.focus()}if(T(7,()=>{var re;n.current.selectedItemId=(re=O())==null?void 0:re.id,E.emit()}),je||T(5,Z),((ke=s.current)==null?void 0:ke.value)!==void 0){let re=ae??"";(ue=(he=s.current).onValueChange)==null||ue.call(he,re);return}}E.emit()}},emit:()=>{a.current.forEach(U=>U())}}),[]),$=m.useMemo(()=>({value:(U,ae,je)=>{var me;ae!==((me=o.current.get(U))==null?void 0:me.value)&&(o.current.set(U,{value:ae,keywords:je}),n.current.filtered.items.set(U,A(ae,je)),T(2,()=>{M(),E.emit()}))},item:(U,ae)=>(r.current.add(U),ae&&(i.current.has(ae)?i.current.get(ae).add(U):i.current.set(ae,new Set([U]))),T(3,()=>{te(),M(),n.current.value||P(),E.emit()}),()=>{o.current.delete(U),r.current.delete(U),n.current.filtered.items.delete(U);let je=O();T(4,()=>{te(),(je==null?void 0:je.getAttribute("id"))===U&&P(),E.emit()})}),group:U=>(i.current.has(U)||i.current.set(U,new Set),()=>{o.current.delete(U),i.current.delete(U)}),filter:()=>s.current.shouldFilter,label:l||e["aria-label"],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:x,inputId:C,labelId:S,listInnerRef:j}),[]);function A(U,ae){var je,me;let ke=(me=(je=s.current)==null?void 0:je.filter)!=null?me:Rvt;return U?ke(U,n.current.search,ae):0}function M(){if(!n.current.search||s.current.shouldFilter===!1)return;let U=n.current.filtered.items,ae=[];n.current.filtered.groups.forEach(me=>{let ke=i.current.get(me),he=0;ke.forEach(ue=>{let re=U.get(ue);he=Math.max(re,he)}),ae.push([me,he])});let je=j.current;J().sort((me,ke)=>{var he,ue;let re=me.getAttribute("id"),ge=ke.getAttribute("id");return((he=U.get(ge))!=null?he:0)-((ue=U.get(re))!=null?ue:0)}).forEach(me=>{let ke=me.closest(NO);ke?ke.appendChild(me.parentElement===ke?me:me.closest(`${NO} > *`)):je.appendChild(me.parentElement===je?me:me.closest(`${NO} > *`))}),ae.sort((me,ke)=>ke[1]-me[1]).forEach(me=>{var ke;let he=(ke=j.current)==null?void 0:ke.querySelector(`${fx}[${T1}="${encodeURIComponent(me[0])}"]`);he==null||he.parentElement.appendChild(he)})}function P(){let U=J().find(je=>je.getAttribute("aria-disabled")!=="true"),ae=U==null?void 0:U.getAttribute(T1);E.setState("value",ae||void 0)}function te(){var U,ae,je,me;if(!n.current.search||s.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let ke=0;for(let he of r.current){let ue=(ae=(U=o.current.get(he))==null?void 0:U.value)!=null?ae:"",re=(me=(je=o.current.get(he))==null?void 0:je.keywords)!=null?me:[],ge=A(ue,re);n.current.filtered.items.set(he,ge),ge>0&&ke++}for(let[he,ue]of i.current)for(let re of ue)if(n.current.filtered.items.get(re)>0){n.current.filtered.groups.add(he);break}n.current.filtered.count=ke}function Z(){var U,ae,je;let me=O();me&&(((U=me.parentElement)==null?void 0:U.firstChild)===me&&((je=(ae=me.closest(fx))==null?void 0:ae.querySelector(Lvt))==null||je.scrollIntoView({block:"nearest"})),me.scrollIntoView({block:"nearest"}))}function O(){var U;return(U=j.current)==null?void 0:U.querySelector(`${The}[aria-selected="true"]`)}function J(){var U;return Array.from(((U=j.current)==null?void 0:U.querySelectorAll(Ihe))||[])}function D(U){let ae=J()[U];ae&&E.setState("value",ae.getAttribute(T1))}function Y(U){var ae;let je=O(),me=J(),ke=me.findIndex(ue=>ue===je),he=me[ke+U];(ae=s.current)!=null&&ae.loop&&(he=ke+U<0?me[me.length-1]:ke+U===me.length?me[0]:me[ke+U]),he&&E.setState("value",he.getAttribute(T1))}function F(U){let ae=O(),je=ae==null?void 0:ae.closest(fx),me;for(;je&&!me;)je=U>0?Wvt(je,fx):Vvt(je,fx),me=je==null?void 0:je.querySelector(Ihe);me?E.setState("value",me.getAttribute(T1)):Y(U)}let H=()=>D(J().length-1),ee=U=>{U.preventDefault(),U.metaKey?H():U.altKey?F(1):Y(1)},ce=U=>{U.preventDefault(),U.metaKey?D(0):U.altKey?F(-1):Y(-1)};return m.createElement(ph.div,{ref:t,tabIndex:-1,...w,"cmdk-root":"",onKeyDown:U=>{var ae;(ae=w.onKeyDown)==null||ae.call(w,U);let je=U.nativeEvent.isComposing||U.keyCode===229;if(!(U.defaultPrevented||je))switch(U.key){case"n":case"j":{b&&U.ctrlKey&&ee(U);break}case"ArrowDown":{ee(U);break}case"p":case"k":{b&&U.ctrlKey&&ce(U);break}case"ArrowUp":{ce(U);break}case"Home":{U.preventDefault(),D(0);break}case"End":{U.preventDefault(),H();break}case"Enter":{U.preventDefault();let me=O();if(me){let ke=new Event($O);me.dispatchEvent(ke)}}}}},m.createElement("label",{"cmdk-label":"",htmlFor:$.inputId,id:$.labelId,style:qvt},l),OS(e,U=>m.createElement(Nhe.Provider,{value:E},m.createElement(Ehe.Provider,{value:$},U))))}),Ovt=m.forwardRef((e,t)=>{var n,r;let i=wo(),o=m.useRef(null),a=m.useContext($he),s=hx(),l=Lhe(e),c=(r=(n=l.current)==null?void 0:n.forceMount)!=null?r:a==null?void 0:a.forceMount;Mm(()=>{if(!c)return s.item(i,a==null?void 0:a.id)},[c]);let d=Rhe(i,o,[e.value,e.children,o],e.keywords),f=MO(),p=mh(T=>T.value&&T.value===d.current),v=mh(T=>c||s.filter()===!1?!0:T.search?T.filtered.items.get(i)>0:!0);m.useEffect(()=>{let T=o.current;if(!(!T||e.disabled))return T.addEventListener($O,_),()=>T.removeEventListener($O,_)},[v,e.onSelect,e.disabled]);function _(){var T,E;y(),(E=(T=l.current).onSelect)==null||E.call(T,d.current)}function y(){f.setState("value",d.current,!0)}if(!v)return null;let{disabled:b,value:w,onSelect:x,forceMount:S,keywords:C,...j}=e;return m.createElement(ph.div,{ref:zl(o,t),...j,id:i,"cmdk-item":"",role:"option","aria-disabled":!!b,"aria-selected":!!p,"data-disabled":!!b,"data-selected":!!p,onPointerMove:b||s.getDisablePointerSelection()?void 0:y,onClick:b?void 0:_},e.children)}),Pvt=m.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...o}=e,a=wo(),s=m.useRef(null),l=m.useRef(null),c=wo(),d=hx(),f=mh(v=>i||d.filter()===!1?!0:v.search?v.filtered.groups.has(a):!0);Mm(()=>d.group(a),[]),Rhe(a,s,[e.value,e.heading,l]);let p=m.useMemo(()=>({id:a,forceMount:i}),[i]);return m.createElement(ph.div,{ref:zl(s,t),...o,"cmdk-group":"",role:"presentation",hidden:f?void 0:!0},n&&m.createElement("div",{ref:l,"cmdk-group-heading":"","aria-hidden":!0,id:c},n),OS(e,v=>m.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?c:void 0},m.createElement($he.Provider,{value:p},v))))}),zvt=m.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=m.useRef(null),o=mh(a=>!a.search);return!n&&!o?null:m.createElement(ph.div,{ref:zl(i,t),...r,"cmdk-separator":"",role:"separator"})}),Dvt=m.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,o=MO(),a=mh(c=>c.search),s=mh(c=>c.selectedItemId),l=hx();return m.useEffect(()=>{e.value!=null&&o.setState("search",e.value)},[e.value]),m.createElement(ph.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":l.listId,"aria-labelledby":l.labelId,"aria-activedescendant":s,id:l.inputId,type:"text",value:i?e.value:a,onChange:c=>{i||o.setState("search",c.target.value),n==null||n(c.target.value)}})}),Avt=m.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...i}=e,o=m.useRef(null),a=m.useRef(null),s=mh(c=>c.selectedItemId),l=hx();return m.useEffect(()=>{if(a.current&&o.current){let c=a.current,d=o.current,f,p=new ResizeObserver(()=>{f=requestAnimationFrame(()=>{let v=c.offsetHeight;d.style.setProperty("--cmdk-list-height",v.toFixed(1)+"px")})});return p.observe(c),()=>{cancelAnimationFrame(f),p.unobserve(c)}}},[]),m.createElement(ph.div,{ref:zl(o,t),...i,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:l.listId},OS(e,c=>m.createElement("div",{ref:zl(a,l.listInnerRef),"cmdk-list-sizer":""},c)))}),Fvt=m.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:o,container:a,...s}=e;return m.createElement(AU,{open:n,onOpenChange:r},m.createElement(FU,{container:a},m.createElement(BU,{"cmdk-overlay":"",className:i}),m.createElement(UU,{"aria-label":e.label,"cmdk-dialog":"",className:o},m.createElement(Mhe,{ref:t,...s}))))}),Bvt=m.forwardRef((e,t)=>mh(n=>n.filtered.count===0)?m.createElement(ph.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Uvt=m.forwardRef((e,t)=>{let{progress:n,children:r,label:i="Loading...",...o}=e;return m.createElement(ph.div,{ref:t,...o,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},OS(e,a=>m.createElement("div",{"aria-hidden":!0},a)))}),gu=Object.assign(Mhe,{List:Avt,Item:Ovt,Input:Dvt,Group:Pvt,Separator:zvt,Dialog:Fvt,Empty:Bvt,Loading:Uvt});function Wvt(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function Vvt(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function Lhe(e){let t=m.useRef(e);return Mm(()=>{t.current=e}),t}var Mm=typeof window>"u"?m.useEffect:m.useLayoutEffect;function I1(e){let t=m.useRef();return t.current===void 0&&(t.current=e()),t}function mh(e){let t=MO(),n=()=>e(t.snapshot());return m.useSyncExternalStore(t.subscribe,n,n)}function Rhe(e,t,n,r=[]){let i=m.useRef(),o=hx();return Mm(()=>{var a;let s=(()=>{var c;for(let d of n){if(typeof d=="string")return d.trim();if(typeof d=="object"&&"current"in d)return d.current?(c=d.current.textContent)==null?void 0:c.trim():i.current}})(),l=r.map(c=>c.trim());o.value(e,s,l),(a=t.current)==null||a.setAttribute(T1,s),i.current=s}),i}var Hvt=()=>{let[e,t]=m.useState(),n=I1(()=>new Map);return Mm(()=>{n.current.forEach(r=>r()),n.current=new Map},[e]),(r,i)=>{n.current.set(r,i),t({})}};function Zvt(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function OS({asChild:e,children:t},n){return e&&m.isValidElement(t)?m.cloneElement(Zvt(t),{ref:t.ref},n(t.props.children)):n(t)}var qvt={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const Gvt="_dropdownButton_1yasw_1",Yvt="_input-container_1yasw_6",Kvt="_sm_1yasw_20",Xvt="_content_1yasw_68",Jvt="_tooltip-open_1yasw_135",E1={dropdownButton:Gvt,inputContainer:Yvt,sm:Kvt,content:Xvt,tooltipOpen:Jvt},Qvt="_text_1k6sv_1",eyt="_faded_1k6sv_7",tyt="_ellipsis_1k6sv_11",LO={text:Qvt,faded:eyt,ellipsis:tyt};function Ohe({textSegments:e,truncateLastSegment:t}){return u.jsx(V,{flexGrow:"1",minWidth:"0",maxWidth:"100%",wrap:"nowrap",className:LO.text,"aria-label":e.map(({text:n})=>n).join(""),children:e.map(({text:n,faded:r},i)=>n?u.jsx(q,{className:Te({[LO.faded]:r,[LO.ellipsis]:i===e.length-1&&t}),children:n},i):null)})}const px=8,nyt=2,Phe=2;function ryt(e,{signature:t,optionValue:n,txnIdxCount:r}){const i=r>1,o=e.trim().toLowerCase(),a=n.toLowerCase(),s=v=>{i&&v.push({text:`${uk}(${r})`,faded:!0})};if(o.length===a.length||o.length>px){const v=[{text:`${t.substring(0,px)}...${t.substring(t.length-px)}`}];return s(v),v}const l=a.indexOf(o),c=l+o.length,d=[{start:0,end:Math.min(px,t.length)},{start:Math.max(0,Math.min(l-Phe,t.length)),end:Math.min(t.length,Math.min(c+Phe,t.length))},{start:Math.max(0,t.length-px),end:t.length}].filter(v=>v.end>v.start).sort((v,_)=>v.start-_.start),f=[];for(const v of d){if(!f.length){f.push({...v});continue}const _=f[f.length-1],y=v.start-_.end;y<=0||y<=nyt?_.end=Math.max(_.end,v.end):f.push({...v})}const p=[];for(let v=0;v0&&p.push({text:"...",faded:!0});const y=Math.max(_.start,Math.min(l,_.end)),b=Math.max(_.start,Math.min(c,_.end));b>y?(_.startv)}function iyt(e){return function(t){return u.jsx(Ohe,{textSegments:ryt(t,e)})}}function zhe(e,t){if(t=t.trim(),!t)return;if(t.includes(".")){const s=e.indexOf(t);return s<0?void 0:{startIdx:s,endIdx:s+t.length}}const n=[];let r="";for(let s=0;s="0"&&l<="9"&&(r+=l,n.push(s))}const i=r.indexOf(t);if(i<0)return;const o=n[i],a=n[i+t.length-1]+1;return{startIdx:o,endIdx:a}}function oyt(e,t,n){return function(r){const i=zhe(e,r),o=t>1,a=(i==null?void 0:i.startIdx)??-1,s=(i==null?void 0:i.endIdx)??-1,l=[{text:e.substring(0,a),faded:!0},{text:e.substring(a,s)},{text:e.substring(s),faded:!0},{text:o?`${uk}(${t})`:"",faded:!0},{text:n?`${uk}${n}`:""}];return u.jsx(Ohe,{textSegments:l,truncateLastSegment:!0})}}const ayt=["All","Success","Errors"],RO=["All","Yes","No"];var Mn=(e=>(e.TxnSignature="Txn Sig",e.Error="Error",e.Income="Income",e.Ip="IPv4",e.Tpu="TPU",e))(Mn||{});const syt="errorState",OO="bundle",lyt="landed",uyt="vote",PO="focusBank",mx="search",Dhe="arrival",cyt={triggerControl:()=>{},registerControl:()=>()=>{},resetControl:()=>{},resetAllControls:()=>{}},N1=m.createContext(cyt);function PS(e,t,n){const{registerControl:r}=m.useContext(N1),i=m.useRef(t);i.current=t;const o=m.useRef(n);o.current=n;const[a,s]=m.useState(!1),l=m.useCallback(()=>s(!1),[]);return m.useEffect(()=>r(e,c=>{i.current(c),s(!0)},()=>{o.current(),s(!1)}),[e,r]),{isTooltipOpen:a,closeTooltip:l}}const dyt=30,fyt=20,Ahe=[Mn.TxnSignature,Mn.Ip],Fhe=[Mn.Income],Bhe=[Mn.TxnSignature,Mn.Error,Mn.Income,Mn.Ip,Mn.Tpu],hyt={[Mn.TxnSignature]:"2ZwHLf3Qw7ZE8s3PWW81ELCmGiVhaDS9LWMK4McGL9ySmqvTZSZf3S9EWks4TFbyJt7U6i5RPuLk7PgWVBdy9HY5",[Mn.Error]:"",[Mn.Income]:"Rank #",[Mn.Ip]:"192.0.2.1",[Mn.Tpu]:"udp"};function Uhe({transactions:e,size:t="lg"}){const n=m.useRef(null),[r,i]=m.useState(!1),[o,a]=m.useState(!1),[s,l]=m.useState(""),[c,d]=Uie(s,500),[f,p]=m.useState(),[v,_]=m.useState(Mn.TxnSignature),y=X(_O),b=X(XN),w=X(jg),x=Ee(Ls),S=m.useRef(null),C=m.useRef(null),j=m.useRef(!1),{triggerControl:T,resetControl:E}=m.useContext(N1),$=m.useCallback(ye=>{const Se=ye.mode===Mn.TxnSignature?e.txn_signature:ye.mode===Mn.Ip?e.txn_source_ipv4:void 0;return Se?Se.reduce((Ce,Be,Ge)=>(Be===ye.text&&Ce.push(Ge),Ce),[]):[]},[e.txn_signature,e.txn_source_ipv4]),A=m.useCallback(ye=>{var Ge,xt,St;const Se=e.txn_bank_idx[ye],Ce=document.getElementById(bO(Se)),Be=(Ge=Ce==null?void 0:Ce.getElementsByTagName("canvas"))==null?void 0:Ge[0];if(Ce&&Be){if(!Rze(Be)){Be.scrollIntoView({block:"nearest"});const ut=Be.getBoundingClientRect(),ct=(xt=document.getElementById("transaction-bars-controls"))==null?void 0:xt.getBoundingClientRect();ct&&ct.top-epe<=0&&ut.top{if(Se!==ct){ut.redraw();return}const bt=ut.scales[Vt],Qe=bt.min??-1/0,Ke=bt.max??1/0,De=Ke-Qe,Dt=e.txn_from_bundle[ye]&&e.txn_microblock_id[ye-1]!==e.txn_microblock_id[ye],pn=e.txn_from_bundle[ye]&&e.txn_microblock_id[ye+1]!==e.txn_microblock_id[ye],Yn=Number((Dt||!e.txn_from_bundle[ye]?e.txn_mb_start_timestamps_nanos[ye]:e.txn_preload_end_timestamps_nanos[ye])-e.start_timestamp_nanos),fr=Number((pn||!e.txn_from_bundle[ye]?e.txn_mb_end_timestamps_nanos[ye]:e.txn_end_timestamps_nanos[ye])-e.start_timestamp_nanos),Kn=(fr-Yn)*dyt,wr=(fr-Yn)*fyt,Pn=frKe,$r=De>Kn,tr=De{if(Pn||$r||tr){let kr=Math.max(ut.data[0][0],Yn-Kn/2);const ni=kr+Kn;ni>ut.data[0][ut.data[0].length-1]&&(kr=ni-Kn),ut.setScale(Vt,{min:kr,max:ni})}xhe(ye)})})},[e,T,x]),M=m.useCallback(ye=>{const Se={current:0,total:ye.length-1,txnIdxs:ye};p(Se);const Ce=ye[Se.current];A(Ce)},[A]),P=m.useCallback(ye=>{var Ce;const Se=$(ye);Se.length&&(l(ye.text),_(ye.mode),M(Se),j.current=!0,(Ce=n.current)==null||Ce.focus())},[$,M]),te=m.useCallback(()=>{E(PO),E(Dhe),xhe(void 0),p(void 0),a(!1)},[E]),Z=m.useCallback(()=>{te(),l(""),d(""),x((ye,Se)=>{ye.setScale(Vt,{min:ye.data[0][0],max:ye.data[0][ye.data[0].length-1]})})},[te,d,x]),{isTooltipOpen:O,closeTooltip:J}=PS(mx,P,Z);m.useEffect(()=>{y&&(f!=null&&f.txnIdxs.some(ye=>!y.has(ye)))&&Z()},[y,Z,f==null?void 0:f.txnIdxs]),m.useEffect(()=>{f===void 0&&Fhe.includes(v)&&_(Bhe[0])},[f,v]);const D=m.useCallback((ye,Se,Ce)=>ye.reduce((Be,Ge,xt)=>{var ct;if(y&&!y.has(xt)||Ce!=null&&Ce(Ge))return Be;const St=((ct=Be[Ge])==null?void 0:ct.txnIdxs)??[];St.push(xt);const ut=Se(Ge,St);return Be[Ge]=ut,Be},{}),[y]),Y=m.useMemo(()=>D(e.txn_signature,(ye,Se)=>{const Ce=ye.toLowerCase();return{getLabelEl:iyt({signature:ye,optionValue:Ce,txnIdxCount:Se.length}),txnIdxs:Se,signatureLower:Ce,signature:ye}}),[D,e.txn_signature]),F=m.useMemo(()=>D(e.txn_error_code,(ye,Se)=>({txnIdxs:Se,label:sN[ye]}),ye=>ye===0),[D,e.txn_error_code]),H=m.useMemo(()=>{const ye=b.reduce((Se,Ce)=>{var Ge,xt;if(!Ce.gossip||!((Ge=Ce.info)!=null&&Ge.name))return Se;const Be=Object.values(Ce.gossip.sockets);for(const St of Be)Se.set(HN(St),(xt=Ce.info)==null?void 0:xt.name);return Se},new Map);return D(e.txn_source_ipv4,(Se,Ce)=>{var Be;return{getLabelEl:oyt(Se,Ce.length,ye.get(Se)),txnIdxs:Ce,label:`${Se} ${ye.get(Se)??""}`,queryValue:`${Se}${(Be=ye.get(Se)??"")==null?void 0:Be.toLowerCase()}`}})},[D,b,e.txn_source_ipv4]),ee=m.useMemo(()=>D(e.txn_source_tpu,(ye,Se)=>({txnIdxs:Se,label:ye})),[D,e.txn_source_tpu]),ce=m.useMemo(()=>e.txn_transaction_fee.reduce((ye,Se,Ce)=>(y&&!y.has(Ce)||ye.push({txnIdx:Ce,income:Number(md(e,Ce))}),ye),[]).sort(({income:ye},{income:Se})=>Se-ye),[y,e]),U=m.useCallback((ye,Se)=>{switch(l(ye),d(ye),i(!1),a(!0),v){case Mn.TxnSignature:{const Ce=Y[ye].txnIdxs;M(Ce);break}case Mn.Error:{if(Se!==void 0){const Ce=F[Number(Se)].txnIdxs;M(Ce)}break}case Mn.Ip:{const Ce=H[Se??ye];if(Ce){const Be=Ce.txnIdxs;M(Be)}break}case Mn.Tpu:{if(Se!==void 0){const Ce=ee[Se].txnIdxs;M(Ce)}break}case Mn.Income:break}},[d,v,Y,M,F,H,ee]),ae=ye=>()=>{p(Se=>{if(!Se)return;let{current:Ce,total:Be,txnIdxs:Ge}=Se;ye==="prev"?Ce--:ye==="next"&&Ce++,Ce>Be&&(Ce=0),Ce<0&&(Ce=Be);const xt=Ge[Ce];return A(xt),{current:Ce,total:Be,txnIdxs:Ge}})},je=ye=>()=>{switch(_(ye),Z(),ye){case Mn.TxnSignature:case Mn.Ip:case Mn.Error:case Mn.Tpu:{pe.current=!0,i(!0),setTimeout(()=>{var Se;(Se=n.current)==null||Se.focus()},250);break}case Mn.Income:{const Se=ce.map(({txnIdx:Be})=>Be);p({current:0,total:Se.length,txnIdxs:Se});const Ce=Se[0];A(Ce);break}}},me=Ahe.includes(v),ke=me&&s!==c,he=r&&!me||!ke,ue=f&&f.total>0,re=s||Fhe.includes(v),ge=!Ahe.includes(v),$e=m.useRef(ge);$e.current=ge;const pe=m.useRef(!1);return u.jsxs(V,{children:[u.jsxs(GZ,{children:[u.jsx(YZ,{children:u.jsxs(hs,{variant:"surface",className:E1.dropdownButton,onFocusCapture:ye=>ye.preventDefault(),onFocus:ye=>{ye.preventDefault()},children:[v,u.jsx(U7,{})]})}),u.jsx(XZ,{onCloseAutoFocus:ye=>ye.preventDefault(),children:Bhe.map(ye=>u.jsx(JZ,{onSelect:je(ye),children:ye},ye))})]}),u.jsx(gu,{loop:!0,className:E1.root,shouldFilter:!1,ref:S,children:u.jsxs(l7,{open:r,onOpenChange:ye=>i(ye),children:[u.jsx(DV,{asChild:!0,children:u.jsx(V,{children:u.jsx(ui,{className:cx.chartControlTooltip,content:`Applied: ${v}`,open:O,side:"bottom",children:u.jsxs(V,{align:"center",className:Te(E1.inputContainer,"rt-TextFieldRoot","rt-variant-surface",{[E1.sm]:t==="sm",[E1.tooltipOpen]:O}),children:[u.jsx(gu.Input,{placeholder:hyt[v],onFocus:()=>{j.current?j.current=!1:i(!0)},onKeyDown:ye=>{ye.key==="Enter"&&i(!0)},value:s,onValueChange:ye=>{l(ye),te(),i(!0)},onBlur:J,readOnly:ge,ref:n}),(ue||re)&&u.jsxs(V,{align:"center",children:[ue&&u.jsxs(u.Fragment,{children:[u.jsxs(q,{style:{paddingRight:"var(--space-2)",cursor:"default"},children:[f.current+1,"\xA0of\xA0",f.total+1]}),u.jsx(nl,{onClick:ae("prev"),variant:"ghost",onKeyDown:ye=>{ye.key==="Enter"&&ae("prev")()},children:u.jsx(YFe,{})}),u.jsx(nl,{onClick:ae("next"),variant:"ghost",onKeyDown:ye=>{ye.key==="Enter"&&ae("next")()},children:u.jsx(Hie,{})})]}),re&&u.jsx(nl,{onClick:Z,variant:"ghost",onKeyDown:ye=>{ye.key==="Enter"&&Z()},children:u.jsx(B$,{})})]})]})})})}),u.jsx(u7,{container:w,children:u.jsx(c7,{className:E1.content,onOpenAutoFocus:ye=>{pe.current?setTimeout(()=>{pe.current=!1},250):ye.preventDefault()},onInteractOutside:ye=>{(ye.target===n.current||pe.current)&&ye.preventDefault()},style:{outline:"unset"},children:u.jsxs(gu.List,{ref:C,style:{maxHeight:"min(300px, var(--radix-popover-content-available-height))"},children:[s.length>1&&ke&&u.jsx(gu.Loading,{children:u.jsx(q,{children:"Loading..."})}),he&&u.jsxs(u.Fragment,{children:[v===Mn.TxnSignature&&u.jsx(pyt,{optionMap:Y,inputValue:c,onSelect:U,showAllOptions:o}),v===Mn.Error&&u.jsx(Whe,{onSelect:U,optionMap:F}),v===Mn.Ip&&u.jsx(myt,{onSelect:U,optionMap:H,inputValue:c,showAllOptions:o}),v===Mn.Tpu&&u.jsx(Whe,{onSelect:U,optionMap:ee})]})]})})})]})})]})}const pyt=m.memo(function({optionMap:e,inputValue:t,onSelect:n,showAllOptions:r}){const i=m.useMemo(()=>Object.entries(e),[e]),o=t.toLowerCase();function a([,{signatureLower:c}]){return r||c.includes(o)}function s([,{signatureLower:c}]){return c===o?3:c.startsWith(o)||c.endsWith(o)?2:c.includes(o)?1:0}function l(c,d){return s(d)-s(c)}return u.jsxs(u.Fragment,{children:[!!i.length&&u.jsx(gu.Group,{heading:"Results",children:i.filter(a).sort(l).map(([,{getLabelEl:c,signatureLower:d,signature:f}],p)=>{if(!(p>100))return u.jsx(gu.Item,{value:d,onSelect:()=>{n(f)},children:c(r?"":t)},f)})}),u.jsx(gu.Empty,{children:"No results found."})]})}),myt=m.memo(function({optionMap:e,inputValue:t,onSelect:n,showAllOptions:r}){const i=m.useMemo(()=>Object.entries(e),[e]),o=t.trim().toLowerCase();function a([,{label:c,queryValue:d}]){return r||!!zhe(c,o)||d.includes(o)}function s([,{label:c,txnIdxs:d}]){return c===o?1/0:d.length>1?3+d.length:c.startsWith(o)||c.endsWith(o)?2:c.includes(o)?1:0}function l(c,d){return s(d)-s(c)}return u.jsxs(u.Fragment,{children:[!!i.length&&u.jsx(gu.Group,{heading:"Results",children:i.filter(a).sort(l).map(([c,{getLabelEl:d,label:f}],p)=>{if(!(p>100))return u.jsx(gu.Item,{value:f,onSelect:()=>{n(f,c)},children:d(r?"":t)},f)})}),u.jsx(gu.Empty,{children:"No results found."})]})}),Whe=m.memo(function({onSelect:e,optionMap:t}){return m.useMemo(()=>Object.entries(t),[t]).map(([n,{label:r,txnIdxs:i}],o)=>u.jsx(gu.Item,{onSelect:()=>{e(r,n)},children:u.jsxs(q,{children:[r," (",i.length,")"]})},n))});function zS(e,t,n){const r=m.useRef(null),i=m.useCallback(s=>{var l,c;t(s),(l=r.current)==null||l.focus(s),(c=document.getElementById(bO(0)))==null||c.scrollIntoView({behavior:"smooth",block:"nearest"})},[t]),{isTooltipOpen:o,closeTooltip:a}=PS(e,i,n);return{isTooltipOpen:o,closeTooltip:a,toggleGroupRef:r}}function gyt(e){const[t,n]=m.useState(!1);return u.jsxs(u.Fragment,{children:[u.jsx("div",{className:cx.minimizeButton,children:u.jsx(nl,{variant:"ghost",onClick:()=>n(r=>!r),children:t?u.jsx(A$,{}):u.jsx(F$,{})})}),!t&&u.jsx(vyt,{...e})]})}function vyt(e){const{transactions:t,maxTs:n}=e,r=Ee(ax),i=Ee(xO),o=Ee(ES),a=Ee(CO),s=Ee(jO);return Pg(()=>{r(dhe),B1t(),i(1),o(void 0),wO(0),a(-1),s(dn.DEFAULT)}),Hn("(max-width: 500px)")?u.jsx(yyt,{...e}):u.jsxs(V,{gap:"2",align:"center",wrap:"wrap",children:[u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Vhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Zhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(qhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Ghe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Yhe,{transactions:t}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Khe,{transactions:t}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Jhe,{transactions:t}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Hhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Uhe,{transactions:t})]})}function yyt({transactions:e,maxTs:t}){return u.jsxs(V,{direction:"column",gap:"3",children:[u.jsx(Vhe,{transactions:e,maxTs:t}),u.jsx(Zhe,{transactions:e,maxTs:t,isMobileView:!0}),u.jsx(qhe,{transactions:e,maxTs:t,isMobileView:!0}),u.jsx(Ghe,{transactions:e,maxTs:t,isMobileView:!0}),u.jsx(Yhe,{transactions:e}),u.jsx(Khe,{transactions:e}),u.jsx("div",{style:{marginBottom:"8px"},children:u.jsx(Jhe,{transactions:e})}),u.jsx(Hhe,{transactions:e,maxTs:t}),u.jsx(Uhe,{transactions:e,size:"sm"})]})}function Vhe({transactions:e,maxTs:t}){const n=Ee(Ls),r=Ee(O1t),[i,o]=m.useState("All"),a=m.useCallback(d=>{if(!e)return;o(d);const f=d==="Success"?"No":d==="Errors"?"Yes":"All";n((p,v)=>r(p,e,v,t,f))},[r,t,e,n]),{isTooltipOpen:s,closeTooltip:l,toggleGroupRef:c}=zS(syt,a,()=>a("All"));return u.jsxs(V,{gap:"2",children:[u.jsx(LS,{ref:c,options:ayt,optionColors:{Success:$N,Errors:MN},value:i,onChange:d=>d&&a(d),isTooltipOpen:s,closeTooltip:l}),u.jsx(byt,{transactions:e,isDisabled:i==="Success"})]})}function byt({transactions:e,isDisabled:t}){const n=Ee(y6),r=X(_O),[i,o]=m.useState("0"),a=m.useMemo(()=>{if(r!=null&&r.size){const s=e.txn_error_code.filter((l,c)=>r.has(c));return rt.groupBy(s)}return rt.groupBy(e.txn_error_code)},[r,e.txn_error_code]);return m.useEffect(()=>{a[S1]||(o("0"),wO(0))},[a]),u.jsxs(H7,{onValueChange:s=>{o(s),wO(Number(s)),n(l=>l.redraw())},size:"1",value:i,disabled:t,children:[u.jsx(Z7,{placeholder:"Txn State",style:{height:"22px",width:"90px"}}),u.jsx(q7,{children:u.jsxs(G7,{children:[u.jsx(My,{value:"0",children:"None"}),Object.keys(a).map(s=>s==="0"?null:u.jsxs(My,{value:`${s}`,children:[sN[s]," (",a[s].length,")"]},s))]})})]})}const zO="none";function Hhe({transactions:e,maxTs:t}){const n=Ee(y6),r=X(_O),[i,o]=m.useState(zO),a=m.useMemo(()=>{if(r!=null&&r.size){const s=e.txn_source_tpu.filter((l,c)=>r.has(c));return rt.groupBy(s)}return rt.groupBy(e.txn_source_tpu)},[r,e.txn_source_tpu]);return m.useEffect(()=>{a[C1]||(o(""),_he(""))},[a]),u.jsxs(V,{gap:"2",align:"center",children:[u.jsx(q,{className:SO.label,children:"TPU"}),u.jsxs(H7,{onValueChange:s=>{o(s),_he(s===zO?"":s),n(l=>l.redraw())},size:"1",value:i,children:[u.jsx(Z7,{placeholder:"TPU",style:{height:"22px",width:"90px"}}),u.jsx(q7,{children:u.jsxs(G7,{children:[u.jsx(My,{value:zO,children:"None"}),Object.keys(a).map(s=>u.jsxs(My,{value:s,children:[s," (",a[s].length,")"]},s))]})})]})]})}function Zhe({transactions:e,maxTs:t,isMobileView:n}){const[r,i]=m.useState("All"),o=Ee(Ls),a=Ee(P1t),s=m.useCallback(f=>{e&&(i(f),o((p,v)=>a(p,e,v,t,f)))},[a,t,e,o]),{isTooltipOpen:l,closeTooltip:c,toggleGroupRef:d}=zS(OO,s,()=>s("All"));return u.jsx(LS,{ref:d,label:"Bundle",options:RO,value:r,onChange:f=>f&&s(f),isTooltipOpen:l,closeTooltip:c,hasMinTextWidth:n})}function qhe({transactions:e,maxTs:t,isMobileView:n}){const r=Ee(Ls),i=Ee(z1t),[o,a]=m.useState("All"),s=m.useCallback(f=>{e&&(a(f),r((p,v)=>i(p,e,v,t,f)))},[i,t,e,r]),{isTooltipOpen:l,closeTooltip:c,toggleGroupRef:d}=zS(lyt,s,()=>s("All"));return u.jsx(LS,{ref:d,label:"Landed",options:RO,value:o,onChange:f=>f&&s(f),isTooltipOpen:l,closeTooltip:c,hasMinTextWidth:n})}function Ghe({transactions:e,maxTs:t,isMobileView:n}){const r=Ee(Ls),i=Ee(D1t),[o,a]=m.useState("All"),s=m.useCallback(f=>{e&&(a(f),r((p,v)=>i(p,e,v,t,f)))},[i,t,e,r]),{isTooltipOpen:l,closeTooltip:c,toggleGroupRef:d}=zS(uyt,s,()=>s("All"));return u.jsx(LS,{ref:d,label:"Vote",options:RO,value:o,onChange:f=>f&&s(f),isTooltipOpen:l,closeTooltip:c,hasMinTextWidth:n})}function Yhe({transactions:e}){return u.jsxs(V,{gap:"2",children:[u.jsx(_yt,{transactions:e}),u.jsx(xyt,{transactions:e}),u.jsx(Syt,{transactions:e})]})}function _yt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Ls),i=Ee(U1t),o=Ee(lx),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.FEES)})};return u.jsx(dx,{label:"Fees",checked:t,onCheckedChange:a,color:kg})}function xyt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Ls),i=Ee(W1t),o=Ee(lx),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.TIPS)})};return u.jsx(dx,{label:"Tips",checked:t,onCheckedChange:a,color:Gf})}function Khe({transactions:e}){return u.jsxs(V,{gap:"2",children:[u.jsx(q,{className:SO.label,children:"CU"}),u.jsx(wyt,{transactions:e}),u.jsx(kyt,{transactions:e})]})}function wyt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Ls),i=Ee(V1t),o=Ee(lx),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.CUS_CONSUMED)})};return u.jsx(dx,{label:"Consumed",checked:t,onCheckedChange:a,color:pd})}function kyt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Ls),i=Ee(H1t),o=Ee(lx),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.CUS_REQUESTED)})};return u.jsx(dx,{label:"Requested",checked:t,onCheckedChange:a,color:mk})}function Syt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Ls),i=Ee(Z1t),o=Ee(lx),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.INCOME_CUS)})};return u.jsx(dx,{label:"Income per CU",checked:t,onCheckedChange:a,color:kp})}const Lm=12,Xhe=100;function Cyt({transactions:e,sliderMin:t,sliderMax:n,beforeZeroMulti:r,bboxWidth:i}){const o=m.useMemo(()=>{if(t>=n||!e.txn_arrival_timestamps_nanos.length)return;const a=n-t;function s(f){return f>=0?f:f/r}const l=e.txn_arrival_timestamps_nanos.reduce((f,p)=>{const v=(s(Number(p-e.start_timestamp_nanos))-t)/a,_=Math.trunc(v*Xhe);return f[_]+=1,f},new Array(Xhe).fill(0)),c=rt.max(l)??1,d=l.reduce((f,p,v)=>{const _=i*((v+1)/l.length),y=Lm-Lm*(p/c);return f+`${_},${y} `},"");return`0,${Lm}, ${d}, ${i},${Lm}`},[i,r,n,t,e.start_timestamp_nanos,e.txn_arrival_timestamps_nanos]);return u.jsx("svg",{height:`${Lm}px`,width:"100%",viewBox:`0 0 ${i} ${Lm}`,xmlns:"http://www.w3.org/2000/svg",style:{marginBottom:"-5px",borderRadius:"4px"},children:u.jsx("polyline",{points:o,fill:"rgba(186, 167, 255, 0.5)",stroke:"rgb(186, 167, 255)",strokeWidth:".5"})})}const DO=.3,jyt=.025;function Jhe({transactions:e}){const t=m.useMemo(()=>fO(e),[e]),n=m.useMemo(()=>-Math.ceil(t*DO),[t]),[r,i]=m.useState([n,t]),o=Ee(Ls),a=Ee(A1t),[s,{width:l}]=Ss(),c=`${Math.ceil(DO/(1+DO)*100)}%`,d=m.useMemo(()=>{if(!e.txn_arrival_timestamps_nanos.length)return 0;const j=e.txn_arrival_timestamps_nanos.reduce((T,E)=>Ej<0?p*j:j,[p]),_=m.useCallback(j=>{if(!(j.length<2))return{min:v(j[0]),max:v(j[1])}},[v]),y=m.useCallback(j=>`${Math.round(v(j)/1e6).toLocaleString()} ms`,[v]),b=y(r[0]),w=y(r[1]),x=m.useCallback(j=>{o((T,E)=>a(T,e,E,t,_(j)))},[a,_,e,t,o]),S=Ua(j=>{requestAnimationFrame(()=>x(j))},100,{leading:!1,trailing:!0}),C=m.useCallback(j=>{i(j),x(j)},[x]);return m.useEffect(()=>{C([n,t])},[n,t,C]),PS(Dhe,C,()=>C([n,t])),u.jsxs(V,{align:"center",gap:"2",children:[u.jsx(q,{className:cx.arrivalLabel,children:"Arrival"}),u.jsxs("div",{className:cx.slider,ref:s,style:{"--slot-start-pct":c,marginTop:`-${Lm+6}px`,"--min-value-label":`"${b}"`,"--max-value-label":`"${w}"`},children:[u.jsx(Cyt,{transactions:e,sliderMin:n,sliderMax:t,beforeZeroMulti:p,bboxWidth:l}),u.jsx(nq,{style:{"--slider-track-size":"4px"},value:r,min:n,max:t,onValueChange:j=>{const T=j[0]!==r[0]?0:1;Math.abs(j[T]){const $=E.valToPos(j[T],Vt);E.setCursor({left:$,top:0})}),S(j)}})]})]})}function Tyt({transactionsRef:e,setTxnIdx:t,setTxnState:n,transactionsBundleStats:r}){function i(o,a,s){var d,f;let l=o.data[1][s];o.data[0][s]>a&&(l=o.data[1][s-1]),l==null&&o.data[1][s-1]!=null&&(l=o.data[1][s-1]);const c=((d=o.cursor.idxs)==null?void 0:d.length)&&o.cursor.idxs[1]===void 0;if(l==null||!e.current||c)return!1;{const p=ihe(a,e.current,l,(f=r[l])==null?void 0:f.bundleTxnIdx);return n(p),t(l),!0}}return ix({elId:"txn-bars-tooltip",closeTooltipElId:"txn-bars-tooltip-close",showOnCursor:i,showPointer:!0})}const DS=20;function Iyt({bankIdx:e,transactions:t,maxTs:n,isFirstChart:r,isLastChart:i,hide:o,isSelected:a,isFocused:s}){const l=r||i,c=X(Hfe)-DS,d=X(Zfe)-DS,f=Ee(CO),p=Ee(jO),v=m.useRef(null),_=m.useRef(t);_.current=t;const y=m.useMemo(()=>jS(t,e,n,Object.values(ca().get(ax))),[e,n,t]),b=m.useCallback(C=>{C.setData(jS(t,e,n,Object.values(ca().get(ax))),!1)},[e,n,t]),w=m.useMemo(()=>t.txn_from_bundle.map((C,j)=>{if(C)return SS(t,j)}),[t]),x=m.useMemo(()=>{if(y!=null&&y.length)return{width:0,height:0,class:tO.chart,drawOrder:["series","axes"],scales:{[Vt]:{time:!1}},axes:[{scale:Vt,stroke:sr,values:(C,j)=>l?j.map(T=>N1t(T,1e6)+"ms"):[],size:l?40:0,space:100,grid:{stroke:Rne},border:{show:!0,width:1/devicePixelRatio,stroke:sr},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},side:r?0:2},{border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:"rgba(0,0,0,0)"}],legend:{markers:{width:0},show:!1},padding:[0,DS,0,DS],series:[{scale:Vt},{label:`Bank ${e}`},{}],plugins:[nvt(_,w),Tyt({transactionsRef:_,setTxnIdx:f,setTxnState:p,transactionsBundleStats:w}),nO(),lO({factor:.75}),cO(),pO()],hooks:{ready:[C=>{requestAnimationFrame(()=>{F1t(C,e)})}]}}},[e,y==null?void 0:y.length,r,l,f,p,w]),S=X(xO);return!y||!x||o?null:u.jsx("div",{style:{flex:1,marginLeft:`${c}px`,marginRight:`${d}px`,display:o?"none":"block",height:a?`${Math.max(2,S)*90+40}px`:l?"170px":"130px"},ref:v,children:u.jsx($s,{children:({height:C,width:j})=>(x.width=j,x.height=C,u.jsx(u.Fragment,{children:u.jsx(Pp,{id:bO(e),className:Te(s&&tO.focused),options:x,data:y,onCreate:b})}))})})}const Eyt="_container_14qh6_1",Nyt="_label_14qh6_10",Qhe={container:Eyt,label:Nyt};function $yt({setSelected:e,bankIdx:t,isSelected:n}){return u.jsxs("div",{className:Qhe.container,children:[u.jsxs(q,{className:Qhe.label,children:["Bank ",t]}),u.jsx(hs,{variant:"ghost",size:"1",onClick:()=>e(),children:n?u.jsx(lBe,{color:"grey"}):u.jsx(aBe,{color:"grey"})})]})}const Myt=kb+Sb,epe=Myt+Ute;function Lyt(){var d,f,p,v,_;const[e,t]=m.useState();PS(PO,y=>t(y),()=>t(void 0));const n=X(Cn),r=pl(n),i=m.useRef((d=r.response)==null?void 0:d.transactions);i.current=(f=r.response)==null?void 0:f.transactions;const o=X(Nb)[To.bank],a=Ee(che),s=m.useMemo(()=>{var y;return(y=r.response)!=null&&y.transactions?fO(r.response.transactions,!0):0},[(p=r.response)==null?void 0:p.transactions]);m.useMemo(()=>{var b;if(!((b=r.response)!=null&&b.transactions))return;const y=[];for(let w=0;w{var w;if((w=r.response)!=null&&w.transactions&&!(l!==void 0&&l!==b))return u.jsxs("div",{style:{position:"relative"},children:[(l===void 0||l===b)&&u.jsx($yt,{bankIdx:b,setSelected:()=>c(x=>x===void 0?b:void 0),isSelected:l===b}),u.jsx(Iyt,{bankIdx:b,transactions:r.response.transactions,maxTs:s,isFirstChart:b===0&&o>1,isLastChart:b===o-1||l!==void 0,isSelected:l===b,hide:l!==void 0&&l!==b,isFocused:e===b},`${b}`)]},b)})]}):null}const Ryt="_state_1bdpv_11",Oyt="_cu-bars_1bdpv_24",Pyt="_duration-container_1bdpv_30",zyt="_value-text_1bdpv_38",Dyt="_unit_1bdpv_42",gx={state:Ryt,cuBars:Oyt,durationContainer:Pyt,valueText:zyt,unit:Dyt},Ayt="_separator_1pgc5_1",Fyt={separator:Ayt};function Rm({my:e,mb:t}){return u.jsx(ps,{size:"4",my:e??"1",mb:t,className:Fyt.separator})}function Byt(){var s,l;const e=X(Cn),t=pl(e),n=X(CO),r=X(jO),i=(s=t.response)==null?void 0:s.transactions,o=m.useMemo(()=>{if(i&&!(n<0)&&i.txn_from_bundle[n])return SS(i,n)},[i,n]),a=i!=null&&i.txn_arrival_timestamps_nanos[n]?kk(i.txn_arrival_timestamps_nanos[n]):void 0;return u.jsx(ox,{elId:"txn-bars-tooltip",children:(i==null?void 0:i.txn_bank_idx[n])!=null&&u.jsxs(V,{direction:"column",children:[u.jsxs(V,{justify:"between",children:[u.jsx(q,{className:gx.state,style:{color:va[r]},children:r}),u.jsx(hs,{variant:"ghost",size:"1",id:"txn-bars-tooltip-close",children:u.jsx(nBe,{color:sr})})]}),u.jsx(Rm,{}),u.jsxs(V,{direction:"column",children:[u.jsx(Zyt,{txnIdx:n,transactions:i}),u.jsx(AO,{label:"Bundle",value:i.txn_from_bundle[n],append:o?`(${o.order} of ${o.totalCount})`:void 0}),u.jsx(AO,{label:"Vote",value:i.txn_is_simple_vote[n]}),u.jsx(AO,{label:"Landed",value:i.txn_landed[n]}),u.jsx(Rm,{}),u.jsx(Ur,{label:"Fees",value:`${(i.txn_priority_fee[n]+i.txn_transaction_fee[n]).toLocaleString()}`,color:kg}),u.jsx(Ur,{label:"Tips",value:`${(l=i.txn_tips[n])==null?void 0:l.toLocaleString()}`,color:Gf}),u.jsx(Rm,{}),u.jsx(Vyt,{transactions:i,txnIdx:n}),u.jsx(Rm,{}),u.jsx(Ur,{label:"Txn Index",value:`${n}`}),u.jsx(Ur,{label:"Microblock ID",value:`${i.txn_microblock_id[n]}`}),u.jsx(Ur,{label:"Bank ID",value:`${i.txn_bank_idx[n]}`}),u.jsx(Ur,{label:"Slot to Arrival",value:(Number(i.txn_arrival_timestamps_nanos[n]-i.start_timestamp_nanos)/1e6).toLocaleString(),unit:"ms"}),u.jsx(Ur,{label:"Arrival to Scheduled",value:(Number(i.txn_start_timestamps_nanos[n]-i.txn_arrival_timestamps_nanos[n])/1e6).toLocaleString(),unit:"ms"}),a&&u.jsx(Ur,{label:"Arrival Time",value:a.inNanos}),u.jsx(Uyt,{transactions:i,txnIdx:n}),u.jsx(Hyt,{transactions:i,txnIdx:n,bundleTxnIdx:o==null?void 0:o.bundleTxnIdx}),u.jsx(Rm,{}),u.jsx(Ur,{label:"Txn Sig",value:i.txn_signature[n],copyValue:i.txn_signature[n],truncateValue:!0})]})]})})}function Uyt({transactions:e,txnIdx:t}){const n=X(XN),r=e.txn_source_ipv4[t],i=m.useMemo(()=>{var a;const o=n.find(s=>s.gossip?Object.values(s.gossip.sockets).some(l=>HN(l)===r):!1);return o?(a=o.info)!=null&&a.name?o.info.name:o.identity_pubkey:void 0},[r,n]);return u.jsxs(u.Fragment,{children:[u.jsx(Ur,{label:"IPv4 (tpu)",value:`${r} (${e.txn_source_tpu[t]})`}),i&&u.jsx(Ur,{label:"Validator",value:i,truncateValue:!0})]})}function Wyt({transactions:e,txnIdx:t}){var o;const{rankings:n,totalRanks:r}=m.useMemo(()=>vhe(e),[e]),i=n.has(t)?` (${n.get(t)} of ${r})`:"";return u.jsx(Ur,{label:"CU Income",value:`${(o=ghe(e,t))==null?void 0:o.toLocaleString(void 0,{maximumFractionDigits:Uo})}${i}`,color:kp})}function Vyt({transactions:e,txnIdx:t}){var r,i;const n=e.txn_compute_units_requested[t]?Math.trunc(e.txn_compute_units_consumed[t]/e.txn_compute_units_requested[t]*100):100;return u.jsxs(u.Fragment,{children:[u.jsx(Ur,{label:"CU Consumed",value:`${(r=e.txn_compute_units_consumed[t])==null?void 0:r.toLocaleString()}`,color:pd}),u.jsx(Ur,{label:"CU Requested",value:`${(i=e.txn_compute_units_requested[t])==null?void 0:i.toLocaleString()}`,color:mk}),u.jsx(Wyt,{transactions:e,txnIdx:t}),u.jsx(V,{children:u.jsxs("svg",{height:"8",fill:"none",className:gx.cuBars,xmlns:"http://www.w3.org/2000/svg",children:[u.jsx("rect",{height:"8",width:`${n}%`,opacity:.6,fill:pd}),u.jsx("rect",{height:"8",width:`${100-n}%`,x:`${n}%`,opacity:.2,fill:mk})]})})]})}function Hyt({transactions:e,txnIdx:t,bundleTxnIdx:n}){const r=m.useMemo(()=>hO(e,t,n),[n,e,t]),i=m.useMemo(()=>{if(!r)return;const a=rt.sum(rt.values(r).map(p=>Number(p))),s=Math.max(0,Number(r.preLoading)/a*100),l=Math.max(0,Number(r.validating)/a*100),c=Math.max(0,Number(r.loading)/a*100),d=Math.max(0,Number(r.execute)/a*100),f=Math.max(0,Number(r.postExecute)/a*100);return{preLoading:s,validating:l,loading:c,execute:d,postExecute:f}},[r]),o=m.useMemo(()=>{if(!r)return;const a=rt.sum(rt.values(r).map(b=>Number(b))),s=Ha(r.preLoading),l=Ha(r.validating),c=Ha(r.loading),d=Ha(r.execute),f=Ha(r.postExecute),p=Ha(a),v=e.txn_mb_start_timestamps_nanos[t],_=e.txn_mb_end_timestamps_nanos[t],y=n!=null&&n.length&&e.txn_from_bundle[t]?Ha(_-v):null;return{preLoading:s,validating:l,loading:c,execute:d,postExecute:f,total:p,bundleTotal:y}},[e,r,t,n]);if(!(!r||!i||!o))return u.jsxs(u.Fragment,{children:[u.jsx(Rm,{}),u.jsx(V,{children:u.jsxs("svg",{height:"36",className:gx.durationContainer,xmlns:"http://www.w3.org/2000/svg",children:[u.jsx("rect",{height:"8",width:`${i.preLoading}%`,fill:va[dn.PRELOADING]}),Vi?u.jsxs(u.Fragment,{children:[u.jsx("rect",{height:"8",width:`${i.loading}%`,fill:va[dn.LOADING],x:`${i.preLoading}%`,y:"20%"}),u.jsx("rect",{height:"8",width:`${i.validating}%`,fill:va[dn.VALIDATE],x:`${i.preLoading+i.loading}%`,y:"40%"})]}):u.jsxs(u.Fragment,{children:[u.jsx("rect",{height:"8",width:`${i.validating}%`,fill:va[dn.VALIDATE],x:`${i.preLoading}%`,y:"20%"}),u.jsx("rect",{height:"8",width:`${i.loading}%`,fill:va[dn.LOADING],x:`${i.preLoading+i.validating}%`,y:"40%"})]}),u.jsx("rect",{height:"8",width:`${i.execute}%`,fill:va[dn.EXECUTE],x:`${i.preLoading+i.validating+i.loading}%`,y:"60%"}),u.jsx("rect",{height:"8",width:`${i.postExecute}%`,fill:va[dn.POST_EXECUTE],x:`${i.preLoading+i.validating+i.loading+i.execute}%`,y:"80%"})]})}),u.jsx(Ur,{label:dn.PRELOADING,color:va[dn.PRELOADING],value:o.preLoading.value,unit:o.preLoading.unit}),Vi?u.jsxs(u.Fragment,{children:[u.jsx(Ur,{label:dn.LOADING,color:va[dn.LOADING],value:o.loading.value,unit:o.loading.unit}),u.jsx(Ur,{label:dn.VALIDATE,color:va[dn.VALIDATE],value:o.validating.value,unit:o.validating.unit})]}):u.jsxs(u.Fragment,{children:[u.jsx(Ur,{label:dn.VALIDATE,color:va[dn.VALIDATE],value:o.validating.value,unit:o.validating.unit}),u.jsx(Ur,{label:dn.LOADING,color:va[dn.LOADING],value:o.loading.value,unit:o.loading.unit})]}),u.jsx(Ur,{label:dn.EXECUTE,color:va[dn.EXECUTE],value:o.execute.value,unit:o.execute.unit}),u.jsx(Ur,{label:dn.POST_EXECUTE,color:va[dn.POST_EXECUTE],value:o.postExecute.value,unit:o.postExecute.unit}),u.jsx(Ur,{label:"Total",value:o.total.value,unit:o.total.unit}),o.bundleTotal&&u.jsx(Ur,{label:"Total (Bundle)",value:o.bundleTotal.value,unit:o.bundleTotal.unit})]})}function Zyt({txnIdx:e,transactions:t}){const n=t.txn_error_code[e],r=n!==0;return u.jsx(Ur,{label:r?"Error":"Success",value:r?`${sN[n]}`:"Yes",color:r?MN:$N})}function Ur({label:e,value:t,color:n,unit:r,copyValue:i,truncateValue:o}){const a=typeof t=="number"?t.toLocaleString():t;return u.jsxs(V,{justify:"between",gap:"4",style:{"--color-override":n},children:[u.jsx(V,{minWidth:"105px",children:u.jsx(q,{wrap:"nowrap",children:e})}),u.jsx(V,{minWidth:"0",maxWidth:"210px",align:"center",children:u.jsxs(Dg,{value:i,color:Xte,size:"14px",children:[u.jsx(q,{className:gx.valueText,align:"right",truncate:o,children:a}),r&&u.jsx(q,{className:gx.unit,children:r})]})})]})}function AO({value:e,append:t,...n}){let r=e?"Yes":"No";return t&&(r+=` ${t}`),u.jsx(Ur,{...n,value:r})}function qyt(){var n;const e=X(Cn),t=pl(e);return!e||!((n=t.response)!=null&&n.transactions)?u.jsx(Gyt,{}):u.jsxs(u.Fragment,{children:[u.jsx(so,{id:"txn-bars-card",children:u.jsx(Lyt,{},e)}),u.jsx(Byt,{})]})}function Gyt(){return u.jsx(so,{style:{display:"flex",flexGrow:"1",height:"400px",justifyContent:"center",alignItems:"center"},children:u.jsx(q,{children:"Loading Banks..."})})}const Yyt="_search-grid_gudx6_1",Kyt="_search-label_gudx6_5",Xyt="_search-field_gudx6_11",Jyt="_error-text_gudx6_15",Qyt="_quick-search-card_gudx6_19",ebt="_quick-search-header_gudx6_26",tbt="_quick-search-slot_gudx6_37",nbt="_clickable_gudx6_40",rbt="_quick-search-metric_gudx6_51",hc={searchGrid:Yyt,searchLabel:Kyt,searchField:Xyt,errorText:Jyt,quickSearchCard:Qyt,quickSearchHeader:ebt,quickSearchSlot:tbt,clickable:nbt,quickSearchMetric:rbt},ibt=e=>m.createElement("svg",{width:18,height:18,viewBox:"0 0 18 18",fill:"#D86363",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.01469 6.00051C5.58562 6.03619 3 7.94365 3 12C3 12.5523 2.55228 13 2 13C1.44772 13 1 12.5523 1 12C1 6.90007 4.41438 4.05318 7.98531 4.00073C9.74494 3.97489 11.5153 4.63461 12.8432 6.00502C13.8812 7.07635 14.6101 8.5405 14.8821 10.3602L15.8896 8.9389C16.209 8.48833 16.8331 8.38198 17.2837 8.70137C17.7343 9.02075 17.8406 9.64492 17.5213 10.0955L15.0678 13.5568C14.7484 14.0073 14.1242 14.1137 13.6737 13.7943L10.2124 11.3408C9.76181 11.0214 9.65546 10.3973 9.97484 9.9467C10.2942 9.49613 10.9184 9.38978 11.369 9.70916L12.9263 10.8131C12.7275 9.27771 12.1449 8.15845 11.4068 7.39676C10.4847 6.44507 9.25506 5.9823 8.01469 6.00051ZM6.5 13C7.32843 13 8 12.3284 8 11.5C8 10.6716 7.32843 10 6.5 10C5.67157 10 5 10.6716 5 11.5C5 12.3284 5.67157 13 6.5 13Z"}));function obt(e=!1){const t=S6(),n=m.useCallback(()=>t({topic:"slot",key:"query_rankings",id:32,params:{mine:e}}),[e,t]);m.useEffect(()=>{n();const r=setInterval(n,5e3);return()=>clearInterval(r)},[n])}function tpe(e,t){const n=Oie();if(r_(n,1e3),!e)return;const r=Kf>=e,i=(r?Kf.diff(e):e.diff(Kf)).rescale(),o=Sp(i,t);return r?`${o} ago`:o}function npe(e,t){var a;const n=Is(e),r=m.useMemo(()=>{var s;return((s=n.publish)==null?void 0:s.completed_time_nanos)??void 0},[(a=n.publish)==null?void 0:a.completed_time_nanos]),i=m.useMemo(()=>{if(r!==void 0)return tre(r)},[r]),o=tpe(i,t);return{slotTimestampNanos:r,slotDateTime:i,timeAgoText:o}}function rpe(){const e=Q0({from:$pe.fullPath});return m.useCallback(t=>{e({search:{slot:t},replace:!0})},[e])}const ipe=3,ope=226,ape=40,spe=20,abt=2*spe+ipe*ope+(ipe-1)*ape;function sbt(){const e=X(gd.slot),t=rpe(),[n,r]=m.useState(e===void 0?"":String(e)),i=X(di),o=X(gd.isValid),a=m.useCallback(()=>{t(n===""?void 0:Number(n))},[n,t]);return u.jsxs(Zr,{height:"100%",maxWidth:`${abt}px`,justify:"center",m:"auto",gap:`${ape}px`,p:`${spe}px`,columns:`repeat(auto-fit, ${ope}px)`,className:hc.searchGrid,children:[u.jsx(V,{direction:"column",gap:"8px",gridColumn:"1 / -1",asChild:!0,children:u.jsxs("form",{onSubmit:s=>{s.preventDefault(),a()},children:[u.jsx(C6e,{htmlFor:"searchSlotId",className:hc.searchLabel,children:"Search Slot ID"}),u.jsx(J7,{id:"searchSlotId",className:hc.searchField,placeholder:`e.g. ${(i==null?void 0:i.start_slot)??0}`,type:"number",step:"1",value:n,onChange:s=>r(s.target.value),size:"3",color:o?"teal":"red",autoFocus:!0,children:u.jsx(M4,{side:"right",children:u.jsx(nl,{variant:"ghost",color:"gray",onClick:a,children:u.jsx(qie,{height:"16",width:"16"})})})}),!o&&u.jsx(fbt,{})]})}),u.jsx(lbt,{})]})}function FO(e){return`${Tb(e,4)} SOL`}function lbt(){obt(!0);const e=X(OG),{earliestQuickSlots:t,mostRecentQuickSlots:n}=X(Tre);return u.jsxs(u.Fragment,{children:[u.jsx($1,{icon:u.jsx(QFe,{}),label:"Earliest Slots",color:qne,slots:t}),u.jsx($1,{icon:u.jsx(Gie,{}),label:"Most Recent Slots",color:Gne,slots:n}),u.jsx($1,{icon:u.jsx(ibt,{}),label:"Last Skipped Slots",color:Yne,slots:e==null?void 0:e.slots_largest_skipped}),u.jsx($1,{icon:u.jsx(iBe,{}),label:"Highest Fees",color:Kne,slots:e==null?void 0:e.slots_largest_fees,metricOptions:{metrics:e==null?void 0:e.vals_largest_fees,metricsFmt:FO}}),u.jsx($1,{icon:u.jsx(pBe,{}),label:"Highest Tips",color:Xne,slots:e==null?void 0:e.slots_largest_tips,metricOptions:{metrics:e==null?void 0:e.vals_largest_tips,metricsFmt:FO}}),u.jsx($1,{icon:u.jsx(yBe,{}),label:"Highest Rewards",color:Jne,slots:e==null?void 0:e.slots_largest_rewards,metricOptions:{metrics:e==null?void 0:e.vals_largest_rewards,metricsFmt:FO}})]})}function $1({icon:e,label:t,color:n,slots:r,metricOptions:i}){return u.jsxs(V,{direction:"column",className:hc.quickSearchCard,p:"20px",gap:"20px",children:[u.jsxs(V,{direction:"column",gap:"10px",className:hc.quickSearchHeader,style:{"--quick-search-color":n},children:[e,u.jsx(q,{align:"left",children:t})]}),u.jsx(ubt,{slots:r,metricOptions:i})]})}function ubt({slots:e,metricOptions:t}){const n=rpe();return u.jsx(V,{direction:"column",gap:"5px",children:Array.from({length:qN}).map((r,i)=>{var a;const o=e==null?void 0:e[i];return u.jsxs(V,{justify:"between",children:[o===void 0?u.jsx(q,{className:hc.quickSearchSlot,children:"--"}):u.jsx(q,{className:Te(hc.quickSearchSlot,hc.clickable),onClick:()=>n(o),children:o}),u.jsx(q,{className:hc.quickSearchMetric,children:u.jsx(cbt,{slot:o,metric:(a=t==null?void 0:t.metrics)==null?void 0:a[i],metricsFmt:t==null?void 0:t.metricsFmt})})]},i)})})}function cbt({slot:e,metric:t,metricsFmt:n}){return e===void 0?"--":n?t===void 0?"--":n(t)??"--":u.jsx(dbt,{slot:e})}function dbt({slot:e}){const{timeAgoText:t}=npe(e,{showOnlyTwoSignificantUnits:!0});return t}function fbt(){const e=X(gd.slot),t=X(gd.state),n=X(di),r=m.useMemo(()=>{switch(t){case Xf.NotReady:return`Slot ${e} validity cannot be determined because epoch and leader slot data is not available yet.`;case Xf.OutsideEpoch:return`Slot ${e} is outside this epoch. Please try again with a different ID between ${n==null?void 0:n.start_slot} - ${n==null?void 0:n.end_slot}.`;case Xf.NotYou:return`Slot ${e} belongs to another validator. Please try again with a slot number processed by you.`;case Xf.BeforeFirstProcessed:return`Slot ${e} is in this epoch but its details are unavailable because it was processed before the restart.`;case Xf.Future:return`Slot ${e} is valid but in the future. To view details, check again after it has been processed.`;case Xf.Valid:return""}},[n==null?void 0:n.end_slot,n==null?void 0:n.start_slot,e,t]);return u.jsx(q,{size:"3",className:hc.errorText,children:r})}const hbt="_slot-item-group_p1cnp_1",pbt="_disabled_p1cnp_8",mbt="_is-selected_p1cnp_13",gbt="_slot-item_p1cnp_1",vbt="_selected-slot_p1cnp_35",ybt="_skipped-slot_p1cnp_41",bbt="_fade_p1cnp_50",_bt="_fade-left_p1cnp_57",xbt="_fade-right_p1cnp_62",pc={slotItemGroup:hbt,disabled:pbt,isSelected:mbt,slotItem:gbt,selectedSlot:vbt,skippedSlot:ybt,fade:bbt,fadeLeft:_bt,fadeRight:xbt};function lpe({onMeasured:e,children:t}){const n=X(jg),[r,i]=Ss();return m.useEffect(()=>e(i),[i,e]),u.jsx(lU,{container:n,style:{position:"fixed",left:"-100000px",top:"-100000px",visibility:"hidden"},ref:r,"aria-hidden":"true",children:t})}/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. 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 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */var BO=function(e,t){return BO=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)r.hasOwnProperty(i)&&(n[i]=r[i])},BO(e,t)};function wbt(e,t){BO(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var kbt=100,Sbt=100,upe=50,UO=50,WO=50;function cpe(e){var t=e.className,n=e.counterClockwise,r=e.dashRatio,i=e.pathRadius,o=e.strokeWidth,a=e.style;return m.createElement("path",{className:t,style:Object.assign({},a,jbt({pathRadius:i,dashRatio:r,counterClockwise:n})),d:Cbt({pathRadius:i,counterClockwise:n}),strokeWidth:o,fillOpacity:0})}function Cbt(e){var t=e.pathRadius,n=e.counterClockwise,r=t,i=n?1:0;return` - M `+UO+","+WO+` - m 0,-`+r+` - a `+r+","+r+" "+i+" 1 1 0,"+2*r+` - a `+r+","+r+" "+i+" 1 1 0,-"+2*r+` - `}function jbt(e){var t=e.counterClockwise,n=e.dashRatio,r=e.pathRadius,i=Math.PI*2*r,o=(1-n)*i;return{strokeDasharray:i+"px "+i+"px",strokeDashoffset:(t?-o:o)+"px"}}var Tbt=function(e){wbt(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getBackgroundPadding=function(){return this.props.background?this.props.backgroundPadding:0},t.prototype.getPathRadius=function(){return upe-this.props.strokeWidth/2-this.getBackgroundPadding()},t.prototype.getPathRatio=function(){var n=this.props,r=n.value,i=n.minValue,o=n.maxValue,a=Math.min(Math.max(r,i),o);return(a-i)/(o-i)},t.prototype.render=function(){var n=this.props,r=n.circleRatio,i=n.className,o=n.classes,a=n.counterClockwise,s=n.styles,l=n.strokeWidth,c=n.text,d=this.getPathRadius(),f=this.getPathRatio();return m.createElement("svg",{className:o.root+" "+i,style:s.root,viewBox:"0 0 "+kbt+" "+Sbt,"data-test-id":"CircularProgressbar"},this.props.background?m.createElement("circle",{className:o.background,style:s.background,cx:UO,cy:WO,r:upe}):null,m.createElement(cpe,{className:o.trail,counterClockwise:a,dashRatio:r,pathRadius:d,strokeWidth:l,style:s.trail}),m.createElement(cpe,{className:o.path,counterClockwise:a,dashRatio:f*r,pathRadius:d,strokeWidth:l,style:s.path}),c?m.createElement("text",{className:o.text,style:s.text,x:UO,y:WO},c):null)},t.defaultProps={background:!1,backgroundPadding:0,circleRatio:1,classes:{root:"CircularProgressbar",trail:"CircularProgressbar-trail",path:"CircularProgressbar-path",text:"CircularProgressbar-text",background:"CircularProgressbar-background"},counterClockwise:!1,className:"",maxValue:100,minValue:0,strokeWidth:8,styles:{root:{},trail:{},path:{},text:{},background:{}},text:""},t}(m.Component);function Ibt(e){var t=e.rotation,n=e.strokeLinecap,r=e.textColor,i=e.textSize,o=e.pathColor,a=e.pathTransition,s=e.pathTransitionDuration,l=e.trailColor,c=e.backgroundColor,d=t==null?void 0:"rotate("+t+"turn)",f=t==null?void 0:"center center";return{root:{},path:AS({stroke:o,strokeLinecap:n,transform:d,transformOrigin:f,transition:a,transitionDuration:s==null?void 0:s+"s"}),trail:AS({stroke:l,strokeLinecap:n,transform:d,transformOrigin:f}),text:AS({fill:r,fontSize:i}),background:AS({fill:c})}}function AS(e){return Object.keys(e).forEach(function(t){e[t]==null&&delete e[t]}),e}const Ebt="data:image/svg+xml,%3csvg%20width='12'%20height='13'%20viewBox='0%200%2012%2013'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6%200.675781C9.22656%200.675781%2011.8242%203.27344%2011.8242%206.5C11.8242%209.72656%209.22656%2012.3242%206%2012.3242C2.77344%2012.3242%200.175781%209.72656%200.175781%206.5C0.175781%203.27344%202.77344%200.675781%206%200.675781ZM6%2011.1758C8.57031%2011.1758%2010.6758%209.07031%2010.6758%206.5C10.6758%203.92969%208.57031%201.82422%206%201.82422C3.42969%201.82422%201.32422%203.92969%201.32422%206.5C1.32422%209.07031%203.42969%2011.1758%206%2011.1758ZM8.67969%203.92969L9.5%204.75L4.82422%209.42578L2.5%207.07422L3.32031%206.25391L4.82422%207.75781L8.67969%203.92969Z'%20fill='%231D863B'/%3e%3c/svg%3e",Nbt="data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='%231D863B'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.82422%208.92578L10.0742%203.67578L9.25391%202.82812L4.82422%207.25781L2.74609%205.17969L1.92578%206L4.82422%208.92578ZM1.87109%201.89844C3.01953%200.75%204.39583%200.175781%206%200.175781C7.60417%200.175781%208.97135%200.75%2010.1016%201.89844C11.25%203.02865%2011.8242%204.39583%2011.8242%206C11.8242%207.60417%2011.25%208.98047%2010.1016%2010.1289C8.97135%2011.2591%207.60417%2011.8242%206%2011.8242C4.39583%2011.8242%203.01953%2011.2591%201.87109%2010.1289C0.740885%208.98047%200.175781%207.60417%200.175781%206C0.175781%204.39583%200.740885%203.02865%201.87109%201.89844Z'/%3e%3c/svg%3e",$bt="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='8.5'%20cy='2.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='4.5'%20cy='6.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='2.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='6.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='10.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='14.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='2.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='6.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='10.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='14.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='12.5'%20cy='6.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3cline%20x1='8.35355'%20y1='1.64645'%20x2='13.3536'%20y2='6.64645'%20stroke='%231CE7C2'/%3e%3cline%20x1='3.64645'%20y1='6.64645'%20x2='8.64645'%20y2='1.64645'%20stroke='%231CE7C2'/%3e%3cline%20x1='12.4642'%20y1='6.8143'%20x2='14.4642'%20y2='11.8143'%20stroke='%231CE7C2'/%3e%3cline%20x1='10.5358'%20y1='11.8143'%20x2='12.5356'%20y2='6.81427'%20stroke='%231CE7C2'/%3e%3cline%20x1='2.53576'%20y1='11.8143'%20x2='4.53576'%20y2='6.8143'%20stroke='%231CE7C2'/%3e%3cline%20x1='4.46424'%20y1='6.81432'%20x2='6.46412'%20y2='11.8144'%20stroke='%231CE7C2'/%3e%3cline%20x1='2.5'%20y1='11'%20x2='2.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='6.5'%20y1='11'%20x2='6.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='10.5'%20y1='11'%20x2='10.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='14.5'%20y1='11'%20x2='14.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3c/svg%3e",Mbt="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='%23D86363'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8.01469%206.00051C5.58562%206.03619%203%207.94365%203%2012C3%2012.5523%202.55228%2013%202%2013C1.44772%2013%201%2012.5523%201%2012C1%206.90007%204.41438%204.05318%207.98531%204.00073C9.74494%203.97489%2011.5153%204.63461%2012.8432%206.00502C13.8812%207.07635%2014.6101%208.5405%2014.8821%2010.3602L15.8896%208.9389C16.209%208.48833%2016.8331%208.38198%2017.2837%208.70137C17.7343%209.02075%2017.8406%209.64492%2017.5213%2010.0955L15.0678%2013.5568C14.7484%2014.0073%2014.1242%2014.1137%2013.6737%2013.7943L10.2124%2011.3408C9.76181%2011.0214%209.65546%2010.3973%209.97484%209.9467C10.2942%209.49613%2010.9184%209.38978%2011.369%209.70916L12.9263%2010.8131C12.7275%209.27771%2012.1449%208.15845%2011.4068%207.39676C10.4847%206.44507%209.25506%205.9823%208.01469%206.00051ZM6.5%2013C7.32843%2013%208%2012.3284%208%2011.5C8%2010.6716%207.32843%2010%206.5%2010C5.67157%2010%205%2010.6716%205%2011.5C5%2012.3284%205.67157%2013%206.5%2013Z'/%3e%3c/svg%3e",Lbt="_small-icon_1vpxu_1",Rbt="_large-icon_1vpxu_6",FS={smallIcon:Lbt,largeIcon:Rbt};function dpe({slot:e,isCurrent:t,size:n}){const r=X(nDe(e)),i=Te(FS[`${n}Icon`]);return t?u.jsx(Obt,{size:n}):r==="incomplete"?u.jsx(fpe,{size:n}):r==="optimistically_confirmed"?u.jsx(ui,{content:"Slot was optimistically confirmed",children:u.jsx("img",{src:Nbt,alt:"optimistically_confirmed",className:i})}):r==="rooted"||r==="finalized"?u.jsx(ui,{content:"Slot was rooted",children:u.jsx("img",{src:$bt,alt:"rooted",className:i})}):u.jsx(ui,{content:"Slot was processed",children:u.jsx("img",{src:Ebt,alt:"processed",className:i})})}function fpe({size:e}){return u.jsx("div",{className:Te(FS[`${e}Icon`])})}function Obt({size:e}){const t=m.useRef(performance.now()),n=X(Eg),[r,i]=m.useState(0);return Aie(()=>{if(r>=100)return;const o=performance.now()-t.current,a=Math.min(Math.floor(o/n*100),100);i(a)}),u.jsx(V,{className:Te(FS[`${e}Icon`]),children:u.jsx(Tbt,{value:r,styles:Ibt({trailColor:Hne,pathColor:Zne,pathTransition:"none"}),strokeWidth:25,maxValue:100})})}function hpe({size:e}){return u.jsx(ui,{content:"Slot was skipped",children:u.jsx("img",{src:Mbt,alt:"skipped",className:Te(FS[`${e}Icon`])})})}const Pbt=kb+Sb,ppe=4;function mpe(e,t){return e*t+Math.max(0,e-1)*ppe}function zbt(){const e=X(Cn),t=X(ao),[n,r]=m.useState(0),[i,o]=m.useState(0),[a,{width:s}]=Ss(),l=m.useRef(null),[c,d]=m.useState(0),f=m.useCallback(w=>{w&&requestAnimationFrame(()=>{var S;const x=s/2-(w.offsetLeft+w.offsetWidth/2);(S=l.current)==null||S.style.setProperty("--offset",`${x}px`),d(x)})},[s]),p=m.useMemo(()=>e===void 0||!t?-1:t.indexOf(xi(e)),[t,e]),v=m.useMemo(()=>{if(p<0||!t)return;const w=Math.max(1,Math.ceil(s/2/i)),x=rt.clamp(w,1,10),S=w+x,C=t.length,j=Math.max(0,p-S),T=Math.min(C-1,p+S),E=C-1-T;return{leftSpacerWidth:mpe(j,i),rightSpacerWidth:mpe(E,i),startItemGroupIdx:j,endItemGroupIdx:T}},[s,i,t,p]),{showFadeLeft:_,showFadeRight:y}=m.useMemo(()=>{var S;const w=c<0,x=(((S=l.current)==null?void 0:S.offsetWidth)??0)-s+c>0;return{showFadeLeft:w,showFadeRight:x}},[s,c]);if(!t||!v||e===void 0)return;const b=[];if(i&&n)for(let w=v.startItemGroupIdx;w<=v.endItemGroupIdx;w++){const x=[],S=t[w];for(let j=0;j<$n;j++){const T=S+j,E=T===e;x.push(u.jsx(VO,{slot:T,isSelected:E,onSelectedSlotRef:E?f:void 0},T))}const C=S<=e&&et(i.width),children:u.jsx(VO,{slot:e[e.length-1],isSelected:!0})}),u.jsx(lpe,{onMeasured:i=>n(i.width),children:u.jsx(gpe,{slot:r,children:new Array($n).fill(0).map((i,o)=>u.jsx(VO,{slot:r-o,isSelected:!0},o))})})]})}function gpe({slot:e,isSelected:t,children:n}){const r=e<(X(Jf)??-1),i=e>(X(KN)??1/0),o=r||i;return u.jsx(V,{className:Te(pc.slotItemGroup,{[pc.disabled]:o,[pc.isSelected]:t}),children:n})}function VO({slot:e,isSelected:t,onSelectedSlotRef:n}){var s;Is(e);const r=(s=X(u3))==null?void 0:s.includes(e),i=e<(X(Jf)??-1),o=e>=(X(KN)??1/0)+$n,a=i||o;return u.jsxs(lp,{to:"/slotDetails",search:{slot:e},className:Te(pc.slotItem,{[pc.selectedSlot]:t,[pc.skippedSlot]:r}),ref:n,disabled:a,children:[u.jsx(q,{children:e}),r?u.jsx(hpe,{size:"large"}):u.jsx(dpe,{isCurrent:!1,slot:e,size:"large"})]},e)}const Abt="_header_1s5d9_1",Fbt="_subheader_1s5d9_7",Bbt="_label_1s5d9_12",Ubt="_value_1s5d9_18",Wbt="_table-header_1s5d9_26",Vbt="_table-row-label_1s5d9_32",Hbt="_total_1s5d9_37",Zbt="_table-cell-value_1s5d9_42",qbt="_grid_1s5d9_52",Gbt="_name_1s5d9_67",Ybt="_lg_1s5d9_70",Kbt="_copy-button_1s5d9_79",Xbt="_time-popover_1s5d9_85",at={header:Abt,subheader:Fbt,label:Bbt,value:Ubt,tableHeader:Wbt,tableRowLabel:Vbt,total:Hbt,tableCellValue:Zbt,grid:qbt,name:Gbt,lg:Ybt,copyButton:Kbt,timePopover:Xbt},vpe="20px",BS="15px",Jbt="15px",_l="5px",$d="1",ype=2.5;function HO({title:e,children:t,...n}){return u.jsxs(V,{direction:"column",flexBasis:"0",flexGrow:"1",gap:BS,...n,children:[u.jsxs(Mt,{children:[u.jsx(q,{className:at.header,children:e}),u.jsx(Rm,{my:"0"})]}),t]})}function Pi({title:e,children:t,...n}){return u.jsxs(V,{direction:"column",...n,children:[u.jsx(q,{className:at.subheader,mb:"5px",children:e}),t]})}const Qbt=Yu;function e_t(){const e=X(Cn),t=pl(e),n=m.useMemo(()=>{var o;if((o=t==null?void 0:t.response)!=null&&o.transactions)return t.response.transactions.txn_compute_units_consumed.reduce((a,s,l)=>{var f,p,v,_;const c=!!((p=(f=t.response)==null?void 0:f.transactions)!=null&&p.txn_is_simple_vote[l]),d=(_=(v=t.response)==null?void 0:v.transactions)==null?void 0:_.txn_from_bundle[l];return c?a.vote+=s:d?a.bundle+=s:a.other+=s,a},{vote:0,bundle:0,other:0})},[t]);if(!n)return;const r=n.vote+n.bundle+n.other,i=Math.max(n.vote,n.bundle,n.other);return u.jsx(Pi,{title:"Consumed Compute Units",children:u.jsxs(Zr,{columns:"repeat(5, auto) minmax(80px, 100%)",gapX:_l,gapY:$d,children:[u.jsx(ZO,{label:"Vote",cus:n.vote,totalCus:r,maxCus:i,pctColor:hd}),u.jsx(ZO,{label:"Bundle",cus:n.bundle,totalCus:r,maxCus:i,pctColor:Qbt}),u.jsx(ZO,{label:"Other",cus:n.other,totalCus:r,maxCus:i,pctColor:Zf})]})})}function ZO({label:e,cus:t,totalCus:n,maxCus:r,pctColor:i}){const o=Math.round(n?t/n*100:0),a=Math.round(r?t/r*100:0);return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:at.label,children:e}),u.jsx(q,{className:at.value,style:{color:i},align:"right",children:t.toLocaleString()}),u.jsx(q,{className:at.value,children:"/"}),u.jsx(q,{className:at.value,style:{color:pd},align:"right",children:n.toLocaleString()}),u.jsxs(q,{className:at.value,align:"right",children:[o,"%"]}),u.jsx("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:u.jsx("rect",{height:"8",width:`${a}%`,opacity:.6,fill:i})})]})}function US({value:e,total:t,valueColor:n,showBackground:r}){const i=Math.round(t?e/t*100:0);return u.jsx(u.Fragment,{children:u.jsxs("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[u.jsx("rect",{height:"8",width:`${i}%`,opacity:.6,fill:n}),r&&u.jsx("rect",{height:"8",width:`${100-i}%`,x:`${i}%`,opacity:.2,fill:n})]})})}function vx({label:e,value:t,total:n,valueColor:r,labelWidth:i,numeratorColor:o=!0,pctColor:a=!1}){const s=Math.round(n?t/n*100:0);return u.jsxs(u.Fragment,{children:[u.jsx(qk,{content:i?e:void 0,children:u.jsx(q,{className:at.label,truncate:!0,style:{width:i},children:e})}),u.jsx(q,{className:at.value,style:{color:o?r:void 0},align:"right",children:t.toLocaleString()}),u.jsx(q,{className:at.value,children:"/"}),u.jsx(q,{className:at.value,align:"right",children:n.toLocaleString()}),u.jsxs(q,{className:at.value,style:{color:a?r:void 0},align:"right",children:[s,"%"]}),u.jsx(US,{value:t,total:n,valueColor:r,showBackground:!0})]})}function t_t(){const e=X(Cn),t=tc(e).response;if(!t)return;const{limits:n}=t;if(n)return u.jsx(Pi,{title:"Protocol Limit Utilization",children:u.jsxs(Zr,{columns:"repeat(5, auto) minmax(80px, 100%)",gapX:_l,gapY:$d,children:[u.jsx(vx,{label:"Block cost",value:n.used_total_block_cost??0,total:n.max_total_block_cost??0,valueColor:pd}),u.jsx(vx,{label:"Vote cost",value:n.used_total_vote_cost??0,total:n.max_total_vote_cost??0,valueColor:hd}),u.jsx(vx,{label:"Bytes",value:n.used_total_bytes??0,total:n.max_total_bytes??0,valueColor:"#A35829"}),u.jsx(vx,{label:"Microblocks",value:n.used_total_microblocks??0,total:n.max_total_microblocks??0,valueColor:"#9EB1FF"})]})})}function n_t(){const e=X(Cn),t=tc(e).response;if(!t)return;const{limits:n}=t;if(n)return u.jsx(Pi,{title:"Top 5 Busy Accounts",children:u.jsx(Zr,{columns:"repeat(5, auto) minmax(80px, 100%)",gapX:_l,gapY:$d,children:n.used_account_write_costs.map(({account:r,cost:i})=>u.jsx(vx,{label:r,labelWidth:"80px",value:i,total:n.max_account_write_cost,valueColor:"#30A46C",numeratorColor:!1,pctColor:!0},r))})})}function Za({children:e,...t}){return u.jsx(q,{...t,className:Te("mono-text",t.className),children:e})}const qO={preLoading:0,validating:0,loading:0,execute:0,postExecute:0,total:0};function GO(e){return Object.values(e).reduce((t,n)=>t+n,0)}function r_t(){var s;const e=X(Cn),t=(s=pl(e).response)==null?void 0:s.transactions,n=m.useMemo(()=>{if(!t)return;const l={...qO},c={...qO},d={...qO};for(let f=0;f{y.preLoading+=Number(b.preLoading),y.validating+=Number(b.validating),y.loading+=Number(b.loading),y.execute+=Number(b.execute),y.postExecute+=Number(b.postExecute)};t.txn_landed[f]?t.txn_error_code[f]===0?_(c,v):_(d,v):_(l,v)}return l.total=GO(l),c.total=GO(c),d.total=GO(d),{unlanded:l,landedSuccess:c,landedFailed:d,max:Math.max(l.total,c.total,d.total)}},[t]);if(!n)return;const{unlanded:r,landedSuccess:i,landedFailed:o,max:a}=n;return u.jsx(Pi,{title:"Cumulative Execution Time",children:u.jsxs(Zr,{columns:"repeat(7, auto)",gapX:_l,gapY:$d,children:[u.jsx("div",{}),u.jsx(q,{className:at.tableHeader,style:{gridColumn:"span 2"},children:"Success+Landed"}),u.jsx(q,{className:at.tableHeader,style:{gridColumn:"span 2"},children:"Failed+Landed"}),u.jsx(q,{className:at.tableHeader,style:{gridColumn:"span 2"},children:"Unlanded"}),u.jsx(gh,{label:"Preloading",landedSuccess:i.preLoading,landedFailed:o.preLoading,unlanded:r.preLoading,max:a}),Vi?u.jsxs(u.Fragment,{children:[u.jsx(gh,{label:dn.LOADING,landedSuccess:i.loading,landedFailed:o.loading,unlanded:r.loading,max:a}),u.jsx(gh,{label:dn.VALIDATE,landedSuccess:i.validating,landedFailed:o.validating,unlanded:r.validating,max:a})]}):u.jsxs(u.Fragment,{children:[u.jsx(gh,{label:dn.VALIDATE,landedSuccess:i.validating,landedFailed:o.validating,unlanded:r.validating,max:a}),u.jsx(gh,{label:dn.LOADING,landedSuccess:i.loading,landedFailed:o.loading,unlanded:r.loading,max:a})]}),u.jsx(gh,{label:"Execute",landedSuccess:i.execute,landedFailed:o.execute,unlanded:r.execute,max:a}),u.jsx(gh,{label:"Post-Execute",landedSuccess:i.postExecute,landedFailed:o.postExecute,unlanded:r.postExecute,max:a}),u.jsx(gh,{label:"Total",landedSuccess:i.total,landedFailed:o.total,unlanded:r.total,max:a,isTotal:!0})]})})}function gh({label:e,landedSuccess:t,landedFailed:n,unlanded:r,max:i,isTotal:o}){const a=o?"#28684A":"#174933",s=o?"#8C333A":"#611623",l=o?"#12677E":"#004558",c=Ha(t),d=Ha(n),f=Ha(r);return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:Te(at.tableRowLabel,o&&at.total),children:e}),u.jsxs(q,{className:Te(at.tableCellValue,o&&at.total),align:"right",children:[c.value,u.jsx(Za,{children:c.unit})]}),u.jsx(US,{value:t,total:i,valueColor:a}),u.jsxs(q,{className:Te(at.tableCellValue,o&&at.total),align:"right",children:[d.value,u.jsx(Za,{children:d.unit})]}),u.jsx(US,{value:n,total:i,valueColor:s}),u.jsxs(q,{className:Te(at.tableCellValue,o&&at.total),align:"right",children:[f.value,u.jsx(Za,{children:f.unit})]}),u.jsx(US,{value:r,total:i,valueColor:l})]})}function i_t(){var i;const e=X(Cn),t=(i=pl(e).response)==null?void 0:i.transactions,n=m.useMemo(()=>{if(!t)return;const{vote:o,nonVote:a,bundle:s}={vote:{count:0,total:0,min:1/0,max:-1/0},nonVote:{count:0,total:0,min:1/0,max:-1/0},bundle:{count:0,total:0,min:1/0,max:-1/0}};for(let l=0;lNumber(p)));t.txn_is_simple_vote[l]?(o.total+=f,o.count++,o.min=Math.min(o.min,f),o.max=Math.max(o.max,f)):(a.total+=f,a.count++,a.min=Math.min(a.min,f),a.max=Math.max(a.max,f)),t.txn_from_bundle[l]&&(s.total+=f,s.count++,s.min=Math.min(s.min,f),s.max=Math.max(s.max,f))}return{vote:o.total/o.count,nonVote:a.total/a.count,bundle:s.total/s.count,voteMin:o.min,voteMax:o.max,nonVoteMin:a.min,nonVoteMax:a.max,bundleMin:s.min,bundleMax:s.max}},[t]);if(!n)return;const r=Math.max(n.voteMax,n.nonVoteMax,n.bundleMax);return u.jsx(Pi,{title:"Execution Time (min / avg / max)",children:u.jsxs(Zr,{columns:"repeat(7, auto)",gapX:_l,gapY:$d,children:[u.jsx(KO,{label:"Vote",value:n.vote,color:hd,max:r,minValue:n.voteMin,maxValue:n.voteMax}),u.jsx(KO,{label:"Non-vote",value:n.nonVote,color:Zf,max:r,minValue:n.nonVoteMin,maxValue:n.nonVoteMax}),u.jsx(KO,{label:"Bundle",value:n.bundle,color:"var(--purple-9)",max:r,minValue:n.bundleMin,maxValue:n.bundleMax})]})})}const bpe=4,WS=`${bpe}px`;function YO(e){return`clamp(0px, calc(${e}% - ${bpe/2}px), calc(100% - ${WS}))`}function KO({label:e,value:t,max:n,minValue:r,maxValue:i}){const o=isFinite(t)&&isFinite(r)&&isFinite(i),a=o?t/n*100:0,s=o?r/n*100:0,l=o?i/n*100:0,c=o?Ha(t):null,d=o?Ha(r):null,f=o?Ha(i):null;return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:at.label,children:e}),u.jsx(q,{className:at.value,style:{color:"#6E56CF"},align:"right",children:d?u.jsxs(u.Fragment,{children:[d.value,u.jsx(Za,{children:d.unit})]}):"-"}),u.jsx(q,{className:at.value,children:"/"}),u.jsx(q,{className:at.value,style:{color:"#BAA7FF"},align:"right",children:c?u.jsxs(u.Fragment,{children:[c.value,u.jsx(Za,{children:c.unit})]}):"-"}),u.jsx(q,{className:at.value,children:"/"}),u.jsx(q,{className:at.value,style:{color:"#6E56CF"},align:"right",children:f?u.jsxs(u.Fragment,{children:[f.value,u.jsx(Za,{children:f.unit})]}):"-"}),u.jsxs("svg",{height:"13",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center",width:"100%"},children:[u.jsx("rect",{height:"10%",y:"45%",width:"100%",opacity:.6,fill:"#313131"}),u.jsx("rect",{height:"80%",y:"10%",x:YO(s),width:WS,fill:"#56468B"}),u.jsx("rect",{height:"80%",y:"10%",x:YO(l),width:WS,fill:"#56468B"}),u.jsx("rect",{height:"80%",y:"10%",x:YO(a),width:WS,fill:"#BAA7FF"})]})]})}function o_t(){return u.jsxs(HO,{title:"Compute",flexGrow:"2",children:[u.jsx(t_t,{}),u.jsx(e_t,{}),u.jsx(n_t,{}),u.jsx(r_t,{}),u.jsx(i_t,{})]})}function Rs(e,t=Uo,n){if(!e)return"0";const r=Number(e)/dd;return r<1?r.toFixed(t):P$(r,n??{useSuffix:!0,significantDigits:4,trailingZeroes:!1,decimalsOnZero:!1})}const XO=1e8;function a_t(){const e=X(Cn),t=pl(e),n=m.useMemo(()=>{var f;const a=(f=t==null?void 0:t.response)==null?void 0:f.transactions;if(!a)return;const{tips:s,fees:l}=a.txn_transaction_fee.reduce((p,v,_)=>(p.fees+=Number(WN(a,_)),p.tips+=Number(VN(a,_)),p),{tips:0,fees:0}),c=s+l,d=s*.06;return{tips:s,fees:l,maxValue:c>XO?c+d:XO}},[t]);if(!n)return;const{tips:r,fees:i,maxValue:o}=n;return u.jsx(Pi,{title:"Fee Breakdown",children:u.jsxs(Zr,{columns:"repeat(3, auto)",gapX:_l,gapY:$d,children:[u.jsx(s_t,{label:"Tips",value:r,total:o,color:Gf}),u.jsx(l_t,{label:"Fees",value:i,total:o,color:kg}),u.jsx(u_t,{tips:r,fees:i})]})})}function s_t({label:e,value:t,total:n,color:r}){const i=n>0?t/n*100:0,o=t*.06,a=n>0?o/n*100:0;return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:at.label,children:e}),u.jsx(q,{className:at.value,style:{color:r},align:"right",children:`${Rs(t??0n,Uo,{decimals:Uo,trailingZeroes:!0})} SOL`}),u.jsxs(V,{children:[u.jsxs("svg",{height:"8",width:`${i+a}%`,fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[u.jsx("rect",{height:"8",width:`${100/106*100}%`,opacity:.6,fill:r}),u.jsx("rect",{height:"8",x:`${100/106*100}%`,width:`${6/106*100}%`,opacity:.6,fill:"#FFC53D"})]}),u.jsx(q,{className:at.label,style:{marginLeft:_l},children:"Commission\xA0"}),u.jsxs(q,{className:at.value,style:{color:"#FFC53D"},children:["-",`${Rs(o??0n,Uo,{decimals:Uo,trailingZeroes:!0})} SOL`]})]})]})}function l_t({label:e,value:t,total:n,color:r}){const i=n>0?t/n*100:0;return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:at.label,children:e}),u.jsx(q,{className:at.value,style:{color:r},align:"right",children:`${Rs(t??0n,Uo,{decimals:Uo,trailingZeroes:!0})} SOL`}),u.jsx("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:u.jsx("rect",{height:"8",width:`${i}%`,opacity:.6,fill:r})})]})}function u_t({tips:e,fees:t}){const n=e+t,r=Math.max(XO,n),i=n/r*100,o=e/r*100,a=t/r*100;return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:at.label,children:"Income"}),u.jsx(q,{className:at.value,style:{color:kp},align:"right",children:`${Rs(n,Uo,{decimals:Uo,trailingZeroes:!0})} SOL`}),u.jsxs("svg",{height:"10",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[u.jsx("rect",{height:"100%",width:`${o}%`,opacity:.6,fill:Gf}),u.jsx("rect",{height:"100%",x:`${o}%`,width:`${a}%`,opacity:.6,fill:kg}),u.jsx("rect",{height:"100%",x:`${o}%`,width:1,opacity:.6,fill:"black"}),u.jsx("rect",{height:"9",width:`${i}%`,x:.5,y:.5,opacity:1,stroke:kp,strokeWidth:1})]})]})}const c_t="_container_1w2fb_1",d_t="_label_1w2fb_5",f_t="_clickable_1w2fb_12",JO={container:c_t,label:d_t,clickable:f_t},_pe=["#003362","#113B29","#3F2700","#202248","#33255B"],QO=5e3;function VS({data:e,showPct:t,sort:n,onItemClick:r}){const i=e.reduce((s,{value:l})=>s+l,0);let o=n?e.toSorted((s,l)=>l.value-s.value):e,a=0;if(o.length>QO){for(let s=QO;su.jsx(V,{width:`${l}px`,height:`${s}px`,children:o.map(({value:c,label:d},f)=>{const p=_pe[f%_pe.length],v=c/i,_=v*100,y=_>1?`${Math.round(_)}%`:`${_.toFixed(2)}%`,b=v*l>30;return u.jsx(ui,{content:u.jsxs(u.Fragment,{children:[u.jsx(q,{weight:"bold",children:d}),u.jsx("br",{}),u.jsx(q,{children:`Income: ${Rs(c,Fte)} SOL (${y})`})]}),side:"bottom",disableHoverableContent:!0,children:r?u.jsx(V,{asChild:!0,className:JO.clickable,minWidth:"0",align:"center",justify:"center",flexBasis:"0",style:{background:p,flexGrow:c},children:u.jsx("button",{"aria-label":`Filter by ${d} (${y})`,onClick:()=>r({label:d,value:c}),children:b&&u.jsx(xpe,{label:d,showPct:t,formattedPct:y})})}):u.jsx(V,{minWidth:"0",align:"center",justify:"center",flexBasis:"0",style:{background:p,flexGrow:c},children:b&&u.jsx(xpe,{label:d,showPct:t,formattedPct:y})})},d)})})})})}function xpe({label:e,showPct:t,formattedPct:n}){return u.jsxs(q,{mx:"2",className:JO.label,truncate:!0,children:[e,t&&` ${n}`]})}function h_t({transactions:e}){const{triggerControl:t,resetAllControls:n}=m.useContext(N1),r=m.useMemo(()=>{const o=e.txn_signature.map((a,s)=>({value:Number(md(e,s)),label:a}));return Object.values(rt.groupBy(o,({label:a})=>a)).map(a=>({label:a[0].label,value:rt.sum(a.map(({value:s})=>s))}))},[e]),i=m.useCallback(({label:o})=>{n([mx]),t(mx,{mode:Mn.TxnSignature,text:o})},[n,t]);return u.jsx(Pi,{title:"Income Distribution by Txn",children:u.jsx(VS,{data:r,sort:!0,onItemClick:i})})}function p_t({transactions:e}){const{triggerControl:t,resetAllControls:n}=m.useContext(N1),r=m.useMemo(()=>{const o=e.txn_source_ipv4.map((a,s)=>({value:Number(md(e,s)),label:a}));return Object.values(rt.groupBy(o,({label:a})=>a)).map(a=>({label:a[0].label,value:rt.sum(a.map(({value:s})=>s))}))},[e]),i=m.useCallback(({label:o})=>{n([mx]),t(mx,{mode:Mn.Ip,text:o})},[n,t]);return u.jsx(Pi,{title:"Income Distribution by IP Address",children:u.jsx(VS,{data:r,sort:!0,onItemClick:i})})}const eP="Bundle";function m_t({transactions:e}){const{triggerControl:t,resetAllControls:n}=m.useContext(N1),r=Ee(Ls),i=m.useMemo(()=>{const a=e.txn_from_bundle.map((s,l)=>({value:Number(md(e,l)),label:s?eP:"Other"}));return Object.values(rt.groupBy(a,({label:s})=>s)).map(s=>({label:s[0].label,value:rt.sum(s.map(({value:l})=>l))})).sort((s,l)=>s.label===eP?-1:1)},[e]),o=m.useCallback(({label:a})=>{n([OO]),t(OO,a===eP?"Yes":"No"),r(s=>{s.setScale(Vt,{min:s.data[0][0],max:s.data[0][s.data[0].length-1]})})},[n,t,r]);return u.jsx(Pi,{title:"Income Distribution by Bundle",children:u.jsx(VS,{data:i,showPct:!0,onItemClick:o})})}function g_t(e,t=[1,10]){const n=e.length;if(n===0)return;e=e.toSorted((c,d)=>d-c);const r=new Array(n+1);r[0]=0;for(let c=0;crt.clamp(c,0,100)))).sort((c,d)=>c-d),a=c=>c<=0?0:c>=100?n:rt.clamp(Math.ceil(c/100*n),0,n),s={},l=[0,...o,100];for(let c=1;cNumber(md(e,i)),[]),n=g_t(t);if(n!==void 0)return Object.entries(n).map(([r,i])=>({value:i,label:r}))}function y_t({transactions:e}){const t=m.useMemo(()=>v_t(e),[e]);if(t)return u.jsx(Pi,{title:"Income Distribution by Percent Txns",children:u.jsx(VS,{data:t})})}function b_t(){var n;const e=X(Cn),t=(n=pl(e).response)==null?void 0:n.transactions;if(t)return u.jsxs(u.Fragment,{children:[u.jsx(y_t,{transactions:t}),u.jsx(m_t,{transactions:t}),u.jsx(h_t,{transactions:t}),u.jsx(p_t,{transactions:t})]})}function __t(e,t){const n=parseInt(e.substring(1,3),16),r=parseInt(e.substring(3,5),16),i=parseInt(e.substring(5,7),16);return`rgba(${n}, ${r}, ${i}, ${t})`}const x_t=(ype+2)**2;function w_t(e,t,n,r){function i(a){const{left:s,top:l}=a.cursor;if(s==null||l==null)return null;const c=a.data[0],d=a.data[1];let f=null,p=1/0;for(let v=0;v({width:0,height:0,padding:[10,15,0,15],scales:{[HS]:{time:!1,distr:n?3:void 0},[Id]:{time:!1,distr:3}},axes:[{scale:HS,border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{show:!1},values:(f,p)=>p.map(v=>{if(r){const{scaledToX:_,negMin:y,posMax:b}=r;return Math.round(_(v,y,b)).toLocaleString()}return v&&Lie.format(v)}),size:20,gap:0,font:"8px Inter Tight"},{scale:Id,stroke:sr,grid:{show:!1},border:{show:!0,width:1/devicePixelRatio,stroke:sr},show:!1}],series:[{scale:HS},{scale:Id,stroke:void 0,points:{show:!0,size:ype*2,fill:__t(kp,.3),space:0}}],legend:{show:!1},hooks:{draw:[f=>{var p;f.ctx.save(),f.ctx.fillStyle=sr,f.ctx.font="18px Inter Tight",f.ctx.textAlign="left",f.ctx.fillText(`${(((p=f.scales[Id])==null?void 0:p.max)??0)/dd} SOL`,0,0),f.ctx.restore()}]},plugins:[w_t(s,HS,Id,c)]}),[s,n,r]);return u.jsxs(u.Fragment,{children:[u.jsx(Mt,{flexGrow:"1",children:u.jsx($s,{children:({height:f,width:p})=>(d.width=p,d.height=f,u.jsx(Pp,{id:t,options:d,data:e}))})}),u.jsx(k_t,{elId:s,data:l,xLabel:i,xColor:o,tooltipFormatX:a})]})}function S_t(e){return e==null?void 0:e.txn_compute_units_consumed.map((t,n)=>({cu:t,i:n})).sort((t,n)=>t.cu-n.cu).reduce((t,{cu:n,i:r})=>{const i=Number(md(e,r));return!i||!n||(t[0].push(n),t[1].push(i)),t},[[],[]])}function C_t(e,t,n){return e<=0?.5*(e-t)/-t:.5+.5*(e/n)}function kpe(e,t,n){return e<=.5?t+e/.5*-t:(e-.5)/.5*n}function j_t(e){if(!e)return;const t=e.txn_arrival_timestamps_nanos.map((i,o)=>({tsNanos:i,i:o})).sort((i,o)=>Number(i.tsNanos-o.tsNanos)).reduce((i,{tsNanos:o,i:a})=>{const s=Number(o-e.start_timestamp_nanos)/1e6,l=Number(md(e,a));return l&&(i[0].push(s),i[1].push(l??0)),i},[[],[]]),n=t[0][0],r=t[0][t[0].length-1];return t[0]=t[0].map(i=>C_t(i,n,r)),{min:n,max:r,chartData:t}}function T_t(){var a,s;const e=X(Cn),t=(a=pl(e).response)==null?void 0:a.transactions,n=pl(e),r=m.useMemo(()=>S_t(t),[t]),i=m.useMemo(()=>j_t(t),[t]),o=m.useMemo(()=>{if(i)return{scaledToX:kpe,negMin:i.min,posMax:i.max}},[i]);if(!(!((s=n.response)!=null&&s.transactions)||!r||!i))return u.jsxs(V,{flexGrow:"1",minWidth:"300px",minHeight:"150px",gap:Jbt,children:[u.jsx(Pi,{title:"Compute Units vs Income",flexGrow:"1",children:u.jsx(wpe,{id:"cuIncomeScatterChart",data:r,xLogScale:!0,xLabel:"CU",xColor:pd,formatX:l=>Lie.format(l)})}),u.jsx(Pi,{title:"Arrival Time vs Income",flexGrow:"1",children:u.jsx(wpe,{id:"arrivalIncomeScatterChart",data:i.chartData,xScaleOptions:o,xLabel:"Arrival",formatX:l=>`${Math.round(kpe(l,i.min,i.max)).toLocaleString()}ms`})})]})}function I_t(){return u.jsxs(HO,{title:"Fees",flexGrow:"2",children:[u.jsx(a_t,{}),u.jsx(b_t,{}),u.jsx(T_t,{})]})}function E_t(e){function t(n,r,i){return e(i),!0}return ix({elId:Wfe,showOnCursor:t})}const M1=new Map,Spe=e=>{const t=M1.get(e);if(!t||t.pendingSync!==null)return;const n=Math.max(0,...t.naturalSizes.values());n!==t.maxSize&&(t.maxSize=n,t.pendingSync=requestAnimationFrame(()=>{for(const r of t.charts.values())r.redraw(!1,!0);t.pendingSync=null}))};function N_t(e,t,n=1){return{opts:(r,i)=>{var s;const o=(s=i.axes)==null?void 0:s[n];if(!o)return;const a=o.size;o.size=(l,c,d,f)=>{const p=typeof a=="function"?a(l,c,d,f):a??Jae(l.axes[d]),v=M1.get(t);return v?(v.naturalSizes.set(e,p),Math.max(p,v.maxSize)):p}},hooks:{ready:r=>{const i=M1.get(t);i?i.charts.set(e,r):M1.set(t,{charts:new Map([[e,r]]),naturalSizes:new Map,maxSize:0,pendingSync:null})},destroy:r=>{const i=M1.get(t);i&&i.charts.get(e)===r&&(i.charts.delete(e),i.naturalSizes.delete(e),i.charts.size===0?(i.pendingSync!==null&&cancelAnimationFrame(i.pendingSync),M1.delete(t)):Spe(t))},draw:r=>Spe(t)}}}function $_t({data:e,formatBucketRange:t}){return u.jsx(ox,{elId:Wfe,children:e&&u.jsxs(Zr,{columns:"auto auto",gapX:"2",children:[u.jsx(Md,{label:"Duration",value:t(e.bucketIdx)}),u.jsx(Md,{label:"Avg CUs",value:e.cuYVal?Math.round(e.cuYVal).toLocaleString():"0",color:pd}),u.jsx(Md,{label:"Count",value:e.countYVal?e.countYVal.toLocaleString():"0"})]})})}const ZS=20,Cpe=Array.from({length:ZS},(e,t)=>t),M_t=(e,t)=>Math.trunc(e/t*ZS),tP=(e,t)=>e/ZS*t,qS="8px Inter Tight",L_t="#3C2E69",nP=1,R_t=((Yme=(fC=jn.paths)==null?void 0:fC.bars)==null?void 0:Yme.call(fC,{size:[.8]}))??(()=>({stroke:new Path2D,fill:new Path2D})),jpe={cuData:[[],[]],countData:[[],[]],maxDuration:0},rP=(e,t)=>{const{value:n,unit:r}=Ha(e,!1,t);return`${n} ${r}`};function O_t(){var c;const e=X(Cn),t=(c=pl(e).response)==null?void 0:c.transactions,[n,r]=m.useState(),{cuData:i,countData:o,maxDuration:a}=m.useMemo(()=>{if(!t)return jpe;const d=t.txn_landed.map((y,b)=>({duration:Number(t.txn_mb_end_timestamps_nanos[b]-t.txn_mb_start_timestamps_nanos[b]),cu:t.txn_compute_units_consumed[b]})).filter(({duration:y})=>y>0);if(d.length===0)return jpe;const f=Eb(d.map(({duration:y})=>y))+1,p=Array.from({length:ZS},()=>({count:0,cus:0}));for(const{duration:y,cu:b}of d){const w=M_t(y,f);p[w].count++,p[w].cus+=b}const v=p.map(({count:y})=>y),_=p.map(({count:y,cus:b})=>y?b/y:0);return{countData:[Cpe,v],cuData:[Cpe,_],maxDuration:f}},[t]),s=m.useCallback(d=>`${rP(tP(d,a),2)} - ${rP(tP(d+1,a),2)}`,[a]),l=m.useMemo(()=>n!==void 0?{bucketIdx:n,cuYVal:i[nP][n],countYVal:o[nP][n]}:void 0,[o,i,n]);if(t)return u.jsxs(u.Fragment,{children:[u.jsx(Pi,{title:"CUs vs Txn Execution Duration",minWidth:"200px",minHeight:"100px",flexGrow:"1",children:u.jsx(Tpe,{data:i,id:"txnExecutionDurationCu",maxDuration:a,setTooltipDataIdx:r})}),u.jsx(Pi,{title:"Transaction Count vs Txn Execution Duration",minWidth:"200px",minHeight:"100px",flexGrow:"1",children:u.jsx(Tpe,{data:o,id:"txnExecutionDurationCount",log:!0,maxDuration:a,setTooltipDataIdx:r})}),u.jsx($_t,{data:l,formatBucketRange:s})]})}function Tpe({data:e,log:t,id:n,maxDuration:r,setTooltipDataIdx:i}){const o=m.useMemo(()=>t?[e[0],e[nP].map(l=>Math.log((l??0)+1))]:e,[e,t]),a=Math.max(0,e[0].length-1),s=m.useMemo(()=>({width:0,height:0,cursor:{sync:{key:Ugt}},scales:{duration:{time:!1},y:{auto:!0,range:(l,c,d)=>t?[0,Math.max(d,Math.log(3))]:[0,Math.max(d,2)]}},series:[{scale:"duration"},{label:"Count",points:{show:!1},fill:L_t,paths:R_t}],axes:[{scale:"duration",splits:[0,a],values:(l,c)=>c.map(d=>rP(tP(d,r))),label:"Txn Execution Duration",stroke:sr,grid:{show:!1},size:10,gap:0,font:qS,labelFont:qS,labelGap:0,labelSize:10},{stroke:sr,splits:(l,c,d,f)=>[d,(d+f)/2,f],values:(l,c)=>(t?c.map(d=>Math.round(Math.exp(d)-1)):c.map(Math.round)).map(d=>d.toLocaleString()),gap:0,font:qS,size(l,c,d,f){var b,w;const p=l.axes[d];if(f>1)return Jae(p);const v=(((b=p.ticks)==null?void 0:b.size)??0)+(p.gap??0),_=(c??[]).reduce((x,S)=>S.length>x.length?S:x,"");if(_==="")return Math.ceil(v);l.ctx.font=((w=p.font)==null?void 0:w[0])??qS;const y=l.ctx.measureText(_).width/devicePixelRatio;return Math.ceil(v+y)}}],legend:{show:!1},plugins:[E_t(i),cO({minRange:0}),N_t(n,"txnExecutionDurationYAxis")]}),[a,i,n,t,r]);return u.jsx(Mt,{flexGrow:"1",children:u.jsx($s,{children:({height:l,width:c})=>(s.width=c,s.height=l,u.jsx(Pp,{id:n,options:s,data:o}))})})}function P_t(){var a;const e=X(Eg),t=X(Cn),n=X(ao),r=(a=tc(t).response)==null?void 0:a.scheduler_stats,i=m.useMemo(()=>{if(t===void 0||!n)return;const s=xi(t),l=n.indexOf(s)-1;if(!(l<0))return n[l]+$n-1},[n,t]);if(t===void 0)return;const o=i?fn.fromMillis(e*(t-i)).rescale():void 0;return u.jsx(Pi,{title:"Scheduler",children:u.jsxs(V,{direction:"column",gap:$d,children:[u.jsxs(V,{gap:_l,children:[u.jsx(q,{className:at.label,children:"Time Since Last Leader Group"}),u.jsx(q,{className:at.value,children:Sp(o)})]}),Vi&&u.jsxs(V,{gap:_l,children:[u.jsx(q,{className:at.label,children:"End slot reason"}),u.jsx(q,{className:at.value,children:r==null?void 0:r.end_slot_reason})]})]})})}function z_t(){const e=X(Nb),{queryIdleData:t}=VM();return u.jsx(Pi,{title:"CPU Utilization",children:u.jsxs(V,{direction:"column",gap:"5px",children:[u.jsx(Wa,{header:"pack",tileCount:e.pack,queryIdlePerTile:t==null?void 0:t.pack,statLabel:"Full",metricType:"pack",isDark:!0,isNarrow:!0}),u.jsx(Wa,{header:To.bank,tileCount:e[To.bank],queryIdlePerTile:t==null?void 0:t[To.bank],statLabel:"TPS",metricType:"bank",isDark:!0,isNarrow:!0})]})})}function D_t(e){function t(n,r,i){return e(i),!0}return ix({elId:"pack-buffer-chart-tooltip",showOnCursor:t})}function A_t({data:e}){return u.jsx(ox,{elId:"pack-buffer-chart-tooltip",children:e&&u.jsxs(Zr,{columns:"auto auto",gapX:"2",children:[u.jsx(Md,{label:"Regular",value:e.regular.toLocaleString(),color:Zf}),u.jsx(Md,{label:"Votes",value:e.votes.toLocaleString(),color:hd}),u.jsx(Md,{label:"Conflicting",value:e.conflicting.toLocaleString(),color:gk}),u.jsx(Md,{label:"Bundles",value:e.bundles.toLocaleString(),color:Gf})]})})}const iP="packX",L1="packTxnsY";function F_t(){var l;const e=X(Cn),t=tc(e).response,[n,r]=m.useState(),i=t==null?void 0:t.scheduler_counts,o=m.useMemo(()=>{var f;const c=(f=t==null?void 0:t.transactions)==null?void 0:f.start_timestamp_nanos;if(!i||!c)return;const d=[[],[],[],[],[]];for(let p=0;p({width:0,height:0,padding:[0,0,0,0],drawOrder:["axes","series"],cursor:{},scales:{[iP]:{time:!1},[L1]:{}},axes:[{scale:iP,border:{show:!0,width:1/devicePixelRatio},stroke:sr,grid:{width:1/devicePixelRatio},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},values:(c,d)=>d.map(f=>f/1e6+"ms"),space:100,size:20,font:"8px Inter Tight"},{scale:L1,border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{width:1/devicePixelRatio},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},space:50,font:"8px Inter Tight",size(c,d,f,p){var b,w;const v=c.axes[f];if(p>1)return v._size;let _=((b=v.ticks)==null?void 0:b.size)??0+(v.gap??0);_+=5;const y=(d??[]).reduce((x,S)=>S.length>x.length?S:x,"");return y!==""&&(c.ctx.font=((w=v.font)==null?void 0:w[0])??"Inter Tight",_+=c.ctx.measureText(y).width/devicePixelRatio),Math.ceil(_)}}],series:[{scale:iP},{label:"Regular",stroke:Zf,points:{show:!1},width:2/devicePixelRatio,scale:L1},{label:"Votes",stroke:hd,points:{show:!1},width:2/devicePixelRatio,scale:L1},{label:"Conflicting",stroke:gk,points:{show:!1},width:2/devicePixelRatio,scale:L1},{label:"Bundles",stroke:Gf,points:{show:!1},width:2/devicePixelRatio,scale:L1}],legend:{show:!1},plugins:[nO(),lO({factor:.75}),D_t(r),pO()]}),[]);if(!o)return;const s=n!==void 0?i==null?void 0:i[n]:void 0;return u.jsxs(Pi,{title:"Pack Txns Buffer Utilization",flexGrow:"1",minWidth:"150px",minHeight:"150px",children:[u.jsx(Mt,{height:"100%",children:u.jsx($s,{children:({height:c,width:d})=>(a.width=d,a.height=c,u.jsx(u.Fragment,{children:u.jsx(Pp,{id:"packBufferChart",options:a,data:o})}))})}),u.jsx(A_t,{data:s})]})}function B_t(){var n;const e=X(Cn),t=(n=Is(e).publish)==null?void 0:n.duration_nanos;return u.jsx(Pi,{title:"Slot Duration",children:u.jsxs(V,{gap:_l,children:[u.jsx(q,{className:at.label,children:"Actual"}),t!=null&&u.jsx(q,{className:at.value,children:`${(t/1e6).toFixed(2)}ms`})]})})}const U_t=["success","fail_taken","fail_fast_path","fail_byte_limit","fail_alloc_limit","fail_write_cost","fail_slow_path","fail_defer_skip"];function W_t(){var l,c,d;const e=X(Cn),t=(l=tc(e).response)==null?void 0:l.scheduler_stats;if(!t)return;const{slot_schedule_counts:n,end_slot_schedule_counts:r,pending_smallest_bytes:i,pending_smallest_cost:o,pending_vote_smallest_bytes:a,pending_vote_smallest_cost:s}=t;return u.jsxs(u.Fragment,{children:[u.jsx(Pi,{title:"Txn Schedule Outcomes",children:u.jsxs(Zr,{columns:"repeat(3, 1fr)",gapX:_l,gapY:$d,children:[u.jsx(q,{className:at.label,children:"Outcome"}),u.jsx(q,{className:at.tableHeader,align:"right",children:"Txn Count"}),u.jsx(q,{className:at.tableHeader,align:"right",children:"Txn Count (End)"}),n.map((f,p)=>{const v=U_t[p];return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:at.label,children:v}),u.jsx(q,{className:at.value,align:"right",children:f.toLocaleString()}),u.jsx(q,{className:at.value,align:"right",children:r[p].toLocaleString()})]},v)})]})}),u.jsx(Pi,{title:"Smallest Pending Txn",children:u.jsxs(Zr,{columns:"repeat(3, 1fr)",gapX:_l,gapY:$d,children:[u.jsx("div",{}),u.jsx(q,{className:at.tableHeader,align:"right",children:"CU Cost"}),u.jsx(q,{className:at.tableHeader,align:"right",children:"Size"}),u.jsx(q,{className:at.label,children:"Non-vote"}),u.jsx(q,{className:at.value,align:"right",children:(o==null?void 0:o.toLocaleString())??0}),u.jsx(q,{className:at.value,align:"right",children:i!=null?(c=Cp(i))==null?void 0:c.toString():0}),u.jsx(q,{className:at.label,children:"Vote"}),u.jsx(q,{className:at.value,align:"right",children:(s==null?void 0:s.toLocaleString())??0}),u.jsx(q,{className:at.value,align:"right",children:a!=null?(d=Cp(a))==null?void 0:d.toString():0})]})})]})}function V_t(){return u.jsx(HO,{title:"Performance",flexGrow:"3",children:u.jsxs(V,{direction:{sm:"row",initial:"column"},gapX:vpe,gapY:BS,flexGrow:"1",children:[u.jsxs(V,{direction:"column",gap:BS,flexBasis:"0",flexGrow:"1",children:[u.jsx(P_t,{}),u.jsx(W_t,{}),u.jsx(F_t,{})]}),u.jsxs(V,{direction:"column",gap:BS,flexBasis:"0",flexGrow:"1",children:[u.jsx(B_t,{}),u.jsx(O_t,{}),u.jsx(z_t,{})]})]})})}const H_t="_container_id19r_1",Z_t="_label_id19r_6",q_t="_value_id19r_10",G_t="_popover-trigger_id19r_15",Y_t="_popover-underline-overlay_id19r_23",K_t="_popover-text-underline_id19r_27",xl={container:H_t,label:Z_t,value:q_t,popoverTrigger:G_t,popoverUnderlineOverlay:Y_t,popoverTextUnderline:K_t},X_t=Intl.DateTimeFormat().resolvedOptions().timeZone;function oP({nanoTs:e,lines:t,textClassName:n,triggerClassName:r}){const i=m.useMemo(()=>tre(e),[e]),o=tpe(i),a=m.useMemo(()=>{const s=kk(e,{timezone:"local",showTimezoneName:!1}),l=kk(e,{timezone:"utc",showTimezoneName:!1});return{local:s.inNanos,utc:l.inNanos,ts:e.toString()}},[e]);return u.jsx(zg,{content:u.jsxs(Zr,{columns:"max-content max-content",gapX:"10px",gapY:"5px",rows:"4",className:xl.container,children:[u.jsx(q,{className:xl.label,children:X_t}),u.jsx(Za,{className:xl.value,children:a.local}),u.jsx(q,{className:xl.label,children:"UTC"}),u.jsx(Za,{className:xl.value,children:a.utc}),u.jsx(q,{className:xl.label,children:"Relative"}),u.jsx(Za,{className:xl.value,children:o}),u.jsx(q,{className:xl.label,children:"Timestamp"}),u.jsx(Za,{className:xl.value,children:a.ts})]}),align:"start",children:u.jsx(hs,{variant:"ghost",className:Te(xl.popoverTrigger,r),children:u.jsxs(V,{minWidth:"0",position:"relative",children:[u.jsx(V,{direction:"column",minWidth:"0",width:"100%",children:t.map((s,l)=>u.jsx(q,{truncate:!0,className:n,children:s},l))}),u.jsx(V,{direction:"column","aria-hidden":"true",className:xl.popoverUnderlineOverlay,children:t.map((s,l)=>u.jsx(q,{truncate:!0,className:Te(n,xl.popoverTextUnderline),children:s},l))})]})})})}const vh="5px";function J_t(){var c,d,f,p;const e=X(Cn),{countryCode:t,countryFlag:n,cityName:r}=ma(e??0),i=X(di),o=Is(e).publish,a=Hn("(min-width: 1420px)"),s=Hn("(min-width: 600px)"),l=m.useMemo(()=>a?"minmax(300px, max-content) minmax(228px, max-content) minmax(200px, max-content) minmax(150px, max-content) minmax(160px, max-content)":s?"minmax(0px, max-content) 1fr":"1",[a,s]);return e===void 0?null:u.jsxs(Zr,{className:at.grid,align:a?"center":"start",justify:"between",columns:l,gapX:a?"12px":"30px",gapY:vh,children:[u.jsx(Q_t,{slot:e,isLgScreen:a}),u.jsxs(V,{direction:"column",gap:vh,children:[u.jsx(yh,{label:"City",value:r&&t?`${r}, ${t}`:"Unknown",icon:n,vertical:!a}),u.jsx(yh,{label:"Epoch",value:i==null?void 0:i.epoch,vertical:!a})]}),a?u.jsxs(V,{direction:"column",gapX:vh,gapY:vh,children:[u.jsx(Epe,{slotCompletedTimeNanos:o==null?void 0:o.completed_time_nanos}),u.jsx(Npe,{slot:e})]}):u.jsxs(u.Fragment,{children:[u.jsx(Epe,{slotCompletedTimeNanos:o==null?void 0:o.completed_time_nanos,vertical:!0}),u.jsx(Npe,{slot:e,vertical:!0})]}),u.jsxs(V,{direction:"column",gap:vh,children:[u.jsx(yh,{label:"Votes",value:(c=o==null?void 0:o.success_vote_transaction_cnt)==null?void 0:c.toLocaleString()}),u.jsx(yh,{label:"Vote Failures",value:(d=o==null?void 0:o.failed_vote_transaction_cnt)==null?void 0:d.toLocaleString()})]}),u.jsxs(V,{direction:"column",gap:vh,children:[u.jsx(yh,{label:"Non-votes",value:(f=o==null?void 0:o.success_nonvote_transaction_cnt)==null?void 0:f.toLocaleString()}),u.jsx(yh,{label:"Non-vote Failures",value:(p=o==null?void 0:o.failed_nonvote_transaction_cnt)==null?void 0:p.toLocaleString()})]})]})}function yh({label:e,value:t,popoverDropdown:n,icon:r,vertical:i=!1,allowCopy:o=!1}){return u.jsxs(V,{gapX:"2",direction:i?"column":"row",children:[u.jsx(Za,{className:at.label,children:e}),n===void 0?u.jsx(Dg,{className:at.copyButton,size:14,value:o?t==null?void 0:t.toString():void 0,hideIconUntilHover:!0,children:u.jsxs(Za,{truncate:!0,className:at.value,children:[t,r&&` ${r}`]})}):n]})}function Q_t({slot:e,isLgScreen:t}){var a,s;const{peer:n,isLeader:r,name:i,pubkey:o}=ma(e??0);return t?u.jsxs(V,{gapX:"10px",align:"center",children:[u.jsx(ks,{url:(a=n==null?void 0:n.info)==null?void 0:a.icon_url,size:42,isYou:r}),u.jsxs(V,{direction:"column",gapY:"1px",minWidth:"0",children:[u.jsx(qk,{content:i,children:u.jsx(q,{truncate:!0,className:Te(at.name,at.lg),children:i})}),u.jsx(Ipe,{slot:e,pubkey:o})]})]}):u.jsxs(V,{direction:"column",children:[u.jsxs(V,{gapX:vh,align:"center",children:[u.jsx(ks,{url:(s=n==null?void 0:n.info)==null?void 0:s.icon_url,size:15,isYou:r}),u.jsx(qk,{content:i,children:u.jsx(q,{truncate:!0,className:at.name,children:i})})]}),u.jsx(Ipe,{slot:e,pubkey:o})]})}function Ipe({slot:e,pubkey:t}){return u.jsxs(V,{gapX:vh,align:"center",children:[u.jsx(Dg,{className:at.copyButton,size:14,value:t,hideIconUntilHover:!0,children:u.jsx(Za,{truncate:!0,className:at.value,children:t})}),u.jsx(O_,{slot:e,size:"large"})]})}function Epe({vertical:e=!1,slotCompletedTimeNanos:t}){const n=m.useMemo(()=>{if(t!=null)return kk(t)},[t]);return u.jsx(yh,{label:"Slot Time",popoverDropdown:t&&n?u.jsx(oP,{nanoTs:t,lines:[n.inMillis],textClassName:Te("mono-text",at.value),triggerClassName:at.timePopover}):void 0,vertical:e})}function Npe({slot:e,vertical:t=!1}){var r;const n=(r=tc(e).response)==null?void 0:r.scheduler_stats;return u.jsx(yh,{label:"Block Hash",value:_i?"Not available for Frankendancer":n==null?void 0:n.block_hash,vertical:t,allowCopy:!_i&&(n==null?void 0:n.block_hash)!=null})}function ext(){var t;const e=X(Cn);return(t=tc(e).response)!=null&&t.limits?u.jsxs(u.Fragment,{children:[u.jsx(J_t,{}),u.jsx(so,{children:u.jsxs(V,{gap:vpe,wrap:"wrap",flexBasis:"0",children:[u.jsx(o_t,{}),u.jsx(I_t,{}),u.jsx(V_t,{})]})})]}):u.jsx(txt,{})}function txt(){return u.jsx(so,{style:{display:"flex",flexGrow:"1",height:"550px",justifyContent:"center",alignItems:"center"},children:u.jsx(q,{children:"Loading Slot Statistics..."})})}function nxt({children:e}){const t=m.useRef(new Map),n=m.useRef(new Map),r=m.useMemo(()=>({registerControl:(i,o,a)=>(t.current.set(i,o),n.current.set(i,a),()=>{t.current.delete(i),n.current.delete(i)}),triggerControl:(i,o)=>{var a;(a=t.current.get(i))==null||a(o)},resetControl:i=>{var o;(o=n.current.get(i))==null||o()},resetAllControls:i=>{for(const[o,a]of n.current)i!=null&&i.includes(o)||a()}}),[]);return u.jsx(N1.Provider,{value:r,children:e})}function rxt(){const e=X(Cn),[t,n]=m.useState(!1),r=X(gd.state)===Xf.NotReady;return m.useEffect(()=>{if(r&&!t){const i=setTimeout(()=>n(!0),2500);return()=>clearTimeout(i)}},[r,n,t]),r&&!t?null:e===void 0?u.jsx(sbt,{}):u.jsx(ixt,{})}function ixt(){if(X(Cn)!==void 0)return u.jsxs(V,{direction:"column",gap:"2",flexGrow:"1",children:[u.jsx(zbt,{}),u.jsxs(nxt,{children:[u.jsx(ext,{}),u.jsx(Bfe,{}),u.jsx(C1t,{}),u.jsx(qyt,{})]})]})}const oxt=ca(),axt=kt({slot:oe().optional().catch(void 0)}),$pe=up("/slotDetails")({validateSearch:axt,component:rxt,beforeLoad:({search:{slot:e}})=>oxt.set(gd.slot,e)}),sxt="_card_ybszl_1",lxt="_name-text_ybszl_8",uxt="_pubkey-text_ybszl_14",cxt="_narrow-screen_ybszl_21",dxt="_two-away_ybszl_27",fxt="_one-away_ybszl_33",hxt="_time-till_ybszl_38",mc={card:sxt,nameText:lxt,pubkeyText:uxt,narrowScreen:cxt,twoAway:dxt,oneAway:fxt,timeTill:hxt},pxt="_my-slots_kxi8u_1",mxt="_scroll_kxi8u_7",GS={mySlots:pxt,scroll:mxt};var Om=(e=>(e.Past="Past",e.Now="Now",e.Upcoming="Upcoming",e))(Om||{});function gxt(e,t){return et?Om.Upcoming:Om.Now}function vxt({currentLeaderSlot:e,searchLeaderSlots:t,slotOverride:n,curCardCount:r=0,cardCount:i=1}){const o=t.toReversed();if(n===void 0){if(o.length<=i)return o[r];{const a=o.findIndex(l=>lMath.abs(c-n)),s=Math.min(...a),l=Math.max(a.indexOf(s)-3,0);return o[r+l]}}function yxt({cardCount:e,currentLeaderSlot:t,epoch:n,searchLeaderSlots:r,slotOverride:i,topSlot:o}){const a=[],s=[],l=[];if(t===void 0)return{upcoming:a,now:s,past:l};for(let c=0;cn.end_slot))continue;const f=gxt(d,t);f===Om.Upcoming&&a.push(d),f===Om.Now&&s.push(d),f===Om.Past&&l.push(d)}return{upcoming:a,now:s,past:l}}function Mpe(e){const{year:t,...n}=jt.DATETIME_MED_WITH_SECONDS;return e.toLocaleString({...n,timeZoneName:"short"})}function bxt({slot:e}){var c,d;const t=X(eu),{pubkey:n,peer:r,isLeader:i,name:o}=ma(e),a=t!==void 0&&e===t+$n,s=t!==void 0&&e===t+$n*2,l=Hn("(min-width: 1250px)");return u.jsx("div",{className:Te(mc.card,{[mc.oneAway]:a,[mc.twoAway]:s,[GS.mySlots]:i}),children:l?u.jsx(_xt,{iconUrl:(c=r==null?void 0:r.info)==null?void 0:c.icon_url,isLeader:i,name:o,pubkey:n,slot:e}):u.jsx(xxt,{iconUrl:(d=r==null?void 0:r.info)==null?void 0:d.icon_url,isLeader:i,name:o,pubkey:n,slot:e})})}function _xt({iconUrl:e,isLeader:t,name:n,pubkey:r,slot:i}){return u.jsxs(V,{gap:"2",align:"center",children:[u.jsxs(V,{gap:"2",minWidth:"300px",width:"505px",align:"center",pr:"20px",children:[u.jsx(ks,{url:e,size:24,isYou:t}),u.jsx(q,{className:mc.nameText,children:n})]}),u.jsx(q,{className:mc.pubkeyText,children:r}),u.jsx(V,{justify:"center",minWidth:"190px",children:u.jsx(q,{children:i})}),u.jsx(Lpe,{slot:i})]})}function xxt({iconUrl:e,isLeader:t,name:n,pubkey:r,slot:i}){return u.jsxs(V,{direction:"column",children:[u.jsxs(V,{gap:"2",align:"center",children:[u.jsx(ks,{url:e,size:16,isYou:t}),u.jsx(q,{className:mc.nameText,children:n}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(q,{className:Te(mc.pubkeyText,mc.narrowScreen),children:r})]}),u.jsxs(V,{justify:"between",children:[u.jsx(q,{children:i}),u.jsx(Lpe,{slot:i,isNarrowScreen:!0})]})]})}function Lpe({slot:e,isNarrowScreen:t}){const n=X(oo),r=X(Eg),i=n?fn.fromMillis(r*(e-n)).rescale():void 0,[o,a]=m.useReducer(Rpe,i,s=>Rpe(void 0,s));if(r_(()=>a(i),1e3),o!==void 0)return u.jsx(V,{className:Te(mc.timeTill,{[mc.narrowScreen]:t}),children:u.jsx(oP,{nanoTs:o.predictedTsNanos,lines:[`${o.dtText} (${o.timeTillText})`]})})}function Rpe(e,t){if(t!==void 0)return{timeTillText:Sp(t),dtText:kxt(t),predictedTsNanos:wxt(t)}}function wxt(e){const t=Kf.plus(e);return BigInt(Math.trunc(t.toSeconds()))*1000000000n}function kxt(e){const t=Kf.plus(e);return Mpe(t)}const Sxt="_card_zlaiw_1",Cxt="_late-vote_zlaiw_7",jxt="_skipped_zlaiw_12",aP={card:Sxt,lateVote:Cxt,skipped:jxt},Txt="_grid_1feao_1",Ixt="_firedancer-grid_1feao_16",Ext="_header-text_1feao_24",Nxt="_vote-latency-header_1feao_30",$xt="_votes-header_1feao_33",Mxt="_non-votes-header_1feao_36",Lxt="_fees-header_1feao_39",Rxt="_tips-header_1feao_42",Oxt="_compute-units-header_1feao_45",Pxt="_compute-units-pct_1feao_50",zxt="_row-text_1feao_55",Dxt="_active_1feao_62",Axt="_slot-text_1feao_68",Kr={grid:Txt,firedancerGrid:Ixt,headerText:Ext,voteLatencyHeader:Nxt,votesHeader:$xt,nonVotesHeader:Mxt,feesHeader:Lxt,tipsHeader:Rxt,computeUnitsHeader:Oxt,computeUnitsPct:Pxt,rowText:zxt,active:Dxt,slotText:Axt},[Fxt,Bxt,Uxt,Wxt]=function(){const e=Co({}),t=fe(0);return[fe(null,(n,r,i,o)=>{const a=n(t);a&&o(a),r(e,s=>{s[i]=o})}),fe(null,(n,r,i)=>{r(e,o=>{delete o[i]})}),fe(null,(n,r,i,o)=>{for(const[a,s]of Object.entries(n(e)))Number(a)!==i&&s(o);r(t,o)}),fe(null,(n,r)=>{r(e,{}),r(t,0)})]}(),Vxt="_slot-text_j49it_1",Hxt={slotText:Vxt};function Zxt({slot:e,isLeader:t,className:n}){const r=Te(n,Hxt.slotText);return t?u.jsx(q,{className:r,children:u.jsx(lp,{to:"/slotDetails",search:{slot:e},children:e})}):u.jsx(q,{className:r,children:e})}function R1({slot:e,currentSlot:t}){const n=m.useRef(null),r=Ee(Fxt),i=Ee(Bxt),o=Ee(Uxt);return m.useEffect(()=>(r(e,a=>{var s;(s=n.current)==null||s.scrollTo(a,0)}),()=>i(e)),[i,r,e]),u.jsxs(V,{minWidth:"0",flexGrow:"1",children:[u.jsx(qxt,{slot:e,currentSlot:t}),u.jsxs("div",{className:Te(Kr.grid,{[Kr.firedancerGrid]:Vi}),ref:n,onScroll:a=>{o(e,a.currentTarget.scrollLeft)},children:[Vi&&u.jsx(q,{className:Te(Kr.headerText,Kr.voteLatencyHeader),align:"right",children:"Vote\xA0Latency"}),u.jsx(q,{className:Te(Kr.headerText,Kr.votesHeader),align:"right",children:"Votes"}),u.jsx(q,{className:Te(Kr.headerText,Kr.nonVotesHeader),align:"right",children:"Non-votes"}),u.jsx(q,{className:Te(Kr.headerText,Kr.feesHeader),align:"right",children:"Fees"}),u.jsx(q,{className:Te(Kr.headerText,Kr.tipsHeader),align:"right",children:"Tips"}),u.jsx(q,{className:Te(Kr.headerText,Kr.durationHeader),align:"right",children:"Duration"}),u.jsx(q,{className:Te(Kr.headerText,Kr.computeUnitsHeader),align:"right",children:"Compute\xA0Units"}),new Array(4).fill(0).map((a,s)=>{const l=e+3-s;return u.jsx(Yxt,{slot:l,active:l===t},l)})]})]})}function qxt({slot:e,currentSlot:t}){return u.jsxs(V,{direction:"column",children:[u.jsx(q,{className:Te(Kr.headerText,Kr.slotText),children:"Slot"}),new Array(4).fill(0).map((n,r)=>{const i=e+3-r,o=i===t;return u.jsx(Gxt,{slot:i,isCurrent:o},i)})]})}function Gxt({slot:e,isCurrent:t}){var o;const n=Is(e),r=OM(e),i=X(dp)===r;return u.jsxs(V,{className:Te(Kr.rowText,Kr.slotText,t&&Kr.active),align:"center",gap:"2",children:[u.jsx(Zxt,{slot:e,isLeader:i}),u.jsx(dpe,{slot:e,isCurrent:t,size:"small"}),(o=n.publish)!=null&&o.skipped?u.jsx(hpe,{size:"small"}):u.jsx(fpe,{size:"small"})]})}function Ope(e,t){const n=jb(e.success_vote_transaction_cnt??0),r=jb(e.success_nonvote_transaction_cnt??0),i=jb(e.failed_vote_transaction_cnt??0),o=jb(e.failed_nonvote_transaction_cnt??0),a=Rs((e.transaction_fee??0n)+(e.priority_fee??0n),Uo,{decimals:Uo,trailingZeroes:!0}),s=e.transaction_fee!=null?(Number(e.transaction_fee)/dd).toString():"0",l=e.priority_fee!=null?(Number(e.priority_fee)/dd).toString():"0",c=Rs(e.tips??0n,Uo,{decimals:Uo,trailingZeroes:!0}),d=e.tips!=null?(Number(e.tips)/dd).toString():"0",f=e.duration_nanos!==null?`${Math.trunc(e.duration_nanos/1e6)} ms`:"-",p=jb((e==null?void 0:e.compute_units)??0),v=e.compute_units!=null?e.compute_units/(e.max_compute_units??Bte)*100:0,_=e.vote_latency!=null?{text:rre(e.slot,e.vote_latency,t).toLocaleString()}:e.skipped?{text:""}:e.level==="rooted"?{text:"\u2715",color:"#FF3C3C"}:{text:"-"};return{voteTxns:(n+i).toLocaleString(),nonVoteTxns:(r+o).toLocaleString(),totalFees:a,transactionFeeFull:s,priorityFeeFull:l,tips:c,tipsFull:d,durationText:f,computeUnits:p,computeUnitsPct:v,voteLatency:_}}function Yxt({slot:e,active:t}){var b;const n=X(Jf),r=X(oo),i=X(Ik),o=Is(e),[a,s]=m.useState(()=>{if(o.publish)return Ope(o.publish,i)});m.useEffect(()=>{o.publish&&s(Ope(o.publish,i))},[o.publish,i,e]);const l=e>(r??1/0),c=e===r,d=m.useRef(),[f,p]=m.useState(!1);o_(c)&&!c&&!f&&(clearTimeout(d.current),d.current=setTimeout(()=>{p(!1)},50),p(!0)),Pg(()=>{clearTimeout(d.current)});const v=e<(n??0),_=(w,x)=>l||c||v?"-":!a&&!o.hasWaitedForData&&!f?"Loading...":a?(typeof w=="number"&&(w=Math.round(w)),`${w}`):"-",y=Te(Kr.rowText,{[Kr.active]:t});return u.jsxs(u.Fragment,{children:[Vi&&u.jsx(q,{className:y,align:"right",style:{color:(b=a==null?void 0:a.voteLatency)==null?void 0:b.color},children:_(a==null?void 0:a.voteLatency.text)}),u.jsx(q,{className:y,align:"right",children:_(a==null?void 0:a.voteTxns)}),u.jsx(q,{className:y,align:"right",children:_(a==null?void 0:a.nonVoteTxns)}),u.jsx(ui,{content:u.jsxs(Zr,{columns:"auto auto",rows:"2",gapX:"3",children:[u.jsx(q,{children:"Transaction"}),u.jsx(q,{children:"Priority"}),u.jsxs(q,{children:[a==null?void 0:a.transactionFeeFull," SOL"]}),u.jsxs(q,{children:[a==null?void 0:a.priorityFeeFull," SOL"]})]}),children:u.jsx(q,{className:y,align:"right",children:_(a==null?void 0:a.totalFees)})}),u.jsx(ui,{content:`${a==null?void 0:a.tipsFull} SOL`,children:u.jsx(q,{className:y,align:"right",children:_(a==null?void 0:a.tips)})}),u.jsx(q,{className:y,align:"right",children:_(a==null?void 0:a.durationText)}),(a==null?void 0:a.computeUnits)!==void 0?u.jsx(q,{className:y,align:"right",style:{padding:0},children:u.jsxs(u.Fragment,{children:[_(a==null?void 0:a.computeUnits.toLocaleString()),u.jsx("span",{className:Kr.computeUnitsPct,children:(a==null?void 0:a.computeUnitsPct)!==void 0?`${uk}(${_(a==null?void 0:a.computeUnitsPct)}%)`:null})]})}):u.jsx(q,{className:y,align:"right",children:_()})]})}const Kxt="_my-slots_476vd_1",Xxt="_summary-container_476vd_8",Jxt="_name_476vd_13",Qxt="_you_476vd_22",e2t="_mobile_476vd_26",t2t="_primary-text_476vd_32",n2t="_secondary-text_476vd_40",r2t="_divider_476vd_47",i2t="_firedancer_476vd_55",o2t="_frankendancer_476vd_59",a2t="_agave_476vd_63",s2t="_jito_476vd_67",l2t="_paladin_476vd_71",u2t="_bam_476vd_75",c2t="_sig_476vd_79",d2t="_rakurai_476vd_83",f2t="_harmonic_476vd_89",h2t="_major-minor-version-text_476vd_93",p2t="_remaining-version-text_476vd_97",m2t="_time-ago_476vd_102",g2t="_right-aligned_476vd_105",Go={mySlots:Kxt,summaryContainer:Xxt,name:Jxt,you:Qxt,mobile:e2t,primaryText:t2t,secondaryText:n2t,divider:r2t,firedancer:i2t,frankendancer:o2t,agave:a2t,jito:s2t,paladin:l2t,bam:u2t,sig:c2t,rakurai:d2t,harmonic:f2t,majorMinorVersionText:h2t,remainingVersionText:p2t,timeAgo:m2t,rightAligned:g2t},v2t="_arrow-dropdown_mvcj2_1",y2t={arrowDropdown:v2t};function b2t({align:e,children:t}){const[n,r]=m.useState(!1);return u.jsx(zg,{align:e,content:t,isOpen:n,onOpenChange:r,children:u.jsx(hs,{variant:"ghost",size:"1",className:y2t.arrowDropdown,children:n?u.jsx(F$,{}):u.jsx(A$,{})})})}function Ppe({slot:e,showTime:t}){var a;const{pubkey:n,peer:r,isLeader:i,name:o}=ma(e);return u.jsxs(V,{direction:"column",className:Go.summaryContainer,gap:"2",mr:"2",children:[u.jsxs(V,{gap:"1",children:[u.jsx(ks,{url:(a=r==null?void 0:r.info)==null?void 0:a.icon_url,size:30,isYou:i}),u.jsx(q,{className:Te(Go.name,{[Go.you]:i}),children:o})]}),u.jsx(q,{className:Go.primaryText,children:n}),u.jsx(Fpe,{slot:e,peer:r,showTime:t})]})}function zpe({slot:e,showTime:t}){var a;const{pubkey:n,peer:r,isLeader:i,name:o}=ma(e);return u.jsxs(V,{direction:"column",gap:"1",children:[u.jsxs(V,{gap:"1",children:[u.jsx(ks,{url:(a=r==null?void 0:r.info)==null?void 0:a.icon_url,size:16,isYou:i}),u.jsx(q,{className:Te(Go.name,Go.mobile),children:o}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(q,{className:Go.primaryText,children:n})]}),u.jsx(Fpe,{slot:e,peer:r,showTime:t,full:!0})]})}function Dpe({slot:e,showTime:t}){var a;const{pubkey:n,peer:r,isLeader:i,name:o}=ma(e);return u.jsxs(V,{gap:"1",children:[u.jsx(ks,{url:(a=r==null?void 0:r.info)==null?void 0:a.icon_url,size:16,isYou:i}),u.jsx(q,{className:Go.primaryText,children:o}),u.jsx(b2t,{align:"start",children:u.jsxs(V,{p:"1",direction:"column",gap:"2",className:Go.mobile,children:[u.jsx(q,{children:n}),u.jsx(_2t,{slot:e,peer:r,showTime:t})]})})]})}function Ape(e){var p;const t=X(Ig),{client:n,version:r,countryCode:i,countryFlag:o,cityName:a}=PM(e),s=e?nre(e):void 0,l=t?t.activeStake+t.delinquentStake:0n,c=l>0n?Number(s)/Number(l)*100:void 0,d=s!==void 0?`${BN(s)}${c!==void 0?` \u2022 ${P$(c,{significantDigits:4,trailingZeroes:!1})}%`:""}`:void 0,f=HN(((p=e==null?void 0:e.gossip)==null?void 0:p.sockets.tvu)??"");return!Cb(n)&&!Cb(d)&&!f?null:{client:n,version:r,countryCode:i,countryFlag:o,cityName:a,stakeText:d??"",ipText:f||"Offline"}}function Fpe({slot:e,peer:t,showTime:n,full:r}){const i=Ape(t);if(!i)return null;const{client:o,version:a,countryCode:s,countryFlag:l,cityName:c,stakeText:d,ipText:f}=i;return u.jsxs(V,{gap:"4",minWidth:"0",justify:"between",className:Go.secondaryText,children:[u.jsxs(V,{direction:"column",minWidth:"0",children:[u.jsx(ui,{content:`${o??"Unknown"}${a!=null?` v${a}`:""}`,children:u.jsxs(V,{gap:"1",children:[u.jsx(V,{width:"26px",align:"center",flexShrink:"0",children:u.jsx(O_,{slot:e,size:"medium"})}),u.jsx(Upe,{client:o,version:a})]})}),c&&s&&u.jsx(ui,{content:`${c}, ${s}`,children:u.jsxs(V,{gap:"1",children:[u.jsx(V,{width:"26px",align:"center",flexShrink:"0",children:u.jsx(q,{children:l})}),u.jsx(Bpe,{cityName:c,countryCode:s})]})})]}),u.jsxs(V,{gap:"4",children:[u.jsxs(V,{direction:"column",width:"180px",align:r?"end":"start",children:[u.jsx(q,{children:d}),u.jsx(q,{children:f})]}),u.jsx(V,{width:"165px",justify:r?"end":"start",children:n&&u.jsx(Wpe,{slot:e,align:r?"right":"left",multiline:!0})})]})]})}function _2t({slot:e,peer:t,showTime:n}){const r=Ape(t);if(!r)return null;const{client:i,version:o,countryCode:a,countryFlag:s,cityName:l,stakeText:c,ipText:d}=r;return u.jsxs(V,{gap:"2",minWidth:"0",justify:"between",direction:"column",children:[u.jsxs(V,{gap:"1",children:[u.jsx(O_,{slot:e,size:"small"}),u.jsx(Upe,{client:i,version:o})]}),l&&a&&u.jsxs(V,{gap:"1",children:[u.jsx(q,{children:s}),u.jsx(Bpe,{cityName:l,countryCode:a})]}),u.jsx(q,{children:c}),u.jsx(q,{children:d}),n&&u.jsx(Mt,{children:u.jsx(Wpe,{slot:e,align:"left"})})]})}function Bpe({cityName:e,countryCode:t}){return u.jsxs(V,{minWidth:"0",children:[u.jsx(q,{truncate:!0,children:e}),u.jsxs(q,{children:["\xA0",t]})]})}function Upe({client:e,version:t}){const n=(e??"Unknown").split(" "),r=n[0],i=n[1],o=Go[r.toLowerCase()],a=t==null?void 0:t.match(/^(\d+\.\d+)(\..+)$/),s=a?a[1]:t??"",l=a?a[2]:"";return u.jsxs(V,{minWidth:"0",children:[u.jsxs(q,{truncate:!0,children:[u.jsx(q,{className:o,children:r}),i&&u.jsxs(q,{className:Go[i.toLowerCase()],children:["\xA0",i]}),t&&u.jsx(q,{children:"\xA0"})]}),t&&u.jsxs(q,{className:Te(Go.majorMinorVersionText,o),children:["v",s]}),l&&u.jsx(q,{truncate:!0,className:Te(Go.remainingVersionText,o),children:l})]})}function Wpe({slot:e,align:t,multiline:n=!1}){const{slotTimestampNanos:r,slotDateTime:i,timeAgoText:o}=npe(e);if(r===void 0)return;const a=i?Mpe(i):"",s=o?n?[a,o]:[`${a} (${o})`]:[a];return u.jsx(oP,{nanoTs:r,lines:s,textClassName:Te(Go.timeAgo,{[Go.rightAligned]:t==="right"})})}const Vpe="(min-width: 900px)",sP="(min-width: 600px)";function x2t({slot:e}){var f,p,v,_;const{isLeader:t}=ma(e),n=X(jre),r=Is(e),i=Is(e+1),o=Is(e+2),a=Is(e+3),s=[0,1,2,3].some(y=>n.has(e+y)),l=((f=r.publish)==null?void 0:f.skipped)||((p=i.publish)==null?void 0:p.skipped)||((v=o.publish)==null?void 0:v.skipped)||((_=a.publish)==null?void 0:_.skipped),c=Hn(Vpe),d=Hn(sP);return u.jsx("div",{className:Te(aP.card,{[GS.mySlots]:t,[aP.lateVote]:s,[aP.skipped]:l}),children:c?u.jsxs(V,{gap:"1",align:"start",justify:"between",children:[u.jsx(Ppe,{slot:e,showTime:!0}),u.jsx(R1,{slot:e})]}):d?u.jsxs(V,{direction:"column",gap:"1",children:[u.jsx(zpe,{slot:e,showTime:!0}),u.jsx(R1,{slot:e})]}):u.jsxs(V,{direction:"column",gap:"1",children:[u.jsx(Dpe,{slot:e,showTime:!0}),u.jsx(R1,{slot:e})]})})}const w2t="_card_wweyx_1",k2t={card:w2t};function S2t({slot:e}){const t=X(oo),{isLeader:n}=ma(e),r=Hn(Vpe),i=Hn(sP);return u.jsx("div",{className:Te(k2t.card,{[GS.mySlots]:n}),children:r?u.jsxs(V,{gap:"1",align:"start",justify:"between",children:[u.jsx(Ppe,{slot:e}),u.jsx(R1,{slot:e,currentSlot:t})]}):i?u.jsxs(V,{direction:"column",gap:"1",children:[u.jsx(zpe,{slot:e}),u.jsx(R1,{slot:e,currentSlot:t})]}):u.jsxs(V,{direction:"column",gap:"1",children:[u.jsx(Dpe,{slot:e}),u.jsx(R1,{slot:e,currentSlot:t})]})})}var C2t=Object.defineProperty,j2t=(e,t,n)=>t in e?C2t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,YS=(e,t,n)=>j2t(e,typeof t!="symbol"?t+"":t,n),lP=new Map,uP=new WeakMap,Hpe=0,T2t=void 0;function I2t(e){return e?(uP.has(e)||(Hpe+=1,uP.set(e,Hpe.toString())),uP.get(e)):"0"}function E2t(e){return Object.keys(e).sort().filter(t=>e[t]!==void 0).map(t=>`${t}_${t==="root"?I2t(e.root):e[t]}`).toString()}function N2t(e){const t=E2t(e);let n=lP.get(t);if(!n){const r=new Map;let i;const o=new IntersectionObserver(a=>{a.forEach(s=>{var l;const c=s.isIntersecting&&i.some(d=>s.intersectionRatio>=d);e.trackVisibility&&typeof s.isVisible>"u"&&(s.isVisible=c),(l=r.get(s.target))==null||l.forEach(d=>{d(c,s)})})},e);i=o.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),n={id:t,observer:o,elements:r},lP.set(t,n)}return n}function $2t(e,t,n={},r=T2t){if(typeof window.IntersectionObserver>"u"&&r!==void 0){const l=e.getBoundingClientRect();return t(r,{isIntersecting:r,target:e,intersectionRatio:typeof n.threshold=="number"?n.threshold:0,time:0,boundingClientRect:l,intersectionRect:l,rootBounds:l}),()=>{}}const{id:i,observer:o,elements:a}=N2t(n),s=a.get(e)||[];return a.has(e)||a.set(e,s),s.push(t),o.observe(e),function(){s.splice(s.indexOf(t),1),s.length===0&&(a.delete(e),o.unobserve(e)),a.size===0&&(o.disconnect(),lP.delete(i))}}function M2t(e){return typeof e.children!="function"}var Zpe=class extends m.Component{constructor(e){super(e),YS(this,"node",null),YS(this,"_unobserveCb",null),YS(this,"handleNode",t=>{this.node&&(this.unobserve(),!t&&!this.props.triggerOnce&&!this.props.skip&&this.setState({inView:!!this.props.initialInView,entry:void 0})),this.node=t||null,this.observeNode()}),YS(this,"handleChange",(t,n)=>{t&&this.props.triggerOnce&&this.unobserve(),M2t(this.props)||this.setState({inView:t,entry:n}),this.props.onChange&&this.props.onChange(t,n)}),this.state={inView:!!e.initialInView,entry:void 0}}componentDidMount(){this.unobserve(),this.observeNode()}componentDidUpdate(e){(e.rootMargin!==this.props.rootMargin||e.root!==this.props.root||e.threshold!==this.props.threshold||e.skip!==this.props.skip||e.trackVisibility!==this.props.trackVisibility||e.delay!==this.props.delay)&&(this.unobserve(),this.observeNode())}componentWillUnmount(){this.unobserve()}observeNode(){if(!this.node||this.props.skip)return;const{threshold:e,root:t,rootMargin:n,trackVisibility:r,delay:i,fallbackInView:o}=this.props;this._unobserveCb=$2t(this.node,this.handleChange,{threshold:e,root:t,rootMargin:n,trackVisibility:r,delay:i},o)}unobserve(){this._unobserveCb&&(this._unobserveCb(),this._unobserveCb=null)}render(){const{children:e}=this.props;if(typeof e=="function"){const{inView:v,entry:_}=this.state;return e({inView:v,entry:_,ref:this.handleNode})}const{as:t,triggerOnce:n,threshold:r,root:i,rootMargin:o,onChange:a,skip:s,trackVisibility:l,delay:c,initialInView:d,fallbackInView:f,...p}=this.props;return m.createElement(t||"div",{ref:this.handleNode,...p},e)}};function cP({slot:e,lastCardSlot:t,setCardCount:n,children:r}){return e!==t?r:u.jsxs(u.Fragment,{children:[u.jsx(Zpe,{onChange:i=>{i||n("decrease")},children:r}),u.jsx(Zpe,{onChange:i=>{i&&n("increase")}})]})}const L2t="_preload_1uziq_1",R2t={preload:L2t};function O2t({slot:e}){var a,s;Is(e);const t=OM(e),n=Hk(t),[r,i]=Vl($ie((a=n==null?void 0:n.info)==null?void 0:a.icon_url)),o=!r&&((s=n==null?void 0:n.info)!=null&&s.icon_url)?n.info.icon_url:void 0;return u.jsx("div",{className:R2t.preload,children:u.jsx("img",{src:o,onError:()=>i()})})}const KS=$n*5;function P2t({topCardSlotLeader:e,bottomCardSlotLeader:t,searchLeaderSlots:n}){if(n){const r=[],i=n.indexOf(t),o=n.indexOf(e);if(i>0)for(let a=1;a<=KS&&i-a>=0;a++){const s=n[i-a];for(let l=0;l<$n;l++)r.push(s+l)}if(o>0)for(let a=1;a<=KS&&o+a0)for(let a=r;a>r-KS;a--)o.push(a);if(i>0)for(let a=i;au.jsx(O2t,{slot:i},i))})}const D2t=10,A2t=2,F2t=1;function B2t(e,t){switch(t){case"increase":return e+A2t;case"decrease":return Math.max(1,e-F2t)}}function U2t(){const e=X(eu),t=X(An),n=X(Aa),r=X(di),[i,o]=m.useReducer(B2t,D2t),a=t??(e??0)+Ate*$n,{upcoming:s,now:l,past:c}=m.useMemo(()=>yxt({cardCount:i,currentLeaderSlot:e,epoch:r,searchLeaderSlots:n,slotOverride:t,topSlot:a}),[i,e,r,n,t,a]);if(e===void 0)return;if((n==null?void 0:n.length)===0)return u.jsx(V,{justify:"center",align:"center",style:{color:pN,fontSize:"24px",letterSpacing:"-0.96px",minHeight:"300px"},children:u.jsx(q,{children:"No slots found."})});const d=s[0]??l[0]??c[0]??-1,f=c[c.length-1]??l[l.length-1]??s[s.length-1]??-1;return u.jsxs(u.Fragment,{children:[!!s.length&&u.jsx(dP,{sectionName:"Upcoming",children:s.map(p=>u.jsx(cP,{slot:p,lastCardSlot:f,setCardCount:o,children:u.jsx(bxt,{slot:p},p)},p))}),!!l.length&&u.jsx(dP,{sectionName:"Now",children:l.map(p=>u.jsx(cP,{slot:p,lastCardSlot:f,setCardCount:o,children:u.jsx(S2t,{slot:p},p)},p))}),!!c.length&&u.jsx(dP,{sectionName:"Past",children:c.map(p=>u.jsx(cP,{slot:p,lastCardSlot:f,setCardCount:o,children:u.jsx(x2t,{slot:p})},p))}),u.jsx(z2t,{topCardSlotLeader:d,bottomCardSlotLeader:f})]})}function dP({children:e,sectionName:t}){const n=Hn(sP);return u.jsxs(V,{gap:"2",align:"stretch",children:[n&&u.jsxs(V,{direction:"column",gap:"2",align:"center",children:[u.jsx("div",{style:{width:"1px",flex:1,background:PN,height:"10px"}}),u.jsx(q,{style:{transform:"rotate(180deg)",writingMode:"vertical-rl",color:Kte},size:"2",children:t}),u.jsx("div",{style:{width:"1px",flex:1,background:PN,height:"10px"}})]}),u.jsx(V,{direction:"column",flexGrow:"1",gap:"2",minWidth:"0",children:e})]})}const W2t="_container_1hof6_1",V2t="_button_1hof6_5",qpe={container:W2t,button:V2t};function H2t(){const[e,t]=Vl(An),n=X(eu);if(e===void 0||n===void 0)return null;const r=e<=n+Ate*$n;return u.jsx("div",{className:qpe.container,children:u.jsxs(hs,{className:qpe.button,style:{bottom:r?void 0:"8px"},onClick:()=>t(void 0),children:[u.jsx(q,{children:"Skip to Realtime"}),r?u.jsx(Vie,{}):u.jsx(Wie,{})]})})}const Z2t="_label_14v9a_1",q2t="_value_14v9a_5",Gpe={label:Z2t,value:q2t};function G2t(){const{progressSinceLastLeader:e,nextSlotText:t,nextLeaderSlot:n}=P_({showNowIfCurrent:!0}),r=n!==void 0?` (${n})`:"";return u.jsxs(V,{align:"center",gap:"2",children:[u.jsxs(q,{className:Gpe.label,children:["Next leader slot",r]}),u.jsx(a1,{width:"60px",height:"8px",value:e}),u.jsx(q,{className:Gpe.value,children:t})]})}const Y2t="_container_bc437_1",K2t="_search-box_bc437_18",X2t="_label_bc437_29",J2t="_search-button_bc437_33",Q2t="_disabled_bc437_56",ewt="_my-slots_bc437_64",twt="_late-vote-slots_bc437_84",nwt="_skipped-slots_bc437_102",rwt="_skip-rate-label_bc437_130",iwt="_skip-rate-value_bc437_135",Eo={container:Y2t,searchBox:K2t,label:X2t,searchButton:J2t,disabled:Q2t,mySlots:ewt,lateVoteSlots:twt,skippedSlots:nwt,skipRateLabel:rwt,skipRateValue:iwt};function XS(){const{searchType:e}=yx.useSearch(),t=Q0({from:yx.fullPath}),n=m.useCallback(r=>{t({search:{searchType:r},replace:!0})},[t]);return{searchType:e,setSearchType:n}}function owt(){const{searchText:e}=yx.useSearch(),t=Q0({from:yx.fullPath}),n=m.useCallback(r=>{t({search:{searchText:r,searchType:zi.text},replace:!0})},[t]);return{searchText:e,setSearchText:n}}function awt(){const e=Ee(Fze),t=Ee(An),{searchType:n}=XS(),{searchText:r,setSearchText:i}=owt(),[o,a]=m.useState(r),s=Ip(c=>{e(c),i(c)},1e3);m.useEffect(()=>{!s.isPending()&&o!==r&&a(r)},[s,o,r]);const l=()=>{i(""),t(void 0),e("")};return i_(()=>{n===zi.text&&e(r)}),u.jsxs(V,{className:Eo.container,gap:"2",wrap:"wrap",children:[u.jsx(Mt,{className:Eo.searchBox,children:u.jsxs(J7,{placeholder:"Name, Client Id, Pubkey, or Slot (use , for multiple)",variant:"soft",color:"gray",onChange:c=>{a(c.currentTarget.value),s(c.currentTarget.value)},value:o,children:[u.jsx(M4,{children:u.jsx(qie,{height:"16",width:"16",style:{color:ON}})}),o&&u.jsx(M4,{children:u.jsx(nl,{size:"1",variant:"ghost",children:u.jsx(B$,{height:"14",width:"14",style:{color:ON},onClick:l})})})]})}),u.jsx(lwt,{resetSearchText:l}),Vi&&u.jsx(cwt,{resetSearchText:l}),u.jsx(uwt,{resetSearchText:l}),u.jsx(swt,{}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(G2t,{})]})}function swt(){const e=X(Sre),t=m.useMemo(()=>e?`${(e.skip_rate*100).toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:2})}%`:"-",[e]);return u.jsxs(V,{justify:"center",align:"center",gap:"1",children:[u.jsx(q,{className:Eo.skipRateLabel,children:"Skip Rate"}),u.jsx(q,{className:e!=null&&e.skip_rate?Eo.skipRateValue:Eo.skipRateLabel,children:t})]})}function lwt({resetSearchText:e}){const t=X(ao),n=Ee(Aa),r=Ee(An),{searchType:i,setSearchType:o}=XS(),a=((t==null?void 0:t.length)??0)*4,s=m.useCallback(()=>{n(t)},[n,t]);m.useEffect(()=>{i===zi.mySlots&&n(t)},[t,n]);const l=()=>{e(),r(void 0),i===zi.mySlots?o(zi.text):(o(zi.mySlots),s())},c=i===zi.mySlots,d=!(t!=null&&t.length);return u.jsx(ui,{content:"Number of slots this validator is leader in the current epoch. Toggle to filter",children:u.jsx("div",{children:u.jsx(Z0,{children:u.jsxs(E7,{className:Te(Eo.searchButton,Eo.mySlots,d&&Eo.disabled),onClick:l,"aria-label":"Toggle my slots",pressed:c,disabled:d,children:[u.jsx(q,{className:Eo.label,children:"My Slots"}),u.jsx(q,{children:a})]})})})})}function uwt({resetSearchText:e}){const t=X(u3),n=Ee(Aa),r=Ee(An),{searchType:i,setSearchType:o}=XS(),a=(t==null?void 0:t.length)??0,s=m.useCallback(()=>{const f=t==null?void 0:t.map(p=>p-p%4);n([...new Set(f)])},[n,t]);m.useEffect(()=>{i===zi.skippedSlots&&s()},[s]);const l=()=>{e(),r(void 0),i===zi.skippedSlots?o(zi.text):t!=null&&t.length&&(o(zi.skippedSlots),s())},c=i===zi.skippedSlots,d=!(t!=null&&t.length);return u.jsx(ui,{content:"Number of slots this validator has skipped in the current epoch since it was last restarted. Toggle to filter",children:u.jsx("div",{children:u.jsx(Z0,{children:u.jsxs(E7,{className:Te(Eo.searchButton,Eo.skippedSlots,d&&Eo.disabled),onClick:l,"aria-label":"Toggle skipped slots",pressed:c,disabled:!c&&d,children:[u.jsx(q,{className:Eo.label,children:"My Skipped Slots"}),u.jsx(q,{children:a})]})})})})}function cwt({resetSearchText:e}){const t=X(jre),n=Ee(Aa),r=Ee(An),{searchType:i,setSearchType:o}=XS(),a=t.size,s=m.useMemo(()=>Array.from(new Set([...t].map(p=>xi(p)))),[t]),l=m.useCallback(()=>{n(s)},[n,s]);m.useEffect(()=>{i===zi.lateVoteSlots&&n(s)},[s,n]);const c=()=>{e(),r(void 0),i===zi.lateVoteSlots?o(zi.text):(o(zi.lateVoteSlots),l())},d=i===zi.lateVoteSlots,f=!t.size;return u.jsx(ui,{content:"Number of slots this validator has voted late in the current epoch. Toggle to filter",children:u.jsx("div",{children:u.jsx(Z0,{children:u.jsxs(E7,{className:Te(Eo.searchButton,Eo.lateVoteSlots,f&&Eo.disabled),onClick:c,"aria-label":"Toggle late vote slots",pressed:d,disabled:f,children:[u.jsx(q,{className:Eo.label,children:"My Late Votes"}),u.jsx(q,{children:a})]})})})})}var Ype={exports:{}};/*! Hammer.JS - v2.0.7 - 2016-04-22 -* http://hammerjs.github.io/ -* -* Copyright (c) 2016 Jorik Tangelder; -* Licensed under the MIT license */(function(e){(function(t,n,r,i){var o=["","webkit","Moz","MS","ms","o"],a=n.createElement("div"),s="function",l=Math.round,c=Math.abs,d=Date.now;function f(R,G,ie){return setTimeout(S(R,ie),G)}function p(R,G,ie){return Array.isArray(R)?(v(R,ie[G],ie),!0):!1}function v(R,G,ie){var Ie;if(R)if(R.forEach)R.forEach(G,ie);else if(R.length!==i)for(Ie=0;Ie\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",Kt=t.console&&(t.console.warn||t.console.log);return Kt&&Kt.call(t.console,Ie,vt),R.apply(this,arguments)}}var y;typeof Object.assign!="function"?y=function(R){if(R===i||R===null)throw new TypeError("Cannot convert undefined or null to object");for(var G=Object(R),ie=1;ie-1}function M(R){return R.trim().split(/\s+/g)}function P(R,G,ie){if(R.indexOf&&!ie)return R.indexOf(G);for(var Ie=0;IeDi[G]}),Ie}function O(R,G){for(var ie,Ie,ze=G[0].toUpperCase()+G.slice(1),vt=0;vt1&&!ie.firstMultiple?ie.firstMultiple=pn(G):ze===1&&(ie.firstMultiple=!1);var vt=ie.firstInput,Kt=ie.firstMultiple,In=Kt?Kt.center:vt.center,Di=G.center=Yn(Ie);G.timeStamp=d(),G.deltaTime=G.timeStamp-vt.timeStamp,G.angle=Pn(In,Di),G.distance=wr(In,Di),De(ie,G),G.offsetDirection=Kn(G.deltaX,G.deltaY);var Ti=fr(G.deltaTime,G.deltaX,G.deltaY);G.overallVelocityX=Ti.x,G.overallVelocityY=Ti.y,G.overallVelocity=c(Ti.x)>c(Ti.y)?Ti.x:Ti.y,G.scale=Kt?tr(Kt.pointers,Ie):1,G.rotation=Kt?$r(Kt.pointers,Ie):0,G.maxPointers=ie.prevInput?G.pointers.length>ie.prevInput.maxPointers?G.pointers.length:ie.prevInput.maxPointers:G.pointers.length,Dt(ie,G);var Ji=R.element;$(G.srcEvent.target,Ji)&&(Ji=G.srcEvent.target),G.target=Ji}function De(R,G){var ie=G.center,Ie=R.offsetDelta||{},ze=R.prevDelta||{},vt=R.prevInput||{};(G.eventType===he||vt.eventType===re)&&(ze=R.prevDelta={x:vt.deltaX||0,y:vt.deltaY||0},Ie=R.offsetDelta={x:ie.x,y:ie.y}),G.deltaX=ze.x+(ie.x-Ie.x),G.deltaY=ze.y+(ie.y-Ie.y)}function Dt(R,G){var ie=R.lastInterval||G,Ie=G.timeStamp-ie.timeStamp,ze,vt,Kt,In;if(G.eventType!=ge&&(Ie>ke||ie.velocity===i)){var Di=G.deltaX-ie.deltaX,Ti=G.deltaY-ie.deltaY,Ji=fr(Ie,Di,Ti);vt=Ji.x,Kt=Ji.y,ze=c(Ji.x)>c(Ji.y)?Ji.x:Ji.y,In=Kn(Di,Ti),R.lastInterval=G}else ze=ie.velocity,vt=ie.velocityX,Kt=ie.velocityY,In=ie.direction;G.velocity=ze,G.velocityX=vt,G.velocityY=Kt,G.direction=In}function pn(R){for(var G=[],ie=0;ie=c(G)?R<0?pe:ye:G<0?Se:Ce}function wr(R,G,ie){ie||(ie=St);var Ie=G[ie[0]]-R[ie[0]],ze=G[ie[1]]-R[ie[1]];return Math.sqrt(Ie*Ie+ze*ze)}function Pn(R,G,ie){ie||(ie=St);var Ie=G[ie[0]]-R[ie[0]],ze=G[ie[1]]-R[ie[1]];return Math.atan2(ze,Ie)*180/Math.PI}function $r(R,G){return Pn(G[1],G[0],ut)+Pn(R[1],R[0],ut)}function tr(R,G){return wr(G[0],G[1],ut)/wr(R[0],R[1],ut)}var kr={mousedown:he,mousemove:ue,mouseup:re},ni="mousedown",uo="mousemove mouseup";function Ki(){this.evEl=ni,this.evWin=uo,this.pressed=!1,ct.apply(this,arguments)}x(Ki,ct,{handler:function(R){var G=kr[R.type];G&he&&R.button===0&&(this.pressed=!0),G&ue&&R.which!==1&&(G=re),this.pressed&&(G&re&&(this.pressed=!1),this.callback(this.manager,G,{pointers:[R],changedPointers:[R],pointerType:je,srcEvent:R}))}});var No={pointerdown:he,pointermove:ue,pointerup:re,pointercancel:ge,pointerout:ge},Os={2:U,3:ae,4:je,5:me},zn="pointerdown",co="pointermove pointerup pointercancel";t.MSPointerEvent&&!t.PointerEvent&&(zn="MSPointerDown",co="MSPointerMove MSPointerUp MSPointerCancel");function _a(){this.evEl=zn,this.evWin=co,ct.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}x(_a,ct,{handler:function(R){var G=this.store,ie=!1,Ie=R.type.toLowerCase().replace("ms",""),ze=No[Ie],vt=Os[R.pointerType]||R.pointerType,Kt=vt==U,In=P(G,R.pointerId,"pointerId");ze&he&&(R.button===0||Kt)?In<0&&(G.push(R),In=G.length-1):ze&(re|ge)&&(ie=!0),!(In<0)&&(G[In]=R,this.callback(this.manager,ze,{pointers:G,changedPointers:[R],pointerType:vt,srcEvent:R}),ie&&G.splice(In,1))}});var yc={touchstart:he,touchmove:ue,touchend:re,touchcancel:ge},bc="touchstart",_c="touchstart touchmove touchend touchcancel";function qa(){this.evTarget=bc,this.evWin=_c,this.started=!1,ct.apply(this,arguments)}x(qa,ct,{handler:function(R){var G=yc[R.type];if(G===he&&(this.started=!0),!!this.started){var ie=kl.call(this,R,G);G&(re|ge)&&ie[0].length-ie[1].length===0&&(this.started=!1),this.callback(this.manager,G,{pointers:ie[0],changedPointers:ie[1],pointerType:U,srcEvent:R})}}});function kl(R,G){var ie=te(R.touches),Ie=te(R.changedTouches);return G&(re|ge)&&(ie=Z(ie.concat(Ie),"identifier")),[ie,Ie]}var pi={touchstart:he,touchmove:ue,touchend:re,touchcancel:ge},Bn="touchstart touchmove touchend touchcancel";function Mr(){this.evTarget=Bn,this.targetIds={},ct.apply(this,arguments)}x(Mr,ct,{handler:function(R){var G=pi[R.type],ie=$o.call(this,R,G);ie&&this.callback(this.manager,G,{pointers:ie[0],changedPointers:ie[1],pointerType:U,srcEvent:R})}});function $o(R,G){var ie=te(R.touches),Ie=this.targetIds;if(G&(he|ue)&&ie.length===1)return Ie[ie[0].identifier]=!0,[ie,ie];var ze,vt,Kt=te(R.changedTouches),In=[],Di=this.target;if(vt=ie.filter(function(Ti){return $(Ti.target,Di)}),G===he)for(ze=0;ze-1&&Ie.splice(vt,1)};setTimeout(ze,fo)}}function Yt(R){for(var G=R.srcEvent.clientX,ie=R.srcEvent.clientY,Ie=0;Ie-1&&this.requireFail.splice(G,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(R){return!!this.simultaneous[R.id]},emit:function(R){var G=this,ie=this.state;function Ie(ze){G.manager.emit(ze,R)}ie=ji&&Ie(G.options.event+Pd(ie))},tryEmit:function(R){if(this.canEmit())return this.emit(R);this.state=go},canEmit:function(){for(var R=0;RG.threshold&&ze&G.direction},attrTest:function(R){return Xi.prototype.attrTest.call(this,R)&&(this.state&Wr||!(this.state&Wr)&&this.directionTest(R))},emit:function(R){this.pX=R.deltaX,this.pY=R.deltaY;var G=zd(R.direction);G&&(R.additionalEvent=this.options.event+G),this._super.emit.call(this,R)}});function xc(){Xi.apply(this,arguments)}x(xc,Xi,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Ko]},attrTest:function(R){return this._super.attrTest.call(this,R)&&(Math.abs(R.scale-1)>this.options.threshold||this.state&Wr)},emit:function(R){if(R.scale!==1){var G=R.scale<1?"in":"out";R.additionalEvent=this.options.event+G}this._super.emit.call(this,R)}});function _u(){Xo.apply(this,arguments),this._timer=null,this._input=null}x(_u,Xo,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Ga]},process:function(R){var G=this.options,ie=R.pointers.length===G.pointers,Ie=R.distanceG.time;if(this._input=R,!Ie||!ie||R.eventType&(re|ge)&&!ze)this.reset();else if(R.eventType&he)this.reset(),this._timer=f(function(){this.state=gi,this.tryEmit()},G.time,this);else if(R.eventType&re)return gi;return go},reset:function(){clearTimeout(this._timer)},emit:function(R){this.state===gi&&(R&&R.eventType&re?this.manager.emit(this.options.event+"up",R):(this._input.timeStamp=d(),this.manager.emit(this.options.event,this._input)))}});function wc(){Xi.apply(this,arguments)}x(wc,Xi,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Ko]},attrTest:function(R){return this._super.attrTest.call(this,R)&&(Math.abs(R.rotation)>this.options.threshold||this.state&Wr)}});function kc(){Xi.apply(this,arguments)}x(kc,Xi,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Be|Ge,pointers:1},getTouchAction:function(){return ii.prototype.getTouchAction.call(this)},attrTest:function(R){var G=this.options.direction,ie;return G&(Be|Ge)?ie=R.overallVelocity:G&Be?ie=R.overallVelocityX:G&Ge&&(ie=R.overallVelocityY),this._super.attrTest.call(this,R)&&G&R.offsetDirection&&R.distance>this.options.threshold&&R.maxPointers==this.options.pointers&&c(ie)>this.options.velocity&&R.eventType&re},emit:function(R){var G=zd(R.offsetDirection);G&&this.manager.emit(this.options.event+G,R),this.manager.emit(this.options.event,R)}});function Sl(){Xo.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}x(Sl,Xo,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[Ya]},process:function(R){var G=this.options,ie=R.pointers.length===G.pointers,Ie=R.distance0?-1:1)}const hwt=function(){let e=0,t=null;return fe(null,(n,r,i)=>{t&&clearTimeout(t),i*e<0&&(e=0);const o=n(oo);if(o===void 0)return;const a=n(An),s=a&&a=s){const l=e%100;r(Uze,fwt(e/s)),e=l}t=setTimeout(()=>e=0,100)})}();function pwt(){const e=Ee(hwt),t=Ee(Wxt),n=m.useRef(null),r=i=>{i.altKey||i.ctrlKey||i.metaKey||i.shiftKey||!i.deltaY||e(i.deltaY)};return Pg(()=>t()),m.useEffect(()=>{if(!n.current)return;const i=new Kpe(n.current);return i.get("pan").set({direction:Kpe.DIRECTION_VERTICAL}),i.on("panup pandown",o=>{var a;o.pointerType.includes("touch")&&e(-(((a=o.changedPointers[0])==null?void 0:a.movementY)??0)*5)}),()=>{i.destroy()}},[e]),u.jsxs(UZ,{overflow:"hidden",flexShrink:"1",onWheel:r,maxWidth:"100%",className:GS.scroll,ref:n,children:[u.jsx(awt,{}),u.jsx(H2t,{}),u.jsx(V,{direction:"column",gap:"4",children:u.jsx(U2t,{})})]})}const mwt=fe(e=>e(eu)!=null&&!!e(_re));function gwt(){const e=X(mwt),t=Ee(An),n=Ee(Tg);i_(()=>{t(void 0),n(void 0)});const r=i=>{i.button===1&&t(void 0)};if(e)return u.jsx(V,{direction:"column",gap:"4",width:"100%",maxHeight:`calc(100vh - ${kb+Sb+12}px)`,onMouseDown:r,children:u.jsx(pwt,{})})}const Xpe=_s(["mySlots","skippedSlots","lateVoteSlots","text"]),zi=Xpe.enum,vwt={searchType:zi.text,searchText:""},ywt=kt({searchType:Xpe.default(zi.text).catch(zi.text),searchText:Et().default("").catch("")}),yx=up("/leaderSchedule")({component:gwt,validateSearch:ywt,search:{middlewares:[K8e(vwt),Y8e(["searchType","searchText"])]},beforeLoad:({search:e})=>{if(e.searchText.includes(";"))throw uT({to:"/leaderSchedule",search:{...e,searchText:e.searchText.replaceAll(";",",")}})}});function O1({inBytes:e,value:t}){const n=Ug(t)??0;let r="-";if(n!==void 0)if(e){const{value:i,unit:o}=Ib(n);r=`${i.toLocaleString()} ${o}`}else r=Math.trunc(n).toLocaleString();return u.jsx(ti,{align:"right",children:r})}const JS=["ContactInfoV1","Vote","LowestSlot","SnapshotHashes","AccountsHashes","EpochSlots","VersionV1","VersionV2","NodeInstance","DuplicateShred","IncrementalSnapshotHashes","ContactInfoV2","RestartLastVotedForkSlots","RestartHeaviestFork"],bwt=["pull_request","pull_response","push","ping","pong","prune"],fP="30px",gc="10px",hP="160px",Jpe="10px",Qpe=`repeat(auto-fill, minmax(${hP}, 1fr)`,eme="44px",QS="200px",eC="320px",_wt="_header-text_n52ov_1",xwt="_storage-stats-container_n52ov_6",wwt="_root_n52ov_11",Ld={headerText:_wt,storageStatsContainer:xwt,root:wwt};function kwt({storage:e}){const t=m.useMemo(()=>{if(e!=null&&e.count)return e.count.map((n,r)=>{var i,o,a;return{type:JS[r],activeEntries:(i=e.count)==null?void 0:i[r],egressCount:(o=e.count_tx)==null?void 0:o[r],egressBytes:(a=e.bytes_tx)==null?void 0:a[r]}}).sort((n,r)=>r.activeEntries-n.activeEntries)},[e]);if(t)return u.jsxs(V,{className:Ld.storageStatsContainer,direction:"column",gap:gc,minWidth:eC,height:"100%",minHeight:"250px",children:[u.jsx(q,{className:Ld.headerText,children:"Storage Stats"}),u.jsxs(q0,{variant:"surface",className:Ld.root,size:"1",children:[u.jsx(ip,{children:u.jsxs(la,{children:[u.jsx(Wi,{children:"Entry Type"}),u.jsx(Wi,{align:"right",children:"Total Entries"}),u.jsx(Wi,{align:"right",children:"Egress /s"}),u.jsx(Wi,{align:"right",children:"Egress Throughput /s"})]})}),u.jsx(G0,{children:t==null?void 0:t.map(n=>u.jsxs(la,{children:[u.jsx($4,{children:n.type}),u.jsx(ti,{align:"right",children:n.activeEntries.toLocaleString()}),u.jsx(O1,{value:n.egressCount??0}),u.jsx(O1,{value:n.egressBytes??0,inBytes:!0})]},n.type))})]})]})}function tC(){return tC=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Cwt={nivo:["#e8c1a0","#f47560","#f1e15b","#e8a838","#61cdbb","#97e3d5"],category10:d5,accent:f5,dark2:h5,paired:p5,pastel1:m5,pastel2:g5,set1:v5,set2:y5,set3:Y_,tableau10:b5},jwt={brown_blueGreen:tm,purpleRed_green:nm,pink_yellowGreen:rm,purple_orange:im,red_blue:om,red_grey:am,red_yellow_blue:sm,red_yellow_green:lm,spectral:um},Twt={brown_blueGreen:_5,purpleRed_green:x5,pink_yellowGreen:w5,purple_orange:k5,red_blue:S5,red_grey:C5,red_yellow_blue:j5,red_yellow_green:T5,spectral:I5},Iwt={blues:wm,greens:km,greys:Sm,oranges:Tm,purples:Cm,reds:jm,blue_green:cm,blue_purple:dm,green_blue:fm,orange_red:hm,purple_blue_green:pm,purple_blue:mm,purple_red:gm,red_purple:vm,yellow_green_blue:ym,yellow_green:bm,yellow_orange_brown:_m,yellow_orange_red:xm},Ewt={blues:B5,greens:U5,greys:W5,oranges:Z5,purples:V5,reds:H5,turbo:tS,viridis:rS,inferno:oS,magma:iS,plasma:aS,cividis:q5,warm:Y5,cool:K5,cubehelixDefault:G5,blue_green:E5,blue_purple:N5,green_blue:$5,orange_red:M5,purple_blue_green:L5,purple_blue:R5,purple_red:O5,red_purple:P5,yellow_green_blue:z5,yellow_green:D5,yellow_orange_brown:A5,yellow_orange_red:F5};tC({},Cwt,jwt,Iwt);var Nwt={rainbow:J5,sinebow:eS};tC({},Twt,Ewt,Nwt);var $wt=function(e,t){if(typeof e=="function")return e;if(F_(e)){if(function(l){return l.theme!==void 0}(e)){if(t===void 0)throw new Error("Unable to use color from theme as no theme was provided");var n=yl(t,e.theme);if(n===void 0)throw new Error("Color from theme is undefined at path: '"+e.theme+"'");return function(){return n}}if(function(l){return l.from!==void 0}(e)){var r=function(l){return yl(l,e.from)};if(Array.isArray(e.modifiers)){for(var i,o=[],a=function(){var l=i.value,c=l[0],d=l[1];if(c==="brighter")o.push(function(f){return f.brighter(d)});else if(c==="darker")o.push(function(f){return f.darker(d)});else{if(c!=="opacity")throw new Error("Invalid color modifier: '"+c+"', must be one of: 'brighter', 'darker', 'opacity'");o.push(function(f){return f.opacity=d,f})}},s=Swt(e.modifiers);!(i=s()).done;)a();return o.length===0?r:function(l){return o.reduce(function(c,d){return d(c)},qp(r(l))).toString()}}return r}throw new Error("Invalid color spec, you should either specify 'theme' or 'from' when using a config object")}return function(){return e}},nC=function(e,t){return m.useMemo(function(){return $wt(e,t)},[e,t])};_e.oneOfType([_e.string,_e.func,_e.shape({theme:_e.string.isRequired}),_e.shape({from:_e.string.isRequired,modifiers:_e.arrayOf(_e.array)})]);function Nr(){return Nr=Object.assign?Object.assign.bind():function(e){for(var t=1;t=t})},Owt={startAngle:{enter:function(e){return Nr({},e,{endAngle:e.startAngle})},update:function(e){return e},leave:function(e){return Nr({},e,{startAngle:e.endAngle})}},middleAngle:{enter:function(e){var t=e.startAngle+(e.endAngle-e.startAngle)/2;return Nr({},e,{startAngle:t,endAngle:t})},update:function(e){return e},leave:function(e){var t=e.startAngle+(e.endAngle-e.startAngle)/2;return Nr({},e,{startAngle:t,endAngle:t})}},endAngle:{enter:function(e){return Nr({},e,{startAngle:e.endAngle})},update:function(e){return e},leave:function(e){return Nr({},e,{endAngle:e.startAngle})}},innerRadius:{enter:function(e){return Nr({},e,{outerRadius:e.innerRadius})},update:function(e){return e},leave:function(e){return Nr({},e,{innerRadius:e.outerRadius})}},centerRadius:{enter:function(e){var t=e.innerRadius+(e.outerRadius-e.innerRadius)/2;return Nr({},e,{innerRadius:t,outerRadius:t})},update:function(e){return e},leave:function(e){var t=e.innerRadius+(e.outerRadius-e.innerRadius)/2;return Nr({},e,{innerRadius:t,outerRadius:t})}},outerRadius:{enter:function(e){return Nr({},e,{innerRadius:e.outerRadius})},update:function(e){return e},leave:function(e){return Nr({},e,{outerRadius:e.innerRadius})}},pushIn:{enter:function(e){return Nr({},e,{innerRadius:e.innerRadius-e.outerRadius+e.innerRadius,outerRadius:e.innerRadius})},update:function(e){return e},leave:function(e){return Nr({},e,{innerRadius:e.outerRadius,outerRadius:e.outerRadius+e.outerRadius-e.innerRadius})}},pushOut:{enter:function(e){return Nr({},e,{innerRadius:e.outerRadius,outerRadius:e.outerRadius+e.outerRadius-e.innerRadius})},update:function(e){return e},leave:function(e){return Nr({},e,{innerRadius:e.innerRadius-e.outerRadius+e.innerRadius,outerRadius:e.innerRadius})}}},rme=function(e,t){return m.useMemo(function(){var n=Owt[e];return{enter:function(r){return Nr({progress:0},n.enter(r.arc),t?t.enter(r):{})},update:function(r){return Nr({progress:1},n.update(r.arc),t?t.update(r):{})},leave:function(r){return Nr({progress:0},n.leave(r.arc),t?t.leave(r):{})}}},[e,t])},Pwt=function(e,t){var n=pht(e)-Math.PI/2,r=e.innerRadius+(e.outerRadius-e.innerRadius)*t;return k1(n,r)},zwt=function(e){return function(t,n,r,i){return t_([t,n,r,i],function(o,a,s,l){var c=Pwt({startAngle:o,endAngle:a,innerRadius:s,outerRadius:l},e);return"translate("+c.x+","+c.y+")"})}},Dwt=function(e,t,n,r){t===void 0&&(t=.5),n===void 0&&(n="innerRadius");var i=w1(),o=i.animate,a=i.config,s=rme(n,r);return{transition:M$(e,{keys:function(l){return l.id},initial:s.update,from:s.enter,enter:s.update,update:s.update,leave:s.leave,config:a,immediate:!o}),interpolate:zwt(t)}},Awt=function(e){var t=e.center,n=e.data,r=e.transitionMode,i=e.label,o=e.radiusOffset,a=e.skipAngle,s=e.textColor,l=e.component,c=l===void 0?Lwt:l,d=ex(i),f=Ms(),p=nC(s,f),v=m.useMemo(function(){return n.filter(function(x){return Math.abs(ZR(x.arc.endAngle-x.arc.startAngle))>=a})},[n,a]),_=Dwt(v,o,r),y=_.transition,b=_.interpolate,w=c;return u.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:y(function(x,S){return m.createElement(w,{key:S.id,datum:S,label:d(S),style:Nr({},x,{transform:b(x.startAngle,x.endAngle,x.innerRadius,x.outerRadius),textColor:p(S)})})})})},Fwt=function(e){var t=e.label,n=e.style,r=Ms();return u.jsxs(iu.g,{opacity:n.opacity,children:[u.jsx(iu.path,{fill:"none",stroke:n.linkColor,strokeWidth:n.thickness,d:n.path}),u.jsx(iu.text,{transform:n.textPosition,textAnchor:n.textAnchor,dominantBaseline:"central",style:Nr({},r.labels.text,{fill:n.textColor}),children:t})]})},Bwt=function(e){var t=nme(e.startAngle+(e.endAngle-e.startAngle)/2-Math.PI/2);return t1.5*Math.PI?"start":"end"},ime=function(e,t,n,r){var i,o,a=nme(e.startAngle+(e.endAngle-e.startAngle)/2-Math.PI/2),s=k1(a,e.outerRadius+t),l=k1(a,e.outerRadius+t+n);return a1.5*Math.PI?(i="after",o={x:l.x+r,y:l.y}):(i="before",o={x:l.x-r,y:l.y}),{side:i,points:[s,l,o]}},Uwt=CR().x(function(e){return e.x}).y(function(e){return e.y}),Wwt=function(e,t,n,r,i,o,a){return t_([e,t,n,r,i,o,a],function(s,l,c,d,f,p,v){var _=ime({startAngle:s,endAngle:l,outerRadius:d},f,p,v).points;return Uwt(_)})},Vwt=function(e,t,n,r){return t_([e,t,n,r],function(i,o,a,s){return Bwt({startAngle:i,endAngle:o})})},Hwt=function(e,t,n,r,i,o,a,s){return t_([e,t,n,r,i,o,a,s],function(l,c,d,f,p,v,_,y){var b=ime({startAngle:l,endAngle:c,outerRadius:f},p,v,_),w=b.points,x=b.side,S=w[2];return x==="before"?S.x-=y:S.x+=y,"translate("+S.x+","+S.y+")"})},Zwt=function(e){var t=e.data,n=e.offset,r=n===void 0?0:n,i=e.diagonalLength,o=e.straightLength,a=e.skipAngle,s=a===void 0?0:a,l=e.textOffset,c=e.linkColor,d=e.textColor,f=w1(),p=f.animate,v=f.config,_=Ms(),y=nC(c,_),b=nC(d,_),w=function(S,C){return m.useMemo(function(){return Rwt(S,C)},[S,C])}(t,s),x=function(S){var C=S.offset,j=S.diagonalLength,T=S.straightLength,E=S.textOffset,$=S.getLinkColor,A=S.getTextColor;return m.useMemo(function(){return{enter:function(M){return{startAngle:M.arc.startAngle,endAngle:M.arc.endAngle,innerRadius:M.arc.innerRadius,outerRadius:M.arc.outerRadius,offset:C,diagonalLength:0,straightLength:0,textOffset:E,linkColor:$(M),textColor:A(M),opacity:0}},update:function(M){return{startAngle:M.arc.startAngle,endAngle:M.arc.endAngle,innerRadius:M.arc.innerRadius,outerRadius:M.arc.outerRadius,offset:C,diagonalLength:j,straightLength:T,textOffset:E,linkColor:$(M),textColor:A(M),opacity:1}},leave:function(M){return{startAngle:M.arc.startAngle,endAngle:M.arc.endAngle,innerRadius:M.arc.innerRadius,outerRadius:M.arc.outerRadius,offset:C,diagonalLength:0,straightLength:0,textOffset:E,linkColor:$(M),textColor:A(M),opacity:0}}}},[j,T,E,$,A,C])}({offset:r,diagonalLength:i,straightLength:o,textOffset:l,getLinkColor:y,getTextColor:b});return{transition:M$(w,{keys:function(S){return S.id},initial:x.update,from:x.enter,enter:x.update,update:x.update,leave:x.leave,config:v,immediate:!p}),interpolateLink:Wwt,interpolateTextAnchor:Vwt,interpolateTextPosition:Hwt}},qwt=function(e){var t=e.center,n=e.data,r=e.label,i=e.skipAngle,o=e.offset,a=e.diagonalLength,s=e.straightLength,l=e.strokeWidth,c=e.textOffset,d=e.textColor,f=e.linkColor,p=e.component,v=p===void 0?Fwt:p,_=ex(r),y=Zwt({data:n,skipAngle:i,offset:o,diagonalLength:a,straightLength:s,textOffset:c,linkColor:f,textColor:d}),b=y.transition,w=y.interpolateLink,x=y.interpolateTextAnchor,S=y.interpolateTextPosition,C=v;return u.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:b(function(j,T){return m.createElement(C,{key:T.id,datum:T,label:_(T),style:Nr({},j,{thickness:l,path:w(j.startAngle,j.endAngle,j.innerRadius,j.outerRadius,j.offset,j.diagonalLength,j.straightLength),textAnchor:x(j.startAngle,j.endAngle,j.innerRadius,j.outerRadius),textPosition:S(j.startAngle,j.endAngle,j.innerRadius,j.outerRadius,j.offset,j.diagonalLength,j.straightLength,j.textOffset)})})})})},Gwt=function(e){var t=e.datum,n=e.style,r=e.onClick,i=e.onMouseEnter,o=e.onMouseMove,a=e.onMouseLeave,s=m.useCallback(function(f){return r==null?void 0:r(t,f)},[r,t]),l=m.useCallback(function(f){return i==null?void 0:i(t,f)},[i,t]),c=m.useCallback(function(f){return o==null?void 0:o(t,f)},[o,t]),d=m.useCallback(function(f){return a==null?void 0:a(t,f)},[a,t]);return u.jsx(iu.path,{d:n.path,opacity:n.opacity,fill:t.fill||n.color,stroke:n.borderColor,strokeWidth:n.borderWidth,onClick:r?s:void 0,onMouseEnter:i?l:void 0,onMouseMove:o?c:void 0,onMouseLeave:a?d:void 0})},Ywt=function(e,t,n,r,i){return t_([e,t,n,r],function(o,a,s,l){return i({startAngle:o,endAngle:a,innerRadius:Math.max(0,s),outerRadius:Math.max(0,l)})})},Kwt=function(e,t,n){t===void 0&&(t="innerRadius");var r=w1(),i=r.animate,o=r.config,a=rme(t,n);return{transition:M$(e,{keys:function(s){return s.id},initial:a.update,from:a.enter,enter:a.update,update:a.update,leave:a.leave,config:o,immediate:!i}),interpolate:Ywt}},Xwt=function(e){var t=e.center,n=e.data,r=e.arcGenerator,i=e.borderWidth,o=e.borderColor,a=e.onClick,s=e.onMouseEnter,l=e.onMouseMove,c=e.onMouseLeave,d=e.transitionMode,f=e.component,p=f===void 0?Gwt:f,v=Ms(),_=nC(o,v),y=Kwt(n,d,{enter:function(S){return{opacity:0,color:S.color,borderColor:_(S)}},update:function(S){return{opacity:1,color:S.color,borderColor:_(S)}},leave:function(S){return{opacity:0,color:S.color,borderColor:_(S)}}}),b=y.transition,w=y.interpolate,x=p;return u.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:b(function(S,C){return m.createElement(x,{key:C.id,datum:C,style:Nr({},S,{borderWidth:i,path:w(S.startAngle,S.endAngle,S.innerRadius,S.outerRadius,r)}),onClick:a,onMouseEnter:s,onMouseMove:l,onMouseLeave:c})})})},Jwt=function(e,t,n,r,i,o){o===void 0&&(o=!0);var a=[],s=k1(Td(r),n);a.push([s.x,s.y]);var l=k1(Td(i),n);a.push([l.x,l.y]);for(var c=Math.round(Math.min(r,i));c<=Math.round(Math.max(r,i));c++)if(c%90==0){var d=k1(Td(c),n);a.push([d.x,d.y])}a=a.map(function(b){var w=b[0],x=b[1];return[e+w,t+x]}),o&&a.push([e,t]);var f=a.map(function(b){return b[0]}),p=a.map(function(b){return b[1]}),v=Math.min.apply(Math,f),_=Math.max.apply(Math,f),y=Math.min.apply(Math,p);return{points:a,x:v,y,width:_-v,height:Math.max.apply(Math,p)-y}},Qwt=function(e){var t=e===void 0?{}:e,n=t.cornerRadius,r=n===void 0?0:n,i=t.padAngle,o=i===void 0?0:i;return m.useMemo(function(){return tct().innerRadius(function(a){return a.innerRadius}).outerRadius(function(a){return a.outerRadius}).cornerRadius(r).padAngle(o)},[r,o])};function rC(){return rC=Object.assign?Object.assign.bind():function(e){for(var t=1;t11))throw new Error("Invalid size '"+e.size+"' for diverging color scheme '"+e.scheme+"', must be between 3~11");var s=dc(pP[e.scheme][e.size||11]),l=function(f){return s(n(f))};return l.scale=s,l}if(s4t(e.scheme)){if(e.size!==void 0&&(e.size<3||e.size>9))throw new Error("Invalid size '"+e.size+"' for sequential color scheme '"+e.scheme+"', must be between 3~9");var c=dc(pP[e.scheme][e.size||9]),d=function(f){return c(n(f))};return d.scale=c,d}}throw new Error("Invalid colors, when using an object, you should either pass a 'datum' or a 'scheme' property")}return function(){return e}},c4t=function(e,t){return m.useMemo(function(){return u4t(e,t)},[e,t])};function Pm(){return Pm=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(i[n]=e[n]);return i}var d4t=function(e){var t=e.width,n=e.height,r=e.legends,i=e.data,o=e.toggleSerie;return u.jsx(u.Fragment,{children:r.map(function(a,s){var l;return u.jsx(sfe,Pm({},a,{containerWidth:t,containerHeight:n,data:(l=a.data)!=null?l:i,toggleSerie:a.toggleSerie?o:void 0}),s)})})},Ct={id:"id",value:"value",sortByValue:!1,innerRadius:0,padAngle:0,cornerRadius:0,layers:["arcs","arcLinkLabels","arcLabels","legends"],startAngle:0,endAngle:360,fit:!0,activeInnerRadiusOffset:0,activeOuterRadiusOffset:0,borderWidth:0,borderColor:{from:"color",modifiers:[["darker",1]]},enableArcLabels:!0,arcLabel:"formattedValue",arcLabelsSkipAngle:0,arcLabelsRadiusOffset:.5,arcLabelsTextColor:{theme:"labels.text.fill"},enableArcLinkLabels:!0,arcLinkLabel:"id",arcLinkLabelsSkipAngle:0,arcLinkLabelsOffset:0,arcLinkLabelsDiagonalLength:16,arcLinkLabelsStraightLength:24,arcLinkLabelsThickness:1,arcLinkLabelsTextOffset:6,arcLinkLabelsTextColor:{theme:"labels.text.fill"},arcLinkLabelsColor:{theme:"axis.ticks.line.stroke"},colors:{scheme:"nivo"},defs:[],fill:[],isInteractive:!0,animate:!0,motionConfig:"gentle",transitionMode:"innerRadius",tooltip:function(e){var t=e.datum;return u.jsx(WL,{id:t.id,value:t.formattedValue,enableChip:!0,color:t.color})},legends:[],role:"img"},f4t=["points"],h4t=function(e){var t=e.data,n=e.id,r=n===void 0?Ct.id:n,i=e.value,o=i===void 0?Ct.value:i,a=e.valueFormat,s=e.colors,l=s===void 0?Ct.colors:s,c=ex(r),d=ex(o),f=WR(a),p=c4t(l,"id");return m.useMemo(function(){return t.map(function(v){var _,y=c(v),b=d(v),w={id:y,label:(_=v.label)!=null?_:y,hidden:!1,value:b,formattedValue:f(b),data:v};return Pm({},w,{color:p(w)})})},[t,c,d,f,p])},p4t=function(e){var t=e.data,n=e.startAngle,r=e.endAngle,i=e.innerRadius,o=e.outerRadius,a=e.padAngle,s=e.sortByValue,l=e.activeId,c=e.activeInnerRadiusOffset,d=e.activeOuterRadiusOffset,f=e.hiddenIds,p=e.forwardLegendData,v=m.useMemo(function(){var w=act().value(function(x){return x.value}).startAngle(Td(n)).endAngle(Td(r)).padAngle(Td(a));return s||w.sortValues(null),w},[n,r,a,s]),_=m.useMemo(function(){var w=t.filter(function(x){return!f.includes(x.id)});return{dataWithArc:v(w).map(function(x){var S=Math.abs(x.endAngle-x.startAngle);return Pm({},x.data,{arc:{index:x.index,startAngle:x.startAngle,endAngle:x.endAngle,innerRadius:l===x.data.id?i-c:i,outerRadius:l===x.data.id?o+d:o,thickness:o-i,padAngle:x.padAngle,angle:S,angleDeg:ZR(S)}})}),legendData:t.map(function(x){return{id:x.id,label:x.label,color:x.color,hidden:f.includes(x.id),data:x}})}},[v,t,f,l,i,c,o,d]),y=_.legendData,b=m.useRef(p);return m.useEffect(function(){typeof b.current=="function"&&b.current(y)},[b,y]),_},m4t=function(e){var t=e.activeId,n=e.onActiveIdChange,r=e.defaultActiveId,i=t!==void 0,o=m.useState(i||r===void 0?null:r),a=o[0],s=o[1];return{activeId:i?t:a,setActiveId:m.useCallback(function(l){n&&n(l),i||s(l)},[i,n,s])}},g4t=function(e){var t=e.data,n=e.width,r=e.height,i=e.innerRadius,o=i===void 0?Ct.innerRadius:i,a=e.startAngle,s=a===void 0?Ct.startAngle:a,l=e.endAngle,c=l===void 0?Ct.endAngle:l,d=e.padAngle,f=d===void 0?Ct.padAngle:d,p=e.sortByValue,v=p===void 0?Ct.sortByValue:p,_=e.cornerRadius,y=_===void 0?Ct.cornerRadius:_,b=e.fit,w=b===void 0?Ct.fit:b,x=e.activeInnerRadiusOffset,S=x===void 0?Ct.activeInnerRadiusOffset:x,C=e.activeOuterRadiusOffset,j=C===void 0?Ct.activeOuterRadiusOffset:C,T=e.activeId,E=e.onActiveIdChange,$=e.defaultActiveId,A=e.forwardLegendData,M=m4t({activeId:T,onActiveIdChange:E,defaultActiveId:$}),P=M.activeId,te=M.setActiveId,Z=m.useState([]),O=Z[0],J=Z[1],D=m.useMemo(function(){var H,ee=Math.min(n,r)/2,ce=ee*Math.min(o,1),U=n/2,ae=r/2;if(w){var je=Jwt(U,ae,ee,s-90,c-90),me=je.points,ke=lme(je,f4t),he=Math.min(n/ke.width,r/ke.height),ue={width:ke.width*he,height:ke.height*he};ue.x=(n-ue.width)/2,ue.y=(r-ue.height)/2,U=(U-ke.x)/ke.width*ke.width*he+ue.x,ae=(ae-ke.y)/ke.height*ke.height*he+ue.y,H={box:ke,ratio:he,points:me},ee*=he,ce*=he}return{centerX:U,centerY:ae,radius:ee,innerRadius:ce,debug:H}},[n,r,o,s,c,w]),Y=p4t({data:t,startAngle:s,endAngle:c,innerRadius:D.innerRadius,outerRadius:D.radius,padAngle:f,sortByValue:v,activeId:P,activeInnerRadiusOffset:S,activeOuterRadiusOffset:j,hiddenIds:O,forwardLegendData:A}),F=m.useCallback(function(H){J(function(ee){return ee.indexOf(H)>-1?ee.filter(function(ce){return ce!==H}):[].concat(ee,[H])})},[]);return Pm({arcGenerator:Qwt({cornerRadius:y,padAngle:Td(f)}),activeId:P,setActiveId:te,toggleSerie:F},Y,D)},v4t=function(e){var t=e.dataWithArc,n=e.arcGenerator,r=e.centerX,i=e.centerY,o=e.radius,a=e.innerRadius;return m.useMemo(function(){return{dataWithArc:t,arcGenerator:n,centerX:r,centerY:i,radius:o,innerRadius:a}},[t,n,r,i,o,a])},y4t=function(e){var t=e.center,n=e.data,r=e.arcGenerator,i=e.borderWidth,o=e.borderColor,a=e.isInteractive,s=e.onClick,l=e.onMouseEnter,c=e.onMouseMove,d=e.onMouseLeave,f=e.setActiveId,p=e.tooltip,v=e.transitionMode,_=$nt(),y=_.showTooltipFromEvent,b=_.hideTooltip,w=m.useMemo(function(){if(a)return function(j,T){s==null||s(j,T)}},[a,s]),x=m.useMemo(function(){if(a)return function(j,T){y(m.createElement(p,{datum:j}),T),f(j.id),l==null||l(j,T)}},[a,y,f,l,p]),S=m.useMemo(function(){if(a)return function(j,T){y(m.createElement(p,{datum:j}),T),c==null||c(j,T)}},[a,y,c,p]),C=m.useMemo(function(){if(a)return function(j,T){b(),f(null),d==null||d(j,T)}},[a,b,f,d]);return u.jsx(Xwt,{center:t,data:n,arcGenerator:r,borderWidth:i,borderColor:o,transitionMode:v,onClick:w,onMouseEnter:x,onMouseMove:S,onMouseLeave:C})},b4t=["isInteractive","animate","motionConfig","theme","renderWrapper"],_4t=function(e){var t=e.data,n=e.id,r=n===void 0?Ct.id:n,i=e.value,o=i===void 0?Ct.value:i,a=e.valueFormat,s=e.sortByValue,l=s===void 0?Ct.sortByValue:s,c=e.layers,d=c===void 0?Ct.layers:c,f=e.startAngle,p=f===void 0?Ct.startAngle:f,v=e.endAngle,_=v===void 0?Ct.endAngle:v,y=e.padAngle,b=y===void 0?Ct.padAngle:y,w=e.fit,x=w===void 0?Ct.fit:w,S=e.innerRadius,C=S===void 0?Ct.innerRadius:S,j=e.cornerRadius,T=j===void 0?Ct.cornerRadius:j,E=e.activeInnerRadiusOffset,$=E===void 0?Ct.activeInnerRadiusOffset:E,A=e.activeOuterRadiusOffset,M=A===void 0?Ct.activeOuterRadiusOffset:A,P=e.width,te=e.height,Z=e.margin,O=e.colors,J=O===void 0?Ct.colors:O,D=e.borderWidth,Y=D===void 0?Ct.borderWidth:D,F=e.borderColor,H=F===void 0?Ct.borderColor:F,ee=e.enableArcLabels,ce=ee===void 0?Ct.enableArcLabels:ee,U=e.arcLabel,ae=U===void 0?Ct.arcLabel:U,je=e.arcLabelsSkipAngle,me=je===void 0?Ct.arcLabelsSkipAngle:je,ke=e.arcLabelsTextColor,he=ke===void 0?Ct.arcLabelsTextColor:ke,ue=e.arcLabelsRadiusOffset,re=ue===void 0?Ct.arcLabelsRadiusOffset:ue,ge=e.arcLabelsComponent,$e=e.enableArcLinkLabels,pe=$e===void 0?Ct.enableArcLinkLabels:$e,ye=e.arcLinkLabel,Se=ye===void 0?Ct.arcLinkLabel:ye,Ce=e.arcLinkLabelsSkipAngle,Be=Ce===void 0?Ct.arcLinkLabelsSkipAngle:Ce,Ge=e.arcLinkLabelsOffset,xt=Ge===void 0?Ct.arcLinkLabelsOffset:Ge,St=e.arcLinkLabelsDiagonalLength,ut=St===void 0?Ct.arcLinkLabelsDiagonalLength:St,ct=e.arcLinkLabelsStraightLength,bt=ct===void 0?Ct.arcLinkLabelsStraightLength:ct,Qe=e.arcLinkLabelsThickness,Ke=Qe===void 0?Ct.arcLinkLabelsThickness:Qe,De=e.arcLinkLabelsTextOffset,Dt=De===void 0?Ct.arcLinkLabelsTextOffset:De,pn=e.arcLinkLabelsTextColor,Yn=pn===void 0?Ct.arcLinkLabelsTextColor:pn,fr=e.arcLinkLabelsColor,Kn=fr===void 0?Ct.arcLinkLabelsColor:fr,wr=e.arcLinkLabelComponent,Pn=e.defs,$r=Pn===void 0?Ct.defs:Pn,tr=e.fill,kr=tr===void 0?Ct.fill:tr,ni=e.isInteractive,uo=ni===void 0?Ct.isInteractive:ni,Ki=e.onClick,No=e.onMouseEnter,Os=e.onMouseMove,zn=e.onMouseLeave,co=e.tooltip,_a=co===void 0?Ct.tooltip:co,yc=e.activeId,bc=e.onActiveIdChange,_c=e.defaultActiveId,qa=e.transitionMode,kl=qa===void 0?Ct.transitionMode:qa,pi=e.legends,Bn=pi===void 0?Ct.legends:pi,Mr=e.forwardLegendData,$o=e.role,fo=$o===void 0?Ct.role:$o,Lr=qde(P,te,Z),ho=Lr.outerWidth,xa=Lr.outerHeight,it=Lr.margin,Yt=Lr.innerWidth,nr=Lr.innerHeight,ht=h4t({data:t,id:r,value:o,valueFormat:a,colors:J}),ri=g4t({data:ht,width:Yt,height:nr,fit:x,innerRadius:C,startAngle:p,endAngle:_,padAngle:b,sortByValue:l,cornerRadius:T,activeInnerRadiusOffset:$,activeOuterRadiusOffset:M,activeId:yc,onActiveIdChange:bc,defaultActiveId:_c,forwardLegendData:Mr}),Ga=ri.dataWithArc,Ya=ri.legendData,Ko=ri.arcGenerator,mi=ri.centerX,Un=ri.centerY,hr=ri.radius,Sr=ri.innerRadius,Ka=ri.setActiveId,po=ri.toggleSerie,mo=kht($r,Ga,kr),Wr={arcs:null,arcLinkLabels:null,arcLabels:null,legends:null};d.includes("arcs")&&(Wr.arcs=u.jsx(y4t,{center:[mi,Un],data:Ga,arcGenerator:Ko,borderWidth:Y,borderColor:H,isInteractive:uo,onClick:Ki,onMouseEnter:No,onMouseMove:Os,onMouseLeave:zn,setActiveId:Ka,tooltip:_a,transitionMode:kl},"arcs")),pe&&d.includes("arcLinkLabels")&&(Wr.arcLinkLabels=u.jsx(qwt,{center:[mi,Un],data:Ga,label:Se,skipAngle:Be,offset:xt,diagonalLength:ut,straightLength:bt,strokeWidth:Ke,textOffset:Dt,textColor:Yn,linkColor:Kn,component:wr},"arcLinkLabels")),ce&&d.includes("arcLabels")&&(Wr.arcLabels=u.jsx(Awt,{center:[mi,Un],data:Ga,label:ae,radiusOffset:re,skipAngle:me,textColor:he,transitionMode:kl,component:ge},"arcLabels")),Bn.length>0&&d.includes("legends")&&(Wr.legends=u.jsx(d4t,{width:Yt,height:nr,data:Ya,legends:Bn,toggleSerie:po},"legends"));var wa=v4t({dataWithArc:Ga,arcGenerator:Ko,centerX:mi,centerY:Un,radius:hr,innerRadius:Sr});return u.jsx(KR,{width:ho,height:xa,margin:it,defs:mo,role:fo,children:d.map(function(ji,gi){return Wr[ji]!==void 0?Wr[ji]:typeof ji=="function"?u.jsx(m.Fragment,{children:m.createElement(ji,wa)},gi):null})})},ume=function(e){var t=e.isInteractive,n=t===void 0?Ct.isInteractive:t,r=e.animate,i=r===void 0?Ct.animate:r,o=e.motionConfig,a=o===void 0?Ct.motionConfig:o,s=e.theme,l=e.renderWrapper,c=lme(e,b4t);return u.jsx(VR,{animate:i,isInteractive:n,motionConfig:a,renderWrapper:l,theme:s,children:u.jsx(_4t,Pm({isInteractive:n},c))})};const x4t="_label_1nl74_1",w4t="_value_1nl74_6",cme={label:x4t,value:w4t};function bh(e){return u.jsx(Ey,{children:u.jsx(k4t,{...e})})}function k4t({value:e,label:t,valueColor:n}){const r=typeof e=="string"?e:e.toLocaleString();return u.jsxs(V,{direction:"column",minWidth:"0",gap:"10px",children:[u.jsx(q,{className:cme.label,children:t}),u.jsx(q,{className:cme.value,style:n?{color:n}:void 0,children:r})]})}const S4t="_header-text_uidb2_1",C4t="_tooltip_uidb2_8",iC={headerText:S4t,tooltip:C4t};function j4t({storage:e}){var a;const t=m.useMemo(()=>{if(e!=null&&e.count)return e.count.map((s,l)=>{var c,d,f;return{type:JS[l],activeEntries:(c=e.count)==null?void 0:c[l],egressCount:(d=e.count_tx)==null?void 0:d[l],egressBytes:(f=e.bytes_tx)==null?void 0:f[l]}})},[e]),n=m.useMemo(()=>{const s=rt.sum(e.count),l=e.capacity-s;return`${Math.round(s/l*100)}%`},[e.capacity,e.count]),r=koe(e.expired_count,1e4),i=m.useRef([]);m.useMemo(()=>{i.current.push({ts:performance.now(),value:e.expired_count})},[e.expired_count]),r_(()=>{const s=performance.now();for(;i.current.length>1&&s-i.current[0].ts>6e4;)i.current.shift()},1e3);const o=e.expired_count-(((a=i.current[0])==null?void 0:a.value)??0);if(t)return u.jsxs(V,{direction:"column",gap:gc,children:[u.jsx(q,{className:iC.headerText,children:"Storage Stats"}),u.jsxs(V,{gap:eme,wrap:"wrap",children:[u.jsxs(Zr,{columns:Qpe,minWidth:hP,gap:Jpe,flexGrow:"1",flexBasis:"0",children:[u.jsx(bh,{label:"Expired (/s)",value:`${Math.trunc(r.valuePerSecond??0)}`}),u.jsx(bh,{label:"Expired (Last Min)",value:`${o.toLocaleString()}`}),u.jsx(bh,{label:"Total Evicted",value:e.evicted_count}),u.jsx(bh,{label:"Capacity Used",value:n})]}),u.jsx(Mt,{minWidth:QS,minHeight:QS,flexGrow:"1",flexBasis:"0",children:u.jsx(I4t,{storage:e,usedCapacity:n})})]})]})}const dme=["#48295C","#562800","#132D21"],T4t=e=>dme[e%dme.length];function I4t({storage:e,usedCapacity:t}){const n=m.useMemo(()=>{const r=rt.sum(e.count);return[{id:"unused",label:"Unused",value:e.capacity-r,color:"#222"},...e.count.map((i,o)=>({id:JS[o]+o,label:JS[o],value:i})).sort((i,o)=>o.value-i.value).map((i,o)=>({...i,color:T4t(o)}))]},[e]);return u.jsx($s,{children:({height:r,width:i})=>u.jsx(ume,{height:r,width:i,data:n,colors:o=>o.data.color,arcLabelsSkipAngle:10,arcLinkLabelsSkipAngle:10,arcLabelsTextColor:"#9F9F9F",enableArcLinkLabels:!1,layers:["arcs","arcLabels",E4t(t)],tooltip:N4t,animate:!1,innerRadius:.7,arcLabel:o=>o.data.label})})}function E4t(e){return function({dataWithArc:t,centerX:n,centerY:r}){return u.jsx("text",{y:r-6,textAnchor:"middle",dominantBaseline:"central",style:{fontSize:"28px",fill:"#9F9F9F"},children:u.jsx("tspan",{x:n,dy:5,children:e})})}}function N4t(e){const t=e.datum.value;return u.jsx("div",{className:iC.tooltip,children:u.jsxs(q,{style:{whiteSpace:"nowrap"},children:[e.datum.label,":\xA0",t]})})}function $4t({messages:e}){const t=m.useMemo(()=>e.num_bytes_rx.map((n,r)=>{var i,o,a,s;return{type:bwt[r],ingressBytes:(i=e.num_bytes_rx)==null?void 0:i[r],egressBytes:(o=e.num_bytes_tx)==null?void 0:o[r],ingressMessages:(a=e.num_messages_rx)==null?void 0:a[r],egressMessages:(s=e.num_messages_tx)==null?void 0:s[r]}}),[e]);if(t)return u.jsxs(V,{direction:"column",gap:gc,minWidth:eC,children:[u.jsx(q,{className:Ld.headerText,children:"Message Stats"}),u.jsxs(q0,{variant:"surface",className:Ld.root,size:"1",children:[u.jsx(ip,{children:u.jsxs(la,{children:[u.jsx(Wi,{children:"Message Type"}),u.jsx(Wi,{align:"right",children:"Ingress /s"}),u.jsx(Wi,{align:"right",children:"Egress /s"}),u.jsx(Wi,{align:"right",children:"Ingress Throughput /s"}),u.jsx(Wi,{align:"right",children:"Egress Throughput /s"})]})}),u.jsx(G0,{children:t==null?void 0:t.map((n,r)=>u.jsxs(la,{children:[u.jsx($4,{children:n.type}),u.jsx(O1,{value:n.ingressMessages??0}),u.jsx(O1,{value:n.egressMessages??0}),u.jsx(O1,{value:n.ingressBytes??0,inBytes:!0}),u.jsx(O1,{value:n.egressBytes??0,inBytes:!0})]},n.type))})]})]})}const fme={id:"Stake",direction:-1};function M4t(){const e=S6(),t=X(NG),n=X($G),r=m.useRef(new Map),[i,o]=m.useState([]),[a,s]=m.useState(fme);m.useEffect(()=>{var f;if(!t)return;const d=Object.entries(t);if(!i.length&&((f=d[0])!=null&&f[1])){const p=Object.keys(d[0][1]);o(p),s(fme)}for(const[p,v]of d)r.current.set(p,v)},[i,t]),m.useEffect(()=>{if(n)for(const d of n.changes){const f=r.current.get(d.row_index.toString());f&&(f[d.column_name]=d.new_value)}},[n]);const l=m.useCallback((d,f)=>{if(f{(i==null?void 0:i.indexOf(d))!==void 0&&s(f=>{let p=-1;f.id===d&&(p=-f.direction);const v=i.filter(b=>b!==d),_=new Array(v.length).fill(0),y={col:[d,...v],dir:[p,..._]};return e({topic:"gossip",key:"query_sort",id:32,params:y}),{id:d,direction:p}})},[i,e]);return{query:l,sort:c,colIds:i,rowsCacheRef:r,colSorting:a}}const L4t="_header-text_1ozln_1",R4t="_peer-table_1ozln_6",O4t="_header-cell_1ozln_22",P4t="_header-separator_1ozln_26",oC={headerText:L4t,peerTable:R4t,headerCell:O4t,headerSeparator:P4t},z4t=1e3,mP=0,aC=e=>{if(typeof e=="number"){const t=Ib(e);return`${t.value} ${t.unit}`}return e},D4t={Stake:{width:80,align:"right",format:e=>typeof e=="number"?Math.abs(Math.trunc(e/dd)).toLocaleString():e},Pubkey:{width:200},Name:{width:160},Country:{width:80},"IP Addr":{width:80},"Ingress Pull":{width:80,align:"right",format:aC},"Ingress Push":{width:80,align:"right",format:aC},"Egress Pull":{width:80,align:"right",format:aC},"Egress Push":{width:80,align:"right",format:aC}},sC={width:150};function bx(e){return D4t[e]??sC}function A4t(){const e=X(EG)??z4t,{query:t,sort:n,colIds:r,rowsCacheRef:i,colSorting:o}=M4t(),[a,s]=m.useState(()=>({row:-1,colId:""})),[l,c]=m.useState(!1),[d,f]=m.useState(Object.fromEntries(r.map(b=>[b,bx(b).width??sC.width])));m.useEffect(()=>{f(Object.fromEntries(r.map(b=>[b,bx(b).width??sC.width])))},[r]);const p=m.useCallback(({startIndex:b,endIndex:w})=>{const x=Math.max(0,b-mP),S=Math.min(w+mP,e>0?e-1:w+mP);t(x,S)},[t,e]),v=m.useMemo(()=>F4t(r,d),[r,d]),_=m.useRef(a);_.current=a,MFe("c",b=>{var w,x;if(b.ctrlKey){const S=(x=(w=i.current)==null?void 0:w.get(_.current.row.toString()))==null?void 0:x[_.current.colId];S&&(UN(S.toString()),c(!0),setTimeout(()=>{c(!1)},500))}});const y=m.useCallback((b,w)=>{f(x=>({...x,[b]:Math.max(w,bx(b).width??sC.width)}))},[]);return u.jsxs(V,{direction:"column",gap:gc,flexGrow:"1",children:[u.jsx(q,{className:oC.headerText,children:"Peers"}),u.jsx(Mt,{flexGrow:"1",minHeight:"300px",asChild:!0,children:u.jsx(pKe,{className:Te("rt-TableRoot","rt-r-size-1","rt-variant-surface",oC.peerTable),totalCount:e,increaseViewportBy:200,rangeChanged:p,components:v,itemContent:b=>{var x;const w=(x=i.current)==null?void 0:x.get(b.toString());return w?r.map(S=>{const C=bx(S),j=C.align,T=C.format,E=w==null?void 0:w[S],$=a.row===b&&a.colId===S;return u.jsx(ti,{align:j,onClick:()=>s({row:b,colId:S}),style:{outline:$?`1px dashed var(--gray-${l?11:10})`:"none",outlineOffset:-2},children:u.jsx(q,{truncate:!0,as:"div",children:T?T(E):E})},S)}):r!=null&&r.length?u.jsx(u.Fragment,{children:r.map(S=>u.jsx(ti,{children:"\xA0"},S))}):u.jsx(u.Fragment,{children:u.jsx(ti,{children:"&nsbsp;"})})},fixedHeaderContent:()=>u.jsx(la,{children:r.map(b=>{const{align:w}=bx(b),x=o.id===b?o.direction:void 0,S=C=>{C.preventDefault();const j=C.clientX,T=d[b],E=A=>y(b,T+(A.clientX-j)),$=()=>{window.removeEventListener("pointermove",E),window.removeEventListener("pointerup",$)};window.addEventListener("pointermove",E),window.addEventListener("pointerup",$)};return u.jsx(Wi,{align:w,p:"0",children:u.jsxs(V,{align:"center",height:"100%",children:[u.jsx(Z0,{children:u.jsx(Mt,{flexGrow:"1",className:oC.headerCell,asChild:!0,children:u.jsx("button",{onClick:()=>n(b),children:u.jsxs(V,{align:"center",gap:"1",justify:w==="right"?"end":"start",children:[w==="right"&&u.jsx(hme,{direction:x}),u.jsx(q,{truncate:!0,title:b,as:"div",children:b}),w!=="right"&&u.jsx(hme,{direction:x})]})})})}),u.jsx("div",{style:{paddingLeft:"8px",paddingRight:"2px",cursor:"col-resize"},onPointerDown:S,children:u.jsx(ps,{orientation:"vertical",size:"2",className:oC.headerSeparator})})]})},b)})})})})]})}function hme({direction:e}){return u.jsxs(u.Fragment,{children:[e===-1&&u.jsx(A$,{height:12,width:12}),e===1&&u.jsx(F$,{height:12,width:12})]})}function F4t(e,t){return{Table:n=>u.jsxs("table",{...n,className:"rt-TableRootTable",style:{...n.style,overflow:"inherit",tableLayout:"fixed"},children:[u.jsx("colgroup",{children:e.map(r=>u.jsx("col",{style:{width:t[r]}},r))}),n.children]}),TableHead:n=>u.jsx(ip,{...n,style:{...n.style,background:"#0e131c"}}),TableRow:n=>u.jsx(la,{...n})}}function pme({activeStake:e,delinquentStake:t}){const n=m.useMemo(()=>[{id:"non-delinquent",label:"Non-delinquent",value:Number(e),color:xne,textColor:pk},{id:"delinquent",label:"Delinquent",value:Number(t),color:fd,textColor:fd}],[e,t]);return u.jsx($s,{children:({height:r,width:i})=>u.jsx(ume,{height:r,width:i,data:n,colors:{datum:"data.color"},enableArcLabels:!1,enableArcLinkLabels:!1,layers:["arcs",B4t],tooltip:U4t,animate:!1,innerRadius:.7})})}const B4t=({dataWithArc:e,centerX:t,centerY:n})=>{const r=rt.sum(e.map(({value:i})=>i));return u.jsx("text",{y:n-6,textAnchor:"middle",dominantBaseline:"central",style:{fontSize:"12px",fill:"red"},children:e.map(({value:i,data:o,id:a},s)=>u.jsxs("tspan",{x:t,dy:`${s}em`,style:{fill:o.textColor},children:[(i/r*100).toFixed(2),"%"]},a))})};function U4t(e){const t=e.datum.value,n=Rs(BigInt(t));return u.jsx("div",{className:iC.tooltip,children:u.jsxs(q,{children:[e.datum.label,":\xA0",n]})})}function W4t(){{const e=X(Ig);if(!e)return null;const t=Rs(e.activeStake),n=Rs(e.delinquentStake);return u.jsxs(V,{direction:"column",gap:gc,children:[u.jsx(q,{className:iC.headerText,children:"Validator Stats"}),u.jsxs(V,{gap:eme,wrap:"wrap",children:[u.jsxs(Zr,{columns:Qpe,minWidth:hP,gap:Jpe,flexGrow:"1",flexBasis:"0",children:[u.jsx(bh,{label:"Total Validators",value:e.validatorCount.toLocaleString(),valueColor:gN}),u.jsx(bh,{label:"Non-delinquent Stake",value:t,valueColor:pk}),u.jsx(bh,{label:"RPC Nodes",value:e.rpcCount.toLocaleString(),valueColor:Yu}),u.jsx(bh,{label:"Delinquent Stake",value:n,valueColor:fd})]}),u.jsx(Mt,{minWidth:QS,minHeight:QS,flexGrow:"1",flexBasis:"0",children:u.jsx(pme,{activeStake:e.activeStake,delinquentStake:e.delinquentStake})})]})]})}}const gP=2;function mme({colors:e,maxValue:t,history:n,capacity:r}){const i=m.useRef(),o=m.useRef(t);o.current=t;const a=m.useMemo(()=>{var y;if(!i.current||!n.length)return;const{height:s,width:l}=i.current;if(s<0||l<0)return;const c=r??n.length,d=c>1?l/(c-1):0,f=c-n.length,p=Math.max(o.current,Math.max(...n.flatMap(b=>b.filter(Cb))),1),v=n[n.length-1].length,_=Array.from({length:v}).map(()=>new Array);for(let b=0;bb.map(({x:w,y:x})=>`${w},${x}`).join(" "))},[n,r]);return u.jsx(Mt,{flexGrow:"1",minHeight:"80px",children:u.jsx($s,{children:({height:s,width:l})=>{if(i.current={height:s,width:l},!!a&&(a==null?void 0:a.length)===e.length)return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:l,height:s,style:{background:"#222222"},children:a.map((c,d)=>u.jsx("polyline",{points:c,stroke:e[d],strokeWidth:gP,fill:"none",strokeLinecap:"round",strokeOpacity:.8},e[d]))})}})})}const V4t=100,H4t=3e4,vP="#197CAE",yP="var(--amber-8)",gme="#CBD4D6",vme=[vP,yP],yme=Math.ceil(H4t/V4t);function Z4t(){const{value:e,history:t}=X(IG);return u.jsxs(Zr,{columns:{initial:"1",sm:"2",lg:"4"},gapY:"3",gapX:"7",children:[u.jsx(G4t,{health:e,history:t}),u.jsx(q4t,{health:e,history:t}),u.jsx(Y4t,{health:e,history:t}),u.jsx(K4t,{health:e,history:t})]})}function bme({title:e,children:t}){return u.jsxs(V,{direction:"column",gap:gc,children:[u.jsx(q,{style:{color:"var(--primary-text-color)",fontSize:"18px"},children:e}),u.jsx(Ey,{style:{flex:1},children:t})]})}function _me({value:e,label:t,valueColor:n,pct:r}){return u.jsxs(V,{direction:"column",children:[u.jsxs(V,{gap:"2",children:[u.jsx(q,{style:{color:"var(--gray-11)"},children:t}),u.jsxs(q,{style:{color:"var(--gray-10)"},children:[z$.format(r*100),"%"]})]}),u.jsx(q,{style:{color:n},size:"8",children:Math.round(e).toLocaleString()})]})}function bP({value:e,label:t,valueColor:n,pct:r,size:i}){return u.jsxs(V,{direction:"column",children:[u.jsx(q,{style:{color:"var(--gray-11)"},children:t}),u.jsx(q,{style:{color:n},size:i==="lg"?"8":"6",children:Math.round(e).toLocaleString()}),r!==void 0&&u.jsxs(q,{style:{color:"var(--gray-10)"},size:"2",children:[z$.format(r*100),"%"]})]})}function lC(e,t){const n=m.useRef(t);return n.current=t,m.useMemo(()=>e.map(r=>n.current(r.value)),[e])}function q4t({health:e,history:t}){const n=e.num_push_entries_rx_success+e.num_push_entries_rx_failure,r=e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure,i=e.num_push_entries_rx_success,o=e.num_pull_response_entries_rx_success,a=i+o,s=Math.max(n,r,a),l=rt.clamp(i/n,0,1),c=rt.clamp(o/r,0,1),d=[gme,...vme],f=lC(t,p=>[p.num_push_entries_rx_success+p.num_pull_response_entries_rx_success,p.num_push_entries_rx_success,p.num_pull_response_entries_rx_success]);return u.jsx(bme,{title:"Entries Success /s",children:u.jsxs(V,{gap:"6",children:[u.jsxs(V,{direction:"column",gap:"3",children:[u.jsx(bP,{label:"Total",value:a,valueColor:gme,size:"lg"}),u.jsxs(V,{gap:"3",children:[u.jsx(bP,{label:"Push",value:i,valueColor:vP,pct:l}),u.jsx(bP,{label:"Pull",value:o,valueColor:yP,pct:c})]})]}),u.jsx(mme,{colors:d,maxValue:s,history:f,capacity:yme})]})})}function _P({title:e,valueA:t,valueB:n,totalA:r,totalB:i,labelA:o,labelB:a,history:s}){const l=t/r,c=n/i,d=Math.max(r,i);return u.jsx(bme,{title:e,children:u.jsxs(V,{gap:"6",height:"100%",children:[u.jsxs(V,{direction:"column",gap:"3",minWidth:"120px",children:[u.jsx(_me,{label:o,value:t,valueColor:vP,pct:rt.clamp(l,0,1)}),u.jsx(_me,{label:a,value:n,valueColor:yP,pct:rt.clamp(c,0,1)})]}),u.jsx(mme,{colors:vme,maxValue:d,history:s,capacity:yme})]})})}function G4t({health:e,history:t}){const n=e.num_push_messages_rx_success+e.num_push_messages_rx_failure,r=e.num_pull_response_messages_rx_success+e.num_pull_response_messages_rx_failure,i=e.num_push_messages_rx_failure,o=e.num_pull_response_messages_rx_failure,a=lC(t,s=>[s.num_push_messages_rx_failure,s.num_pull_response_messages_rx_failure]);return u.jsx(_P,{title:"Message Failures /s",valueA:i,valueB:o,totalA:n,totalB:r,labelA:"Push",labelB:"Pull",history:a})}function Y4t({health:e,history:t}){const n=e.num_push_entries_rx_success+e.num_push_entries_rx_failure,r=e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure,i=e.num_push_entries_rx_duplicate,o=e.num_pull_response_entries_rx_duplicate,a=lC(t,s=>[s.num_push_entries_rx_duplicate,s.num_pull_response_entries_rx_duplicate]);return u.jsx(_P,{title:"Entry Duplicates /s",valueA:i,valueB:o,totalA:n,totalB:r,labelA:"Push",labelB:"Pull",history:a})}function K4t({health:e,history:t}){const n=e.num_push_entries_rx_success+e.num_push_entries_rx_failure,r=e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure,i=e.num_push_entries_rx_failure-e.num_push_entries_rx_duplicate,o=e.num_pull_response_entries_rx_failure-e.num_pull_response_entries_rx_duplicate,a=lC(t,s=>[s.num_push_entries_rx_failure-s.num_push_entries_rx_duplicate,s.num_pull_response_entries_rx_failure-s.num_pull_response_entries_rx_duplicate]);return u.jsx(_P,{title:"Entry Failures /s",valueA:i,valueB:o,totalA:n,totalB:r,labelA:"Push",labelB:"Pull",history:a})}function X4t(e){var t=0,n=e.children,r=n&&n.length;if(!r)t=1;else for(;--r>=0;)t+=n[r].value;e.value=t}function J4t(){return this.eachAfter(X4t)}function Q4t(e,t){let n=-1;for(const r of this)e.call(t,r,++n,this);return this}function e3t(e,t){for(var n=this,r=[n],i,o,a=-1;n=r.pop();)if(e.call(t,n,++a,this),i=n.children)for(o=i.length-1;o>=0;--o)r.push(i[o]);return this}function t3t(e,t){for(var n=this,r=[n],i=[],o,a,s,l=-1;n=r.pop();)if(i.push(n),o=n.children)for(a=0,s=o.length;a=0;)n+=r[i].value;t.value=n})}function i3t(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function o3t(e){for(var t=this,n=a3t(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var i=r.length;e!==n;)r.splice(i,0,e),e=e.parent;return r}function a3t(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;for(e=n.pop(),t=r.pop();e===t;)i=e,e=n.pop(),t=r.pop();return i}function s3t(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function l3t(){return Array.from(this)}function u3t(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function c3t(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*d3t(){var e=this,t,n=[e],r,i,o;do for(t=n.reverse(),n=[];e=t.pop();)if(yield e,r=e.children)for(i=0,o=r.length;i=0;--s)i.push(o=a[s]=new uC(a[s])),o.parent=r,o.depth=r.depth+1;return n.eachBefore(g3t)}function f3t(){return xP(this).eachBefore(m3t)}function h3t(e){return e.children}function p3t(e){return Array.isArray(e)?e[1]:null}function m3t(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function g3t(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function uC(e){this.data=e,this.depth=this.height=0,this.parent=null}uC.prototype=xP.prototype={constructor:uC,count:J4t,each:Q4t,eachAfter:t3t,eachBefore:e3t,find:n3t,sum:r3t,sort:i3t,path:o3t,ancestors:s3t,descendants:l3t,leaves:u3t,links:c3t,copy:f3t,[Symbol.iterator]:d3t};function v3t(e){if(typeof e!="function")throw new Error;return e}function _x(){return 0}function xx(e){return function(){return e}}function y3t(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function b3t(e,t,n,r,i){for(var o=e.children,a,s=-1,l=o.length,c=e.value&&(r-t)/e.value;++sx&&(x=c),T=b*b*j,S=Math.max(x/T,T/w),S>C){b-=c;break}C=S}a.push(l={value:b,dice:v<_,children:s.slice(d,f)}),l.dice?b3t(l,n,r,i,y?r+=_*b/y:o):_3t(l,n,r,y?n+=v*b/y:i,o),y-=b,d=f}return a}const xme=function e(t){function n(r,i,o,a,s){w3t(t,r,i,o,a,s)}return n.ratio=function(r){return e((r=+r)>1?r:1)},n}(x3t);function k3t(){var e=xme,t=!1,n=1,r=1,i=[0],o=_x,a=_x,s=_x,l=_x,c=_x;function d(p){return p.x0=p.y0=0,p.x1=n,p.y1=r,p.eachBefore(f),i=[0],t&&p.eachBefore(y3t),p}function f(p){var v=i[p.depth],_=p.x0+v,y=p.y0+v,b=p.x1-v,w=p.y1-v;b<_&&(_=b=(_+b)/2),w{let s=0,l=0;const c=[];for(;l{var p;const l=n[s];if(!l)return;const c=rt.sum(l.vote.map(v=>v.delinquent?0:Number(v.activated_stake))),d=ire(l.info),f=((p=l.info)==null?void 0:p.name)??void 0;return{stake:c,iconUrl:d,name:f}},[n]),o=X(yre);if(!r)return;const a=Ib(e.total_throughput);return u.jsxs(V,{direction:"column",gap:gc,minHeight:"300px",minWidth:"300px",flexGrow:"1",children:[u.jsxs(V,{justify:"between",children:[u.jsx(q,{className:Rd.headerText,children:t}),u.jsxs("span",{children:[u.jsx(q,{className:Rd.totalText,children:"Total"}),u.jsxs(q,{className:Rd.throughputText,children:["\xA0",`${a.value} ${a.unit}`,"/s"]})]})]}),u.jsx(Mt,{flexGrow:"1",children:u.jsx($s,{children:({height:s,width:l})=>u.jsx(R3t,{sortedData:r,width:l,height:s,getPeerValues:i,totalActivePeersStake:o})})})]})}function R3t({sortedData:e,width:t,height:n,totalActivePeersStake:r,getPeerValues:i}){const[o,a]=m.useState(),[s,l]=m.useState(!1),c=m.useRef(),d=m.useCallback(y=>{a(b=>(y!==b&&l(!1),y))},[]),f=m.useCallback(y=>{UN(y),l(!0),clearTimeout(c.current),c.current=setTimeout(()=>l(!1),1e3)},[l]);Pg(()=>{clearTimeout(c.current)});const p=m.useMemo(()=>LRe||s?"ID copied to clipboard":"Click to copy ID",[s]),v=m.useMemo(()=>{const y=xP(e).sum(w=>w.value??0),b=k3t();return b.tile(L3t),b.size([t,n]),b.round(!0),b.paddingInner(2),b(y).leaves()},[t,n,e]),_=m.useMemo(()=>{let y=[];const b=Math.ceil(e.children.length/wme.length);for(let w=0;wd(void 0),children:v.map((y,b)=>{const w=`${y.data.id}-${y.x0}-${y.x1}-${y.y0}-${y.y1}`,x=o===w;return u.jsx(O3t,{leaf:y,color:_[b],totalActivePeersStake:r,getPeerValues:i,tooltipText:x?p:void 0,openTooltip:()=>d(w),copyId:()=>f(y.data.id)},y.data.id)})})}function O3t({leaf:e,color:t,totalActivePeersStake:n,getPeerValues:r,tooltipText:i,openTooltip:o,copyId:a}){const s=e.x1-e.x0,l=e.y1-e.y0;return u.jsx(ui,{open:!!i,className:Rd.tooltip,content:i,disableHoverableContent:!0,side:"bottom",onOpenChange:c=>{c&&o()},children:u.jsx(Mt,{onClick:a,onMouseEnter:()=>{o()},className:Rd.leaf,position:"absolute",width:`${s}px`,height:`${l}px`,style:{transform:`translate(${e.x0}px, ${e.y0}px)`,"--leaf-color":t},children:u.jsx(P3t,{width:s,height:l,leaf:e,totalActivePeersStake:n,getPeerValues:r})})})}function P3t({width:e,height:t,leaf:n,totalActivePeersStake:r,getPeerValues:i}){const o=n.data.id,a=i(o),s=(a==null?void 0:a.name)||"Private",l=e>=20&&t>=20,c=e>=100&&t>=100?14:e>=55&&t>=55?12:e>=32&&t>=32?8:4,d=e>=30&&t>=38,f=t>=150,p=t>=60,v=e>=82;return u.jsxs(V,{className:Rd.leafContent,height:"100%",direction:"column",align:"center",justify:"center",overflow:"hidden",p:l?"8px":"0",gap:"4px",children:[l&&u.jsx(ks,{url:a==null?void 0:a.iconUrl,size:c}),d&&u.jsx(q,{className:Te(Rd.name,{[Rd.large]:f}),truncate:!0,align:"center",children:s}),p&&u.jsxs(V,{className:Rd.stats,align:"center",justify:"center",gap:"5px",children:[u.jsx(z3t,{value:n.value}),v&&(a==null?void 0:a.stake)!==void 0&&u.jsx(D3t,{stake:a.stake,totalActivePeersStake:r})]})]})}function z3t({value:e}){const t=Ib(e??0);return u.jsxs(q,{truncate:!0,children:[t.value," ",t.unit]})}function D3t({stake:e,totalActivePeersStake:t}){const n=m.useMemo(()=>{if(e===0)return"0";const r=100*e/Number(t);return r<.01?"<.01":r.toFixed(2)},[e,t]);return u.jsxs(V,{align:"center",justify:"center",gap:"3px",children:[u.jsx(fBe,{width:8,height:8}),u.jsxs(q,{truncate:!0,children:[n,"%"]})]})}function A3t(){const e=X(TG),[t]=Uie(e,5e3,{leading:!0,maxWait:5e3}),n=e==null?void 0:e.storage;if(!_i&&!(!n||!t))return u.jsxs(V,{gap:"30px",direction:"column",align:"stretch",justify:"center",height:"100%",children:[u.jsxs(V,{gapX:"30px",gapY:fP,wrap:"wrap",children:[u.jsx(kme,{networkTraffic:t.ingress,label:"Ingress"}),u.jsx(kme,{networkTraffic:t.egress,label:"Egress"})]}),u.jsxs(V,{gap:"30px",wrap:"wrap",children:[u.jsxs(V,{direction:"column",flexGrow:"1",flexBasis:"0",gap:fP,minWidth:eC,children:[u.jsx(j4t,{storage:n}),u.jsx(kwt,{storage:n})]}),u.jsxs(V,{direction:"column",flexGrow:"1",flexBasis:"0",gap:fP,minWidth:eC,children:[u.jsx(W4t,{}),u.jsx($4t,{messages:e.messages})]})]}),u.jsx(Z4t,{}),u.jsx(A4t,{})]})}const F3t=up("/gossip")({component:A3t,beforeLoad:({context:e,location:t})=>{if(_i)throw uT({to:"/"})}}),B3t=up("/about")({component:U3t});function U3t(){return u.jsx("div",{className:"p-2",children:u.jsx("h3",{children:"About"})})}const cC=600,Sme=Co(new Array(cC).fill(void 0)),wP=(e,t)=>e.length?"M"+e.map(({x:n,y:r})=>`L ${n} ${t-r}`).join(" ").slice(1)+`L ${e[e.length-1].x} ${t} L ${e[0].x} ${t}, L ${e[0].x} ${e[0].y}`:"";function W3t(){const e=X(Sme),t=m.useRef(),n=Math.max(...e.map(i=>(i==null?void 0:i.total)??0)),r=m.useMemo(()=>{if(!t.current||!e.length)return;const{height:i,width:o}=t.current,a=e.length,s=(o+2)/a,l=(i-10)/(n||1),c=e.map((f,p)=>{if(f!==void 0)return{x:p*s,voteY:f.vote*l,nonvoteFailedY:(f.nonvote_failed+f.vote)*l,nonvoteY:(f.nonvote_success+f.nonvote_failed+f.vote)*l}}).filter(Cb),d=i-n*l;return{votePath:wP(c.map(f=>({x:f.x,y:f.voteY})),i),failedPath:wP(c.map(f=>({x:f.x,y:f.nonvoteFailedY})),i),nonvotePath:wP(c.map(f=>({x:f.x,y:f.nonvoteY})),i),totalTpsY:isNaN(d)?void 0:d}},[n,e]);return u.jsx(u.Fragment,{children:u.jsx($s,{children:({height:i,width:o})=>(t.current={height:i,width:o},r?u.jsx(u.Fragment,{children:u.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:o,height:i,fill:"none",children:[u.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:r.nonvotePath,fill:Sne}),u.jsx("path",{d:r.failedPath,fill:jne}),u.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",fill:Cne,d:r.votePath}),r.totalTpsY&&u.jsxs(u.Fragment,{children:[u.jsx("line",{x1:"0",y1:r.totalTpsY,x2:o,y2:r.totalTpsY,strokeDasharray:"4",stroke:"rgba(255, 255, 255, 0.30)"}),u.jsx("text",{x:"0",y:r.totalTpsY-3,fill:mN,fontSize:"8",fontFamily:"Inter Tight",children:n.toLocaleString()})]})]})}):null)})})}const V3t="_axis-text_juf3d_1",Cme={axisText:V3t},H3t="_container_muoex_1",Z3t="_label_muoex_6",q3t="_value_muoex_12",G3t="_small_muoex_17",Y3t="_medium_muoex_21",K3t="_large_muoex_25",X3t="_append-value_muoex_31",fi={container:H3t,label:Z3t,value:q3t,small:G3t,medium:Y3t,large:K3t,appendValue:X3t};function ya({label:e,value:t,valueColor:n,valueSize:r,animateInteger:i=!1,appendValue:o,appendValueColor:a,className:s}){const l=m.useMemo(()=>Te(fi.value,{[fi.small]:r==="small",[fi.medium]:r==="medium",[fi.large]:r==="large"}),[r]);return u.jsxs(V,{direction:"column",align:"start",className:Te(fi.container,s),style:{"--value-color":n},children:[u.jsx(q,{className:fi.label,children:e}),u.jsxs(V,{align:"baseline",gap:"1",width:"100%",children:[typeof t=="number"&&i?u.jsx(M_,{value:t,className:l}):u.jsx(q,{className:l,children:t}),o&&u.jsx(q,{className:fi.appendValue,style:{"--append-value-color":a},children:o})]})]})}const J3t="_vote-tps_kqvrt_1",Q3t={voteTps:J3t};function ekt(){const e=X(OT);return u.jsxs(V,{direction:"column",gap:"2",minWidth:"100px",children:[u.jsx(ya,{label:"Total TPS",value:(e==null?void 0:e.total.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:Yu,valueSize:"medium"}),u.jsxs(V,{gap:"4",wrap:"wrap",children:[u.jsx(ya,{label:"Non-vote TPS Success",value:(e==null?void 0:e.nonvote_success.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:Zf,valueSize:"small"}),u.jsx(ya,{label:"Non-vote TPS Fail",value:(e==null?void 0:e.nonvote_failed.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:fd,valueSize:"small"}),u.jsx(ya,{label:"Vote TPS",value:(e==null?void 0:e.vote.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:hd,valueSize:"small",className:Q3t.voteTps})]})]})}function tkt({className:e}){return u.jsx(so,{className:e,children:u.jsxs(V,{direction:"column",height:"100%",gap:"2",children:[u.jsx(Sd,{text:"Transactions"}),u.jsxs(V,{gap:"4",flexGrow:"1",children:[u.jsx(ekt,{}),u.jsxs(V,{direction:"column",flexGrow:"1",children:[u.jsx(Mt,{flexGrow:"1",minWidth:"180px",overflow:"hidden",children:u.jsx(W3t,{})}),u.jsxs(V,{justify:"between",children:[u.jsx(q,{className:Cme.axisText,children:"~ 1min ago"}),u.jsx(q,{className:Cme.axisText,children:"Now"})]})]})]})]})})}const nkt="_stat-row_1ia1g_1",jme={statRow:nkt};function rkt(){const e=X(Ig);if(!e)return null;const t=Rs(e.activeStake),n=Rs(e.delinquentStake);return u.jsxs(V,{gap:"2",flexGrow:"1",children:[u.jsxs(V,{direction:"column",gap:"2",minWidth:"0",children:[u.jsxs("div",{className:jme.statRow,children:[u.jsx(ya,{label:"Total Validators",value:e.validatorCount.toString(),valueColor:gN,valueSize:"medium"}),u.jsx(ya,{label:"Non-delinquent Stake",value:t,valueColor:pk,appendValue:"SOL",valueSize:"medium"})]}),u.jsxs("div",{className:jme.statRow,children:[u.jsx(ya,{label:"RPC Nodes",value:e.rpcCount.toString(),valueColor:Yu,valueSize:"small"}),u.jsx(ya,{label:"Delinquent Stake",value:n,valueColor:fd,appendValue:"SOL",valueSize:"small"})]})]}),u.jsx(Mt,{style:{minWidth:"200px"},children:u.jsx(pme,{activeStake:e.activeStake,delinquentStake:e.delinquentStake})})]})}function ikt(){return X(Ig)?u.jsx(so,{children:u.jsxs(V,{direction:"column",height:"100%",gap:"2",children:[u.jsx(Sd,{text:"Validators"}),u.jsx(rkt,{})]})}):null}const okt="_stat-row_11bim_1",Tme={statRow:okt};function akt(){return u.jsx(so,{children:u.jsxs(V,{direction:"column",height:"100%",gap:"2",align:"start",children:[u.jsx(Sd,{text:"Status"}),u.jsxs("div",{className:Tme.statRow,children:[u.jsx(skt,{}),u.jsx(ukt,{})]}),u.jsxs("div",{className:Tme.statRow,children:[u.jsx(ckt,{}),u.jsx(lkt,{})]})]})})}function skt(){const e=X(oo);return u.jsx(Mt,{children:u.jsx(ya,{label:"Slot",value:e??"",valueColor:Yu,valueSize:"medium",animateInteger:!0})})}function lkt(){const{nextLeaderSlot:e}=P_({showNowIfCurrent:!0});return u.jsx(ya,{label:"Next leader slot",value:(e==null?void 0:e.toString())??"\u221E",valueColor:Gte,valueSize:e===void 0?"large":"small"})}function ukt(){const{progressSinceLastLeader:e,nextSlotText:t}=P_({showNowIfCurrent:!0});return u.jsxs(V,{direction:"column",children:[u.jsx(ya,{label:"Time until leader",value:t,valueColor:Yu,valueSize:"medium"}),u.jsx(a1,{value:e})]})}function ckt(){const e=X(zT),t=X(LG),n=m.useMemo(()=>e==="voting"?hN:e==="non-voting"?Yte:e==="delinquent"?fd:mN,[e]),r=m.useMemo(()=>t==null||e==="delinquent"?void 0:`${t>150?"> 150":t} behind`,[t,e]);return u.jsx(ya,{label:"Vote Status",value:e??"Unknown",valueColor:n,valueSize:"small",appendValue:r,appendValueColor:wne})}const dkt="_stat-row_kmlhn_1",fkt="_progress_kmlhn_13",kP={statRow:dkt,progress:fkt};function hkt(){return u.jsx(so,{children:u.jsxs(V,{direction:"column",height:"100%",gap:"2",align:"start",children:[u.jsx(Sd,{text:"Epoch"}),u.jsx("div",{className:kP.statRow,children:u.jsx(pkt,{})}),u.jsx("div",{className:kP.statRow,children:u.jsx(mkt,{})})]})})}function pkt(){var t;const e=X(di);return u.jsx(Mt,{children:u.jsx(ya,{label:"Current Epoch",value:((t=e==null?void 0:e.epoch)==null?void 0:t.toString())??"",valueColor:Yu,valueSize:"medium"})})}function mkt(){const e=X(oo),t=X(di),n=X(Eg),r=m.useMemo(()=>{if(t===void 0||e===void 0)return"";const o=(t.end_slot-e)*n,a=fn.fromMillis(o).rescale();return Sp(a)},[t,e,n]),i=m.useMemo(()=>{if(t===void 0||e===void 0)return 0;const o=e-t.start_slot,a=t.end_slot-t.start_slot,s=o/a*100;return s<0||s>100?0:s},[t,e]);return u.jsxs(V,{direction:"column",children:[u.jsx(ya,{label:"Time to Next Epoch",value:r,valueColor:Yu,valueSize:"medium"}),u.jsx(a1,{className:kP.progress,value:i})]})}function gkt(){if(!_i)return u.jsx(so,{style:{padding:"10px 13px 10px 10px"},children:u.jsxs(V,{direction:"column",gap:"4",children:[u.jsxs(V,{gapX:"15px",gapY:"2",align:"center",wrap:"wrap",children:[u.jsx(Sd,{text:"Shreds"}),u.jsx(Ese,{})]}),u.jsx(hse,{height:"400px",chartId:"overview-shreds-chart",isOnStartupScreen:!1})]})})}const vkt="_chart_7b67t_1",ykt="_table_7b67t_7",bkt="_row_7b67t_7",_kt="_total-row_7b67t_8",wx={chart:vkt,table:ykt,row:bkt,totalRow:_kt},Ime=18;function xkt(){const e=X(PT),t=X(xG),n=X(wG);if(e)return u.jsxs(V,{wrap:"wrap",gap:"4",children:[u.jsx(Eme,{metrics:e.ingress,history:t.history,type:"Ingress"}),u.jsx(Eme,{metrics:e.egress,history:n.history,type:"Egress"})]})}function Eme({metrics:e,history:t,type:n}){return u.jsx(so,{style:{flexGrow:1},children:u.jsxs(V,{direction:"column",height:"100%",gap:gc,children:[u.jsxs(q,{className:Ld.headerText,children:["Network ",n]}),u.jsxs(q0,{variant:"ghost",className:Te(Ld.root,wx.table),size:"1",style:{"--bar-height":`${Ime}px`},children:[u.jsx(ip,{children:u.jsxs(la,{children:[u.jsx(Wi,{width:"60px",children:"Protocol"}),u.jsx(Wi,{align:"right",width:"80px",children:"Current"}),u.jsx(Wi,{minWidth:{xl:"250px",lg:"160px",md:"100px",initial:"60px"},children:"Utilization"}),u.jsx(Wi,{align:"right",width:{xl:"240px",lg:"200px",md:"100px",initial:"200px"},children:"History (1m)"})]})}),u.jsxs(G0,{children:[e.map((r,i)=>{const o=V$[i];if(!(_i&&(o==="gossip"||o==="repair")))return u.jsx($me,{label:o,value:r,maxValue:aoe[n][o],history:t,mapHistory:a=>a[i]??0},i)}),u.jsx($me,{label:"Total",value:rt.sum(e),maxValue:aoe[n].Total,history:t,mapHistory:rt.sum,className:wx.totalRow})]})]})]})})}const wkt=1e8;function Nme(e,t){return Math.min(1,e/t)}const kkt={halfLifeMs:1e3};function $me({label:e,value:t,maxValue:n=wkt,history:r,mapHistory:i,className:o}){const a=Ug(t,kkt),s=Ib(a),l=Nme(a,n),c=m.useRef(i);c.current=i;const d=m.useMemo(()=>r.map(f=>({ts:f.ts,value:Nme(c.current(f.values),n)})),[r,n]);return u.jsxs(la,{className:Te(wx.row,o),children:[u.jsx($4,{children:e}),u.jsxs(ti,{align:"right",children:[s.value," ",s.unit]}),u.jsx(ti,{className:wx.chart,children:u.jsx(V,{align:"center",children:u.jsx(G$,{value:a,max:n,barWidth:2})})}),u.jsx(ti,{className:wx.chart,children:u.jsx(c_,{value:l,history:d,background:vk,windowMs:6e4,height:Ime,updateIntervalMs:500,tickMs:1e3})})]})}const Skt="_group-header_1lbrc_1",Ckt="_header_1lbrc_6",jkt="_wrap_1lbrc_9",Tkt="_table_1lbrc_15",Ikt="_data-row_1lbrc_19",Ekt="_green_1lbrc_20",Nkt="_red_1lbrc_24",$kt="_pct-gradient_1lbrc_43",Mkt="_no-padding_1lbrc_51",Lkt="_increment-text_1lbrc_56",Rkt="_low-increment_1lbrc_61",Okt="_mid-increment_1lbrc_64",Pkt="_high-increment_1lbrc_67",zkt="_light-border-bottom_1lbrc_79",Dkt="_right-border_1lbrc_83",dr={groupHeader:Skt,header:Ckt,wrap:jkt,table:Tkt,dataRow:Ikt,green:Ekt,red:Nkt,pctGradient:$kt,noPadding:Mkt,incrementText:Lkt,lowIncrement:Rkt,midIncrement:Okt,highIncrement:Pkt,lightBorderBottom:zkt,rightBorder:Dkt},Akt="_table-description-dialog_1shm8_1",Fkt="_table_1shm8_1",Bkt="_th_1shm8_8",Ukt="_tr_1shm8_14",Wkt="_name_1shm8_22",Vkt="_close-button_1shm8_28",_h={tableDescriptionDialog:Akt,table:Fkt,th:Bkt,tr:Ukt,name:Wkt,closeButton:Vkt},SP=[{name:"",pinned:!0,metrics:[{uniqueName:"Name",description:"The name and index of each tile. A tile represents a sandboxed process or individual thread that communicates with other tiles using message passing queues.",headerColWidth:70}]},{name:"Liveness",metrics:[{uniqueName:"CPU",description:"The CPU index on which the tile was last recorded executing.",headerColWidth:50,headerColAlign:"right"},{uniqueName:"Heartbeat",description:"Liveness indicator based on a periodic heartbeat timestamp written by tiles to a chunk of shared memory.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"Backp",description:"If a tile is backpressured, at least one outgoing message queue is at-capacity which can prevent the tile from moving forward with useful work.",headerColWidth:60,headerColAlign:"right"},{uniqueName:"Backp Count",description:"The number of cumulative | immediate (10ms) times a CPU transitioned into a backpressured state.",headerColWidth:120,headerColAlign:"right"}]},{name:"Utilization",metrics:[{uniqueName:"Utilization",description:"Visualized the percentage of the tile's CPU time spent doing useful work. Time spent in a context switch is not included.",headerColWidth:150},{uniqueName:"History (1m)",description:"A historical, low-pass-filtered view of CPU utilization.",headerColWidth:150}]},{name:"System",metrics:[{uniqueName:"% Hkeep",description:"The percentage of CPU time spent on housekeeping tasks, which are meant to be infrequent and generally more expensive than tasks on the critical path.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"% Wait",description:"The percentage of CPU time spent waiting for useful work to do.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"% Backp",description:"The percentage of CPU time during which the tile was backpressured, excluding housekeeping time.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"% Work",description:"The percentage of CPU time spent performing useful work, excluding housekeeping and backpressured time.",headerColWidth:70,headerColAlign:"right"}]},{name:"Scheduler",metrics:[{uniqueName:"% Wait (scheduler)",columnName:"% Wait",description:"The percentage of CPU time spent waiting in the runqueue before being dispatched.",headerColWidth:70,headerColAlign:"right",wrap:!0},{uniqueName:"% User (scheduler)",columnName:"% User",description:"The percentage of CPU time spent executing in user mode.",headerColWidth:70,headerColAlign:"right",wrap:!0},{uniqueName:"% System (scheduler)",columnName:"% System",description:"The percentage of CPU time spent executing in kernel mode.",headerColWidth:70,headerColAlign:"right",wrap:!0},{uniqueName:"% Idle (scheduler)",columnName:"% Idle",description:"The percentage of CPU time unaccounted for by the other 3 regimes.",headerColWidth:70,headerColAlign:"right",wrap:!0}]},{name:"Exceptions",metrics:[{uniqueName:"Minflt",description:"The number of cumulative minor page faults. Minor page faults occur for pages in RAM not indexed by the page table.",headerColWidth:60,headerColAlign:"right"},{uniqueName:"Majflt",description:"The number of cumulative major page faults. Major page faults occur for pages that are neither in RAM nor the page table.",headerColWidth:60,headerColAlign:"right"},{uniqueName:"Nivcsw",description:"The number of cumulative | immediate (10ms) involuntary context switches.",headerColWidth:150,headerColAlign:"right"},{uniqueName:"Nvcsw",description:"The number of cumulative | immediate (10ms) voluntary context switches.",headerColWidth:150,headerColAlign:"right"}]}],Mme=SP.filter(({pinned:e})=>e),Hkt=SP.filter(({pinned:e})=>!e),Lme=Mme.reduce((e,t)=>{for(const n of t.metrics)e+=n.headerColWidth;return e},1);function Zkt(){return u.jsxs(WZ,{children:[u.jsx(VZ,{children:u.jsx(V,{children:u.jsx(ui,{content:"Click to view column definitions.",children:u.jsx(Zie,{color:"var(--gray-11)",cursor:"pointer"})})})}),u.jsxs(HZ,{maxHeight:"85dvh",maxWidth:`min(80dvw, calc(0.8 * ${Zte}))`,size:"1",className:_h.tableDescriptionDialog,children:[u.jsx(ZZ,{size:"2",className:_h.title,mb:"0px",children:"Column Definitions"}),u.jsxs(q0,{size:"1",className:_h.table,children:[u.jsx("colgroup",{children:u.jsx("col",{style:{width:"110px"}})}),u.jsx(ip,{children:u.jsxs(la,{children:[u.jsx(Wi,{className:_h.th,children:"Column"}),u.jsx(Wi,{className:_h.th,children:"Definition"})]})}),u.jsx(G0,{children:SP.map(e=>e.metrics.map(t=>u.jsxs(la,{className:_h.tr,children:[u.jsx(ti,{className:_h.name,children:t.uniqueName}),u.jsx(ti,{children:t.description})]},t.uniqueName)))})]}),u.jsx(V,{justify:"end",children:u.jsx(qZ,{children:u.jsx(hs,{className:_h.closeButton,children:"Close"})})})]})]})}const Rme=18,qkt=m.memo(function(){return u.jsx(so,{children:u.jsxs(V,{direction:"column",gap:gc,width:"100%",children:[u.jsxs(V,{align:"center",gap:"2",children:[u.jsx(q,{className:Ld.headerText,children:"Tiles"}),u.jsx(Zkt,{})]}),u.jsx(Gkt,{})]})})});function Gkt(){return u.jsxs(V,{children:[u.jsx(Ome,{isPinned:!0}),u.jsx(Ome,{isPinned:!1})]})}function Ome({isPinned:e}){const t=X(rg),n=X(CG),r=e?Mme:Hkt,i=m.useMemo(()=>({"--bar-height":`${Rme}px`,minWidth:e?`${Lme}px`:"0px",flexBasis:e?`${Lme}px`:void 0}),[e]);if(!(!t||!n))return u.jsxs(q0,{variant:"ghost",className:Te(Ld.root,dr.table),size:"1",style:i,children:[u.jsx("colgroup",{children:r.map(o=>o.metrics.map(a=>u.jsx("col",{style:{width:a.headerColWidth}},a.uniqueName)))}),u.jsxs(ip,{className:dr.header,children:[u.jsx(la,{children:r.map((o,a)=>u.jsx(Wi,{colSpan:o.metrics.length,className:Te(dr.groupHeader,{[dr.rightBorder]:e||a!==r.length-1}),children:o.name},o.name))}),u.jsx(la,{className:dr.lightBorderBottom,children:r.map((o,a)=>o.metrics.map((s,l)=>u.jsx(Wi,{align:s.headerColAlign,className:Te({[dr.wrap]:!!s.wrap,[dr.rightBorder]:e||a!==r.length-1&&l===o.metrics.length-1}),children:s.columnName??s.uniqueName},s.uniqueName)))})]}),u.jsx(G0,{children:t.map((o,a)=>u.jsx(Ykt,{tile:o,liveTileMetrics:n,idx:a,isPinned:e},`${o.kind}${o.kind_id}`))})]})}function Ykt({tile:e,liveTileMetrics:t,idx:n,isPinned:r}){const i=D$(t,(s,l)=>s?l?Object.keys(l).every(c=>{var d,f;return rt.isEqual((d=s[c])==null?void 0:d[n],(f=l[c])==null?void 0:f[n])}):!0:!1),o=t.alive[n]??(i==null?void 0:i.alive[n]);if(o===2)return;const a=t.timers[n]||(i==null?void 0:i.timers[n]);if(a)return r?u.jsx(la,{className:dr.dataRow,children:u.jsxs(ti,{className:dr.rightBorder,children:[e.kind,":",e.kind_id]})}):u.jsx(Kkt,{alive:o,timers:a,liveTileMetrics:t,prevLiveTileMetricsIdx:i,idx:n})}function Kkt({alive:e,timers:t,liveTileMetrics:n,prevLiveTileMetricsIdx:r,idx:i}){const o=D$(n.sched_timers[i]),a=n.sched_timers[i]||o||[],[s,l,c,d]=a.map(A=>A===-1?0:A),f=n.nivcsw[i]??(r==null?void 0:r.nivcsw[i]),p=n.nvcsw[i]??(r==null?void 0:r.nvcsw[i]),v=n.in_backp[i]??(r==null?void 0:r.in_backp[i]),_=n.backp_msgs[i]??(r==null?void 0:r.backp_msgs[i]),y=n.last_cpu[i]??(r==null?void 0:r.last_cpu[i]),b=n.minflt[i]??(r==null?void 0:r.minflt[i]),w=n.majflt[i]??(r==null?void 0:r.majflt[i]),x=o_(f),S=o_(p),C=o_(_);for(let A=0;A1})}),u.jsx(xh,{pct:T}),u.jsx(xh,{pct:E,className:Te({[dr.red]:E>0})}),u.jsx(xh,{pct:$,className:Te(dr.pctGradient,dr.rightBorder),style:{"--pct":`${$}%`}}),u.jsx(xh,{pct:s}),u.jsx(xh,{pct:c}),u.jsx(xh,{pct:d}),u.jsx(xh,{pct:l,className:dr.rightBorder}),u.jsx(ti,{align:"right",children:(b==null?void 0:b.toLocaleString())??"-"}),u.jsx(ti,{align:"right",children:(w==null?void 0:w.toLocaleString())??"-"}),u.jsxs(ti,{align:"right",children:[(f==null?void 0:f.toLocaleString())??"-"," |",u.jsx(Pme,{value:f!=null&&x!=null?f-x:0})]}),u.jsxs(ti,{align:"right",children:[(p==null?void 0:p.toLocaleString())??"-"," |",u.jsx(Pme,{value:p!=null&&S!=null?p-S:0})]})]})}function Pme({value:e}){const t=e.toLocaleString();return u.jsxs(q,{className:Te(dr.incrementText,{[dr.lowIncrement]:1<=e&&e<=10,[dr.midIncrement]:11<=e&&e<=100,[dr.highIncrement]:e>=101}),children:["+",t]})}function xh({pct:e,...t}){return u.jsx(ti,{align:"right",...t,children:e==null?"--":`${e.toFixed(2)}%`})}const zme=300,Xkt=m.memo(function({idx:e}){const t=X(l3),n=X(jG),r=t!=null&&t[e]&&t[e]>=0?1-Math.max(0,t[e]):-1,i=D$(r,(c,d)=>!(d!=null&&c!=null&&d>=0&&c>=0&&d!==c)),o=m.useRef({count:0,sum:0}),[a,s]=m.useState(r);m.useEffect(()=>{r>=0&&(o.current.count++,o.current.sum+=r)},[r]),r_(()=>{o.current.count!==0&&(s(o.current.sum/o.current.count),o.current={count:0,sum:0})},zme);const l=m.useMemo(()=>n.history.map(c=>{const d=c.values[e]??0;return{ts:c.ts,value:d>=0?1-Math.max(0,d):0}}),[n.history,e]);return u.jsxs(u.Fragment,{children:[u.jsx(ti,{className:dr.noPadding,children:u.jsx(V,{align:"center",children:u.jsx(G$,{value:r>=0?r:i??0,max:1,barWidth:2})})}),u.jsx(ti,{className:Te(dr.noPadding,dr.rightBorder),children:u.jsx(c_,{value:a,history:l,background:vk,windowMs:6e4,height:Rme,updateIntervalMs:zme,tickMs:1e3})})]})}),Jkt="_slot-label-card_1pson_1",Qkt="_slot-label-name_1pson_13",e6t="_slot-label-dt_1pson_16",t6t="_dt-sign_1pson_19",n6t="_slot-bar_1pson_24",r6t="_dim_1pson_29",i6t="_slot-bar-track_1pson_34",o6t="_next-leader-container_1pson_38",a6t="_next-leader-timer-label_1pson_44",s6t="_next-leader-timer-container_1pson_50",wl={slotLabelCard:Jkt,slotLabelName:Qkt,slotLabelDt:e6t,dtSign:t6t,slotBar:n6t,dim:r6t,slotBarTrack:i6t,nextLeaderContainer:o6t,nextLeaderTimerLabel:a6t,nextLeaderTimerContainer:s6t};function Dme(e){return m.useMemo(()=>{const t=new Map,n=r=>{var i;r.slot!=null&&(t.has(r.slot)?(i=t.get(r.slot))==null||i.push(r):t.set(r.slot,[r]))};for(const r of e)n(r);return t},[e])}const CP=2,P1=`${CP}px`,zm="5px",Ame=2,Fme=34,kx=Fme-Fme%2,l6t="#A09000",u6t="#0ABF9E",c6t="#4AA7C1",d6t="#08A24D",f6t="#AC4902",h6t="#3F7BF4",p6t="#AF49F2",m6t="#2497EE",g6t="#A09000",v6t="#0ABF9E",y6t="#4AA7C1",b6t="#08A24D",_6t="#AC4902",x6t="#3F7BF4",w6t="#AF49F2",k6t="#2497EE";function S6t(){if(!X(ol))return u.jsx(so,{children:u.jsxs(V,{direction:"column",height:"100%",gap:gc,children:[u.jsx(q,{style:{color:"var(--primary-text-color)",fontSize:"18px"},children:"Slots"}),u.jsx(j6t,{})]})})}function C6t(e,t){if(!(t==null||e==null))return e-t}function wh(e,t,n,r,i){return{label:e,slot:t,slotDt:C6t(t,n),labelColor:r,barColor:i}}const Bme=14,Sx=m.createContext({barWidth:Bme,shrinkSlotsLabel:!1,useLabelGrid:!1});function j6t(){const[e,t]=m.useState(Bme),n=X(vG),r=X(pG),i=X(RT),o=X(yG),a=X(Gy),s=X(fp),l=X(mG),c=X(Lb),d=Hn("(max-width: 1300px)"),f=Hn("(max-width: 1000px)"),{storageSlotBar:p,rootSlotBar:v,voteSlotBar:_,repairSlotBar:y,turbineSlotBar:b,replaySlotBar:w,optimisticallyConfirmedBar:x,nextLeaderSlotBar:S}=m.useMemo(()=>{const $=wh("Storage",n,s,l6t,g6t),A=wh("Root",r,s,u6t,v6t),M=wh("Voted",i,s,c6t,y6t),P=wh("Repair",o,s,f6t,_6t),te=wh("Turbine",a,s,h6t,x6t),Z=wh("Processed",s,s,d6t,b6t),O=wh("Confirmed",l,s,p6t,w6t),J=wh("Next Leader",c,s,m6t,k6t);return{storageSlotBar:$,rootSlotBar:A,voteSlotBar:M,repairSlotBar:P,turbineSlotBar:te,replaySlotBar:Z,optimisticallyConfirmedBar:O,nextLeaderSlotBar:J}},[c,l,o,s,r,n,a,i]),C=m.useMemo(()=>({barWidth:e,shrinkSlotsLabel:d,useLabelGrid:f}),[e,d,f]);if(!s)return;const j=Eb([_.slot,y.slot,b.slot,w.slot,x.slot]),T=r!=null||n!=null?Math.max(kx,Eb([s,a])-Eb([r,n])):kx,E=Math.max(T/8,kx/2+(kx-T));return u.jsxs(Sx.Provider,{value:C,children:[f&&u.jsx(N6t,{storageSlotBar:p,rootSlotBar:v,voteSlotBar:_,repairSlotBar:y,turbineSlotBar:b,confirmedSlotBar:x,replaySlotBar:w,nextLeaderSlotBar:S}),u.jsxs(V,{gap:P1,children:[u.jsx(T6t,{storageSlotBar:p,rootSlotBar:v,repairSlotBar:y}),u.jsxs(Zr,{columns:`${T}fr ${E}fr`,gapX:P1,flexGrow:"1",children:[u.jsx(I6t,{voteSlotBar:_,repairSlotBar:y,turbineSlotBar:b,replaySlotBar:w,confirmedSlotBar:x,minSlot:r??s-32,maxSlot:j,setBarWidth:t}),u.jsx(E6t,{nextLeaderSlotBar:S,minSlot:j})]})]})]})}const Ume=20;function T6t({storageSlotBar:e,rootSlotBar:t,repairSlotBar:n}){const{barWidth:r,useLabelGrid:i}=m.useContext(Sx),[o,a]=Ss(),s=m.useMemo(()=>[e,t],[t,e]),l=m.useMemo(()=>[...s,n],[n,s]),c=Dme(l),d=m.useMemo(()=>{if(!r)return 0;const x=a.width-(r*3-CP*2),S=Math.max(Ame,r/2);return Math.min(20,Math.trunc(x/S))},[r,a.width]),f=Eb([e.slot,t.slot]),p=Oze([e.slot,t.slot,n.slot])-1,v=f-p,_=v<7?r:void 0,y=v>Ume,b=y?Ume:v,w=f-b;return u.jsxs(V,{direction:"column",gap:zm,minWidth:i?"30px":void 0,children:[!i&&u.jsx(V,{gap:zm,justify:"end",children:s.map(x=>u.jsx(vu,{slotBarInfo:x},x.label))}),u.jsxs(V,{style:{opacity:.6},className:wl.slotBarTrack,align:"stretch",justify:"end",gap:P1,ref:o,children:[u.jsx(Vme,{count:d}),Array.from({length:b}).map((x,S)=>{const C=w+S+1,j=y&&S===0?c.get(n.slot??0):c.get(C);return j?u.jsx(jP,{colors:j.map(({barColor:T})=>T),barWidth:_},C):u.jsx(dC,{barWidth:_},C)})]})]})}function I6t({voteSlotBar:e,repairSlotBar:t,turbineSlotBar:n,replaySlotBar:r,confirmedSlotBar:i,maxSlot:o,minSlot:a,setBarWidth:s}){const[l,{width:c}]=Ss(),{useLabelGrid:d}=m.useContext(Sx),f=m.useMemo(()=>[e,i,r,t,n],[i,t,r,n,e]),p=Dme(f),v=rt.clamp(o-a,kx,100),_=m.useRef(v);return _.current=v,m.useEffect(()=>{if(c){const y=Math.trunc((c-CP*(v-1))/v);s(y)}},[v,s,c]),u.jsxs(V,{direction:"column",gap:zm,ref:l,minWidth:"100px",children:[!d&&u.jsx(V,{gap:zm,justify:"end",children:f.map(y=>u.jsx(vu,{slotBarInfo:y},y.label))}),u.jsx(V,{style:{opacity:.6},className:wl.slotBarTrack,align:"stretch",justify:"end",gap:P1,children:Array.from({length:v}).map((y,b)=>{const w=a+b+1,x=p.get(w);return x?u.jsx(jP,{colors:x.map(({barColor:S})=>S)},w):u.jsx(dC,{},w)})})]})}function E6t({nextLeaderSlotBar:e,minSlot:t}){const{barWidth:n,useLabelGrid:r}=m.useContext(Sx),[i,o]=Ss(),a=m.useMemo(()=>{if(!n)return 0;const l=o.width-n,c=Math.max(Ame,n/2);return Math.trunc(l/c)},[n,o.width]),s=e.slot!=null?Math.min(a,e.slot-t):a;return u.jsxs(V,{direction:"column",gap:zm,minWidth:"0",className:wl.nextLeaderContainer,justify:"between",children:[!r&&u.jsxs(V,{justify:"end",gap:zm,children:[u.jsx(Wme,{}),u.jsx(vu,{slotBarInfo:e},e.label)]}),u.jsxs(V,{style:{opacity:.6},className:wl.slotBarTrack,align:"stretch",justify:"end",gap:P1,ref:i,children:[u.jsx(Vme,{count:s}),e.slot&&u.jsx(jP,{colors:[e.barColor],barWidth:n/2})]})]})}function Wme(){const{progressSinceLastLeader:e,nextSlotText:t}=P_({showNowIfCurrent:!1});return u.jsxs(V,{direction:"column",flexGrow:"1",p:"5px",align:"stretch",justify:"between",minWidth:"70px",className:wl.nextLeaderTimerContainer,children:[u.jsxs(q,{align:"center",wrap:"nowrap",children:[u.jsx(q,{style:{color:"#919191"},className:wl.nextLeaderTimerLabel,children:"Time Until Leader"}),u.jsxs(q,{style:{color:"#BCBCBC"},children:["\xA0",t]})]}),u.jsx("div",{children:u.jsx(a1,{value:e,height:"2px",duration:"500ms"})})]})}const vu=m.memo(function({slotBarInfo:e}){const{shrinkSlotsLabel:t}=m.useContext(Sx),{slot:n,slotDt:r,labelColor:i,label:o}=e;if(n==null||r==null)return;const a=`${o}${t?"":" Slot"}`,s=`${Math.abs(r)}`;return u.jsxs(V,{direction:"column",align:"stretch",className:wl.slotLabelCard,minWidth:"50px",children:[u.jsxs(V,{gap:"5px",justify:"between",align:"stretch",style:{color:i},children:[u.jsx(q,{className:wl.slotLabelName,weight:"bold",wrap:"nowrap",truncate:!0,dir:"rtl",children:a}),e.label==="Processed"?u.jsx(q,{style:{fontSize:"10px",lineHeight:"14px"},children:"\u{1F4CD}"}):u.jsxs(q,{truncate:!0,className:wl.slotLabelDt,weight:"bold",children:[e.label!=="Next Leader"&&u.jsx(Za,{className:wl.dtSign,children:r===0?" ":r>0?"+":"-"}),u.jsx(q,{truncate:!0,children:s})]})]}),u.jsx(M_,{value:n,containerRowJustify:"center"})]})});function jP({colors:e,barWidth:t}){const n=t?void 0:"1";return u.jsx(Zr,{rows:"repeat(auto-fill, 1fr)",gap:P1,flexGrow:n,children:e.map(r=>u.jsx(dC,{barWidth:t,color:r},r))})}const dC=m.memo(function({isDim:e,color:t,barWidth:n}){const r=n?void 0:"1";return u.jsx(Mt,{width:`${n}px`,flexGrow:r,className:Te(wl.slotBar,{[wl.dim]:e}),style:{"--bar-color":t}})}),Vme=function({count:e}){return Array.from({length:e}).map((t,n)=>u.jsx(dC,{isDim:!0},n))};function N6t({storageSlotBar:e,rootSlotBar:t,voteSlotBar:n,repairSlotBar:r,turbineSlotBar:i,replaySlotBar:o,confirmedSlotBar:a,nextLeaderSlotBar:s}){return u.jsxs(Zr,{columns:{xs:"4",initial:"2"},gap:zm,children:[u.jsx(vu,{slotBarInfo:e}),u.jsx(vu,{slotBarInfo:t}),u.jsx(vu,{slotBarInfo:n}),u.jsx(vu,{slotBarInfo:a}),u.jsx(vu,{slotBarInfo:o}),u.jsx(vu,{slotBarInfo:r}),u.jsx(vu,{slotBarInfo:i}),u.jsx(vu,{slotBarInfo:s}),u.jsx(Mt,{gridColumn:{xs:"span 4",initial:"span 2"},children:u.jsx(Wme,{})})]})}const $6t="_stat-row_1xsdi_1",M6t="_storage-stat-container_1xsdi_10",TP={statRow:$6t,storageStatContainer:M6t},L6t="_trailing_1bhfc_1",R6t="_fraction_1bhfc_5",O6t="_fraction-line_1bhfc_10",IP={trailing:L6t,fraction:R6t,fractionLine:O6t};function P6t(e,t,n){const r=t.indexOf("."),i=n.indexOf("."),o=r!==-1?r:t.length,a=i!==-1?i:n.length,s=e-o,l=a+s;return l<0||l>=n.length||t[e]!==n[l]}function EP({value:e,changedColor:t,unchangedColor:n,className:r}){const i=m.useRef(void 0);return m.useEffect(()=>{i.current=e},[e]),u.jsx(q,{className:r,children:e.split("").map((o,a)=>{const s=i.current===void 0||P6t(a,e,i.current);return u.jsx("span",{style:{color:s?t:n},children:o},a)})})}const NP={Unknown:{changed:fk,unchanged:hk},Good:{changed:mne,unchanged:gne},Average:{changed:vne,unchanged:yne},Bad:{changed:bne,unchanged:_ne}};function z6t(){const e=X(c3),{percentage:t,numerator:n,denominator:r,showFraction:i,status:o}=m.useMemo(()=>{if(!e)return{percentage:"-",numerator:"-",denominator:"-",showFraction:!1,status:"Unknown"};const{hits:a,lookups:s}=e,l=s===0?0:a/s*100,c=s===0?"Unknown":l<99.95?"Bad":l<99.999?"Average":"Good";return{percentage:l===100?"100":l.toFixed(20),numerator:a.toLocaleString(),denominator:s.toLocaleString(),showFraction:!!s,status:c}},[e]);return u.jsxs(V,{className:Te(fi.container),direction:"column",align:"start",gap:"1",children:[u.jsxs(q,{className:fi.label,children:[u.jsx(q,{children:"Hit Rate"})," ",u.jsx(q,{className:IP.trailing,children:"Trailing 1m"})," ",u.jsx(q,{style:{color:NP[o].unchanged},children:o})]}),u.jsxs(V,{gap:"2",align:"center",children:[u.jsxs(V,{align:"baseline",gap:"1",children:[u.jsx(EP,{value:t,changedColor:NP[o].changed,unchangedColor:NP[o].unchanged,className:Te(fi.value,fi.small)}),u.jsx(q,{className:fi.appendValue,children:"%"})]}),i&&u.jsxs(V,{direction:"column",className:IP.fraction,children:[u.jsx(EP,{value:n,changedColor:fk,unchangedColor:hk}),u.jsx("hr",{className:IP.fractionLine}),u.jsx(EP,{value:r,changedColor:fk,unchangedColor:hk})]})]})]})}function D6t(){const e=X(c3),{progress:t,numerator:n,denominator:r}=m.useMemo(()=>{if(!e)return{progress:0,numerator:{value:"-",unit:"B"},denominator:{value:"-",unit:"B"}};const{size_bytes:i,free_bytes:o}=e,a=i-o,s=Da(a,2),l=Da(i,2),c=i?rt.clamp(a/i*100,0,100):0,d=Sg.findIndex(f=>f.unit===s.unit);return Sg.findIndex(f=>f.unit===l.unit)===d+1?{numerator:Da(a,3,l.unit),denominator:l,progress:c}:{numerator:s,denominator:l,progress:c}},[e]);return u.jsxs(V,{direction:"column",className:TP.storageStatContainer,children:[u.jsxs(V,{className:fi.container,direction:"column",align:"start",children:[u.jsx(q,{className:fi.label,children:"Storage"}),u.jsxs(V,{align:"baseline",gap:"1",children:[u.jsx(q,{className:Te(fi.value,fi.small),style:{color:Yu},children:n.value}),n.unit!==r.unit&&u.jsx(q,{className:fi.appendValue,children:n.unit}),u.jsx(q,{className:Te(fi.value,fi.small),children:"/"}),u.jsx(q,{className:Te(fi.value,fi.small),children:r.value}),u.jsx(q,{className:fi.appendValue,children:r.unit})]})]}),u.jsx(a1,{value:t})]})}function A6t(){return u.jsx(so,{children:u.jsxs(V,{direction:"column",height:"100%",gap:"2",align:"start",children:[u.jsx(Sd,{text:"Program Cache"}),u.jsxs("div",{className:TP.statRow,children:[u.jsx(z6t,{}),u.jsx(D6t,{})]}),u.jsx("div",{className:TP.statRow,children:u.jsx(F6t,{})})]})})}function F6t(){const e=X(c3);return u.jsxs(u.Fragment,{children:[u.jsx($P,{label:"Insertions",numTimes:e==null?void 0:e.insertions,bytes:e==null?void 0:e.insertion_bytes}),u.jsx($P,{label:"Evictions",numTimes:e==null?void 0:e.evictions,bytes:e==null?void 0:e.eviction_bytes}),u.jsx($P,{label:"Spills",numTimes:e==null?void 0:e.spills,bytes:e==null?void 0:e.spill_bytes})]})}function $P({label:e,numTimes:t,bytes:n}){const{value:r,appendValue:i}=m.useMemo(()=>{const o=n!==void 0?Da(n):void 0;return{value:t!==void 0?t.toLocaleString():"-",appendValue:o?` (${o.value} ${o.unit})`:void 0}},[n,t]);return u.jsx(ya,{label:e,value:r,valueColor:kne,valueSize:"small",appendValue:i})}const B6t="_cards_hn4o1_1",U6t="_txns-card_hn4o1_5",W6t="_frankendancer_hn4o1_18",MP={cards:B6t,txnsCard:U6t,frankendancer:W6t};function V6t(){return u.jsxs(V,{direction:"column",gap:"4",flexGrow:"1",children:[u.jsx(S6t,{}),u.jsxs(Zr,{className:Te(MP.cards,{[MP.frankendancer]:_i}),gap:"4",children:[u.jsx(hkt,{}),u.jsx(akt,{}),u.jsx(ikt,{}),!_i&&u.jsx(A6t,{}),u.jsx(tkt,{className:MP.txnsCard})]}),u.jsx(gkt,{}),u.jsx(Bfe,{}),u.jsx(xkt,{}),u.jsx(qkt,{})]})}const H6t=up("/")({component:V6t}),Z6t=$pe.update({id:"/slotDetails",path:"/slotDetails",getParentRoute:()=>s1}),q6t=yx.update({id:"/leaderSchedule",path:"/leaderSchedule",getParentRoute:()=>s1}),G6t=F3t.update({id:"/gossip",path:"/gossip",getParentRoute:()=>s1}),Y6t=B3t.update({id:"/about",path:"/about",getParentRoute:()=>s1}),K6t=H6t.update({id:"/",path:"/",getParentRoute:()=>s1}),X6t={IndexRoute:K6t,AboutRoute:Y6t,GossipRoute:G6t,LeaderScheduleRoute:q6t,SlotDetailsRoute:Z6t},J6t=s1._addFileChildren(X6t)._addFileTypes(),Q6t=ca();function e5t(){const e=X(MG),t=Ee(Sme);m.useEffect(()=>{if(!e)return;const i=[...new Array(cC).fill(void 0),...e.flatMap(([o,a,s,l])=>[{total:o,vote:a,nonvote_success:s,nonvote_failed:l},{total:o,vote:a,nonvote_success:s,nonvote_failed:l},{total:o,vote:a,nonvote_success:s,nonvote_failed:l},{total:o,vote:a,nonvote_success:s,nonvote_failed:l}])];t(i.slice(i.length-cC))},[t,e]);const n=()=>{if(!e)return;const i=Q6t.get(OT);i!==void 0&&t(o=>{o.push(i),o.length>cC&&o.shift()})},r=m.useRef(n);r.current=n,m.useEffect(()=>{let i;function o(){r.current(),i=setTimeout(o,100)}return o(),()=>clearTimeout(i)},[])}function t5t(){const e=S6();Qu(()=>{e({topic:"summary",key:"ping",id:1})},2e3)}XNe.discriminatedUnion("topic",[z$e,A$e,Z$e,X$e,sMe,cMe,pMe]);function n5t(e,t){return e.key===t}const r5t=400,i5t=100,o5t=130,a5t=100,s5t=100,l5t=25,u5t=300,c5t=1e3,d5t=`${window.location.protocol.startsWith("https")?"wss":"ws"}://${window.location.hostname}:${window.location.port}/websocket`,f5t=!0;function h5t(){const e=Ee(jL),t=p5t(),n=Ee(xG),r=Ee(wG),i=Ee(jG),o=Ee(IG),a=m.useCallback(d=>{n5t(d,"gossipHealth")&&o({value:d.value,history:d.history})},[o]),s=m.useCallback(({key:d,values:f,history:p})=>{switch(d){case"ingress":n({values:f,history:p});break;case"egress":r({values:f,history:p});break}},[n,r]),l=m.useCallback(({key:d,values:f,history:p})=>{switch(d){case"tileTimers":i({values:f,history:p});break}},[i]),c=m.useCallback(d=>{switch(d.type){case"connected":e(ac.Connected);break;case"connecting":e(ac.Connecting);break;case"disconnected":e(ac.Disconnected);break;case"kvb":for(const f of d.items)t(f);break;case"kv":t(d);break;case"ema":break;case"emaHistoryArray":for(const f of d.items)s(f);break;case"historyArray":for(const f of d.items)l(f);break;case"emaHistoryObject":for(const f of d.items)a(f);break}},[e,t,s,l,a]);Tqe(c)}function p5t(){const e=Ee(uG),t=Ee(qy),n=Ee(cG),r=Ee(dp),i=Ee(rg),o=Ee(fG),a=Ee(hG),s=Ee(s3),[l,c]=Vl(dG),[d,f]=m.useReducer(()=>{const it=l!==void 0?Kf.diff(jt.fromMillis(Math.floor(Number(l.startupTimeNanos)/1e6))):void 0,Yt=it!==void 0?it.as("minutes"):void 0;return Yt!==void 0&&Yt>5?1e3*60:1e3},1e3);Qu(f,1e3);const p=Ee(_G),v=Ua(it=>p(it),d),_=Ee(OT),y=Ua(it=>{_(it)},r5t),b=Ee(PT),w=Ua(it=>{b(it)},a5t),x=Ee(CG),S=Ua(it=>{x(it)},o5t),C=Ee(SG),j=Ua(it=>{C(it)},i5t),T=Ee(cre),E=Ee(kG),$=Ua(it=>{E(it),T(it==null?void 0:it.waterfall)},s5t),A=Ee(l3),M=Ua(it=>{A(it)},l5t),P=Ee(Hl),te=Ee(Zu),Z=Ee(JN),O=Ee(MG),J=Ee(zT),D=Ee(LG),Y=Ee(Sre),F=Ee(u3),H=Ee(aDe),ee=Ee(OG),[ce,U]=Vl(di),ae=Ee(rDe),je=Ee(TG),me=Ua(it=>{je(it)},u5t),ke=Ee(EG),he=Ua(it=>{ke(it)},c5t),ue=Ee(NG),re=Ee($G),ge=Ee(fDe),$e=Ee(pDe),pe=Ee(RG),ye=Ee(fp),Se=Ee(gG),Ce=Ee(SDe),Be=Ee(CDe),Ge=Ee(TDe),xt=Ee(IDe),St=Ee(EDe),ut=Ee(NDe),ct=m.useCallback(it=>{ae(it.publish.slot,it.publish.level),it.publish.skipped?Ce([it.publish.slot]):Be(it.publish.slot),it.publish.level==="rooted"&&(zze(it.publish)?Ge(it.publish.slot,it.publish.vote_latency):xt(it.publish.slot)),it.publish.mine&&(it.publish.skipped?F(Yt=>[...(Yt??[]).filter(nr=>nr!==it.publish.slot),it.publish.slot].sort()):F(Yt=>Yt!=null&&Yt.some(nr=>nr===it.publish.slot)?Yt==null?void 0:Yt.filter(nr=>nr!==it.publish.slot):Yt))},[Ge,Ce,xt,Be,F,ae]),bt=Ee(Gy),Qe=Ee(nZe),Ke=m.useCallback(it=>{bt(it),it!=null&&Qe([it])},[Qe,bt]),De=Ee(yG),Dt=Ee(oZe),pn=m.useCallback(it=>{De(it),it!=null&&Dt([it])},[Dt,De]),Yn=Ee(x7e),fr=Ee(vG),Kn=Ee(RT),wr=Ee(pG),Pn=Ee(mG),$r=Ee(bG),tr=Ee(__.addShredEvents),kr=Ee(c3),ni=m.useRef(new Map),uo=m.useRef(new Map),Ki=Ip(()=>{ge([...ni.current.values()]),$e([...uo.current.values()]),ni.current.clear(),uo.current.clear()},1e3,{maxWait:1e3}),No=m.useCallback(it=>{if(it.add)for(const Yt of it.add)ni.current.set(Yt.identity_pubkey,Yt),uo.current.delete(Yt.identity_pubkey);if(it.update)for(const Yt of it.update)ni.current.set(Yt.identity_pubkey,Yt);if(it.remove)for(const Yt of it.remove)ni.current.delete(Yt.identity_pubkey),uo.current.set(Yt.identity_pubkey,Yt);Ki()},[Ki]),Os=Ee(vDe),zn=m.useRef({toAdd:new Set,toRemove:new Set}),co=Ip(()=>{Os([...zn.current.toAdd],[...zn.current.toRemove]),zn.current.toAdd.clear(),zn.current.toRemove.clear()},1e3,{maxWait:1e3}),_a=m.useCallback((it,Yt)=>{if(it)for(const nr of Yt)zn.current.toAdd.add(nr),zn.current.toRemove.delete(nr);else for(const nr of Yt)zn.current.toAdd.delete(nr),zn.current.toRemove.add(nr);co()},[co]),yc=m.useCallback(it=>{const{topic:Yt,key:nr,value:ht}=it;switch(Yt){case"summary":switch(nr){case"version":{e(ht);break}case"cluster":{t(ht);break}case"commit_hash":{n(ht);break}case"identity_key":{r(ht);break}case"vote_balance":{a(ht);break}case"startup_time_nanos":{c({startupTimeNanos:ht});break}case"tiles":{i(ht);break}case"schedule_strategy":{s(ht);break}case"identity_balance":{o(ht);break}case"estimated_slot_duration_nanos":{v(ht);break}case"estimated_tps":{y(ht);break}case"live_tile_primary_metric":{j(ht);break}case"live_txn_waterfall":{$(ht);break}case"live_tile_timers":{M(ht);break}case"boot_progress":{P(ht);break}case"startup_progress":{te(ht);break}case"tps_history":{O(ht);break}case"vote_state":{J(ht);break}case"vote_distance":{D(ht);break}case"skip_rate":{Y(ht);break}case"completed_slot":{ye(ht);break}case"turbine_slot":{Ke(ht);break}case"repair_slot":{pn(ht);break}case"reset_slot":{Yn(ht);break}case"storage_slot":{fr(ht);break}case"vote_slot":{Kn(ht);break}case"root_slot":{wr(ht);break}case"optimistically_confirmed_slot":{Pn(ht);break}case"slot_caught_up":$r(ht);break;case"catch_up_history":{Qe(ht.turbine),Dt(ht.repair);break}case"server_time_nanos":{Se(ht);break}case"live_network_metrics":{w(ht);break}case"live_tile_metrics":S(ht);break;case"live_program_cache":kr(ht);break}break;case"epoch":switch(nr){case"new":U(ht);break}break;case"gossip":switch(nr){case"network_stats":{me(ht);break}case"peers_size_update":{he(ht);break}case"query_scroll":case"query_sort":{ue(ht);break}case"view_update":{re(ht);break}}break;case"peers":No(ht);break;case"slot":switch(nr){case"skipped_history":{F(ht.sort());break}case"skipped_history_cluster":{Ce(ht);break}case"update":case"query":case"query_detailed":case"query_transactions":{ht&&(H(ht),ct(ht));break}case"query_rankings":{ee(ht);break}case"live_shreds":{tr(ht);break}case"late_votes_history":{ut(ht);break}}break;case"block_engine":{switch(nr){case"update":{pe(ht);break}}break}case"wait_for_supermajority":{switch(nr){case"stakes":{Z(ht);break}case"peer_add":{_a(!0,ht);break}case"peer_remove":{_a(!1,ht);break}}break}}},[tr,pn,Dt,Ce,No,_a,Ke,Qe,ct,pe,P,t,n,ye,v,y,me,he,w,j,S,$,M,U,re,ue,o,r,ut,kr,Pn,Yn,wr,s,Se,Y,F,$r,ee,H,te,c,fr,Z,i,O,e,a,D,Kn,J]),bc=Ee(oDe),_c=Ee(sDe),qa=Ee(jDe),kl=Ee(Qze);Qu(()=>{bc(),_c(),ce&&F(it=>it==null?void 0:it.filter(Yt=>Yt>=ce.start_slot&&Yt<=ce.end_slot))},5e3),m.useEffect(()=>{ce&&(qa(ce.start_slot,ce.end_slot),kl(ce.epoch))},[qa,kl,ce]),m.useEffect(()=>{ce&&St({startSlot:ce.start_slot,endSlot:ce.end_slot})},[St,ce]);const pi=X(ol),Bn=X(jL)===ac.Disconnected,Mr=Ee(__.deleteSlots);m.useEffect(()=>{Bn&&Mr(Bn,pi)},[Mr,Bn,pi]);const $o=Ee(rZe),fo=Ee(aZe);m.useEffect(()=>{pi||($o(),fo())},[pi,fo,$o]),Qu(()=>{Mr(Bn,pi)},pi?1e3:_6/4);const Lr=Ee(bDe),ho=Ee(_De),xa=X(Gu);return m.useEffect(()=>{Bn&&(co.cancel(),zn.current.toAdd.clear(),zn.current.toRemove.clear(),ho())},[co,Bn,ho]),Qu(Lr,xa===wn.waiting_for_supermajority?1e3:null),yc}function m5t(){return h5t(),e5t(),t5t(),null}function g5t(e){return new e}function v5t(e){return new Worker("/assets/wsWorker-DTUp_HyV.js",{name:e==null?void 0:e.name})}function y5t(e){return(t,...n)=>{console[e](`(${jt.now().toISO({includeOffset:!1})??""}) [${t}]`,...n)}}const b5t=y5t("error");let yu=null;const Hme=new Cse().setMaxListeners(1e3);let Cx=[],Dm=null,Am=null;function Zme(){Dm=null,Am=null;const e=Cx;Cx=[];for(const t of e)try{Hme.emit(FM,t)}catch(n){b5t("useWsWorker","Error processing worker message:",t.type,n)}}function qme(){Dm!==null&&(cancelAnimationFrame(Dm),Dm=null),Am!==null&&(clearTimeout(Am),Am=null)}function Gme(){Dm!==null||Am!==null||Cx.length&&(document.visibilityState==="visible"?Dm=requestAnimationFrame(Zme):Am=window.setTimeout(Zme,0))}function _5t(){(Dm!==null||Am!==null)&&(qme(),Gme())}document.addEventListener("visibilitychange",_5t);function x5t(e){Cx.push(e.data),Gme()}function w5t(e,t){yu||e.trim()&&(yu=g5t(v5t),yu.onmessage=x5t,yu.postMessage({type:"connect",websocketUrl:e,compress:t}))}function k5t(){qme(),Cx=[],yu&&(yu.postMessage({type:"disconnect"}),yu.terminate(),yu=null)}function S5t({websocketUrl:e,compress:t}){return m.useEffect(()=>(w5t(e,t),()=>k5t()),[e,t]),{sendMessage:m.useCallback(n=>{yu==null||yu.postMessage({type:"send",value:n})},[]),emitter:Hme}}function C5t({children:e}){const{sendMessage:t,emitter:n}=S5t({websocketUrl:d5t,compress:f5t}),r=m.useMemo(()=>({...jse,sendMessage:t,emitter:n}),[t,n]);return u.jsxs(BM.Provider,{value:r,children:[u.jsx(m5t,{}),e]})}const j5t=R9e({routeTree:J6t});y7e(),Vi?(Kme=document.getElementById("favicon"))==null||Kme.setAttribute("href",toe):(Xme=document.getElementById("favicon"))==null||Xme.setAttribute("href",noe);function T5t(){const e=Ee(jg),t=m.useCallback(n=>{e(n),Object.entries(Sze).forEach(([r,i])=>{n.style.setProperty(`--${rt.kebabCase(r)}`,i)})},[e]);return i_(()=>{"fonts"in document&&new FontFace("NotoFlagsOnly","url(assets/NotoFlagsOnly.woff2)",{weight:"normal",style:"normal",display:"swap"}).load().then(n=>{document.fonts.add(n)}).catch(console.error)}),u.jsx(Mf,{id:"app",appearance:"dark",ref:t,scaling:"90%",children:u.jsx(C5t,{children:u.jsx(z9e,{router:j5t})})})}mj.createRoot(document.getElementById("root")).render(u.jsx(Oe.StrictMode,{children:u.jsx(T5t,{})})); diff --git a/src/disco/gui/dist_stable/assets/inter-tight-latin-400-normal-BLrFJfvD.woff b/src/disco/gui/dist_stable/assets/inter-tight-latin-400-normal-BLrFJfvD.woff deleted file mode 100644 index a37d1139beff7b3cfe80618d060f9880a74c9d66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28248 zcmZ^K19WB0@^3Pk*tTukwr$&XGO=yjn%K$2PA0aE6PqvJz4xtm-&^nBYgeDswd+?^ zr%&&_tGau;%ZrHt0Rw#(I}ITCe?AX!zT5xe{L}jHA}%5-1_T7G@y&DmrebUt9073! zdF5~3BoGj?9S{)T5)_JM=AV(J8%x`nwazF&%M1n>F%V1&a z;_=O6`PM%R1Oy&T@<#*N#@_f_&iGqDNYpnC>ZCi)+8TO%+ciu6#$o@12Yv_sX=i9_ z`px_O?caBA{SaW(QZ;a}cXj~+GXDbv1eOj21Seu(sEg^bMmh)#)(-?Ew)=$k^M^|X zCgd+&(qc*&%yY1yK|6+D!IJEdKScPuN5W95pWO=#Vr=4Rk5?RH*e`GTn0q`%>>0<}wHJ zn??~vbhhjCz;C_9_P>w)V*D`GDz{SFTf)Nl5pd;+Gq-BFL5~Gvw5@%;>W5v~KULb_pL#BSU!(v;8W69ylT#KORMggU z=$TEKEJns1)&)*!b%7tstKM+#aV5MhDPw?P(?_IqwOuPHO1{6UDvr@}0>iecm#mwl zHYMWlEc(kykkkuetM;!88JP*Z)Kyr%P2<0?dYmiw%&@;O<$(em`9?bhJ5!daCv!U! z(eHF}W519+*)7EH6fWVl7L&N0wf}bHc5<>GtnE~MHdc-wn$n~lC+ei%?WL~@W+f;) zEBzflPRGGi7@IUC<@6}`-P*bM`-QXdT2ozjz2#-e`?$~UEOt&u4r*iX3ktyn&fDvn zGx}MYKH33Mwo8HdMIM1;a1>og!EyD5UbpqzPGKFw>igddZQfjwtXZkBC8p?KgFV~a za%NAToaVKD%YoSSGYhNFxa&@5k>qFnf(%Z~MkNkEm2#uC9Xcry+pXR3rcH^Tcx0gK z=lxKqEAoAYbD|x9q89TUJAMBtq$E2n`b2qK9AX02#)-O=Mk)*|L5q z#TxB~iM-__csj2P51*ev8ApS#=7|o!O@u^5EYn{PaFj$r-?^NSBBCcIlH1k?oBgo7NfE3?x=m)q-(9xz zvjuUY$K6vT+fSrCyA%D^W@6&v=k{If0 z$WszY0$4k&D#X7k=s_SPV<}+1AO+B3<3nWI0*FZn`q&^!LBnlF5xHZ7STx!|^MU>X z6+;+67=Ztx{Zk)|fZ6X@odQBlJs}Bl@4k`T(#^`N%Dmp{{KUvxbM(+vp?>voHFa$N zb~5lDh3i`;c=ut6*g1eY(N8#&Y>rv6T&%^()(CH zQ{@2%FPXk8!veGa=!M{y2q&MhOR;)b9y3BrW`Z-~7OL5zemlgq9R14rce&!Q>w_)L zfe5@{_%^F2Eq#c%>w0MN_z)z9wDK>xT-erLfPRJD2x?K7a3R%jN1NN;dSXLE6#_B7-SZ7n!LF$(^4O`)BO=^6| zIlFgaup*Jl8qk@$bFI!`imgZg=C!#JKIZ~kTax;8s$5E$hOJmtc$c2-yxc&ouTk*% z1V&yT`K;G7x$n5-jI3KwiXuCDmU9iT8a~{cRA~E;@^mZX-&xOQThpJ$XSH~nzp>$Y zO^3)LB;Yy^GI?zlePfA>6a<{fUNkG$32#d;7Ya08$o)F_Ealk$s138F;Hd!5oJ z&V|>(`5q!!uhveeHxKA#(nEB&4>rTaoK_e{VADtmyL7V6X`UQ!Vr47vyG?Dxnvi16 zO;)n1(nnWw;|)`DSX9e13e>YjMDaXgM4*CVJaB9HK&5J6OV|zxG+s0l^Ta>Az2!@i zE|Yfeo>;AeRWZ~}%odP1Q-TLd)ImlVQw+%2uB>e{1*$x&;{&=wBUf}v<)(G0ay|ev z5LfhVgf@&?(50t*j#8og9yo44Y51Qzx54A2uAzU#`nK$KcLOCGjRX32%ay+5l^9^n(fMJQaGKXBYPD-n z>Xu`$d+i?aLl8Cd){^R$pc?G(N$UNJ=YKNOisqYWhkUu#In>e)^m>Uq6g>U>oPT`L z&_5&gr9OonxCbhV0v1tx&R%S^UDxS!Q=e(E9jZWGa>HJTw5Be%U2l6yT+JH$%+(&& zd|4l~&mPNrAD~Cm7{zyMqV`{<{w;6uMd9#Un8rl}g?lX`m4mZ`gSCTeQ>s%FIjFjk z@yk~T=BXHCw}NqQ-ZEM)43=5wOW;5EJ(jO#Y(9@?yuL{HI+)J@Qn{y%@Zk zqR?F;FI`k$jDQ$3=L3U`068Q3E3;q41ZzIYe2~G637xVCtztj={VO9ohD8){s)@*U zvWy&BL&AKiF#*`d2s>zXI=1Uk?r}Ea181@d4~laVF_Hr-hhx~YY2SxVfbIYas*Op^ z0d<)~f8t>jc0dm~E-`VvW7)MkHI!R7mz^Aona-}fci=pRaQT<$0H100RiBBc`(1E96A1nx z3BTBicO=wzEan$lvRm|-N-$q^Bz z!2v%wSNPTu*Ii!w^yF-;S#+NUv1j&v;s`gNXCQJSIcJ2UoTJncOPQ&hJJ@{Asf-!N zgr96!-3O85_Ppna=Uk_hB>b2lJ*P>wv9n}3>(uL3o!3$ z(y39VK!D{BURmS@%a)9-mX*W}D{9@GtM^Gzx=FKyC=7rR`ur9PN!B6V%vYU*=&h9c z5&v=;YiH6^JN?V=Fy?ujj;tew!K|(b&aFM#- zb(S!sd7RgbBa@!vHeN zusayeH;G-4PaD*ju)4B)e4>cB&kcVaDKspS!xMusIBvtCC1oKZwm!P3F~!Lhk->v4#5PlgYVX(J%x)>|sj|L_Ot5t*L} zecpwlS|yRzZo{j5#N4yplm0&Te$}GJgZaBN;3}GZt|wBOAH9Kp1g>+h${55Lu)1BZ zzj!|4ePdFWw={pzx3YO5_8AgoyjpLSz;Dbh<`>I@<+}$Qydk^Jz#Qzk9=L!D2K!q`@Ga~VZ-Dg0oGo~`zv86G&GGmeWcxrKhb#lYPZqT9~OIY3Au$o3TF>maaS=6soYMNy%gN~Wm;)s7TIf=8h=rp|D ziD^cLEvdd=rYtpOuHn_f+zl63G!Y!AEz%>@1U*doLT46vV{<8}mL3_0$z=0mL)Xz= z&4JgQ9m4MX(s$e1$+Pj;-QTC;EVJ_LOkeT|WY&i@1Jys32cvKUae0OuKaN{BZ5VXS z*wN96j7}0SQaZ_ek7;>A_`HqClc!cD7m|@qUXF{Mi@bH1PLj?o#ZB62y4-9mbA@UZ zX`95C+4gWjmse7Wa$9s&#yE|Y#vxpl=782xeJ-qx33Apd z7TJ)kjX5~?>X6;z?=;`{$e`C6=_QYW!5!+HA5fHq=}1zPMcFVh75RykCQcYL3nbVL zD$FsblLlms={Y_;lZJLo9Fs+%ICm9?YX?gXxXaFs=V^&HHnPXXVdW1Fy;L>d!55)4 zt8)^lAs*{Nx;!mAIdqer@%=VzQ2!6KhHz3E*q}Z05_>4wMCAg?DGPaUuDLY7dvhQV z%t3=thGat+^Pj|+Ll)EfVs?9;`xe%&_e`y?Fq?O|drR>pnU-Q)Ihd0sXwE}6|51N; zY$DC^NAQee&@k2^**N~{2c<<|J`F}O*HWPMxj!f8rW0S^GoB~6o71+DBbGf+Bv(qsCnm#q!eaVI%(GV z^l2C~ChA~~%NJ&qIW0}WPdQlo5C8q0Eodyc!FOk?mRrur2bH^W!Vw>vMBoK#^6{Ii^O)O+UQ(T;KH;7_e zov>S-!QGwE-JRi|obaFSAnQL!^7iI^LT7F{`DW0ciS+j-d_wAOU3>c2HEqi1j5)P+ z>`k%PSNr7L>a%z+O!4`5$dB&J-lNNsxZdu6QEZT_#Ra45_M&W2>WL4YBc3x2!Yrv& z=PUJ;q-=`y0Iaq5z;p6)PVAQWW$3Hif;S!Nm3>hE`wHyVj52QDVp5q?gU25nhYj(2 z5u8+z>^)djh}UQ5UG>LrhM3J+Zj*cBy}8gYc??H($hMH3BRi-0YC}tkagfHTlTBX7 z#~PYGWmlfA@Rx?LvQ^CW1K|uwe!jH9hx;BevCe@>*?TPJ9>LyjR~&ZnutGGg4N^ z*B;n6LoZ&l8LY0(Dd08KR%VPD&2hgp_t@G@Xqb||u+BdY&tF^1KK{ z#27WQ;I)<>@237%m~yIDeAM*dK%V?DFHxzjWA9q;p8 z4R=oM$sjKbaB;Z2cZ=;earMmWzZ3T!LVSj^{Q9#@mw$MlN6-%k`;lrYIv>^cV0$zx zI^XuS#+WTxexc=sA9w2NIf}{MwKcT!0 zEju}4w<`K%Q1d+LE8Y9q7~t{B;(dK@HaUiE(ytEmH3~=7-om>#Z)U(>eH=2}5l(1M+eMJ8vnRsC`6P%b^ zj9zQ9J4TyhDSUBOUrr3}{mS`C0FxSy;V7juNKN{a^g80vHOsA`v)k7>mKImL#jdo< z`K`kZ&352&51V0gZxKE|7$BE?HR+|CRBVpo$V~ zIM<(_aph$JW_Sj>e-Gl%ALwiCtMZifwX>?*_3sWdF!u5F6+w}u&P^#g!z$TF-v!`3KFnNX7yyt>#!D!&3N+(u_{%EaBqMYtnz zWij7bkYWi{eWe;~0v2m>o0$a|CGA`i%Kf2N4AZ}C*az- zWI;W}iF2`7bueI+6j~}Yxp;qhe>)aG@+!uBKgzh(css_I>2YZ#WhFtwy_z~TVk)Xu zoIj=q$Ct&+`hL$sMg^A?;QD6#=J_V)J;gU-*BZA5>Xt5>wSE+Kw12dC6rW+9Dcf#$ zKJwbMRqlMIs20T{7ld-7-80$QKHT_wWhHbaRF4>8o5sih1`XL7pc?B@r>q4MI;)Y~ z7U5C9Pd-TI0aN7DGOl5|_ZE(B@FOsRFHO=1C4rg%W0$!btsV{eV~rRic1TP=rYDml zC_T(4*ib{}eoF-2NrSInA+HE}mRtlQ5P|>66HYV?sivocDAbcrosN-CUpE;V{!^9GR}Yu&Dwq~i}Y$z{g`<2 zkI}`GbnRi)9b)Ml4*m7w3q~dLS(T~=%pwQrS@3n2AXe$@ualx;Db>;@?~Yz8Rxx8% zxqVhaWLDYvW&!BMLh*Ya8iK|wq(*LgHtWXmJR2>AWh8d%80KYbXcu5$tx{VpT!?g>XOg827WQTo;H2B?TIA)2t_*xDq#tBpfULoLSx#pB zMS`C)5aVwV_kP{mU0MVNK0ErcixX3jei6SM19(FjH+?XHjX{=WWi~zcKSDmiDW!|6 zvv1~vo`RY%s)p=%RZe{4$qcfu=v;Uun!{}hwreiW=q3{86i(cW@|a*9v7x%@G7)#k1#RruG807WzqPmyqbJ zGg6&Z<0_KUEXv?+xpEdrw+Pw!Ul7m`Y&DK;JKzH>hyGUTqx;PWy|NkP#27~NMd|#! z#jSKFt{kvGT?}Ud3N6lSf6k!hcaF(xUz*uS&ucI7J1Tvjlzq!s-=5h3)*#}m$i`D8 zcaq~6(B6zq8THHswuD2ZUow()3jfpowiAA)`!h-<*2moSSiZJcK*~t-(ndM=kgHeB zj#Y+upYz6b5Wb#;I}5!Ho|rGHAW-p_U}S~*=#7|O>;@H8SL(Zd>&ewcd2i#sRv~Hj zwY!^A+$rPq>pE8$shs-n5zUwlD1(Ul4Q*&<1loX@^dlRXsUh!M^Sa_6?WlhUa>w!S zMz_H*_9SM&c-3c?8y|#lXYX7lR|#|eF1xJwyZ0VY`@m_6;8Vz%uo@yp@z8ToP_gP^ zq9zZaq*&SHvK}KCLq#e|fz~eQ0$rBW#AQB)+@RBT4CKG9C z{$UCI3ojhm_Gr9txh!Mg=55w$E>f%mYEUdkt~|&3=Y*j zY`o=|nE;87@1zON_AeS>u4ixR@4oTp)K!1^bX^Kco`+s|0-FaZoCu9MPIGbnFGDb7 zAYj>mvEMulF#(tYoJJ@FI(UnO#j*Kp%25;MvYfxHl($*2Qr6KHd z+pmgw=eph1R7Jic!{jQ`MBLJz|RruD7~dMtz#2Y{|r^g9{68R2$z z_k$yyG-_wb=^0H9(fvhJn~wK<TVxRWXFr+Hr&`b}Z?d0iLsO~KZATNmn0 zA@+G$7vfEU<#|^ZT3uoFc~uuu-M%lHIbg6sAQ(`^7iefSnsNyeU?__GCw>iTup?aq zm-D%brGj3+SE;MjhOJ?@mX}9k(~#JhfS~pcR4z6!xT7_-lNAh(bZdv5RkO@iw}VNS5Hx)!hE((D;jD@=8;L~ zVL8PD3;BADglIu&!MdFy6%;G%rrWuaV)^O%nGP5Kw^XQIXX(E&%>TyZRQwAAkom@N zuG*P@V|=x9?zof{%Pr+v)-xi7WQDiYj?4Z>kbRYN@3abvRb~>v?Y~rq_S8(v{~w)G zV{Y8vD!={Usr#QT!+x92`?l!Z@IB>$V)fd>_0{$N(f$2X|J&^X`>MNt+&#$y_XY|i z2@M2#?R0MO9n1aiYp2ekC1Kpm{qMu}3bRFc@}MwX%kH9*4%23{9K94-X(He8NFt8fT}mEUX1$wf*!zUuJ1tAd-0pOzv$tr+>-j|zeHf0 z?@_cE(IQD>scNCBST26irx8Bq*uP}EduEWgr&Mv~7_TM)R+F1G z6NWOd~|6k?t5#ix?3$XVGF5kq;G7JQGkY z6Hp)#2K;89DS1nn@gQb@;s%$~ajxd+u4ck&=9p@xb7tg9V#X&u3Udwunx$+pI z_S?g~n&E%h-7W~kLSl&*9pC5q3)Ob``g1oGvD2iLDoVLYQ!zk5?1EFSm$@8D}{zvWgE!=+^S=Q@W z%E#R9x0hS<{D~^+>h28BiFL?x?{X{E68ZoZ6Vi-RQ5` z00W_SLN?yUPKdT$g`>2vFNhzXr3`F}Hl+ElL>~zL79sA21O5&oE>I#$!v@k9wfU@R z?c$^g>BR-QGT}0sUZ^$6M>>0hU{nOsr*=duEzX5tADGdpU*l~Z3u9y|f8gh+rNl7S zS0iNP6y8pYkWwk61~OwKSURZ9RlW5jsooK}=QDIf{d&Fr;5deXZp*&A4>z^kE08&F zAtRv?^^gR%LDvs>fXU2Q9@h@O@w(Ge=vWrhjxBf)j0K^-69&fR0pTxlk6F(TGN@fE z0w(AtVxYu8g3nN3*Oqt$bEc2Cl{jWHNdJBJcUUk1ERzGj;XBM&18y}#JhDFcwuqvY zaE-1&PK+SGlV4=z0Z94A*S!D%$_iAtUB!Ha@~7e%5Z}62V1JeqhU|m^$)6oGF#{eE zeL%_*80ywICeYBw)>A=x&lVmsObj$sDDL}-LAwdNc>Jl8FoBQU* z>!-A>t%XTlB#K`r+#ruf^IOg>5mczEf8Gr)GZ&9Q?lL`xCz)tvSd|A4_T;-}8aJlk ziN3zr3^ER?o#rOD7o&tQHhE(}BQqFKa^CsP;bI-@!WwF$UI*4MVV~0U^ zk3*pQFbT_WrzHu=->KrByFmz@dCNE6lD+Gkt`y(x4p%C|gE8&U-$Fgs2iMO`wrEU} zf@}~PrUjQEG-*k&K;xmk9Q&Lo>6LM%OL{d>2j3Ry6^m66iayDwxqOO8;f2kfbCb7I zzHljfYff5GK0@ohuxKi`r1>5LlkPYvd9V|AElo8jzJ8dd*R^?$GmK<>u2Ef(C8iNm`HK(h$Ist94CL{)zhID%0) z`&T?5_ogj)N!T(JaxAxi*mBPl`r2|&+`g6P#B5oq5_WJ}FNuCk%ZcKKxLhC44_~n= z(}Qlfk5Ew@*C{zKu1dJFspP;GtLnQhsou*ha>COtP76gzY|5%U*|4Z_gEQy9=D1eV zKAg_gkZxwmEiQ(rILA{7QE^Iu5*~(-v=k{p)+JC7Kg?BjCp#shbhcU1SEeIXQWl2x z-=aIoc>s$Zqq9fU%x(_2j26Lg4viJStd_*fLTRF;a5q4;FIX)mjPXC5zUN5nUl>qP zmcrzyIvvVTi6I@zRF9rWEOH$tq>zmVsWGz75rHsi#{{ZX;7}D(S>?lJ7P77tA$JsV zhZ=AU8{m{0u;upMc_7y9xcdBxLyY36?$@#zM7#LohcoP$-Os5rXuC0B>=SCA{gof~ zM;J$cKuS-D2;VkLjl$en9Ap%Qu|G+_G#8lI726}c`N%MWH3)TS6l0hG3JmB_KM*zg z1)hiO5Rd^Hh$)xUf-p-y5F`r&0|{^?O@T?^J#f%B zFlHPBh3BWdk3al``8%$qJwL(3e&eNbEJ+JU1q6Ttp@AWa{%emE>_|PVfC2{CpEp0K z5+PA*MpUFj>1soQ0msb<3>2~u)y=nACZ`s_IE_~lT*<8hJ=aU?uWR5XUr_6R;a#Ia zlF*2`4}M*GDJ*?S$u6K zl#P{Ioz=uku;;0?+z9|X@@8f12@ec79XfP_ zQ4zc&-vX6-H@_l-^cg8sYOx_ODsI8WVUV51 ze~eK693s77Pu>5qhyY==H4&zM_hBC4j-TOk6#v4?^m664O-0B1S12taeUfwI`nPFz zWv~Uu4u>3QCn0JylTQrH_5^HT!ak`7bkY8;vD8kL5;!+FS0|qo(qjuQmsi>TBgI_c zKnS$k4!xfh`8?Bjlbe&J8lKH7Nn0Ig>f`5!j!J#Rz#72039TyDPR=^C)@Ic z_bKoLuLKJv9i|92GDXWkI>w}vQQSsoCBqerRyQ>0YxF-91FlS62{VRh<@+23m=)a4 z^3FXH+q2YvrluA}D^%L$i0-uk`=|&=IK{K&-GMjgpM(0YgO4R~>LY04Q`=cNPea;9 z+y~vR3HRrEi^6-=uBJ_Qd@e~Yn@a*WH%1?rGu*86?|ud zW>T1(UQ%=J6CY3uvK!a9qQCagj)Pt^FJuFQvb#V)$PnF|Q`P0wh~(w$0)P`pSpMdc zgP0FdZ*DRGY{tM#h0^rGieWqV-C%9D`F>N|J%y5l>7@zHgVXuOf3|YR&!RUTrjS4&1vWkz{d;gK}L@dIf?;DMZJQW3;qahXFz%D*p zed1b+lpK(+h1PkTf|}YK6_O%9rQp89`_$^~a5&5CDG6&*%FH|{E^^XLem?nlw>#q$ zJSw*peAsZR$KKrv-9gIL(uw4&IYYq_SDk;DYEbqTJPJ%MbdVqj4(BXW|nR za4l%t$Xn+3=#s3fGp;M!y9lirXONFG7sS>vziGecd3AS79>|1;Jea9Dr&S*Xsu3e~ ziAGWuU5_%Fq6pmxOLHV3QqPM8LXyujjI+2o*%>rR2ymwCJ}5-a?m6bVIc69n?{Z;o zeUFoVTNtKys4vt0Q#@3kiy8cPr=HMbDeKx?Z@z(Y6dM?s%RHGyH+ z&{t|%M(v}C;zlW{AMvHuyUw&*(rME(KRD%AG}ru$$(Wh$zdeFLBzB@qCdLa$+!c@U zKlgfp?CutBMM;}{DFy_jHf7x*K%Y-l9};Vx{|#@ZK*Q9NZ$tDCVi=s>XWt9?t=CaW z@Fx(umPxKmg9DdOuG_jTX+J!x5_DumQ!FIb0~PK|&WS9vWV(Y2w)a=jLNYVty4=lA z4AQpV7}QVB)v1f@r~;NCCz`(VcF2X^Pt^zxrpbv^^%ImArM@@$CO^~3MH?3y5>cMM?Ur=`4^30|nBoT|G>XC=jvG>D0ekEDr* zM$Ag|M^WD}16CvHlxytY{5BI0-ukjnqK7={0qkE2^k#Q88jjGWzGf;o@%>#_63Jv;3d)md5OD!5*+zQwLM9eR(i(B^e+XmIjj~m>MYP`~Zn=D2|nW%?= z`Owt$@}s9)an(wV(!V*tGMRpo)X=8V+Rcds(yKuG`D&?Kl@I*T*y5I?qM`b#G(m7@ z?JMDZn)`#dNr?WK&7;ctitW2pXcAys=wJ71)(j86gcBG1i30kzJ!+5&o;5FL-0?0S z^zjSiHSdwX&~84pM~2?OIVhtjjO(X-UG$y9_Sqsn6LXeY-61qG_acwJ-QaZR0sQ*fFK>6^Xs_b7UqW5d=F7EBqWrlU_6ubZ zdszhz=kU(zfcM$^Op4Q+U=#W(yaZ5%fu!bkzd~{neI$Mdw}d9Hx)96e_uex%9SHyN zrFSAtpd&t}^7S5?Mn1VY0A%SpX`&tLtyf^v_YlATJ&MikBTXT^`BOuUfBTOliNaq0 zvU-p+4G9Uti;KFo#ew2n$?T>tk~~1ZL8jF`_OwxRv&Ux2nzN!aQLg)CthSepb-Nr{ zF8b}^QniM%$}I#ha;25o_S_wL>Ai!hnS-Q-ijKVox##F&~OX0t+b-0=AU218;W2LtNmPpBOr0UNes^AzKYN9j zGREtNEa56vJt>t~#;csA{qzo-+Vimx<;d7an8`DGq{d17+mob&J~SR$`^PB3U6EBK z{dY)%czMhx_^P|%O6{8>7fPI~=wmu@Z7uPYx#9nP*W9_}r2~(O0ec5)=M%PtXHiuY z=D+6@+{V0n;JX7Vg+>n6W&!88L=S>I$+x~000W!Euva`n^ zADgWjzvOyLI1SX$;@49Zs$BXRUg>X|j0e*;Y7#tN@doTj;qL*#dwZ)<8qoz4J8tw^ z?7F&~NUGU@!$iRkpRf!7?y#F+Ix)e-Y6nK6><_iSDGMgr$Ow_}P9UHu5J}wGA;9uc z?MVo}l-I3CC}<(?VR8Doen;gUsE8?tiZc_n{b*#g)uNd-UWG-5_rQG}wGbbgbIQvW zOWAqv3Hw?Pt#0yZlk3n*e3(3wXTv@1cdKG*=((F6-lYV1E+*!l%C+5+Hftug z&)R03UNofPA7TXm{r9?l9Jj(z+?IgVsd)8)k(yG=_MJc#C>^W(l!U>kEc`ZFhtIj z8mb~0G#+K~Kw-xiV+)npUs$*xzd)iLwQ14N?{an)LfaA=+_8?Fhkw3AEin*E33{`f zg@aQ;SAAVP+U#5bOJy_*Chw_fyYpQAHPc00c1~t4OhzBsxjgcq-B7$MLRTV5}UM}X5vA-F=*e93J(v(m3?KGEjF&RP;1q3 zW5!j;O-Ab6Oklkw6bWVRI!!0u3CJvM1e zoF2Z4&HC)o-WV#s4S(J?G?H5TH@cp8y2Q{ALlhWq@X)`AqfZgVPY8apt^G~95xSG6 zw4OtX;9^Cp2~GSppl`qR`T%X(ThVldiQdV__oQGo4n4!We6eNRdxIMnM9}pKMxiy& zy#!_!dh}(s{^$<9M5n)*Fy$gx!GOyu<*abPA*CB_zF^K*!1iWhMnNxi52KWyOx?J@ zOhf0J-57^yyy~@VE|y|4kqZ^^1}WCOWq~_hu|uG3-X!){NQuB>flCfnor!+FR*lNS= zXAF|6b_trL(fiL1au=fqZ(7U@&VX_R{T6SSl6eXgBFIC*lKSgE_^-Yie=22F^>H{@ z6yOv-$Bs(0=Xr5>ijH{5;Xr*-TL^n9jiLd)gN>kXXu~XaG!}EB>{M=bvFWYCJa_9` zyI#M#-SxR{`8&-^-e~DHy1k?o^;|p_H&of!4&gHm9?q@R?o~mmy}bcv`=Uxs1zJMh zY}(Xi#B0LdayT{J`ROU#p}r;xn-!k@wYa_56z z1Ju^}*)40s$=$W0Uv)H;+*<8-0Pb>fV(q>PcT1KXuxi%p^jC<^+{_Pnl28=auNR9= z@2q?Hx0q$j7skSxr+RgyZs{IWbM-oV?1OFq#|lovsPprNl=4n{9GHHRq3lk&G;pZW z&64ak91R9GyKAV}g3+4SCzo#5zU{S5L$*LCmRd7jDO} zgtjW^(CG6JsYcK~oExHnZN!6KP+p*Mq@#heUzC48Bgds3PG8_EkUD&e2iPJRn)a(@X*ZuAq-Mj z@S`;!;GllbWKSMTx(Ah<5M%6lLtkv=d>$S{!S|gS++Zw|SZmB+{KY(A27A1K8E_Tq zU;H5kosD9E4rbo=KG_YiT;yj?42#J}6Z=;|&XAKOWr+1J6Y*-=BK#r#bJcTs(Cc-_ z9*8pFeT#zMrPkbisT4q7sb<(hj3H-obYxaq=XvaIhVE3>VW3~&35BR`GiNW$I4?0~ z!ASim#X0dawsBP6Gk*7>*e{s}K)qDL8wtcAm4}r=>mFYkb+QO8i`8vfEDB zgGf+Esc}kFx%rI48I2l~Z}`DBcY9;6iR4s$r@j|p+*O|<9IpmfiJ7tQMPcTJLkp?R zd9U_DH`a~aE}ZD|5ncjXm9gbAItjg<4%G)jZ?MI^P(FvWy?(fNejukC9wre$9KQbYq+ufl61*vX7w z{WpvI^hFA(yc7&uSA*qL_UK|s5v@#R^;n>d>BmN4v!Y{MDb#CwNQm+($fk_Jhxr1W5DP_nQjr^cTLD8J$yOYI zFrIGy!&CAJID2rWh#PC3GjP z-ZC>$)sUSNinGQl4Rlx%L`TO(N{>nK9DBT6x@l_WP8t+P+5RY1x~xtnE#5~dI>*1u zhD9pTmuXO7Hl>$d4QENwX^SzhW*QI{Q4Qv!@q@|RK!*)DU}6y%~=2uv;L zG$vA~nJlJ7KhO_xRG*H{*EXTp556Dco37UaH*d}MKAaWvzT$!}J+(cLNBuprbzh%*wD(r^m77`DTwS0x@Fgd;mf%!iVp z%Ry>AAB@;lxAPTd7}U|SDb#O?OU_NdhT{pEZkDX_p$ES81YGfRhUgtd`q*2VZ9wBM-y ze>M(?Bc&y)jQ!)8it5_ z%}qCDz4ewB=FYd5{_>oOU16sa!{gNw)Zg!ud`??9+N(ciJLACyhVFemRhlC;cE%+o z_A~NInHnZ}#HKAYb#rA>>Y8h*kZ@yX)2gIxT*V+wYtIOe{f3M;8qN}7x(D-}Tu*14 z^|!j)B38Rbz2KQFjO$TH$Wg*{9Dh_A>WRo!{RXyDTR0SDdsuD`pvMhOxs3GvLU72N3b}VQ}QJ!d&P(r&fDz{=;8HUzqG4calQZ# z!;c?lFOJEASEAgchYx6@=q>=sUuIf5=qx30K-Hd-FAJm&I7sSxx`YH*L;R#9!> zhXx;9*Z~|&j}^$qBZnpAA=4RLwr3(+ORKB?6PXVwz|KWLKXP41YrOs9JU&-V{qz`I zx9%;q$jcx{g;{Q|L2eCZWJS0o1-HJ};BJx5tRUU{u*T(N&UORU{e0K%$1~XH=jT&_ zic9Hb(RGmSWHs@-lUMvc-wpN}WV2F9&Hi#F9HK?U58EZkco~s>&kGa8-Xlrg&h}MK z1=aO%wY8ts)z#SRceVNYs$cD;>3A8Q@?Q$Q()&|>zF+bWvU_nq1`OEG1PC{J$aURl z-*oye$bEjlyh}^2CvXlIX@H;T)t`D9x9T>2czNpmzXFylY16b{0mlh$$k8**o{>ae zz}40TMX91DE`U2}>q8gSEKb`tzo+sKwL3oEIBS26c#`zil8J_f>e!@>k-BY5cbs3p z{vBh=OXv28?dSr)<)h3QNFngCvtxN-l4z>bk>rszjI7#!qfT*3nckR|b8up+b9uKzRq~E%m-RkM`qXjzFKkI_SKD9O({!TSIpn1 z?at(t=9VBE?cVr3S2ovNcX{sQhTOWeLpdwkmreI_A=gc!-e+d*U-mcMsF8ez-aqu> zo@F$d(~LfECys%#-X2f>l9!);A!||Nhg-M2SM79S{JyeZd|)@VWOqW%<(kbmUdU=m zTe2@J>tK57ewTSi!0F<72>5JW?pqsk>%`B*zeg^cx$Vp5ykg7N;^cyJ*w2^i*$Dc9hD>Qbd?gv*np79>ZylbZQ+$V(1p5W05%Ovt7-kl$n zCHBzGnngQO3bz@5zhnD_O*Q$+I}*0vJowy!ziovRM9Jj$}@$g=<#CN4ZrSp?YNwMP&1F3wfJNn3 zwgGJZ@`dFGQWrNb&pNm)wMB6YVmrj|e*b~^dsO?$vNbzl1~|`I=8tOM^Y!k|dTo)GCONL%5kKRQ^9LOio7~@ zKC#E^{4Lf4Bc5uC;?Jzd71rZ*p@>E3F4hyc$z%|^lzCEQQ3Z!$=5MdOb*GICk{j*q z9YeJ&{$T5hvXuK7n_(l#r#nWK(2<~`!k`iYsR;?WaY;GQ_UnBs_ow*hC7*?}WUv&p zu`9!)6PC=YegSk9@w4*Q>AI9PY-J|b$+w7k1~#lSkS-5$zB~ERP~wjCV0Z43EHIIE ziMc; z;TsP`gs{C6Qf|~QS^kh#avL`q~aT)2c5%}DeXe}cJ1It*qAjTck zFIYt519^TFS8v$$+bxwigB$$aA$!q9W{_~zVm<5-a;34Dhw%Y!mSjFu6Y{csw|#C% z0swZVf5m#i|KX>K>j|O32?@cWbo}Ju@A(QApQuIH^nP+kx5xeeXucpZG;cw4dd!CT zvx*lfPboINyJ`Dx@(Wi)C8=e0&)GhIFnzjaOZtNR@MqViZ9b8m_tu8Wo>{&N3o>oR zAXyCLBSbXv4MLv82lFuN#0(9TOXTdR)R}RB5Co7M$$SgdFEAcPEe{SE zEoo^j8O!#krR@i&kzdOYN_{p}CyWN=cXKac|usKq!gAQ>O zbTosph5f=$i`dXCuA;YjIT#j)JxR6FgX1mx2vRM2cEAm#$9)^+J?_WP6*SSl&Ys^; z-n(x@waJ~wx$;lq%RK**G+Q3x6G^K?DV>{3y27?A%iwc}mfRs18C_SeU~?u9Lo)cM5j%WqW+Ed_$INHodBx?I0^&fm}$a z?ht##U+%9JzY{<0y$by_){5W2RS8Fk6U`wBMnxyOXsP@&)(6iiN$QF>#_ZT8e$xy7 z;843C7C~x9wfMGp_>}=M@+#F9^3jVpSX9;0%LKkGpyFi4-#Cd~HCQ@elL`Z>J1*FC z-%olA_h)GQr>%b4D`%>|CS!l$wiT0-7TV%}3zH_TK!P(@wB`<$2hLC)SNa8%-_AXd zGqV}WYs7)@ta(m^xDetTn;j-zuc=_~S|Ar4$i;NJYG5pPWYGlE1z#<}hDH_4s)#OF zQVeueD)E;+iK8Ur#@O19iK8SbL(k6KsH$9v?1%i{`!`x79^q4|PcW?w zcsa)1yb1NK*XAEBgnsy?*!@jK)gZ)Qx&XodmG2U> z+ZeFfFvi9)c3nc<+nI%Z<*T-hw{4G&iA#DqxZu?Mx5u<07Xn)Yko_apz}M3)Cs* z;yKxQm%CQ|rfZwN;3M(IuYN7wIKSo@ADen7pYbFn=}1M@p3wBBrP;6MS*rJUgo}zB zIP)U7I5|_txu@~{ajvcc8WIB8jbwMVFMjdzI*Z*QDAcn2OTxRm5vP_vZcJGamE`0U z6`$Ezw4pP-aCtGrjvK4#ik&V9|MltG`Og*ihUV%P)-6j-jtvtJPh2%8VfEs$^k*Yx zIM6IUyD2hkmb+WR!Sv_amZmkO795UE5jT1KET^LNOt3;>-m3GSLVhzfu3?g{a*@xZ z5cmart)HOb53K+Edhm-tUHyNRJUqG9y?W(B+7Y^}CZjRi8dVArC3w0v+RVRZsa3dA$0 z21n4rZdgJr?t&G0(MzWUEL6jUiTYT-u&l7)XV)HES^D;K$F{Fry!lzZTD(Q7Qgab5(%(01ni&5oG+9bs-M;SOpl-K+T{?Em>(NbxWtKQ zD|AKA&&xb!EGSJ{92ytsa?~LtsbF64x}}cFnHzM=8y2rPX7-x4Ak6isi%;ep-7>Gk zPLtEAH&hG{Dk~L(m?H#o3s7#fzk7)Fezyv@@NO)pQfY~0(uBy9#*HWi-vC-kpf`yy z=~GT3@Tu{4<@s-Jv_J9G&QyKH0)Pb-`qWKNofud2dVcxujBu<&{N{2wRD1?*9VT%5 ztQ^We6TdNSx%OI?;ppdEHh+H90NJm7P6jL9-vqGi#g%b63n~`sD|C>vXyuE`0F3XO z%jxJNN5K8Fayt0P5%KnC72VlKKd;{M`D@wPuU)I&jNhEVg+Zq9KHAig^W^-wFw2S; zWVwLoV!3nV8)A_Z4ejgb6+%sH@prYWBZ^LI>SSxhXQt)LO`la%erC$dG<{aN`6F89 z`Dk<1N9E-orGSH1LfF&eCl}YQ*i`Hh7VcUCnb`X~Hi&&Slz&vk`hNdWc`xw*pZJJb zQ+-_ifG;c9ga0ZuN3(0bPe^8`?k>nDPtSTV^5PfoMVB5|{NdS|RnpZ}YA~5gJE60a z?}K&X0pcN+!Cvzq6p9Dod`gNKL9wOqQRF+tb$XU6?VhZa14(Sz!J#wj#Y}+A7qhb3 zGBewFL zdo-KyKWH(hDQ}xINf*V@&T%fW3J=bP?vKG8Ff{{SgNa{5i5TEi{oi$Pku=aokVy=p znK|~alKT77`@j$ij^CER#s98zsulxEuq#|J!G#jD5jmIE3Zevh!hsmTbhnn=}Obrm!-!U*loH{pBcJfJ-bS` zD7$Qy|Dx2Cc>nHk5z;lfxbSg3-8No+^fKK z%y0B~t9Y_-3+vEf(rr-{J6Lu=Ua;xfIP{`iOod`Q8mULKI3Q3 ze0qALu_<=2 zbwZi40rfeHogq`5vK>D1>S$SrMyr=;m%V4glDmJjM(`H&AeI4azPD-M2WbdK` zX>7Y+S4|JXH&W(2YioYsAia(f?r+lx^Hm;`EibN+PvI+-t0#SBy7(r7%iG3}l5{iIY?xbpKHSxw?{D_j_^4YV0(S0+3puoK zVP8*LUW?jC)fO$a-?SIMz~ zmN?zrkS#C4e@GMIr*$BTS6?2Z*!Eu=^4~COU60wuY>L*^rr3f(Jf>8*+D#z+ru0pI z-CdwLa%s(?tsP6W@oPh4_7;iPy1KIxv|bzxf6MC7m$>mGZzmuTS|FlJHO|XmU;G27 zAl4pqABqjYiDw1SiG96dALs<}ECL$vhS+TKzS*VDrnL?sF?Fprb>t38*23ipDT0Pp zYkVj&N6Q=EWU^QS&7IIBmgYgzQTlyUET#D(d@sb3HhDi7J7gejM~~7coKc7sJQyYb zUw}{=Wq`jTzAV0646E56SY0f>46BWDvqU@$xh1p<1`Nazk2s=Oz2#>X3c%_R?jiI& zHeM-JNbonM44;O?$A<*R1H=c*zbHHAUMrZ~h4|3mMT>$%<2k~e1WzG=FOs4qEzRQR zBwsUB!`G0D9UWpyM+c3T9h_FskDTxYv;PJCP#XEz9Kv@KJ8^O!q}xII8FBLH-V7(W z(*Ha7ZgU9vnAjQN`Wf-(cKEs@#}VwQV?D>Riju5vwIk)D1L``VPOR<}tC2`cCrlHs zbc$DCnz^^LlhP@J{Xz*phE)zVH1A+@9lbG--ceKHoM)B93bJHp+@j6N!O@z?IMQKl z%|e~@RUViJ5Utaql`_*ST4U&M&5{*tKLHi|VP3;2u)&;*Km4(|p4W&eKze9>lh^W* zicTgcSk5FTgWvn$*E3*ujn@*RxdE<;8V=Z946R^bK8rF+=Nj^PF|w-0+i{Sv*O0w8 zp{K`o#w%F{lh&4A05KP2?u}2_lS$8ryE3u?vNO!5IpnDt>TH=egWGa8~^fiOhv8FL*3YOytK@t6#S}rwb?6bqGM_dhT53csKkW1bCTj?hU#Ot zXRp{E4KVM=53*Qc89WkGcBkM!%a^4D@97J;u>4;9qIg4fg_(H29=T~mK6v+Y|%FxF$H*tEU*kgdF+u4L70SD!NWA6 zTMQ~8dyC zLifY8M{*YIKjs|vA1C#v9HA(q1}Q(bN^w6#9?qC#Y*0M1WaCC83-z^%_skG495!S< zT*Zsx4JM?g$&h6NPbw!F#e=hDG^j>c@lm-WCRI=gcs^)h{VDM;75G7(?zvvM>y?#dFl2F(e0zUNAFBR)k&owajF-_CqU0~$i&XXhIES-fAE*4c+Ou`A zYVV)lJyClymogrz+yQle)L9LLC2!x9Z;J6vOlV#Vo^^?|)kN!^4tK(D|6p(Kho<)-I6RjBjig za+dxE>|ciMBF^xm=j-JDds(}fwHfcMT_Uv&_?(X4z{Vp!98cS&tZnVTk@g=7R=A7r zD%rh`hlzAX4;2Vk#fb>vvEi%+bJn?T@t%?sufmk!Ve^1+dw7~+2>b6ga|}bTFeHAb z_yi#hLxe$G6j36+7m1L@hZh*+p4e=@GhBg?`k~|WmWa7T^bl=^PatH!IqZHLTH&t> zcYY(%9m{S(DeZLGQE^c7y2M*W2Zc3axH_`OE z@bwFo(J3j>l`qhh-$uAb+?1DCX7kuthp&7E&BYBI;wp5yinzG)`SZ);<|HM}!H;k) zrbMSRvVSEp#jrFeBqJjvXeq1A3Pa>uw3|D{Ysrh%6g6FR+3t#@cbJ-(yP}-`uRoD54&%}UxPBG2WKnYM4|fym22X(l!#J) zT-L9hj%un8h}XAe^wHj7LJjw+n>J%=a}a){%E7}n#Teza}G5xK1WgB@*4w<)mwFV?>mpC_{RJq;&O z$YlNRGYU2A)*^lWAd$8U@VS9Kf9PrLKZxxi)?Y7nK%R7ddR0C@rKhh-K&@EMQ@Kaa zQ{!-CgLIyHO*&6?1n4lYXc6)`-A|5_^5*bg2*86F*L|; z4OXiI1Jyo((%E*mat!A}$4WQ!-9xMw^gnKIRZb{R+OV%ZL$5brfO6nHYUaiP9N239 z4t_|?G|;)?H2f{;=hYUEQQ$V$lIyZUjCGzA961ee`iSXQ0KYP&<>sa>eeO9Y_@e*Z zp8)=JuK$ZIElqp&@88qZV!2g^xvdAglOdhV->~WbxQ$fQwAT*}Vh?X5+=etKu-iWJ zd{nc|hkPing%DlTvgqh#EywD2cTUTS$D)5RC}%C!hR2svHA|wR^eX|D#6)L7D5U#I*m}0OxP>UidrcL@$^2baQ&SZbi0uN^2y%Z2M|#Qkd1z)GiocZ7 zZ61~NHV>pN+mlFI`ON4zTRvHdcS5g(6JUsUL*~u&7}TmP*|HK<>OMLntJ^ zShD36+e2d#XXWH5J+?1QtkeM{H|8u@xk~4sG+j_;+Ra$enpfGsVQ+3gIKbgu$jZD8 z`uNQYjF2&R?$W8TQ)8Blyq9L+Jx1T&iGgZSM>54a(x$AcGOyxz#_e&m?9<#-E?Ck} zh~?@VH7BY>Dc`O@rwz4Sfx>$`%;IqgKfK27xsxF|?FC2CIeM)~?K`Z+5LvFe7FKyqxQAvEd5l5HJh4~E7IDBdAux=0kMpf=w?PAw6nNx^{tj zdW>!tVD?0uo5cBB!nE5Al}1D(#HC{CP5~O56Dpl>5?E$*yjuz z_4>#t>~n}gj*av|$Pwa)ke^Es0Y@2FpYBn8jx)?}jPQeyPByAXg2WEjlV&)KknJmE6w=InijWT^NZRmaQVod+`4AzVEV7=2T2hCQj}YRA_qaubgfPg*41(0j71FO9 zYtaT7q}0hER46&B4GH3nk+hBVc};>$Bm?9qgLFv{C+u^Eje1=kH9!tA$gz<=2sxs( zr`nJp0**4UKHa1G9A}u{7~uyYoorMOg>b;d^7*7$v6W_E5RCB)D~&Xez_eSpYHr=) z^Dk_@fd4q!QwSo>!bv%UXg2o>C%10p2$#n9l4^z4T76OACyi*#*N8?qSzRq+FW}-x zJ=7{Q*!mO1j#AJqSs;j8yrk7nH^p1$-@0V6P+b47b+cc7+mQO^t1;{Dv-=V_GQ=_x zT-XI0oNUa~Aq0nN=T8C9=w`CPwfEP}F}2iz33=|bV(2=?1MQovxzhc`y67BV51*xI_gJ`2qk$kFH~mHcAMb#R+Nel>E#`eQqocIiXn?sKZ+=QSfB2Y)&NIQ0yDu!Vp$NhhsGzQH800961 z00RLAx+|5SUk^O>00RgB00000)M^hx00000-?ylD`RDy|6nY4{0000600IC200000 zc-muNWME)F@K1<=K~&`D^B)=_RX`CG!1xdVjE)9#c-psL`36S29B;;UqJYw@ET-b8<3ClB^msLy`$|l4NE?g*h|HOhOhRIZ3kJ z+xL0hd%Im*T_JpYf6u==@B4dR0eT`aNWGlvt7INID{>xgMTX;yf8VC`)~SnUZo#d% zhFnNJ5BcMChX`kwALtrQn{Q~Ax5!mAtrdN-D)O+#Q@H=axeHhF$OR@aVCQ6tb?6y7 zDrV4XMQ$MX*Q($BQJ7l%-B_RqS=SicQ1$Z$Yt2ahiKAD^5WK)n)}bLvm9yjb^c9F? zS%*%+lT-enO?4G6*(86M2JIa4HTA0ne~$UYGC$yj!ZUhTkm=|MypVL(=s~g`&b{zi zE0TH?URm1A;!sGk$mwBh)x-WPn{pK1hB_&ZM%F=wqD{XtMeMP{J+;hN9Ir^Cn~vBX z>$hl;0rbgJ^vVp1pHCGyOqWqu7Xmk!>hfW}&OK33-*aHAU>U~)p z0GLbY*BYH+Mq8P{AYC?(k)SraW~NavV@Sz_U(}cUl2tu#jv-?SfEbx}f3|weJMxHH zbO{-9Sx=I?(Yz}0x4l&y2V@_*Wk0(05RvJ^IOoTmooJOQB;_pHC5B|Qhyf`D{Z5z^ zy3}d3nP#-3F+hmXs z-XZq)ay@69l!`kk6v{ce=_E$&*k)N_^Vr(juCKSZb|0{Okotg?MP{Dj^qu2=If;*o zcg1YS7g{ta^q3^h=_bV3!%5a@HG?6J4>OM|zDN75$}CRPCmNv(l&0I|`7HI>TFoO( z{bepn*sT}X+j%socWBgkH0vqe%a>@-4_N1!9z;(w^IWfgUq@gLCsY=$%KD}MaaP5! z7g*6m%e$FdY?iffe2jN0=moRz6Fa5CqyPW_c-jQP1AyQ#006L>^ZK@J+qP}nwr$(C zZQHhOx%KRHdFl8@vsWwanIODEI$bT!>h57YDXHp|8ev2v^yYsO}=L+l*;#q;qFybmA2 zFY$Z)75^isNGo!RHll|ZA|{9hVvX1#j))85j(8#dNiIW~OBR!rWIfqRj*&Cu2DwL` zkXPgb`9?-5tzxNUDw`^#%BeYOg@)SFv2`+?N$1lg^%;FbKe6IlsjYfeD{Hg$&MszG zvM1Ve?br4HBu|an zn|8Ks+qP}nwrv|fvu)e9^}TbJXzR5z+70cA_CfojhjmY{tk>6D>D}~!`WStQzCquk z|1vzIfzicSYP>R&nMKVB=3?`=Robd$wYK_LW32_&Njv3#sqNdj?BaHHyQ@9bzKSqn zs4!}SmZGib06L4VqPyr7`h?@+R2X3g1I~i0;U0K5{!WsU5aA>s*-3sWj8w zkeDrwh}YtWG-MH3Tegs0WFI+Hj+Im8T)9-Pm0RUrc~G8`m*hS9+D+kRbZfb--Kp+n z_k-to?Y%+XWw0Oy09hd)6o(2>6BtJ*un<t8a0{f9qqOx<1n z)V*aeH$o4(4TWJCfS*e_;k+_hgV|=B+U;o%hO3|L-*}bpSZJVPXiK7^ucPKdLq|(n z@;DPCu>~0!v6@K7NFp{b*3maF6luvgux{6up+rOE^i^rjv4)mZUq$5n@&ADz8VVH5 z%gQRgV+Zf}!AJf(e95sBdrp-8<^1vXz1xb=$c^Zoe_mEz{t?&K5PaYsiiElvYLDn8 z>0|vukyv2zOD$VEkBC&&yqeHJ<`F#*%jmqS&q-c$Ox*zoj8*Iac-m~i1FR4L007au zY}>YN+qP}nwr#s_X4@^h#_XEX%-$mg0Q?DN5&z*UAQzX7!9{u)(^v!=o1O%*%s9p+ zxADlsZ+elJH^wI)y}85{6L8gpCNi-}$WH;2nv8-bHwA^b#&vF((p20uwP`3!5!0HE zqNX>487XEaGgI6wW~C1$xW#SynvFYVH-|Y{ZZ3k&Z5~1>XXnLCRW) za@^$}{VZ$|i&~8P7Po{YEk$`tTZRgjwVdUxKt(H3iFX{el9jDOWvg1v>ejHPwWvjZ z1~SOn46qJE7|b^7T94Y+rw)G@N?qRCfO-sL1S4(8a2wf}`ZTbKO=)N|o70E~jA9I9 zZNX?;+KR@uripEAOHilkCa_yRqHwOeU0;_TVF}Xl+k> z(Z=5PVLol`Yd_jCg=tK;KT{pxKnFRP_6~6<9USIxM>vv>j-nIqIpS!?IF`N2|W+U2frC9^nATvsuhH6-B^pE*P}vXhmSbY~aUT}?dKxYl*9cY_<< z+4Jc+_Jo;VCs)%tM~= zj7L1?xyL=>Nl*PF2p)_e00000UHebP#+``hz+Q!z--oeqy*~Qh(-NVz%+sD`M&m~#tMi9e5v`t&5 z{4L8M&Qh7V!eeH>pD%f&S|@r*OyiwZTWVV=wWD^`o+72yzB*8c>PQ`{6Lm_aJg&`a zde(1Qc9#Fr&W)u_uT&Wi`r72B%4~{w?r_}lz?7LpI_G@8+X3hyo^pMGyJLX?=z*A@ z8hye2=wjOHR%`t1TA)MMf2ww`tAi=t0uU`chi?CJa78#x^_^7eJD_!RH|drpO<9wI zIdVLD6k*@cleh*Bh+VS~OhBLGxu;*Gg3!>5*fEU298Br$Z_2@2wN)F}CannvqKMua z%5<@Wv2_U|OEviexG>%aGZ-A}np`T$Fb8># z4Td1z(?qvmbc;U%%RriIgD!R1@b16iAy_aym-^B?gwsq9c*4z3*Cr5ZI z6!~o*-5y1K9phcu8fElBTRTxTK`G(E>$UU3O7{#EFMg;-WX~t zv=S2!xe00IbjEt4v2`obGGtobBK<774n2xVS3mDJ)zSnonZmuFV$=|O0D2=DIlaeXbGFb8eh57~#X=D<&W z7%eFHS5i4m4(V)Sf<=@sSa^Qb zfv^aIMG#wLghgPo2$?LhW{VSBx3EY6iv(;D2#X+C1i>N!TV#YqAS{9~9Y>eP_*P5$ za3Ai^4q6@YVvc(liE(gfG$=W0o*Yi@^WW)zr95t&+`*{T_E*1U;Y0YQzo|cZ=ZcUKSyfoH#Y3l*ZMDCsB$DC5baU>31`X zQx>*y!Qm*2%$-^>0z%8nUL@<_tslVvZ0Hleu6&_fkr}uYAVfg{B={O9`<1^5Oh{7I z>vDBT9yxwu<}0{p+&Y4Q-jZaZVyDXyMjQfvc`-dk;qqnsIJT{W@8Y6;`@4mUAL3j0 zb^fn!3pYdNLZ)6!XdbE*2{tnymZ%u4&v~_PuLNl`Yw77P(m+o4$TOpJESnB!=aP`f z^d|9~u=|t0y{pUopQ65jg$NQcF$tpJvswJb?)RoN1Yrn*F$5w}7y==YXp8`{l1K=P zm;|A~I|L#kgBT1Vkyuos5+9|QNJ)xPGz$Td*#BsrC=^PiQWm086iO|8Q7KP85s@gA z-!J{3?zf-J{%kcLBNxET;QJ<)@CA%OB@E0$MyArchxzRg{qw%eHhvNghM<5%5JLo{ z@C1wIt@;eSD>SDRk`gBt)zPJ+wqK6OA=u=hjS`go@XrqLTpy@Vq0HI689r#W3V}tT z5GXO!`@-2)(W6@W>dlABvAiT}JK1O-VLf+R(-k^m)HQMeL-pfI7ti+G9Fuvo7#7mX|3`z&{F{rqEN?{$X8 z|67R7q~!;ysddstCm5{6&VYqwIU>%Kqw=D$MN)y5zQxa1VW3^AA{7jRsE5th9{v7v zz4j-Aq>(`wQqy*?t!l9-I?S3T15RTmM=n4vVg)RnRX_(4d5Iv`+t zY);2Og(kW2aB^lwx(zea0VjP?0~h?2(dckv3zla!a%^2Cf#TmATkVpcooi(&uL8W4 zS);Xm;xZ?J%+dazZ|B$BeVg`DKnWfKO)D=!ESkxDkcp>R>&QRA;vNfnZ=Z(gJm7+< zNanB$4oG&Gc*=+%=%LzadCxbt-TdrM&K*eN?VTb+I@L)ZJaR?2@IO}BOV>@xShE;m zi`$Keo!hS`eoOoLQr5JkgtaB9rn%Mz5*7vyfMtvZ=?%<=fxkC)EcvXP4Mbl%UGGr- zDK%{^1Xy4hg!BSG{#ABr8KpMWJ4j7(U?0;3kRg%2Gi%kO!oMFaUvzp$@}R#xwFW?Y zBh4Fei?YlFN=HK569lAR|7Ab6X7@dNO{qDBFAQvjgQg)vlZlxeo9-9IkCY`7SIE-J z{yYCkK?)WmV#X=K6zz&Y8?iozu0v0m$xEza>yR3ndG_|Mc^`&`66jK>ps?#UJBzTD zP=9l!xvwnOHrq1;5vm|YL61;*-ZlHLhAefuTX}G#urkQl7gVJP^1O(M2nh(n?rwH= z{r1fj3&An8IL)TF$NTE(4WEE`3g{WiM0;viHf!pDD;SASA4T%=fqViWVZZ|>3@{QL zB2_TTbr8l6K&N&2gnZuco)@GiG62Xh27%3MJ%u3{VA4eq1sAjc>B7(glxpzN0>Bif zX~B<;c)`vaQw2K@;1s%UfzEqh1Q0-92q``YjA2y*o8|OEMFGwS^jIj0hk!*yf(GE< z2^GMf{J6;iZY6uhh|{cdv@Lvp(CN_SM;uEW0V(5{P74LkV66BHqN?e*6r65-1YE~j zg5;&7my*Q1ly{NPWH7@uDIzI_?_=mHQa#7;xme{4_K58%5!zdb&TB4(1ew>SLIihd zy@#Cg#31s=H;!BgF`g5^A>uO5_h-x3u4#7oc07F3#ElcML%fx)EmVc~(lz0E_qt~L zlyBlmKCCBw!`4)}#2T}cbS*gEHKlN>MyU!qmx3RG42fi*+rW0q2OGRux95s8fZHB` zZ%kR$oDv<-f+VvVvb-14vrJqRtMUw!7(*~Yke`=(Sq{=K~YA74FN$WNGqYUz?R4uhx9f<83sTULI)KD5kH?!tkFr|-ji2PynX(o%Loo$fbd z-5tPA&WJogqZbh&Qhagjud`c1xH>^s)aiVdjVz$_9HDmbrBT$zh&g^(K zVtEjgLICqEc~z;R8I{oya2o(x%@OJU$KKFr!F_?d>0gTc8kNto7!vT^ANGxv- z4xal}pV-oU_(q`++Bf*oB92er#3{f2?VevjC7aLCW_fs zA5w1TS>ffr6NJ6fj#DXcTQa>nLgxbtTXcBBYLUB!vCY!sd7l}~Y4699wjD4^%?`6? zid1F~aZ~O!fcP8AOZ17@@}wo+IQMgtkI(IbpXr+7o64*)XHbQ~`mi_VU6yphZnbSe z4z}1K2jm#9t!b~{M@)7nv&kMx@*K}+@^dfzCVKsg)PGlJP|+zhqa!rfdN#xDLd7xa z-MP{Fsg$TwlD8Q76;6>~hV#^)_*?Rphl^HaqYI!i{hQlCC)#uyLPjV1A;Tzw@Q+{|FUO;MTZ+`Y-hty6)UNx!A9D|b*)cst6p zQhw`%cpg#L#>5^j1k;1yQFkaVwE5YBHaZ~SD-bzsaUw5-v6lC-s|dv3v)2ewh^P=esRqyAJqzo0TC(=8ZISt>}c9*WN2o*sZLGJSn5)TDyZq zaQa$a?s8Ri^yXW4afcxp-(*_-lU%I9#(40n3#jyxDo_=Hz)UAZD%lc0>gGZv{d+m zDLhJ{%MkL6)(rj|5PysRDlZ@7{t-_Fob5gcER|Pw&hg-EE*|T1-FjVg-4L7xV4FyL zEapB{{~9h7t+jjZC$qr!A*ERD|I(UY=jQoyTytkEwd864CZ?P{2le`nm06UeIRE(b zR=zaK+ovNEKg*Nf2F{sJt<=amRoX}JNcrt&^j0P4=go1qr}D?-_oHksROjFZCC8K3 zYN3EM!(00fxg8;9uof`f5W2sutEq^%xz)!W$Ht4f&5G-K$(#pbFC6536g>0-u?fEe zk%c~!zDBW5f1l?Iz9GQrnMVNqvGfD5;D%(N3fEj8CpfnX?A$?40ArtMQchgQwNVss z!O6U<5_(5%c+-D{^>+J-tKG35JcmNugn%Tec*>8EnX(dz{!yA3EsjKrmld?kA!2H* z#Ay;QL$0+rG4$N~O4KPoxVY5hstqk+f=y_yGUR{6G)G$*(0u?IxnQaWgUQudh`6dE zldoqm=)R$r$b#o+-wnKc0Lu0IP3XECg6#x5@5|f3Vg`NR045n4NBBKs=QtkM@H{~* zhDfU6ebI|6|DG6Z?bpnB&dvSJYTt*VbD+^Yyevukq0t_BpQ5_g_l^Ow2|@TABfzzh z6IvgT5@Q>b6F@!G^`>EYaV^&6Hu-vw&&cTENpQQ6G}V=lbvCo2t0=}FuEFZzW!qiN zT0GIp+Clc~wQHRgzuIQK!o9y(>bJbNnFtzu-Rk#qqp-2f$kK{5SWD{SJluiXwlE{;`X0%||3b0AWCo=Xk zPYNiHMMlkurli1YXP*t*@^ZBq9-s(b!}M4NHW=hzXT3182_T6Y@{(dpuN3r~4>XU@ zmCZTGlc(0W4MHvTw!8X3xM>IA8Y)MIo~}8}VchU@i~YH3Y&t08v~DnrAu25(|*{J z43t6JPg{L`mG@3cW#7wAlixthU8oyB*4EY_Yg3srpB4lXtY}!#u;wymzQNjVuH7xD z&(XEfwZX-~#l04}=E#^i`QQweEuNCJL7Rki;s`47H!2b&Yif)g3Q0(i5fWyy6hZP{ zV&Q0k`2BkX=yPPf^Ly&Xci2l{yuR7S7hGO3qw&2;&!X69Es*n znf%K@73)tmq@_3&5L{wwATW{Z9StDm|0+w_xnJiQ=2QLkXaiO-LgWoqC2AeI?U9wK z?Om0!&F&eqRRAr=eNYC9CbQMm=4Ht-Hd~-oes3YE>-OiF0oC&oRp>#yF}Miv8$% zIDOWAOTT>=x8*Gk(1*KTv=jBT+qtmYp|~Sg2Gf_e)%s=l&hK;E;=}Ly1^(Y(3(pG6 z4?lhO_Gs`fSD3cRH+?1xFCsZocN;Twb(#OIGoH7@Yu3{A?pD zF8R<^9cOUlMY6^9E#KoZd)JHSU_kz^^L7mO%!h8t<-E+tbWMNyJ`QU%8XB=4C7M&~ zkMbIwtX$6-DO(>#d!~cTz{Kw69rIhVjyMfBC{!w4X@>_I1P!7lA*0wCFwvZMll_G` zgi_hj#Q%kakq+yjd-DHw#p%5wF(RXNO11S#?dtf<5@VH*zFjtxJ>MTLaD|z*3?K)% z4gejXI)FOhI>5SM1wu306gruJVX|KwEGNfKmg_J!Z`4*}@r+8^^8X-PWNqHRT+e5Q z{Nabq-~`r#+X0qj2nRk76i7-$O|mv&qae18q>hFkwPQFnK{H+CsMCf#-6eJ8v#y!W z6F(iP;k51aTijpk(aM5g6{ukEJbH;-!FByb2%T|oph?gmViG!nl?f~5YCU)wI-;Ie zux_{cuWiey>b8reyKppJ%eQoPy|gz7f$BxG7(_c;eX|QP|8o!Ibh=I|l<5|+yQ`Og z4+Z56q~;X2#qjv0^`r?xopgSKq+UL$7M?AqT7(X+!~@?NwzE zn}ZC;FI+Msh~E$^ZxH4iw0UVCb`ArXV)5g+5!r~D7(UV%dFiACgfV-wWD~*_?A1Y& z#lyy`OgZ~o{ti;Gv8O{sF3};&hBq_^{NW9H% z1qy}PADWI3j4*~l{1TQtG{zaoI8D|kSSEmAal&ml2wgU{#+sLvs@80gpEG4}ya}f8 zPo<7YnqL^^yAFkYb^D)Q;pR|$XPX0MG!g0tPekNoR)5ghy0^l#K#pb&ru<$<*(6`9Lo2&8YYtgazo81B; z8B9YW3=I4v!abw!b;GC8UPpL%%%%$dqm|VHsPfk9LqUlzN?}3Ze_nPXd{-r+4GMVM z$ARGE2iaEz5#FP1CIskEpY;F{Au&NwVR3^c0 z>7>>4FNLV_>_m7dPliqddLmy|84yi8S+1D@LEiqlbARVpo7cY4$6{pTbZ?_odry{l z6yIz-MSs1}Sq{Bi?@=AU{~$@!Z_DMUGLe?DzM|&SOKx__bT99e5n-y71lOQO_7%fK z2S?$8t^P#?tt%OOpgOzZn^G|DLRHj0#Brlf!NV$pa@I)KjDc!&aWlrRjEI<9^Eb&3 z1Y(_r-6IHoPmqwt#dy1+mD@AgyAt>Q*X}xt?siA5r6$;8`@3p@%$owZ?gfK5+MvioV=%L{A;IYic@( zG9q*p^J1%UM(xT0Hb2!5q2+8~$-2iakINWBgim7%7ljU&O9Kf>na@QSQ%>^w;xIV& zhejp;dt^cuHK|82;!;&p{An;OFAYp(05WP15f^)=ZpSzZ5b#=FyjM_A46X*eUh~G; zn?2AQt|l5bE3z0Z5%`*5i`r1406aQ3@d$<7Z9WUEW}`=WcXufr4^opDTZGg3Uz5H7 zMr@y(f^UxnHw>Fd;nz0=PC`;_X|t&AWSnBBwKh{DLJXBFXnE~fYAe&PMudbe&v;UY zbrU9>$1~dK5=E%;+D1A^N0S6sp|!=U4;n&_Vwnt;z@3$k847f9Rf-<2hUuydx(8zF z5{bhURVJ7NRcX$Dr|Im1sW~yyOG#zw)QF(9?9wnDm0|Kwlv19jq&68jFu|!Syu(a> z1!GR^rJAla2qszg0!u&jqc~Kc0N~(AD}NVEL!rqP)yaNRp&^CnDgy0v%!hU+`EY_8|(c`0^aiB}Jki3ffE$`R^rGJvW z&zZj6fKEE_(Nv;7NJ$*fSeWTr2B0twFhi!-+l_tz;u@=j8>Nh1S`icMq>}hS6JX## zt4UPc@E;EeUeDhGSr%vmK6DLgPwjjul-Ld?LEteq^0j{!l1`+JMW&&Oj8Z*45zB>! zgbWxN?oOT?q0L~dE5+bvB43pVmE@>91IsN8->0@<$y3^-Mw^(@wO$<1cCg^YPyuYz zdE&hF@ji9xI3RzLEc8gFB~sV{>ZG_pD)50mM1lAaHj+V`mly8oNP{?@Yg*uAlBV+J zy8XyS0~&-J??eUS9FM1Yi7CB0Pqzv_<$JlAK;$<6G0<{Yj@XZ#c_Z~i znq}M~TSTfY@~lE9Tp#o{LG_h$5tSB+zFYh!kAYKa!juNm^Wf0HppcA~d>IJ?F>9JQ zRLnRzo+grg8metmH#H_AJQvC1S~AbfuGuBrl2bV?5Wz#{??y?b>ba9Fny6r;8GbzE zX=|#f+xzsW*d)+Fq{_j^28E;W{tO00VHDH?z_qR`^Gq`GZipA#NTD_GLyZ?Y%_xF_EE+?(O zq~Ydhc0L(1ckm)N-Xb%slk>C~Z^u%cQ<5lq0TOG#6V44Mj5{<@aPHkj?$rU_)xEvF zGFErBM0b&+=B`EF(jtnxuy?z6W5(iH^72>N>7`}Ns^Yt~_; zHK>Ao72sKxX^;WfWjP*_NF_x{0M2SjLLe#vu-7ph2H2T)hCh2*ImS}L=USy2TcsE( zl~Qg~O0C(LM4{n#G_8xn89}DR4DFTocQ)%`6tfwChg%klwJ=VqTgw}V+lkR!Q|lMM z?%Ka(+Nrc;W8>N->l0D3xlz^mzx4I3JLjD2`S-H1QNo1M>ww71V&gI)4B3EPSd=cwr$H8l=KYqwo7uXs!_wQ z*EOMfn#&{vJar3GHpsLf^8k@BLzhL7jFJhYtOCd*3_Dz5Sb!Q+z9l)1+ko9Rt7XfS z67-CsZ5E^yDrQ0ZU6ZMV7zRz|^GXJxZ&!=;T7g)plBi1y({jLR0aU|84hXur_?5YR z%y+gl<5^SNvso8Ezk387^$r+0)cyVQKZXukmo!y9@pdF#wJuij*{=_^+DKf){{y<2 zneQ3id*#kTIn`@*v$||#U`C0iUW)22yzDk$-p~kIZfO70!2x>6mG8UqWBPs{-QV-mLg{-A zj2qiea(K^CLkZJv`#P~)kY)@nATgGc*x;)vmrWqlF&STT}rsE}5F;LqBBPHmilh#4;=iS=JcL7O?9xFNd07gxKDXll6>PV1_BTV`Vo> zZ`Qr-h8o@YopCg~+|8f`=^#f`2OII02$X^`2Zi}2dFksPfm@R8y3g}c>*LKDvP1Cd z=B%o!rsxQ5UwwdlFTJG`)IJ_`_GeS3+0Kloi(+Yu@1f{qXd3LM>F8#9_+Jp4vlwej z=-e0bC&c+y_z!(PcpzOibsM+~ir=tP;4#BVbF{SOZ_;2){c&bSS>bO>uJ?3UQWD%V z^39#YUiUpXp;PPlM=M3ro`$|xVhXXRXXu+=J+ssel+C0|RWz@Ri8$W1**mT0JJ z**=~nrgV{if7${7GzEerIRN?(KyNeVS-i`^Qpr*h4tbDkF2p0*sMszEOsi_jA*ag; zJP~zg=hVn?S=h2o@`G3qZy4??^%?4M?m!3T6mMe@Arwe}a+=)uMnyj1Xv|XK1mdG} zgg@ha>BBx=bNu;uuencNRP=JEgL7_NIaU8ePZCqlb;ka?K{7&jmi1(c;OMkev!YDm zrfC!fKCrOb#=II1AixmBpatP5TuUUGT=ct|qMbj}>IqOEV?RS)l=L5d|*ldK1 zm&s&j=XC}NudBvYh9hJ!rzag8Hv*XLY$!MdkH{oPa1I<`mLBRZGOQa>=+^+jfsKeM z`Q1A1y?aeD(Fk-)?SkvH@_#&Gg>{asa-nXB@8Z9Z+hp$>CN9MK{y_nJ*LmxhH5Y3s|dTkl+8|)kL%l)v>8MB4oPVJ5T zGX`&##T@_eaU(3RZPNjegh~mznnfy zK7{oEfj5K+(>g4{9zT`>cz^JIIyTxme1<>qDnM zpRW~eo1iz|C^>ZJ(QxcOerYFALu!&2W1~3h4ML6kajo8&b-C8sPkfW0KM9=4zUww; z)Sc}vf6Y0+pU8SM7hfOJJGK*9@g6TTC5hMISop&qbMLlZ-bL0T#95N}c-ksOoPmGX z{+>n^P$n2U&} zrShp!D)vfe<){~Km-}0+uBPz%zA8lQ_bA(kiR4bbe2&Y1@YVd9WQC_v)i_Z;c2Uxtdd zw+pU0)AJdmyykauY^SRcYSy6tmB+aQtHc9*uv z_Urg34Bai-e^hF0LM&(?Q;yQGl-mnjB@9r3ON*mQX@&$d{=v(IzT@UHyCB(RER~8a z=qE4-MPN8xDBL%KF&qz|2*Cj)1OT=&6u+o8i>{n6iXHOEuK7@=O<$T2*$u8;A_6sA zJ|f)0JPsnSd;s+`CC4EoGzBP)&4bP|DIRD#37ROtL@KX>ph zmfX;>Dy23&8f!f!#8tCOSuXCIB}^_49nO}PZ6sS6L^_vNKs_^EO%Bckl_}h)l*UZ# zlW@+=mv&QWe$%uS7>Oqz-&8_T1``Qqq2Z1uQiKTCK3y|yMe5r9NQ@LwujCf`(!_Qm zv^o>>`Y^)0o~E3u0@LWa%lM6!xe0w1@dHl`#rIT&t5Rq>7x2YBdBr^M5uu0&F2%E1 zVFO`I;3*W{^^MPCa=){ItCGB14h zYAL{r1sC#&Ngb^eqcni3P}g(YNR$-qUW^7srHQ4nQuJ$pxFpP@o-+8{vz)oCg^$Kk zW{`d@qC=_!=6VtHaVXTCgzEQ(xK$&bJ2kV6#*0g_AN>JR(sU$9f{GiQSP?)}92&(& z2>Zr07L}>UHd6Mqp@+w{q#H%y{56=E)z1xB67@a>Rr&A#t$*er?2RISf`K!>k9&-!0eNTf6)7B0m=VXtNkC-Vqa99d+h1)Fax={nCO2!#)P z6BZ@DkqX9&h{Y|Zp|u8XSZ$h8sl2j`nQybVkQW1^X7dX=DEe>AMATbPnAF{;T_{w1 z;acOLgW?1Wr>#M}k^p5B@hF9V6-ssr2XmBBqA>gTZAuA;u!OQlIUnV8m4hX|j7Dy> zB()PAu)Fdtos^rFkJzHLXgK~1jUi6=KV_aG13X=YgMf_VLT@OLI;%kaybWMu&5AMZAmVX|X~!GCB+Sc&0#K;Yjj z$GMU|`>?d{K7q#+FeL+_X_1<1o7c@aJ&YAy3G`3vn+Q}!&!7PW=g)7T?2pu*Lsl6?@WOKHjn$IVkz;6M zwpW3$!hW%oNHH2+#8SDynk$qk6S41$*vX>sSRoK#h0$H+J5xko&#M_b%dgwpJTU7 zCD_tn57p%jtcj_2&u@>F+GZ7g_oub-j~p%UFHNz%+{~+9`Jq^Q&R5+;~)agdkYr$wTY;22Qne1JG z*^>Q&qf)(_=-WuzBxt2O%gp_+q&|zkOc#EE`ffwW+8W^YEWzODjLp443+mVv5xF|+ z58F0_)FD`r{NL*OM3sj69;N58==)UVxQZ8UPZusz%wX4z6rD`qYo-9Pw=L+_hM|^P zRl*5?zwVk_}`fNwXKTrwdiUxkc zYVZXj>S)z(%QvWISxfMLFje`pKYq$MQ2#&yqv@=IWybx}Y6;&glcN(GMvbh(6TAPCUj1df;bdLi|#sb zdf+IE>rtI{;pg%HB^?XXAAUbKJ7(iZMn>bu??!?;)4`r3oIlR{jTjK?`})=;)2O*m z*Uvd5l@Tn?XBkbL`^oT%f;X#blqGeZmfx{>GLh+Hx-60E-iQW9vC9D)C1~m%x#Yl5 zri7QI;y=uk$-JDR{+`k~2#5+uRnW??Bq)JL9jBZ;r zt(_j^=tk9oaS1{!?p87(Zy@W{4Bv@@HyB zp7=sRd0x!JH|9bl9XyKDNqtK>K4~l}MyWjB`OQ@!Vy=XGyf;|(D6qSfvqIbG`?1mK zYK*tY+&?$$Jp24Lmx=t?pLja+%a0o-c(cyXUv!K{o>pep^2M6&!rR9~Q{N06_lE*m+Esf_DV!IE7^ zNmgw<&haqeogyrVi_wmei~#0Mp7 zoJlPM4x4JnlD=d2Ls>P{2b>=Tki{)-W$!(!bMpUki4$(sHHW?S`YGF%b_dEE1Ssk$ z1zC6bJdA@+*V62x)WM3?{o&zFc+1D4>-ISv@ZtSA#s0D3WLTdT+oo4SRBanQ%<}ZnDNZcpftzV)duVp4<6tAzaQr;#$dZKKkEXp$eD2L0Ej#s@kW;dsv zPWx2=S;GU2!0`mQ0PyY1Kp<+Hsq^3Z_SV@Q0l6wp+xPFcmvEyiA$E=e4|X z2nPyNp=QKGTQ8){^2+^Mb7km{w+Ot;HJT@d>vl4(R{o5o=B}Q_-L8tk zpaAbyjiv)1=Js>=TmQnxyGUY0{~D}@ulEBb(7OAl_j~lh{+5&O%xuOSpoxgU=?OB3 z-c$1Urv!oSE=9*Mva6)nqJwR@h22bvTHO3~R3IBCQ>VZ#Q3o4_hlUM3-lHi9J3|Fo zUjNxTX%Zc6ycUw!&5UIwK81xdzX_&G*u)d*SD8LKWjHtq_b>QjF#m*xc@Pe z4AuIY`fOT3eyjUrjbmD$Yh+`|PEQ|^=10Z+n^nhSSIDeQV>h`qh~F$tca@7CQ0#m> z+zhpno-9=z9xLmq#T4j2vgeGlkXG1eyC)KuH*_~=H5IG1U^Tg()!gK){WQ6L3N>XU zjTjPTeeC{qK61Zz7Rd=Ze|6#?gm;nr=QvPcm>%lLkyYFM@%a@`W4vRLdUbN2p1#O5 zG^@FK-e^@!iJhfPNt`*^(J3a2Xds`nQ?lAYmd_GlE7i+nYe5ln{)tl6#CgRBV+6(H@zk@{cZH}bB zj)WL(YQuf7zvn%lEPFh%54zu}Egu!{1UuouXK_y)?L~GyOcxb=9|; z>`Yc%b-}~$+2=aTqOZJOW~QEG2{wTo2h~2TxYLe6nk~)E1&LWQSJtuP3&EW>1CF-g zs>$#0_fQUwjoVf>dSZ2v>C1Usrewn&Y~1>B2n*;rR5)4t-1mXJV8CvM*dG;)2>e1 z(*LE?!Mbf%V&!$v-G`p`t1JC602W@}mYKC|84aJ#!|U5WThL?tNaTRRHr?GTNCE8X zjl`9#gXPn2lU)yn_1UoZRp=XZ--Mx-EZA%!3;al@BMFhMcH z2r;Q4;9B+Es2v`CZ@RrD3|1IZ9%C*;Me*Bc$#~IKA7qS!a9MoRrf^YI+L5L}YJ~GUc^ZO&tcZVq;Yi zl%Tp^Msrg!X&4yZy%52kx4YsJAZ@mQ3;Fof-I|!K3lnR`3)1t^=B&cu1$;b)rDQ?a zoloDf)wJd!tGZ7HXoH%jkIe6Ldh_^=DK=ChT=&xG7~e)eAgg2l(r`S;2Kd2OHF@bAuif=f{G zaW*ACVFj@yHm(rqdf9kFJyB8hE2GX%XBhIDvb(l28p&V-QOeo&<5%Q} zSke{lpPI0NIg8+Wq~+k@tGk7%REVTNt|Bgux?s`iW8&c(LztOs-D0+{smSq2(bem# zn(EK2smh?-471!^+|sG4?)X##HTi?z^OC)pU)8z)%ODatq$l}^0o(!_&wY7QVo|1e zeJ=|JP8|&*bK9X*gsSf5CCuFLx!B_*--E^`xxX+ya>#|Ry*mWITDP6;Qm1!8xK8oF z+}}*U@Nkd4+PC;6RM&1xDa&-B$#Rjju1nF^cy<_JIVH#NF?xA(?MknGy=t$w;+hR& z&ta?%3r{tb7B4$&YGiaRNE)FS*qfq0FMx?eM zk3z@Hf^brViOr~oG;fj`CVsYLEGb%oaM1kWM5IIP^7?>#>yLyAz^A6xwq!olV7kp& zR3gRaMhytFM44u@f4}Y z4B8D}XXAH$^ZDE<2{p!#I_k9q$)Z3>7b_kkV+ORR>RsA|p{yO@0KM&~*T}(^?%}gp zE(ITsPT|urf)pX=4a-Qr`Wixtc}@|O}?%R{&<8K^%_ldY;Otb4yWb1okvow|BFX2@%bm?*I$L{{qNz1oGDE?oHKFXvK z>cgp+JJ+BrLX$kb`o&RwY<#S+ee6z0ew@2BjO+UJsg{K-zf@B=<7u%_O5GE|ck_#j zzF0r~i6~rRa6J>JJ|t1&QMya~KMcd_`MQ4#&kTNe23Fu2Vrv-t!Lxa9Vi8-8N35B@ z4U1Tp|LUV2@sZ7IZI6Muom0nQN(Voxex4$J#-ayUx#^Ak#;$~ImAc-~X>2IP+CJu& ze+K(?{;0G*ro}_o!sQpOrf&zT2FEk?-SFJJVzOB!OaZTUB^71cM1V-wxy!7& zlHR&1wTv>ADV17FqGp%yj5!1Y%9lpHV|2ybWKg zW2$5Fbe-Pl+OO!fcfd2xbStI26!O)4i`cj+0yT#q?W5$L@Fx(0i<2ESG+k6vQPx)~ z+B6I;OOu7@220q#plByU3nLAbr|cb^Ha4q=FeCfNs^X* zh6d3s6-UB!NurvPri?Qwy?|{6IhO=GrsnSI{wTwTJjBA2SA8bWD)c&rzUB_^C&nQd!VA{C6ZNqZDUJLWq3Qprq5|)7EAme$*%0w+rJNg^M=r z=84~=Yu7m8o>3^@w`;Un$dFI%O@)CaacN0e0V*FBw2my} z+HDi6@OE&~a9lXE5qw7tDG@lg-#=7ma2fum+F$wp;D6yz8fwq>Oe;mYZ^Wj3lu8BC zgHSIUe5T#`t*sC^l}K8uxL>kzRe%OmbM9|Wk5%`j!I#%$GCIMEBKrZ*ytWyoLt^kjm|O}KLBnj z`kwy3uT#{fOQW;&UKwvi2KOSCR=b8|d7~W`?^n{I zW)%Is-&9ym*+~7zEbo}%d_v^QJEgblP4>rv_PLt+dixJQ*b*-rdqG<74djnw))DRF zg2z@XK~#%>9__>o*C<*$X1deoc&>XXvC>JQhZ3h89bFqlZ5;LZG~0Jw6}qkeB+uQ+ z`$6s3ewWW%)m05t55jowjt2A|hX#h$%05HAB1W>qz`_W0NVugSQqG)37Zh#sRIVoJ z5R?B5?G;|uxyq=3tBYv!W`G}h^QI-evonbM;`m6 zO#E!A1@6&ihp&80kou1nA)XhcaWHTpupv^_)5iz<;c0@5?1IxQYlg%DQCBuJj9}Js z9qFUm1=rdSL7ID^#9_NP@bbosGYLW#Oy?U98U<){UwR?jqA~+l29C8Zb9&B>*%yHRK$x{pSZ_EjES>(J0b`WlLlxW&g{?x7xd7%knJhrrKQ$J z4Pj-tkj)oHAwy3cIfT12@h}M^0kLvYM3#u1XVjNSkiB!MdMH&wa%c7q$7fd~|_DQox~PnwhaC zRNQmtL~UvtrJ+Hf_%LlAE9;_!F8`kZautp09;j6^BXz?aEuxMj-4FMT*NFtPgo+A1AQk1zmGc0# z$+W=dbVLuNmO_;Mp>P)Io=~4vZ6g;%k-?N`w`g4)BEe0sQA;NNRjz+T$FTy&I$~o zbHl?S7ZgbUntg}=uRGECkK`}DEOgaa#Y7j!dg5H#L_2p@?@?IoW8{G^+G70L2&d7d zbG5=4wy>w93w?|Lyh8y2RClHgINF48K%)T;a5ZWUa6qF5E^ss&PL}s|YwPRYv;VLH z>fQPk?7^mp>bAmYUvfYfaOc6!#>G@+0{;&#XPBsEtq02rV|wflutEg@dFaXW9%e_L zO^rN?4h7I`)Nburq;q)`N>UPJJNCilby$R(mmk%D87@77o3MCk{Zc6>t*yB(t(C)0 zZ>?)iZ-duL+uORH?+Q&W;F)&}O$>`*_=F}z;&2I+<3{z_`f4yhe|<*aL4ION^hxsv zHl=Dv+H&SnZFWz92u}hE2#Eg2G9s9Om0-yrI=R7tiNoU(aT_XtK+mo{!GQ`GE`?;k zC-dl=38@%`m`q@1x1E4BP1-WYtP$+SR1{hL|GaeaYh^<8mblszG13jfjsrXb7NS7J z20W0`;;B$T+fQ$CJ8Z`1RJs0SWlTMEoK_k^Eu<-?&Oq9h-Krx=!l3pvP{u5p3JS`Q zx=jZ=%VR>2{g8axV58L&C_q=@i3LE0=vZ|lDY=*gB5p)P3X9}NKX8Z;g2wTffY)@{ zbg21iO)sQuN$NVz5!(SVzkr1y#MsHQFxIh2wLxr%2SZS7(g_SFE5?qH;BX`#2q(GX zj^n}{swmnTpGGA|i77U?)adBU*Ibf=Ete31XA}JV*d*9)?HQ@8XB!25$y8XN>#f_& z8|dkwt*@6)G?CE|qryfOl1s)-^~FR;=3v7`9P+UkZ!Z!)>PE0X39Y!}z;2x8o}DjMucBwSPQhz!%pMlr#PbPU(3SVB}-Z zgUz+T1+K?LNdF&X?eZCa0(%eUo-1r{-l%{2={BE-TA7<*a7oUEzme^FI zuL0N99Hcruqo29O8T=2GUsMZCUz;}G-x7jvEeONf*<8~z#vW|;9p4_R zv$N?94!r<}ZG^ga`pfS!+#JHN4E=GegUyAIun_EnLq1_xy(koGM+zqB^UPy0(<7+nC}j!qDs zEt*2s^UofbK7INsBvX*6@<3w5&AY+MzPT2wkW@UC}@iPmb5y>o0$ZWWKv8% zFxos;7E{X8(1O%@AX|AC6p25k8JIV@fn5mXqcStIy)iyLjaw`L<5ri#w~GsbSkI=# z&w}$-Jt&@$zGV20`utr92Mlx8r##~s4LlnGRy~}RFR9d_fak&MPKNB zEf?Ab`I6x$T)d^11~~~Dc&QVqN=ME!(ok3G3>HJ!^H_*3m|nIvwCdf0s3`6 zGBz+Z`R`r4-lb3>*C(Og*up2}3DRObzO*??XO(TGfCJlrqV_jAbw-^>hdNtwOJNmU z?t3M-pwhQ`-^eXgeyqoNx8YZC!-W+M_DR6Uzyhv6v2 z)E%z+{ICooDL;JlaQmD3QqxJtzXf&ubHWdVn1F$gQ^TY;wifcFDhonAnqplsor;pL z0=oDyrl(u~v$iPlAB5|QpVr~Kb9u|ny}-?z65dJn*8}C@UtKOKz-_*=rZBSqN~HsA zu-)~U$&ahHB&phNHcR2gI8(8_C0XJk<|%O9xuSzm`j{Kvc6|2#LO^ujf?b{kCv3>L zBw{06;Rc@C^tvVT0si|DH=S56s%~8Kj$r6LEduZn9|(-V>)39#+l(D%hfxS_g6)YV z^9QmBAd>=FB#=b`ljs#P#2^-NP(X*z}qMNt$*@s64+e_90-zgJJ(-JN{8`#yi)+ZXN4%Z{n*MfUa9vG>h~lejRi zhpJIWyx^gLUD@DV=c7{Dc zw~>UvFt=UQBr?Hb1QjDmqn@%8>M70<;$}~IYmZF{Q#3*vBOFc1y)#y5$pybt9Fcmm z_v$J5rLYR5HYq_N4GUn1eTwm!yg$UlM)!r*mH>js2mw;2T;$(ZFbmWqH1n7bI>F+{X}{$0cPZ5gmg<;+V$9Jz8V6;64-uro zIImk$lt`p19dnznO(GLC7us}rA|+B&JWUSK+GCT_`9|>Q~M5^ad=@QU9Xh}pO0srSV18$lq3-p%kM}(gmRSZ$T z3uc##$;&aw_b|(Bsg-0eOx1T4>ZPG*D}0p`G=?Q_GfCr_*$nOyT&tkt+;P(@jC7aa z6>*d&3EH?AsDV~TfQUmYtB>ANIuOmOx@xc6nztFNc70z?(94Y(v;@AZBhR_0{G;t= zx|(unTUxFdTd2XQ3Y8{OObGqZ18I$2{FP1(&n+tXE(^!b?tH126%2vyj%HFF^5Ghc zJV`Q;yV)j#bG}+{e8=U=W-|nIC)6wbvrlV(-QMu#)0!FgUKzC2%J8|xkDuvn;MLjY z&r7RiUuH-9MLlE=iT^%nsg+Ak@;h6-xHtovmI*3B-FW7j3{rFvs3-CYxFjH%#|!dc zT~Knl7!Ej%=+u~2@&zoH9>ic6AMGq)J=p}~B}5x1xG$kpS-?8WSiMQKXz4WIl>xNi zQar%Rm6P4fX->UKv}igF zcx3=BxYU#2<;qDkyApx1ry5NAS$ZSj-y07BO$hei20ef1|AvSo0^r@h3`wqA0YP^fzM65nl>+d!S zvL>`f1YMmpvxDF%J@D_NS1ARJdB3kha9F?gK)mDg@H1)=H>8UE1H?r@Gan4r-#Sz? zoe+S|4cd=JF!nI{;AI`gU)Q*kWZpTJznW|Hs9@jl4 zx+^>B7VYpmI}O47=hHMzY$lj$RGW*|ApSerc@&HuYHIGPhi?l}0m6McjDu2wZpqD_ zz2@=I-V7VB1rkj_ti7weJDyRzwie}HJH_rnv@=m{1LDnwzx9ZZS5fAx@*n`?ZiexA z!x|2pS>?58@BkIamvlkX0Lb^K2ZQiEa`UqQC!wFXn&H^K{5h^}hE^>>+cfjZnN>7! z#T7~t^bMf@5Y75CXco%pG@*OVsw6H3T91;Lvto#Psgwa?OM5f1+v8fJ+tQL^Y;}T< z6a3wUV5bwXi6FS=Y4>WW$In?oNK3|daq*o1M(U>QE4@>V7;=%EikAXWJ7epNWFmZH z|9-D2%56>~w9Z-c@twWq#jYecyBgKaCRd(+f}}H#p36i;=>5Ca*v;BzfXo5=>0 z6u@9Lm-biZei|9v3)A>N^T>zRc>YX}cscN#vBy^sX-h!Hupu_Jw2nYj4?6L8qDK-D z1Z`T_gCsl5KqY8E1_;)tzsn=!m*7+MoBrVZ|N!J7U#J`He<&{g0| z_XDd9hC~FbEt`>*hxlqgt8V=wf;*U7&<7_V0SuNHV&cw-uQ>C~{;#kUw6-cBkgscx zjbJ~E5iJ@sH&)60VATr1H96?b5JvdTFcgcM;rQv?49`{NW)>XeZbrZrdp!zYob4bg zWDIanNZgUJz&0`*b%4qqn%HT&!w!m(+H;74=F@0fRm3f7i?V;kSXLppB;4M>NeK^u+11bX(nWl%dQGc@Pp^YJC*0jUjcJp8K8pp@#M(BI{F?nFj{_nnQGNB@w+ z*6eY~r#M&!u|=3YD$BYLdtUMuO$TVePAUPbu!}ToSpk`$e zkR@!42(I2p;pSOZz>})qKqUAvYeYsihyt6qXN#z8ZjCfN+;iVxYo+s3b~1R2XZAAL z(mEY<#4DET*_x9ZNW(YeXNO|*AZIzca6T?K+Ndinw&lj(y!pg)6TZ2-nYZ&mVAw;7 zZ(p$3i;=IHPqO{^+u9eu-d5mt{n*hC{Qc!t{=Q=X@3hlEcNyevg9&!n5$T1XOo+-+ zwY{r|koF+7D#N>G5+kCPDXYC4E7UOd5GV0H_7-jgp?;x}?L<MI%XO4DS_d zobiOW&jcb$RF0O^N$<;TKRG4wMF%+LOOYirCrWe&O+i+wX?!H6Ln?@+ljnmDb2_C* zO!p{psmvfgwa3gfi+yQGFsq~EW_yCfw4UU1HP)iD!(fkT9S4qBIxTo<@mneU4^ADp zoHox7Si{zOPOibL!(sHjVm1h9c9!pl7C^0#R$mFK$YS+aBa=%KAh3@t@r(w~T1u}w z+I+3uH?C^Z`7x3fn5=8<2GnfMwX z{0blZGM^Oww|?~AZxqEzn&m}V)lJ*=!#K^$y6wk#x!&%N=j;9X{{GXvtlNH^*ZsWT zU%C)Q)pWzOY{&I{*5?dTvB?d}e3&M+{neS#G#q*VLq=sJXE94{eakUcXt~APa3*yW zQ>P$NT)EQCn4^*|RohKDLRY?CKDL5L{leS@9<38N&WG{8* z1UQWuB)$WwkHy6*Tlh`@4Z^xk;EzT*{erEwSXu-#iQQ1Zkv5 z6CKzE6Zy1`kS6A&$_Qb%vS4!8w1(JO zWF+kUjB6+XWu=r?LjSlLJX4TOqWH3+n7m^Z0}F-dzzWsC4)tHkCh*Pp`wtVG7J<=C zNh-^VIH1(od5o&lOpiv2Znczcy!#;+;)7LI*~fE(T^8y}4G9?R?TjBPv#QWCDT`6o zZ)Mq*S80D`l$VKiG{yX};MUhlg{ zaU2x$^WNj`2{MzrPa&DQF~n_4;syIz>Va=n1%3ER)gzKWh7v%6`K+rr$r>=15Qw2p ziNa6}DMj!3fmIBp3(0m2XCc+mI!U-7{z6RjfFLA@$%2T-@;!*|_L~^$h;*hk_$C zaV;Y8wRCe4IUMNSkjLFfpacmXp+KS?ak=4xU&U_+tAq+6ivusjsYsds>GQxbbO_@o zzv({oHA$NwUJa+~mvAx#2PETUOUmgCPU!?EfZH~>oe-SBHB~XIViu#Uov?Pos+h$n zi&5527=#HXU|%3IfagyEPA}j_^Dry`j1m9>ZU9UG0FVX%2)F - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/disco/gui/dist_stable/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff b/src/disco/gui/dist_stable/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff deleted file mode 100644 index 248ace3ff017bd6a3f3ac18d6e1909fee483df5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15720 zcmYj&18^r#)NO3rwr$(ojcwbuv9UJE#`(pzZQHi(y!^lSRlV0UXS(j0d%I`4x~qC> z?r~R?kN^S(`YHStK=A+7+Co3}|1keq|9_EG{Vf6n1kCiqvHpN92|fr!QI(P9hco%H zReoULiU8uQ`b+rN57+Wz^Zr2U*kzp9*w)bDhkN)z6c7-Ig7GNOh`FKj4+k3X;{)}- zKr*-SH2dKqe!A!Y0#Yz2f4F(EFg5&XpHu9|hvPrM*!sm<{E$DK&yP*`12ULeU>XZs z7mpwA?@u2;e!yc&xS~5Y_QpScTnj(;PkX>)4(z(+wuT-*{qp?ziNpH=5ilq)kDZ~d z=?_=&X7a8eb0f&MrT%@Lycn4`-+^B~I_LW^7<$V6bDv1R{cg$(f4;(RwhJ zj|TyG$X~F50Q?`#*llQD=;u6FwhmFoEa3ffG@#OVQshysl_iskYx$SZ|I6P^&H5j;LS;RsIM$I|0Qi1@-s(H zs>=JNcP5IOf*wLR>kBUa6PrB&T9XBh1wNBxVvGCj)uLv*-t@ocxnafHr0k`k;07-r z6lqYrSjg3*?C!w`LuFd$u5Gt8MdjX@RaK+LNxV|v&DhP+&F#&o6ctKj2f-^b6l67| zJp>`RKG-(cHl!e=Klo^HOz*^X*Y{WOwV*=OV16yu7RHON(`mAj0<7`1#w(#_PMrXp z0Bl#A`6o7+_taX5dPF5@6Nph#Vioyk;)B!Aq4Oa1;NYU~qP9`n0_ym_e>ZR#H;$f0 zbJg8);7EP-kZVqpUFFi|MWv9BRF_X;RZyF%=OO|FC~WUoJI~8sJ3A?^H5#L?ibavJ z0)(nXodBwu&Q1#|Y|qaB1$OPBrz-k^qt7Taw!0?w0#}ls*rZiu%20M*BAit=_|A=; z{Fz`G%`XjnJGHL?h8VSqKn}w(YpIpMwv9;`$}s7GE>17a7&S|`$~-k2Bad%2%dqX@ zJ{mO(B*)M)sYOrKGHd;-re&S7xTIas>dLWhP$1tlVtZ~2Gm`4~Gy8tl+V?jQqQ_c= zHlzWn`rKACZR`43r*)&&qt$QiP5CR17Nr>2rds1RW_GZ+M2HZKAONrmHFQ`ASdvp~ z!@2*NZq@VFJ9)3xw>`P&0n(j%J&N|xW!CG~LgjWG z*~daXMXwWBk3vQ^zE~wH6d31M?pAK@Rvd)k>@EzGD#if!b_NQR$$$a&U;)K!nMlx? zzfwBsitM_eCaeGS>>=EO4XLC)`3`lBh%ONlFBrl76i;t^S7gd-^RZA<&LYJFdqLgW z(dB$Y&e+y+97-h%h=Ja?JYc0v@1B(Y>E`_c1|uS!_cw51)|Vtv(&Gz10$vu8IPKr3 zo@BamZMVP>zk0CMfd$Nk18vC?+F{BMo@7omBMnHg%qk)wV3fC{4?3Z=1$sDz5YfFR ziM#IJgqp%4fCV|5IAH_bSSv6&IDFl_O0^*KVd|T*txkC5PhaCc`pxs6-9I9StXgtZ z$06!Mg`?P&yQ<1hj;2;O|E&P5S~Rwy=H1mhOvDLasEb^HN4!$p-Q0Ls*s-QZvtZ4K z6CFc5zcA0R_!JczwIWagNn>4SVe)TC==$6$9pZTV1j-Qs1x#bIdv300Ap(alcGOlK ziA+m1&Tyfm)+S_X{4?kM8cmt@W&oI|H)DrktZIQFW9v(6Ijs(sGdZt zw%4?)n4X-X?tCT@a^?zQ|ABfXu|W=^zZ10FJu=vq&KB0sT6+R%`viNzC6j2LZ}^<= zHm3_IND)E;nTKN2&_cT_F8tm^4wm#9z%WV%#!^xSm!6s(4wnkf9X|{};aD$PMjWCI ze+a3(dHoo&c<9^dgA6uxK742a{2F^bJPbdc=2bPV_$Hy@Q;@fc5f}Fa(s+FH>-L{; z-)bMaCY(91H0$&uV|mfgWZG+7ZC+T)vEyF%;?eX@o4f+emi2)TctG|~?~CP(ME0?B}Y;h%n3*FK`lI;Y{f)k-S#a8l|fXp@|gK3DI7@a4Z;L8#p2{$ui+ zAU{e7T@;A#Vc?aUadXY@E>N`koXhJlgCk87+^Oz@G27_B(iZ|FJVyx03d|!~T9OrTvD3O(^Hrqsgfi;V;2CGt$Rk zziq4Mq^sY4+dzP3&Bud)>24U|d9`L>l75L_N-FY0rY0Zkw*GkXP3jQmfo0c5d|NX} z@%k49a7jYwx@JU`YQctN`uXz-0Yk2{F2Kf| z1B(G{Uz`r6ZzDDqg3FYm7HOb>UmTQ3d<%=NR7f@{qlIh@b*;TU!MbfBFs02p;RNb5 zzBysb!bq|-wEyCG?YS(BYVuipbyXq=w$?s0d_NURSdkps+?JLF*E$+s6DDFmKKyMw zhNZW??X&E4nV_;m`T3E-mpz+3m%%|r9a!oT!t#V1@RMI)2He>P(&Be4+iwCDMK3b= z@AKXR?%0KVJ3I7CSUJdOa_|e+s=oMZ$1EDSV~P(A8`vLRklS>$&K)W$^}ZsO&x>m9 z@Fi`9!q3CX_dvN6W(Yj!7j_LJTv49JyJK6;SJJsdUEL4al$*%3oxPu zzsW0z_1+ir;!0>~dA0T;S?QK5jj01 z@Z*p)G`EP=N1#MFb!tzfi1ZF!cn}^Q1x}uR%W6Or)sdoH{Gv&b;1WytVht1;*mo0b zv6y9OF4yW~1}wnlxjZ5*1@?FVNbHJl|>6Wg-VQNK1L6 z%!xd0I7pN4wR&=;${J-<$Ln|LXgHh}$zp~(!!Ty&P)%Ux7@&oTE`I}aBc-Mpc86~Z zUm)J_A* z^b1gc|EDjVp?uMZ8q@y#x5IC_3$-DeFucVZJ2oObRee7!>}ogJOtXzwb{QWhJfU!-L4fX}70ez#qG%IB;x__I%00MPK{ThfeL%k;kpk8zUno z#i=6QYZEp*K(2`G^0Kw(>3me&<{X0Ys}(F4M*3c}yR$x|<7rENC)8(LFLqo9i^6UAl|KW$&L|GMy6hyEdE0)bOrLOPvBn zT5npmy5?q7~u~Ua8O0*Cd<+uMq0_iZ6#7Js#>S*ZwWl-^BJ? ztc>QY=Dyk`le=?7sLZFg zj@c%z-%9+PdyfJ__l}4M1t>;^;&@PfA#i^a2CCXWysoUNUAh&*B6-1w3 zHKb>^VzDB@>EWHX{nBJ_?#kbbzAsO+Xnb2}6v^$KnckjT!?u6owLQ;rIo>cRJ}rBOgzl?r0mPitdy}I@5-GQtn7lStr_L7`Os+r{?V65$Cxn9P zW{cV;E;J)6Oc6t5*X)e*#xbJuHU!1R$JSevaH9-46?dZc$i!s0a(`srTc^_7<}Y5+ zgrtlMRFi3%*43@#;A1mKqRb-IRoUsyL%(gnplL8ghOPn8gZn_FR#55e6O!yl zS5a{)9 zcnUo&eX68LcVof5!;)ApTD5^iN@lTj5sWw1)Eoq8P+}RiQxyPuZYeK%G41=9Mz48N z7)I8D>{KASjK2r%DQ~Y;GbAY@+^3E_?u~;I_%e)cV7hnAL5_h4Ha!Cmj6knm{xBy3&a{Wsrlkp6h0X~t0H#q-@kv@xYY{Nuw&F~ z#_XK_x&o-KC=)fOrfHKGqqIa(n`P{@Zx@`^D7@H#i_pUOJYPbdnfceS8bI_HsXGBDbY(Loaj6}ScvOTbZ8$MI@~!@NnfROPnve}krYSb<}FJDQyXFV4;@FzFWyIbIy&Y$%^Gaq zN85=Rt}<0?pxl0z2(mB~21GGXPM2{g&(OBRFP$Z+k5lO!ZE2Ubag5U6XEA2tYTOIJ zj<@?71O#X@Xih0*-4IrbgGH1Zc91=bK><%_mFl>8%~qkEQb^Aw7wBzI>nnvs>xrCd zVx-gYRelUOfYJ!D(|V}}BNPG6%^4<{;@=hxU54;{!qU4d>i3K*{f|Lr8Q|L1f%^hmrvC=xH1=l&n}0HdB| znHEtwL{`ihN98gp4&0d`_49W?p(H9lDwH`rxYe~XjcqjyRS4g{G4auh6i&=f-^LBp zlcmeK)q4NvY6%#2E?4QEfAPQ*2=O4a)qBXCgZ4!4fgM4XHp>Fx$2KUirram8-@{p! z#7a~5@ajZ)g^}1#^sM__-WJPsZX8+6?8~PWCvV8no2b~di^YA(#pj%uBXd8s-3y!a z$+7aR>-MV^p;n_ozaImEU9j3T8Mzi*+;*L~MofF} zkZe1H{7plxByG!wK7|>L3!0*hKgE(Y+R#M7EOq7!lA4Lg{0lr(1fWGDzq6QS)1;EN z%7>!}hvdZ=FAfz-K(z|0#6rp%wPR^73<Z&*z;?5sM;CDB=z(ksE#pjOD`PYii4X#s8wt?@`Ik;JjV7xTf7Zt7eI{Z$z&jR0%8WF?3nf@4( z%yCs0js)ZhF*=t3s2w^Gw*v3tr{0ZuiHiY4xz5j#h3aem7$U4X!Z?-WSBQs9vc0_H zFB|r$C6u5f+w%^acc2)H20jH)PJPS6oOpV&R)4My1vKfm$$i3P@t&Q|yru7Ej zggXLy!*R*ZQuKz)w|`Add3jAw!MY2tx`brsXJ^()gmM9%!NY$Gm8&V$7L*JQ3RNL9 zW-FzFWE*VkMN^#(*iw_G%$UK!Ajb`hx?nk2DYpdMzrDES=OGR``%kvPEcr4o3j1Sz zX%eqYKEwqWDj@F=Y#Z?#LW6_E(`!nPJHapSl8)ZlRYG9O6kRIA2*TyiZ6hJrN4oNz zJce0`vQd9WDX{FU5c+oYcV6&xL& zoO zVo1D_{!YIqZj`8R$#)VeUp!&U6c5Y^myzvsAa{0}VYjGXj3RS2oA;UTnVnNn960CY zqO4IW=>1LOYCi!v{qW$U2Fa`kGMq=0op!K8lpW?E+G2?F_<{>yKY2M=E@22PN#1E* zNh{G9FD(&1H++Z?G!0+r0CKH@ZVF2sMfJ2tR?f->j7o$+4&O5(%3QE$_Ng@{6G`br zBMuECI8wl5_T?qrFX=$Nd>+n(BCu6*;?5Q)1AXS`mD1DDxMk2=)1Gl;(mz$YBgC}p zRGH9ud0M>I&q}4}fw=L>jyFI$i8C<@^G1kd%#j96!F-y@FJL!qu2hm{N&6aQU+jNd zZEq07f=^fKIC3CCacx{BjqAWliH5RKVo-Ot1%Eb+bxRb4i98H{1e00rgFU_}92Lbq zO)dbAd9FOF0cL*2;(M#To|rT=M?y*WrCvGFl4n$T+jiSXm8&MTEe3ukN{TCLj7ij% zoBGhhMHI$_*z@kJR>g2wf{z2`6PbCegx~O5A4P0$)ue9eoq6-8%~RUkr}yhrRH^jV zseW5m0{s|>eGTHv(Edba$)h;&y2hWPb-1Gr|3^zIi*sV|k32(287n zDmRJKlh~|wqnx^ic@--IcSG9d&$FwQQDf$=MC~|Zzw_+ub7zy0qOB{MO!K}9iU_Kw zRlQssEdY~h^k%qXar6Mzgh8!Jg_1>vxDW{F>|UUD;j|abx$1>dOfV2#rEch0H{we0 z@Zu8eA(tEuh)+reDbSwmMyV`(nBv~OO_C;}d!U$Gk7>PXJ#EzZcS7yfy9&WdNXpc= zc4-zmGaedH#s)Hsa&{~Hs>^tAgRr$RYSM>$0$&@)dxRM`j@ql~Npxo|8k$`FIq0NV zTM~io0x?XzQdsgH#4)@$`Ps}#4r@U70_&ExT{tutI!F)41JoPi(Yz)7zs|z=;IC-e z><=LRAn2hc2o*)4Os5B|C$4+&f#fB$ZU1>$qj=SFhRpIJ6iuE^-PRy7dCFFumKK$j zRT~aPC8J~&LE(7YO+~f+HLKui(V{slN8Nb!-2;bL8w@yAa5ru^8$dThs1Dgo=Su&C z_4lm z1w$LWqZbP|xN7RmNs~UyYA7+Q0wZnQX!GGNy;h6jH%(EU)qXlaOD0#QJkNh#nD7PZ zVV^q!^>(8nV4bS<8G}4L8b%0&X{@;GfrdjEpIcZ$oP?P!&pj>l-4Xv5C_ssOQNQU~viKc0l)()W$zlj;tFk7%e3 zSEqSa)wL@A(=Ok~8CTTg>4i41!^6XVjCsX)8Fp9^1W$Kp_f}q0dViii>h-_BtpfN) zXbTK6(xQ0i;Wk?;P^wfb=?{~W`3&aIy*7LO_zh8@Rym47Ozy?W;+`Qob-CltO+K+ zQRX=>LILQIR5m&ugbtF|M3wGFJ`9Eqs^YU21kA094S908*UcpaNd`~)1Z0)$8uAhB z^SQzS;XX3JXsIw3Z}~Z+-UP*e#}Y_*hWA45*ZfYB66iHc66u)yUB6^eC(yrt$7gk-;;}K(que|%j#49VU=i2u ziB~`1GEDa9Oq;wWqgJu~ux z0N^XL{@&bp|BDc>q)~VTeM2HJEr+A_>!{bg$A(-Ti`^29yS#4d_|N5!GY|F6AC6GLYc=UpE1hMIkwFqC=WZW6fh9XtEDv8+coL{0Xl-WJc@yNW5{agWlo8buQO=b$4(yOt`=q91Y6hUr-|L^?iDD1tL``+r5q(y2Ie#}5l% z6K~*gM87#BkgAg#SkBVhBjnOD#>RY?fcZmSwq6Z6q0W<|z!5DLS>|^EAT}>{ zq#{-X12)bRg~ZzE3!QmBMQVrC*?g{}l?24k|0sx_Up#L|6_&#fBS@p)dsJWii38FG ze@Kv0SlFYB%AwHtB}0Qx6E$8}Q>$|k^K@Ru#CRcYO?l3M1$!hVB}>r~IE@}EA(O&v zD(nmYs_@3JN!e|C?{*|<{1bgtY;SP3cl_1^zlwNyIsB

>HG<`nz(%a2rX%E_m_L z&AzsU3rEiqv1xn&g=#%%hLB!nS(crZTTk8%3q<{S6+s=;i;^hmFWHPbKOcN;nBmjlrjqMey5fLaqf)5 zLa70c@tHS7>sb*%0y*03>)1OBwoD|FS;#D2V;Ut=5o}qNtws30==cBqi^w z+dGZCr5lL-lgu5GPfK`qR%wQUtdl4T*lH+s}0COJ*9qT`F4r;L~N(%{z-Udg%A&eEtR zn7PCCaR~*hJAVt&aq7hZ1C|y1;KpZRFFW@0>k|jT*~+=ot4~o8BE6MH@!%p%YaOpv zlTziJ4)`JP_}f8VYBonZ@5v+I!teH9<-Y@6yAX%Cd4yXaDc4{FZ(JjBLOhhzWYbG;cB5<(on*M0s9r&EOHPjD_!!D-3BmX{EghMOYYg5W6^wf)SlHRc{eTQC zVwXa>s&vd#kDkl0*0`Pw;j_1w=>>Y8zFhAYrfCw2qjZZaHr8_N(McTY56NR3M-)G6 zuv34FDY6x5+n`+aUgK+3#&sp!$Gi6(<}+6Z%0|!)=(45U&48}#wuPlQj$%CAsjBcC zqtOROY)CA>bXkVr0l#9%c0Ml&9Rcr zTkWf7E*czL&gK^u-s8O^C;YPbdWlhoV5gk_ zz>|Vl1S{+yKTJ>ds7arIR}LZu@i;UP3!gLOzmtfAz4pXJYAU_W1iHxcT+T^&oK2je ziz%@^J#mUU)5vsx{`l+$f>VO@!Z2C(HQry;;Lxg{ppRKqmj9h(K-x+^rov7fl|e7= z3hnZ$emz@-F~L5-Qa8NYZH=OF$_DBvL7bSWdxykq;ZX2-6l>Ob!erla!Re$c-=;T zAj-T6&Y>7DVoB@kSRq{D>2KYXaAru2_$A|6KFq&uQPE!sooz?F0s-7Cyn_t%RtoLH zd-v&run|1((8ovG_E`=wY;jL=Kfr2BSx&OZlmXYHU;G_$E6k8RPg$4nC0keA)>TEJ zSue0Mr=uode)Ygs7TWMTMj1uNb#H)NKzU3 zXuvN(N`UbULK2d~^nT8HbzZvx zX#iUpMLmDvGiW~A~eO%Nt2BLBdfW_4Om)g zFWR+VHSSg>)Ejs6wE9J-H1T{JjW^y|vQ3{hvonL~0Fe&mEp<&#Pm@!$Nl~=B8J7Nj zO4$sZU3%mxIH;Q*tqY!?yae4-687IX&gDVX2@xSFV5@c{y0ku9Y=|k~l3&~%7pG@q z0!pKKe6n|9V@NiT;t{6(x6Y-YJ{{4)=Q?t)VnOe~~;NcCHr51ak#?cU7Ru)_hinKuf}$J^+<9r#kt<&MkFbp`MuD2I(G0k z#!%43#W&m<5%Gz4k6nGw-mH}TdAbByU0Y?l*DJeoXpm8sXd=@eX23iHlB`yBeEwzR z0O_Q8IYeU%#0BR%JM7r>WTz5#*)Y+(!g6+=b1bhe)AbmKbhbNZHoU!4TmGN%%@Jg} zsNM_p;xZZ_J2to({snj7R>;NR&IJkrSMyA}4+`D3mowoaM4;q+0wAvon8qkAc(=QM z-{50h^b6uI;5eMhX+rZ9XDpYok_oag zo-yY0a##)QnDhUvvk##y^1Cl8io&kNL4gWLzM7se9!iIVT6K@Z3TL_Gou_|G0QUx3JE z{cq5;`?O_1JK_wAzQmRRQjAyT5+o76YVvqTOsvAC@HI7~qOAw04G$29-z_8Gl%T~~ zS`W_!PqD%@gr!OCxoUMjZ!eF-6Wb%PJTrS|Ht-xRM~F1yD|W+s?E+wudntY^Ska%q z6aQWHh#JwVzj`)@Ql%svm9R6-SR9Cnbh}T1Wh*bY_`Y>`ezo6z(&Rlo0(|HX<-Dss z=N!=I^~kr~G}4QHL*9K0hE6$t#Nb<_3%m?$^uZ?%y`MjH*5QDw0tf7u>C_7O4!u-n zRlc>O#}cA+BWoeg#-LeBa-p;?U3%bZ(3@Ie*BI9_5>^O1JS~6_jtwmJ&jWSq!4<^s z3@NH4XmQgrh~Gj~iKAkDLQ&f<(9C?3NQhhWr7&g@!89J3#0WUpgS+Scl0Y;iY6WR5 zEAwuFdOTv4Q}F&TH2mT6s{W$YedgGcL07Yo)H`G7U&{XdVret}MKBhZIf#-5-d>P) z_;pw+Q(6*Re%A6FI|H^Puy-84wQXjdG{|pJ-hkqVL!rk5a&DYfE)He5J9!%<3ub$R zJQTS$3e>1nooU9#2~YJNq&z*reVaYB zYVDUeUEDYp{GDwsa35W>ovp05gI?bdBBs?^-Y|&WTD}xSK09K6<*)w}Y7w`ilaHFm z#zQPj&kz-)A1qrgv)1Ajkky-M@%+3CzAd{P-@?U~Nxj#wiN;Ea_pPt$s;}=tVELGQ zdy9+n8sR~sOq7$z$9#MH7tz?LB<2iL8WQ`pb+w>Sb0QwC_>X~x4g?Bc)F^zu{VW>E zk0Pg!Ip!$gxOnpqZjPbg-)^Vvt(1HB6qWr2T}VtO_64n9B9$QCs@)LJ%I7`mT3S?s zFEEvk{VTK@g!hkZDo`(k`CwtOEluSMokHd8SPg67S91*Xb{(ochg>EsxM`rMe|56t zj&>ZtW7IotGI|57F+KSQ7H>3Y|d;r$SWBl}J8K=%-%SBRm>r+w~2!r2)l zZBLMm-)DB1VwM`dy892&L}XQ4bVE+TJ7nv*iHq$_IsCxc&!dRu6^v$N8|l#Zth>Q0vqGE@$qxBTbyKXubF(P-u5nZHCvVrN3^SVR$fkxTWg_M=V)W* z8;%^PYnvyq&bkGfD!q?9a(MLTm=b*wz!bz#h}tP)fI~Q~N`%z0pE*jwe`IB_BZe-& z{=LT=6`74Q{C#!w^CDB;?#XvcPSwN5EjGZjo;-E)k0T-}PHbm~#*z1T_qbL`*W2yi*O!y{jlX~EuP1ICIY7W@klT^IC>=|OkWN=v zY?w8t-L={ziOJQ0^*u#JQQjv=B6id1qWMH>R5quqE0BpB2uX)rKTMl|m- zRjdm{s%nwm$b0kV1?+n+9X41wIV{i$&$+__m7X_ia3)ccd;*0_OPyA551krC%CRlQ zmIaTTw6opbJF|PmLpG)um+s(1|0Px$pi9dpONSE^@6z7M4h-V4ho8vd&=&G(>Op76 z2yF#d?c1J|tYr8YyKN4}LRTyM>%IGsp+t+5OjlnTDEta1J%)r}?4h@IS=TR!H|(DH zpomUe&4a$t*Y}7W^t$JJETTU#-cd(KPe!9Hw8Y;5+UL@#A+7W&OwH9n{O7#tAG~beSQ{#b>6G?R&83GFs-da$GLdma|1?LXXV9WEFVTRf$ zv%U?f@6Kj(#2K2WPr0&(S7fsrY+}iSwC;a>e_-Lw)=j>X?`(etyZHPw9+t8X7Qx%;qqAzHP9d3 zrs05(oSX|}hNr0G`pR@#_CK_CUw70wDvI{MsqBVl$(E@rWDsupKEAvUHB8Kvq6^IT z;2&vO&u(B==R98&Mx`1NZZ5b0C9E-$HeO4b?^gDZN2?cuS1C4JnR=k@!iPxCpnK?q z-A(^f!r??Bz_{)+4wU7nm;m1R>+uQiLE|uLWV#J(Cw~Jfm3Dw9=>dixCMP=Pe3G$& z=9@cngDr7~^OHiGRsTnc-1E@y#4#?tggPdHZ_-heCCH5?xad`}xFQC|d|4lUYSk8% zK7$f)m+07Enr$mOG4+qtdz?uXl~Hv);)y!SaXrx&Q>%x%QFhzTH_?ejgw%TydrY9e z=mat(OpyaP_TA0!Uo~0RxHU4#hj$<8iPr!eHDa}HLjGq+7@^!0kHD$+y>x?r8fdAB zk#uJ-VfCn*ZlV)jUczNDoN2Bw^_xK6u5oMxL>nkvwKo}IBRg_+LXm_o%U{jQR8y!v zgLDv;b?@8QwrpBV`c-xorfQkQE*lJEcZboct(n9%w#V^#E7U4_>bz8$H+8=PbVW67 z=M))-9)<7X=NU~J`3(?UUmf2=y63$4#x^!|xuS@;icSMj9SBhCR}9}!^atZP92r2^ z?Ux^y6Hr;NVP+#1gN2Y1FjED=o-Q;)(E`<40g2EA$Kc<2C3Rk zjiMNq@shaYN|tm7CrYJ}E@j|r82*I&!(z>GRy162y`#;V?S&MC`fco}_5~gFz}kw& z->4c9+Q}l>RmE@PUwb-fi!5W;*Ns{|T#Zj}p9OSk%Os5;XVu4tPEc@Tp8P8rFzDxS z59vl30;-BcGr0OF>$ps>Xa<90=mG`3sI&-*Vq9nFRTvTxl0xvxUfKCuCPR<1)ZuG$ zDC3FH#uhllCc-0!1b!+-O$56mT#5wT6CIf6pNx5x59JSlk!X%+{=IdnFph%y9h`!9 zL;S==q4Sj||J#R*vAm7U&$d-jt zC|y=Bxc9bJVW8<6U$;MV$NTdiX(Xbg9dYde@;Qr@AOf+0Zqu`{Tl+|lm>VHNXa5I9 zg2f#@4ZV_SE!u6&5M2IB*cr2yhCR_g zmX+7+Y>q!qW-+dB{#*9H|&L~o>j7|vY-ZBY3(_!b%KA?VdzIMs$B-) z8y30WH!dUSOfzv0Gu3*s-%2_{k%B#=Vmr5V6S)aySckojBfSw478PIqk6I2CNMtS_ ziA5ig?-2<0KRFu^(7+8c!+-Sw67k6g_~#;oB$UyQ2@M4DAN!w%>pv~oj?|m?k1p)+ zf^f;-*5*nG`Bx7VP%1q5{?C2+8P*mgAgs{c=V|#yb6oHLE7GzXZL&4CnzkEl>zd~E zHRsE?3N(AdF$msgII&FlY+FBXOG!Ps4w{O?uFL~JD=mqY30pr2Aje2It_*!@-;WHw zIx*?KebU5w#H(3R-b~@tkk_WaSE9{kcNiiO#jm3&mK-caZY3@08>6M^R>`C)&&hsT zHEl-^qyDGZ5y8mNg1fn|8W!|T>+KW$$l+1kMRB|P{l#!KxLS&7ny+K@9934!t0o@% zjWHx*d{H;cOnOnjZg~80$09?WP3-=$sE6yDpIb?T{jZE8#{8MEU-$ zT*vdK{ih-^_LPp9ay8rJJy!A9qAt^FC{^P+@fA6Nap{`@%VcO?*$DwU;+Z_X{;=aTkHCN>b9T#6oEOMw3w)3KRqeO5sMnr z6^kBA7t3uiUNK5BMlo=4^%2`q(UD|oR4PU4X=-C?bSk1+IJ)MrM)wNLYS=2nYUPu_ zQ|!|_!o|pS>7K@6%emYo-bu&R$FbF=)>+$y*XdL1d>d|?cgu7;p;x+joq5u6b#qs9 z!Ss&x!TH|$)$&KuCn9Joh%KmpFr5cyGK~wr4%-H$548$SoghvuN2EebS8S^>wQ;{u zys=;a;*Ag_w~*%yEF7e2k4O!|1t@0^5J!w+8368ihrL!G6gJbXr+;|W4(v0kqWfszlm}46z(yGLy$yenq+u% zkwYc=1-MRe!CG|4+K}@dj22jefZ-i%59qCc=N(isPHF|3q_;x$Qw4~mTN4gV364bm z1F%V1*_p8h0$b_!xj+}VYz55OMi)qax#?QE3Lx6avf8i;`14+fdTATt^)Z1u|FW_s z_3*N+eL^Kcz;|PWM5CORUFGk)>@@}aGbzP9^9WE?#Zb2Y)mM7-)g%bVJptlL9Ku)MFXUxxHmh1%eWrq> z+KGdkW4R9qZ?NjOOfE6SQ7B2L?8lC|x8O=LyMi}Yo~+!p!Qp1pnP7VK_zMx5jLU$0 zjLU%D%K>eKhiVQjX`hT#g10k|OGG6vNgFxI#jgcjtN7)oj5jPMl@K0p2fzSkypD`3 zs1M_FZ7Y0(+MzkZiuTn^%@^77rw5I?T0DD4(zV_b&)wVppwuuBwHAKJ9m}n}E}J|d zYwh#O7Nh^vYb2hnLL+PxbZd(&;*5z`WpsjB&N3Bgqi=s4*8vUTLrg<$Lr)<(0zg*+ zDf?8THWz7MpAE?^HkrFdYybV3=Qh2dHvdUjd%P$9SHGFEx)rqAWXsALylS)G!0b&4 zCHADkGqTWR6>0j|hB;}*;FzzM^W4UzS4NRSat^MYf7O03 zmQ`G4>6R(=eH`OR*pE4cf$vqA9~Qk4lTPvZ~JQstKM>0cp5)t(VcfS8c~# zTLd1Z@sg=)*R_;yUT0Z;5Ll(%y%5+&rMnVXW`(muSf&+@6zLWnu@o6LWtPP+SIIaS zURR-M7@nw5-n14ai*BA6n~55DOi)0=Owp*By&(6Ps8t+cJ;*4~!PBf_?iuwyo>P8i*l95S1>j)ux)Mro35WoMGz gabHdn>X_%m!4}r}-)m)WtJ>dRX3Aj^e}RDh51SHgUH||9 diff --git a/src/disco/gui/dist_stable/assets/roboto-mono-latin-400-normal-GekRknry.woff2 b/src/disco/gui/dist_stable/assets/roboto-mono-latin-400-normal-GekRknry.woff2 deleted file mode 100644 index 6008f02412b7a7b4b94f2a74966234bd1e775db2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12680 zcmV;3F?Y^)Pew8T0RR9105OOF4gdfE09tqe05L8A0RR9100000000000000000000 z0000SGzMTlQ&d4zNC1RR5eN!_n*jO(3xi4k0X7081A|HgAO(b22ZUh^2OBp>vk?(& z90-6$mK8~KcS25k@oF+fCGktz{U0c}FenA2&`rM0j& zb-FY*Wow-K<<}zPW04;Vf@-bGnmq(hC4ZpXO z3sYlICL&iWy{MzW*bKQsiE1)|e_)+W=#@{00*8K*;zMcsd)un?_cUGAFemh~!k(^i zDwT_cCXpq{=kc4CPa_RuFk)2)qjpB`5cF~?k$5Z?AuG(9vS%hive5?NrJG%zPIjt6 zoSzNT^)gMDA~`6oxBfFW+d~(P=a4Z({G?t)9iyvzbEWdI_K8P;F0Ui9oLrAf1_3L7 zmBqkkg&DyJGmL)N?WFV0{8fB)&&JO z<`g2pwlMuG^wl-Mz6c9j0FW040uV-`Nu5F}dP19Yq(Cc)gZuny2t4mbFiGu>l(m8nVHd5u-L4Hg22Ew%B2-I@?W~Flow8atbE9%-Cbr zZW4PPw9kGA9CnD=oH+B2IpQZL998eQUz~Kx&wdr}HxQVTGypmP=pBGRVDu$0cM0$% zfORqP**Lv4xaN$}!^f_Mp-JuyG3V2q{)GoyV8 z$R;#IJ0e80qjF$r_BgJY$*654FHuoJN)*I8;Q+p4*VcXx3xCj>{`BsPgZ6yci%^b;F(8j65eTR8M^iB`)|6V&LJU~ z*Apbf{X+%CN@SjA=~&{0@@QOGz_r0jCSx(>{>%(n-*nbngiNRvvpzWV4tAZ~Gv%@D z`0E%GY zj7f-4-eR+4@D+^$Gr~5RJF6*yuOv}LBXV7-8rVsg6GGjSce}RQu_&bTn6`$bRI$>7 zosmZ;j8d;$?PaXl+ruUREQWBbW2I}vT^?mM@%k|*j35K8WFUnpGmV+QtoGX?nOn{V z0WxRvX*K1y4Vam9i;hJ8dbD2?1FYNr@`9)ywwDC^rY`=P=?6 zCUIp7O>|DLG+R}UW>FdH(ooN;&XRVjs|^Jet6GK1$M9NTU(yc*B)s0AhTFnc1evfN zIo#gS9AfzpxiX~FRL!=%v;eUwx^3Qo=)|q!N4___PdST#ZaZx?V|wM^kR*Ymu<$_-fP5S6;#Il6{OtN|Ia%I07j6qUKbcqq*=#c_Ku zt0x}&6Y`Hf?m3fLO{Pf`dCDZ7JcSmpwGQjKQBkY%GLR13EM`?aEM)4OjOamdsyAHk zA&l+-Pz$YI`YrT56DL#WRcV@#X1Qyt3~Qg21QPX-(`%Kv#)@*K1ESU6H;bkE+5T*t zuz(0&CZt0#)b>twk9=$*R-YyL;)Z+IqhHa#5h6|J5J0Bl(9>ySxC1A$0fx(pES-RE zET|ilDi)Nd%RcX5+hqyN=EZ1(%5@_^YCP9@%p8{}P`ggHUvas6Poe>JD*yqKL~~tU z@Ns|-$aBBe>>3w4Dc@(5BxnDeWE9WJ)K#)`a7h)Ss*GMde&ECN&>8PAsS+%<@3RB| zOfTgrL0VavIbMifYR3oZxE<<`hAsx8Dq1W8EB8ct95CC}i;26Hc!$aFTaM>Vi6@t- z&57r%l;|5*DN1mBO~oM})Q+AFO+k#~I*2wj9Pp%JVQOhoPJ#+kCsrrg27?{;)g!Bi zy&10TH&LleEXZC2;ut-9o9w@PjQ|lkS8Mm!4kKgl{uSX$7c{RA1e9Z~^~q=k-{=nx zK`Hs*WG~h`_;joFzu%(-+b2@A@2tODGOE5o?zT@Nt_~uVijoJ`)<@IYNOzvW2xiWz z2t?@WK4N%Fk|97^(LjT-hLmH+7dyAnN1u{bd2NXzt0pP7aYQ8cHGI<-v|roGCB4)U!*Uw(#K6$W6gq2{RJr~g@Yu);g%E(?V#>?{v*D-M zvkvB>L|&)oBXmG$%sEj2vWlicYoZpV%EM6wn@B)g2dt43kntP|13MEz!9Nn7T?J9Z zBs$W^Rt4v#GHy9bC)vPMoB~K2Y%*pZ-mn_o1BZr8I5mN9DHQ${3)^a$wNXIy zs+SB8g0a-6N|7l&b(qTjsgGjeh^@{9sz<8n+-@wOt!d|yJn`tAacz~v7I947#l#u} zcvSIbmVslF)=j~=Zr}_vQhhhJO2RW$K6A??FFa^URQGl$3`Zlb512-UqlEMU2G($5 zI1J>ql!JgHaP3K~@PloGlJH_5zG}GIenW!8)~Iv9A+#tj7(CphHdg{8w^Q|iF;yXr z`md}4dj^BC+XD~Vp)olqM;ScW0$f#fm2eZUMbRK7D&$B7T$K5S#`+L0W=tH5l|$xc zm%1BEBOI!xG7l(r4xQMX_?C0^k;^I)7->xw@A~2DjHMjtT+(Lrm5K;a09F>U(ESjo zGakIbeWji(8?8kFP>NYie;YI+^DSsa&EN&QL`OTfI9%Gj27VQxT#hr1ABV4ww{80| zS*~wBr2y}AFCEZh#4U-YTqr?7OhcL!7{>1@OFtJ>*63OHhDw{m1L=Ftkc4xJ)tTEm zNPQ@6)O9TaK@|D>%|wZSY*9$}I$lyGH~M7?Lz-VrfW(7~3<txm>aD##d1Bu@#ku0K-PT0&)(9$d$?yup7Zk zETa>s^-~)f9$LOaa4A@Y`e8VElWCFw320KT?~#k#(>{k%F{tZOxeMyo3g&nDV7R^Y zN1S3g&C}y2#_^(lqtK||aG+m(!)yM6ddLl}u4Ke3x#3>jOJLG-P?U5cOBWG@P zN2slvfmOAv7Lb;&k5*@tS$DvQ?miX+(EkrO{33tK)CMJ1RBGcgDpPr>M!W%Y8~$d3 zoJF@>^4rT^Tf0;0W-dF#{QDPlA#NBl{rewgU;utzxe84C?%S!#%s|>`Rurg^E3IUa zDq%qY$`?3KE;I%41T=edyRr1$(1NGR3uY+_OB^TPCTr$x1###>c<7H9q-42f@q~9y zh_leMzQlmQw`~s6jS7huL!-$faPoOMX-=n4S2BRMdR?%~h4E;gMi!g6up2~040NLp z2HTV?G!DsgI|^Wfn3Xk*w?J*oq>-sDP~~*UB&%ANZEi8|7h1ihBIR40IXNye($@); z6IPH4%Y%NA_={QFV|mYm&p8sIf}!mK$uKkI_uPCYyYKcO(cp^dmY_3f+UqZr_Fkh2 z{-p;xX)O^U&!U}vEG@^aBY#Kir;iGLdwk*S5!!i@1kC1UU3Ny0aGvO&w?pZ`&S4hB zE+96}^dgL!Yc};{{K(@t(hkkpRuk4%v2tu9$8JngYi&Q?_nbSeQgkN3FP$>DkqmaA zR(Flgm~f><<2hD8%2m+V22u$)E~ouU)}hU{?(er)6i+d&#cTvsj)h32Pu126yn*GA zlT#&hF_^svH*(Q;&)A~Mi~8Q9vU5+Qxt8hCiLQ2QOuSV~AqBx8or;N%^}-^snvhIJ z9)}Ji3nW|l;}S)3_TQ_$dG0{OEX!_={ocq`{}GK8fceB3yItRQQ+fgDg55_Rjunts zb=WUG0k>|TwIrvCtcqP;Z$~7cmE4n?eJvMBS)jbiaanof0G~`WdQlaNmn1-M0(Xm# zOh;8ZM3e{LlYz&4_Lo@_gW(ngH4&3Uv-3cg@7v9fQ(W6h&M8&i?smBTrQ<2lJ478e z>I*)vKM%LInsnmu=_&=vS8`meu)pUbr&UJ;qY__?MhXvnE*Ys}*4K*^P2xS{GhNVg+BroqX$y~ncRSdvI%9>cDm@K`?#072@21EgM!9KR{b zy2{0e{GORM`WsE=>cx>`Cu)z@f}NK$zzmg3;zlVp0wV`g7H(_g6)zAMPD-t|Rz6_XyJDlRbu5P;y) z0kbV9tXwQ9#7TIDPys(e_u{!@CFLB&vGVzIf{sth3FS%(2~ufTg)PVIkSCqKcXygw zlD>x6Ih0c`2^Ug%m@1-MB%*9k~)+W zDGHj_76AihHb{b1uUMLb{nn322Fk+&eSA>m_lko|EB6ryJQ@J61aRH!NicSNeiE_` ztpI%>=Kc7H_Uim-4X`pbjr?p0m~HJNS?^DdHUTTs;dUT6cGLoTa~KN|YI)eAqC}en z4#*2P)=&+eo-Wna)0Bl(U%o`1U5+;E%U@SoFFG+1Y@>4%46{LW1tRQ5$j15@8$~0T4s+<8&Ss%QD9SxzF^;A5%(~k(jOI`S828U|MGW?*G%9RZ$wrf0y)v`^q9{rq2{%M}-=Y{5QY zWqSVO28eaPFCfLDl4IwA*hR2`&~52gTE~fuFeTB;Bv!r ztE!4HZ-MafKnqZKZ}pb>$P$;f^sc96X39j%8s$=-Bj~*)0!!;=pJ_=;dt26J4dU9q zgnwvS{NKgi#LJ9#!2_4utnC-wdKHl;6y@Rte3?lkBILb#<+zB_MybJ9FQ>yrLL;6p z$i)dSjO#CN*)IY;N`K`^2U3aIAYrkvHKNkE&0I2%yq9c*Oam*^p~OM_2QDZ_wYB5& zh1`gowzVZe7XhQSJSIxLx-;L0!mkY4x0jl4%R6F`88^tGNjSd=@-@2%d;&j0y+*G~ zSjQo9DdWNfFQ?MrzrQinP7J)Ju_VWz%+1FpC*yLPeu5a3<2)LVHXEC*o+NRJTw>z7 ztgOUU93ne%R2b*Qt_=D9qmd580=H4x=m}uuwoi^TfNy2m3!-jA*yvhjd=W(?DyA~! zm|DOFyxS&#x($qiJxmUhyGvG>zbh`58_N;x&IRt{e)~;7djv6|Vh^E*CF>XP-%k!f z4!edOJRFZWKuxpO>;6cea&Z51++o2V)2Y_${xX4J_Zl+e*7i%g@7>`FID(s|d)qJF z25DENx3Bmmt+5E$X%V1*&%O-!!?@~Ykj{;xzu}VGAU!8XK+SO%KljCyFX^1+UBe^c z8OBj+aU-L`eh%q${kqzh8lB~D?|_m=s!mrN2xEt_!-XBGd{VXDf2$(ZXj z18Xp4TMw(reoz@GWaj(N{i0svBc*w?9ZH819MXUNNLDSmCWGM#3a`(f9o=s&aQysC z;YA1+xgQ^-YdlUnYC(OgrkWp230Nfx6$Y%NQmXlCnih>fVAWtYk<+t&%UFzd$w5tw zgehg7ED9}Vo?uF1qz5%i)FX`J$HZ+wH0u~1CyUF1gH>o~HS;&BgenI71P8qrw?^O6@lFpbSW!7y)GHW`HT|QC1uJ>V$tNlF0k5t^m-Fn zS*{^+h7<>$=@*;5oyzTor9oKIgI@ zE`vsEz~P!`v@G!MpU!{&{Abbr6OZ(U#jQK%fHjy~1RM{5@$#b`zVCsR7PycY+Zm?J z?6A`dodN^Szj^xv8DHa1aL2Kc=o3b?5Ctl#z z@ZG{>ppaz?X3Vz8kZWR%UsQCO@AubmgLv9JTTB|ZuvitLdRUJ9@o`0kd zDv&)CN*P;Di1+-sd+$QKK+pFl#O`77Wh?;&**!iO2F3#!OUfgsyX*fJEw(TNtJ_mH zg`zJr138|I{LKS^p@UH*D#Ve8i9H@)w!p&(u=f{5i&I|8rhJ?20aQ}_qC>fy6nmRq z6JzdxDIBsZ& zT_fhvjB3>g#o!@x(!)<)sX)MQUHdu3JDQ#b|My=M7iAX3)HgP6ipt5{5LsW(tmN{d zb8=LJw{KNShq=9uwA03BB}r8{ob#u2v< z1Xr#L*WEz)3BcBF@Aui^yJMn%ty2zTYwd2INx#YI-L*S+`)q)2XxzOO6i@i~USA6v zLEa4AnB?mkvscwEV7X6HMjjYoWQHJu?R7uP{y)t^WP) z0tc|VAA1GSUOv=_HF&QW8323>oN6`edbA`)G80!`CSilQy1Fq#j5tO*D=jPEC0qDt z@xNL>&iW9&KjvaL^kQiVlZ0J1&!Upav+fk%noGA}$;%H*lb#!cv$t#}`&7Wm$&Y0sPODO2V5J^lH*3AN$ zMG1!{j*O~GSi-xm9l*;F*}qg!32!M6*YgFKoXAKcg2l>35eS$}x>+mkyK-fMtkqA@ zu3r<3UtLfAyIbZXK&HPpx&TDNYTq&IGj-L{>*HffHIPDi+CkxdT?MM`Cu8omr! z=M!ecb8FT&yDTx;<-`wMIzAGaT0JeMv74#8^Gl=mHaBe&7!|eX32eJ!-=BcovD;<% zlUk)}Xi#Mz&=j&Rv*YQa$<*?)2|0~NGinv+SrA3Sz4OLAMiWG`8PLvp!=Lo0Pa&# zHfR0XwIk$=%wck68*6Q5f2%d$f9ox z(}cA@YIA>(oBA_ZSbZeNh+?vHQIU}tJ&TDklA?^kEM{&nkB>D5=F(8 zIwRBQbY#Zcw;Cjck{Sfw1*L=PE$-Xg_x-0ADr(wA$&%G;V)UOtgP<SCyNG-ue>l0AmIX5yt~Od&rbkTkrJZx!ggZPvm?c|K|JmFJ4f*?DDDsxKlAeJT+D)MSkp)A<21q!jyaUsmpuc*W) z3=Rk0h?uu>&&!#};~`_e<)9+I&mHxEK?68^Xn1Eyg`sP747gg>)QBVM&&)SPCMX&s z=MUrS#WfOq{rs7YQ4~CUHllv>k(v;wurQVDkHg8X1!*v0NKI%}Qq$Wp9MAJlEr1F^ z(yr`mP}ZD&;{K^pynz#2=_VA^xE7yMvXre&E(k#l@#Ew4PB6gKw%NL{1EnCjYo~V@3XV za!x=bMizqAdNU{)zSxjp3BJqq&fM2;{_xj-pSkGniT1Pq3vPd9vitufc6z`F-0%Z< z$aUo)A7y3wrCv(`+JBusABP+VG~f}P;TG<9_jla#|1<^lyD%m-Vve^dwWudZ{qG;i zp(}bf)svJFN+>j1@&2Pe9hK}x6xW0<8wf8I?6EIEaMOX=NQ?d z6ky7QqM|SnLE*VzK~T8;bnC_fzq5Toc^)VXJS-sY+}R`~naKehR#>p>*&F{dMk>BZ z1OY4SM$YCqIs2nWX>@ls3Tz)3SeP=Ha<^-6^NkJ%fo=nj%pr5=Ct6OnFiuc7WX=Yz zPSEan-MWpg3A%mTzq{b)0{_m_r!_%zAJ^8+Ef9cf`lTRz^6=qiP7*1_TO4ov{4|Q0 zuJxr8WX^Z*9*0mGzflVcHlqA5yP@t4HdzXT*{AoXqc`R+Ud&1gQ+Ro0<=H$V$))Lj z)Wl}a&iU|3GyWHzYbDleCN%UMw*8_s+LDd>CEQk_j5}ZVV2@AO5iHiFav2*PwD7x= zJXGasiOgaY2gn7l0|4oo_2tE4!?X6s-C_llHu^w~UG;i}SZ_CQKXnJJWceU3rC^Vk z&E;^#hpTc$yEz;-XP>lK)Qr?V*VP8fI(>Q*W6xKMJx@7FD;Z@?A&X-rA+6=wGMb=q zlM1@fW+6M)wd}hjMpbAN?*(8`lNnf<%yekYzSx&H*c&r5*&A=Z*cV#^9fZbLh6{u! zJ%xJ?O2}wf! z?a&ISBCrR8DPhMEm0q9r?D4mTKfC-i9u^@lVUaO`-9X0z8y0ObAYQGg^Oq7av44G| z{PoS96U@iudU-2^u5RIR5g3I=!}Ezi@}2(tPwEr0fyMJ)QKzvFiE9eEb&J@j;)EN# zyc7aAw{Qubh>5GK3ocZssZDlvtyr0=CpKEfm@Q`k+U{B^M$L@PgL9$`zS{E0(qwZ5 zXFSK)O_kdm?K`Hn?T&VJp{&%TQaXslK3Qf!oOdw=9s!pVqx=$&T+BkTqtkI;ULwkQ zhd^btY4v<9O>B3!?{0$KQs$+{#O2AU^yNwXK3RsJ#IuOz;t~)Cn(hOwkA&3v{(U=N z;c(ylINP;XA0dno5oWSOvk9{^S!iH$fq$A`iXGZG&QA1d=Z8YC=JOTNgKQg1UQpr3 z4=I=^g4)N|5tG82(@?vJ+ySaqyCr(Z1a~~w)^coco6RGHO~RI~qV2K)YtaArL|EQd z`@~RSZ5DPc?wIVTi`{zRDkmP7Y=Kj8ETix}gkNI|gs`mMQJt~K~BI(-+OFsn9YJ-|+X!+gV|p1@$! z=yWy#KT4;~fbT=*;F$XQ1$SR*b@_RbP2x2AYOQvZXiOg_bdB;lK$4jhBE@>9z#^EL z@Yjd^5=caJ>aRD25;y;7?uUsp;DLdGz5&3jj2!$n2*j1E2bcqQ_Qc9!udOK? zZ3fw^0K9KqNq-~IwbfOC;`zpD1p%kV*Y59A-P6ITJ_47 z%d$T6Kxr4`i}?)QspSHJbp18w1>(!`59Gw#_k{nCE(|Ktn<#v;pj7LNDQ`*0NRQ`@ zdS`g1``&7FYV&{Olj)n6G=pQmV)MRW>U>LdWIlzj-;FLr7lr>1$Zi7rA^b;Feo(P) z7gb2+m+5>l<@SO&i%_<5#;?RZ4smC>Q?1uUSSnP@-yFm)Q|U%A<-Vm_ih#`5o6tq* z!tnn=l=0i%F?{@wzZfu$amml9YNE$;QPlVDNFzA9W5 zzI5N>DW<~`B|DiVf_PNsSac;E#dAX^lv8U~v~;cM1S?v5Clhd+!#Q|TDVt=AW5tQj^h&MR6K6! zyH(t<<}!B35WsgRCSyJ7%UhK!z(hm3yD&@LG3{L-aLfK~NH?Ub8@<#Wgc}x4nkV}Y z^`A7K95@7GPplr`4S?_@&G5u<>tO5X#Awl=#TNBs#6Iz&dTD|zVaJQ)PI0^_z8Ik# z2-cl# zbBYY9Uki4hqDC%RE7!OF=(0C^Ov^q1*6!NL*zpcqFy4UvjN68>#sQ}q(@=LDs@Qn- zPDEjgQ&Vy}(g=m+gmXBCaF`WS=!P}dn&D!NQ=yd|a`^4f&+Jh__Me{r0k0EYK6~Ep z^QW8V|BN?c=W_H66dGbMm;ng3Gvmr-@$g&rAe2w&7Cd{9&FA^2S1njn^}CzLh0=Ge&@p-dz_p0nt9qDUf^sLlhmuf`;) zQ09;crOeq%*>N@W6KVm5uCBJ``^h@`iJ#U38C9|ZJc{zr#@er?YXdk?ft;pm%PP6D zq$q1XUviiVjrjAw!{vZ^EpSzucX?0u!@IBCJ8k8v6{Nghm2Jv(zoq{MVC#=juo;1F z8NsBev|u;a;7l?(ILqBF4I4$uz`CKZSxZQMY*)w!U*9XP5QLvE9=Kli^?eU#VI6kO3=D_m3ZgV&fz-d)(|H?_xWYjHn$2AmjD4E6L(Uspcn>t3!tr`*)DP}^mt z|7r^>X1DTEP?KZB%Ia5EMT!#Jaew|rY*S%fWKYBC863K0g6vgfaK$W{nT~$=5Uz=G zpRjnxlzScI&Qu|$*$P+t1<$ciVVaZ;4+~@jL9qdzJ==FQKCRAZNApaBYk{~5x}cx+ znWbTCj%3w0p0AJ@6!}?jt4)@J48YCcWL(Z&hY;C@VE=D}S7&K%+`Ji3zBP^{A&Dcd zST0}CD|ydV#VSVCI&GgMNmN zUg6VIHVHt)nayG^z3@VU9Us@iv;Kyu{#xy!@y{P`@kU+f)k z=B{8d!N!+67*%X5S9s1}G{6&*gZLUrh&OKtDYcO&cmdcPurj$WIw1V}HG9gK%bx!G z?*oEG8t{DU&J)j^cuu^ZpG~`eaA*dS6Hhx_G2VjI!V9R2O*2LB`^uzII$fe0o>xLD zZV0R8cDP`?xha~nD9;_@JHOdiz^P1djVO-V)D%_+rj!HVwLURLsZoCheMO*8{aKlk zsIiJ0fGC@v4Llnhxcj271~RRn@~HyqJSZ&zrIaJHF=&G6gc{Jd00`Qaf^FM3`4ei^ zm~*#&M{WL_{drz7ZHLPl8g6FHKajfZOy>rN|0By>HZAPVo9*eMq&FNah)EV?bH0*5 z!$bmd4jZRfoR%Ica63LaXbVTlCT-J4Y%^D0o`7TposUjTDrU*K2D~_6Z!FHK1=L|+ z>kIzYi*wE{k@Sycxltaq92V!dYN}e8wkL8s#p_Pyc+j7^To8usa$dFnpNL^&`SK%# zJUgFcg6^IE&shtISC7uvJ@{e=(CFU}+I2eEfyk%dzPu^__}XW1eScs71`xIFO0K`B z?fLskXfWIV(Oa&6C|-)5nGHz9<#{fovBQ0j&_h#FrOZH_3^lVWKnY^@2lkxq0j{6Y zuYXX()rxoF%a_=D8zKxLIy5Qu4Gk6hnkV3*urRoI$}IK|4VC&&&LPD5P;al-ce9|d z_0*r(~IVi)`iR*DA$Lq zqJ<6flJZUg&t!%fSlu>XYp)2Bkkp=(mibWIsvV3u`1H3#M_mAikl=gjD!e)83Gnd) zAd=^sQupjh1%bJqt!dTfG!Wu(Ybg-!tx_ttVF(22jih`Jj&(uc!TkJPFql*Xqe1}X zF}%KQRojv_h?>0R*s;dQ_?S{Rmg|Od)h?{+qXGe+&r{#4wb;94@2b7^d#zejcX&L3 z@Pw#_RqNd3Iz%XOiB>d6ogAZ#XIcRaCJ`NV;qloGx^m&!f2Ro*o7V=P9NvELfQ1j~ z2imI#b_NJSbJ#4cKaFj~pge+d*|kwfnaA&!vssaKuCAWynu&5pdJwU_N|vI1zUF{M}=77CqRIzl7d zvD@-UKVl!}9XrzyByGojPO)=(k9DDAEECD#06??0!!F^h*+$Nqwc@PV9?f2#6>;{g z#A08XE_3#5y5>xXE!JF&)vb(T;f~!_NBNXK?f_u~QpULm1F?vM)olqGT-~;X0uaCf zARL6mYd-oyMW{7D)U|>Zu5RtTLE3j)g{cbwT*1COVX z?tQV-bMXJmLWhL4zG_kKhOgzF!Q6M>U#9_EdaSnGpiVQ+xWeR&Of%~3(iswF zb=yaepcLPjH7-)gB6C=ma=Z0Kn_|S1pIit+fPoN30Z(GWE|WG}r$V5-c&_&xbvE>R zYe+hl9saKkY;>EHB3}FX{?a+kOCp>iw!@8LYf63M3Do(urPicj`&HRx${t62^&-Lu z&;0a5fks{wFovlJo5mF{5GW@TiyYWC?U;dB5x7JOtv({t@T4Bgxihd$0=EzGhsGvt z;J8&$mewXcj4X&6crOZls8*+CD(Bp0<&5@G9SirF|C3H$j zRJXkrD`22u>>*FS>Z-f#yj&HA2>hN<&Zy*)no`wUkSJA3!Mm|adFBx&S zVvHy??_k!S)&VJcQB&*Qo}l@W;{ z5ScI$;Mg{{hj+&U#GS9CW0UO^~o&v?*HT3Wd`2nd?CX~DsFh*Xf z^39d@wUSv=2n*b4HidG~&Ny7vC!t{k!wL~9OgJ382p|76BZ@*oMnOeG#}F+B6Q6*P zh?snBG!`PVvc z9fANCXe&1?^K3PGX|+{4wOc4A=?TlMz@hWIU+L{)Fe8W2Z%#Yom9x${?}A(xU6SXD zHD+CPO}^{?RG>()LZwQSDOagVg=&k`sG!x=N_tAu>kpQzJhoAX}%^*D3d{Ra`Z6)(}->8@i$ zuyyrgan4A~{P(gVo0_+RFOL#u99`!Q{pcI)n}hsummary.wfs_enabled = 0; gui->summary.wfs_bank_hash[ 0UL ] = '\0'; - if( FD_UNLIKELY( is_full_client ) ) { + { fd_cstr_ncpy( gui->summary.wfs_bank_hash, wfs_expected_bank_hash_cstr, sizeof(gui->summary.wfs_bank_hash) ); gui->summary.wfs_enabled = !!strcmp( wfs_expected_bank_hash_cstr, "" ); @@ -148,13 +148,6 @@ fd_gui_new( void * shmem, fd_memset( &gui->summary.boot_progress, 0, sizeof(gui->summary.boot_progress) ); gui->summary.boot_progress.phase = FD_GUI_BOOT_PROGRESS_TYPE_RUNNING; } - } else { - gui->summary.startup_progress.phase = FD_GUI_START_PROGRESS_TYPE_INITIALIZING; - gui->summary.startup_progress.startup_got_full_snapshot = 0; - gui->summary.startup_progress.startup_full_snapshot_slot = 0; - gui->summary.startup_progress.startup_incremental_snapshot_slot = 0; - gui->summary.startup_progress.startup_waiting_for_supermajority_slot = ULONG_MAX; - gui->summary.startup_progress.startup_ledger_max_slot = ULONG_MAX; } gui->summary.identity_account_balance = 0UL; @@ -369,7 +362,7 @@ fd_gui_ws_open( fd_gui_t * gui, ulong ws_conn_id, long now ) { void (* printers[] )( fd_gui_t * gui ) = { - gui->summary.is_full_client ? fd_gui_printf_boot_progress : fd_gui_printf_startup_progress, + fd_gui_printf_boot_progress, fd_gui_printf_version, fd_gui_printf_cluster, fd_gui_printf_commit_hash, @@ -408,7 +401,7 @@ fd_gui_ws_open( fd_gui_t * gui, FD_TEST( !fd_http_server_ws_send( gui->http, ws_conn_id ) ); } - if( FD_LIKELY( gui->summary.is_full_client ) ) { + { fd_gui_printf_live_program_cache( gui ); FD_TEST( !fd_http_server_ws_send( gui->http, ws_conn_id ) ); @@ -552,7 +545,7 @@ fd_gui_network_stats_snap( fd_gui_t * gui, ulong quic_tile_cnt = fd_topo_tile_name_cnt( topo, "quic" ); cur->in.gossip = fd_gui_metrics_gossip_total_ingress_bytes( topo, gossvf_tile_cnt ); - cur->out.gossip = fd_gui_metrics_gosip_total_egress_bytes( topo, gossip_tile_cnt ); + cur->out.gossip = fd_gui_metrics_gossip_total_egress_bytes( topo, gossip_tile_cnt ); cur->in.turbine = fd_gui_metrics_sum_tiles_counter( topo, "shred", shred_tile_cnt, MIDX( COUNTER, SHRED, SHRED_TURBINE_RX_BYTES ) ); cur->out.turbine = 0UL; @@ -1101,17 +1094,13 @@ fd_gui_txn_waterfall_snap( fd_gui_t * gui, bundle_txns_received = bundle_metrics[ MIDX( COUNTER, BUNDLE, TXN_RX ) ]; } - if( FD_UNLIKELY( gui->summary.is_full_client ) ) { + { cur->in.gossip = 0UL; for( ulong i=0UL; isummary.verify_tile_cnt; i++ ) { fd_topo_tile_t const * verify = &topo->tiles[ fd_topo_find_tile( topo, "verify", i ) ]; volatile ulong const * verify_metrics = fd_metrics_tile( verify->metrics ); cur->in.gossip += verify_metrics[ MIDX( COUNTER, VERIFY, VOTE_GOSSIP_RX ) ]; } - } else if( dedup_tile_idx!=ULONG_MAX ) { - fd_topo_tile_t const * dedup = &topo->tiles[ dedup_tile_idx ]; - volatile ulong const * dedup_metrics = fd_metrics_tile( dedup->metrics ); - cur->in.gossip = dedup_metrics[ MIDX( COUNTER, DEDUP, VOTE_GOSSIP_RX ) ]; } cur->in.quic = cur->out.tpu_quic_invalid + @@ -1483,7 +1472,7 @@ fd_gui_poll( fd_gui_t * gui, long now ) { fd_gui_printf_live_tile_stats( gui, gui->summary.tile_stats_reference, gui->summary.tile_stats_current ); fd_http_server_ws_broadcast( gui->http ); - if( FD_LIKELY( gui->summary.is_full_client ) ) { + { fd_gui_progcache_sample( gui ); fd_gui_printf_live_program_cache( gui ); fd_http_server_ws_broadcast( gui->http ); @@ -1495,7 +1484,7 @@ fd_gui_poll( fd_gui_t * gui, long now ) { gui->summary.accounts_stats_have_reference = 1; } - if( FD_UNLIKELY( gui->summary.is_full_client && gui->summary.boot_progress.phase!=FD_GUI_BOOT_PROGRESS_TYPE_RUNNING ) ) { + if( FD_UNLIKELY( gui->summary.boot_progress.phase!=FD_GUI_BOOT_PROGRESS_TYPE_RUNNING ) ) { fd_gui_run_boot_progress( gui, now ); if( FD_UNLIKELY( memcmp( &gui->summary.boot_progress, &gui->summary.prev_boot_progress, sizeof(fd_gui_boot_progress_t) ) ) ) { gui->summary.prev_boot_progress = gui->summary.boot_progress; @@ -1523,7 +1512,7 @@ fd_gui_poll( fd_gui_t * gui, long now ) { } if( FD_LIKELY( now>gui->next_sample_50millis ) ) { - if( FD_LIKELY( gui->summary.is_full_client && gui->shreds.staged_next_broadcastshreds.staged_tail ) ) { + if( FD_LIKELY( gui->shreds.staged_next_broadcastshreds.staged_tail ) ) { fd_gui_printf_shred_updates( gui ); fd_http_server_ws_broadcast( gui->http ); gui->shreds.staged_next_broadcast = gui->shreds.staged_tail; @@ -1572,308 +1561,6 @@ fd_gui_poll( fd_gui_t * gui, long now ) { return 0; } -static void -fd_gui_handle_gossip_update( fd_gui_t * gui, - uchar const * msg ) { - /* `gui->gossip.peer_cnt` is guaranteed to be in [0, FD_GUI_MAX_PEER_CNT], because - `peer_cnt` is FD_TEST-ed to be less than or equal FD_GUI_MAX_PEER_CNT. - For every new peer that is added an existing peer will be removed or was still free. - And adding a new peer is done at most `peer_cnt` times. */ - ulong peer_cnt = FD_LOAD( ulong, msg ); - - FD_TEST( peer_cnt<=FD_GUI_MAX_PEER_CNT ); - - ulong added_cnt = 0UL; - ulong added[ FD_GUI_MAX_PEER_CNT ] = {0}; - - ulong update_cnt = 0UL; - ulong updated[ FD_GUI_MAX_PEER_CNT ] = {0}; - - ulong removed_cnt = 0UL; - fd_pubkey_t removed[ FD_GUI_MAX_PEER_CNT ] = {0}; - - uchar const * data = msg + sizeof(ulong); - for( ulong i=0UL; igossip.peer_cnt; i++ ) { - int found = 0; - for( ulong j=0UL; jgossip.peers[ i ].pubkey, data+j*(58UL+12UL*6UL), 32UL ) ) ) { - found = 1; - break; - } - } - - if( FD_UNLIKELY( !found ) ) { - fd_memcpy( removed[ removed_cnt++ ].uc, gui->gossip.peers[ i ].pubkey->uc, 32UL ); - if( FD_LIKELY( i+1UL!=gui->gossip.peer_cnt ) ) { - gui->gossip.peers[ i ] = gui->gossip.peers[ gui->gossip.peer_cnt-1UL ]; - i--; - } - gui->gossip.peer_cnt--; - } - } - - ulong before_peer_cnt = gui->gossip.peer_cnt; - for( ulong i=0UL; igossip.peer_cnt; j++ ) { - if( FD_UNLIKELY( !memcmp( gui->gossip.peers[ j ].pubkey, data+i*(58UL+12UL*6UL), 32UL ) ) ) { - found_idx = j; - found = 1; - break; - } - } - - if( FD_UNLIKELY( !found ) ) { - fd_memcpy( gui->gossip.peers[ gui->gossip.peer_cnt ].pubkey->uc, data+i*(58UL+12UL*6UL), 32UL ); - gui->gossip.peers[ gui->gossip.peer_cnt ].wallclock = FD_LOAD( ulong, data+i*(58UL+12UL*6UL)+32UL ); - gui->gossip.peers[ gui->gossip.peer_cnt ].shred_version = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+40UL ); - gui->gossip.peers[ gui->gossip.peer_cnt ].has_version = FD_LOAD( uchar, data+i*(58UL+12UL*6UL)+42UL ); - if( FD_LIKELY( gui->gossip.peers[ gui->gossip.peer_cnt ].has_version ) ) { - gui->gossip.peers[ gui->gossip.peer_cnt ].version.major = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+43UL ); - gui->gossip.peers[ gui->gossip.peer_cnt ].version.minor = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+45UL ); - gui->gossip.peers[ gui->gossip.peer_cnt ].version.patch = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+47UL ); - gui->gossip.peers[ gui->gossip.peer_cnt ].version.has_commit = FD_LOAD( uchar, data+i*(58UL+12UL*6UL)+49UL ); - if( FD_LIKELY( gui->gossip.peers[ gui->gossip.peer_cnt ].version.has_commit ) ) { - gui->gossip.peers[ gui->gossip.peer_cnt ].version.commit = FD_LOAD( uint, data+i*(58UL+12UL*6UL)+50UL ); - } - gui->gossip.peers[ gui->gossip.peer_cnt ].version.feature_set = FD_LOAD( uint, data+i*(58UL+12UL*6UL)+54UL ); - } - - for( ulong j=0UL; j<12UL; j++ ) { - gui->gossip.peers[ gui->gossip.peer_cnt ].sockets[ j ].ipv4 = FD_LOAD( uint, data+i*(58UL+12UL*6UL)+58UL+j*6UL ); - gui->gossip.peers[ gui->gossip.peer_cnt ].sockets[ j ].port = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+58UL+j*6UL+4UL ); - } - - gui->gossip.peer_cnt++; - } else { - int peer_updated = gui->gossip.peers[ found_idx ].shred_version!=FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+40UL ) || - // gui->gossip.peers[ found_idx ].wallclock!=FD_LOAD( ulong, data+i*(58UL+12UL*6UL)+32UL ) || - gui->gossip.peers[ found_idx ].has_version!=FD_LOAD( uchar, data+i*(58UL+12UL*6UL)+42UL ); - - if( FD_LIKELY( !peer_updated && gui->gossip.peers[ found_idx ].has_version ) ) { - peer_updated = gui->gossip.peers[ found_idx ].version.major!=FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+43UL ) || - gui->gossip.peers[ found_idx ].version.minor!=FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+45UL ) || - gui->gossip.peers[ found_idx ].version.patch!=FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+47UL ) || - gui->gossip.peers[ found_idx ].version.has_commit!=FD_LOAD( uchar, data+i*(58UL+12UL*6UL)+49UL ) || - (gui->gossip.peers[ found_idx ].version.has_commit && gui->gossip.peers[ found_idx ].version.commit!=FD_LOAD( uint, data+i*(58UL+12UL*6UL)+50UL )) || - gui->gossip.peers[ found_idx ].version.feature_set!=FD_LOAD( uint, data+i*(58UL+12UL*6UL)+54UL ); - } - - if( FD_LIKELY( !peer_updated ) ) { - for( ulong j=0UL; j<12UL; j++ ) { - peer_updated = gui->gossip.peers[ found_idx ].sockets[ j ].ipv4!=FD_LOAD( uint, data+i*(58UL+12UL*6UL)+58UL+j*6UL ) || - gui->gossip.peers[ found_idx ].sockets[ j ].port!=FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+58UL+j*6UL+4UL ); - if( FD_LIKELY( peer_updated ) ) break; - } - } - - if( FD_UNLIKELY( peer_updated ) ) { - updated[ update_cnt++ ] = found_idx; - gui->gossip.peers[ found_idx ].shred_version = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+40UL ); - gui->gossip.peers[ found_idx ].wallclock = FD_LOAD( ulong, data+i*(58UL+12UL*6UL)+32UL ); - gui->gossip.peers[ found_idx ].has_version = FD_LOAD( uchar, data+i*(58UL+12UL*6UL)+42UL ); - if( FD_LIKELY( gui->gossip.peers[ found_idx ].has_version ) ) { - gui->gossip.peers[ found_idx ].version.major = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+43UL ); - gui->gossip.peers[ found_idx ].version.minor = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+45UL ); - gui->gossip.peers[ found_idx ].version.patch = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+47UL ); - gui->gossip.peers[ found_idx ].version.has_commit = FD_LOAD( uchar, data+i*(58UL+12UL*6UL)+49UL ); - if( FD_LIKELY( gui->gossip.peers[ found_idx ].version.has_commit ) ) { - gui->gossip.peers[ found_idx ].version.commit = FD_LOAD( uint, data+i*(58UL+12UL*6UL)+50UL ); - } - gui->gossip.peers[ found_idx ].version.feature_set = FD_LOAD( uint, data+i*(58UL+12UL*6UL)+54UL ); - } - - for( ulong j=0UL; j<12UL; j++ ) { - gui->gossip.peers[ found_idx ].sockets[ j ].ipv4 = FD_LOAD( uint, data+i*(58UL+12UL*6UL)+58UL+j*6UL ); - gui->gossip.peers[ found_idx ].sockets[ j ].port = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+58UL+j*6UL+4UL ); - } - } - } - } - - added_cnt = gui->gossip.peer_cnt - before_peer_cnt; - for( ulong i=before_peer_cnt; igossip.peer_cnt; i++ ) added[ i-before_peer_cnt ] = i; - - fd_gui_printf_peers_gossip_update( gui, updated, update_cnt, removed, removed_cnt, added, added_cnt ); - fd_http_server_ws_broadcast( gui->http ); -} - -static void -fd_gui_handle_vote_account_update( fd_gui_t * gui, - uchar const * msg ) { - /* See fd_gui_handle_gossip_update for why `gui->vote_account.vote_account_cnt` - is guaranteed to be in [0, FD_GUI_MAX_PEER_CNT]. */ - ulong peer_cnt = FD_LOAD( ulong, msg ); - - FD_TEST( peer_cnt<=FD_GUI_MAX_PEER_CNT ); - - ulong added_cnt = 0UL; - ulong added[ FD_GUI_MAX_PEER_CNT ] = {0}; - - ulong update_cnt = 0UL; - ulong updated[ FD_GUI_MAX_PEER_CNT ] = {0}; - - ulong removed_cnt = 0UL; - fd_pubkey_t removed[ FD_GUI_MAX_PEER_CNT ] = {0}; - - uchar const * data = msg + sizeof(ulong); - for( ulong i=0UL; ivote_account.vote_account_cnt; i++ ) { - int found = 0; - for( ulong j=0UL; jvote_account.vote_accounts[ i ].vote_account, data+j*112UL, 32UL ) ) ) { - found = 1; - break; - } - } - - if( FD_UNLIKELY( !found ) ) { - fd_memcpy( removed[ removed_cnt++ ].uc, gui->vote_account.vote_accounts[ i ].vote_account->uc, 32UL ); - if( FD_LIKELY( i+1UL!=gui->vote_account.vote_account_cnt ) ) { - gui->vote_account.vote_accounts[ i ] = gui->vote_account.vote_accounts[ gui->vote_account.vote_account_cnt-1UL ]; - i--; - } - gui->vote_account.vote_account_cnt--; - } - } - - ulong before_peer_cnt = gui->vote_account.vote_account_cnt; - for( ulong i=0UL; ivote_account.vote_account_cnt; j++ ) { - if( FD_UNLIKELY( !memcmp( gui->vote_account.vote_accounts[ j ].vote_account, data+i*112UL, 32UL ) ) ) { - found_idx = j; - found = 1; - break; - } - } - - if( FD_UNLIKELY( !found ) ) { - fd_memcpy( gui->vote_account.vote_accounts[ gui->vote_account.vote_account_cnt ].vote_account->uc, data+i*112UL, 32UL ); - fd_memcpy( gui->vote_account.vote_accounts[ gui->vote_account.vote_account_cnt ].pubkey->uc, data+i*112UL+32UL, 32UL ); - - gui->vote_account.vote_accounts[ gui->vote_account.vote_account_cnt ].activated_stake = FD_LOAD( ulong, data+i*112UL+64UL ); - gui->vote_account.vote_accounts[ gui->vote_account.vote_account_cnt ].last_vote = FD_LOAD( ulong, data+i*112UL+72UL ); - gui->vote_account.vote_accounts[ gui->vote_account.vote_account_cnt ].root_slot = FD_LOAD( ulong, data+i*112UL+80UL ); - gui->vote_account.vote_accounts[ gui->vote_account.vote_account_cnt ].epoch_credits = FD_LOAD( ulong, data+i*112UL+88UL ); - gui->vote_account.vote_accounts[ gui->vote_account.vote_account_cnt ].commission = FD_LOAD( uchar, data+i*112UL+96UL ); - gui->vote_account.vote_accounts[ gui->vote_account.vote_account_cnt ].delinquent = FD_LOAD( uchar, data+i*112UL+97UL ); - - gui->vote_account.vote_account_cnt++; - } else { - int peer_updated = - memcmp( gui->vote_account.vote_accounts[ found_idx ].pubkey->uc, data+i*112UL+32UL, 32UL ) || - gui->vote_account.vote_accounts[ found_idx ].activated_stake != FD_LOAD( ulong, data+i*112UL+64UL ) || - // gui->vote_account.vote_accounts[ found_idx ].last_vote != FD_LOAD( ulong, data+i*112UL+72UL ) || - // gui->vote_account.vote_accounts[ found_idx ].root_slot != FD_LOAD( ulong, data+i*112UL+80UL ) || - // gui->vote_account.vote_accounts[ found_idx ].epoch_credits != FD_LOAD( ulong, data+i*112UL+88UL ) || - gui->vote_account.vote_accounts[ found_idx ].commission != FD_LOAD( uchar, data+i*112UL+96UL ) || - gui->vote_account.vote_accounts[ found_idx ].delinquent != FD_LOAD( uchar, data+i*112UL+97UL ); - - if( FD_UNLIKELY( peer_updated ) ) { - updated[ update_cnt++ ] = found_idx; - - fd_memcpy( gui->vote_account.vote_accounts[ found_idx ].pubkey->uc, data+i*112UL+32UL, 32UL ); - gui->vote_account.vote_accounts[ found_idx ].activated_stake = FD_LOAD( ulong, data+i*112UL+64UL ); - gui->vote_account.vote_accounts[ found_idx ].last_vote = FD_LOAD( ulong, data+i*112UL+72UL ); - gui->vote_account.vote_accounts[ found_idx ].root_slot = FD_LOAD( ulong, data+i*112UL+80UL ); - gui->vote_account.vote_accounts[ found_idx ].epoch_credits = FD_LOAD( ulong, data+i*112UL+88UL ); - gui->vote_account.vote_accounts[ found_idx ].commission = FD_LOAD( uchar, data+i*112UL+96UL ); - gui->vote_account.vote_accounts[ found_idx ].delinquent = FD_LOAD( uchar, data+i*112UL+97UL ); - } - } - } - - added_cnt = gui->vote_account.vote_account_cnt - before_peer_cnt; - for( ulong i=before_peer_cnt; ivote_account.vote_account_cnt; i++ ) added[ i-before_peer_cnt ] = i; - - fd_gui_printf_peers_vote_account_update( gui, updated, update_cnt, removed, removed_cnt, added, added_cnt ); - fd_http_server_ws_broadcast( gui->http ); -} - -static void -fd_gui_handle_validator_info_update( fd_gui_t * gui, - uchar const * msg ) { - if( FD_UNLIKELY( gui->validator_info.info_cnt == FD_GUI_MAX_PEER_CNT ) ) { - FD_LOG_DEBUG(("validator info cnt exceeds 108000 %lu, ignoring additional entries", gui->validator_info.info_cnt )); - return; - } - uchar const * data = (uchar const *)fd_type_pun_const( msg ); - - ulong added_cnt = 0UL; - ulong added[ 1 ] = {0}; - - ulong update_cnt = 0UL; - ulong updated[ 1 ] = {0}; - - ulong removed_cnt = 0UL; - /* Unlike gossip or vote account updates, validator info messages come - in as info is discovered, and may contain as little as 1 validator - per message. Therefore, it doesn't make sense to use the remove - mechanism. */ - - ulong before_peer_cnt = gui->validator_info.info_cnt; - int found = 0; - ulong found_idx; - for( ulong j=0UL; jvalidator_info.info_cnt; j++ ) { - if( FD_UNLIKELY( !memcmp( gui->validator_info.info[ j ].pubkey, data, 32UL ) ) ) { - found_idx = j; - found = 1; - break; - } - } - - if( FD_UNLIKELY( !found ) ) { - fd_memcpy( gui->validator_info.info[ gui->validator_info.info_cnt ].pubkey->uc, data, 32UL ); - - strncpy( gui->validator_info.info[ gui->validator_info.info_cnt ].name, (char const *)(data+32UL), 64 ); - gui->validator_info.info[ gui->validator_info.info_cnt ].name[ 63 ] = '\0'; - - strncpy( gui->validator_info.info[ gui->validator_info.info_cnt ].website, (char const *)(data+96UL), 128 ); - gui->validator_info.info[ gui->validator_info.info_cnt ].website[ 127 ] = '\0'; - - strncpy( gui->validator_info.info[ gui->validator_info.info_cnt ].details, (char const *)(data+224UL), 256 ); - gui->validator_info.info[ gui->validator_info.info_cnt ].details[ 255 ] = '\0'; - - strncpy( gui->validator_info.info[ gui->validator_info.info_cnt ].icon_uri, (char const *)(data+480UL), 128 ); - gui->validator_info.info[ gui->validator_info.info_cnt ].icon_uri[ 127 ] = '\0'; - - gui->validator_info.info_cnt++; - } else { - int peer_updated = - memcmp( gui->validator_info.info[ found_idx ].pubkey->uc, data, 32UL ) || - strncmp( gui->validator_info.info[ found_idx ].name, (char const *)(data+32UL), 64 ) || - strncmp( gui->validator_info.info[ found_idx ].website, (char const *)(data+96UL), 128 ) || - strncmp( gui->validator_info.info[ found_idx ].details, (char const *)(data+224UL), 256 ) || - strncmp( gui->validator_info.info[ found_idx ].icon_uri, (char const *)(data+480UL), 128 ); - - if( FD_UNLIKELY( peer_updated ) ) { - updated[ update_cnt++ ] = found_idx; - - fd_memcpy( gui->validator_info.info[ found_idx ].pubkey->uc, data, 32UL ); - - strncpy( gui->validator_info.info[ found_idx ].name, (char const *)(data+32UL), 64 ); - gui->validator_info.info[ found_idx ].name[ 63 ] = '\0'; - - strncpy( gui->validator_info.info[ found_idx ].website, (char const *)(data+96UL), 128 ); - gui->validator_info.info[ found_idx ].website[ 127 ] = '\0'; - - strncpy( gui->validator_info.info[ found_idx ].details, (char const *)(data+224UL), 256 ); - gui->validator_info.info[ found_idx ].details[ 255 ] = '\0'; - - strncpy( gui->validator_info.info[ found_idx ].icon_uri, (char const *)(data+480UL), 128 ); - gui->validator_info.info[ found_idx ].icon_uri[ 127 ] = '\0'; - } - } - - added_cnt = gui->validator_info.info_cnt - before_peer_cnt; - for( ulong i=before_peer_cnt; ivalidator_info.info_cnt; i++ ) added[ i-before_peer_cnt ] = i; - - fd_gui_printf_peers_validator_info_update( gui, updated, update_cnt, NULL, removed_cnt, added, added_cnt ); - fd_http_server_ws_broadcast( gui->http ); -} - int fd_gui_request_slot( fd_gui_t * gui, ulong ws_conn_id, @@ -1991,13 +1678,11 @@ fd_gui_try_insert_ranking( fd_gui_t * gui, static void fd_gui_update_slot_rankings( fd_gui_t * gui ) { ulong first_replay_slot = ULONG_MAX; - if( FD_LIKELY( gui->summary.is_full_client ) ) { + { ulong slot_caught_up = gui->summary.slot_caught_up; ulong slot_incremental = gui->summary.boot_progress.loading_snapshot[ FD_GUI_BOOT_PROGRESS_INCREMENTAL_SNAPSHOT_IDX ].slot; ulong slot_full = gui->summary.boot_progress.loading_snapshot[ FD_GUI_BOOT_PROGRESS_FULL_SNAPSHOT_IDX ].slot; first_replay_slot = fd_ulong_if( slot_caught_up!=ULONG_MAX, fd_ulong_if( slot_incremental!=ULONG_MAX, slot_incremental+1UL, fd_ulong_if( slot_full!=ULONG_MAX, slot_full+1UL, ULONG_MAX ) ), ULONG_MAX ); - } else { - first_replay_slot = gui->summary.startup_progress.startup_ledger_max_slot; } if( FD_UNLIKELY( first_replay_slot==ULONG_MAX ) ) return; if( FD_UNLIKELY( gui->summary.slot_rooted ==ULONG_MAX ) ) return; @@ -2357,16 +2042,12 @@ fd_gui_handle_slot_end( fd_gui_t * gui, ulong _slot, ulong _cus_used, long now ) { - if( FD_UNLIKELY( !gui->summary.is_full_client && gui->leader_slot!=_slot ) ) { - FD_LOG_ERR(( "gui->leader_slot %lu _slot %lu", gui->leader_slot, _slot )); - } + (void)_cus_used; gui->leader_slot = ULONG_MAX; fd_gui_slot_t * slot = fd_gui_get_slot( gui, _slot ); if( FD_UNLIKELY( !slot ) ) return; - if( FD_UNLIKELY( !gui->summary.is_full_client ) ) slot->compute_units = (uint)_cus_used; - fd_gui_tile_timers_snap( gui ); fd_gui_scheduler_counts_snap( gui, now ); @@ -2518,277 +2199,6 @@ fd_gui_handle_exec_txn_done( fd_gui_t * gui, } } -static void -fd_gui_handle_reset_slot_legacy( fd_gui_t * gui, - uchar const * msg, - long now ) { - ulong last_landed_vote = FD_LOAD( ulong, msg ); - - ulong parent_cnt = FD_LOAD( ulong, msg + 8UL ); - FD_TEST( parent_cnt<4096UL ); - - ulong _slot = FD_LOAD( ulong, msg + 16UL ); - - for( ulong i=0UL; isummary.vote_distance!=_slot-last_landed_vote ) ) { - gui->summary.vote_distance = _slot-last_landed_vote; - fd_gui_printf_vote_distance( gui ); - fd_http_server_ws_broadcast( gui->http ); - } - - if( FD_LIKELY( gui->summary.vote_state!=FD_GUI_VOTE_STATE_NON_VOTING ) ) { - if( FD_UNLIKELY( last_landed_vote==ULONG_MAX || (last_landed_vote+150UL)<_slot ) ) { - if( FD_UNLIKELY( gui->summary.vote_state!=FD_GUI_VOTE_STATE_DELINQUENT ) ) { - gui->summary.vote_state = FD_GUI_VOTE_STATE_DELINQUENT; - fd_gui_printf_vote_state( gui ); - fd_http_server_ws_broadcast( gui->http ); - } - } else { - if( FD_UNLIKELY( gui->summary.vote_state!=FD_GUI_VOTE_STATE_VOTING ) ) { - gui->summary.vote_state = FD_GUI_VOTE_STATE_VOTING; - fd_gui_printf_vote_state( gui ); - fd_http_server_ws_broadcast( gui->http ); - } - } - } - - ulong parent_slot_idx = 0UL; - - int republish_skip_rate[ 2 ] = {0}; - - for( ulong i=0UL; ilevel>=FD_GUI_SLOT_LEVEL_ROOTED ) ) break; - - int should_republish = slot->must_republish; - slot->must_republish = 0; - - if( FD_UNLIKELY( parent_slot!=FD_LOAD( ulong, msg + (2UL+parent_slot_idx)*8UL ) ) ) { - /* We are between two parents in the rooted chain, which means - we were skipped. */ - if( FD_UNLIKELY( !slot->skipped ) ) { - slot->skipped = 1; - should_republish = 1; - if( FD_LIKELY( slot->mine ) ) { - for( ulong i=0UL; i<2UL; i++ ) { - if( FD_LIKELY( parent_slot>=gui->epoch.epochs[ i ].start_slot && parent_slot<=gui->epoch.epochs[ i ].end_slot ) ) { - gui->epoch.epochs[ i ].my_skipped_slots++; - republish_skip_rate[ i ] = 1; - break; - } - } - } - } - } else { - /* Reached the next parent... */ - if( FD_UNLIKELY( slot->skipped ) ) { - slot->skipped = 0; - should_republish = 1; - if( FD_LIKELY( slot->mine ) ) { - for( ulong i=0UL; i<2UL; i++ ) { - if( FD_LIKELY( parent_slot>=gui->epoch.epochs[ i ].start_slot && parent_slot<=gui->epoch.epochs[ i ].end_slot ) ) { - gui->epoch.epochs[ i ].my_skipped_slots--; - republish_skip_rate[ i ] = 1; - break; - } - } - } - } - parent_slot_idx++; - } - - if( FD_LIKELY( should_republish ) ) { - fd_gui_printf_slot( gui, parent_slot ); - fd_http_server_ws_broadcast( gui->http ); - } - - /* We reached the last parent in the chain, everything above this - must have already been rooted, so we can exit. */ - - if( FD_UNLIKELY( parent_slot_idx>=parent_cnt ) ) break; - } - - ulong duration_sum = 0UL; - ulong slot_cnt = 0UL; - - /* If we've just caught up we should truncate our slot history to avoid including catch-up slots */ - int just_caught_up = gui->summary.slot_caught_up!=ULONG_MAX && _slot>gui->summary.slot_caught_up && _slotsummary.slot_caught_up+750UL; - ulong slot_duration_history_sz = fd_ulong_if( just_caught_up, _slot-gui->summary.slot_caught_up, 750UL ); - for( ulong i=0UL; islot!=parent_slot ) ) { - FD_LOG_ERR(( "_slot %lu i %lu we expect _slot-i %lu got slot->slot %lu", _slot, i, _slot-i, slot->slot )); - } - - ulong slot_duration = fd_gui_slot_duration( gui, slot ); - if( FD_LIKELY( slot_duration!=ULONG_MAX ) ) { - duration_sum += slot_duration; - slot_cnt++; - } - } - - if( FD_LIKELY( slot_cnt>0 ) ) { - gui->summary.estimated_slot_duration_nanos = (ulong)(duration_sum / slot_cnt); - fd_gui_printf_estimated_slot_duration_nanos( gui ); - fd_http_server_ws_broadcast( gui->http ); - } - - if( FD_LIKELY( gui->summary.slot_completed==ULONG_MAX || _slot!=gui->summary.slot_completed ) ) { - gui->summary.slot_completed = _slot; - fd_gui_printf_completed_slot( gui ); - fd_http_server_ws_broadcast( gui->http ); - - /* Also update slot_turbine which could be larger than the max - turbine slot if we are leader */ - if( FD_UNLIKELY( gui->summary.slots_max_turbine[ 0 ].slot!=ULONG_MAX && gui->summary.slot_completed!=ULONG_MAX && gui->summary.slot_completed>gui->summary.slots_max_turbine[ 0 ].slot ) ) { - fd_gui_try_insert_ephemeral_slot( gui->summary.slots_max_turbine, FD_GUI_TURBINE_SLOT_HISTORY_SZ, gui->summary.slot_completed, now ); - } - - int slot_turbine_hist_full = gui->summary.slots_max_turbine[ FD_GUI_TURBINE_SLOT_HISTORY_SZ-1UL ].slot!=ULONG_MAX; - if( FD_UNLIKELY( gui->summary.slot_caught_up==ULONG_MAX && slot_turbine_hist_full && gui->summary.slots_max_turbine[ 0 ].slot < (gui->summary.slot_completed + 3UL) ) ) { - gui->summary.slot_caught_up = gui->summary.slot_completed + 4UL; - - fd_gui_printf_slot_caught_up( gui ); - fd_http_server_ws_broadcast( gui->http ); - } - } - - for( ulong i=0UL; i<2UL; i++ ) { - if( FD_LIKELY( republish_skip_rate[ i ] ) ) { - fd_gui_printf_skip_rate( gui, i ); - fd_http_server_ws_broadcast( gui->http ); - } - } -} - -static void -fd_gui_handle_completed_slot( fd_gui_t * gui, - uchar const * msg, - long now ) { - - /* This is the slot used by frontend clients as the "startup slot". In - certain boot conditions, we don't receive this slot from Agave, so - we include a bit of a hacky assignment here to make sure it is - always present. */ - if( FD_UNLIKELY( gui->summary.startup_progress.startup_ledger_max_slot==ULONG_MAX ) ) { - gui->summary.startup_progress.startup_ledger_max_slot = FD_LOAD( ulong, msg ); - } - - ulong _slot = FD_LOAD( ulong, msg ); - uint total_txn_count = (uint)FD_LOAD( ulong, msg + 1UL*8UL ); - uint nonvote_txn_count = (uint)FD_LOAD( ulong, msg + 2UL*8UL ); - uint failed_txn_count = (uint)FD_LOAD( ulong, msg + 3UL*8UL ); - uint nonvote_failed_txn_count = (uint)FD_LOAD( ulong, msg + 4UL*8UL ); - uint compute_units = (uint)FD_LOAD( ulong, msg + 5UL*8UL ); - ulong transaction_fee = FD_LOAD( ulong, msg + 6UL*8UL ); - ulong priority_fee = FD_LOAD( ulong, msg + 7UL*8UL ); - ulong tips = FD_LOAD( ulong, msg + 8UL*8UL ); - ulong _parent_slot = FD_LOAD( ulong, msg + 9UL*8UL ); - ulong max_compute_units = FD_LOAD( ulong, msg + 10UL*8UL ); - - fd_gui_slot_t * slot = fd_gui_get_slot( gui, _slot ); - if( FD_UNLIKELY( !slot ) ) slot = fd_gui_clear_slot( gui, _slot, _parent_slot ); - - slot->completed_time = now; - slot->parent_slot = _parent_slot; - slot->max_compute_units = (uint)max_compute_units; - if( FD_LIKELY( slot->levelsummary.slot_optimistically_confirmed!=ULONG_MAX && _slotsummary.slot_optimistically_confirmed ) ) { - /* Cluster might have already optimistically confirmed by the time - we finish replaying it. */ - slot->level = FD_GUI_SLOT_LEVEL_OPTIMISTICALLY_CONFIRMED; - } else { - slot->level = FD_GUI_SLOT_LEVEL_COMPLETED; - } - } - - slot->nonvote_success = nonvote_txn_count - nonvote_failed_txn_count; - slot->nonvote_failed = nonvote_failed_txn_count; - slot->vote_failed = failed_txn_count - nonvote_failed_txn_count; - slot->vote_success = total_txn_count - nonvote_txn_count - slot->vote_failed; - - slot->transaction_fee = transaction_fee; - slot->priority_fee = priority_fee; - slot->tips = tips; - - /* In Frankendancer, CUs come from our own leader pipeline (the field - sent from the Agave codepath is zero'd out) */ - slot->compute_units = fd_uint_if( !gui->summary.is_full_client && slot->mine, slot->compute_units, compute_units ); - - if( FD_UNLIKELY( gui->epoch.has_epoch[ 0 ] && _slot==gui->epoch.epochs[ 0 ].end_slot ) ) { - gui->epoch.epochs[ 0 ].end_time = slot->completed_time; - } else if( FD_UNLIKELY( gui->epoch.has_epoch[ 1 ] && _slot==gui->epoch.epochs[ 1 ].end_slot ) ) { - gui->epoch.epochs[ 1 ].end_time = slot->completed_time; - } - - /* Broadcast new skip rate if one of our slots got completed. */ - if( FD_LIKELY( slot->mine ) ) { - for( ulong i=0UL; i<2UL; i++ ) { - if( FD_LIKELY( _slot>=gui->epoch.epochs[ i ].start_slot && _slot<=gui->epoch.epochs[ i ].end_slot ) ) { - fd_gui_printf_skip_rate( gui, i ); - fd_http_server_ws_broadcast( gui->http ); - break; - } - } - } -} - -static void -fd_gui_handle_rooted_slot_legacy( fd_gui_t * gui, - uchar const * msg ) { - ulong _slot = FD_LOAD( ulong, msg ); - - // FD_LOG_WARNING(( "Got rooted slot %lu", _slot )); - - /* Slot 0 is always rooted. No need to iterate all the way back to - i==_slot */ - for( ulong i=0UL; islot!=parent_slot ) ) { - FD_LOG_ERR(( "_slot %lu i %lu we expect parent_slot %lu got slot->slot %lu", _slot, i, parent_slot, slot->slot )); - } - if( FD_UNLIKELY( slot->level>=FD_GUI_SLOT_LEVEL_ROOTED ) ) break; - - slot->level = FD_GUI_SLOT_LEVEL_ROOTED; - fd_gui_printf_slot( gui, parent_slot ); - fd_http_server_ws_broadcast( gui->http ); - } - - gui->summary.slot_rooted = _slot; - fd_gui_printf_root_slot( gui ); - fd_http_server_ws_broadcast( gui->http ); -} - static void fd_gui_handle_optimistically_confirmed_slot( fd_gui_t * gui, ulong _slot ) { @@ -2839,124 +2249,6 @@ fd_gui_handle_optimistically_confirmed_slot( fd_gui_t * gui, fd_http_server_ws_broadcast( gui->http ); } -static void -fd_gui_handle_balance_update( fd_gui_t * gui, - uchar const * msg ) { - switch( FD_LOAD( ulong, msg ) ) { - case 0UL: - gui->summary.identity_account_balance = FD_LOAD( ulong, msg + 8UL ); - fd_gui_printf_identity_balance( gui ); - fd_http_server_ws_broadcast( gui->http ); - break; - case 1UL: - gui->summary.vote_account_balance = FD_LOAD( ulong, msg + 8UL ); - fd_gui_printf_vote_balance( gui ); - fd_http_server_ws_broadcast( gui->http ); - break; - default: - FD_LOG_ERR(( "balance: unknown account type: %lu", FD_LOAD( ulong, msg ) )); - } -} - -static void -fd_gui_handle_start_progress( fd_gui_t * gui, - uchar const * msg ) { - uchar type = msg[ 0 ]; - - switch (type) { - case 0: - gui->summary.startup_progress.phase = FD_GUI_START_PROGRESS_TYPE_INITIALIZING; - FD_LOG_INFO(( "progress: initializing" )); - break; - case 1: { - char const * snapshot_type; - if( FD_UNLIKELY( gui->summary.startup_progress.startup_got_full_snapshot ) ) { - gui->summary.startup_progress.phase = FD_GUI_START_PROGRESS_TYPE_SEARCHING_FOR_INCREMENTAL_SNAPSHOT; - snapshot_type = "incremental"; - } else { - gui->summary.startup_progress.phase = FD_GUI_START_PROGRESS_TYPE_SEARCHING_FOR_FULL_SNAPSHOT; - snapshot_type = "full"; - } - FD_LOG_INFO(( "progress: searching for %s snapshot", snapshot_type )); - break; - } - case 2: { - uchar is_full_snapshot = msg[ 1 ]; - if( FD_LIKELY( is_full_snapshot ) ) { - gui->summary.startup_progress.phase = FD_GUI_START_PROGRESS_TYPE_DOWNLOADING_FULL_SNAPSHOT; - gui->summary.startup_progress.startup_full_snapshot_slot = FD_LOAD( ulong, msg + 2 ); - gui->summary.startup_progress.startup_full_snapshot_peer_ip_addr = FD_LOAD( uint, msg + 10 ); - gui->summary.startup_progress.startup_full_snapshot_peer_port = FD_LOAD( ushort, msg + 14 ); - gui->summary.startup_progress.startup_full_snapshot_total_bytes = FD_LOAD( ulong, msg + 16 ); - gui->summary.startup_progress.startup_full_snapshot_current_bytes = FD_LOAD( ulong, msg + 24 ); - gui->summary.startup_progress.startup_full_snapshot_elapsed_secs = FD_LOAD( double, msg + 32 ); - gui->summary.startup_progress.startup_full_snapshot_remaining_secs = FD_LOAD( double, msg + 40 ); - gui->summary.startup_progress.startup_full_snapshot_throughput = FD_LOAD( double, msg + 48 ); - FD_LOG_INFO(( "progress: downloading full snapshot: slot=%lu", gui->summary.startup_progress.startup_full_snapshot_slot )); - } else { - gui->summary.startup_progress.phase = FD_GUI_START_PROGRESS_TYPE_DOWNLOADING_INCREMENTAL_SNAPSHOT; - gui->summary.startup_progress.startup_incremental_snapshot_slot = FD_LOAD( ulong, msg + 2 ); - gui->summary.startup_progress.startup_incremental_snapshot_peer_ip_addr = FD_LOAD( uint, msg + 10 ); - gui->summary.startup_progress.startup_incremental_snapshot_peer_port = FD_LOAD( ushort, msg + 14 ); - gui->summary.startup_progress.startup_incremental_snapshot_total_bytes = FD_LOAD( ulong, msg + 16 ); - gui->summary.startup_progress.startup_incremental_snapshot_current_bytes = FD_LOAD( ulong, msg + 24 ); - gui->summary.startup_progress.startup_incremental_snapshot_elapsed_secs = FD_LOAD( double, msg + 32 ); - gui->summary.startup_progress.startup_incremental_snapshot_remaining_secs = FD_LOAD( double, msg + 40 ); - gui->summary.startup_progress.startup_incremental_snapshot_throughput = FD_LOAD( double, msg + 48 ); - FD_LOG_INFO(( "progress: downloading incremental snapshot: slot=%lu", gui->summary.startup_progress.startup_incremental_snapshot_slot )); - } - break; - } - case 3: { - gui->summary.startup_progress.startup_got_full_snapshot = 1; - break; - } - case 4: - gui->summary.startup_progress.phase = FD_GUI_START_PROGRESS_TYPE_CLEANING_BLOCK_STORE; - FD_LOG_INFO(( "progress: cleaning block store" )); - break; - case 5: - gui->summary.startup_progress.phase = FD_GUI_START_PROGRESS_TYPE_CLEANING_ACCOUNTS; - FD_LOG_INFO(( "progress: cleaning accounts" )); - break; - case 6: - gui->summary.startup_progress.phase = FD_GUI_START_PROGRESS_TYPE_LOADING_LEDGER; - FD_LOG_INFO(( "progress: loading ledger" )); - break; - case 7: { - gui->summary.startup_progress.phase = FD_GUI_START_PROGRESS_TYPE_PROCESSING_LEDGER; - gui->summary.startup_progress.startup_ledger_slot = fd_ulong_load_8( msg + 1 ); - gui->summary.startup_progress.startup_ledger_max_slot = fd_ulong_load_8( msg + 9 ); - FD_LOG_INFO(( "progress: processing ledger: slot=%lu, max_slot=%lu", gui->summary.startup_progress.startup_ledger_slot, gui->summary.startup_progress.startup_ledger_max_slot )); - break; - } - case 8: - gui->summary.startup_progress.phase = FD_GUI_START_PROGRESS_TYPE_STARTING_SERVICES; - FD_LOG_INFO(( "progress: starting services" )); - break; - case 9: - gui->summary.startup_progress.phase = FD_GUI_START_PROGRESS_TYPE_HALTED; - FD_LOG_INFO(( "progress: halted" )); - break; - case 10: { - gui->summary.startup_progress.phase = FD_GUI_START_PROGRESS_TYPE_WAITING_FOR_SUPERMAJORITY; - gui->summary.startup_progress.startup_waiting_for_supermajority_slot = fd_ulong_load_8( msg + 1 ); - gui->summary.startup_progress.startup_waiting_for_supermajority_stake_pct = fd_ulong_load_8( msg + 9 ); - FD_LOG_INFO(( "progress: waiting for supermajority: slot=%lu, gossip_stake_percent=%lu", gui->summary.startup_progress.startup_waiting_for_supermajority_slot, gui->summary.startup_progress.startup_waiting_for_supermajority_stake_pct )); - break; - } - case 11: - gui->summary.startup_progress.phase = FD_GUI_START_PROGRESS_TYPE_RUNNING; - FD_LOG_INFO(( "progress: running" )); - break; - default: - FD_LOG_ERR(( "progress: unknown type: %u", type )); - } - - fd_gui_printf_startup_progress( gui ); - fd_http_server_ws_broadcast( gui->http ); -} - void fd_gui_handle_genesis_hash( fd_gui_t * gui, fd_hash_t const * msg ) { @@ -3495,74 +2787,6 @@ fd_gui_handle_replay_update( fd_gui_t * gui, } } -void -fd_gui_plugin_message( fd_gui_t * gui, - ulong plugin_msg, - void const * msg, - long now ) { - - switch( plugin_msg ) { - case FD_PLUGIN_MSG_SLOT_ROOTED: - fd_gui_handle_rooted_slot_legacy( gui, msg ); - break; - case FD_PLUGIN_MSG_SLOT_OPTIMISTICALLY_CONFIRMED: - fd_gui_handle_optimistically_confirmed_slot( gui, FD_LOAD( ulong, msg ) ); - break; - case FD_PLUGIN_MSG_SLOT_COMPLETED: { - fd_gui_handle_completed_slot( gui, msg, now ); - break; - } - case FD_PLUGIN_MSG_LEADER_SCHEDULE: { - FD_STATIC_ASSERT( sizeof(fd_stake_weight_msg_t)==6*sizeof(ulong), "new fields breaks things" ); - fd_gui_handle_leader_schedule( gui, (fd_stake_weight_msg_t *)msg, now ); - break; - } - case FD_PLUGIN_MSG_SLOT_START: { - ulong slot = FD_LOAD( ulong, msg ); - ulong parent_slot = FD_LOAD( ulong, (uchar const *)msg + 8UL ); - fd_gui_handle_slot_start( gui, slot, parent_slot, now ); - break; - } - case FD_PLUGIN_MSG_SLOT_END: { - ulong slot = FD_LOAD( ulong, msg ); - ulong cus_used = FD_LOAD( ulong, (uchar const *)msg + 8UL ); - fd_gui_handle_slot_end( gui, slot, cus_used, now ); - break; - } - case FD_PLUGIN_MSG_GOSSIP_UPDATE: { - fd_gui_handle_gossip_update( gui, msg ); - break; - } - case FD_PLUGIN_MSG_VOTE_ACCOUNT_UPDATE: { - fd_gui_handle_vote_account_update( gui, msg ); - break; - } - case FD_PLUGIN_MSG_VALIDATOR_INFO: { - fd_gui_handle_validator_info_update( gui, msg ); - break; - } - case FD_PLUGIN_MSG_SLOT_RESET: { - fd_gui_handle_reset_slot_legacy( gui, msg, now ); - break; - } - case FD_PLUGIN_MSG_BALANCE: { - fd_gui_handle_balance_update( gui, msg ); - break; - } - case FD_PLUGIN_MSG_START_PROGRESS: { - fd_gui_handle_start_progress( gui, msg ); - break; - } - case FD_PLUGIN_MSG_GENESIS_HASH_KNOWN: { - fd_gui_handle_genesis_hash( gui, msg ); - break; - } - default: - FD_LOG_ERR(( "Unhandled plugin msg: 0x%lx", plugin_msg )); - break; - } -} - void fd_gui_became_leader( fd_gui_t * gui, ulong _slot, @@ -3570,7 +2794,7 @@ fd_gui_became_leader( fd_gui_t * gui, long end_time_nanos, ulong max_compute_units, ulong max_microblocks ) { - if( FD_LIKELY( gui->summary.is_full_client && gui->leader_slot!=ULONG_MAX ) ) { + if( FD_LIKELY( gui->leader_slot!=ULONG_MAX ) ) { /* stop sampling for other leader slot in progress */ fd_gui_handle_slot_end( gui, gui->leader_slot, ULONG_MAX, start_time_nanos ); } @@ -3586,7 +2810,7 @@ fd_gui_became_leader( fd_gui_t * gui, lslot->max_microblocks = max_microblocks; if( FD_LIKELY( lslot->txs.microblocks_upper_bound==UINT_MAX ) ) lslot->txs.microblocks_upper_bound = (uint)max_microblocks; - if( FD_UNLIKELY( gui->summary.is_full_client ) ) fd_gui_handle_slot_start( gui, slot->slot, slot->parent_slot, start_time_nanos ); + fd_gui_handle_slot_start( gui, slot->slot, slot->parent_slot, start_time_nanos ); } void @@ -3603,7 +2827,7 @@ fd_gui_unbecame_leader( fd_gui_t * gui, /* fd_gui_handle_slot_end may have already been called in response to a "became_leader" message for a subseqeunt slot. */ - if( FD_UNLIKELY( gui->summary.is_full_client && gui->leader_slot==_slot ) ) fd_gui_handle_slot_end( gui, slot->slot, ULONG_MAX, now ); + if( FD_UNLIKELY( gui->leader_slot==_slot ) ) fd_gui_handle_slot_end( gui, slot->slot, ULONG_MAX, now ); lslot->unbecame_leader = 1; } diff --git a/src/disco/gui/fd_gui.h b/src/disco/gui/fd_gui.h index a6bf96a9251..a370362b147 100644 --- a/src/disco/gui/fd_gui.h +++ b/src/disco/gui/fd_gui.h @@ -1077,12 +1077,6 @@ fd_gui_ws_message( fd_gui_t * gui, uchar const * data, ulong data_len ); -void -fd_gui_plugin_message( fd_gui_t * gui, - ulong plugin_msg, - void const * msg, - long now ); - void fd_gui_became_leader( fd_gui_t * gui, ulong slot, diff --git a/src/disco/gui/fd_gui_metrics.h b/src/disco/gui/fd_gui_metrics.h index 4b83ee32fa9..828dfa4ab77 100644 --- a/src/disco/gui/fd_gui_metrics.h +++ b/src/disco/gui/fd_gui_metrics.h @@ -50,7 +50,7 @@ fd_gui_metrics_gossip_total_ingress_bytes( fd_topo_t const * topo, ulong gossvf_ } static inline ulong -fd_gui_metrics_gosip_total_egress_bytes( fd_topo_t const * topo, ulong gossip_tile_cnt ) { +fd_gui_metrics_gossip_total_egress_bytes( fd_topo_t const * topo, ulong gossip_tile_cnt ) { return fd_gui_metrics_sum_tiles_counter( topo, "gossip", gossip_tile_cnt, MIDX( COUNTER, GOSSIP, MESSAGE_TX_BYTES_PING ) ) + fd_gui_metrics_sum_tiles_counter( topo, "gossip", gossip_tile_cnt, MIDX( COUNTER, GOSSIP, MESSAGE_TX_BYTES_PONG ) ) + fd_gui_metrics_sum_tiles_counter( topo, "gossip", gossip_tile_cnt, MIDX( COUNTER, GOSSIP, MESSAGE_TX_BYTES_PRUNE ) ) diff --git a/src/disco/gui/fd_gui_peers.c b/src/disco/gui/fd_gui_peers.c index 4c3594f840b..a9bc02703d7 100644 --- a/src/disco/gui/fd_gui_peers.c +++ b/src/disco/gui/fd_gui_peers.c @@ -395,7 +395,7 @@ fd_gui_peers_gossip_stats_snap( fd_gui_peers_ctx_t * peers, gossip_stats->network_egress_total_bytes_per_sec += cur->row.gossip_tx_sum.rate_ema; } - gossip_stats->network_egress_total_bytes = fd_gui_metrics_gosip_total_egress_bytes( peers->topo, gossip_tile_cnt ); + gossip_stats->network_egress_total_bytes = fd_gui_metrics_gossip_total_egress_bytes( peers->topo, gossip_tile_cnt ); gossip_stats->storage_capacity = fd_gui_metrics_sum_tiles_counter( peers->topo, "gossip", gossip_tile_cnt, MIDX( GAUGE, GOSSIP, CRDS_CAPACITY ) ); gossip_stats->storage_expired_cnt = fd_gui_metrics_sum_tiles_counter( peers->topo, "gossip", gossip_tile_cnt, MIDX( COUNTER, GOSSIP, CRDS_EXPIRED ) ); diff --git a/src/disco/gui/fd_gui_printf.c b/src/disco/gui/fd_gui_printf.c index 0afdc50c897..b884bac02de 100644 --- a/src/disco/gui/fd_gui_printf.c +++ b/src/disco/gui/fd_gui_printf.c @@ -506,118 +506,6 @@ fd_gui_printf_tps_history( fd_gui_t * gui ) { jsonp_close_envelope( gui->http ); } -void -fd_gui_printf_startup_progress( fd_gui_t * gui ) { - char const * phase; - - switch( gui->summary.startup_progress.phase ) { - case FD_GUI_START_PROGRESS_TYPE_INITIALIZING: - phase = "initializing"; - break; - case FD_GUI_START_PROGRESS_TYPE_SEARCHING_FOR_FULL_SNAPSHOT: - phase = "searching_for_full_snapshot"; - break; - case FD_GUI_START_PROGRESS_TYPE_DOWNLOADING_FULL_SNAPSHOT: - phase = "downloading_full_snapshot"; - break; - case FD_GUI_START_PROGRESS_TYPE_SEARCHING_FOR_INCREMENTAL_SNAPSHOT: - phase = "searching_for_incremental_snapshot"; - break; - case FD_GUI_START_PROGRESS_TYPE_DOWNLOADING_INCREMENTAL_SNAPSHOT: - phase = "downloading_incremental_snapshot"; - break; - case FD_GUI_START_PROGRESS_TYPE_CLEANING_BLOCK_STORE: - phase = "cleaning_blockstore"; - break; - case FD_GUI_START_PROGRESS_TYPE_CLEANING_ACCOUNTS: - phase = "cleaning_accounts"; - break; - case FD_GUI_START_PROGRESS_TYPE_LOADING_LEDGER: - phase = "loading_ledger"; - break; - case FD_GUI_START_PROGRESS_TYPE_PROCESSING_LEDGER: - phase = "processing_ledger"; - break; - case FD_GUI_START_PROGRESS_TYPE_STARTING_SERVICES: - phase = "starting_services"; - break; - case FD_GUI_START_PROGRESS_TYPE_HALTED: - phase = "halted"; - break; - case FD_GUI_START_PROGRESS_TYPE_WAITING_FOR_SUPERMAJORITY: - phase = "waiting_for_supermajority"; - break; - case FD_GUI_START_PROGRESS_TYPE_RUNNING: - phase = "running"; - break; - default: - FD_LOG_ERR(( "unknown phase %d", gui->summary.startup_progress.phase )); - } - - jsonp_open_envelope( gui->http, "summary", "startup_progress" ); - jsonp_open_object( gui->http, "value" ); - jsonp_string( gui->http, "phase", phase ); - if( FD_LIKELY( gui->summary.startup_progress.phase>=FD_GUI_START_PROGRESS_TYPE_DOWNLOADING_FULL_SNAPSHOT) ) { - char peer_addr[ 64 ]; - FD_TEST( fd_cstr_printf_check( peer_addr, sizeof(peer_addr), NULL, FD_IP4_ADDR_FMT ":%u", FD_IP4_ADDR_FMT_ARGS(gui->summary.startup_progress.startup_full_snapshot_peer_ip_addr), gui->summary.startup_progress.startup_full_snapshot_peer_port ) ); - - jsonp_string( gui->http, "downloading_full_snapshot_peer", peer_addr ); - jsonp_ulong( gui->http, "downloading_full_snapshot_slot", gui->summary.startup_progress.startup_full_snapshot_slot ); - jsonp_double( gui->http, "downloading_full_snapshot_elapsed_secs", gui->summary.startup_progress.startup_full_snapshot_elapsed_secs ); - jsonp_double( gui->http, "downloading_full_snapshot_remaining_secs", gui->summary.startup_progress.startup_full_snapshot_remaining_secs ); - jsonp_double( gui->http, "downloading_full_snapshot_throughput", gui->summary.startup_progress.startup_full_snapshot_throughput ); - jsonp_ulong( gui->http, "downloading_full_snapshot_total_bytes", gui->summary.startup_progress.startup_full_snapshot_total_bytes ); - jsonp_ulong( gui->http, "downloading_full_snapshot_current_bytes", gui->summary.startup_progress.startup_full_snapshot_current_bytes ); - } else { - jsonp_null( gui->http, "downloading_full_snapshot_peer" ); - jsonp_null( gui->http, "downloading_full_snapshot_slot" ); - jsonp_null( gui->http, "downloading_full_snapshot_elapsed_secs" ); - jsonp_null( gui->http, "downloading_full_snapshot_remaining_secs" ); - jsonp_null( gui->http, "downloading_full_snapshot_throughput" ); - jsonp_null( gui->http, "downloading_full_snapshot_total_bytes" ); - jsonp_null( gui->http, "downloading_full_snapshot_current_bytes" ); - } - - if( FD_LIKELY( gui->summary.startup_progress.phase>=FD_GUI_START_PROGRESS_TYPE_DOWNLOADING_INCREMENTAL_SNAPSHOT) ) { - char peer_addr[ 64 ]; - FD_TEST( fd_cstr_printf_check( peer_addr, sizeof(peer_addr), NULL, FD_IP4_ADDR_FMT ":%u", FD_IP4_ADDR_FMT_ARGS(gui->summary.startup_progress.startup_incremental_snapshot_peer_ip_addr), gui->summary.startup_progress.startup_incremental_snapshot_peer_port ) ); - - jsonp_string( gui->http, "downloading_incremental_snapshot_peer", peer_addr ); - jsonp_ulong( gui->http, "downloading_incremental_snapshot_slot", gui->summary.startup_progress.startup_incremental_snapshot_slot ); - jsonp_double( gui->http, "downloading_incremental_snapshot_elapsed_secs", gui->summary.startup_progress.startup_incremental_snapshot_elapsed_secs ); - jsonp_double( gui->http, "downloading_incremental_snapshot_remaining_secs", gui->summary.startup_progress.startup_incremental_snapshot_remaining_secs ); - jsonp_double( gui->http, "downloading_incremental_snapshot_throughput", gui->summary.startup_progress.startup_incremental_snapshot_throughput ); - jsonp_ulong( gui->http, "downloading_incremental_snapshot_total_bytes", gui->summary.startup_progress.startup_incremental_snapshot_total_bytes ); - jsonp_ulong( gui->http, "downloading_incremental_snapshot_current_bytes", gui->summary.startup_progress.startup_incremental_snapshot_current_bytes ); - } else { - jsonp_null( gui->http, "downloading_incremental_snapshot_peer" ); - jsonp_null( gui->http, "downloading_incremental_snapshot_slot" ); - jsonp_null( gui->http, "downloading_incremental_snapshot_elapsed_secs" ); - jsonp_null( gui->http, "downloading_incremental_snapshot_remaining_secs" ); - jsonp_null( gui->http, "downloading_incremental_snapshot_throughput" ); - jsonp_null( gui->http, "downloading_incremental_snapshot_total_bytes" ); - jsonp_null( gui->http, "downloading_incremental_snapshot_current_bytes" ); - } - - if( FD_LIKELY( gui->summary.startup_progress.phase>=FD_GUI_START_PROGRESS_TYPE_PROCESSING_LEDGER) ) { - jsonp_ulong( gui->http, "ledger_slot", gui->summary.startup_progress.startup_ledger_slot ); - jsonp_ulong( gui->http, "ledger_max_slot", gui->summary.startup_progress.startup_ledger_max_slot ); - } else { - jsonp_null( gui->http, "ledger_slot" ); - jsonp_null( gui->http, "ledger_max_slot" ); - } - - if( FD_LIKELY( gui->summary.startup_progress.phase>=FD_GUI_START_PROGRESS_TYPE_WAITING_FOR_SUPERMAJORITY ) && gui->summary.startup_progress.startup_waiting_for_supermajority_slot!=ULONG_MAX ) { - jsonp_ulong( gui->http, "waiting_for_supermajority_slot", gui->summary.startup_progress.startup_waiting_for_supermajority_slot ); - jsonp_ulong( gui->http, "waiting_for_supermajority_stake_percent", gui->summary.startup_progress.startup_waiting_for_supermajority_stake_pct ); - } else { - jsonp_null( gui->http, "waiting_for_supermajority_slot" ); - jsonp_null( gui->http, "waiting_for_supermajority_stake_percent" ); - } - jsonp_close_object( gui->http ); - jsonp_close_envelope( gui->http ); -} - void fd_gui_printf_block_engine( fd_gui_t * gui ) { jsonp_open_envelope( gui->http, "block_engine", "update" ); @@ -1727,15 +1615,6 @@ fd_gui_vote_acct_contains( fd_gui_t const * gui, return 0; } -static int -fd_gui_validator_info_contains( fd_gui_t const * gui, - uchar const * pubkey ) { - for( ulong i=0UL; ivalidator_info.info_cnt; i++ ) { - if( FD_UNLIKELY( !memcmp( gui->validator_info.info[ i ].pubkey, pubkey, 32 ) ) ) return 1; - } - return 0; -} - static void fd_gui_printf_peer( fd_gui_t * gui, uchar const * identity_pubkey ) { @@ -1988,156 +1867,6 @@ fd_gui_peers_printf_node_all( fd_gui_peers_ctx_t * peers ) { jsonp_close_envelope( peers->http ); } -void -fd_gui_printf_peers_gossip_update( fd_gui_t * gui, - ulong const * updated, - ulong updated_cnt, - fd_pubkey_t const * removed, - ulong removed_cnt, - ulong const * added, - ulong added_cnt ) { - jsonp_open_envelope( gui->http, "peers", "update" ); - jsonp_open_object( gui->http, "value" ); - jsonp_open_array( gui->http, "add" ); - for( ulong i=0UL; igossip.peers[ added[ i ] ].pubkey->uc ) && - !fd_gui_validator_info_contains( gui, gui->gossip.peers[ added[ i ] ].pubkey->uc ); - if( FD_LIKELY( !actually_added ) ) continue; - - fd_gui_printf_peer( gui, gui->gossip.peers[ added[ i ] ].pubkey->uc ); - } - jsonp_close_array( gui->http ); - - jsonp_open_array( gui->http, "update" ); - for( ulong i=0UL; igossip.peers[ added[ i ] ].pubkey->uc ) && - !fd_gui_validator_info_contains( gui, gui->gossip.peers[ added[ i ] ].pubkey->uc ); - if( FD_LIKELY( actually_added ) ) continue; - - fd_gui_printf_peer( gui, gui->gossip.peers[ added[ i ] ].pubkey->uc ); - } - for( ulong i=0UL; igossip.peers[ updated[ i ] ].pubkey->uc ); - } - jsonp_close_array( gui->http ); - - jsonp_open_array( gui->http, "remove" ); - for( ulong i=0UL; ihttp, NULL ); - char identity_base58[ FD_BASE58_ENCODED_32_SZ ]; - fd_base58_encode_32( removed[ i ].uc, NULL, identity_base58 ); - jsonp_string( gui->http, "identity_pubkey", identity_base58 ); - jsonp_close_object( gui->http ); - } - jsonp_close_array( gui->http ); - jsonp_close_object( gui->http ); - jsonp_close_envelope( gui->http ); -} - -void -fd_gui_printf_peers_vote_account_update( fd_gui_t * gui, - ulong const * updated, - ulong updated_cnt, - fd_pubkey_t const * removed, - ulong removed_cnt, - ulong const * added, - ulong added_cnt ) { - jsonp_open_envelope( gui->http, "peers", "update" ); - jsonp_open_object( gui->http, "value" ); - jsonp_open_array( gui->http, "add" ); - for( ulong i=0UL; ivote_account.vote_accounts[ added[ i ] ].pubkey->uc ) && - !fd_gui_validator_info_contains( gui, gui->vote_account.vote_accounts[ added[ i ] ].pubkey->uc ); - if( FD_LIKELY( !actually_added ) ) continue; - - fd_gui_printf_peer( gui, gui->vote_account.vote_accounts[ added[ i ] ].pubkey->uc ); - } - jsonp_close_array( gui->http ); - - jsonp_open_array( gui->http, "update" ); - for( ulong i=0UL; ivote_account.vote_accounts[ added[ i ] ].pubkey->uc ) && - !fd_gui_validator_info_contains( gui, gui->vote_account.vote_accounts[ added[ i ] ].pubkey->uc ); - if( FD_LIKELY( actually_added ) ) continue; - - fd_gui_printf_peer( gui, gui->vote_account.vote_accounts[ added[ i ] ].pubkey->uc ); - } - for( ulong i=0UL; ivote_account.vote_accounts[ updated[ i ] ].pubkey->uc ); - } - jsonp_close_array( gui->http ); - - jsonp_open_array( gui->http, "remove" ); - for( ulong i=0UL; ihttp, NULL ); - char identity_base58[ FD_BASE58_ENCODED_32_SZ ]; - fd_base58_encode_32( removed[ i ].uc, NULL, identity_base58 ); - jsonp_string( gui->http, "identity_pubkey", identity_base58 ); - jsonp_close_object( gui->http ); - } - jsonp_close_array( gui->http ); - jsonp_close_object( gui->http ); - jsonp_close_envelope( gui->http ); -} - -void -fd_gui_printf_peers_validator_info_update( fd_gui_t * gui, - ulong const * updated, - ulong updated_cnt, - fd_pubkey_t const * removed, - ulong removed_cnt, - ulong const * added, - ulong added_cnt ) { - jsonp_open_envelope( gui->http, "peers", "update" ); - jsonp_open_object( gui->http, "value" ); - jsonp_open_array( gui->http, "add" ); - for( ulong i=0UL; ivalidator_info.info[ added[ i ] ].pubkey->uc ) && - !fd_gui_vote_acct_contains( gui, gui->validator_info.info[ added[ i ] ].pubkey->uc ); - if( FD_LIKELY( !actually_added ) ) continue; - - fd_gui_printf_peer( gui, gui->validator_info.info[ added[ i ] ].pubkey->uc ); - } - jsonp_close_array( gui->http ); - - jsonp_open_array( gui->http, "update" ); - for( ulong i=0UL; ivalidator_info.info[ added[ i ] ].pubkey->uc ) && - !fd_gui_vote_acct_contains( gui, gui->validator_info.info[ added[ i ] ].pubkey->uc ); - if( FD_LIKELY( actually_added ) ) continue; - - fd_gui_printf_peer( gui, gui->validator_info.info[ added[ i ] ].pubkey->uc ); - } - for( ulong i=0UL; ivalidator_info.info[ updated[ i ] ].pubkey->uc ); - } - jsonp_close_array( gui->http ); - - jsonp_open_array( gui->http, "remove" ); - for( ulong i=0UL; ihttp, NULL ); - char identity_base58[ FD_BASE58_ENCODED_32_SZ ]; - fd_base58_encode_32( removed[ i ].uc, NULL, identity_base58 ); - jsonp_string( gui->http, "identity_pubkey", identity_base58 ); - jsonp_close_object( gui->http ); - } - jsonp_close_array( gui->http ); - jsonp_close_object( gui->http ); - jsonp_close_envelope( gui->http ); -} - void fd_gui_printf_peers_all( fd_gui_t * gui ) { jsonp_open_envelope( gui->http, "peers", "update" ); diff --git a/src/disco/gui/fd_gui_printf.h b/src/disco/gui/fd_gui_printf.h index 421e5f2b366..c8d39337ce0 100644 --- a/src/disco/gui/fd_gui_printf.h +++ b/src/disco/gui/fd_gui_printf.h @@ -24,7 +24,6 @@ void fd_gui_printf_skipped_history_cluster( fd_gui_t * gui, ulong epoch_idx ); void fd_gui_printf_vote_latency_history( fd_gui_t * gui ); void fd_gui_printf_late_votes_history( fd_gui_t * gui ); void fd_gui_printf_tps_history( fd_gui_t * gui ); -void fd_gui_printf_startup_progress( fd_gui_t * gui ); void fd_gui_printf_boot_progress( fd_gui_t * gui ); void fd_gui_printf_block_engine( fd_gui_t * gui ); void fd_gui_printf_tiles( fd_gui_t * gui ); @@ -67,33 +66,6 @@ fd_gui_peers_printf_nodes( fd_gui_peers_ctx_t * peers, void fd_gui_peers_printf_node_all( fd_gui_peers_ctx_t * peers ); -void -fd_gui_printf_peers_gossip_update( fd_gui_t * gui, - ulong const * updated, - ulong updated_cnt, - fd_pubkey_t const * removed, - ulong removed_cnt, - ulong const * added, - ulong added_cnt ); - -void -fd_gui_printf_peers_vote_account_update( fd_gui_t * gui, - ulong const * updated, - ulong updated_cnt, - fd_pubkey_t const * removed, - ulong removed_cnt, - ulong const * added, - ulong added_cnt ); - -void -fd_gui_printf_peers_validator_info_update( fd_gui_t * gui, - ulong const * updated, - ulong updated_cnt, - fd_pubkey_t const * removed, - ulong removed_cnt, - ulong const * added, - ulong added_cnt ); - void fd_gui_printf_peers_all( fd_gui_t * gui ); diff --git a/src/disco/gui/fd_gui_tile.c b/src/disco/gui/fd_gui_tile.c index 336a34d08fa..30cd68d9c9c 100644 --- a/src/disco/gui/fd_gui_tile.c +++ b/src/disco/gui/fd_gui_tile.c @@ -8,11 +8,9 @@ #include "../../disco/gui/generated/http_import_dist.h" -/* The list of files used to serve the frontend is set here. This is a - global variable since is is populated at boot based on the - `development.gui.frontend_release_channel` option and is accessed in - the gui_http_request callback. */ -static fd_http_static_file_t * STATIC_FILES; +/* STATIC_FILES is the null-terminated list of frontend assets baked into + the binary. It is defined in generated/http_import_dist.c and accessed + in the gui_http_request callback. */ #include /* SOCK_CLOEXEC, SOCK_NONBLOCK needed for seccomp filter */ @@ -36,8 +34,6 @@ static fd_http_static_file_t * STATIC_FILES; #include "../../disco/shred/fd_shred_tile.h" #include "../../flamenco/accdb/fd_accdb_shmem.h" -#define IN_KIND_PLUGIN ( 0UL) -#define IN_KIND_POH_PACK ( 1UL) #define IN_KIND_PACK_EXECLE ( 2UL) #define IN_KIND_PACK_POH ( 3UL) #define IN_KIND_EXECLE_POH ( 4UL) @@ -220,7 +216,7 @@ before_credit( fd_gui_ctx_t * ctx, int charge_poll = 0; charge_poll |= fd_gui_poll( ctx->gui, fd_clock_tile_now( ctx->clock ) ); - if( FD_UNLIKELY( ctx->is_full_client ) ) charge_poll |= fd_gui_peers_poll( ctx->peers, fd_clock_tile_now( ctx->clock ) ); + charge_poll |= fd_gui_peers_poll( ctx->peers, fd_clock_tile_now( ctx->clock ) ); *charge_busy = charge_busy_server | charge_poll; } @@ -251,25 +247,6 @@ during_frag( fd_gui_ctx_t * ctx, uchar * src = (uchar *)fd_chunk_to_laddr( ctx->in[ in_idx ].mem, chunk ); - if( FD_LIKELY( ctx->in_kind[ in_idx ]==IN_KIND_PLUGIN ) ) { - /* ... todo... sigh, sz is not correct since it's too big */ - if( FD_LIKELY( sig==FD_PLUGIN_MSG_GOSSIP_UPDATE ) ) { - ulong peer_cnt = FD_LOAD( ulong, src ); - FD_TEST( peer_cnt<=FD_GUI_MAX_PEER_CNT ); - sz = 8UL + peer_cnt*FD_GOSSIP_LINK_MSG_SIZE; - } else if( FD_LIKELY( sig==FD_PLUGIN_MSG_VOTE_ACCOUNT_UPDATE ) ) { - ulong peer_cnt = FD_LOAD( ulong, src ); - FD_TEST( peer_cnt<=FD_GUI_MAX_PEER_CNT ); - sz = 8UL + peer_cnt*112UL; - } else if( FD_UNLIKELY( sig==FD_PLUGIN_MSG_LEADER_SCHEDULE ) ) { - ulong staked_vote_cnt = FD_LOAD( ulong, src+8UL ); - ulong staked_id_cnt = FD_LOAD( ulong, src+16UL ); - FD_TEST( staked_vote_cnt<=MAX_COMPRESSED_STAKE_WEIGHTS ); - FD_TEST( staked_id_cnt<=MAX_SHRED_DESTS ); - sz = fd_stake_weight_msg_sz( staked_vote_cnt, staked_id_cnt ); - } - } - if( FD_LIKELY( ctx->in_kind[ in_idx ]==IN_KIND_EPOCH ) ) { fd_epoch_info_msg_t * epoch_info = (fd_epoch_info_msg_t *)src; FD_TEST( epoch_info->staked_vote_cnt<=MAX_COMPRESSED_STAKE_WEIGHTS ); @@ -290,7 +267,6 @@ during_frag( fd_gui_ctx_t * ctx, switch( ctx->in_kind[ in_idx ] ) { case IN_KIND_REPAIR_NET: { - FD_TEST( ctx->is_full_client ); ctx->parsed.repair_net.slot = ULONG_MAX; uchar * payload; ulong payload_sz; @@ -305,14 +281,12 @@ during_frag( fd_gui_ctx_t * ctx, break; } case IN_KIND_NET_GOSSVF: { - FD_TEST( ctx->is_full_client ); FD_TEST( sz<=sizeof(ctx->parsed.net_gossvf) ); uchar const * net_src = fd_net_rx_translate_frag( &ctx->net_in_bounds[ in_idx ], chunk, ctl, sz ); fd_memcpy( ctx->parsed.net_gossvf, net_src, sz ); break; } case IN_KIND_GOSSIP_NET: { - FD_TEST( ctx->is_full_client ); FD_TEST( sz<=sizeof(ctx->parsed.gossip_net) ); fd_memcpy( ctx->parsed.gossip_net, src, sz ); break; @@ -337,14 +311,8 @@ after_frag( fd_gui_ctx_t * ctx, uchar * src = (uchar *)fd_chunk_to_laddr( ctx->in[ in_idx ].mem, ctx->chunk ); - switch ( ctx->in_kind[ in_idx ] ) { - case IN_KIND_PLUGIN: { - FD_TEST( !ctx->is_full_client ); - fd_gui_plugin_message( ctx->gui, sig, src, fd_clock_tile_now( ctx->clock ) ); - break; - } + switch( ctx->in_kind[ in_idx ] ) { case IN_KIND_EXECRP_REPLAY: { - FD_TEST( ctx->is_full_client ); if( FD_LIKELY( sig>>32==FD_EXECRP_TT_TXN_EXEC ) ) { fd_execrp_task_done_msg_t * msg = (fd_execrp_task_done_msg_t *)src; @@ -365,7 +333,6 @@ after_frag( fd_gui_ctx_t * ctx, break; } case IN_KIND_REPLAY_OUT: { - FD_TEST( ctx->is_full_client ); if( FD_UNLIKELY( sig==REPLAY_SIG_SLOT_COMPLETED ) ) { fd_replay_slot_completed_t const * slot_completed = (fd_replay_slot_completed_t const *)src; @@ -381,21 +348,16 @@ after_frag( fd_gui_ctx_t * ctx, break; } case IN_KIND_EPOCH: { - FD_TEST( ctx->is_full_client ); - fd_epoch_info_msg_t * epoch_info = (fd_epoch_info_msg_t *)src; fd_gui_handle_epoch_info( ctx->gui, epoch_info, fd_clock_tile_now( ctx->clock ) ); fd_gui_peers_handle_epoch_info( ctx->peers, epoch_info, fd_clock_tile_now( ctx->clock ) ); break; } case IN_KIND_SNAPIN: { - FD_TEST( ctx->is_full_client ); fd_gui_peers_handle_config_account( ctx->peers, src, sz ); break; } case IN_KIND_SNAPIN_MANIF: { - FD_TEST( ctx->is_full_client ); - if( fd_ssmsg_sig_message( sig )==FD_SSMSG_DONE ) { fd_gui_peers_commit_snapshot_manifest( ctx->peers ); } else { @@ -405,13 +367,11 @@ after_frag( fd_gui_ctx_t * ctx, break; } case IN_KIND_GENESI_OUT: { - FD_TEST( ctx->is_full_client ); fd_genesis_meta_t const * meta = (fd_genesis_meta_t const *)src; fd_gui_handle_genesis_hash( ctx->gui, &meta->genesis_hash ); break; } case IN_KIND_TOWER_OUT: { - FD_TEST( ctx->is_full_client ); if( FD_LIKELY( sig==FD_TOWER_SIG_SLOT_DONE )) { fd_tower_slot_done_t const * tower = (fd_tower_slot_done_t const *)src; fd_gui_handle_tower_update( ctx->gui, tower, fd_clock_tile_now( ctx->clock ) ); @@ -422,7 +382,6 @@ after_frag( fd_gui_ctx_t * ctx, break; } case IN_KIND_SHRED_OUT: { - FD_TEST( ctx->is_full_client ); long tsorig_nanos = ctx->ref_wallclock + (long)((double)(fd_frag_meta_ts_decomp( tsorig, fd_tickcount() ) - ctx->ref_tickcount) / ctx->tick_per_ns); uint sig_src = fd_shred_sig_src( sig ); if( FD_LIKELY( sig_src==SHRED_SIG_SRC_TURBINE || sig_src==SHRED_SIG_SRC_REPAIR || sig_src==SHRED_SIG_SRC_BAD_REPAIR ) ) { @@ -440,7 +399,6 @@ after_frag( fd_gui_ctx_t * ctx, break; } case IN_KIND_SNAPCT: { - FD_TEST( ctx->is_full_client ); fd_gui_handle_snapshot_update( ctx->gui, (fd_snapct_update_t *)src ); break; } @@ -451,7 +409,6 @@ after_frag( fd_gui_ctx_t * ctx, break; } case IN_KIND_NET_GOSSVF: { - FD_TEST( ctx->is_full_client ); uchar * payload; ulong payload_sz; fd_ip4_hdr_t * ip4_hdr; @@ -467,7 +424,6 @@ after_frag( fd_gui_ctx_t * ctx, break; } case IN_KIND_GOSSIP_NET: { - FD_TEST( ctx->is_full_client ); uchar * payload; ulong payload_sz; fd_ip4_hdr_t * ip4_hdr; @@ -482,17 +438,9 @@ after_frag( fd_gui_ctx_t * ctx, break; } case IN_KIND_GOSSIP_OUT: { - FD_TEST( ctx->is_full_client ); fd_gui_peers_handle_gossip_update( ctx->peers, (fd_gossip_update_message_t *)src, fd_clock_tile_now( ctx->clock ) ); break; } - case IN_KIND_POH_PACK: { - FD_TEST( !ctx->is_full_client ); - FD_TEST( fd_disco_poh_sig_pkt_type( sig )==POH_PKT_TYPE_BECAME_LEADER ); - fd_became_leader_t * became_leader = (fd_became_leader_t *)src; - fd_gui_became_leader( ctx->gui, fd_disco_poh_sig_slot( sig ), became_leader->slot_start_ns, became_leader->slot_end_ns, became_leader->limits.slot_max_cost, became_leader->max_microblocks_in_slot ); - break; - } case IN_KIND_PACK_POH: { fd_gui_unbecame_leader( ctx->gui, fd_disco_execle_sig_slot( sig ), (fd_done_packing_t const *)src, fd_clock_tile_now( ctx->clock ) ); break; @@ -583,7 +531,6 @@ gui_http_request( fd_http_server_request_t const * request ) { !strncmp( request->path, "/gossip?", strlen("/gossip?") ) || !strncmp( request->path, "/accounts?", strlen("/accounts?") ); - FD_TEST( STATIC_FILES ); for( fd_http_static_file_t const * f = STATIC_FILES; f->name; f++ ) { if( !strcmp( request->path, f->name ) || (!strcmp( f->name, "/index.html" ) && is_vite_page) ) { @@ -650,7 +597,7 @@ gui_ws_open( ulong conn_id, fd_gui_ctx_t * ctx = (fd_gui_ctx_t *)_ctx; fd_gui_ws_open( ctx->gui, conn_id, fd_clock_tile_now( ctx->clock ) ); - if( FD_UNLIKELY( ctx->is_full_client ) ) fd_gui_peers_ws_open( ctx->peers, conn_id, fd_clock_tile_now( ctx->clock ) ); + fd_gui_peers_ws_open( ctx->peers, conn_id, fd_clock_tile_now( ctx->clock ) ); } static void @@ -659,7 +606,7 @@ gui_ws_close( ulong conn_id, void * _ctx ) { (void) reason; fd_gui_ctx_t * ctx = (fd_gui_ctx_t *)_ctx; - if( FD_UNLIKELY( ctx->is_full_client ) ) fd_gui_peers_ws_close( ctx->peers, conn_id ); + fd_gui_peers_ws_close( ctx->peers, conn_id ); } static void @@ -670,7 +617,7 @@ gui_ws_message( ulong ws_conn_id, fd_gui_ctx_t * ctx = (fd_gui_ctx_t *)_ctx; int reason = fd_gui_ws_message( ctx->gui, ws_conn_id, data, data_len ); - if( FD_UNLIKELY( ctx->is_full_client && reason==FD_HTTP_SERVER_CONNECTION_CLOSE_UNKNOWN_METHOD ) ) reason = fd_gui_peers_ws_message( ctx->peers, ws_conn_id, data, data_len ); + if( FD_UNLIKELY( reason==FD_HTTP_SERVER_CONNECTION_CLOSE_UNKNOWN_METHOD ) ) reason = fd_gui_peers_ws_message( ctx->peers, ws_conn_id, data, data_len ); if( FD_UNLIKELY( reason<0 ) ) fd_http_server_ws_close( ctx->gui_server, ws_conn_id, reason ); } @@ -718,14 +665,6 @@ unprivileged_init( fd_topo_t const * topo, fd_topo_tile_t const * tile ) { void * scratch = fd_topo_obj_laddr( topo, tile->tile_obj_id ); - fd_topo_tile_t const * gui_tile = &topo->tiles[ fd_topo_find_tile( topo, "gui", 0UL ) ]; - switch( gui_tile->gui.frontend_release_channel ) { - case 0: STATIC_FILES = STATIC_FILES_STABLE; break; - case 1: STATIC_FILES = STATIC_FILES_ALPHA; break; - case 2: STATIC_FILES = STATIC_FILES_DEV; break; - default: FD_LOG_CRIT(( "invalid frontend_release_channel %d", gui_tile->gui.frontend_release_channel )); - } - fd_http_server_params_t http_param = derive_http_params( tile ); FD_SCRATCH_ALLOC_INIT( l, scratch ); fd_gui_ctx_t * ctx = FD_SCRATCH_ALLOC_APPEND( l, alignof( fd_gui_ctx_t ), sizeof( fd_gui_ctx_t ) ); @@ -776,35 +715,29 @@ unprivileged_init( fd_topo_t const * topo, fd_topo_link_t const * link = &topo->links[ tile->in_link_id[ i ] ]; fd_topo_wksp_t const * link_wksp = &topo->workspaces[ topo->objs[ link->dcache_obj_id ].wksp_id ]; - if( FD_LIKELY( !strcmp( link->name, "plugin_out" ) ) ) ctx->in_kind[ i ] = IN_KIND_PLUGIN; - else if( FD_LIKELY( !strcmp( link->name, "poh_pack" ) ) ) ctx->in_kind[ i ] = IN_KIND_POH_PACK; /* full client only */ - else if( FD_LIKELY( !strcmp( link->name, "pohh_pack" ) ) ) ctx->in_kind[ i ] = IN_KIND_POH_PACK; /* frank only */ - else if( FD_LIKELY( !strcmp( link->name, "pack_bank" ) ) ) ctx->in_kind[ i ] = IN_KIND_PACK_EXECLE; - else if( FD_LIKELY( !strcmp( link->name, "pack_execle" ) ) ) ctx->in_kind[ i ] = IN_KIND_PACK_EXECLE; - else if( FD_LIKELY( !strcmp( link->name, "pack_poh" ) ) ) ctx->in_kind[ i ] = IN_KIND_PACK_POH; /* full client only */ - else if( FD_LIKELY( !strcmp( link->name, "pack_pohh" ) ) ) ctx->in_kind[ i ] = IN_KIND_PACK_POH; /* frank only */ - else if( FD_LIKELY( !strcmp( link->name, "execle_poh" ) ) ) ctx->in_kind[ i ] = IN_KIND_EXECLE_POH; /* full client only */ - else if( FD_LIKELY( !strcmp( link->name, "bank_pohh" ) ) ) ctx->in_kind[ i ] = IN_KIND_EXECLE_POH; /* frank only */ - else if( FD_LIKELY( !strcmp( link->name, "shred_out" ) ) ) ctx->in_kind[ i ] = IN_KIND_SHRED_OUT; /* full client only */ + if( FD_LIKELY( !strcmp( link->name, "pack_execle" ) ) ) ctx->in_kind[ i ] = IN_KIND_PACK_EXECLE; + else if( FD_LIKELY( !strcmp( link->name, "pack_poh" ) ) ) ctx->in_kind[ i ] = IN_KIND_PACK_POH; + else if( FD_LIKELY( !strcmp( link->name, "execle_poh" ) ) ) ctx->in_kind[ i ] = IN_KIND_EXECLE_POH; + else if( FD_LIKELY( !strcmp( link->name, "shred_out" ) ) ) ctx->in_kind[ i ] = IN_KIND_SHRED_OUT; else if( FD_LIKELY( !strcmp( link->name, "net_gossvf" ) ) ) { ctx->in_kind[ i ] = IN_KIND_NET_GOSSVF; fd_net_rx_bounds_init( &ctx->net_in_bounds[ i ], link->dcache ); } - else if( FD_LIKELY( !strcmp( link->name, "gossip_net" ) ) ) ctx->in_kind[ i ] = IN_KIND_GOSSIP_NET; /* full client only */ - else if( FD_LIKELY( !strcmp( link->name, "gossip_out" ) ) ) ctx->in_kind[ i ] = IN_KIND_GOSSIP_OUT; /* full client only */ - else if( FD_LIKELY( !strcmp( link->name, "snapct_gui" ) ) ) ctx->in_kind[ i ] = IN_KIND_SNAPCT; /* full client only */ - else if( FD_LIKELY( !strcmp( link->name, "repair_net" ) ) ) ctx->in_kind[ i ] = IN_KIND_REPAIR_NET; /* full client only */ - else if( FD_LIKELY( !strcmp( link->name, "tower_out" ) ) ) ctx->in_kind[ i ] = IN_KIND_TOWER_OUT; /* full client only */ - else if( FD_LIKELY( !strcmp( link->name, "replay_out" ) ) ) ctx->in_kind[ i ] = IN_KIND_REPLAY_OUT; /* full client only */ - else if( FD_LIKELY( !strcmp( link->name, "replay_epoch" ) ) ) ctx->in_kind[ i ] = IN_KIND_EPOCH; /* full client only */ - else if( FD_LIKELY( !strcmp( link->name, "genesi_out" ) ) ) ctx->in_kind[ i ] = IN_KIND_GENESI_OUT; /* full client only */ - else if( FD_LIKELY( !strcmp( link->name, "snapin_gui" ) ) ) ctx->in_kind[ i ] = IN_KIND_SNAPIN; /* full client only */ - else if( FD_LIKELY( !strcmp( link->name, "snapin_manif" ) ) ) ctx->in_kind[ i ] = IN_KIND_SNAPIN_MANIF; /* full client only */ - else if( FD_LIKELY( !strcmp( link->name, "execrp_replay" ) ) ) ctx->in_kind[ i ] = IN_KIND_EXECRP_REPLAY; /* full client only */ - else if( FD_LIKELY( !strcmp( link->name, "bundle_status" ) ) ) ctx->in_kind[ i ] = IN_KIND_BUNDLE; /* full client only */ + else if( FD_LIKELY( !strcmp( link->name, "gossip_net" ) ) ) ctx->in_kind[ i ] = IN_KIND_GOSSIP_NET; + else if( FD_LIKELY( !strcmp( link->name, "gossip_out" ) ) ) ctx->in_kind[ i ] = IN_KIND_GOSSIP_OUT; + else if( FD_LIKELY( !strcmp( link->name, "snapct_gui" ) ) ) ctx->in_kind[ i ] = IN_KIND_SNAPCT; + else if( FD_LIKELY( !strcmp( link->name, "repair_net" ) ) ) ctx->in_kind[ i ] = IN_KIND_REPAIR_NET; + else if( FD_LIKELY( !strcmp( link->name, "tower_out" ) ) ) ctx->in_kind[ i ] = IN_KIND_TOWER_OUT; + else if( FD_LIKELY( !strcmp( link->name, "replay_out" ) ) ) ctx->in_kind[ i ] = IN_KIND_REPLAY_OUT; + else if( FD_LIKELY( !strcmp( link->name, "replay_epoch" ) ) ) ctx->in_kind[ i ] = IN_KIND_EPOCH; + else if( FD_LIKELY( !strcmp( link->name, "genesi_out" ) ) ) ctx->in_kind[ i ] = IN_KIND_GENESI_OUT; + else if( FD_LIKELY( !strcmp( link->name, "snapin_gui" ) ) ) ctx->in_kind[ i ] = IN_KIND_SNAPIN; + else if( FD_LIKELY( !strcmp( link->name, "snapin_manif" ) ) ) ctx->in_kind[ i ] = IN_KIND_SNAPIN_MANIF; + else if( FD_LIKELY( !strcmp( link->name, "execrp_replay" ) ) ) ctx->in_kind[ i ] = IN_KIND_EXECRP_REPLAY; + else if( FD_LIKELY( !strcmp( link->name, "bundle_status" ) ) ) ctx->in_kind[ i ] = IN_KIND_BUNDLE; else FD_LOG_ERR(( "gui tile has unexpected input link %lu %s", i, link->name )); - if( FD_LIKELY( !strcmp( link->name, "bank_pohh" ) || !strcmp( link->name, "execle_poh" ) ) ) { + if( FD_LIKELY( !strcmp( link->name, "execle_poh" ) ) ) { ulong producer = fd_topo_find_link_producer( topo, &topo->links[ tile->in_link_id[ i ] ] ); ctx->in_bank_idx[ i ] = topo->tiles[ producer ].kind_id; } diff --git a/src/disco/gui/generated/http_import_dist.c b/src/disco/gui/generated/http_import_dist.c index 9b1a021a743..15da1a7e8e9 100644 --- a/src/disco/gui/generated/http_import_dist.c +++ b/src/disco/gui/generated/http_import_dist.c @@ -1,714 +1,247 @@ /* THIS FILE WAS GENERATED BY make frontend. DO NOT EDIT BY HAND! */ #include "http_import_dist.h" -FD_IMPORT_BINARY( file_stable0, "src/disco/gui/dist_stable/LICENSE_DEPENDENCIES" ); -FD_IMPORT_BINARY( file_stable0_zstd, "src/disco/gui/dist_stable_cmp/LICENSE_DEPENDENCIES.zst" ); -FD_IMPORT_BINARY( file_stable0_gzip, "src/disco/gui/dist_stable_cmp/LICENSE_DEPENDENCIES.gz" ); -FD_IMPORT_BINARY( file_stable1, "src/disco/gui/dist_stable/assets/NotoFlagsOnly.woff2" ); -FD_IMPORT_BINARY( file_stable1_zstd, "src/disco/gui/dist_stable_cmp/assets/NotoFlagsOnly.woff2.zst" ); -FD_IMPORT_BINARY( file_stable1_gzip, "src/disco/gui/dist_stable_cmp/assets/NotoFlagsOnly.woff2.gz" ); -FD_IMPORT_BINARY( file_stable2, "src/disco/gui/dist_stable/assets/firedancer-D_J0EzUc.svg" ); -FD_IMPORT_BINARY( file_stable2_zstd, "src/disco/gui/dist_stable_cmp/assets/firedancer-D_J0EzUc.svg.zst" ); -FD_IMPORT_BINARY( file_stable2_gzip, "src/disco/gui/dist_stable_cmp/assets/firedancer-D_J0EzUc.svg.gz" ); -FD_IMPORT_BINARY( file_stable3, "src/disco/gui/dist_stable/assets/firedancer_circle_logo-D9jlxCje.svg" ); -FD_IMPORT_BINARY( file_stable3_zstd, "src/disco/gui/dist_stable_cmp/assets/firedancer_circle_logo-D9jlxCje.svg.zst" ); -FD_IMPORT_BINARY( file_stable3_gzip, "src/disco/gui/dist_stable_cmp/assets/firedancer_circle_logo-D9jlxCje.svg.gz" ); -FD_IMPORT_BINARY( file_stable4, "src/disco/gui/dist_stable/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg" ); -FD_IMPORT_BINARY( file_stable4_zstd, "src/disco/gui/dist_stable_cmp/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg.zst" ); -FD_IMPORT_BINARY( file_stable4_gzip, "src/disco/gui/dist_stable_cmp/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg.gz" ); -FD_IMPORT_BINARY( file_stable5, "src/disco/gui/dist_stable/assets/firedancer_logo-CrgwxzPk.svg" ); -FD_IMPORT_BINARY( file_stable5_zstd, "src/disco/gui/dist_stable_cmp/assets/firedancer_logo-CrgwxzPk.svg.zst" ); -FD_IMPORT_BINARY( file_stable5_gzip, "src/disco/gui/dist_stable_cmp/assets/firedancer_logo-CrgwxzPk.svg.gz" ); -FD_IMPORT_BINARY( file_stable6, "src/disco/gui/dist_stable/assets/frankendancer-0Top5G94.svg" ); -FD_IMPORT_BINARY( file_stable6_zstd, "src/disco/gui/dist_stable_cmp/assets/frankendancer-0Top5G94.svg.zst" ); -FD_IMPORT_BINARY( file_stable6_gzip, "src/disco/gui/dist_stable_cmp/assets/frankendancer-0Top5G94.svg.gz" ); -FD_IMPORT_BINARY( file_stable7, "src/disco/gui/dist_stable/assets/frankendancer_circle_logo-D5z79vwQ.svg" ); -FD_IMPORT_BINARY( file_stable7_zstd, "src/disco/gui/dist_stable_cmp/assets/frankendancer_circle_logo-D5z79vwQ.svg.zst" ); -FD_IMPORT_BINARY( file_stable7_gzip, "src/disco/gui/dist_stable_cmp/assets/frankendancer_circle_logo-D5z79vwQ.svg.gz" ); -FD_IMPORT_BINARY( file_stable8, "src/disco/gui/dist_stable/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg" ); -FD_IMPORT_BINARY( file_stable8_zstd, "src/disco/gui/dist_stable_cmp/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg.zst" ); -FD_IMPORT_BINARY( file_stable8_gzip, "src/disco/gui/dist_stable_cmp/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg.gz" ); -FD_IMPORT_BINARY( file_stable9, "src/disco/gui/dist_stable/assets/frankendancer_logo-CHyfJ772.svg" ); -FD_IMPORT_BINARY( file_stable9_zstd, "src/disco/gui/dist_stable_cmp/assets/frankendancer_logo-CHyfJ772.svg.zst" ); -FD_IMPORT_BINARY( file_stable9_gzip, "src/disco/gui/dist_stable_cmp/assets/frankendancer_logo-CHyfJ772.svg.gz" ); -FD_IMPORT_BINARY( file_stable10, "src/disco/gui/dist_stable/assets/index-ColMY7Rf.css" ); -FD_IMPORT_BINARY( file_stable10_zstd, "src/disco/gui/dist_stable_cmp/assets/index-ColMY7Rf.css.zst" ); -FD_IMPORT_BINARY( file_stable10_gzip, "src/disco/gui/dist_stable_cmp/assets/index-ColMY7Rf.css.gz" ); -FD_IMPORT_BINARY( file_stable11, "src/disco/gui/dist_stable/assets/index-CvU-WPyd.js" ); -FD_IMPORT_BINARY( file_stable11_zstd, "src/disco/gui/dist_stable_cmp/assets/index-CvU-WPyd.js.zst" ); -FD_IMPORT_BINARY( file_stable11_gzip, "src/disco/gui/dist_stable_cmp/assets/index-CvU-WPyd.js.gz" ); -FD_IMPORT_BINARY( file_stable12, "src/disco/gui/dist_stable/assets/inter-tight-latin-400-normal-BLrFJfvD.woff" ); -FD_IMPORT_BINARY( file_stable12_zstd, "src/disco/gui/dist_stable_cmp/assets/inter-tight-latin-400-normal-BLrFJfvD.woff.zst" ); -FD_IMPORT_BINARY( file_stable12_gzip, "src/disco/gui/dist_stable_cmp/assets/inter-tight-latin-400-normal-BLrFJfvD.woff.gz" ); -FD_IMPORT_BINARY( file_stable13, "src/disco/gui/dist_stable/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2" ); -FD_IMPORT_BINARY( file_stable13_zstd, "src/disco/gui/dist_stable_cmp/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2.zst" ); -FD_IMPORT_BINARY( file_stable13_gzip, "src/disco/gui/dist_stable_cmp/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2.gz" ); -FD_IMPORT_BINARY( file_stable14, "src/disco/gui/dist_stable/assets/privateYou-DnAsYVZD.svg" ); -FD_IMPORT_BINARY( file_stable14_zstd, "src/disco/gui/dist_stable_cmp/assets/privateYou-DnAsYVZD.svg.zst" ); -FD_IMPORT_BINARY( file_stable14_gzip, "src/disco/gui/dist_stable_cmp/assets/privateYou-DnAsYVZD.svg.gz" ); -FD_IMPORT_BINARY( file_stable15, "src/disco/gui/dist_stable/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff" ); -FD_IMPORT_BINARY( file_stable15_zstd, "src/disco/gui/dist_stable_cmp/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff.zst" ); -FD_IMPORT_BINARY( file_stable15_gzip, "src/disco/gui/dist_stable_cmp/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff.gz" ); -FD_IMPORT_BINARY( file_stable16, "src/disco/gui/dist_stable/assets/roboto-mono-latin-400-normal-GekRknry.woff2" ); -FD_IMPORT_BINARY( file_stable16_zstd, "src/disco/gui/dist_stable_cmp/assets/roboto-mono-latin-400-normal-GekRknry.woff2.zst" ); -FD_IMPORT_BINARY( file_stable16_gzip, "src/disco/gui/dist_stable_cmp/assets/roboto-mono-latin-400-normal-GekRknry.woff2.gz" ); -FD_IMPORT_BINARY( file_stable17, "src/disco/gui/dist_stable/assets/wsWorker-DTUp_HyV.js" ); -FD_IMPORT_BINARY( file_stable17_zstd, "src/disco/gui/dist_stable_cmp/assets/wsWorker-DTUp_HyV.js.zst" ); -FD_IMPORT_BINARY( file_stable17_gzip, "src/disco/gui/dist_stable_cmp/assets/wsWorker-DTUp_HyV.js.gz" ); -FD_IMPORT_BINARY( file_stable18, "src/disco/gui/dist_stable/index.html" ); -FD_IMPORT_BINARY( file_stable18_zstd, "src/disco/gui/dist_stable_cmp/index.html.zst" ); -FD_IMPORT_BINARY( file_stable18_gzip, "src/disco/gui/dist_stable_cmp/index.html.gz" ); -FD_IMPORT_BINARY( file_stable19, "src/disco/gui/dist_stable/version" ); -FD_IMPORT_BINARY( file_stable19_zstd, "src/disco/gui/dist_stable_cmp/version.zst" ); -FD_IMPORT_BINARY( file_stable19_gzip, "src/disco/gui/dist_stable_cmp/version.gz" ); +FD_IMPORT_BINARY( file_0, "src/disco/gui/dist/LICENSE_DEPENDENCIES" ); +FD_IMPORT_BINARY( file_0_zstd, "src/disco/gui/dist_cmp/LICENSE_DEPENDENCIES.zst" ); +FD_IMPORT_BINARY( file_0_gzip, "src/disco/gui/dist_cmp/LICENSE_DEPENDENCIES.gz" ); +FD_IMPORT_BINARY( file_1, "src/disco/gui/dist/assets/NotoFlagsOnly.woff2" ); +FD_IMPORT_BINARY( file_1_zstd, "src/disco/gui/dist_cmp/assets/NotoFlagsOnly.woff2.zst" ); +FD_IMPORT_BINARY( file_1_gzip, "src/disco/gui/dist_cmp/assets/NotoFlagsOnly.woff2.gz" ); +FD_IMPORT_BINARY( file_2, "src/disco/gui/dist/assets/firedancer-D_J0EzUc.svg" ); +FD_IMPORT_BINARY( file_2_zstd, "src/disco/gui/dist_cmp/assets/firedancer-D_J0EzUc.svg.zst" ); +FD_IMPORT_BINARY( file_2_gzip, "src/disco/gui/dist_cmp/assets/firedancer-D_J0EzUc.svg.gz" ); +FD_IMPORT_BINARY( file_3, "src/disco/gui/dist/assets/firedancer_circle_logo-D9jlxCje.svg" ); +FD_IMPORT_BINARY( file_3_zstd, "src/disco/gui/dist_cmp/assets/firedancer_circle_logo-D9jlxCje.svg.zst" ); +FD_IMPORT_BINARY( file_3_gzip, "src/disco/gui/dist_cmp/assets/firedancer_circle_logo-D9jlxCje.svg.gz" ); +FD_IMPORT_BINARY( file_4, "src/disco/gui/dist/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg" ); +FD_IMPORT_BINARY( file_4_zstd, "src/disco/gui/dist_cmp/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg.zst" ); +FD_IMPORT_BINARY( file_4_gzip, "src/disco/gui/dist_cmp/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg.gz" ); +FD_IMPORT_BINARY( file_5, "src/disco/gui/dist/assets/firedancer_logo-CrgwxzPk.svg" ); +FD_IMPORT_BINARY( file_5_zstd, "src/disco/gui/dist_cmp/assets/firedancer_logo-CrgwxzPk.svg.zst" ); +FD_IMPORT_BINARY( file_5_gzip, "src/disco/gui/dist_cmp/assets/firedancer_logo-CrgwxzPk.svg.gz" ); +FD_IMPORT_BINARY( file_6, "src/disco/gui/dist/assets/frankendancer-0Top5G94.svg" ); +FD_IMPORT_BINARY( file_6_zstd, "src/disco/gui/dist_cmp/assets/frankendancer-0Top5G94.svg.zst" ); +FD_IMPORT_BINARY( file_6_gzip, "src/disco/gui/dist_cmp/assets/frankendancer-0Top5G94.svg.gz" ); +FD_IMPORT_BINARY( file_7, "src/disco/gui/dist/assets/frankendancer_circle_logo-D5z79vwQ.svg" ); +FD_IMPORT_BINARY( file_7_zstd, "src/disco/gui/dist_cmp/assets/frankendancer_circle_logo-D5z79vwQ.svg.zst" ); +FD_IMPORT_BINARY( file_7_gzip, "src/disco/gui/dist_cmp/assets/frankendancer_circle_logo-D5z79vwQ.svg.gz" ); +FD_IMPORT_BINARY( file_8, "src/disco/gui/dist/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg" ); +FD_IMPORT_BINARY( file_8_zstd, "src/disco/gui/dist_cmp/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg.zst" ); +FD_IMPORT_BINARY( file_8_gzip, "src/disco/gui/dist_cmp/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg.gz" ); +FD_IMPORT_BINARY( file_9, "src/disco/gui/dist/assets/frankendancer_logo-CHyfJ772.svg" ); +FD_IMPORT_BINARY( file_9_zstd, "src/disco/gui/dist_cmp/assets/frankendancer_logo-CHyfJ772.svg.zst" ); +FD_IMPORT_BINARY( file_9_gzip, "src/disco/gui/dist_cmp/assets/frankendancer_logo-CHyfJ772.svg.gz" ); +FD_IMPORT_BINARY( file_10, "src/disco/gui/dist/assets/index-C054xcgF.js" ); +FD_IMPORT_BINARY( file_10_zstd, "src/disco/gui/dist_cmp/assets/index-C054xcgF.js.zst" ); +FD_IMPORT_BINARY( file_10_gzip, "src/disco/gui/dist_cmp/assets/index-C054xcgF.js.gz" ); +FD_IMPORT_BINARY( file_11, "src/disco/gui/dist/assets/index-qV0ZL8w9.css" ); +FD_IMPORT_BINARY( file_11_zstd, "src/disco/gui/dist_cmp/assets/index-qV0ZL8w9.css.zst" ); +FD_IMPORT_BINARY( file_11_gzip, "src/disco/gui/dist_cmp/assets/index-qV0ZL8w9.css.gz" ); +FD_IMPORT_BINARY( file_12, "src/disco/gui/dist/assets/inter-tight-latin-400-normal-BLrFJfvD.woff" ); +FD_IMPORT_BINARY( file_12_zstd, "src/disco/gui/dist_cmp/assets/inter-tight-latin-400-normal-BLrFJfvD.woff.zst" ); +FD_IMPORT_BINARY( file_12_gzip, "src/disco/gui/dist_cmp/assets/inter-tight-latin-400-normal-BLrFJfvD.woff.gz" ); +FD_IMPORT_BINARY( file_13, "src/disco/gui/dist/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2" ); +FD_IMPORT_BINARY( file_13_zstd, "src/disco/gui/dist_cmp/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2.zst" ); +FD_IMPORT_BINARY( file_13_gzip, "src/disco/gui/dist_cmp/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2.gz" ); +FD_IMPORT_BINARY( file_14, "src/disco/gui/dist/assets/privateYou-DnAsYVZD.svg" ); +FD_IMPORT_BINARY( file_14_zstd, "src/disco/gui/dist_cmp/assets/privateYou-DnAsYVZD.svg.zst" ); +FD_IMPORT_BINARY( file_14_gzip, "src/disco/gui/dist_cmp/assets/privateYou-DnAsYVZD.svg.gz" ); +FD_IMPORT_BINARY( file_15, "src/disco/gui/dist/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff" ); +FD_IMPORT_BINARY( file_15_zstd, "src/disco/gui/dist_cmp/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff.zst" ); +FD_IMPORT_BINARY( file_15_gzip, "src/disco/gui/dist_cmp/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff.gz" ); +FD_IMPORT_BINARY( file_16, "src/disco/gui/dist/assets/roboto-mono-latin-400-normal-GekRknry.woff2" ); +FD_IMPORT_BINARY( file_16_zstd, "src/disco/gui/dist_cmp/assets/roboto-mono-latin-400-normal-GekRknry.woff2.zst" ); +FD_IMPORT_BINARY( file_16_gzip, "src/disco/gui/dist_cmp/assets/roboto-mono-latin-400-normal-GekRknry.woff2.gz" ); +FD_IMPORT_BINARY( file_17, "src/disco/gui/dist/assets/wsWorker-CiLy8ipA.js" ); +FD_IMPORT_BINARY( file_17_zstd, "src/disco/gui/dist_cmp/assets/wsWorker-CiLy8ipA.js.zst" ); +FD_IMPORT_BINARY( file_17_gzip, "src/disco/gui/dist_cmp/assets/wsWorker-CiLy8ipA.js.gz" ); +FD_IMPORT_BINARY( file_18, "src/disco/gui/dist/index.html" ); +FD_IMPORT_BINARY( file_18_zstd, "src/disco/gui/dist_cmp/index.html.zst" ); +FD_IMPORT_BINARY( file_18_gzip, "src/disco/gui/dist_cmp/index.html.gz" ); +FD_IMPORT_BINARY( file_19, "src/disco/gui/dist/version" ); +FD_IMPORT_BINARY( file_19_zstd, "src/disco/gui/dist_cmp/version.zst" ); +FD_IMPORT_BINARY( file_19_gzip, "src/disco/gui/dist_cmp/version.gz" ); -FD_IMPORT_BINARY( file_alpha0, "src/disco/gui/dist_alpha/LICENSE_DEPENDENCIES" ); -FD_IMPORT_BINARY( file_alpha0_zstd, "src/disco/gui/dist_alpha_cmp/LICENSE_DEPENDENCIES.zst" ); -FD_IMPORT_BINARY( file_alpha0_gzip, "src/disco/gui/dist_alpha_cmp/LICENSE_DEPENDENCIES.gz" ); -FD_IMPORT_BINARY( file_alpha1, "src/disco/gui/dist_alpha/assets/firedancer-D_J0EzUc.svg" ); -FD_IMPORT_BINARY( file_alpha1_zstd, "src/disco/gui/dist_alpha_cmp/assets/firedancer-D_J0EzUc.svg.zst" ); -FD_IMPORT_BINARY( file_alpha1_gzip, "src/disco/gui/dist_alpha_cmp/assets/firedancer-D_J0EzUc.svg.gz" ); -FD_IMPORT_BINARY( file_alpha2, "src/disco/gui/dist_alpha/assets/firedancer_logo-CrgwxzPk.svg" ); -FD_IMPORT_BINARY( file_alpha2_zstd, "src/disco/gui/dist_alpha_cmp/assets/firedancer_logo-CrgwxzPk.svg.zst" ); -FD_IMPORT_BINARY( file_alpha2_gzip, "src/disco/gui/dist_alpha_cmp/assets/firedancer_logo-CrgwxzPk.svg.gz" ); -FD_IMPORT_BINARY( file_alpha3, "src/disco/gui/dist_alpha/assets/firedancer_logo_circle-D9jlxCje.svg" ); -FD_IMPORT_BINARY( file_alpha3_zstd, "src/disco/gui/dist_alpha_cmp/assets/firedancer_logo_circle-D9jlxCje.svg.zst" ); -FD_IMPORT_BINARY( file_alpha3_gzip, "src/disco/gui/dist_alpha_cmp/assets/firedancer_logo_circle-D9jlxCje.svg.gz" ); -FD_IMPORT_BINARY( file_alpha4, "src/disco/gui/dist_alpha/assets/frankendancer-0Top5G94.svg" ); -FD_IMPORT_BINARY( file_alpha4_zstd, "src/disco/gui/dist_alpha_cmp/assets/frankendancer-0Top5G94.svg.zst" ); -FD_IMPORT_BINARY( file_alpha4_gzip, "src/disco/gui/dist_alpha_cmp/assets/frankendancer-0Top5G94.svg.gz" ); -FD_IMPORT_BINARY( file_alpha5, "src/disco/gui/dist_alpha/assets/frankendancer_logo-CHyfJ772.svg" ); -FD_IMPORT_BINARY( file_alpha5_zstd, "src/disco/gui/dist_alpha_cmp/assets/frankendancer_logo-CHyfJ772.svg.zst" ); -FD_IMPORT_BINARY( file_alpha5_gzip, "src/disco/gui/dist_alpha_cmp/assets/frankendancer_logo-CHyfJ772.svg.gz" ); -FD_IMPORT_BINARY( file_alpha6, "src/disco/gui/dist_alpha/assets/frankendancer_logo_circle-D5z79vwQ.svg" ); -FD_IMPORT_BINARY( file_alpha6_zstd, "src/disco/gui/dist_alpha_cmp/assets/frankendancer_logo_circle-D5z79vwQ.svg.zst" ); -FD_IMPORT_BINARY( file_alpha6_gzip, "src/disco/gui/dist_alpha_cmp/assets/frankendancer_logo_circle-D5z79vwQ.svg.gz" ); -FD_IMPORT_BINARY( file_alpha7, "src/disco/gui/dist_alpha/assets/index-B79NUQX2.js" ); -FD_IMPORT_BINARY( file_alpha7_zstd, "src/disco/gui/dist_alpha_cmp/assets/index-B79NUQX2.js.zst" ); -FD_IMPORT_BINARY( file_alpha7_gzip, "src/disco/gui/dist_alpha_cmp/assets/index-B79NUQX2.js.gz" ); -FD_IMPORT_BINARY( file_alpha8, "src/disco/gui/dist_alpha/assets/index-BJ9rbYrC.js" ); -FD_IMPORT_BINARY( file_alpha8_zstd, "src/disco/gui/dist_alpha_cmp/assets/index-BJ9rbYrC.js.zst" ); -FD_IMPORT_BINARY( file_alpha8_gzip, "src/disco/gui/dist_alpha_cmp/assets/index-BJ9rbYrC.js.gz" ); -FD_IMPORT_BINARY( file_alpha9, "src/disco/gui/dist_alpha/assets/index-DzLX98NL.css" ); -FD_IMPORT_BINARY( file_alpha9_zstd, "src/disco/gui/dist_alpha_cmp/assets/index-DzLX98NL.css.zst" ); -FD_IMPORT_BINARY( file_alpha9_gzip, "src/disco/gui/dist_alpha_cmp/assets/index-DzLX98NL.css.gz" ); -FD_IMPORT_BINARY( file_alpha10, "src/disco/gui/dist_alpha/assets/index-cxKTti9M.css" ); -FD_IMPORT_BINARY( file_alpha10_zstd, "src/disco/gui/dist_alpha_cmp/assets/index-cxKTti9M.css.zst" ); -FD_IMPORT_BINARY( file_alpha10_gzip, "src/disco/gui/dist_alpha_cmp/assets/index-cxKTti9M.css.gz" ); -FD_IMPORT_BINARY( file_alpha11, "src/disco/gui/dist_alpha/assets/inter-tight-latin-400-normal-BLrFJfvD.woff" ); -FD_IMPORT_BINARY( file_alpha11_zstd, "src/disco/gui/dist_alpha_cmp/assets/inter-tight-latin-400-normal-BLrFJfvD.woff.zst" ); -FD_IMPORT_BINARY( file_alpha11_gzip, "src/disco/gui/dist_alpha_cmp/assets/inter-tight-latin-400-normal-BLrFJfvD.woff.gz" ); -FD_IMPORT_BINARY( file_alpha12, "src/disco/gui/dist_alpha/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2" ); -FD_IMPORT_BINARY( file_alpha12_zstd, "src/disco/gui/dist_alpha_cmp/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2.zst" ); -FD_IMPORT_BINARY( file_alpha12_gzip, "src/disco/gui/dist_alpha_cmp/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2.gz" ); -FD_IMPORT_BINARY( file_alpha13, "src/disco/gui/dist_alpha/assets/privateYou-DnAsYVZD.svg" ); -FD_IMPORT_BINARY( file_alpha13_zstd, "src/disco/gui/dist_alpha_cmp/assets/privateYou-DnAsYVZD.svg.zst" ); -FD_IMPORT_BINARY( file_alpha13_gzip, "src/disco/gui/dist_alpha_cmp/assets/privateYou-DnAsYVZD.svg.gz" ); -FD_IMPORT_BINARY( file_alpha14, "src/disco/gui/dist_alpha/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff" ); -FD_IMPORT_BINARY( file_alpha14_zstd, "src/disco/gui/dist_alpha_cmp/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff.zst" ); -FD_IMPORT_BINARY( file_alpha14_gzip, "src/disco/gui/dist_alpha_cmp/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff.gz" ); -FD_IMPORT_BINARY( file_alpha15, "src/disco/gui/dist_alpha/assets/roboto-mono-latin-400-normal-GekRknry.woff2" ); -FD_IMPORT_BINARY( file_alpha15_zstd, "src/disco/gui/dist_alpha_cmp/assets/roboto-mono-latin-400-normal-GekRknry.woff2.zst" ); -FD_IMPORT_BINARY( file_alpha15_gzip, "src/disco/gui/dist_alpha_cmp/assets/roboto-mono-latin-400-normal-GekRknry.woff2.gz" ); -FD_IMPORT_BINARY( file_alpha16, "src/disco/gui/dist_alpha/index.html" ); -FD_IMPORT_BINARY( file_alpha16_zstd, "src/disco/gui/dist_alpha_cmp/index.html.zst" ); -FD_IMPORT_BINARY( file_alpha16_gzip, "src/disco/gui/dist_alpha_cmp/index.html.gz" ); -FD_IMPORT_BINARY( file_alpha17, "src/disco/gui/dist_alpha/version" ); -FD_IMPORT_BINARY( file_alpha17_zstd, "src/disco/gui/dist_alpha_cmp/version.zst" ); -FD_IMPORT_BINARY( file_alpha17_gzip, "src/disco/gui/dist_alpha_cmp/version.gz" ); - -FD_IMPORT_BINARY( file_dev0, "src/disco/gui/dist_dev/LICENSE_DEPENDENCIES" ); -FD_IMPORT_BINARY( file_dev0_zstd, "src/disco/gui/dist_dev_cmp/LICENSE_DEPENDENCIES.zst" ); -FD_IMPORT_BINARY( file_dev0_gzip, "src/disco/gui/dist_dev_cmp/LICENSE_DEPENDENCIES.gz" ); -FD_IMPORT_BINARY( file_dev1, "src/disco/gui/dist_dev/assets/NotoFlagsOnly.woff2" ); -FD_IMPORT_BINARY( file_dev1_zstd, "src/disco/gui/dist_dev_cmp/assets/NotoFlagsOnly.woff2.zst" ); -FD_IMPORT_BINARY( file_dev1_gzip, "src/disco/gui/dist_dev_cmp/assets/NotoFlagsOnly.woff2.gz" ); -FD_IMPORT_BINARY( file_dev2, "src/disco/gui/dist_dev/assets/firedancer-D_J0EzUc.svg" ); -FD_IMPORT_BINARY( file_dev2_zstd, "src/disco/gui/dist_dev_cmp/assets/firedancer-D_J0EzUc.svg.zst" ); -FD_IMPORT_BINARY( file_dev2_gzip, "src/disco/gui/dist_dev_cmp/assets/firedancer-D_J0EzUc.svg.gz" ); -FD_IMPORT_BINARY( file_dev3, "src/disco/gui/dist_dev/assets/firedancer_circle_logo-D9jlxCje.svg" ); -FD_IMPORT_BINARY( file_dev3_zstd, "src/disco/gui/dist_dev_cmp/assets/firedancer_circle_logo-D9jlxCje.svg.zst" ); -FD_IMPORT_BINARY( file_dev3_gzip, "src/disco/gui/dist_dev_cmp/assets/firedancer_circle_logo-D9jlxCje.svg.gz" ); -FD_IMPORT_BINARY( file_dev4, "src/disco/gui/dist_dev/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg" ); -FD_IMPORT_BINARY( file_dev4_zstd, "src/disco/gui/dist_dev_cmp/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg.zst" ); -FD_IMPORT_BINARY( file_dev4_gzip, "src/disco/gui/dist_dev_cmp/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg.gz" ); -FD_IMPORT_BINARY( file_dev5, "src/disco/gui/dist_dev/assets/firedancer_logo-CrgwxzPk.svg" ); -FD_IMPORT_BINARY( file_dev5_zstd, "src/disco/gui/dist_dev_cmp/assets/firedancer_logo-CrgwxzPk.svg.zst" ); -FD_IMPORT_BINARY( file_dev5_gzip, "src/disco/gui/dist_dev_cmp/assets/firedancer_logo-CrgwxzPk.svg.gz" ); -FD_IMPORT_BINARY( file_dev6, "src/disco/gui/dist_dev/assets/frankendancer-0Top5G94.svg" ); -FD_IMPORT_BINARY( file_dev6_zstd, "src/disco/gui/dist_dev_cmp/assets/frankendancer-0Top5G94.svg.zst" ); -FD_IMPORT_BINARY( file_dev6_gzip, "src/disco/gui/dist_dev_cmp/assets/frankendancer-0Top5G94.svg.gz" ); -FD_IMPORT_BINARY( file_dev7, "src/disco/gui/dist_dev/assets/frankendancer_circle_logo-D5z79vwQ.svg" ); -FD_IMPORT_BINARY( file_dev7_zstd, "src/disco/gui/dist_dev_cmp/assets/frankendancer_circle_logo-D5z79vwQ.svg.zst" ); -FD_IMPORT_BINARY( file_dev7_gzip, "src/disco/gui/dist_dev_cmp/assets/frankendancer_circle_logo-D5z79vwQ.svg.gz" ); -FD_IMPORT_BINARY( file_dev8, "src/disco/gui/dist_dev/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg" ); -FD_IMPORT_BINARY( file_dev8_zstd, "src/disco/gui/dist_dev_cmp/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg.zst" ); -FD_IMPORT_BINARY( file_dev8_gzip, "src/disco/gui/dist_dev_cmp/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg.gz" ); -FD_IMPORT_BINARY( file_dev9, "src/disco/gui/dist_dev/assets/frankendancer_logo-CHyfJ772.svg" ); -FD_IMPORT_BINARY( file_dev9_zstd, "src/disco/gui/dist_dev_cmp/assets/frankendancer_logo-CHyfJ772.svg.zst" ); -FD_IMPORT_BINARY( file_dev9_gzip, "src/disco/gui/dist_dev_cmp/assets/frankendancer_logo-CHyfJ772.svg.gz" ); -FD_IMPORT_BINARY( file_dev10, "src/disco/gui/dist_dev/assets/index-C054xcgF.js" ); -FD_IMPORT_BINARY( file_dev10_zstd, "src/disco/gui/dist_dev_cmp/assets/index-C054xcgF.js.zst" ); -FD_IMPORT_BINARY( file_dev10_gzip, "src/disco/gui/dist_dev_cmp/assets/index-C054xcgF.js.gz" ); -FD_IMPORT_BINARY( file_dev11, "src/disco/gui/dist_dev/assets/index-qV0ZL8w9.css" ); -FD_IMPORT_BINARY( file_dev11_zstd, "src/disco/gui/dist_dev_cmp/assets/index-qV0ZL8w9.css.zst" ); -FD_IMPORT_BINARY( file_dev11_gzip, "src/disco/gui/dist_dev_cmp/assets/index-qV0ZL8w9.css.gz" ); -FD_IMPORT_BINARY( file_dev12, "src/disco/gui/dist_dev/assets/inter-tight-latin-400-normal-BLrFJfvD.woff" ); -FD_IMPORT_BINARY( file_dev12_zstd, "src/disco/gui/dist_dev_cmp/assets/inter-tight-latin-400-normal-BLrFJfvD.woff.zst" ); -FD_IMPORT_BINARY( file_dev12_gzip, "src/disco/gui/dist_dev_cmp/assets/inter-tight-latin-400-normal-BLrFJfvD.woff.gz" ); -FD_IMPORT_BINARY( file_dev13, "src/disco/gui/dist_dev/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2" ); -FD_IMPORT_BINARY( file_dev13_zstd, "src/disco/gui/dist_dev_cmp/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2.zst" ); -FD_IMPORT_BINARY( file_dev13_gzip, "src/disco/gui/dist_dev_cmp/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2.gz" ); -FD_IMPORT_BINARY( file_dev14, "src/disco/gui/dist_dev/assets/privateYou-DnAsYVZD.svg" ); -FD_IMPORT_BINARY( file_dev14_zstd, "src/disco/gui/dist_dev_cmp/assets/privateYou-DnAsYVZD.svg.zst" ); -FD_IMPORT_BINARY( file_dev14_gzip, "src/disco/gui/dist_dev_cmp/assets/privateYou-DnAsYVZD.svg.gz" ); -FD_IMPORT_BINARY( file_dev15, "src/disco/gui/dist_dev/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff" ); -FD_IMPORT_BINARY( file_dev15_zstd, "src/disco/gui/dist_dev_cmp/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff.zst" ); -FD_IMPORT_BINARY( file_dev15_gzip, "src/disco/gui/dist_dev_cmp/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff.gz" ); -FD_IMPORT_BINARY( file_dev16, "src/disco/gui/dist_dev/assets/roboto-mono-latin-400-normal-GekRknry.woff2" ); -FD_IMPORT_BINARY( file_dev16_zstd, "src/disco/gui/dist_dev_cmp/assets/roboto-mono-latin-400-normal-GekRknry.woff2.zst" ); -FD_IMPORT_BINARY( file_dev16_gzip, "src/disco/gui/dist_dev_cmp/assets/roboto-mono-latin-400-normal-GekRknry.woff2.gz" ); -FD_IMPORT_BINARY( file_dev17, "src/disco/gui/dist_dev/assets/wsWorker-CiLy8ipA.js" ); -FD_IMPORT_BINARY( file_dev17_zstd, "src/disco/gui/dist_dev_cmp/assets/wsWorker-CiLy8ipA.js.zst" ); -FD_IMPORT_BINARY( file_dev17_gzip, "src/disco/gui/dist_dev_cmp/assets/wsWorker-CiLy8ipA.js.gz" ); -FD_IMPORT_BINARY( file_dev18, "src/disco/gui/dist_dev/index.html" ); -FD_IMPORT_BINARY( file_dev18_zstd, "src/disco/gui/dist_dev_cmp/index.html.zst" ); -FD_IMPORT_BINARY( file_dev18_gzip, "src/disco/gui/dist_dev_cmp/index.html.gz" ); -FD_IMPORT_BINARY( file_dev19, "src/disco/gui/dist_dev/version" ); -FD_IMPORT_BINARY( file_dev19_zstd, "src/disco/gui/dist_dev_cmp/version.zst" ); -FD_IMPORT_BINARY( file_dev19_gzip, "src/disco/gui/dist_dev_cmp/version.gz" ); - - -fd_http_static_file_t STATIC_FILES_STABLE[] = { - { - .name = "/LICENSE_DEPENDENCIES", - .data = file_stable0, - .data_len = &file_stable0_sz, - .zstd_data = file_stable0_zstd, - .zstd_data_len = &file_stable0_zstd_sz, - .gzip_data = file_stable0_gzip, - .gzip_data_len = &file_stable0_gzip_sz, - }, - { - .name = "/assets/NotoFlagsOnly.woff2", - .data = file_stable1, - .data_len = &file_stable1_sz, - .zstd_data = file_stable1_zstd, - .zstd_data_len = &file_stable1_zstd_sz, - .gzip_data = file_stable1_gzip, - .gzip_data_len = &file_stable1_gzip_sz, - }, - { - .name = "/assets/firedancer-D_J0EzUc.svg", - .data = file_stable2, - .data_len = &file_stable2_sz, - .zstd_data = file_stable2_zstd, - .zstd_data_len = &file_stable2_zstd_sz, - .gzip_data = file_stable2_gzip, - .gzip_data_len = &file_stable2_gzip_sz, - }, - { - .name = "/assets/firedancer_circle_logo-D9jlxCje.svg", - .data = file_stable3, - .data_len = &file_stable3_sz, - .zstd_data = file_stable3_zstd, - .zstd_data_len = &file_stable3_zstd_sz, - .gzip_data = file_stable3_gzip, - .gzip_data_len = &file_stable3_gzip_sz, - }, - { - .name = "/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg", - .data = file_stable4, - .data_len = &file_stable4_sz, - .zstd_data = file_stable4_zstd, - .zstd_data_len = &file_stable4_zstd_sz, - .gzip_data = file_stable4_gzip, - .gzip_data_len = &file_stable4_gzip_sz, - }, - { - .name = "/assets/firedancer_logo-CrgwxzPk.svg", - .data = file_stable5, - .data_len = &file_stable5_sz, - .zstd_data = file_stable5_zstd, - .zstd_data_len = &file_stable5_zstd_sz, - .gzip_data = file_stable5_gzip, - .gzip_data_len = &file_stable5_gzip_sz, - }, - { - .name = "/assets/frankendancer-0Top5G94.svg", - .data = file_stable6, - .data_len = &file_stable6_sz, - .zstd_data = file_stable6_zstd, - .zstd_data_len = &file_stable6_zstd_sz, - .gzip_data = file_stable6_gzip, - .gzip_data_len = &file_stable6_gzip_sz, - }, - { - .name = "/assets/frankendancer_circle_logo-D5z79vwQ.svg", - .data = file_stable7, - .data_len = &file_stable7_sz, - .zstd_data = file_stable7_zstd, - .zstd_data_len = &file_stable7_zstd_sz, - .gzip_data = file_stable7_gzip, - .gzip_data_len = &file_stable7_gzip_sz, - }, - { - .name = "/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg", - .data = file_stable8, - .data_len = &file_stable8_sz, - .zstd_data = file_stable8_zstd, - .zstd_data_len = &file_stable8_zstd_sz, - .gzip_data = file_stable8_gzip, - .gzip_data_len = &file_stable8_gzip_sz, - }, - { - .name = "/assets/frankendancer_logo-CHyfJ772.svg", - .data = file_stable9, - .data_len = &file_stable9_sz, - .zstd_data = file_stable9_zstd, - .zstd_data_len = &file_stable9_zstd_sz, - .gzip_data = file_stable9_gzip, - .gzip_data_len = &file_stable9_gzip_sz, - }, - { - .name = "/assets/index-ColMY7Rf.css", - .data = file_stable10, - .data_len = &file_stable10_sz, - .zstd_data = file_stable10_zstd, - .zstd_data_len = &file_stable10_zstd_sz, - .gzip_data = file_stable10_gzip, - .gzip_data_len = &file_stable10_gzip_sz, - }, - { - .name = "/assets/index-CvU-WPyd.js", - .data = file_stable11, - .data_len = &file_stable11_sz, - .zstd_data = file_stable11_zstd, - .zstd_data_len = &file_stable11_zstd_sz, - .gzip_data = file_stable11_gzip, - .gzip_data_len = &file_stable11_gzip_sz, - }, - { - .name = "/assets/inter-tight-latin-400-normal-BLrFJfvD.woff", - .data = file_stable12, - .data_len = &file_stable12_sz, - .zstd_data = file_stable12_zstd, - .zstd_data_len = &file_stable12_zstd_sz, - .gzip_data = file_stable12_gzip, - .gzip_data_len = &file_stable12_gzip_sz, - }, - { - .name = "/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2", - .data = file_stable13, - .data_len = &file_stable13_sz, - .zstd_data = file_stable13_zstd, - .zstd_data_len = &file_stable13_zstd_sz, - .gzip_data = file_stable13_gzip, - .gzip_data_len = &file_stable13_gzip_sz, - }, - { - .name = "/assets/privateYou-DnAsYVZD.svg", - .data = file_stable14, - .data_len = &file_stable14_sz, - .zstd_data = file_stable14_zstd, - .zstd_data_len = &file_stable14_zstd_sz, - .gzip_data = file_stable14_gzip, - .gzip_data_len = &file_stable14_gzip_sz, - }, - { - .name = "/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff", - .data = file_stable15, - .data_len = &file_stable15_sz, - .zstd_data = file_stable15_zstd, - .zstd_data_len = &file_stable15_zstd_sz, - .gzip_data = file_stable15_gzip, - .gzip_data_len = &file_stable15_gzip_sz, - }, - { - .name = "/assets/roboto-mono-latin-400-normal-GekRknry.woff2", - .data = file_stable16, - .data_len = &file_stable16_sz, - .zstd_data = file_stable16_zstd, - .zstd_data_len = &file_stable16_zstd_sz, - .gzip_data = file_stable16_gzip, - .gzip_data_len = &file_stable16_gzip_sz, - }, - { - .name = "/assets/wsWorker-DTUp_HyV.js", - .data = file_stable17, - .data_len = &file_stable17_sz, - .zstd_data = file_stable17_zstd, - .zstd_data_len = &file_stable17_zstd_sz, - .gzip_data = file_stable17_gzip, - .gzip_data_len = &file_stable17_gzip_sz, - }, - { - .name = "/index.html", - .data = file_stable18, - .data_len = &file_stable18_sz, - .zstd_data = file_stable18_zstd, - .zstd_data_len = &file_stable18_zstd_sz, - .gzip_data = file_stable18_gzip, - .gzip_data_len = &file_stable18_gzip_sz, - }, - { - .name = "/version", - .data = file_stable19, - .data_len = &file_stable19_sz, - .zstd_data = file_stable19_zstd, - .zstd_data_len = &file_stable19_zstd_sz, - .gzip_data = file_stable19_gzip, - .gzip_data_len = &file_stable19_gzip_sz, - }, - {0} -}; - -fd_http_static_file_t STATIC_FILES_ALPHA[] = { - { - .name = "/LICENSE_DEPENDENCIES", - .data = file_alpha0, - .data_len = &file_alpha0_sz, - .zstd_data = file_alpha0_zstd, - .zstd_data_len = &file_alpha0_zstd_sz, - .gzip_data = file_alpha0_gzip, - .gzip_data_len = &file_alpha0_gzip_sz, - }, - { - .name = "/assets/firedancer-D_J0EzUc.svg", - .data = file_alpha1, - .data_len = &file_alpha1_sz, - .zstd_data = file_alpha1_zstd, - .zstd_data_len = &file_alpha1_zstd_sz, - .gzip_data = file_alpha1_gzip, - .gzip_data_len = &file_alpha1_gzip_sz, - }, - { - .name = "/assets/firedancer_logo-CrgwxzPk.svg", - .data = file_alpha2, - .data_len = &file_alpha2_sz, - .zstd_data = file_alpha2_zstd, - .zstd_data_len = &file_alpha2_zstd_sz, - .gzip_data = file_alpha2_gzip, - .gzip_data_len = &file_alpha2_gzip_sz, - }, - { - .name = "/assets/firedancer_logo_circle-D9jlxCje.svg", - .data = file_alpha3, - .data_len = &file_alpha3_sz, - .zstd_data = file_alpha3_zstd, - .zstd_data_len = &file_alpha3_zstd_sz, - .gzip_data = file_alpha3_gzip, - .gzip_data_len = &file_alpha3_gzip_sz, - }, - { - .name = "/assets/frankendancer-0Top5G94.svg", - .data = file_alpha4, - .data_len = &file_alpha4_sz, - .zstd_data = file_alpha4_zstd, - .zstd_data_len = &file_alpha4_zstd_sz, - .gzip_data = file_alpha4_gzip, - .gzip_data_len = &file_alpha4_gzip_sz, - }, - { - .name = "/assets/frankendancer_logo-CHyfJ772.svg", - .data = file_alpha5, - .data_len = &file_alpha5_sz, - .zstd_data = file_alpha5_zstd, - .zstd_data_len = &file_alpha5_zstd_sz, - .gzip_data = file_alpha5_gzip, - .gzip_data_len = &file_alpha5_gzip_sz, - }, - { - .name = "/assets/frankendancer_logo_circle-D5z79vwQ.svg", - .data = file_alpha6, - .data_len = &file_alpha6_sz, - .zstd_data = file_alpha6_zstd, - .zstd_data_len = &file_alpha6_zstd_sz, - .gzip_data = file_alpha6_gzip, - .gzip_data_len = &file_alpha6_gzip_sz, - }, - { - .name = "/assets/index-B79NUQX2.js", - .data = file_alpha7, - .data_len = &file_alpha7_sz, - .zstd_data = file_alpha7_zstd, - .zstd_data_len = &file_alpha7_zstd_sz, - .gzip_data = file_alpha7_gzip, - .gzip_data_len = &file_alpha7_gzip_sz, - }, - { - .name = "/assets/index-BJ9rbYrC.js", - .data = file_alpha8, - .data_len = &file_alpha8_sz, - .zstd_data = file_alpha8_zstd, - .zstd_data_len = &file_alpha8_zstd_sz, - .gzip_data = file_alpha8_gzip, - .gzip_data_len = &file_alpha8_gzip_sz, - }, - { - .name = "/assets/index-DzLX98NL.css", - .data = file_alpha9, - .data_len = &file_alpha9_sz, - .zstd_data = file_alpha9_zstd, - .zstd_data_len = &file_alpha9_zstd_sz, - .gzip_data = file_alpha9_gzip, - .gzip_data_len = &file_alpha9_gzip_sz, - }, - { - .name = "/assets/index-cxKTti9M.css", - .data = file_alpha10, - .data_len = &file_alpha10_sz, - .zstd_data = file_alpha10_zstd, - .zstd_data_len = &file_alpha10_zstd_sz, - .gzip_data = file_alpha10_gzip, - .gzip_data_len = &file_alpha10_gzip_sz, - }, - { - .name = "/assets/inter-tight-latin-400-normal-BLrFJfvD.woff", - .data = file_alpha11, - .data_len = &file_alpha11_sz, - .zstd_data = file_alpha11_zstd, - .zstd_data_len = &file_alpha11_zstd_sz, - .gzip_data = file_alpha11_gzip, - .gzip_data_len = &file_alpha11_gzip_sz, - }, - { - .name = "/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2", - .data = file_alpha12, - .data_len = &file_alpha12_sz, - .zstd_data = file_alpha12_zstd, - .zstd_data_len = &file_alpha12_zstd_sz, - .gzip_data = file_alpha12_gzip, - .gzip_data_len = &file_alpha12_gzip_sz, - }, - { - .name = "/assets/privateYou-DnAsYVZD.svg", - .data = file_alpha13, - .data_len = &file_alpha13_sz, - .zstd_data = file_alpha13_zstd, - .zstd_data_len = &file_alpha13_zstd_sz, - .gzip_data = file_alpha13_gzip, - .gzip_data_len = &file_alpha13_gzip_sz, - }, - { - .name = "/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff", - .data = file_alpha14, - .data_len = &file_alpha14_sz, - .zstd_data = file_alpha14_zstd, - .zstd_data_len = &file_alpha14_zstd_sz, - .gzip_data = file_alpha14_gzip, - .gzip_data_len = &file_alpha14_gzip_sz, - }, - { - .name = "/assets/roboto-mono-latin-400-normal-GekRknry.woff2", - .data = file_alpha15, - .data_len = &file_alpha15_sz, - .zstd_data = file_alpha15_zstd, - .zstd_data_len = &file_alpha15_zstd_sz, - .gzip_data = file_alpha15_gzip, - .gzip_data_len = &file_alpha15_gzip_sz, - }, - { - .name = "/index.html", - .data = file_alpha16, - .data_len = &file_alpha16_sz, - .zstd_data = file_alpha16_zstd, - .zstd_data_len = &file_alpha16_zstd_sz, - .gzip_data = file_alpha16_gzip, - .gzip_data_len = &file_alpha16_gzip_sz, - }, - { - .name = "/version", - .data = file_alpha17, - .data_len = &file_alpha17_sz, - .zstd_data = file_alpha17_zstd, - .zstd_data_len = &file_alpha17_zstd_sz, - .gzip_data = file_alpha17_gzip, - .gzip_data_len = &file_alpha17_gzip_sz, - }, - {0} -}; - -fd_http_static_file_t STATIC_FILES_DEV[] = { +fd_http_static_file_t STATIC_FILES[] = { { .name = "/LICENSE_DEPENDENCIES", - .data = file_dev0, - .data_len = &file_dev0_sz, - .zstd_data = file_dev0_zstd, - .zstd_data_len = &file_dev0_zstd_sz, - .gzip_data = file_dev0_gzip, - .gzip_data_len = &file_dev0_gzip_sz, + .data = file_0, + .data_len = &file_0_sz, + .zstd_data = file_0_zstd, + .zstd_data_len = &file_0_zstd_sz, + .gzip_data = file_0_gzip, + .gzip_data_len = &file_0_gzip_sz, }, { .name = "/assets/NotoFlagsOnly.woff2", - .data = file_dev1, - .data_len = &file_dev1_sz, - .zstd_data = file_dev1_zstd, - .zstd_data_len = &file_dev1_zstd_sz, - .gzip_data = file_dev1_gzip, - .gzip_data_len = &file_dev1_gzip_sz, + .data = file_1, + .data_len = &file_1_sz, + .zstd_data = file_1_zstd, + .zstd_data_len = &file_1_zstd_sz, + .gzip_data = file_1_gzip, + .gzip_data_len = &file_1_gzip_sz, }, { .name = "/assets/firedancer-D_J0EzUc.svg", - .data = file_dev2, - .data_len = &file_dev2_sz, - .zstd_data = file_dev2_zstd, - .zstd_data_len = &file_dev2_zstd_sz, - .gzip_data = file_dev2_gzip, - .gzip_data_len = &file_dev2_gzip_sz, + .data = file_2, + .data_len = &file_2_sz, + .zstd_data = file_2_zstd, + .zstd_data_len = &file_2_zstd_sz, + .gzip_data = file_2_gzip, + .gzip_data_len = &file_2_gzip_sz, }, { .name = "/assets/firedancer_circle_logo-D9jlxCje.svg", - .data = file_dev3, - .data_len = &file_dev3_sz, - .zstd_data = file_dev3_zstd, - .zstd_data_len = &file_dev3_zstd_sz, - .gzip_data = file_dev3_gzip, - .gzip_data_len = &file_dev3_gzip_sz, + .data = file_3, + .data_len = &file_3_sz, + .zstd_data = file_3_zstd, + .zstd_data_len = &file_3_zstd_sz, + .gzip_data = file_3_gzip, + .gzip_data_len = &file_3_gzip_sz, }, { .name = "/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg", - .data = file_dev4, - .data_len = &file_dev4_sz, - .zstd_data = file_dev4_zstd, - .zstd_data_len = &file_dev4_zstd_sz, - .gzip_data = file_dev4_gzip, - .gzip_data_len = &file_dev4_gzip_sz, + .data = file_4, + .data_len = &file_4_sz, + .zstd_data = file_4_zstd, + .zstd_data_len = &file_4_zstd_sz, + .gzip_data = file_4_gzip, + .gzip_data_len = &file_4_gzip_sz, }, { .name = "/assets/firedancer_logo-CrgwxzPk.svg", - .data = file_dev5, - .data_len = &file_dev5_sz, - .zstd_data = file_dev5_zstd, - .zstd_data_len = &file_dev5_zstd_sz, - .gzip_data = file_dev5_gzip, - .gzip_data_len = &file_dev5_gzip_sz, + .data = file_5, + .data_len = &file_5_sz, + .zstd_data = file_5_zstd, + .zstd_data_len = &file_5_zstd_sz, + .gzip_data = file_5_gzip, + .gzip_data_len = &file_5_gzip_sz, }, { .name = "/assets/frankendancer-0Top5G94.svg", - .data = file_dev6, - .data_len = &file_dev6_sz, - .zstd_data = file_dev6_zstd, - .zstd_data_len = &file_dev6_zstd_sz, - .gzip_data = file_dev6_gzip, - .gzip_data_len = &file_dev6_gzip_sz, + .data = file_6, + .data_len = &file_6_sz, + .zstd_data = file_6_zstd, + .zstd_data_len = &file_6_zstd_sz, + .gzip_data = file_6_gzip, + .gzip_data_len = &file_6_gzip_sz, }, { .name = "/assets/frankendancer_circle_logo-D5z79vwQ.svg", - .data = file_dev7, - .data_len = &file_dev7_sz, - .zstd_data = file_dev7_zstd, - .zstd_data_len = &file_dev7_zstd_sz, - .gzip_data = file_dev7_gzip, - .gzip_data_len = &file_dev7_gzip_sz, + .data = file_7, + .data_len = &file_7_sz, + .zstd_data = file_7_zstd, + .zstd_data_len = &file_7_zstd_sz, + .gzip_data = file_7_gzip, + .gzip_data_len = &file_7_gzip_sz, }, { .name = "/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg", - .data = file_dev8, - .data_len = &file_dev8_sz, - .zstd_data = file_dev8_zstd, - .zstd_data_len = &file_dev8_zstd_sz, - .gzip_data = file_dev8_gzip, - .gzip_data_len = &file_dev8_gzip_sz, + .data = file_8, + .data_len = &file_8_sz, + .zstd_data = file_8_zstd, + .zstd_data_len = &file_8_zstd_sz, + .gzip_data = file_8_gzip, + .gzip_data_len = &file_8_gzip_sz, }, { .name = "/assets/frankendancer_logo-CHyfJ772.svg", - .data = file_dev9, - .data_len = &file_dev9_sz, - .zstd_data = file_dev9_zstd, - .zstd_data_len = &file_dev9_zstd_sz, - .gzip_data = file_dev9_gzip, - .gzip_data_len = &file_dev9_gzip_sz, + .data = file_9, + .data_len = &file_9_sz, + .zstd_data = file_9_zstd, + .zstd_data_len = &file_9_zstd_sz, + .gzip_data = file_9_gzip, + .gzip_data_len = &file_9_gzip_sz, }, { .name = "/assets/index-C054xcgF.js", - .data = file_dev10, - .data_len = &file_dev10_sz, - .zstd_data = file_dev10_zstd, - .zstd_data_len = &file_dev10_zstd_sz, - .gzip_data = file_dev10_gzip, - .gzip_data_len = &file_dev10_gzip_sz, + .data = file_10, + .data_len = &file_10_sz, + .zstd_data = file_10_zstd, + .zstd_data_len = &file_10_zstd_sz, + .gzip_data = file_10_gzip, + .gzip_data_len = &file_10_gzip_sz, }, { .name = "/assets/index-qV0ZL8w9.css", - .data = file_dev11, - .data_len = &file_dev11_sz, - .zstd_data = file_dev11_zstd, - .zstd_data_len = &file_dev11_zstd_sz, - .gzip_data = file_dev11_gzip, - .gzip_data_len = &file_dev11_gzip_sz, + .data = file_11, + .data_len = &file_11_sz, + .zstd_data = file_11_zstd, + .zstd_data_len = &file_11_zstd_sz, + .gzip_data = file_11_gzip, + .gzip_data_len = &file_11_gzip_sz, }, { .name = "/assets/inter-tight-latin-400-normal-BLrFJfvD.woff", - .data = file_dev12, - .data_len = &file_dev12_sz, - .zstd_data = file_dev12_zstd, - .zstd_data_len = &file_dev12_zstd_sz, - .gzip_data = file_dev12_gzip, - .gzip_data_len = &file_dev12_gzip_sz, + .data = file_12, + .data_len = &file_12_sz, + .zstd_data = file_12_zstd, + .zstd_data_len = &file_12_zstd_sz, + .gzip_data = file_12_gzip, + .gzip_data_len = &file_12_gzip_sz, }, { .name = "/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2", - .data = file_dev13, - .data_len = &file_dev13_sz, - .zstd_data = file_dev13_zstd, - .zstd_data_len = &file_dev13_zstd_sz, - .gzip_data = file_dev13_gzip, - .gzip_data_len = &file_dev13_gzip_sz, + .data = file_13, + .data_len = &file_13_sz, + .zstd_data = file_13_zstd, + .zstd_data_len = &file_13_zstd_sz, + .gzip_data = file_13_gzip, + .gzip_data_len = &file_13_gzip_sz, }, { .name = "/assets/privateYou-DnAsYVZD.svg", - .data = file_dev14, - .data_len = &file_dev14_sz, - .zstd_data = file_dev14_zstd, - .zstd_data_len = &file_dev14_zstd_sz, - .gzip_data = file_dev14_gzip, - .gzip_data_len = &file_dev14_gzip_sz, + .data = file_14, + .data_len = &file_14_sz, + .zstd_data = file_14_zstd, + .zstd_data_len = &file_14_zstd_sz, + .gzip_data = file_14_gzip, + .gzip_data_len = &file_14_gzip_sz, }, { .name = "/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff", - .data = file_dev15, - .data_len = &file_dev15_sz, - .zstd_data = file_dev15_zstd, - .zstd_data_len = &file_dev15_zstd_sz, - .gzip_data = file_dev15_gzip, - .gzip_data_len = &file_dev15_gzip_sz, + .data = file_15, + .data_len = &file_15_sz, + .zstd_data = file_15_zstd, + .zstd_data_len = &file_15_zstd_sz, + .gzip_data = file_15_gzip, + .gzip_data_len = &file_15_gzip_sz, }, { .name = "/assets/roboto-mono-latin-400-normal-GekRknry.woff2", - .data = file_dev16, - .data_len = &file_dev16_sz, - .zstd_data = file_dev16_zstd, - .zstd_data_len = &file_dev16_zstd_sz, - .gzip_data = file_dev16_gzip, - .gzip_data_len = &file_dev16_gzip_sz, + .data = file_16, + .data_len = &file_16_sz, + .zstd_data = file_16_zstd, + .zstd_data_len = &file_16_zstd_sz, + .gzip_data = file_16_gzip, + .gzip_data_len = &file_16_gzip_sz, }, { .name = "/assets/wsWorker-CiLy8ipA.js", - .data = file_dev17, - .data_len = &file_dev17_sz, - .zstd_data = file_dev17_zstd, - .zstd_data_len = &file_dev17_zstd_sz, - .gzip_data = file_dev17_gzip, - .gzip_data_len = &file_dev17_gzip_sz, + .data = file_17, + .data_len = &file_17_sz, + .zstd_data = file_17_zstd, + .zstd_data_len = &file_17_zstd_sz, + .gzip_data = file_17_gzip, + .gzip_data_len = &file_17_gzip_sz, }, { .name = "/index.html", - .data = file_dev18, - .data_len = &file_dev18_sz, - .zstd_data = file_dev18_zstd, - .zstd_data_len = &file_dev18_zstd_sz, - .gzip_data = file_dev18_gzip, - .gzip_data_len = &file_dev18_gzip_sz, + .data = file_18, + .data_len = &file_18_sz, + .zstd_data = file_18_zstd, + .zstd_data_len = &file_18_zstd_sz, + .gzip_data = file_18_gzip, + .gzip_data_len = &file_18_gzip_sz, }, { .name = "/version", - .data = file_dev19, - .data_len = &file_dev19_sz, - .zstd_data = file_dev19_zstd, - .zstd_data_len = &file_dev19_zstd_sz, - .gzip_data = file_dev19_gzip, - .gzip_data_len = &file_dev19_gzip_sz, + .data = file_19, + .data_len = &file_19_sz, + .zstd_data = file_19_zstd, + .zstd_data_len = &file_19_zstd_sz, + .gzip_data = file_19_gzip, + .gzip_data_len = &file_19_gzip_sz, }, {0} }; diff --git a/src/disco/gui/generated/http_import_dist.h b/src/disco/gui/generated/http_import_dist.h index 9219c4cd6b0..34c5db9a67b 100644 --- a/src/disco/gui/generated/http_import_dist.h +++ b/src/disco/gui/generated/http_import_dist.h @@ -15,9 +15,7 @@ struct fd_http_static_file { typedef struct fd_http_static_file fd_http_static_file_t; -extern fd_http_static_file_t STATIC_FILES_STABLE[]; /* null terminated */ -extern fd_http_static_file_t STATIC_FILES_ALPHA[]; /* null terminated */ -extern fd_http_static_file_t STATIC_FILES_DEV[]; /* null terminated */ +extern fd_http_static_file_t STATIC_FILES[]; /* null terminated */ #endif /* HEADER_fd_src_disco_gui_generated_http_import_dist_h */ diff --git a/src/disco/metrics/generate/types.py b/src/disco/metrics/generate/types.py index ec03192086e..52646d66445 100644 --- a/src/disco/metrics/generate/types.py +++ b/src/disco/metrics/generate/types.py @@ -49,6 +49,7 @@ class Tile(Enum): PLUGIN = 104 BACKT = 105 BENCHS = 106 + GUIH = 107 class MetricType(Enum): COUNTER = 0 diff --git a/src/disco/metrics/generated/fd_metrics_all.c b/src/disco/metrics/generated/fd_metrics_all.c index e7e3df2cb02..5ca60f8fd2d 100644 --- a/src/disco/metrics/generated/fd_metrics_all.c +++ b/src/disco/metrics/generated/fd_metrics_all.c @@ -81,6 +81,7 @@ const char * FD_METRICS_TILE_KIND_NAMES[FD_METRICS_TILE_KIND_CNT] = { "store", "backt", "benchs", + "guih", }; const ulong FD_METRICS_TILE_KIND_SIZES[FD_METRICS_TILE_KIND_CNT] = { @@ -124,6 +125,7 @@ const ulong FD_METRICS_TILE_KIND_SIZES[FD_METRICS_TILE_KIND_CNT] = { FD_METRICS_STORE_TOTAL, FD_METRICS_BACKT_TOTAL, FD_METRICS_BENCHS_TOTAL, + FD_METRICS_GUIH_TOTAL, }; const fd_metrics_meta_t * FD_METRICS_TILE_KIND_METRICS[FD_METRICS_TILE_KIND_CNT] = { NULL, @@ -166,4 +168,5 @@ const fd_metrics_meta_t * FD_METRICS_TILE_KIND_METRICS[FD_METRICS_TILE_KIND_CNT] FD_METRICS_STORE, FD_METRICS_BACKT, FD_METRICS_BENCHS, + FD_METRICS_GUIH, }; diff --git a/src/disco/metrics/generated/fd_metrics_all.h b/src/disco/metrics/generated/fd_metrics_all.h index 769e1c76397..6598f1e5526 100644 --- a/src/disco/metrics/generated/fd_metrics_all.h +++ b/src/disco/metrics/generated/fd_metrics_all.h @@ -90,6 +90,7 @@ enum { #include "fd_metrics_benchs.h" #include "fd_metrics_tower.h" #include "fd_metrics_gui.h" +#include "fd_metrics_guih.h" #include "fd_metrics_event.h" /* LINK IN metric properties */ @@ -222,7 +223,7 @@ extern const fd_metrics_meta_t FD_METRICS_ALL_LINK_IN[FD_METRICS_ALL_LINK_IN_TOT #define FD_METRICS_TOTAL_SZ (8UL*265UL) -#define FD_METRICS_TILE_KIND_CNT 40 +#define FD_METRICS_TILE_KIND_CNT 41 extern const char * FD_METRICS_TILE_KIND_NAMES[FD_METRICS_TILE_KIND_CNT]; extern const ulong FD_METRICS_TILE_KIND_SIZES[FD_METRICS_TILE_KIND_CNT]; extern const fd_metrics_meta_t * FD_METRICS_TILE_KIND_METRICS[FD_METRICS_TILE_KIND_CNT]; diff --git a/src/disco/metrics/generated/fd_metrics_guih.c b/src/disco/metrics/generated/fd_metrics_guih.c new file mode 100644 index 00000000000..6ed8f698a2e --- /dev/null +++ b/src/disco/metrics/generated/fd_metrics_guih.c @@ -0,0 +1,11 @@ +/* THIS FILE IS GENERATED BY gen_metrics.py. DO NOT HAND EDIT. */ +#include "fd_metrics_guih.h" + +const fd_metrics_meta_t FD_METRICS_GUIH[FD_METRICS_GUIH_TOTAL] = { + DECLARE_METRIC( GUIH_CONN_ACTIVE, GAUGE ), + DECLARE_METRIC( GUIH_WEBSOCKET_CONN_ACTIVE, GAUGE ), + DECLARE_METRIC( GUIH_WEBSOCKET_FRAME_TX, COUNTER ), + DECLARE_METRIC( GUIH_WEBSOCKET_FRAME_RX, COUNTER ), + DECLARE_METRIC( GUIH_BYTES_WRITTEN, COUNTER ), + DECLARE_METRIC( GUIH_BYTES_READ, COUNTER ), +}; diff --git a/src/disco/metrics/generated/fd_metrics_guih.h b/src/disco/metrics/generated/fd_metrics_guih.h new file mode 100644 index 00000000000..ce562aedb55 --- /dev/null +++ b/src/disco/metrics/generated/fd_metrics_guih.h @@ -0,0 +1,51 @@ +#ifndef HEADER_fd_src_disco_metrics_generated_fd_metrics_guih_h +#define HEADER_fd_src_disco_metrics_generated_fd_metrics_guih_h + +/* THIS FILE IS GENERATED BY gen_metrics.py. DO NOT HAND EDIT. */ + +#include "../fd_metrics_base.h" +#include "fd_metrics_enums.h" + +enum { + FD_METRICS_GAUGE_GUIH_CONN_ACTIVE_OFF = FD_METRICS_TILE_OFF, + FD_METRICS_GAUGE_GUIH_WEBSOCKET_CONN_ACTIVE_OFF, + FD_METRICS_COUNTER_GUIH_WEBSOCKET_FRAME_TX_OFF, + FD_METRICS_COUNTER_GUIH_WEBSOCKET_FRAME_RX_OFF, + FD_METRICS_COUNTER_GUIH_BYTES_WRITTEN_OFF, + FD_METRICS_COUNTER_GUIH_BYTES_READ_OFF, +}; + +#define FD_METRICS_GAUGE_GUIH_CONN_ACTIVE_NAME "guih_conn_active" +#define FD_METRICS_GAUGE_GUIH_CONN_ACTIVE_TYPE (FD_METRICS_TYPE_GAUGE) +#define FD_METRICS_GAUGE_GUIH_CONN_ACTIVE_DESC "Active HTTP connections to the GUI service, excluding connections that have been upgraded to a WebSocket connection" +#define FD_METRICS_GAUGE_GUIH_CONN_ACTIVE_CVT (FD_METRICS_CONVERTER_NONE) + +#define FD_METRICS_GAUGE_GUIH_WEBSOCKET_CONN_ACTIVE_NAME "guih_websocket_conn_active" +#define FD_METRICS_GAUGE_GUIH_WEBSOCKET_CONN_ACTIVE_TYPE (FD_METRICS_TYPE_GAUGE) +#define FD_METRICS_GAUGE_GUIH_WEBSOCKET_CONN_ACTIVE_DESC "Active WebSocket connections to the GUI service" +#define FD_METRICS_GAUGE_GUIH_WEBSOCKET_CONN_ACTIVE_CVT (FD_METRICS_CONVERTER_NONE) + +#define FD_METRICS_COUNTER_GUIH_WEBSOCKET_FRAME_TX_NAME "guih_websocket_frame_tx" +#define FD_METRICS_COUNTER_GUIH_WEBSOCKET_FRAME_TX_TYPE (FD_METRICS_TYPE_COUNTER) +#define FD_METRICS_COUNTER_GUIH_WEBSOCKET_FRAME_TX_DESC "WebSocket frames sent to all connections to the GUI service" +#define FD_METRICS_COUNTER_GUIH_WEBSOCKET_FRAME_TX_CVT (FD_METRICS_CONVERTER_NONE) + +#define FD_METRICS_COUNTER_GUIH_WEBSOCKET_FRAME_RX_NAME "guih_websocket_frame_rx" +#define FD_METRICS_COUNTER_GUIH_WEBSOCKET_FRAME_RX_TYPE (FD_METRICS_TYPE_COUNTER) +#define FD_METRICS_COUNTER_GUIH_WEBSOCKET_FRAME_RX_DESC "WebSocket frames received from all connections to the GUI service" +#define FD_METRICS_COUNTER_GUIH_WEBSOCKET_FRAME_RX_CVT (FD_METRICS_CONVERTER_NONE) + +#define FD_METRICS_COUNTER_GUIH_BYTES_WRITTEN_NAME "guih_bytes_written" +#define FD_METRICS_COUNTER_GUIH_BYTES_WRITTEN_TYPE (FD_METRICS_TYPE_COUNTER) +#define FD_METRICS_COUNTER_GUIH_BYTES_WRITTEN_DESC "Bytes written to all connections to the GUI service" +#define FD_METRICS_COUNTER_GUIH_BYTES_WRITTEN_CVT (FD_METRICS_CONVERTER_NONE) + +#define FD_METRICS_COUNTER_GUIH_BYTES_READ_NAME "guih_bytes_read" +#define FD_METRICS_COUNTER_GUIH_BYTES_READ_TYPE (FD_METRICS_TYPE_COUNTER) +#define FD_METRICS_COUNTER_GUIH_BYTES_READ_DESC "Bytes read from all connections to the GUI service" +#define FD_METRICS_COUNTER_GUIH_BYTES_READ_CVT (FD_METRICS_CONVERTER_NONE) + +#define FD_METRICS_GUIH_TOTAL (6UL) +extern const fd_metrics_meta_t FD_METRICS_GUIH[FD_METRICS_GUIH_TOTAL]; + +#endif /* HEADER_fd_src_disco_metrics_generated_fd_metrics_guih_h */ diff --git a/src/disco/metrics/metrics.xml b/src/disco/metrics/metrics.xml index a362a90ae4f..be55207c3a5 100644 --- a/src/disco/metrics/metrics.xml +++ b/src/disco/metrics/metrics.xml @@ -1911,6 +1911,17 @@ EXAMPLES + + + + + + + + + + + diff --git a/src/disco/topo/fd_topo.h b/src/disco/topo/fd_topo.h index 70828e652f4..0cb277766bf 100644 --- a/src/disco/topo/fd_topo.h +++ b/src/disco/topo/fd_topo.h @@ -373,7 +373,6 @@ struct fd_topo_tile { int schedule_strategy; int websocket_compression; - int frontend_release_channel; ulong tile_cnt; char wfs_bank_hash[ FD_BASE58_ENCODED_32_SZ ]; diff --git a/src/disco/topo/fd_topob.c b/src/disco/topo/fd_topob.c index 2df45f19292..39ee5c8cb60 100644 --- a/src/disco/topo/fd_topob.c +++ b/src/disco/topo/fd_topob.c @@ -423,7 +423,8 @@ static char const * ALWAYS[] = { "event", /* FIREDANCER only */ "store", /* FRANK only */ "plugin", /* FRANK only */ - "gui", + "gui", /* FIREDANCER only */ + "guih", /* FRANK only */ "rpc", /* FIREDANCER only */ "gossvf", /* FIREDANCER only */ "gossip", /* FIREDANCER only */ @@ -442,6 +443,7 @@ static char const * CRITICAL_TILES[] = { "poh", "pohh", "gui", + "guih", NULL }; diff --git a/src/disco/topo/test_topob.c b/src/disco/topo/test_topob.c index 54ff5b2b024..bccc30309f0 100644 --- a/src/disco/topo/test_topob.c +++ b/src/disco/topo/test_topob.c @@ -206,7 +206,7 @@ static tile_spec_t const FRANKENDANCER_TILES[] = { { "net", 1 }, { "quic", 1 }, { "verify", 6 }, { "dedup", 1 }, { "resolh", 1 }, { "pack", 1 }, { "bank", 4 }, { "pohh", 1 }, { "shred", 1 }, { "store", 1 }, { "sign", 1 }, { "plugin", 1 }, - { "gui", 1 }, + { "guih", 1 }, { NULL, 0 } }; @@ -258,7 +258,7 @@ static char const * const FRANK_SKIP_HT_PREFIX[] = { /* 8 */ "verify", /* 9 */ "dedup", /* 10 */ "resolh", /* 11 */ "pack", /* 12 */ "bank", /* 13 */ "bank", /* 14 */ "bank", /* 15 */ "bank", /* 16 */ "pohh", /* 17 */ "sign", /* 18 */ "shred", /* 19 */ "store", - /* 20 */ "plugin", /* 21 */ "gui", + /* 20 */ "plugin", /* 21 */ "guih", }; #define FRANK_SKIP_HT_PREFIX_LEN (sizeof(FRANK_SKIP_HT_PREFIX)/sizeof(FRANK_SKIP_HT_PREFIX[0])) @@ -313,7 +313,7 @@ static char const * const FRANK_24X2[] = { /* 0 */ __, /* 1 */ "net", /* 2 */ "verify", /* 3 */ "verify", /* 4 */ "verify", /* 5 */ "dedup", /* 6 */ "pack", /* 7 */ "bank", /* 8 */ "bank", /* 9 */ "pohh", /* 10 */ "sign", /* 11 */ "store", - /* 12 */ "gui", /* 13 */ _A_, /* 14 */ _A_, /* 15 */ _A_, + /* 12 */ "guih", /* 13 */ _A_, /* 14 */ _A_, /* 15 */ _A_, /* 16 */ _A_, /* 17 */ _A_, /* 18 */ _A_, /* 19 */ _A_, /* 20 */ _A_, /* 21 */ _A_, /* 22 */ _A_, /* 23 */ _A_, /* --- HT siblings (24-47) --- */ @@ -335,7 +335,7 @@ static char const * const FRANK_32X2[] = { /* 0 */ __, /* 1 */ "net", /* 2 */ "verify", /* 3 */ "verify", /* 4 */ "verify", /* 5 */ "dedup", /* 6 */ "pack", /* 7 */ "bank", /* 8 */ "bank", /* 9 */ "pohh", /* 10 */ "sign", /* 11 */ "store", - /* 12 */ "gui", /* 13 */ _A_, /* 14 */ _A_, /* 15 */ _A_, + /* 12 */ "guih", /* 13 */ _A_, /* 14 */ _A_, /* 15 */ _A_, /* 16 */ _A_, /* 17 */ _A_, /* 18 */ _A_, /* 19 */ _A_, /* 20 */ _A_, /* 21 */ _A_, /* 22 */ _A_, /* 23 */ _A_, /* 24 */ _A_, /* 25 */ _A_, /* 26 */ _A_, /* 27 */ _A_, @@ -390,7 +390,7 @@ static tile_spec_t const FRANK_MORE_BANK[] = { { "net", 2 }, { "quic", 1 }, { "verify", 6 }, { "dedup", 1 }, { "resolh", 1 }, { "pack", 1 }, { "bank", 4 }, { "pohh", 1 }, { "shred", 2 }, { "store", 1 }, { "sign", 1 }, { "plugin", 1 }, - { "gui", 1 }, + { "guih", 1 }, { NULL, 0 } }; @@ -398,7 +398,7 @@ static char const * const FRANK_32X2_MORE_BANK[] = { /* 0 */ __, /* 1 */ "net", /* 2 */ "quic", /* 3 */ "verify", /* 4 */ "verify", /* 5 */ "verify", /* 6 */ "resolh", /* 7 */ "pack", /* 8 */ "bank", /* 9 */ "bank", /* 10 */ "pohh", /* 11 */ "shred", - /* 12 */ "store", /* 13 */ "gui", /* 14 */ _A_, /* 15 */ _A_, + /* 12 */ "store", /* 13 */ "guih", /* 14 */ _A_, /* 15 */ _A_, /* 16 */ _A_, /* 17 */ _A_, /* 18 */ _A_, /* 19 */ _A_, /* 20 */ _A_, /* 21 */ _A_, /* 22 */ _A_, /* 23 */ _A_, /* 24 */ _A_, /* 25 */ _A_, /* 26 */ _A_, /* 27 */ _A_, diff --git a/src/discoh/guih/.gitignore b/src/discoh/guih/.gitignore new file mode 100644 index 00000000000..1ea72ebf258 --- /dev/null +++ b/src/discoh/guih/.gitignore @@ -0,0 +1 @@ +dist_cmp/ diff --git a/src/discoh/guih/Local.mk b/src/discoh/guih/Local.mk new file mode 100644 index 00000000000..857416b078b --- /dev/null +++ b/src/discoh/guih/Local.mk @@ -0,0 +1,23 @@ +ifdef FD_HAS_HOSTED +ifdef FD_HAS_INT128 +$(call add-hdrs,fd_guih.h fd_guih_printf.h fd_guih_metrics.h) +$(call add-objs,fd_guih fd_guih_printf fd_guih_tile generated/http_import_dist,fd_discoh) +$(OBJDIR)/obj/discoh/guih/fd_guih_tile.o: book/public/fire.svg +endif + +src/discoh/guih/dist_cmp/%.zst: src/discoh/guih/dist/% + mkdir -p $(@D); + zstd -f -19 $< -o $@; + $(TOUCH) $@; + +src/discoh/guih/dist_cmp/%.gz: src/discoh/guih/dist/% + mkdir -p $(@D); + gzip -f -c -9 $< > $@; + $(TOUCH) $@; + +FD_GUIH_FRONTEND_FILES := $(shell $(FIND) src/discoh/guih/dist -type f) +FD_GUIH_FRONTEND_GZ_FILES := $(patsubst src/discoh/guih/dist/%, src/discoh/guih/dist_cmp/%.gz, $(FD_GUIH_FRONTEND_FILES)) +FD_GUIH_FRONTEND_ZST_FILES := $(patsubst src/discoh/guih/dist/%, src/discoh/guih/dist_cmp/%.zst, $(FD_GUIH_FRONTEND_FILES)) + +$(OBJDIR)/obj/discoh/guih/generated/http_import_dist.o: $(FD_GUIH_FRONTEND_GZ_FILES) $(FD_GUIH_FRONTEND_ZST_FILES) +endif diff --git a/src/disco/gui/dist_stable/LICENSE_DEPENDENCIES b/src/discoh/guih/dist/LICENSE_DEPENDENCIES similarity index 100% rename from src/disco/gui/dist_stable/LICENSE_DEPENDENCIES rename to src/discoh/guih/dist/LICENSE_DEPENDENCIES diff --git a/src/disco/gui/dist_stable/assets/NotoFlagsOnly.woff2 b/src/discoh/guih/dist/assets/NotoFlagsOnly.woff2 similarity index 100% rename from src/disco/gui/dist_stable/assets/NotoFlagsOnly.woff2 rename to src/discoh/guih/dist/assets/NotoFlagsOnly.woff2 diff --git a/src/disco/gui/dist_dev/assets/firedancer-D_J0EzUc.svg b/src/discoh/guih/dist/assets/firedancer-D_J0EzUc.svg similarity index 100% rename from src/disco/gui/dist_dev/assets/firedancer-D_J0EzUc.svg rename to src/discoh/guih/dist/assets/firedancer-D_J0EzUc.svg diff --git a/src/disco/gui/dist_stable/assets/firedancer_circle_logo-D9jlxCje.svg b/src/discoh/guih/dist/assets/firedancer_circle_logo-D9jlxCje.svg similarity index 100% rename from src/disco/gui/dist_stable/assets/firedancer_circle_logo-D9jlxCje.svg rename to src/discoh/guih/dist/assets/firedancer_circle_logo-D9jlxCje.svg diff --git a/src/disco/gui/dist_stable/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg b/src/discoh/guih/dist/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg similarity index 100% rename from src/disco/gui/dist_stable/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg rename to src/discoh/guih/dist/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg diff --git a/src/disco/gui/dist_dev/assets/firedancer_logo-CrgwxzPk.svg b/src/discoh/guih/dist/assets/firedancer_logo-CrgwxzPk.svg similarity index 100% rename from src/disco/gui/dist_dev/assets/firedancer_logo-CrgwxzPk.svg rename to src/discoh/guih/dist/assets/firedancer_logo-CrgwxzPk.svg diff --git a/src/disco/gui/dist_dev/assets/frankendancer-0Top5G94.svg b/src/discoh/guih/dist/assets/frankendancer-0Top5G94.svg similarity index 100% rename from src/disco/gui/dist_dev/assets/frankendancer-0Top5G94.svg rename to src/discoh/guih/dist/assets/frankendancer-0Top5G94.svg diff --git a/src/disco/gui/dist_stable/assets/frankendancer_circle_logo-D5z79vwQ.svg b/src/discoh/guih/dist/assets/frankendancer_circle_logo-D5z79vwQ.svg similarity index 100% rename from src/disco/gui/dist_stable/assets/frankendancer_circle_logo-D5z79vwQ.svg rename to src/discoh/guih/dist/assets/frankendancer_circle_logo-D5z79vwQ.svg diff --git a/src/disco/gui/dist_stable/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg b/src/discoh/guih/dist/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg similarity index 100% rename from src/disco/gui/dist_stable/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg rename to src/discoh/guih/dist/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg diff --git a/src/disco/gui/dist_dev/assets/frankendancer_logo-CHyfJ772.svg b/src/discoh/guih/dist/assets/frankendancer_logo-CHyfJ772.svg similarity index 100% rename from src/disco/gui/dist_dev/assets/frankendancer_logo-CHyfJ772.svg rename to src/discoh/guih/dist/assets/frankendancer_logo-CHyfJ772.svg diff --git a/src/discoh/guih/dist/assets/index-guHM0lzm.js b/src/discoh/guih/dist/assets/index-guHM0lzm.js new file mode 100644 index 00000000000..5c233a4f495 --- /dev/null +++ b/src/discoh/guih/dist/assets/index-guHM0lzm.js @@ -0,0 +1,214 @@ +var rxe=Object.defineProperty;var ixe=(e,t,n)=>t in e?rxe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var $u=(e,t,n)=>ixe(e,typeof t!="symbol"?t+"":t,n);var hC,Yme,Kme,Xme;function oxe(e,t){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function t(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(r){if(r.ep)return;r.ep=!0;const i=t(r);fetch(r.href,i)}})();var Ac=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function to(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var wD={exports:{}},v2={},kD={exports:{}},gn={};/** +* @license React +* react.production.min.js +* +* Copyright (c) Facebook, Inc. and its affiliates. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/var hv=Symbol.for("react.element"),axe=Symbol.for("react.portal"),sxe=Symbol.for("react.fragment"),lxe=Symbol.for("react.strict_mode"),uxe=Symbol.for("react.profiler"),cxe=Symbol.for("react.provider"),dxe=Symbol.for("react.context"),fxe=Symbol.for("react.forward_ref"),hxe=Symbol.for("react.suspense"),pxe=Symbol.for("react.memo"),mxe=Symbol.for("react.lazy"),SD=Symbol.iterator;function gxe(e){return e===null||typeof e!="object"?null:(e=SD&&e[SD]||e["@@iterator"],typeof e=="function"?e:null)}var CD={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},jD=Object.assign,TD={};function Jm(e,t,n){this.props=e,this.context=t,this.refs=TD,this.updater=n||CD}Jm.prototype.isReactComponent={},Jm.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},Jm.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ID(){}ID.prototype=Jm.prototype;function cj(e,t,n){this.props=e,this.context=t,this.refs=TD,this.updater=n||CD}var dj=cj.prototype=new ID;dj.constructor=cj,jD(dj,Jm.prototype),dj.isPureReactComponent=!0;var ED=Array.isArray,ND=Object.prototype.hasOwnProperty,fj={current:null},$D={key:!0,ref:!0,__self:!0,__source:!0};function MD(e,t,n){var r,i={},o=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(o=""+t.key),t)ND.call(t,r)&&!$D.hasOwnProperty(r)&&(i[r]=t[r]);var s=arguments.length-2;if(s===1)i.children=n;else if(1>>1,B=F[ce];if(0>>1;cei(me,ee))kei(he,me)?(F[ce]=he,F[ke]=ee,ce=ke):(F[ce]=me,F[je]=ee,ce=je);else if(kei(he,ee))F[ce]=he,F[ke]=ee,ce=ke;else break e}}return H}function i(F,H){var ee=F.sortIndex-H.sortIndex;return ee!==0?ee:F.id-H.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var l=[],c=[],d=1,f=null,p=3,v=!1,x=!1,y=!1,b=typeof setTimeout=="function"?setTimeout:null,w=typeof clearTimeout=="function"?clearTimeout:null,_=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function S(F){for(var H=n(c);H!==null;){if(H.callback===null)r(c);else if(H.startTime<=F)r(c),H.sortIndex=H.expirationTime,t(l,H);else break;H=n(c)}}function C(F){if(y=!1,S(F),!x)if(n(l)!==null)x=!0,A(j);else{var H=n(c);H!==null&&Y(C,H.startTime-F)}}function j(F,H){x=!1,y&&(y=!1,w($),$=-1),v=!0;var ee=p;try{for(S(H),f=n(l);f!==null&&(!(f.expirationTime>H)||F&&!O());){var ce=f.callback;if(typeof ce=="function"){f.callback=null,p=f.priorityLevel;var B=ce(f.expirationTime<=H);H=e.unstable_now(),typeof B=="function"?f.callback=B:f===n(l)&&r(l),S(H)}else r(l);f=n(l)}if(f!==null)var ae=!0;else{var je=n(c);je!==null&&Y(C,je.startTime-H),ae=!1}return ae}finally{f=null,p=ee,v=!1}}var T=!1,E=null,$=-1,D=5,M=-1;function O(){return!(e.unstable_now()-MF||125ce?(F.sortIndex=ee,t(c,F),n(l)===null&&F===n(c)&&(y?(w($),$=-1):y=!0,Y(C,ee-ce))):(F.sortIndex=B,t(l,F),x||v||(x=!0,A(j))),F},e.unstable_shouldYield=O,e.unstable_wrapCallback=function(F){var H=p;return function(){var ee=p;p=H;try{return F.apply(this,arguments)}finally{p=ee}}}})(DD),zD.exports=DD;var Txe=zD.exports;/** +* @license React +* react-dom.production.min.js +* +* Copyright (c) Facebook, Inc. and its affiliates. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/var Ixe=m,is=Txe;function Ze(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),vj=Object.prototype.hasOwnProperty,Exe=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,FD={},UD={};function Nxe(e){return vj.call(UD,e)?!0:vj.call(FD,e)?!1:Exe.test(e)?UD[e]=!0:(FD[e]=!0,!1)}function $xe(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Mxe(e,t,n,r){if(t===null||typeof t>"u"||$xe(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function ia(e,t,n,r,i,o,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=a}var yo={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){yo[e]=new ia(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];yo[t]=new ia(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){yo[e]=new ia(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){yo[e]=new ia(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){yo[e]=new ia(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){yo[e]=new ia(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){yo[e]=new ia(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){yo[e]=new ia(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){yo[e]=new ia(e,5,!1,e.toLowerCase(),null,!1,!1)});var yj=/[\-:]([a-z])/g;function bj(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(yj,bj);yo[t]=new ia(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(yj,bj);yo[t]=new ia(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(yj,bj);yo[t]=new ia(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){yo[e]=new ia(e,1,!1,e.toLowerCase(),null,!1,!1)}),yo.xlinkHref=new ia("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){yo[e]=new ia(e,1,!1,e.toLowerCase(),null,!0,!0)});function xj(e,t,n,r){var i=yo.hasOwnProperty(t)?yo[t]:null;(i!==null?i.type!==0:r||!(2s||i[a]!==o[s]){var l=` +`+i[a].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=a&&0<=s);break}}}finally{Ij=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?gv(e):""}function Rxe(e){switch(e.tag){case 5:return gv(e.type);case 16:return gv("Lazy");case 13:return gv("Suspense");case 19:return gv("SuspenseList");case 0:case 2:case 15:return e=Ej(e.type,!1),e;case 11:return e=Ej(e.type.render,!1),e;case 1:return e=Ej(e.type,!0),e;default:return""}}function Nj(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case t0:return"Fragment";case e0:return"Portal";case wj:return"Profiler";case _j:return"StrictMode";case Sj:return"Suspense";case Cj:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case WD:return(e.displayName||"Context")+".Consumer";case BD:return(e._context.displayName||"Context")+".Provider";case kj:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case jj:return t=e.displayName||null,t!==null?t:Nj(e.type)||"Memo";case Qd:t=e._payload,e=e._init;try{return Nj(e(t))}catch{}}return null}function Lxe(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Nj(t);case 8:return t===_j?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function ef(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ZD(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Pxe(e){var t=ZD(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(a){r=""+a,o.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function w2(e){e._valueTracker||(e._valueTracker=Pxe(e))}function qD(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ZD(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function k2(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function $j(e,t){var n=t.checked;return Qr({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function GD(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ef(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function YD(e,t){t=t.checked,t!=null&&xj(e,"checked",t,!1)}function Mj(e,t){YD(e,t);var n=ef(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Rj(e,t.type,n):t.hasOwnProperty("defaultValue")&&Rj(e,t.type,ef(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function KD(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Rj(e,t,n){(t!=="number"||k2(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var vv=Array.isArray;function n0(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=S2.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function yv(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var bv={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Oxe=["Webkit","ms","Moz","O"];Object.keys(bv).forEach(function(e){Oxe.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),bv[t]=bv[e]})});function nA(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||bv.hasOwnProperty(e)&&bv[e]?(""+t).trim():t+"px"}function rA(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=nA(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var zxe=Qr({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Oj(e,t){if(t){if(zxe[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(Ze(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(Ze(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(Ze(61))}if(t.style!=null&&typeof t.style!="object")throw Error(Ze(62))}}function zj(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Dj=null;function Aj(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Fj=null,r0=null,i0=null;function iA(e){if(e=Uv(e)){if(typeof Fj!="function")throw Error(Ze(280));var t=e.stateNode;t&&(t=q2(t),Fj(e.stateNode,e.type,t))}}function oA(e){r0?i0?i0.push(e):i0=[e]:r0=e}function aA(){if(r0){var e=r0,t=i0;if(i0=r0=null,iA(e),t)for(e=0;e>>=0,e===0?32:31-(Gxe(e)/Yxe|0)|0}var E2=64,N2=4194304;function kv(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function $2(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,o=e.pingedLanes,a=n&268435455;if(a!==0){var s=a&~i;s!==0?r=kv(s):(o&=a,o!==0&&(r=kv(o)))}else a=n&~i,a!==0?r=kv(a):o!==0&&(r=kv(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,o=t&-t,i>=o||i===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Sv(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Nl(t),e[t]=n}function Qxe(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Mv),LA=" ",PA=!1;function OA(e,t){switch(e){case"keyup":return T_e.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function zA(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var s0=!1;function E_e(e,t){switch(e){case"compositionend":return zA(t);case"keypress":return t.which!==32?null:(PA=!0,LA);case"textInput":return e=t.data,e===LA&&PA?null:e;default:return null}}function N_e(e,t){if(s0)return e==="compositionend"||!i8&&OA(e,t)?(e=IA(),O2=Jj=af=null,s0=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=VA(n)}}function ZA(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?ZA(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function qA(){for(var e=window,t=k2();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=k2(e.document)}return t}function s8(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function A_e(e){var t=qA(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&ZA(n.ownerDocument.documentElement,n)){if(r!==null&&s8(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,o=Math.min(r.start,i);r=r.end===void 0?o:Math.min(r.end,i),!e.extend&&o>r&&(i=r,r=o,o=i),i=HA(n,o);var a=HA(n,r);i&&a&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,l0=null,l8=null,Ov=null,u8=!1;function GA(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;u8||l0==null||l0!==k2(r)||(r=l0,"selectionStart"in r&&s8(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ov&&Pv(Ov,r)||(Ov=r,r=V2(l8,"onSelect"),0h0||(e.current=_8[h0],_8[h0]=null,h0--)}function Tr(e,t){h0++,_8[h0]=e.current,e.current=t}var cf={},Po=uf(cf),Na=uf(!1),Ph=cf;function p0(e,t){var n=e.type.contextTypes;if(!n)return cf;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in n)i[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function $a(e){return e=e.childContextTypes,e!=null}function G2(){Or(Na),Or(Po)}function uF(e,t,n){if(Po.current!==cf)throw Error(Ze(168));Tr(Po,t),Tr(Na,n)}function cF(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(Ze(108,Lxe(e)||"Unknown",i));return Qr({},n,r)}function Y2(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||cf,Ph=Po.current,Tr(Po,e),Tr(Na,Na.current),!0}function dF(e,t,n){var r=e.stateNode;if(!r)throw Error(Ze(169));n?(e=cF(e,t,Ph),r.__reactInternalMemoizedMergedChildContext=e,Or(Na),Or(Po),Tr(Po,e)):Or(Na),Tr(Na,n)}var Wc=null,K2=!1,w8=!1;function fF(e){Wc===null?Wc=[e]:Wc.push(e)}function X_e(e){K2=!0,fF(e)}function df(){if(!w8&&Wc!==null){w8=!0;var e=0,t=Qn;try{var n=Wc;for(Qn=1;e>=a,i-=a,Vc=1<<32-Nl(t)+i|n<$?(D=E,E=null):D=E.sibling;var M=p(w,E,S[$],C);if(M===null){E===null&&(E=D);break}e&&E&&M.alternate===null&&t(w,E),_=o(M,_,$),T===null?j=M:T.sibling=M,T=M,E=D}if($===S.length)return n(w,E),Zr&&zh(w,$),j;if(E===null){for(;$$?(D=E,E=null):D=E.sibling;var O=p(w,E,M.value,C);if(O===null){E===null&&(E=D);break}e&&E&&O.alternate===null&&t(w,E),_=o(O,_,$),T===null?j=O:T.sibling=O,T=O,E=D}if(M.done)return n(w,E),Zr&&zh(w,$),j;if(E===null){for(;!M.done;$++,M=S.next())M=f(w,M.value,C),M!==null&&(_=o(M,_,$),T===null?j=M:T.sibling=M,T=M);return Zr&&zh(w,$),j}for(E=r(w,E);!M.done;$++,M=S.next())M=v(E,w,$,M.value,C),M!==null&&(e&&M.alternate!==null&&E.delete(M.key===null?$:M.key),_=o(M,_,$),T===null?j=M:T.sibling=M,T=M);return e&&E.forEach(function(te){return t(w,te)}),Zr&&zh(w,$),j}function b(w,_,S,C){if(typeof S=="object"&&S!==null&&S.type===t0&&S.key===null&&(S=S.props.children),typeof S=="object"&&S!==null){switch(S.$$typeof){case _2:e:{for(var j=S.key,T=_;T!==null;){if(T.key===j){if(j=S.type,j===t0){if(T.tag===7){n(w,T.sibling),_=i(T,S.props.children),_.return=w,w=_;break e}}else if(T.elementType===j||typeof j=="object"&&j!==null&&j.$$typeof===Qd&&yF(j)===T.type){n(w,T.sibling),_=i(T,S.props),_.ref=Bv(w,T,S),_.return=w,w=_;break e}n(w,T);break}else t(w,T);T=T.sibling}S.type===t0?(_=Hh(S.props.children,w.mode,C,S.key),_.return=w,w=_):(C=Sw(S.type,S.key,S.props,null,w.mode,C),C.ref=Bv(w,_,S),C.return=w,w=C)}return a(w);case e0:e:{for(T=S.key;_!==null;){if(_.key===T)if(_.tag===4&&_.stateNode.containerInfo===S.containerInfo&&_.stateNode.implementation===S.implementation){n(w,_.sibling),_=i(_,S.children||[]),_.return=w,w=_;break e}else{n(w,_);break}else t(w,_);_=_.sibling}_=y9(S,w.mode,C),_.return=w,w=_}return a(w);case Qd:return T=S._init,b(w,_,T(S._payload),C)}if(vv(S))return x(w,_,S,C);if(mv(S))return y(w,_,S,C);ew(w,S)}return typeof S=="string"&&S!==""||typeof S=="number"?(S=""+S,_!==null&&_.tag===6?(n(w,_.sibling),_=i(_,S),_.return=w,w=_):(n(w,_),_=v9(S,w.mode,C),_.return=w,w=_),a(w)):n(w,_)}return b}var y0=bF(!0),xF=bF(!1),tw=uf(null),nw=null,b0=null,I8=null;function E8(){I8=b0=nw=null}function N8(e){var t=tw.current;Or(tw),e._currentValue=t}function $8(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function x0(e,t){nw=e,I8=b0=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Ma=!0),e.firstContext=null)}function qs(e){var t=e._currentValue;if(I8!==e)if(e={context:e,memoizedValue:t,next:null},b0===null){if(nw===null)throw Error(Ze(308));b0=e,nw.dependencies={lanes:0,firstContext:e}}else b0=b0.next=e;return t}var Dh=null;function M8(e){Dh===null?Dh=[e]:Dh.push(e)}function _F(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,M8(t)):(n.next=i.next,i.next=n),t.interleaved=n,Zc(e,r)}function Zc(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var ff=!1;function R8(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function wF(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function qc(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function hf(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Nn&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Zc(e,n)}return i=r.interleaved,i===null?(t.next=t,M8(r)):(t.next=i.next,i.next=t),r.interleaved=t,Zc(e,n)}function rw(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,qj(e,n)}}function kF(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?i=o=a:o=o.next=a,n=n.next}while(n!==null);o===null?i=o=t:o=o.next=t}else i=o=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function iw(e,t,n,r){var i=e.updateQueue;ff=!1;var o=i.firstBaseUpdate,a=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var l=s,c=l.next;l.next=null,a===null?o=c:a.next=c,a=l;var d=e.alternate;d!==null&&(d=d.updateQueue,s=d.lastBaseUpdate,s!==a&&(s===null?d.firstBaseUpdate=c:s.next=c,d.lastBaseUpdate=l))}if(o!==null){var f=i.baseState;a=0,d=c=l=null,s=o;do{var p=s.lane,v=s.eventTime;if((r&p)===p){d!==null&&(d=d.next={eventTime:v,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var x=e,y=s;switch(p=t,v=n,y.tag){case 1:if(x=y.payload,typeof x=="function"){f=x.call(v,f,p);break e}f=x;break e;case 3:x.flags=x.flags&-65537|128;case 0:if(x=y.payload,p=typeof x=="function"?x.call(v,f,p):x,p==null)break e;f=Qr({},f,p);break e;case 2:ff=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,p=i.effects,p===null?i.effects=[s]:p.push(s))}else v={eventTime:v,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},d===null?(c=d=v,l=f):d=d.next=v,a|=p;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(!0);if(d===null&&(l=f),i.baseState=l,i.firstBaseUpdate=c,i.lastBaseUpdate=d,t=i.shared.interleaved,t!==null){i=t;do a|=i.lane,i=i.next;while(i!==t)}else o===null&&(i.shared.lanes=0);Uh|=a,e.lanes=a,e.memoizedState=f}}function SF(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=D8.transition;D8.transition={};try{e(!1),t()}finally{Qn=n,D8.transition=r}}function WF(){return Gs().memoizedState}function t2e(e,t,n){var r=vf(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},VF(e))HF(t,n);else if(n=_F(e,t,n,r),n!==null){var i=aa();Ol(n,e,r,i),ZF(n,t,r)}}function n2e(e,t,n){var r=vf(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(VF(e))HF(t,i);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var a=t.lastRenderedState,s=o(a,n);if(i.hasEagerState=!0,i.eagerState=s,$l(s,a)){var l=t.interleaved;l===null?(i.next=i,M8(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=_F(e,t,i,r),n!==null&&(i=aa(),Ol(n,e,r,i),ZF(n,t,r))}}function VF(e){var t=e.alternate;return e===ti||t!==null&&t===ti}function HF(e,t){Zv=sw=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function ZF(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,qj(e,n)}}var cw={readContext:qs,useCallback:Oo,useContext:Oo,useEffect:Oo,useImperativeHandle:Oo,useInsertionEffect:Oo,useLayoutEffect:Oo,useMemo:Oo,useReducer:Oo,useRef:Oo,useState:Oo,useDebugValue:Oo,useDeferredValue:Oo,useTransition:Oo,useMutableSource:Oo,useSyncExternalStore:Oo,useId:Oo,unstable_isNewReconciler:!1},r2e={readContext:qs,useCallback:function(e,t){return Pu().memoizedState=[e,t===void 0?null:t],e},useContext:qs,useEffect:PF,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,lw(4194308,4,DF.bind(null,t,e),n)},useLayoutEffect:function(e,t){return lw(4194308,4,e,t)},useInsertionEffect:function(e,t){return lw(4,2,e,t)},useMemo:function(e,t){var n=Pu();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Pu();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=t2e.bind(null,ti,e),[r.memoizedState,e]},useRef:function(e){var t=Pu();return e={current:e},t.memoizedState=e},useState:RF,useDebugValue:H8,useDeferredValue:function(e){return Pu().memoizedState=e},useTransition:function(){var e=RF(!1),t=e[0];return e=e2e.bind(null,e[1]),Pu().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ti,i=Pu();if(Zr){if(n===void 0)throw Error(Ze(407));n=n()}else{if(n=t(),ro===null)throw Error(Ze(349));Fh&30||IF(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,PF(NF.bind(null,r,o,e),[e]),r.flags|=2048,Yv(9,EF.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Pu(),t=ro.identifierPrefix;if(Zr){var n=Hc,r=Vc;n=(r&~(1<<32-Nl(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=qv++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Ru]=t,e[Fv]=r,fU(e,t,!1,!1),t.stateNode=e;e:{switch(a=zj(n,r),n){case"dialog":Pr("cancel",e),Pr("close",e),i=r;break;case"iframe":case"object":case"embed":Pr("load",e),i=r;break;case"video":case"audio":for(i=0;iC0&&(t.flags|=128,r=!0,Kv(o,!1),t.lanes=4194304)}else{if(!r)if(e=ow(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Kv(o,!0),o.tail===null&&o.tailMode==="hidden"&&!a.alternate&&!Zr)return zo(t),null}else 2*bi()-o.renderingStartTime>C0&&n!==1073741824&&(t.flags|=128,r=!0,Kv(o,!1),t.lanes=4194304);o.isBackwards?(a.sibling=t.child,t.child=a):(n=o.last,n!==null?n.sibling=a:t.child=a,o.last=a)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=bi(),t.sibling=null,n=ei.current,Tr(ei,r?n&1|2:n&1),t):(zo(t),null);case 22:case 23:return p9(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?ls&1073741824&&(zo(t),t.subtreeFlags&6&&(t.flags|=8192)):zo(t),null;case 24:return null;case 25:return null}throw Error(Ze(156,t.tag))}function d2e(e,t){switch(S8(t),t.tag){case 1:return $a(t.type)&&G2(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return _0(),Or(Na),Or(Po),z8(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return P8(t),null;case 13:if(Or(ei),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Ze(340));v0()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Or(ei),null;case 4:return _0(),null;case 10:return N8(t.type._context),null;case 22:case 23:return p9(),null;case 24:return null;default:return null}}var pw=!1,Do=!1,f2e=typeof WeakSet=="function"?WeakSet:Set,dt=null;function k0(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){ui(e,t,r)}else n.current=null}function mU(e,t,n){try{n()}catch(r){ui(e,t,r)}}var gU=!1;function h2e(e,t){if(m8=L2,e=qA(),s8(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var a=0,s=-1,l=-1,c=0,d=0,f=e,p=null;t:for(;;){for(var v;f!==n||i!==0&&f.nodeType!==3||(s=a+i),f!==o||r!==0&&f.nodeType!==3||(l=a+r),f.nodeType===3&&(a+=f.nodeValue.length),(v=f.firstChild)!==null;)p=f,f=v;for(;;){if(f===e)break t;if(p===n&&++c===i&&(s=a),p===o&&++d===r&&(l=a),(v=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=v}n=s===-1||l===-1?null:{start:s,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(g8={focusedElem:e,selectionRange:n},L2=!1,dt=t;dt!==null;)if(t=dt,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,dt=e;else for(;dt!==null;){t=dt;try{var x=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(x!==null){var y=x.memoizedProps,b=x.memoizedState,w=t.stateNode,_=w.getSnapshotBeforeUpdate(t.elementType===t.type?y:Rl(t.type,y),b);w.__reactInternalSnapshotBeforeUpdate=_}break;case 3:var S=t.stateNode.containerInfo;S.nodeType===1?S.textContent="":S.nodeType===9&&S.documentElement&&S.removeChild(S.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Ze(163))}}catch(C){ui(t,t.return,C)}if(e=t.sibling,e!==null){e.return=t.return,dt=e;break}dt=t.return}return x=gU,gU=!1,x}function Xv(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var o=i.destroy;i.destroy=void 0,o!==void 0&&mU(t,n,o)}i=i.next}while(i!==r)}}function mw(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function r9(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function vU(e){var t=e.alternate;t!==null&&(e.alternate=null,vU(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Ru],delete t[Fv],delete t[x8],delete t[Y_e],delete t[K_e])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function yU(e){return e.tag===5||e.tag===3||e.tag===4}function bU(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||yU(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function i9(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Z2));else if(r!==4&&(e=e.child,e!==null))for(i9(e,t,n),e=e.sibling;e!==null;)i9(e,t,n),e=e.sibling}function o9(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(o9(e,t,n),e=e.sibling;e!==null;)o9(e,t,n),e=e.sibling}var bo=null,Ll=!1;function pf(e,t,n){for(n=n.child;n!==null;)xU(e,t,n),n=n.sibling}function xU(e,t,n){if(Mu&&typeof Mu.onCommitFiberUnmount=="function")try{Mu.onCommitFiberUnmount(I2,n)}catch{}switch(n.tag){case 5:Do||k0(n,t);case 6:var r=bo,i=Ll;bo=null,pf(e,t,n),bo=r,Ll=i,bo!==null&&(Ll?(e=bo,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):bo.removeChild(n.stateNode));break;case 18:bo!==null&&(Ll?(e=bo,n=n.stateNode,e.nodeType===8?b8(e.parentNode,n):e.nodeType===1&&b8(e,n),Ev(e)):b8(bo,n.stateNode));break;case 4:r=bo,i=Ll,bo=n.stateNode.containerInfo,Ll=!0,pf(e,t,n),bo=r,Ll=i;break;case 0:case 11:case 14:case 15:if(!Do&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var o=i,a=o.destroy;o=o.tag,a!==void 0&&(o&2||o&4)&&mU(n,t,a),i=i.next}while(i!==r)}pf(e,t,n);break;case 1:if(!Do&&(k0(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){ui(n,t,s)}pf(e,t,n);break;case 21:pf(e,t,n);break;case 22:n.mode&1?(Do=(r=Do)||n.memoizedState!==null,pf(e,t,n),Do=r):pf(e,t,n);break;default:pf(e,t,n)}}function _U(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new f2e),t.forEach(function(r){var i=w2e.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function Pl(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=a),r&=~o}if(r=i,r=bi()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*m2e(r/1960))-r,10e?16:e,gf===null)var r=!1;else{if(e=gf,gf=null,xw=0,Nn&6)throw Error(Ze(331));var i=Nn;for(Nn|=4,dt=e.current;dt!==null;){var o=dt,a=o.child;if(dt.flags&16){var s=o.deletions;if(s!==null){for(var l=0;lbi()-l9?Wh(e,0):s9|=n),La(e,t)}function LU(e,t){t===0&&(e.mode&1?(t=N2,N2<<=1,!(N2&130023424)&&(N2=4194304)):t=1);var n=aa();e=Zc(e,t),e!==null&&(Sv(e,t,n),La(e,n))}function _2e(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),LU(e,n)}function w2e(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(Ze(314))}r!==null&&r.delete(t),LU(e,n)}var PU;PU=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Na.current)Ma=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Ma=!1,u2e(e,t,n);Ma=!!(e.flags&131072)}else Ma=!1,Zr&&t.flags&1048576&&hF(t,J2,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;hw(e,t),e=t.pendingProps;var i=p0(t,Po.current);x0(t,n),i=F8(null,t,r,e,i,n);var o=U8();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,$a(r)?(o=!0,Y2(t)):o=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,R8(t),i.updater=dw,t.stateNode=i,i._reactInternals=t,q8(t,r,e,n),t=X8(null,t,r,!0,o,n)):(t.tag=0,Zr&&o&&k8(t),oa(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(hw(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=S2e(r),e=Rl(r,e),i){case 0:t=K8(null,t,r,e,n);break e;case 1:t=aU(null,t,r,e,n);break e;case 11:t=tU(null,t,r,e,n);break e;case 14:t=nU(null,t,r,Rl(r.type,e),n);break e}throw Error(Ze(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Rl(r,i),K8(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Rl(r,i),aU(e,t,r,i,n);case 3:e:{if(sU(t),e===null)throw Error(Ze(387));r=t.pendingProps,o=t.memoizedState,i=o.element,wF(e,t),iw(t,r,null,n);var a=t.memoizedState;if(r=a.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){i=w0(Error(Ze(423)),t),t=lU(e,t,r,n,i);break e}else if(r!==i){i=w0(Error(Ze(424)),t),t=lU(e,t,r,n,i);break e}else for(ss=lf(t.stateNode.containerInfo.firstChild),as=t,Zr=!0,Ml=null,n=xF(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(v0(),r===i){t=Gc(e,t,n);break e}oa(e,t,r,n)}t=t.child}return t;case 5:return CF(t),e===null&&j8(t),r=t.type,i=t.pendingProps,o=e!==null?e.memoizedProps:null,a=i.children,v8(r,i)?a=null:o!==null&&v8(r,o)&&(t.flags|=32),oU(e,t),oa(e,t,a,n),t.child;case 6:return e===null&&j8(t),null;case 13:return uU(e,t,n);case 4:return L8(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=y0(t,null,r,n):oa(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Rl(r,i),tU(e,t,r,i,n);case 7:return oa(e,t,t.pendingProps,n),t.child;case 8:return oa(e,t,t.pendingProps.children,n),t.child;case 12:return oa(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,o=t.memoizedProps,a=i.value,Tr(tw,r._currentValue),r._currentValue=a,o!==null)if($l(o.value,a)){if(o.children===i.children&&!Na.current){t=Gc(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var s=o.dependencies;if(s!==null){a=o.child;for(var l=s.firstContext;l!==null;){if(l.context===r){if(o.tag===1){l=qc(-1,n&-n),l.tag=2;var c=o.updateQueue;if(c!==null){c=c.shared;var d=c.pending;d===null?l.next=l:(l.next=d.next,d.next=l),c.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),$8(o.return,n,t),s.lanes|=n;break}l=l.next}}else if(o.tag===10)a=o.type===t.type?null:o.child;else if(o.tag===18){if(a=o.return,a===null)throw Error(Ze(341));a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),$8(a,n,t),a=o.sibling}else a=o.child;if(a!==null)a.return=o;else for(a=o;a!==null;){if(a===t){a=null;break}if(o=a.sibling,o!==null){o.return=a.return,a=o;break}a=a.return}o=a}oa(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,x0(t,n),i=qs(i),r=r(i),t.flags|=1,oa(e,t,r,n),t.child;case 14:return r=t.type,i=Rl(r,t.pendingProps),i=Rl(r.type,i),nU(e,t,r,i,n);case 15:return rU(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Rl(r,i),hw(e,t),t.tag=1,$a(r)?(e=!0,Y2(t)):e=!1,x0(t,n),GF(t,r,i),q8(t,r,i,n),X8(null,t,r,!0,e,n);case 19:return dU(e,t,n);case 22:return iU(e,t,n)}throw Error(Ze(156,t.tag))};function OU(e,t){return pA(e,t)}function k2e(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ks(e,t,n,r){return new k2e(e,t,n,r)}function g9(e){return e=e.prototype,!(!e||!e.isReactComponent)}function S2e(e){if(typeof e=="function")return g9(e)?1:0;if(e!=null){if(e=e.$$typeof,e===kj)return 11;if(e===jj)return 14}return 2}function bf(e,t){var n=e.alternate;return n===null?(n=Ks(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Sw(e,t,n,r,i,o){var a=2;if(r=e,typeof e=="function")g9(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case t0:return Hh(n.children,i,o,t);case _j:a=8,i|=8;break;case wj:return e=Ks(12,n,t,i|2),e.elementType=wj,e.lanes=o,e;case Sj:return e=Ks(13,n,t,i),e.elementType=Sj,e.lanes=o,e;case Cj:return e=Ks(19,n,t,i),e.elementType=Cj,e.lanes=o,e;case VD:return Cw(n,i,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case BD:a=10;break e;case WD:a=9;break e;case kj:a=11;break e;case jj:a=14;break e;case Qd:a=16,r=null;break e}throw Error(Ze(130,e==null?e:typeof e,""))}return t=Ks(a,n,t,i),t.elementType=e,t.type=r,t.lanes=o,t}function Hh(e,t,n,r){return e=Ks(7,e,r,t),e.lanes=n,e}function Cw(e,t,n,r){return e=Ks(22,e,r,t),e.elementType=VD,e.lanes=n,e.stateNode={isHidden:!1},e}function v9(e,t,n){return e=Ks(6,e,null,t),e.lanes=n,e}function y9(e,t,n){return t=Ks(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function C2e(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Zj(0),this.expirationTimes=Zj(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Zj(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function b9(e,t,n,r,i,o,a,s,l){return e=new C2e(e,t,n,s,l),t===1?(t=1,o===!0&&(t|=8)):t=0,o=Ks(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},R8(o),e}function j2e(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(BU)}catch(e){console.error(e)}}BU(),OD.exports=rs;var Kc=OD.exports;const WU=to(Kc);var VU=Kc;gj.createRoot=VU.createRoot,gj.hydrateRoot=VU.hydrateRoot;function HU(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function zl(...e){return t=>{let n=!1;const r=e.map(i=>{const o=HU(i,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let i=0;i{const{children:o,...a}=r,s=m.Children.toArray(o),l=s.find(R2e);if(l){const c=l.props.children,d=s.map(f=>f===l?m.Children.count(c)>1?m.Children.only(null):m.isValidElement(c)?c.props.children:null:f);return u.jsx(t,{...a,ref:i,children:m.isValidElement(c)?m.cloneElement(c,void 0,d):null})}return u.jsx(t,{...a,ref:i,children:o})});return n.displayName=`${e}.Slot`,n}var xf=vr("Slot");function $2e(e){const t=m.forwardRef((n,r)=>{const{children:i,...o}=n;if(m.isValidElement(i)){const a=P2e(i),s=L2e(o,i.props);return i.type!==m.Fragment&&(s.ref=r?zl(r,a):a),m.cloneElement(i,s)}return m.Children.count(i)>1?m.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var ZU=Symbol("radix.slottable");function qU(e){const t=({children:n})=>u.jsx(u.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=ZU,t}var M2e=qU("Slottable");function R2e(e){return m.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===ZU}function L2e(e,t){const n={...t};for(const r in t){const i=e[r],o=t[r];/^on[A-Z]/.test(r)?i&&o?n[r]=(...a)=>{const s=o(...a);return i(...a),s}:i&&(n[r]=i):r==="style"?n[r]={...i,...o}:r==="className"&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}function P2e(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var O2e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],z2e=O2e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),GU=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),D2e="VisuallyHidden",YU=m.forwardRef((e,t)=>u.jsx(z2e.span,{...e,ref:t,style:{...GU,...e.style}}));YU.displayName=D2e;var KU=YU;function A2e(e,t){const n=m.createContext(t),r=o=>{const{children:a,...s}=o,l=m.useMemo(()=>s,Object.values(s));return u.jsx(n.Provider,{value:l,children:a})};r.displayName=e+"Provider";function i(o){const a=m.useContext(n);if(a)return a;if(t!==void 0)return t;throw new Error(`\`${o}\` must be used within \`${e}\``)}return[r,i]}function Pa(e,t=[]){let n=[];function r(o,a){const s=m.createContext(a),l=n.length;n=[...n,a];const c=f=>{var w;const{scope:p,children:v,...x}=f,y=((w=p==null?void 0:p[e])==null?void 0:w[l])||s,b=m.useMemo(()=>x,Object.values(x));return u.jsx(y.Provider,{value:b,children:v})};c.displayName=o+"Provider";function d(f,p){var y;const v=((y=p==null?void 0:p[e])==null?void 0:y[l])||s,x=m.useContext(v);if(x)return x;if(a!==void 0)return a;throw new Error(`\`${f}\` must be used within \`${o}\``)}return[c,d]}const i=()=>{const o=n.map(a=>m.createContext(a));return function(a){const s=(a==null?void 0:a[e])||o;return m.useMemo(()=>({[`__scope${e}`]:{...a,[e]:s}}),[a,s])}};return i.scopeName=e,[r,F2e(i,...t)]}function F2e(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(i){const o=r.reduce((a,{useScope:s,scopeName:l})=>{const c=s(i)[`__scope${l}`];return{...a,...c}},{});return m.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])}};return n.scopeName=t.scopeName,n}function Mw(e){const t=e+"CollectionProvider",[n,r]=Pa(t),[i,o]=n(t,{collectionRef:{current:null},itemMap:new Map}),a=y=>{const{scope:b,children:w}=y,_=Pe.useRef(null),S=Pe.useRef(new Map).current;return u.jsx(i,{scope:b,itemMap:S,collectionRef:_,children:w})};a.displayName=t;const s=e+"CollectionSlot",l=vr(s),c=Pe.forwardRef((y,b)=>{const{scope:w,children:_}=y,S=o(s,w),C=At(b,S.collectionRef);return u.jsx(l,{ref:C,children:_})});c.displayName=s;const d=e+"CollectionItemSlot",f="data-radix-collection-item",p=vr(d),v=Pe.forwardRef((y,b)=>{const{scope:w,children:_,...S}=y,C=Pe.useRef(null),j=At(b,C),T=o(d,w);return Pe.useEffect(()=>(T.itemMap.set(C,{ref:C,...S}),()=>void T.itemMap.delete(C))),u.jsx(p,{[f]:"",ref:j,children:_})});v.displayName=d;function x(y){const b=o(e+"CollectionConsumer",y);return Pe.useCallback(()=>{const w=b.collectionRef.current;if(!w)return[];const _=Array.from(w.querySelectorAll(`[${f}]`));return Array.from(b.itemMap.values()).sort((S,C)=>_.indexOf(S.ref.current)-_.indexOf(C.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:a,Slot:c,ItemSlot:v},x,r]}function Xe(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e==null||e(r),n===!1||!r.defaultPrevented)return t==null?void 0:t(r)}}var _o=globalThis!=null&&globalThis.document?m.useLayoutEffect:()=>{},U2e=mj[" useInsertionEffect ".trim().toString()]||_o;function Xs({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[i,o,a]=B2e({defaultProp:t,onChange:n}),s=e!==void 0,l=s?e:i;{const d=m.useRef(e!==void 0);m.useEffect(()=>{const f=d.current;f!==s&&console.warn(`${r} is changing from ${f?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),d.current=s},[s,r])}const c=m.useCallback(d=>{var f;if(s){const p=W2e(d)?d(e):d;p!==e&&((f=a.current)==null||f.call(a,p))}else o(d)},[s,e,o,a]);return[l,c]}function B2e({defaultProp:e,onChange:t}){const[n,r]=m.useState(e),i=m.useRef(n),o=m.useRef(t);return U2e(()=>{o.current=t},[t]),m.useEffect(()=>{var a;i.current!==n&&((a=o.current)==null||a.call(o,n),i.current=n)},[n,i]),[n,r,o]}function W2e(e){return typeof e=="function"}function V2e(e,t){return m.useReducer((n,r)=>t[n][r]??n,e)}var Ao=e=>{const{present:t,children:n}=e,r=H2e(t),i=typeof n=="function"?n({present:r.isPresent}):m.Children.only(n),o=At(r.ref,Z2e(i));return typeof n=="function"||r.isPresent?m.cloneElement(i,{ref:o}):null};Ao.displayName="Presence";function H2e(e){const[t,n]=m.useState(),r=m.useRef(null),i=m.useRef(e),o=m.useRef("none"),a=e?"mounted":"unmounted",[s,l]=V2e(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return m.useEffect(()=>{const c=Rw(r.current);o.current=s==="mounted"?c:"none"},[s]),_o(()=>{const c=r.current,d=i.current;if(d!==e){const f=o.current,p=Rw(c);e?l("MOUNT"):p==="none"||(c==null?void 0:c.display)==="none"?l("UNMOUNT"):l(d&&f!==p?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,l]),_o(()=>{if(t){let c;const d=t.ownerDocument.defaultView??window,f=v=>{const x=Rw(r.current).includes(CSS.escape(v.animationName));if(v.target===t&&x&&(l("ANIMATION_END"),!i.current)){const y=t.style.animationFillMode;t.style.animationFillMode="forwards",c=d.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=y)})}},p=v=>{v.target===t&&(o.current=Rw(r.current))};return t.addEventListener("animationstart",p),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{d.clearTimeout(c),t.removeEventListener("animationstart",p),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:m.useCallback(c=>{r.current=c?getComputedStyle(c):null,n(c)},[])}}function Rw(e){return(e==null?void 0:e.animationName)||"none"}function Z2e(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var q2e=mj[" useId ".trim().toString()]||(()=>{}),G2e=0;function wo(e){const[t,n]=m.useState(q2e());return _o(()=>{n(r=>r??String(G2e++))},[e]),t?`radix-${t}`:""}var XU=m.createContext(void 0),Y2e=e=>{const{dir:t,children:n}=e;return u.jsx(XU.Provider,{value:t,children:n})};function T0(e){const t=m.useContext(XU);return e||t||"ltr"}var K2e=Y2e,X2e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],JU=X2e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function J2e(e,t){e&&Kc.flushSync(()=>e.dispatchEvent(t))}function ko(e){const t=m.useRef(e);return m.useEffect(()=>{t.current=e}),m.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function Q2e(e,t=globalThis==null?void 0:globalThis.document){const n=ko(e);m.useEffect(()=>{const r=i=>{i.key==="Escape"&&n(i)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var ewe="DismissableLayer",k9="dismissableLayer.update",twe="dismissableLayer.pointerDownOutside",nwe="dismissableLayer.focusOutside",QU,eB=m.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),I0=m.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:o,onInteractOutside:a,onDismiss:s,...l}=e,c=m.useContext(eB),[d,f]=m.useState(null),p=(d==null?void 0:d.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,v]=m.useState({}),x=At(t,E=>f(E)),y=Array.from(c.layers),[b]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),w=y.indexOf(b),_=d?y.indexOf(d):-1,S=c.layersWithOutsidePointerEventsDisabled.size>0,C=_>=w,j=owe(E=>{const $=E.target,D=[...c.branches].some(M=>M.contains($));!C||D||(i==null||i(E),a==null||a(E),E.defaultPrevented||(s==null||s()))},p),T=awe(E=>{const $=E.target;[...c.branches].some(D=>D.contains($))||(o==null||o(E),a==null||a(E),E.defaultPrevented||(s==null||s()))},p);return Q2e(E=>{_===c.layers.size-1&&(r==null||r(E),!E.defaultPrevented&&s&&(E.preventDefault(),s()))},p),m.useEffect(()=>{if(d)return n&&(c.layersWithOutsidePointerEventsDisabled.size===0&&(QU=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(d)),c.layers.add(d),tB(),()=>{n&&c.layersWithOutsidePointerEventsDisabled.size===1&&(p.body.style.pointerEvents=QU)}},[d,p,n,c]),m.useEffect(()=>()=>{d&&(c.layers.delete(d),c.layersWithOutsidePointerEventsDisabled.delete(d),tB())},[d,c]),m.useEffect(()=>{const E=()=>v({});return document.addEventListener(k9,E),()=>document.removeEventListener(k9,E)},[]),u.jsx(JU.div,{...l,ref:x,style:{pointerEvents:S?C?"auto":"none":void 0,...e.style},onFocusCapture:Xe(e.onFocusCapture,T.onFocusCapture),onBlurCapture:Xe(e.onBlurCapture,T.onBlurCapture),onPointerDownCapture:Xe(e.onPointerDownCapture,j.onPointerDownCapture)})});I0.displayName=ewe;var rwe="DismissableLayerBranch",iwe=m.forwardRef((e,t)=>{const n=m.useContext(eB),r=m.useRef(null),i=At(t,r);return m.useEffect(()=>{const o=r.current;if(o)return n.branches.add(o),()=>{n.branches.delete(o)}},[n.branches]),u.jsx(JU.div,{...e,ref:i})});iwe.displayName=rwe;function owe(e,t=globalThis==null?void 0:globalThis.document){const n=ko(e),r=m.useRef(!1),i=m.useRef(()=>{});return m.useEffect(()=>{const o=s=>{if(s.target&&!r.current){let l=function(){nB(twe,n,c,{discrete:!0})};const c={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=l,t.addEventListener("click",i.current,{once:!0})):l()}else t.removeEventListener("click",i.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",o),t.removeEventListener("click",i.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function awe(e,t=globalThis==null?void 0:globalThis.document){const n=ko(e),r=m.useRef(!1);return m.useEffect(()=>{const i=o=>{o.target&&!r.current&&nB(nwe,n,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function tB(){const e=new CustomEvent(k9);document.dispatchEvent(e)}function nB(e,t,n,{discrete:r}){const i=n.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?J2e(i,o):i.dispatchEvent(o)}var swe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],lwe=swe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),S9="focusScope.autoFocusOnMount",C9="focusScope.autoFocusOnUnmount",rB={bubbles:!1,cancelable:!0},uwe="FocusScope",ny=m.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:o,...a}=e,[s,l]=m.useState(null),c=ko(i),d=ko(o),f=m.useRef(null),p=At(t,y=>l(y)),v=m.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;m.useEffect(()=>{if(r){let y=function(S){if(v.paused||!s)return;const C=S.target;s.contains(C)?f.current=C:_f(f.current,{select:!0})},b=function(S){if(v.paused||!s)return;const C=S.relatedTarget;C!==null&&(s.contains(C)||_f(f.current,{select:!0}))},w=function(S){if(document.activeElement===document.body)for(const C of S)C.removedNodes.length>0&&_f(s)};document.addEventListener("focusin",y),document.addEventListener("focusout",b);const _=new MutationObserver(w);return s&&_.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",y),document.removeEventListener("focusout",b),_.disconnect()}}},[r,s,v.paused]),m.useEffect(()=>{if(s){aB.add(v);const y=document.activeElement;if(!s.contains(y)){const b=new CustomEvent(S9,rB);s.addEventListener(S9,c),s.dispatchEvent(b),b.defaultPrevented||(cwe(mwe(iB(s)),{select:!0}),document.activeElement===y&&_f(s))}return()=>{s.removeEventListener(S9,c),setTimeout(()=>{const b=new CustomEvent(C9,rB);s.addEventListener(C9,d),s.dispatchEvent(b),b.defaultPrevented||_f(y??document.body,{select:!0}),s.removeEventListener(C9,d),aB.remove(v)},0)}}},[s,c,d,v]);const x=m.useCallback(y=>{if(!n&&!r||v.paused)return;const b=y.key==="Tab"&&!y.altKey&&!y.ctrlKey&&!y.metaKey,w=document.activeElement;if(b&&w){const _=y.currentTarget,[S,C]=dwe(_);S&&C?!y.shiftKey&&w===C?(y.preventDefault(),n&&_f(S,{select:!0})):y.shiftKey&&w===S&&(y.preventDefault(),n&&_f(C,{select:!0})):w===_&&y.preventDefault()}},[n,r,v.paused]);return u.jsx(lwe.div,{tabIndex:-1,...a,ref:p,onKeyDown:x})});ny.displayName=uwe;function cwe(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(_f(r,{select:t}),document.activeElement!==n)return}function dwe(e){const t=iB(e),n=oB(t,e),r=oB(t.reverse(),e);return[n,r]}function iB(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const i=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||i?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function oB(e,t){for(const n of e)if(!fwe(n,{upTo:t}))return n}function fwe(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function hwe(e){return e instanceof HTMLInputElement&&"select"in e}function _f(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&hwe(e)&&t&&e.select()}}var aB=pwe();function pwe(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=sB(e,t),e.unshift(t)},remove(t){var n;e=sB(e,t),(n=e[0])==null||n.resume()}}}function sB(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function mwe(e){return e.filter(t=>t.tagName!=="A")}var gwe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],vwe=gwe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),ywe="Portal",Zh=m.forwardRef((e,t)=>{var s;const{container:n,...r}=e,[i,o]=m.useState(!1);_o(()=>o(!0),[]);const a=n||i&&((s=globalThis==null?void 0:globalThis.document)==null?void 0:s.body);return a?WU.createPortal(u.jsx(vwe.div,{...r,ref:t}),a):null});Zh.displayName=ywe;var lB=Zh,bwe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ry=bwe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),j9=0;function Lw(){m.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??uB()),document.body.insertAdjacentElement("beforeend",e[1]??uB()),j9++,()=>{j9===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),j9--}},[])}function uB(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var zu=function(){return zu=Object.assign||function(e){for(var t,n=1,r=arguments.length;n"u")return Owe;var t=zwe(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Awe=pB(),E0="data-scroll-locked",Fwe=function(e,t,n,r){var i=e.left,o=e.top,a=e.right,s=e.gap;return n===void 0&&(n="margin"),` + .`.concat(_we,` { + overflow: hidden `).concat(r,`; + padding-right: `).concat(s,"px ").concat(r,`; + } + body[`).concat(E0,`] { + overflow: hidden `).concat(r,`; + overscroll-behavior: contain; + `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` + padding-left: `.concat(i,`px; + padding-top: `).concat(o,`px; + padding-right: `).concat(a,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(s,"px ").concat(r,`; + `),n==="padding"&&"padding-right: ".concat(s,"px ").concat(r,";")].filter(Boolean).join(""),` + } + + .`).concat(Pw,` { + right: `).concat(s,"px ").concat(r,`; + } + + .`).concat(Ow,` { + margin-right: `).concat(s,"px ").concat(r,`; + } + + .`).concat(Pw," .").concat(Pw,` { + right: 0 `).concat(r,`; + } + + .`).concat(Ow," .").concat(Ow,` { + margin-right: 0 `).concat(r,`; + } + + body[`).concat(E0,`] { + `).concat(wwe,": ").concat(s,`px; + } +`)},mB=function(){var e=parseInt(document.body.getAttribute(E0)||"0",10);return isFinite(e)?e:0},Uwe=function(){m.useEffect(function(){return document.body.setAttribute(E0,(mB()+1).toString()),function(){var e=mB()-1;e<=0?document.body.removeAttribute(E0):document.body.setAttribute(E0,e.toString())}},[])},Bwe=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?"margin":r;Uwe();var o=m.useMemo(function(){return Dwe(i)},[i]);return m.createElement(Awe,{styles:Fwe(o,!t,i,n?"":"!important")})},N9=!1;if(typeof window<"u")try{var Dw=Object.defineProperty({},"passive",{get:function(){return N9=!0,!0}});window.addEventListener("test",Dw,Dw),window.removeEventListener("test",Dw,Dw)}catch{N9=!1}var N0=N9?{passive:!1}:!1,Wwe=function(e){return e.tagName==="TEXTAREA"},gB=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!Wwe(e)&&n[t]==="visible")},Vwe=function(e){return gB(e,"overflowY")},Hwe=function(e){return gB(e,"overflowX")},vB=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var i=yB(e,r);if(i){var o=bB(e,r),a=o[1],s=o[2];if(a>s)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Zwe=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},qwe=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},yB=function(e,t){return e==="v"?Vwe(t):Hwe(t)},bB=function(e,t){return e==="v"?Zwe(t):qwe(t)},Gwe=function(e,t){return e==="h"&&t==="rtl"?-1:1},Ywe=function(e,t,n,r,i){var o=Gwe(e,window.getComputedStyle(t).direction),a=o*r,s=n.target,l=t.contains(s),c=!1,d=a>0,f=0,p=0;do{if(!s)break;var v=bB(e,s),x=v[0],y=v[1],b=v[2],w=y-b-o*x;(x||w)&&yB(e,s)&&(f+=w,p+=x);var _=s.parentNode;s=_&&_.nodeType===Node.DOCUMENT_FRAGMENT_NODE?_.host:_}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(d&&Math.abs(f)<1||!d&&Math.abs(p)<1)&&(c=!0),c},Aw=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},xB=function(e){return[e.deltaX,e.deltaY]},_B=function(e){return e&&"current"in e?e.current:e},Kwe=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Xwe=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},Jwe=0,$0=[];function Qwe(e){var t=m.useRef([]),n=m.useRef([0,0]),r=m.useRef(),i=m.useState(Jwe++)[0],o=m.useState(pB)[0],a=m.useRef(e);m.useEffect(function(){a.current=e},[e]),m.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var y=xwe([e.lockRef.current],(e.shards||[]).map(_B),!0).filter(Boolean);return y.forEach(function(b){return b.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),y.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var s=m.useCallback(function(y,b){if("touches"in y&&y.touches.length===2||y.type==="wheel"&&y.ctrlKey)return!a.current.allowPinchZoom;var w=Aw(y),_=n.current,S="deltaX"in y?y.deltaX:_[0]-w[0],C="deltaY"in y?y.deltaY:_[1]-w[1],j,T=y.target,E=Math.abs(S)>Math.abs(C)?"h":"v";if("touches"in y&&E==="h"&&T.type==="range")return!1;var $=vB(E,T);if(!$)return!0;if($?j=E:(j=E==="v"?"h":"v",$=vB(E,T)),!$)return!1;if(!r.current&&"changedTouches"in y&&(S||C)&&(r.current=j),!j)return!0;var D=r.current||j;return Ywe(D,b,y,D==="h"?S:C)},[]),l=m.useCallback(function(y){var b=y;if(!(!$0.length||$0[$0.length-1]!==o)){var w="deltaY"in b?xB(b):Aw(b),_=t.current.filter(function(j){return j.name===b.type&&(j.target===b.target||b.target===j.shadowParent)&&Kwe(j.delta,w)})[0];if(_&&_.should){b.cancelable&&b.preventDefault();return}if(!_){var S=(a.current.shards||[]).map(_B).filter(Boolean).filter(function(j){return j.contains(b.target)}),C=S.length>0?s(b,S[0]):!a.current.noIsolation;C&&b.cancelable&&b.preventDefault()}}},[]),c=m.useCallback(function(y,b,w,_){var S={name:y,delta:b,target:w,should:_,shadowParent:e4e(w)};t.current.push(S),setTimeout(function(){t.current=t.current.filter(function(C){return C!==S})},1)},[]),d=m.useCallback(function(y){n.current=Aw(y),r.current=void 0},[]),f=m.useCallback(function(y){c(y.type,xB(y),y.target,s(y,e.lockRef.current))},[]),p=m.useCallback(function(y){c(y.type,Aw(y),y.target,s(y,e.lockRef.current))},[]);m.useEffect(function(){return $0.push(o),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:p}),document.addEventListener("wheel",l,N0),document.addEventListener("touchmove",l,N0),document.addEventListener("touchstart",d,N0),function(){$0=$0.filter(function(y){return y!==o}),document.removeEventListener("wheel",l,N0),document.removeEventListener("touchmove",l,N0),document.removeEventListener("touchstart",d,N0)}},[]);var v=e.removeScrollBar,x=e.inert;return m.createElement(m.Fragment,null,x?m.createElement(o,{styles:Xwe(i)}):null,v?m.createElement(Bwe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function e4e(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const t4e=Ewe(hB,Qwe);var iy=m.forwardRef(function(e,t){return m.createElement(zw,zu({},e,{ref:t,sideCar:t4e}))});iy.classNames=zw.classNames;var n4e=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},M0=new WeakMap,Fw=new WeakMap,Uw={},$9=0,wB=function(e){return e&&(e.host||wB(e.parentNode))},r4e=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=wB(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},i4e=function(e,t,n,r){var i=r4e(t,Array.isArray(e)?e:[e]);Uw[n]||(Uw[n]=new WeakMap);var o=Uw[n],a=[],s=new Set,l=new Set(i),c=function(f){!f||s.has(f)||(s.add(f),c(f.parentNode))};i.forEach(c);var d=function(f){!f||l.has(f)||Array.prototype.forEach.call(f.children,function(p){if(s.has(p))d(p);else try{var v=p.getAttribute(r),x=v!==null&&v!=="false",y=(M0.get(p)||0)+1,b=(o.get(p)||0)+1;M0.set(p,y),o.set(p,b),a.push(p),y===1&&x&&Fw.set(p,!0),b===1&&p.setAttribute(n,"true"),x||p.setAttribute(r,"true")}catch(w){console.error("aria-hidden: cannot operate on ",p,w)}})};return d(t),s.clear(),$9++,function(){a.forEach(function(f){var p=M0.get(f)-1,v=o.get(f)-1;M0.set(f,p),o.set(f,v),p||(Fw.has(f)||f.removeAttribute(r),Fw.delete(f)),v||f.removeAttribute(n)}),$9--,$9||(M0=new WeakMap,M0=new WeakMap,Fw=new WeakMap,Uw={})}},Bw=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),i=n4e(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll("[aria-live], script"))),i4e(r,i,n,"aria-hidden")):function(){return null}},Ww="Dialog",[kB]=Pa(Ww),[o4e,Dl]=kB(Ww),SB=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:a=!0}=e,s=m.useRef(null),l=m.useRef(null),[c,d]=Xs({prop:r,defaultProp:i??!1,onChange:o,caller:Ww});return u.jsx(o4e,{scope:t,triggerRef:s,contentRef:l,contentId:wo(),titleId:wo(),descriptionId:wo(),open:c,onOpenChange:d,onOpenToggle:m.useCallback(()=>d(f=>!f),[d]),modal:a,children:n})};SB.displayName=Ww;var CB="DialogTrigger",jB=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(CB,n),o=At(t,i.triggerRef);return u.jsx(ry.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":L9(i.open),...r,ref:o,onClick:Xe(e.onClick,i.onOpenToggle)})});jB.displayName=CB;var M9="DialogPortal",[a4e,TB]=kB(M9,{forceMount:void 0}),IB=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:i}=e,o=Dl(M9,t);return u.jsx(a4e,{scope:t,forceMount:n,children:m.Children.map(r,a=>u.jsx(Ao,{present:n||o.open,children:u.jsx(Zh,{asChild:!0,container:i,children:a})}))})};IB.displayName=M9;var Vw="DialogOverlay",EB=m.forwardRef((e,t)=>{const n=TB(Vw,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=Dl(Vw,e.__scopeDialog);return o.modal?u.jsx(Ao,{present:r||o.open,children:u.jsx(l4e,{...i,ref:t})}):null});EB.displayName=Vw;var s4e=vr("DialogOverlay.RemoveScroll"),l4e=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(Vw,n);return u.jsx(iy,{as:s4e,allowPinchZoom:!0,shards:[i.contentRef],children:u.jsx(ry.div,{"data-state":L9(i.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),qh="DialogContent",NB=m.forwardRef((e,t)=>{const n=TB(qh,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=Dl(qh,e.__scopeDialog);return u.jsx(Ao,{present:r||o.open,children:o.modal?u.jsx(u4e,{...i,ref:t}):u.jsx(c4e,{...i,ref:t})})});NB.displayName=qh;var u4e=m.forwardRef((e,t)=>{const n=Dl(qh,e.__scopeDialog),r=m.useRef(null),i=At(t,n.contentRef,r);return m.useEffect(()=>{const o=r.current;if(o)return Bw(o)},[]),u.jsx($B,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Xe(e.onCloseAutoFocus,o=>{var a;o.preventDefault(),(a=n.triggerRef.current)==null||a.focus()}),onPointerDownOutside:Xe(e.onPointerDownOutside,o=>{const a=o.detail.originalEvent,s=a.button===0&&a.ctrlKey===!0;(a.button===2||s)&&o.preventDefault()}),onFocusOutside:Xe(e.onFocusOutside,o=>o.preventDefault())})}),c4e=m.forwardRef((e,t)=>{const n=Dl(qh,e.__scopeDialog),r=m.useRef(!1),i=m.useRef(!1);return u.jsx($B,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var a,s;(a=e.onCloseAutoFocus)==null||a.call(e,o),o.defaultPrevented||(r.current||((s=n.triggerRef.current)==null||s.focus()),o.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:o=>{var s,l;(s=e.onInteractOutside)==null||s.call(e,o),o.defaultPrevented||(r.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const a=o.target;(l=n.triggerRef.current)!=null&&l.contains(a)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})}),$B=m.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,...a}=e,s=Dl(qh,n),l=m.useRef(null),c=At(t,l);return Lw(),u.jsxs(u.Fragment,{children:[u.jsx(ny,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o,children:u.jsx(I0,{role:"dialog",id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":L9(s.open),...a,ref:c,onDismiss:()=>s.onOpenChange(!1)})}),u.jsxs(u.Fragment,{children:[u.jsx(d4e,{titleId:s.titleId}),u.jsx(h4e,{contentRef:l,descriptionId:s.descriptionId})]})]})}),R9="DialogTitle",MB=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(R9,n);return u.jsx(ry.h2,{id:i.titleId,...r,ref:t})});MB.displayName=R9;var RB="DialogDescription",LB=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(RB,n);return u.jsx(ry.p,{id:i.descriptionId,...r,ref:t})});LB.displayName=RB;var PB="DialogClose",OB=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(PB,n);return u.jsx(ry.button,{type:"button",...r,ref:t,onClick:Xe(e.onClick,()=>i.onOpenChange(!1))})});OB.displayName=PB;function L9(e){return e?"open":"closed"}var zB="DialogTitleWarning",[E5t,DB]=A2e(zB,{contentName:qh,titleName:R9,docsSlug:"dialog"}),d4e=({titleId:e})=>{const t=DB(zB),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. + +If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. + +For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return m.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},f4e="DialogDescriptionWarning",h4e=({contentRef:e,descriptionId:t})=>{const n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${DB(f4e).contentName}}.`;return m.useEffect(()=>{var i;const r=(i=e.current)==null?void 0:i.getAttribute("aria-describedby");t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},AB=SB,p4e=jB,FB=IB,UB=EB,BB=NB,m4e=MB,g4e=LB,v4e=OB,WB={exports:{}},VB={};/** +* @license React +* use-sync-external-store-shim.production.js +* +* Copyright (c) Meta Platforms, Inc. and affiliates. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/var R0=m;function y4e(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var b4e=typeof Object.is=="function"?Object.is:y4e,x4e=R0.useState,_4e=R0.useEffect,w4e=R0.useLayoutEffect,k4e=R0.useDebugValue;function S4e(e,t){var n=t(),r=x4e({inst:{value:n,getSnapshot:t}}),i=r[0].inst,o=r[1];return w4e(function(){i.value=n,i.getSnapshot=t,P9(i)&&o({inst:i})},[e,n,t]),_4e(function(){return P9(i)&&o({inst:i}),e(function(){P9(i)&&o({inst:i})})},[e]),k4e(n),n}function P9(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!b4e(e,n)}catch{return!0}}function C4e(e,t){return t()}var j4e=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?C4e:S4e;VB.useSyncExternalStore=R0.useSyncExternalStore!==void 0?R0.useSyncExternalStore:j4e,WB.exports=VB;var T4e=WB.exports;function O9(e){const t=m.useRef({value:e,previous:e});return m.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function z9(e){const[t,n]=m.useState(void 0);return _o(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;const o=i[0];let a,s;if("borderBoxSize"in o){const l=o.borderBoxSize,c=Array.isArray(l)?l[0]:l;a=c.inlineSize,s=c.blockSize}else a=e.offsetWidth,s=e.offsetHeight;n({width:a,height:s})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}const I4e=["top","right","bottom","left"],wf=Math.min,us=Math.max,Hw=Math.round,Zw=Math.floor,Du=e=>({x:e,y:e}),E4e={left:"right",right:"left",bottom:"top",top:"bottom"},N4e={start:"end",end:"start"};function D9(e,t,n){return us(e,wf(t,n))}function Xc(e,t){return typeof e=="function"?e(t):e}function Jc(e){return e.split("-")[0]}function L0(e){return e.split("-")[1]}function A9(e){return e==="x"?"y":"x"}function F9(e){return e==="y"?"height":"width"}const $4e=new Set(["top","bottom"]);function Au(e){return $4e.has(Jc(e))?"y":"x"}function U9(e){return A9(Au(e))}function M4e(e,t,n){n===void 0&&(n=!1);const r=L0(e),i=U9(e),o=F9(i);let a=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[o]>t.floating[o]&&(a=qw(a)),[a,qw(a)]}function R4e(e){const t=qw(e);return[B9(e),t,B9(t)]}function B9(e){return e.replace(/start|end/g,t=>N4e[t])}const HB=["left","right"],ZB=["right","left"],L4e=["top","bottom"],P4e=["bottom","top"];function O4e(e,t,n){switch(e){case"top":case"bottom":return n?t?ZB:HB:t?HB:ZB;case"left":case"right":return t?L4e:P4e;default:return[]}}function z4e(e,t,n,r){const i=L0(e);let o=O4e(Jc(e),n==="start",r);return i&&(o=o.map(a=>a+"-"+i),t&&(o=o.concat(o.map(B9)))),o}function qw(e){return e.replace(/left|right|bottom|top/g,t=>E4e[t])}function D4e(e){return{top:0,right:0,bottom:0,left:0,...e}}function qB(e){return typeof e!="number"?D4e(e):{top:e,right:e,bottom:e,left:e}}function Gw(e){const{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function GB(e,t,n){let{reference:r,floating:i}=e;const o=Au(t),a=U9(t),s=F9(a),l=Jc(t),c=o==="y",d=r.x+r.width/2-i.width/2,f=r.y+r.height/2-i.height/2,p=r[s]/2-i[s]/2;let v;switch(l){case"top":v={x:d,y:r.y-i.height};break;case"bottom":v={x:d,y:r.y+r.height};break;case"right":v={x:r.x+r.width,y:f};break;case"left":v={x:r.x-i.width,y:f};break;default:v={x:r.x,y:r.y}}switch(L0(t)){case"start":v[a]-=p*(n&&c?-1:1);break;case"end":v[a]+=p*(n&&c?-1:1);break}return v}const A4e=async(e,t,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:o=[],platform:a}=n,s=o.filter(Boolean),l=await(a.isRTL==null?void 0:a.isRTL(t));let c=await a.getElementRects({reference:e,floating:t,strategy:i}),{x:d,y:f}=GB(c,r,l),p=r,v={},x=0;for(let y=0;y({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:i,rects:o,platform:a,elements:s,middlewareData:l}=t,{element:c,padding:d=0}=Xc(e,t)||{};if(c==null)return{};const f=qB(d),p={x:n,y:r},v=U9(i),x=F9(v),y=await a.getDimensions(c),b=v==="y",w=b?"top":"left",_=b?"bottom":"right",S=b?"clientHeight":"clientWidth",C=o.reference[x]+o.reference[v]-p[v]-o.floating[x],j=p[v]-o.reference[v],T=await(a.getOffsetParent==null?void 0:a.getOffsetParent(c));let E=T?T[S]:0;(!E||!await(a.isElement==null?void 0:a.isElement(T)))&&(E=s.floating[S]||o.floating[x]);const $=C/2-j/2,D=E/2-y[x]/2-1,M=wf(f[w],D),O=wf(f[_],D),te=M,q=E-y[x]-O,P=E/2-y[x]/2+$,X=D9(te,P,q),A=!l.arrow&&L0(i)!=null&&P!==X&&o.reference[x]/2-(PP<=0)){var O,te;const P=(((O=o.flip)==null?void 0:O.index)||0)+1,X=E[P];if(X&&(!(f==="alignment"&&_!==Au(X))||M.every(Y=>Au(Y.placement)===_?Y.overflows[0]>0:!0)))return{data:{index:P,overflows:M},reset:{placement:X}};let A=(te=M.filter(Y=>Y.overflows[0]<=0).sort((Y,F)=>Y.overflows[1]-F.overflows[1])[0])==null?void 0:te.placement;if(!A)switch(v){case"bestFit":{var q;const Y=(q=M.filter(F=>{if(T){const H=Au(F.placement);return H===_||H==="y"}return!0}).map(F=>[F.placement,F.overflows.filter(H=>H>0).reduce((H,ee)=>H+ee,0)]).sort((F,H)=>F[1]-H[1])[0])==null?void 0:q[0];Y&&(A=Y);break}case"initialPlacement":A=s;break}if(i!==A)return{reset:{placement:A}}}return{}}}};function YB(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function KB(e){return I4e.some(t=>e[t]>=0)}const B4e=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...i}=Xc(e,t);switch(r){case"referenceHidden":{const o=await oy(t,{...i,elementContext:"reference"}),a=YB(o,n.reference);return{data:{referenceHiddenOffsets:a,referenceHidden:KB(a)}}}case"escaped":{const o=await oy(t,{...i,altBoundary:!0}),a=YB(o,n.floating);return{data:{escapedOffsets:a,escaped:KB(a)}}}default:return{}}}}},XB=new Set(["left","top"]);async function W4e(e,t){const{placement:n,platform:r,elements:i}=e,o=await(r.isRTL==null?void 0:r.isRTL(i.floating)),a=Jc(n),s=L0(n),l=Au(n)==="y",c=XB.has(a)?-1:1,d=o&&l?-1:1,f=Xc(t,e);let{mainAxis:p,crossAxis:v,alignmentAxis:x}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return s&&typeof x=="number"&&(v=s==="end"?x*-1:x),l?{x:v*d,y:p*c}:{x:p*c,y:v*d}}const V4e=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:i,y:o,placement:a,middlewareData:s}=t,l=await W4e(t,e);return a===((n=s.offset)==null?void 0:n.placement)&&(r=s.arrow)!=null&&r.alignmentOffset?{}:{x:i+l.x,y:o+l.y,data:{...l,placement:a}}}}},H4e=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:i}=t,{mainAxis:o=!0,crossAxis:a=!1,limiter:s={fn:b=>{let{x:w,y:_}=b;return{x:w,y:_}}},...l}=Xc(e,t),c={x:n,y:r},d=await oy(t,l),f=Au(Jc(i)),p=A9(f);let v=c[p],x=c[f];if(o){const b=p==="y"?"top":"left",w=p==="y"?"bottom":"right",_=v+d[b],S=v-d[w];v=D9(_,v,S)}if(a){const b=f==="y"?"top":"left",w=f==="y"?"bottom":"right",_=x+d[b],S=x-d[w];x=D9(_,x,S)}const y=s.fn({...t,[p]:v,[f]:x});return{...y,data:{x:y.x-n,y:y.y-r,enabled:{[p]:o,[f]:a}}}}}},Z4e=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:i,rects:o,middlewareData:a}=t,{offset:s=0,mainAxis:l=!0,crossAxis:c=!0}=Xc(e,t),d={x:n,y:r},f=Au(i),p=A9(f);let v=d[p],x=d[f];const y=Xc(s,t),b=typeof y=="number"?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(l){const S=p==="y"?"height":"width",C=o.reference[p]-o.floating[S]+b.mainAxis,j=o.reference[p]+o.reference[S]-b.mainAxis;vj&&(v=j)}if(c){var w,_;const S=p==="y"?"width":"height",C=XB.has(Jc(i)),j=o.reference[f]-o.floating[S]+(C&&((w=a.offset)==null?void 0:w[f])||0)+(C?0:b.crossAxis),T=o.reference[f]+o.reference[S]+(C?0:((_=a.offset)==null?void 0:_[f])||0)-(C?b.crossAxis:0);xT&&(x=T)}return{[p]:v,[f]:x}}}},q4e=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:i,rects:o,platform:a,elements:s}=t,{apply:l=()=>{},...c}=Xc(e,t),d=await oy(t,c),f=Jc(i),p=L0(i),v=Au(i)==="y",{width:x,height:y}=o.floating;let b,w;f==="top"||f==="bottom"?(b=f,w=p===(await(a.isRTL==null?void 0:a.isRTL(s.floating))?"start":"end")?"left":"right"):(w=f,b=p==="end"?"top":"bottom");const _=y-d.top-d.bottom,S=x-d.left-d.right,C=wf(y-d[b],_),j=wf(x-d[w],S),T=!t.middlewareData.shift;let E=C,$=j;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&($=S),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(E=_),T&&!p){const M=us(d.left,0),O=us(d.right,0),te=us(d.top,0),q=us(d.bottom,0);v?$=x-2*(M!==0||O!==0?M+O:us(d.left,d.right)):E=y-2*(te!==0||q!==0?te+q:us(d.top,d.bottom))}await l({...t,availableWidth:$,availableHeight:E});const D=await a.getDimensions(s.floating);return x!==D.width||y!==D.height?{reset:{rects:!0}}:{}}}};function Yw(){return typeof window<"u"}function P0(e){return JB(e)?(e.nodeName||"").toLowerCase():"#document"}function cs(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Fu(e){var t;return(t=(JB(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function JB(e){return Yw()?e instanceof Node||e instanceof cs(e).Node:!1}function Al(e){return Yw()?e instanceof Element||e instanceof cs(e).Element:!1}function Uu(e){return Yw()?e instanceof HTMLElement||e instanceof cs(e).HTMLElement:!1}function QB(e){return!Yw()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof cs(e).ShadowRoot}const G4e=new Set(["inline","contents"]);function ay(e){const{overflow:t,overflowX:n,overflowY:r,display:i}=Fl(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!G4e.has(i)}const Y4e=new Set(["table","td","th"]);function K4e(e){return Y4e.has(P0(e))}const X4e=[":popover-open",":modal"];function Kw(e){return X4e.some(t=>{try{return e.matches(t)}catch{return!1}})}const J4e=["transform","translate","scale","rotate","perspective"],Q4e=["transform","translate","scale","rotate","perspective","filter"],e3e=["paint","layout","strict","content"];function W9(e){const t=V9(),n=Al(e)?Fl(e):e;return J4e.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||Q4e.some(r=>(n.willChange||"").includes(r))||e3e.some(r=>(n.contain||"").includes(r))}function t3e(e){let t=kf(e);for(;Uu(t)&&!O0(t);){if(W9(t))return t;if(Kw(t))return null;t=kf(t)}return null}function V9(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const n3e=new Set(["html","body","#document"]);function O0(e){return n3e.has(P0(e))}function Fl(e){return cs(e).getComputedStyle(e)}function Xw(e){return Al(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function kf(e){if(P0(e)==="html")return e;const t=e.assignedSlot||e.parentNode||QB(e)&&e.host||Fu(e);return QB(t)?t.host:t}function eW(e){const t=kf(e);return O0(t)?e.ownerDocument?e.ownerDocument.body:e.body:Uu(t)&&ay(t)?t:eW(t)}function sy(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const i=eW(e),o=i===((r=e.ownerDocument)==null?void 0:r.body),a=cs(i);if(o){const s=H9(a);return t.concat(a,a.visualViewport||[],ay(i)?i:[],s&&n?sy(s):[])}return t.concat(i,sy(i,[],n))}function H9(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function tW(e){const t=Fl(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const i=Uu(e),o=i?e.offsetWidth:n,a=i?e.offsetHeight:r,s=Hw(n)!==o||Hw(r)!==a;return s&&(n=o,r=a),{width:n,height:r,$:s}}function Z9(e){return Al(e)?e:e.contextElement}function z0(e){const t=Z9(e);if(!Uu(t))return Du(1);const n=t.getBoundingClientRect(),{width:r,height:i,$:o}=tW(t);let a=(o?Hw(n.width):n.width)/r,s=(o?Hw(n.height):n.height)/i;return(!a||!Number.isFinite(a))&&(a=1),(!s||!Number.isFinite(s))&&(s=1),{x:a,y:s}}const r3e=Du(0);function nW(e){const t=cs(e);return!V9()||!t.visualViewport?r3e:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function i3e(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==cs(e)?!1:t}function Gh(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const i=e.getBoundingClientRect(),o=Z9(e);let a=Du(1);t&&(r?Al(r)&&(a=z0(r)):a=z0(e));const s=i3e(o,n,r)?nW(o):Du(0);let l=(i.left+s.x)/a.x,c=(i.top+s.y)/a.y,d=i.width/a.x,f=i.height/a.y;if(o){const p=cs(o),v=r&&Al(r)?cs(r):r;let x=p,y=H9(x);for(;y&&r&&v!==x;){const b=z0(y),w=y.getBoundingClientRect(),_=Fl(y),S=w.left+(y.clientLeft+parseFloat(_.paddingLeft))*b.x,C=w.top+(y.clientTop+parseFloat(_.paddingTop))*b.y;l*=b.x,c*=b.y,d*=b.x,f*=b.y,l+=S,c+=C,x=cs(y),y=H9(x)}}return Gw({width:d,height:f,x:l,y:c})}function Jw(e,t){const n=Xw(e).scrollLeft;return t?t.left+n:Gh(Fu(e)).left+n}function rW(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Jw(e,n),i=n.top+t.scrollTop;return{x:r,y:i}}function o3e(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e;const o=i==="fixed",a=Fu(r),s=t?Kw(t.floating):!1;if(r===a||s&&o)return n;let l={scrollLeft:0,scrollTop:0},c=Du(1);const d=Du(0),f=Uu(r);if((f||!f&&!o)&&((P0(r)!=="body"||ay(a))&&(l=Xw(r)),Uu(r))){const v=Gh(r);c=z0(r),d.x=v.x+r.clientLeft,d.y=v.y+r.clientTop}const p=a&&!f&&!o?rW(a,l):Du(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-l.scrollLeft*c.x+d.x+p.x,y:n.y*c.y-l.scrollTop*c.y+d.y+p.y}}function a3e(e){return Array.from(e.getClientRects())}function s3e(e){const t=Fu(e),n=Xw(e),r=e.ownerDocument.body,i=us(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),o=us(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let a=-n.scrollLeft+Jw(e);const s=-n.scrollTop;return Fl(r).direction==="rtl"&&(a+=us(t.clientWidth,r.clientWidth)-i),{width:i,height:o,x:a,y:s}}const iW=25;function l3e(e,t){const n=cs(e),r=Fu(e),i=n.visualViewport;let o=r.clientWidth,a=r.clientHeight,s=0,l=0;if(i){o=i.width,a=i.height;const d=V9();(!d||d&&t==="fixed")&&(s=i.offsetLeft,l=i.offsetTop)}const c=Jw(r);if(c<=0){const d=r.ownerDocument,f=d.body,p=getComputedStyle(f),v=d.compatMode==="CSS1Compat"&&parseFloat(p.marginLeft)+parseFloat(p.marginRight)||0,x=Math.abs(r.clientWidth-f.clientWidth-v);x<=iW&&(o-=x)}else c<=iW&&(o+=c);return{width:o,height:a,x:s,y:l}}const u3e=new Set(["absolute","fixed"]);function c3e(e,t){const n=Gh(e,!0,t==="fixed"),r=n.top+e.clientTop,i=n.left+e.clientLeft,o=Uu(e)?z0(e):Du(1),a=e.clientWidth*o.x,s=e.clientHeight*o.y,l=i*o.x,c=r*o.y;return{width:a,height:s,x:l,y:c}}function oW(e,t,n){let r;if(t==="viewport")r=l3e(e,n);else if(t==="document")r=s3e(Fu(e));else if(Al(t))r=c3e(t,n);else{const i=nW(e);r={x:t.x-i.x,y:t.y-i.y,width:t.width,height:t.height}}return Gw(r)}function aW(e,t){const n=kf(e);return n===t||!Al(n)||O0(n)?!1:Fl(n).position==="fixed"||aW(n,t)}function d3e(e,t){const n=t.get(e);if(n)return n;let r=sy(e,[],!1).filter(s=>Al(s)&&P0(s)!=="body"),i=null;const o=Fl(e).position==="fixed";let a=o?kf(e):e;for(;Al(a)&&!O0(a);){const s=Fl(a),l=W9(a);!l&&s.position==="fixed"&&(i=null),(o?!l&&!i:!l&&s.position==="static"&&i&&u3e.has(i.position)||ay(a)&&!l&&aW(e,a))?r=r.filter(c=>c!==a):i=s,a=kf(a)}return t.set(e,r),r}function f3e(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e;const o=[...n==="clippingAncestors"?Kw(t)?[]:d3e(t,this._c):[].concat(n),r],a=o[0],s=o.reduce((l,c)=>{const d=oW(t,c,i);return l.top=us(d.top,l.top),l.right=wf(d.right,l.right),l.bottom=wf(d.bottom,l.bottom),l.left=us(d.left,l.left),l},oW(t,a,i));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}}function h3e(e){const{width:t,height:n}=tW(e);return{width:t,height:n}}function p3e(e,t,n){const r=Uu(t),i=Fu(t),o=n==="fixed",a=Gh(e,!0,o,t);let s={scrollLeft:0,scrollTop:0};const l=Du(0);function c(){l.x=Jw(i)}if(r||!r&&!o)if((P0(t)!=="body"||ay(i))&&(s=Xw(t)),r){const v=Gh(t,!0,o,t);l.x=v.x+t.clientLeft,l.y=v.y+t.clientTop}else i&&c();o&&!r&&i&&c();const d=i&&!r&&!o?rW(i,s):Du(0),f=a.left+s.scrollLeft-l.x-d.x,p=a.top+s.scrollTop-l.y-d.y;return{x:f,y:p,width:a.width,height:a.height}}function q9(e){return Fl(e).position==="static"}function sW(e,t){if(!Uu(e)||Fl(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return Fu(e)===n&&(n=n.ownerDocument.body),n}function lW(e,t){const n=cs(e);if(Kw(e))return n;if(!Uu(e)){let i=kf(e);for(;i&&!O0(i);){if(Al(i)&&!q9(i))return i;i=kf(i)}return n}let r=sW(e,t);for(;r&&K4e(r)&&q9(r);)r=sW(r,t);return r&&O0(r)&&q9(r)&&!W9(r)?n:r||t3e(e)||n}const m3e=async function(e){const t=this.getOffsetParent||lW,n=this.getDimensions,r=await n(e.floating);return{reference:p3e(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function g3e(e){return Fl(e).direction==="rtl"}const v3e={convertOffsetParentRelativeRectToViewportRelativeRect:o3e,getDocumentElement:Fu,getClippingRect:f3e,getOffsetParent:lW,getElementRects:m3e,getClientRects:a3e,getDimensions:h3e,getScale:z0,isElement:Al,isRTL:g3e};function uW(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function y3e(e,t){let n=null,r;const i=Fu(e);function o(){var s;clearTimeout(r),(s=n)==null||s.disconnect(),n=null}function a(s,l){s===void 0&&(s=!1),l===void 0&&(l=1),o();const c=e.getBoundingClientRect(),{left:d,top:f,width:p,height:v}=c;if(s||t(),!p||!v)return;const x=Zw(f),y=Zw(i.clientWidth-(d+p)),b=Zw(i.clientHeight-(f+v)),w=Zw(d),_={rootMargin:-x+"px "+-y+"px "+-b+"px "+-w+"px",threshold:us(0,wf(1,l))||1};let S=!0;function C(j){const T=j[0].intersectionRatio;if(T!==l){if(!S)return a();T?a(!1,T):r=setTimeout(()=>{a(!1,1e-7)},1e3)}T===1&&!uW(c,e.getBoundingClientRect())&&a(),S=!1}try{n=new IntersectionObserver(C,{..._,root:i.ownerDocument})}catch{n=new IntersectionObserver(C,_)}n.observe(e)}return a(!0),o}function b3e(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:i=!0,ancestorResize:o=!0,elementResize:a=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:l=!1}=r,c=Z9(e),d=i||o?[...c?sy(c):[],...sy(t)]:[];d.forEach(w=>{i&&w.addEventListener("scroll",n,{passive:!0}),o&&w.addEventListener("resize",n)});const f=c&&s?y3e(c,n):null;let p=-1,v=null;a&&(v=new ResizeObserver(w=>{let[_]=w;_&&_.target===c&&v&&(v.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var S;(S=v)==null||S.observe(t)})),n()}),c&&!l&&v.observe(c),v.observe(t));let x,y=l?Gh(e):null;l&&b();function b(){const w=Gh(e);y&&!uW(y,w)&&n(),y=w,x=requestAnimationFrame(b)}return n(),()=>{var w;d.forEach(_=>{i&&_.removeEventListener("scroll",n),o&&_.removeEventListener("resize",n)}),f==null||f(),(w=v)==null||w.disconnect(),v=null,l&&cancelAnimationFrame(x)}}const x3e=V4e,_3e=H4e,w3e=U4e,k3e=q4e,S3e=B4e,cW=F4e,C3e=Z4e,j3e=(e,t,n)=>{const r=new Map,i={platform:v3e,...n},o={...i.platform,_c:r};return A4e(e,t,{...i,platform:o})};var T3e=typeof document<"u",I3e=function(){},Qw=T3e?m.useLayoutEffect:I3e;function e4(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!e4(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){const o=i[r];if(!(o==="_owner"&&e.$$typeof)&&!e4(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function dW(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function fW(e,t){const n=dW(e);return Math.round(t*n)/n}function G9(e){const t=m.useRef(e);return Qw(()=>{t.current=e}),t}function E3e(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:i,elements:{reference:o,floating:a}={},transform:s=!0,whileElementsMounted:l,open:c}=e,[d,f]=m.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[p,v]=m.useState(r);e4(p,r)||v(r);const[x,y]=m.useState(null),[b,w]=m.useState(null),_=m.useCallback(F=>{F!==T.current&&(T.current=F,y(F))},[]),S=m.useCallback(F=>{F!==E.current&&(E.current=F,w(F))},[]),C=o||x,j=a||b,T=m.useRef(null),E=m.useRef(null),$=m.useRef(d),D=l!=null,M=G9(l),O=G9(i),te=G9(c),q=m.useCallback(()=>{if(!T.current||!E.current)return;const F={placement:t,strategy:n,middleware:p};O.current&&(F.platform=O.current),j3e(T.current,E.current,F).then(H=>{const ee={...H,isPositioned:te.current!==!1};P.current&&!e4($.current,ee)&&($.current=ee,Kc.flushSync(()=>{f(ee)}))})},[p,t,n,O,te]);Qw(()=>{c===!1&&$.current.isPositioned&&($.current.isPositioned=!1,f(F=>({...F,isPositioned:!1})))},[c]);const P=m.useRef(!1);Qw(()=>(P.current=!0,()=>{P.current=!1}),[]),Qw(()=>{if(C&&(T.current=C),j&&(E.current=j),C&&j){if(M.current)return M.current(C,j,q);q()}},[C,j,q,M,D]);const X=m.useMemo(()=>({reference:T,floating:E,setReference:_,setFloating:S}),[_,S]),A=m.useMemo(()=>({reference:C,floating:j}),[C,j]),Y=m.useMemo(()=>{const F={position:n,left:0,top:0};if(!A.floating)return F;const H=fW(A.floating,d.x),ee=fW(A.floating,d.y);return s?{...F,transform:"translate("+H+"px, "+ee+"px)",...dW(A.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:H,top:ee}},[n,s,A.floating,d.x,d.y]);return m.useMemo(()=>({...d,update:q,refs:X,elements:A,floatingStyles:Y}),[d,q,X,A,Y])}const N3e=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:i}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?cW({element:r.current,padding:i}).fn(n):{}:r?cW({element:r,padding:i}).fn(n):{}}}},$3e=(e,t)=>({...x3e(e),options:[e,t]}),M3e=(e,t)=>({..._3e(e),options:[e,t]}),R3e=(e,t)=>({...C3e(e),options:[e,t]}),L3e=(e,t)=>({...w3e(e),options:[e,t]}),P3e=(e,t)=>({...k3e(e),options:[e,t]}),O3e=(e,t)=>({...S3e(e),options:[e,t]}),z3e=(e,t)=>({...N3e(e),options:[e,t]});var D3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],A3e=D3e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),F3e="Arrow",hW=m.forwardRef((e,t)=>{const{children:n,width:r=10,height:i=5,...o}=e;return u.jsx(A3e.svg,{...o,ref:t,width:r,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:u.jsx("polygon",{points:"0,0 30,0 15,10"})})});hW.displayName=F3e;var U3e=hW,B3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],pW=B3e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),Y9="Popper",[mW,Sf]=Pa(Y9),[W3e,gW]=mW(Y9),vW=e=>{const{__scopePopper:t,children:n}=e,[r,i]=m.useState(null);return u.jsx(W3e,{scope:t,anchor:r,onAnchorChange:i,children:n})};vW.displayName=Y9;var yW="PopperAnchor",bW=m.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...i}=e,o=gW(yW,n),a=m.useRef(null),s=At(t,a),l=m.useRef(null);return m.useEffect(()=>{const c=l.current;l.current=(r==null?void 0:r.current)||a.current,c!==l.current&&o.onAnchorChange(l.current)}),r?null:u.jsx(pW.div,{...i,ref:s})});bW.displayName=yW;var K9="PopperContent",[V3e,H3e]=mW(K9),xW=m.forwardRef((e,t)=>{var he,ue,re,ge,$e,pe;const{__scopePopper:n,side:r="bottom",sideOffset:i=0,align:o="center",alignOffset:a=0,arrowPadding:s=0,avoidCollisions:l=!0,collisionBoundary:c=[],collisionPadding:d=0,sticky:f="partial",hideWhenDetached:p=!1,updatePositionStrategy:v="optimized",onPlaced:x,...y}=e,b=gW(K9,n),[w,_]=m.useState(null),S=At(t,ye=>_(ye)),[C,j]=m.useState(null),T=z9(C),E=(T==null?void 0:T.width)??0,$=(T==null?void 0:T.height)??0,D=r+(o!=="center"?"-"+o:""),M=typeof d=="number"?d:{top:0,right:0,bottom:0,left:0,...d},O=Array.isArray(c)?c:[c],te=O.length>0,q={padding:M,boundary:O.filter(q3e),altBoundary:te},{refs:P,floatingStyles:X,placement:A,isPositioned:Y,middlewareData:F}=E3e({strategy:"fixed",placement:D,whileElementsMounted:(...ye)=>b3e(...ye,{animationFrame:v==="always"}),elements:{reference:b.anchor},middleware:[$3e({mainAxis:i+$,alignmentAxis:a}),l&&M3e({mainAxis:!0,crossAxis:!1,limiter:f==="partial"?R3e():void 0,...q}),l&&L3e({...q}),P3e({...q,apply:({elements:ye,rects:Se,availableWidth:Ce,availableHeight:Ue})=>{const{width:Ge,height:_t}=Se.reference,St=ye.floating.style;St.setProperty("--radix-popper-available-width",`${Ce}px`),St.setProperty("--radix-popper-available-height",`${Ue}px`),St.setProperty("--radix-popper-anchor-width",`${Ge}px`),St.setProperty("--radix-popper-anchor-height",`${_t}px`)}}),C&&z3e({element:C,padding:s}),G3e({arrowWidth:E,arrowHeight:$}),p&&O3e({strategy:"referenceHidden",...q})]}),[H,ee]=kW(A),ce=ko(x);_o(()=>{Y&&(ce==null||ce())},[Y,ce]);const B=(he=F.arrow)==null?void 0:he.x,ae=(ue=F.arrow)==null?void 0:ue.y,je=((re=F.arrow)==null?void 0:re.centerOffset)!==0,[me,ke]=m.useState();return _o(()=>{w&&ke(window.getComputedStyle(w).zIndex)},[w]),u.jsx("div",{ref:P.setFloating,"data-radix-popper-content-wrapper":"",style:{...X,transform:Y?X.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:me,"--radix-popper-transform-origin":[(ge=F.transformOrigin)==null?void 0:ge.x,($e=F.transformOrigin)==null?void 0:$e.y].join(" "),...((pe=F.hide)==null?void 0:pe.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:u.jsx(V3e,{scope:n,placedSide:H,onArrowChange:j,arrowX:B,arrowY:ae,shouldHideArrow:je,children:u.jsx(pW.div,{"data-side":H,"data-align":ee,...y,ref:S,style:{...y.style,animation:Y?void 0:"none"}})})})});xW.displayName=K9;var _W="PopperArrow",Z3e={top:"bottom",right:"left",bottom:"top",left:"right"},wW=m.forwardRef(function(e,t){const{__scopePopper:n,...r}=e,i=H3e(_W,n),o=Z3e[i.placedSide];return u.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[o]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:u.jsx(U3e,{...r,ref:t,style:{...r.style,display:"block"}})})});wW.displayName=_W;function q3e(e){return e!==null}var G3e=e=>({name:"transformOrigin",options:e,fn(t){var y,b,w;const{placement:n,rects:r,middlewareData:i}=t,o=((y=i.arrow)==null?void 0:y.centerOffset)!==0,a=o?0:e.arrowWidth,s=o?0:e.arrowHeight,[l,c]=kW(n),d={start:"0%",center:"50%",end:"100%"}[c],f=(((b=i.arrow)==null?void 0:b.x)??0)+a/2,p=(((w=i.arrow)==null?void 0:w.y)??0)+s/2;let v="",x="";return l==="bottom"?(v=o?d:`${f}px`,x=`${-s}px`):l==="top"?(v=o?d:`${f}px`,x=`${r.floating.height+s}px`):l==="right"?(v=`${-s}px`,x=o?d:`${p}px`):l==="left"&&(v=`${r.floating.width+s}px`,x=o?d:`${p}px`),{data:{x:v,y:x}}}});function kW(e){const[t,n="center"]=e.split("-");return[t,n]}var t4=vW,ly=bW,n4=xW,r4=wW,Y3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],uy=Y3e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function K3e(e,t){e&&Kc.flushSync(()=>e.dispatchEvent(t))}var X3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],SW=X3e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),X9="rovingFocusGroup.onEntryFocus",J3e={bubbles:!1,cancelable:!0},cy="RovingFocusGroup",[J9,CW,Q3e]=Mw(cy),[eke,i4]=Pa(cy,[Q3e]),[tke,nke]=eke(cy),jW=m.forwardRef((e,t)=>u.jsx(J9.Provider,{scope:e.__scopeRovingFocusGroup,children:u.jsx(J9.Slot,{scope:e.__scopeRovingFocusGroup,children:u.jsx(rke,{...e,ref:t})})}));jW.displayName=cy;var rke=m.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:o,currentTabStopId:a,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:l,onEntryFocus:c,preventScrollOnEntryFocus:d=!1,...f}=e,p=m.useRef(null),v=At(t,p),x=T0(o),[y,b]=Xs({prop:a,defaultProp:s??null,onChange:l,caller:cy}),[w,_]=m.useState(!1),S=ko(c),C=CW(n),j=m.useRef(!1),[T,E]=m.useState(0);return m.useEffect(()=>{const $=p.current;if($)return $.addEventListener(X9,S),()=>$.removeEventListener(X9,S)},[S]),u.jsx(tke,{scope:n,orientation:r,dir:x,loop:i,currentTabStopId:y,onItemFocus:m.useCallback($=>b($),[b]),onItemShiftTab:m.useCallback(()=>_(!0),[]),onFocusableItemAdd:m.useCallback(()=>E($=>$+1),[]),onFocusableItemRemove:m.useCallback(()=>E($=>$-1),[]),children:u.jsx(SW.div,{tabIndex:w||T===0?-1:0,"data-orientation":r,...f,ref:v,style:{outline:"none",...e.style},onMouseDown:Xe(e.onMouseDown,()=>{j.current=!0}),onFocus:Xe(e.onFocus,$=>{const D=!j.current;if($.target===$.currentTarget&&D&&!w){const M=new CustomEvent(X9,J3e);if($.currentTarget.dispatchEvent(M),!M.defaultPrevented){const O=C().filter(X=>X.focusable),te=O.find(X=>X.active),q=O.find(X=>X.id===y),P=[te,q,...O].filter(Boolean).map(X=>X.ref.current);EW(P,d)}}j.current=!1}),onBlur:Xe(e.onBlur,()=>_(!1))})})}),TW="RovingFocusGroupItem",IW=m.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:o,children:a,...s}=e,l=wo(),c=o||l,d=nke(TW,n),f=d.currentTabStopId===c,p=CW(n),{onFocusableItemAdd:v,onFocusableItemRemove:x,currentTabStopId:y}=d;return m.useEffect(()=>{if(r)return v(),()=>x()},[r,v,x]),u.jsx(J9.ItemSlot,{scope:n,id:c,focusable:r,active:i,children:u.jsx(SW.span,{tabIndex:f?0:-1,"data-orientation":d.orientation,...s,ref:t,onMouseDown:Xe(e.onMouseDown,b=>{r?d.onItemFocus(c):b.preventDefault()}),onFocus:Xe(e.onFocus,()=>d.onItemFocus(c)),onKeyDown:Xe(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){d.onItemShiftTab();return}if(b.target!==b.currentTarget)return;const w=ake(b,d.orientation,d.dir);if(w!==void 0){if(b.metaKey||b.ctrlKey||b.altKey||b.shiftKey)return;b.preventDefault();let _=p().filter(S=>S.focusable).map(S=>S.ref.current);if(w==="last")_.reverse();else if(w==="prev"||w==="next"){w==="prev"&&_.reverse();const S=_.indexOf(b.currentTarget);_=d.loop?ske(_,S+1):_.slice(S+1)}setTimeout(()=>EW(_))}}),children:typeof a=="function"?a({isCurrentTabStop:f,hasTabStop:y!=null}):a})})});IW.displayName=TW;var ike={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function oke(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function ake(e,t,n){const r=oke(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return ike[r]}function EW(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function ske(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var NW=jW,$W=IW,Q9=["Enter"," "],lke=["ArrowDown","PageUp","Home"],MW=["ArrowUp","PageDown","End"],uke=[...lke,...MW],cke={ltr:[...Q9,"ArrowRight"],rtl:[...Q9,"ArrowLeft"]},dke={ltr:["ArrowLeft"],rtl:["ArrowRight"]},dy="Menu",[fy,fke,hke]=Mw(dy),[Yh,RW]=Pa(dy,[hke,Sf,i4]),o4=Sf(),LW=i4(),[pke,Kh]=Yh(dy),[mke,hy]=Yh(dy),PW=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:o,modal:a=!0}=e,s=o4(t),[l,c]=m.useState(null),d=m.useRef(!1),f=ko(o),p=T0(i);return m.useEffect(()=>{const v=()=>{d.current=!0,document.addEventListener("pointerdown",x,{capture:!0,once:!0}),document.addEventListener("pointermove",x,{capture:!0,once:!0})},x=()=>d.current=!1;return document.addEventListener("keydown",v,{capture:!0}),()=>{document.removeEventListener("keydown",v,{capture:!0}),document.removeEventListener("pointerdown",x,{capture:!0}),document.removeEventListener("pointermove",x,{capture:!0})}},[]),u.jsx(t4,{...s,children:u.jsx(pke,{scope:t,open:n,onOpenChange:f,content:l,onContentChange:c,children:u.jsx(mke,{scope:t,onClose:m.useCallback(()=>f(!1),[f]),isUsingKeyboardRef:d,dir:p,modal:a,children:r})})})};PW.displayName=dy;var gke="MenuAnchor",e7=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=o4(n);return u.jsx(ly,{...i,...r,ref:t})});e7.displayName=gke;var t7="MenuPortal",[vke,OW]=Yh(t7,{forceMount:void 0}),zW=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:i}=e,o=Kh(t7,t);return u.jsx(vke,{scope:t,forceMount:n,children:u.jsx(Ao,{present:n||o.open,children:u.jsx(Zh,{asChild:!0,container:i,children:r})})})};zW.displayName=t7;var Js="MenuContent",[yke,n7]=Yh(Js),DW=m.forwardRef((e,t)=>{const n=OW(Js,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=Kh(Js,e.__scopeMenu),a=hy(Js,e.__scopeMenu);return u.jsx(fy.Provider,{scope:e.__scopeMenu,children:u.jsx(Ao,{present:r||o.open,children:u.jsx(fy.Slot,{scope:e.__scopeMenu,children:a.modal?u.jsx(bke,{...i,ref:t}):u.jsx(xke,{...i,ref:t})})})})}),bke=m.forwardRef((e,t)=>{const n=Kh(Js,e.__scopeMenu),r=m.useRef(null),i=At(t,r);return m.useEffect(()=>{const o=r.current;if(o)return Bw(o)},[]),u.jsx(r7,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Xe(e.onFocusOutside,o=>o.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),xke=m.forwardRef((e,t)=>{const n=Kh(Js,e.__scopeMenu);return u.jsx(r7,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),_ke=vr("MenuContent.ScrollLock"),r7=m.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:o,onCloseAutoFocus:a,disableOutsidePointerEvents:s,onEntryFocus:l,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:v,disableOutsideScroll:x,...y}=e,b=Kh(Js,n),w=hy(Js,n),_=o4(n),S=LW(n),C=fke(n),[j,T]=m.useState(null),E=m.useRef(null),$=At(t,E,b.onContentChange),D=m.useRef(0),M=m.useRef(""),O=m.useRef(0),te=m.useRef(null),q=m.useRef("right"),P=m.useRef(0),X=x?iy:m.Fragment,A=x?{as:_ke,allowPinchZoom:!0}:void 0,Y=H=>{var he,ue;const ee=M.current+H,ce=C().filter(re=>!re.disabled),B=document.activeElement,ae=(he=ce.find(re=>re.ref.current===B))==null?void 0:he.textValue,je=ce.map(re=>re.textValue),me=Rke(je,ee,ae),ke=(ue=ce.find(re=>re.textValue===me))==null?void 0:ue.ref.current;(function re(ge){M.current=ge,window.clearTimeout(D.current),ge!==""&&(D.current=window.setTimeout(()=>re(""),1e3))})(ee),ke&&setTimeout(()=>ke.focus())};m.useEffect(()=>()=>window.clearTimeout(D.current),[]),Lw();const F=m.useCallback(H=>{var ee,ce;return q.current===((ee=te.current)==null?void 0:ee.side)&&Pke(H,(ce=te.current)==null?void 0:ce.area)},[]);return u.jsx(yke,{scope:n,searchRef:M,onItemEnter:m.useCallback(H=>{F(H)&&H.preventDefault()},[F]),onItemLeave:m.useCallback(H=>{var ee;F(H)||((ee=E.current)==null||ee.focus(),T(null))},[F]),onTriggerLeave:m.useCallback(H=>{F(H)&&H.preventDefault()},[F]),pointerGraceTimerRef:O,onPointerGraceIntentChange:m.useCallback(H=>{te.current=H},[]),children:u.jsx(X,{...A,children:u.jsx(ny,{asChild:!0,trapped:i,onMountAutoFocus:Xe(o,H=>{var ee;H.preventDefault(),(ee=E.current)==null||ee.focus({preventScroll:!0})}),onUnmountAutoFocus:a,children:u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:v,children:u.jsx(NW,{asChild:!0,...S,dir:w.dir,orientation:"vertical",loop:r,currentTabStopId:j,onCurrentTabStopIdChange:T,onEntryFocus:Xe(l,H=>{w.isUsingKeyboardRef.current||H.preventDefault()}),preventScrollOnEntryFocus:!0,children:u.jsx(n4,{role:"menu","aria-orientation":"vertical","data-state":tV(b.open),"data-radix-menu-content":"",dir:w.dir,..._,...y,ref:$,style:{outline:"none",...y.style},onKeyDown:Xe(y.onKeyDown,H=>{const ee=H.target.closest("[data-radix-menu-content]")===H.currentTarget,ce=H.ctrlKey||H.altKey||H.metaKey,B=H.key.length===1;ee&&(H.key==="Tab"&&H.preventDefault(),!ce&&B&&Y(H.key));const ae=E.current;if(H.target!==ae||!uke.includes(H.key))return;H.preventDefault();const je=C().filter(me=>!me.disabled).map(me=>me.ref.current);MW.includes(H.key)&&je.reverse(),$ke(je)}),onBlur:Xe(e.onBlur,H=>{H.currentTarget.contains(H.target)||(window.clearTimeout(D.current),M.current="")}),onPointerMove:Xe(e.onPointerMove,my(H=>{const ee=H.target,ce=P.current!==H.clientX;if(H.currentTarget.contains(ee)&&ce){const B=H.clientX>P.current?"right":"left";q.current=B,P.current=H.clientX}}))})})})})})})});DW.displayName=Js;var wke="MenuGroup",i7=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(uy.div,{role:"group",...r,ref:t})});i7.displayName=wke;var kke="MenuLabel",AW=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(uy.div,{...r,ref:t})});AW.displayName=kke;var a4="MenuItem",FW="menu.itemSelect",s4=m.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...i}=e,o=m.useRef(null),a=hy(a4,e.__scopeMenu),s=n7(a4,e.__scopeMenu),l=At(t,o),c=m.useRef(!1),d=()=>{const f=o.current;if(!n&&f){const p=new CustomEvent(FW,{bubbles:!0,cancelable:!0});f.addEventListener(FW,v=>r==null?void 0:r(v),{once:!0}),K3e(f,p),p.defaultPrevented?c.current=!1:a.onClose()}};return u.jsx(UW,{...i,ref:l,disabled:n,onClick:Xe(e.onClick,d),onPointerDown:f=>{var p;(p=e.onPointerDown)==null||p.call(e,f),c.current=!0},onPointerUp:Xe(e.onPointerUp,f=>{var p;c.current||((p=f.currentTarget)==null||p.click())}),onKeyDown:Xe(e.onKeyDown,f=>{const p=s.searchRef.current!=="";n||p&&f.key===" "||Q9.includes(f.key)&&(f.currentTarget.click(),f.preventDefault())})})});s4.displayName=a4;var UW=m.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:i,...o}=e,a=n7(a4,n),s=LW(n),l=m.useRef(null),c=At(t,l),[d,f]=m.useState(!1),[p,v]=m.useState("");return m.useEffect(()=>{const x=l.current;x&&v((x.textContent??"").trim())},[o.children]),u.jsx(fy.ItemSlot,{scope:n,disabled:r,textValue:i??p,children:u.jsx($W,{asChild:!0,...s,focusable:!r,children:u.jsx(uy.div,{role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...o,ref:c,onPointerMove:Xe(e.onPointerMove,my(x=>{r?a.onItemLeave(x):(a.onItemEnter(x),x.defaultPrevented||x.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Xe(e.onPointerLeave,my(x=>a.onItemLeave(x))),onFocus:Xe(e.onFocus,()=>f(!0)),onBlur:Xe(e.onBlur,()=>f(!1))})})})}),Ske="MenuCheckboxItem",BW=m.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...i}=e;return u.jsx(qW,{scope:e.__scopeMenu,checked:n,children:u.jsx(s4,{role:"menuitemcheckbox","aria-checked":l4(n)?"mixed":n,...i,ref:t,"data-state":a7(n),onSelect:Xe(i.onSelect,()=>r==null?void 0:r(l4(n)?!0:!n),{checkForDefaultPrevented:!1})})})});BW.displayName=Ske;var WW="MenuRadioGroup",[Cke,jke]=Yh(WW,{value:void 0,onValueChange:()=>{}}),VW=m.forwardRef((e,t)=>{const{value:n,onValueChange:r,...i}=e,o=ko(r);return u.jsx(Cke,{scope:e.__scopeMenu,value:n,onValueChange:o,children:u.jsx(i7,{...i,ref:t})})});VW.displayName=WW;var HW="MenuRadioItem",ZW=m.forwardRef((e,t)=>{const{value:n,...r}=e,i=jke(HW,e.__scopeMenu),o=n===i.value;return u.jsx(qW,{scope:e.__scopeMenu,checked:o,children:u.jsx(s4,{role:"menuitemradio","aria-checked":o,...r,ref:t,"data-state":a7(o),onSelect:Xe(r.onSelect,()=>{var a;return(a=i.onValueChange)==null?void 0:a.call(i,n)},{checkForDefaultPrevented:!1})})})});ZW.displayName=HW;var o7="MenuItemIndicator",[qW,Tke]=Yh(o7,{checked:!1}),GW=m.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...i}=e,o=Tke(o7,n);return u.jsx(Ao,{present:r||l4(o.checked)||o.checked===!0,children:u.jsx(uy.span,{...i,ref:t,"data-state":a7(o.checked)})})});GW.displayName=o7;var Ike="MenuSeparator",YW=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(uy.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});YW.displayName=Ike;var Eke="MenuArrow",KW=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=o4(n);return u.jsx(r4,{...i,...r,ref:t})});KW.displayName=Eke;var Nke="MenuSub",[N5t,XW]=Yh(Nke),py="MenuSubTrigger",JW=m.forwardRef((e,t)=>{const n=Kh(py,e.__scopeMenu),r=hy(py,e.__scopeMenu),i=XW(py,e.__scopeMenu),o=n7(py,e.__scopeMenu),a=m.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:l}=o,c={__scopeMenu:e.__scopeMenu},d=m.useCallback(()=>{a.current&&window.clearTimeout(a.current),a.current=null},[]);return m.useEffect(()=>d,[d]),m.useEffect(()=>{const f=s.current;return()=>{window.clearTimeout(f),l(null)}},[s,l]),u.jsx(e7,{asChild:!0,...c,children:u.jsx(UW,{id:i.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":i.contentId,"data-state":tV(n.open),...e,ref:zl(t,i.onTriggerChange),onClick:f=>{var p;(p=e.onClick)==null||p.call(e,f),!(e.disabled||f.defaultPrevented)&&(f.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:Xe(e.onPointerMove,my(f=>{o.onItemEnter(f),!f.defaultPrevented&&!e.disabled&&!n.open&&!a.current&&(o.onPointerGraceIntentChange(null),a.current=window.setTimeout(()=>{n.onOpenChange(!0),d()},100))})),onPointerLeave:Xe(e.onPointerLeave,my(f=>{var v,x;d();const p=(v=n.content)==null?void 0:v.getBoundingClientRect();if(p){const y=(x=n.content)==null?void 0:x.dataset.side,b=y==="right",w=b?-5:5,_=p[b?"left":"right"],S=p[b?"right":"left"];o.onPointerGraceIntentChange({area:[{x:f.clientX+w,y:f.clientY},{x:_,y:p.top},{x:S,y:p.top},{x:S,y:p.bottom},{x:_,y:p.bottom}],side:y}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>o.onPointerGraceIntentChange(null),300)}else{if(o.onTriggerLeave(f),f.defaultPrevented)return;o.onPointerGraceIntentChange(null)}})),onKeyDown:Xe(e.onKeyDown,f=>{var v;const p=o.searchRef.current!=="";e.disabled||p&&f.key===" "||cke[r.dir].includes(f.key)&&(n.onOpenChange(!0),(v=n.content)==null||v.focus(),f.preventDefault())})})})});JW.displayName=py;var QW="MenuSubContent",eV=m.forwardRef((e,t)=>{const n=OW(Js,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=Kh(Js,e.__scopeMenu),a=hy(Js,e.__scopeMenu),s=XW(QW,e.__scopeMenu),l=m.useRef(null),c=At(t,l);return u.jsx(fy.Provider,{scope:e.__scopeMenu,children:u.jsx(Ao,{present:r||o.open,children:u.jsx(fy.Slot,{scope:e.__scopeMenu,children:u.jsx(r7,{id:s.contentId,"aria-labelledby":s.triggerId,...i,ref:c,align:"start",side:a.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:d=>{var f;a.isUsingKeyboardRef.current&&((f=l.current)==null||f.focus()),d.preventDefault()},onCloseAutoFocus:d=>d.preventDefault(),onFocusOutside:Xe(e.onFocusOutside,d=>{d.target!==s.trigger&&o.onOpenChange(!1)}),onEscapeKeyDown:Xe(e.onEscapeKeyDown,d=>{a.onClose(),d.preventDefault()}),onKeyDown:Xe(e.onKeyDown,d=>{var v;const f=d.currentTarget.contains(d.target),p=dke[a.dir].includes(d.key);f&&p&&(o.onOpenChange(!1),(v=s.trigger)==null||v.focus(),d.preventDefault())})})})})})});eV.displayName=QW;function tV(e){return e?"open":"closed"}function l4(e){return e==="indeterminate"}function a7(e){return l4(e)?"indeterminate":e?"checked":"unchecked"}function $ke(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function Mke(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Rke(e,t,n){const r=t.length>1&&Array.from(t).every(s=>s===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let o=Mke(e,Math.max(i,0));r.length===1&&(o=o.filter(s=>s!==n));const a=o.find(s=>s.toLowerCase().startsWith(r.toLowerCase()));return a!==n?a:void 0}function Lke(e,t){const{x:n,y:r}=e;let i=!1;for(let o=0,a=t.length-1;or!=p>r&&n<(f-c)*(r-d)/(p-d)+c&&(i=!i)}return i}function Pke(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return Lke(n,t)}function my(e){return t=>t.pointerType==="mouse"?e(t):void 0}var Oke=PW,zke=e7,Dke=zW,Ake=DW,Fke=i7,Uke=AW,Bke=s4,Wke=BW,Vke=VW,Hke=ZW,Zke=GW,qke=YW,Gke=KW,Yke=JW,Kke=eV,Xke=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Jke=Xke.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),u4="DropdownMenu",[Qke]=Pa(u4,[RW]),sa=RW(),[e6e,nV]=Qke(u4),rV=e=>{const{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:o,onOpenChange:a,modal:s=!0}=e,l=sa(t),c=m.useRef(null),[d,f]=Xs({prop:i,defaultProp:o??!1,onChange:a,caller:u4});return u.jsx(e6e,{scope:t,triggerId:wo(),triggerRef:c,contentId:wo(),open:d,onOpenChange:f,onOpenToggle:m.useCallback(()=>f(p=>!p),[f]),modal:s,children:u.jsx(Oke,{...l,open:d,onOpenChange:f,dir:r,modal:s,children:n})})};rV.displayName=u4;var iV="DropdownMenuTrigger",oV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,o=nV(iV,n),a=sa(n);return u.jsx(zke,{asChild:!0,...a,children:u.jsx(Jke.button,{type:"button",id:o.triggerId,"aria-haspopup":"menu","aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":o.open?"open":"closed","data-disabled":r?"":void 0,disabled:r,...i,ref:zl(t,o.triggerRef),onPointerDown:Xe(e.onPointerDown,s=>{!r&&s.button===0&&s.ctrlKey===!1&&(o.onOpenToggle(),o.open||s.preventDefault())}),onKeyDown:Xe(e.onKeyDown,s=>{r||(["Enter"," "].includes(s.key)&&o.onOpenToggle(),s.key==="ArrowDown"&&o.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(s.key)&&s.preventDefault())})})})});oV.displayName=iV;var t6e="DropdownMenuPortal",aV=e=>{const{__scopeDropdownMenu:t,...n}=e,r=sa(t);return u.jsx(Dke,{...r,...n})};aV.displayName=t6e;var sV="DropdownMenuContent",lV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=nV(sV,n),o=sa(n),a=m.useRef(!1);return u.jsx(Ake,{id:i.contentId,"aria-labelledby":i.triggerId,...o,...r,ref:t,onCloseAutoFocus:Xe(e.onCloseAutoFocus,s=>{var l;a.current||((l=i.triggerRef.current)==null||l.focus()),a.current=!1,s.preventDefault()}),onInteractOutside:Xe(e.onInteractOutside,s=>{const l=s.detail.originalEvent,c=l.button===0&&l.ctrlKey===!0,d=l.button===2||c;(!i.modal||d)&&(a.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});lV.displayName=sV;var n6e="DropdownMenuGroup",uV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Fke,{...i,...r,ref:t})});uV.displayName=n6e;var r6e="DropdownMenuLabel",cV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Uke,{...i,...r,ref:t})});cV.displayName=r6e;var i6e="DropdownMenuItem",dV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Bke,{...i,...r,ref:t})});dV.displayName=i6e;var o6e="DropdownMenuCheckboxItem",fV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Wke,{...i,...r,ref:t})});fV.displayName=o6e;var a6e="DropdownMenuRadioGroup",hV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Vke,{...i,...r,ref:t})});hV.displayName=a6e;var s6e="DropdownMenuRadioItem",pV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Hke,{...i,...r,ref:t})});pV.displayName=s6e;var l6e="DropdownMenuItemIndicator",mV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Zke,{...i,...r,ref:t})});mV.displayName=l6e;var u6e="DropdownMenuSeparator",gV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(qke,{...i,...r,ref:t})});gV.displayName=u6e;var c6e="DropdownMenuArrow",d6e=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Gke,{...i,...r,ref:t})});d6e.displayName=c6e;var f6e="DropdownMenuSubTrigger",vV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Yke,{...i,...r,ref:t})});vV.displayName=f6e;var h6e="DropdownMenuSubContent",yV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Kke,{...i,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});yV.displayName=h6e;var bV=rV,xV=oV,s7=aV,_V=lV,p6e=uV,m6e=cV,wV=dV,g6e=fV,v6e=hV,y6e=pV,kV=mV,b6e=gV,x6e=vV,_6e=yV,w6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],k6e=w6e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),S6e="Label",SV=m.forwardRef((e,t)=>u.jsx(k6e.label,{...e,ref:t,onMouseDown:n=>{var r;n.target.closest("button, input, select, textarea")||((r=e.onMouseDown)==null||r.call(e,n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));SV.displayName=S6e;var C6e=SV;function gy(e,[t,n]){return Math.min(n,Math.max(t,e))}var j6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],CV=j6e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),c4="Popover",[jV]=Pa(c4,[Sf]),vy=Sf(),[T6e,Cf]=jV(c4),TV=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:a=!1}=e,s=vy(t),l=m.useRef(null),[c,d]=m.useState(!1),[f,p]=Xs({prop:r,defaultProp:i??!1,onChange:o,caller:c4});return u.jsx(t4,{...s,children:u.jsx(T6e,{scope:t,contentId:wo(),triggerRef:l,open:f,onOpenChange:p,onOpenToggle:m.useCallback(()=>p(v=>!v),[p]),hasCustomAnchor:c,onCustomAnchorAdd:m.useCallback(()=>d(!0),[]),onCustomAnchorRemove:m.useCallback(()=>d(!1),[]),modal:a,children:n})})};TV.displayName=c4;var IV="PopoverAnchor",EV=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Cf(IV,n),o=vy(n),{onCustomAnchorAdd:a,onCustomAnchorRemove:s}=i;return m.useEffect(()=>(a(),()=>s()),[a,s]),u.jsx(ly,{...o,...r,ref:t})});EV.displayName=IV;var NV="PopoverTrigger",$V=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Cf(NV,n),o=vy(n),a=At(t,i.triggerRef),s=u.jsx(CV.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":zV(i.open),...r,ref:a,onClick:Xe(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?s:u.jsx(ly,{asChild:!0,...o,children:s})});$V.displayName=NV;var l7="PopoverPortal",[I6e,E6e]=jV(l7,{forceMount:void 0}),MV=e=>{const{__scopePopover:t,forceMount:n,children:r,container:i}=e,o=Cf(l7,t);return u.jsx(I6e,{scope:t,forceMount:n,children:u.jsx(Ao,{present:n||o.open,children:u.jsx(Zh,{asChild:!0,container:i,children:r})})})};MV.displayName=l7;var D0="PopoverContent",RV=m.forwardRef((e,t)=>{const n=E6e(D0,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,o=Cf(D0,e.__scopePopover);return u.jsx(Ao,{present:r||o.open,children:o.modal?u.jsx($6e,{...i,ref:t}):u.jsx(M6e,{...i,ref:t})})});RV.displayName=D0;var N6e=vr("PopoverContent.RemoveScroll"),$6e=m.forwardRef((e,t)=>{const n=Cf(D0,e.__scopePopover),r=m.useRef(null),i=At(t,r),o=m.useRef(!1);return m.useEffect(()=>{const a=r.current;if(a)return Bw(a)},[]),u.jsx(iy,{as:N6e,allowPinchZoom:!0,children:u.jsx(LV,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Xe(e.onCloseAutoFocus,a=>{var s;a.preventDefault(),o.current||((s=n.triggerRef.current)==null||s.focus())}),onPointerDownOutside:Xe(e.onPointerDownOutside,a=>{const s=a.detail.originalEvent,l=s.button===0&&s.ctrlKey===!0,c=s.button===2||l;o.current=c},{checkForDefaultPrevented:!1}),onFocusOutside:Xe(e.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),M6e=m.forwardRef((e,t)=>{const n=Cf(D0,e.__scopePopover),r=m.useRef(!1),i=m.useRef(!1);return u.jsx(LV,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var a,s;(a=e.onCloseAutoFocus)==null||a.call(e,o),o.defaultPrevented||(r.current||((s=n.triggerRef.current)==null||s.focus()),o.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:o=>{var s,l;(s=e.onInteractOutside)==null||s.call(e,o),o.defaultPrevented||(r.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const a=o.target;(l=n.triggerRef.current)!=null&&l.contains(a)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})}),LV=m.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,disableOutsidePointerEvents:a,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onInteractOutside:d,...f}=e,p=Cf(D0,n),v=vy(n);return Lw(),u.jsx(ny,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o,children:u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:d,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onDismiss:()=>p.onOpenChange(!1),children:u.jsx(n4,{"data-state":zV(p.open),role:"dialog",id:p.contentId,...v,...f,ref:t,style:{...f.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),PV="PopoverClose",OV=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Cf(PV,n);return u.jsx(CV.button,{type:"button",...r,ref:t,onClick:Xe(e.onClick,()=>i.onOpenChange(!1))})});OV.displayName=PV;var R6e="PopoverArrow",L6e=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=vy(n);return u.jsx(r4,{...i,...r,ref:t})});L6e.displayName=R6e;function zV(e){return e?"open":"closed"}var u7=TV,DV=EV,AV=$V,c7=MV,d7=RV,P6e=OV,O6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],FV=O6e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),f7="Progress",h7=100,[z6e]=Pa(f7),[D6e,A6e]=z6e(f7),UV=m.forwardRef((e,t)=>{const{__scopeProgress:n,value:r=null,max:i,getValueLabel:o=F6e,...a}=e;(i||i===0)&&!HV(i)&&console.error(U6e(`${i}`,"Progress"));const s=HV(i)?i:h7;r!==null&&!ZV(r,s)&&console.error(B6e(`${r}`,"Progress"));const l=ZV(r,s)?r:null,c=d4(l)?o(l,s):void 0;return u.jsx(D6e,{scope:n,value:l,max:s,children:u.jsx(FV.div,{"aria-valuemax":s,"aria-valuemin":0,"aria-valuenow":d4(l)?l:void 0,"aria-valuetext":c,role:"progressbar","data-state":VV(l,s),"data-value":l??void 0,"data-max":s,...a,ref:t})})});UV.displayName=f7;var BV="ProgressIndicator",WV=m.forwardRef((e,t)=>{const{__scopeProgress:n,...r}=e,i=A6e(BV,n);return u.jsx(FV.div,{"data-state":VV(i.value,i.max),"data-value":i.value??void 0,"data-max":i.max,...r,ref:t})});WV.displayName=BV;function F6e(e,t){return`${Math.round(e/t*100)}%`}function VV(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function d4(e){return typeof e=="number"}function HV(e){return d4(e)&&!isNaN(e)&&e>0}function ZV(e,t){return d4(e)&&!isNaN(e)&&e<=t&&e>=0}function U6e(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${h7}\`.`}function B6e(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: + - a positive number + - less than the value passed to \`max\` (or ${h7} if no \`max\` prop is set) + - \`null\` or \`undefined\` if the progress is indeterminate. + +Defaulting to \`null\`.`}var W6e=UV,V6e=WV,H6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],yy=H6e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Z6e(e,t){return m.useReducer((n,r)=>t[n][r]??n,e)}var p7="ScrollArea",[qV]=Pa(p7),[q6e,Qs]=qV(p7),GV=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:i,scrollHideDelay:o=600,...a}=e,[s,l]=m.useState(null),[c,d]=m.useState(null),[f,p]=m.useState(null),[v,x]=m.useState(null),[y,b]=m.useState(null),[w,_]=m.useState(0),[S,C]=m.useState(0),[j,T]=m.useState(!1),[E,$]=m.useState(!1),D=At(t,O=>l(O)),M=T0(i);return u.jsx(q6e,{scope:n,type:r,dir:M,scrollHideDelay:o,scrollArea:s,viewport:c,onViewportChange:d,content:f,onContentChange:p,scrollbarX:v,onScrollbarXChange:x,scrollbarXEnabled:j,onScrollbarXEnabledChange:T,scrollbarY:y,onScrollbarYChange:b,scrollbarYEnabled:E,onScrollbarYEnabledChange:$,onCornerWidthChange:_,onCornerHeightChange:C,children:u.jsx(yy.div,{dir:M,...a,ref:D,style:{position:"relative","--radix-scroll-area-corner-width":w+"px","--radix-scroll-area-corner-height":S+"px",...e.style}})})});GV.displayName=p7;var YV="ScrollAreaViewport",KV=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:i,...o}=e,a=Qs(YV,n),s=m.useRef(null),l=At(t,s,a.onViewportChange);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:i}),u.jsx(yy.div,{"data-radix-scroll-area-viewport":"",...o,ref:l,style:{overflowX:a.scrollbarXEnabled?"scroll":"hidden",overflowY:a.scrollbarYEnabled?"scroll":"hidden",...e.style},children:u.jsx("div",{ref:a.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});KV.displayName=YV;var Bu="ScrollAreaScrollbar",XV=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=Qs(Bu,e.__scopeScrollArea),{onScrollbarXEnabledChange:o,onScrollbarYEnabledChange:a}=i,s=e.orientation==="horizontal";return m.useEffect(()=>(s?o(!0):a(!0),()=>{s?o(!1):a(!1)}),[s,o,a]),i.type==="hover"?u.jsx(G6e,{...r,ref:t,forceMount:n}):i.type==="scroll"?u.jsx(Y6e,{...r,ref:t,forceMount:n}):i.type==="auto"?u.jsx(JV,{...r,ref:t,forceMount:n}):i.type==="always"?u.jsx(m7,{...r,ref:t}):null});XV.displayName=Bu;var G6e=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=Qs(Bu,e.__scopeScrollArea),[o,a]=m.useState(!1);return m.useEffect(()=>{const s=i.scrollArea;let l=0;if(s){const c=()=>{window.clearTimeout(l),a(!0)},d=()=>{l=window.setTimeout(()=>a(!1),i.scrollHideDelay)};return s.addEventListener("pointerenter",c),s.addEventListener("pointerleave",d),()=>{window.clearTimeout(l),s.removeEventListener("pointerenter",c),s.removeEventListener("pointerleave",d)}}},[i.scrollArea,i.scrollHideDelay]),u.jsx(Ao,{present:n||o,children:u.jsx(JV,{"data-state":o?"visible":"hidden",...r,ref:t})})}),Y6e=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=Qs(Bu,e.__scopeScrollArea),o=e.orientation==="horizontal",a=m4(()=>l("SCROLL_END"),100),[s,l]=Z6e("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return m.useEffect(()=>{if(s==="idle"){const c=window.setTimeout(()=>l("HIDE"),i.scrollHideDelay);return()=>window.clearTimeout(c)}},[s,i.scrollHideDelay,l]),m.useEffect(()=>{const c=i.viewport,d=o?"scrollLeft":"scrollTop";if(c){let f=c[d];const p=()=>{const v=c[d];f!==v&&(l("SCROLL"),a()),f=v};return c.addEventListener("scroll",p),()=>c.removeEventListener("scroll",p)}},[i.viewport,o,l,a]),u.jsx(Ao,{present:n||s!=="hidden",children:u.jsx(m7,{"data-state":s==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:Xe(e.onPointerEnter,()=>l("POINTER_ENTER")),onPointerLeave:Xe(e.onPointerLeave,()=>l("POINTER_LEAVE"))})})}),JV=m.forwardRef((e,t)=>{const n=Qs(Bu,e.__scopeScrollArea),{forceMount:r,...i}=e,[o,a]=m.useState(!1),s=e.orientation==="horizontal",l=m4(()=>{if(n.viewport){const c=n.viewport.offsetWidth{const{orientation:n="vertical",...r}=e,i=Qs(Bu,e.__scopeScrollArea),o=m.useRef(null),a=m.useRef(0),[s,l]=m.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),c=rH(s.viewport,s.content),d={...r,sizes:s,onSizesChange:l,hasThumb:c>0&&c<1,onThumbChange:p=>o.current=p,onThumbPointerUp:()=>a.current=0,onThumbPointerDown:p=>a.current=p};function f(p,v){return t5e(p,a.current,s,v)}return n==="horizontal"?u.jsx(K6e,{...d,ref:t,onThumbPositionChange:()=>{if(i.viewport&&o.current){const p=i.viewport.scrollLeft,v=iH(p,s,i.dir);o.current.style.transform=`translate3d(${v}px, 0, 0)`}},onWheelScroll:p=>{i.viewport&&(i.viewport.scrollLeft=p)},onDragScroll:p=>{i.viewport&&(i.viewport.scrollLeft=f(p,i.dir))}}):n==="vertical"?u.jsx(X6e,{...d,ref:t,onThumbPositionChange:()=>{if(i.viewport&&o.current){const p=i.viewport.scrollTop,v=iH(p,s);o.current.style.transform=`translate3d(0, ${v}px, 0)`}},onWheelScroll:p=>{i.viewport&&(i.viewport.scrollTop=p)},onDragScroll:p=>{i.viewport&&(i.viewport.scrollTop=f(p))}}):null}),K6e=m.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...i}=e,o=Qs(Bu,e.__scopeScrollArea),[a,s]=m.useState(),l=m.useRef(null),c=At(t,l,o.onScrollbarXChange);return m.useEffect(()=>{l.current&&s(getComputedStyle(l.current))},[l]),u.jsx(eH,{"data-orientation":"horizontal",...i,ref:c,sizes:n,style:{bottom:0,left:o.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:o.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":p4(n)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.x),onDragScroll:d=>e.onDragScroll(d.x),onWheelScroll:(d,f)=>{if(o.viewport){const p=o.viewport.scrollLeft+d.deltaX;e.onWheelScroll(p),aH(p,f)&&d.preventDefault()}},onResize:()=>{l.current&&o.viewport&&a&&r({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:h4(a.paddingLeft),paddingEnd:h4(a.paddingRight)}})}})}),X6e=m.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...i}=e,o=Qs(Bu,e.__scopeScrollArea),[a,s]=m.useState(),l=m.useRef(null),c=At(t,l,o.onScrollbarYChange);return m.useEffect(()=>{l.current&&s(getComputedStyle(l.current))},[l]),u.jsx(eH,{"data-orientation":"vertical",...i,ref:c,sizes:n,style:{top:0,right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":p4(n)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.y),onDragScroll:d=>e.onDragScroll(d.y),onWheelScroll:(d,f)=>{if(o.viewport){const p=o.viewport.scrollTop+d.deltaY;e.onWheelScroll(p),aH(p,f)&&d.preventDefault()}},onResize:()=>{l.current&&o.viewport&&a&&r({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:h4(a.paddingTop),paddingEnd:h4(a.paddingBottom)}})}})}),[J6e,QV]=qV(Bu),eH=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:o,onThumbPointerUp:a,onThumbPointerDown:s,onThumbPositionChange:l,onDragScroll:c,onWheelScroll:d,onResize:f,...p}=e,v=Qs(Bu,n),[x,y]=m.useState(null),b=At(t,D=>y(D)),w=m.useRef(null),_=m.useRef(""),S=v.viewport,C=r.content-r.viewport,j=ko(d),T=ko(l),E=m4(f,10);function $(D){if(w.current){const M=D.clientX-w.current.left,O=D.clientY-w.current.top;c({x:M,y:O})}}return m.useEffect(()=>{const D=M=>{const O=M.target;x!=null&&x.contains(O)&&j(M,C)};return document.addEventListener("wheel",D,{passive:!1}),()=>document.removeEventListener("wheel",D,{passive:!1})},[S,x,C,j]),m.useEffect(T,[r,T]),A0(x,E),A0(v.content,E),u.jsx(J6e,{scope:n,scrollbar:x,hasThumb:i,onThumbChange:ko(o),onThumbPointerUp:ko(a),onThumbPositionChange:T,onThumbPointerDown:ko(s),children:u.jsx(yy.div,{...p,ref:b,style:{position:"absolute",...p.style},onPointerDown:Xe(e.onPointerDown,D=>{D.button===0&&(D.target.setPointerCapture(D.pointerId),w.current=x.getBoundingClientRect(),_.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",v.viewport&&(v.viewport.style.scrollBehavior="auto"),$(D))}),onPointerMove:Xe(e.onPointerMove,$),onPointerUp:Xe(e.onPointerUp,D=>{const M=D.target;M.hasPointerCapture(D.pointerId)&&M.releasePointerCapture(D.pointerId),document.body.style.webkitUserSelect=_.current,v.viewport&&(v.viewport.style.scrollBehavior=""),w.current=null})})})}),f4="ScrollAreaThumb",tH=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=QV(f4,e.__scopeScrollArea);return u.jsx(Ao,{present:n||i.hasThumb,children:u.jsx(Q6e,{ref:t,...r})})}),Q6e=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...i}=e,o=Qs(f4,n),a=QV(f4,n),{onThumbPositionChange:s}=a,l=At(t,f=>a.onThumbChange(f)),c=m.useRef(void 0),d=m4(()=>{c.current&&(c.current(),c.current=void 0)},100);return m.useEffect(()=>{const f=o.viewport;if(f){const p=()=>{if(d(),!c.current){const v=n5e(f,s);c.current=v,s()}};return s(),f.addEventListener("scroll",p),()=>f.removeEventListener("scroll",p)}},[o.viewport,d,s]),u.jsx(yy.div,{"data-state":a.hasThumb?"visible":"hidden",...i,ref:l,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:Xe(e.onPointerDownCapture,f=>{const p=f.target.getBoundingClientRect(),v=f.clientX-p.left,x=f.clientY-p.top;a.onThumbPointerDown({x:v,y:x})}),onPointerUp:Xe(e.onPointerUp,a.onThumbPointerUp)})});tH.displayName=f4;var g7="ScrollAreaCorner",nH=m.forwardRef((e,t)=>{const n=Qs(g7,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?u.jsx(e5e,{...e,ref:t}):null});nH.displayName=g7;var e5e=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,i=Qs(g7,n),[o,a]=m.useState(0),[s,l]=m.useState(0),c=!!(o&&s);return A0(i.scrollbarX,()=>{var f;const d=((f=i.scrollbarX)==null?void 0:f.offsetHeight)||0;i.onCornerHeightChange(d),l(d)}),A0(i.scrollbarY,()=>{var f;const d=((f=i.scrollbarY)==null?void 0:f.offsetWidth)||0;i.onCornerWidthChange(d),a(d)}),c?u.jsx(yy.div,{...r,ref:t,style:{width:o,height:s,position:"absolute",right:i.dir==="ltr"?0:void 0,left:i.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function h4(e){return e?parseInt(e,10):0}function rH(e,t){const n=e/t;return isNaN(n)?0:n}function p4(e){const t=rH(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function t5e(e,t,n,r="ltr"){const i=p4(n),o=i/2,a=t||o,s=i-a,l=n.scrollbar.paddingStart+a,c=n.scrollbar.size-n.scrollbar.paddingEnd-s,d=n.content-n.viewport,f=r==="ltr"?[0,d]:[d*-1,0];return oH([l,c],f)(e)}function iH(e,t,n="ltr"){const r=p4(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,o=t.scrollbar.size-i,a=t.content-t.viewport,s=o-r,l=n==="ltr"?[0,a]:[a*-1,0],c=gy(e,l);return oH([0,a],[0,s])(c)}function oH(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function aH(e,t){return e>0&&e{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return function i(){const o={left:e.scrollLeft,top:e.scrollTop},a=n.left!==o.left,s=n.top!==o.top;(a||s)&&t(),n=o,r=window.requestAnimationFrame(i)}(),()=>window.cancelAnimationFrame(r)};function m4(e,t){const n=ko(e),r=m.useRef(0);return m.useEffect(()=>()=>window.clearTimeout(r.current),[]),m.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function A0(e,t){const n=ko(t);_o(()=>{let r=0;if(e){const i=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return i.observe(e),()=>{window.cancelAnimationFrame(r),i.unobserve(e)}}},[e,n])}var sH=GV,lH=KV,v7=XV,y7=tH,r5e=nH,i5e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ds=i5e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),o5e=[" ","Enter","ArrowUp","ArrowDown"],a5e=[" ","Enter"],Xh="Select",[g4,v4,s5e]=Mw(Xh),[F0]=Pa(Xh,[s5e,Sf]),y4=Sf(),[l5e,jf]=F0(Xh),[u5e,c5e]=F0(Xh),uH=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:o,value:a,defaultValue:s,onValueChange:l,dir:c,name:d,autoComplete:f,disabled:p,required:v,form:x}=e,y=y4(t),[b,w]=m.useState(null),[_,S]=m.useState(null),[C,j]=m.useState(!1),T=T0(c),[E,$]=Xs({prop:r,defaultProp:i??!1,onChange:o,caller:Xh}),[D,M]=Xs({prop:a,defaultProp:s,onChange:l,caller:Xh}),O=m.useRef(null),te=b?x||!!b.closest("form"):!0,[q,P]=m.useState(new Set),X=Array.from(q).map(A=>A.props.value).join(";");return u.jsx(t4,{...y,children:u.jsxs(l5e,{required:v,scope:t,trigger:b,onTriggerChange:w,valueNode:_,onValueNodeChange:S,valueNodeHasChildren:C,onValueNodeHasChildrenChange:j,contentId:wo(),value:D,onValueChange:M,open:E,onOpenChange:$,dir:T,triggerPointerDownPosRef:O,disabled:p,children:[u.jsx(g4.Provider,{scope:t,children:u.jsx(u5e,{scope:e.__scopeSelect,onNativeOptionAdd:m.useCallback(A=>{P(Y=>new Set(Y).add(A))},[]),onNativeOptionRemove:m.useCallback(A=>{P(Y=>{const F=new Set(Y);return F.delete(A),F})},[]),children:n})}),te?u.jsxs(MH,{"aria-hidden":!0,required:v,tabIndex:-1,name:d,autoComplete:f,value:D,onChange:A=>M(A.target.value),disabled:p,form:x,children:[D===void 0?u.jsx("option",{value:""}):null,Array.from(q)]},X):null]})})};uH.displayName=Xh;var cH="SelectTrigger",dH=m.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...i}=e,o=y4(n),a=jf(cH,n),s=a.disabled||r,l=At(t,a.onTriggerChange),c=v4(n),d=m.useRef("touch"),[f,p,v]=LH(y=>{const b=c().filter(S=>!S.disabled),w=b.find(S=>S.value===a.value),_=PH(b,y,w);_!==void 0&&a.onValueChange(_.value)}),x=y=>{s||(a.onOpenChange(!0),v()),y&&(a.triggerPointerDownPosRef.current={x:Math.round(y.pageX),y:Math.round(y.pageY)})};return u.jsx(ly,{asChild:!0,...o,children:u.jsx(ds.button,{type:"button",role:"combobox","aria-controls":a.contentId,"aria-expanded":a.open,"aria-required":a.required,"aria-autocomplete":"none",dir:a.dir,"data-state":a.open?"open":"closed",disabled:s,"data-disabled":s?"":void 0,"data-placeholder":RH(a.value)?"":void 0,...i,ref:l,onClick:Xe(i.onClick,y=>{y.currentTarget.focus(),d.current!=="mouse"&&x(y)}),onPointerDown:Xe(i.onPointerDown,y=>{d.current=y.pointerType;const b=y.target;b.hasPointerCapture(y.pointerId)&&b.releasePointerCapture(y.pointerId),y.button===0&&y.ctrlKey===!1&&y.pointerType==="mouse"&&(x(y),y.preventDefault())}),onKeyDown:Xe(i.onKeyDown,y=>{const b=f.current!=="";!(y.ctrlKey||y.altKey||y.metaKey)&&y.key.length===1&&p(y.key),!(b&&y.key===" ")&&o5e.includes(y.key)&&(x(),y.preventDefault())})})})});dH.displayName=cH;var fH="SelectValue",hH=m.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,children:o,placeholder:a="",...s}=e,l=jf(fH,n),{onValueNodeHasChildrenChange:c}=l,d=o!==void 0,f=At(t,l.onValueNodeChange);return _o(()=>{c(d)},[c,d]),u.jsx(ds.span,{...s,ref:f,style:{pointerEvents:"none"},children:RH(l.value)?u.jsx(u.Fragment,{children:a}):o})});hH.displayName=fH;var d5e="SelectIcon",pH=m.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...i}=e;return u.jsx(ds.span,{"aria-hidden":!0,...i,ref:t,children:r||"\u25BC"})});pH.displayName=d5e;var f5e="SelectPortal",mH=e=>u.jsx(Zh,{asChild:!0,...e});mH.displayName=f5e;var Jh="SelectContent",gH=m.forwardRef((e,t)=>{const n=jf(Jh,e.__scopeSelect),[r,i]=m.useState();if(_o(()=>{i(new DocumentFragment)},[]),!n.open){const o=r;return o?Kc.createPortal(u.jsx(vH,{scope:e.__scopeSelect,children:u.jsx(g4.Slot,{scope:e.__scopeSelect,children:u.jsx("div",{children:e.children})})}),o):null}return u.jsx(yH,{...e,ref:t})});gH.displayName=Jh;var Ul=10,[vH,Tf]=F0(Jh),h5e="SelectContentImpl",p5e=vr("SelectContent.RemoveScroll"),yH=m.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:i,onEscapeKeyDown:o,onPointerDownOutside:a,side:s,sideOffset:l,align:c,alignOffset:d,arrowPadding:f,collisionBoundary:p,collisionPadding:v,sticky:x,hideWhenDetached:y,avoidCollisions:b,...w}=e,_=jf(Jh,n),[S,C]=m.useState(null),[j,T]=m.useState(null),E=At(t,he=>C(he)),[$,D]=m.useState(null),[M,O]=m.useState(null),te=v4(n),[q,P]=m.useState(!1),X=m.useRef(!1);m.useEffect(()=>{if(S)return Bw(S)},[S]),Lw();const A=m.useCallback(he=>{const[ue,...re]=te().map(pe=>pe.ref.current),[ge]=re.slice(-1),$e=document.activeElement;for(const pe of he)if(pe===$e||(pe==null||pe.scrollIntoView({block:"nearest"}),pe===ue&&j&&(j.scrollTop=0),pe===ge&&j&&(j.scrollTop=j.scrollHeight),pe==null||pe.focus(),document.activeElement!==$e))return},[te,j]),Y=m.useCallback(()=>A([$,S]),[A,$,S]);m.useEffect(()=>{q&&Y()},[q,Y]);const{onOpenChange:F,triggerPointerDownPosRef:H}=_;m.useEffect(()=>{if(S){let he={x:0,y:0};const ue=ge=>{var $e,pe;he={x:Math.abs(Math.round(ge.pageX)-((($e=H.current)==null?void 0:$e.x)??0)),y:Math.abs(Math.round(ge.pageY)-(((pe=H.current)==null?void 0:pe.y)??0))}},re=ge=>{he.x<=10&&he.y<=10?ge.preventDefault():S.contains(ge.target)||F(!1),document.removeEventListener("pointermove",ue),H.current=null};return H.current!==null&&(document.addEventListener("pointermove",ue),document.addEventListener("pointerup",re,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",ue),document.removeEventListener("pointerup",re,{capture:!0})}}},[S,F,H]),m.useEffect(()=>{const he=()=>F(!1);return window.addEventListener("blur",he),window.addEventListener("resize",he),()=>{window.removeEventListener("blur",he),window.removeEventListener("resize",he)}},[F]);const[ee,ce]=LH(he=>{const ue=te().filter($e=>!$e.disabled),re=ue.find($e=>$e.ref.current===document.activeElement),ge=PH(ue,he,re);ge&&setTimeout(()=>ge.ref.current.focus())}),B=m.useCallback((he,ue,re)=>{const ge=!X.current&&!re;(_.value!==void 0&&_.value===ue||ge)&&(D(he),ge&&(X.current=!0))},[_.value]),ae=m.useCallback(()=>S==null?void 0:S.focus(),[S]),je=m.useCallback((he,ue,re)=>{const ge=!X.current&&!re;(_.value!==void 0&&_.value===ue||ge)&&O(he)},[_.value]),me=r==="popper"?b7:bH,ke=me===b7?{side:s,sideOffset:l,align:c,alignOffset:d,arrowPadding:f,collisionBoundary:p,collisionPadding:v,sticky:x,hideWhenDetached:y,avoidCollisions:b}:{};return u.jsx(vH,{scope:n,content:S,viewport:j,onViewportChange:T,itemRefCallback:B,selectedItem:$,onItemLeave:ae,itemTextRefCallback:je,focusSelectedItem:Y,selectedItemText:M,position:r,isPositioned:q,searchRef:ee,children:u.jsx(iy,{as:p5e,allowPinchZoom:!0,children:u.jsx(ny,{asChild:!0,trapped:_.open,onMountAutoFocus:he=>{he.preventDefault()},onUnmountAutoFocus:Xe(i,he=>{var ue;(ue=_.trigger)==null||ue.focus({preventScroll:!0}),he.preventDefault()}),children:u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:he=>he.preventDefault(),onDismiss:()=>_.onOpenChange(!1),children:u.jsx(me,{role:"listbox",id:_.contentId,"data-state":_.open?"open":"closed",dir:_.dir,onContextMenu:he=>he.preventDefault(),...w,...ke,onPlaced:()=>P(!0),ref:E,style:{display:"flex",flexDirection:"column",outline:"none",...w.style},onKeyDown:Xe(w.onKeyDown,he=>{const ue=he.ctrlKey||he.altKey||he.metaKey;if(he.key==="Tab"&&he.preventDefault(),!ue&&he.key.length===1&&ce(he.key),["ArrowUp","ArrowDown","Home","End"].includes(he.key)){let re=te().filter(ge=>!ge.disabled).map(ge=>ge.ref.current);if(["ArrowUp","End"].includes(he.key)&&(re=re.slice().reverse()),["ArrowUp","ArrowDown"].includes(he.key)){const ge=he.target,$e=re.indexOf(ge);re=re.slice($e+1)}setTimeout(()=>A(re)),he.preventDefault()}})})})})})})});yH.displayName=h5e;var m5e="SelectItemAlignedPosition",bH=m.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...i}=e,o=jf(Jh,n),a=Tf(Jh,n),[s,l]=m.useState(null),[c,d]=m.useState(null),f=At(t,E=>d(E)),p=v4(n),v=m.useRef(!1),x=m.useRef(!0),{viewport:y,selectedItem:b,selectedItemText:w,focusSelectedItem:_}=a,S=m.useCallback(()=>{if(o.trigger&&o.valueNode&&s&&c&&y&&b&&w){const E=o.trigger.getBoundingClientRect(),$=c.getBoundingClientRect(),D=o.valueNode.getBoundingClientRect(),M=w.getBoundingClientRect();if(o.dir!=="rtl"){const ge=M.left-$.left,$e=D.left-ge,pe=E.left-$e,ye=E.width+pe,Se=Math.max(ye,$.width),Ce=window.innerWidth-Ul,Ue=gy($e,[Ul,Math.max(Ul,Ce-Se)]);s.style.minWidth=ye+"px",s.style.left=Ue+"px"}else{const ge=$.right-M.right,$e=window.innerWidth-D.right-ge,pe=window.innerWidth-E.right-$e,ye=E.width+pe,Se=Math.max(ye,$.width),Ce=window.innerWidth-Ul,Ue=gy($e,[Ul,Math.max(Ul,Ce-Se)]);s.style.minWidth=ye+"px",s.style.right=Ue+"px"}const O=p(),te=window.innerHeight-Ul*2,q=y.scrollHeight,P=window.getComputedStyle(c),X=parseInt(P.borderTopWidth,10),A=parseInt(P.paddingTop,10),Y=parseInt(P.borderBottomWidth,10),F=parseInt(P.paddingBottom,10),H=X+A+q+F+Y,ee=Math.min(b.offsetHeight*5,H),ce=window.getComputedStyle(y),B=parseInt(ce.paddingTop,10),ae=parseInt(ce.paddingBottom,10),je=E.top+E.height/2-Ul,me=te-je,ke=b.offsetHeight/2,he=b.offsetTop+ke,ue=X+A+he,re=H-ue;if(ue<=je){const ge=O.length>0&&b===O[O.length-1].ref.current;s.style.bottom="0px";const $e=c.clientHeight-y.offsetTop-y.offsetHeight,pe=Math.max(me,ke+(ge?ae:0)+$e+Y),ye=ue+pe;s.style.height=ye+"px"}else{const ge=O.length>0&&b===O[0].ref.current;s.style.top="0px";const $e=Math.max(je,X+y.offsetTop+(ge?B:0)+ke)+re;s.style.height=$e+"px",y.scrollTop=ue-je+y.offsetTop}s.style.margin=`${Ul}px 0`,s.style.minHeight=ee+"px",s.style.maxHeight=te+"px",r==null||r(),requestAnimationFrame(()=>v.current=!0)}},[p,o.trigger,o.valueNode,s,c,y,b,w,o.dir,r]);_o(()=>S(),[S]);const[C,j]=m.useState();_o(()=>{c&&j(window.getComputedStyle(c).zIndex)},[c]);const T=m.useCallback(E=>{E&&x.current===!0&&(S(),_==null||_(),x.current=!1)},[S,_]);return u.jsx(v5e,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:v,onScrollButtonChange:T,children:u.jsx("div",{ref:l,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:C},children:u.jsx(ds.div,{...i,ref:f,style:{boxSizing:"border-box",maxHeight:"100%",...i.style}})})})});bH.displayName=m5e;var g5e="SelectPopperPosition",b7=m.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:i=Ul,...o}=e,a=y4(n);return u.jsx(n4,{...a,...o,ref:t,align:r,collisionPadding:i,style:{boxSizing:"border-box",...o.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});b7.displayName=g5e;var[v5e,x7]=F0(Jh,{}),_7="SelectViewport",xH=m.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...i}=e,o=Tf(_7,n),a=x7(_7,n),s=At(t,o.onViewportChange),l=m.useRef(0);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:r}),u.jsx(g4.Slot,{scope:n,children:u.jsx(ds.div,{"data-radix-select-viewport":"",role:"presentation",...i,ref:s,style:{position:"relative",flex:1,overflow:"hidden auto",...i.style},onScroll:Xe(i.onScroll,c=>{const d=c.currentTarget,{contentWrapper:f,shouldExpandOnScrollRef:p}=a;if(p!=null&&p.current&&f){const v=Math.abs(l.current-d.scrollTop);if(v>0){const x=window.innerHeight-Ul*2,y=parseFloat(f.style.minHeight),b=parseFloat(f.style.height),w=Math.max(y,b);if(w0?C:0,f.style.justifyContent="flex-end")}}}l.current=d.scrollTop})})})]})});xH.displayName=_7;var _H="SelectGroup",[y5e,b5e]=F0(_H),wH=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=wo();return u.jsx(y5e,{scope:n,id:i,children:u.jsx(ds.div,{role:"group","aria-labelledby":i,...r,ref:t})})});wH.displayName=_H;var kH="SelectLabel",SH=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=b5e(kH,n);return u.jsx(ds.div,{id:i.id,...r,ref:t})});SH.displayName=kH;var b4="SelectItem",[x5e,CH]=F0(b4),jH=m.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:i=!1,textValue:o,...a}=e,s=jf(b4,n),l=Tf(b4,n),c=s.value===r,[d,f]=m.useState(o??""),[p,v]=m.useState(!1),x=At(t,_=>{var S;return(S=l.itemRefCallback)==null?void 0:S.call(l,_,r,i)}),y=wo(),b=m.useRef("touch"),w=()=>{i||(s.onValueChange(r),s.onOpenChange(!1))};if(r==="")throw new Error("A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return u.jsx(x5e,{scope:n,value:r,disabled:i,textId:y,isSelected:c,onItemTextChange:m.useCallback(_=>{f(S=>S||((_==null?void 0:_.textContent)??"").trim())},[]),children:u.jsx(g4.ItemSlot,{scope:n,value:r,disabled:i,textValue:d,children:u.jsx(ds.div,{role:"option","aria-labelledby":y,"data-highlighted":p?"":void 0,"aria-selected":c&&p,"data-state":c?"checked":"unchecked","aria-disabled":i||void 0,"data-disabled":i?"":void 0,tabIndex:i?void 0:-1,...a,ref:x,onFocus:Xe(a.onFocus,()=>v(!0)),onBlur:Xe(a.onBlur,()=>v(!1)),onClick:Xe(a.onClick,()=>{b.current!=="mouse"&&w()}),onPointerUp:Xe(a.onPointerUp,()=>{b.current==="mouse"&&w()}),onPointerDown:Xe(a.onPointerDown,_=>{b.current=_.pointerType}),onPointerMove:Xe(a.onPointerMove,_=>{var S;b.current=_.pointerType,i?(S=l.onItemLeave)==null||S.call(l):b.current==="mouse"&&_.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Xe(a.onPointerLeave,_=>{var S;_.currentTarget===document.activeElement&&((S=l.onItemLeave)==null||S.call(l))}),onKeyDown:Xe(a.onKeyDown,_=>{var S;((S=l.searchRef)==null?void 0:S.current)!==""&&_.key===" "||(a5e.includes(_.key)&&w(),_.key===" "&&_.preventDefault())})})})})});jH.displayName=b4;var by="SelectItemText",TH=m.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,...o}=e,a=jf(by,n),s=Tf(by,n),l=CH(by,n),c=c5e(by,n),[d,f]=m.useState(null),p=At(t,w=>f(w),l.onItemTextChange,w=>{var _;return(_=s.itemTextRefCallback)==null?void 0:_.call(s,w,l.value,l.disabled)}),v=d==null?void 0:d.textContent,x=m.useMemo(()=>u.jsx("option",{value:l.value,disabled:l.disabled,children:v},l.value),[l.disabled,l.value,v]),{onNativeOptionAdd:y,onNativeOptionRemove:b}=c;return _o(()=>(y(x),()=>b(x)),[y,b,x]),u.jsxs(u.Fragment,{children:[u.jsx(ds.span,{id:l.textId,...o,ref:p}),l.isSelected&&a.valueNode&&!a.valueNodeHasChildren?Kc.createPortal(o.children,a.valueNode):null]})});TH.displayName=by;var IH="SelectItemIndicator",EH=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return CH(IH,n).isSelected?u.jsx(ds.span,{"aria-hidden":!0,...r,ref:t}):null});EH.displayName=IH;var w7="SelectScrollUpButton",_5e=m.forwardRef((e,t)=>{const n=Tf(w7,e.__scopeSelect),r=x7(w7,e.__scopeSelect),[i,o]=m.useState(!1),a=At(t,r.onScrollButtonChange);return _o(()=>{if(n.viewport&&n.isPositioned){let s=function(){const c=l.scrollTop>0;o(c)};const l=n.viewport;return s(),l.addEventListener("scroll",s),()=>l.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),i?u.jsx(NH,{...e,ref:a,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=n;s&&l&&(s.scrollTop=s.scrollTop-l.offsetHeight)}}):null});_5e.displayName=w7;var k7="SelectScrollDownButton",w5e=m.forwardRef((e,t)=>{const n=Tf(k7,e.__scopeSelect),r=x7(k7,e.__scopeSelect),[i,o]=m.useState(!1),a=At(t,r.onScrollButtonChange);return _o(()=>{if(n.viewport&&n.isPositioned){let s=function(){const c=l.scrollHeight-l.clientHeight,d=Math.ceil(l.scrollTop)l.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),i?u.jsx(NH,{...e,ref:a,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=n;s&&l&&(s.scrollTop=s.scrollTop+l.offsetHeight)}}):null});w5e.displayName=k7;var NH=m.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...i}=e,o=Tf("SelectScrollButton",n),a=m.useRef(null),s=v4(n),l=m.useCallback(()=>{a.current!==null&&(window.clearInterval(a.current),a.current=null)},[]);return m.useEffect(()=>()=>l(),[l]),_o(()=>{var c,d;(d=(c=s().find(f=>f.ref.current===document.activeElement))==null?void 0:c.ref.current)==null||d.scrollIntoView({block:"nearest"})},[s]),u.jsx(ds.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:Xe(i.onPointerDown,()=>{a.current===null&&(a.current=window.setInterval(r,50))}),onPointerMove:Xe(i.onPointerMove,()=>{var c;(c=o.onItemLeave)==null||c.call(o),a.current===null&&(a.current=window.setInterval(r,50))}),onPointerLeave:Xe(i.onPointerLeave,()=>{l()})})}),k5e="SelectSeparator",$H=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return u.jsx(ds.div,{"aria-hidden":!0,...r,ref:t})});$H.displayName=k5e;var S7="SelectArrow",S5e=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=y4(n),o=jf(S7,n),a=Tf(S7,n);return o.open&&a.position==="popper"?u.jsx(r4,{...i,...r,ref:t}):null});S5e.displayName=S7;var C5e="SelectBubbleInput",MH=m.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const i=m.useRef(null),o=At(r,i),a=O9(t);return m.useEffect(()=>{const s=i.current;if(!s)return;const l=window.HTMLSelectElement.prototype,c=Object.getOwnPropertyDescriptor(l,"value").set;if(a!==t&&c){const d=new Event("change",{bubbles:!0});c.call(s,t),s.dispatchEvent(d)}},[a,t]),u.jsx(ds.select,{...n,style:{...GU,...n.style},ref:o,defaultValue:t})});MH.displayName=C5e;function RH(e){return e===""||e===void 0}function LH(e){const t=ko(e),n=m.useRef(""),r=m.useRef(0),i=m.useCallback(a=>{const s=n.current+a;t(s),function l(c){n.current=c,window.clearTimeout(r.current),c!==""&&(r.current=window.setTimeout(()=>l(""),1e3))}(s)},[t]),o=m.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return m.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,o]}function PH(e,t,n){const r=t.length>1&&Array.from(t).every(s=>s===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let o=j5e(e,Math.max(i,0));r.length===1&&(o=o.filter(s=>s!==n));const a=o.find(s=>s.textValue.toLowerCase().startsWith(r.toLowerCase()));return a!==n?a:void 0}function j5e(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var T5e=uH,I5e=dH,E5e=hH,N5e=pH,$5e=mH,M5e=gH,R5e=xH,L5e=wH,P5e=SH,O5e=jH,z5e=TH,D5e=EH,A5e=$H,F5e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],xy=F5e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),OH=["PageUp","PageDown"],zH=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],DH={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},U0="Slider",[C7,U5e,B5e]=Mw(U0),[AH]=Pa(U0,[B5e]),[W5e,x4]=AH(U0),FH=m.forwardRef((e,t)=>{const{name:n,min:r=0,max:i=100,step:o=1,orientation:a="horizontal",disabled:s=!1,minStepsBetweenThumbs:l=0,defaultValue:c=[r],value:d,onValueChange:f=()=>{},onValueCommit:p=()=>{},inverted:v=!1,form:x,...y}=e,b=m.useRef(new Set),w=m.useRef(0),_=a==="horizontal"?V5e:H5e,[S=[],C]=Xs({prop:d,defaultProp:c,onChange:M=>{var O;(O=[...b.current][w.current])==null||O.focus(),f(M)}}),j=m.useRef(S);function T(M){const O=K5e(S,M);D(M,O)}function E(M){D(M,w.current)}function $(){const M=j.current[w.current];S[w.current]!==M&&p(S)}function D(M,O,{commit:te}={commit:!1}){const q=eSe(o),P=tSe(Math.round((M-r)/o)*o+r,q),X=gy(P,[r,i]);C((A=[])=>{const Y=G5e(A,X,O);if(Q5e(Y,l*o)){w.current=Y.indexOf(X);const F=String(Y)!==String(A);return F&&te&&p(Y),F?Y:A}else return A})}return u.jsx(W5e,{scope:e.__scopeSlider,name:n,disabled:s,min:r,max:i,valueIndexToChangeRef:w,thumbs:b.current,values:S,orientation:a,form:x,children:u.jsx(C7.Provider,{scope:e.__scopeSlider,children:u.jsx(C7.Slot,{scope:e.__scopeSlider,children:u.jsx(_,{"aria-disabled":s,"data-disabled":s?"":void 0,...y,ref:t,onPointerDown:Xe(y.onPointerDown,()=>{s||(j.current=S)}),min:r,max:i,inverted:v,onSlideStart:s?void 0:T,onSlideMove:s?void 0:E,onSlideEnd:s?void 0:$,onHomeKeyDown:()=>!s&&D(r,0,{commit:!0}),onEndKeyDown:()=>!s&&D(i,S.length-1,{commit:!0}),onStepKeyDown:({event:M,direction:O})=>{if(!s){const te=OH.includes(M.key)||M.shiftKey&&zH.includes(M.key)?10:1,q=w.current,P=S[q],X=o*te*O;D(P+X,q,{commit:!0})}}})})})})});FH.displayName=U0;var[UH,BH]=AH(U0,{startEdge:"left",endEdge:"right",size:"width",direction:1}),V5e=m.forwardRef((e,t)=>{const{min:n,max:r,dir:i,inverted:o,onSlideStart:a,onSlideMove:s,onSlideEnd:l,onStepKeyDown:c,...d}=e,[f,p]=m.useState(null),v=At(t,S=>p(S)),x=m.useRef(void 0),y=T0(i),b=y==="ltr",w=b&&!o||!b&&o;function _(S){const C=x.current||f.getBoundingClientRect(),j=[0,C.width],T=I7(j,w?[n,r]:[r,n]);return x.current=C,T(S-C.left)}return u.jsx(UH,{scope:e.__scopeSlider,startEdge:w?"left":"right",endEdge:w?"right":"left",direction:w?1:-1,size:"width",children:u.jsx(WH,{dir:y,"data-orientation":"horizontal",...d,ref:v,style:{...d.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:S=>{const C=_(S.clientX);a==null||a(C)},onSlideMove:S=>{const C=_(S.clientX);s==null||s(C)},onSlideEnd:()=>{x.current=void 0,l==null||l()},onStepKeyDown:S=>{const C=DH[w?"from-left":"from-right"].includes(S.key);c==null||c({event:S,direction:C?-1:1})}})})}),H5e=m.forwardRef((e,t)=>{const{min:n,max:r,inverted:i,onSlideStart:o,onSlideMove:a,onSlideEnd:s,onStepKeyDown:l,...c}=e,d=m.useRef(null),f=At(t,d),p=m.useRef(void 0),v=!i;function x(y){const b=p.current||d.current.getBoundingClientRect(),w=[0,b.height],_=I7(w,v?[r,n]:[n,r]);return p.current=b,_(y-b.top)}return u.jsx(UH,{scope:e.__scopeSlider,startEdge:v?"bottom":"top",endEdge:v?"top":"bottom",size:"height",direction:v?1:-1,children:u.jsx(WH,{"data-orientation":"vertical",...c,ref:f,style:{...c.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:y=>{const b=x(y.clientY);o==null||o(b)},onSlideMove:y=>{const b=x(y.clientY);a==null||a(b)},onSlideEnd:()=>{p.current=void 0,s==null||s()},onStepKeyDown:y=>{const b=DH[v?"from-bottom":"from-top"].includes(y.key);l==null||l({event:y,direction:b?-1:1})}})})}),WH=m.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:i,onSlideEnd:o,onHomeKeyDown:a,onEndKeyDown:s,onStepKeyDown:l,...c}=e,d=x4(U0,n);return u.jsx(xy.span,{...c,ref:t,onKeyDown:Xe(e.onKeyDown,f=>{f.key==="Home"?(a(f),f.preventDefault()):f.key==="End"?(s(f),f.preventDefault()):OH.concat(zH).includes(f.key)&&(l(f),f.preventDefault())}),onPointerDown:Xe(e.onPointerDown,f=>{const p=f.target;p.setPointerCapture(f.pointerId),f.preventDefault(),d.thumbs.has(p)?p.focus():r(f)}),onPointerMove:Xe(e.onPointerMove,f=>{f.target.hasPointerCapture(f.pointerId)&&i(f)}),onPointerUp:Xe(e.onPointerUp,f=>{const p=f.target;p.hasPointerCapture(f.pointerId)&&(p.releasePointerCapture(f.pointerId),o(f))})})}),VH="SliderTrack",HH=m.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,i=x4(VH,n);return u.jsx(xy.span,{"data-disabled":i.disabled?"":void 0,"data-orientation":i.orientation,...r,ref:t})});HH.displayName=VH;var j7="SliderRange",ZH=m.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,i=x4(j7,n),o=BH(j7,n),a=m.useRef(null),s=At(t,a),l=i.values.length,c=i.values.map(p=>YH(p,i.min,i.max)),d=l>1?Math.min(...c):0,f=100-Math.max(...c);return u.jsx(xy.span,{"data-orientation":i.orientation,"data-disabled":i.disabled?"":void 0,...r,ref:s,style:{...e.style,[o.startEdge]:d+"%",[o.endEdge]:f+"%"}})});ZH.displayName=j7;var T7="SliderThumb",qH=m.forwardRef((e,t)=>{const n=U5e(e.__scopeSlider),[r,i]=m.useState(null),o=At(t,s=>i(s)),a=m.useMemo(()=>r?n().findIndex(s=>s.ref.current===r):-1,[n,r]);return u.jsx(Z5e,{...e,ref:o,index:a})}),Z5e=m.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:i,...o}=e,a=x4(T7,n),s=BH(T7,n),[l,c]=m.useState(null),d=At(t,_=>c(_)),f=l?a.form||!!l.closest("form"):!0,p=z9(l),v=a.values[r],x=v===void 0?0:YH(v,a.min,a.max),y=Y5e(r,a.values.length),b=p==null?void 0:p[s.size],w=b?X5e(b,x,s.direction):0;return m.useEffect(()=>{if(l)return a.thumbs.add(l),()=>{a.thumbs.delete(l)}},[l,a.thumbs]),u.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[s.startEdge]:`calc(${x}% + ${w}px)`},children:[u.jsx(C7.ItemSlot,{scope:e.__scopeSlider,children:u.jsx(xy.span,{role:"slider","aria-label":e["aria-label"]||y,"aria-valuemin":a.min,"aria-valuenow":v,"aria-valuemax":a.max,"aria-orientation":a.orientation,"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,tabIndex:a.disabled?void 0:0,...o,ref:d,style:v===void 0?{display:"none"}:e.style,onFocus:Xe(e.onFocus,()=>{a.valueIndexToChangeRef.current=r})})}),f&&u.jsx(GH,{name:i??(a.name?a.name+(a.values.length>1?"[]":""):void 0),form:a.form,value:v},r)]})});qH.displayName=T7;var q5e="RadioBubbleInput",GH=m.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const i=m.useRef(null),o=At(i,r),a=O9(t);return m.useEffect(()=>{const s=i.current;if(!s)return;const l=window.HTMLInputElement.prototype,c=Object.getOwnPropertyDescriptor(l,"value").set;if(a!==t&&c){const d=new Event("input",{bubbles:!0});c.call(s,t),s.dispatchEvent(d)}},[a,t]),u.jsx(xy.input,{style:{display:"none"},...n,ref:o,defaultValue:t})});GH.displayName=q5e;function G5e(e=[],t,n){const r=[...e];return r[n]=t,r.sort((i,o)=>i-o)}function YH(e,t,n){const r=100/(n-t)*(e-t);return gy(r,[0,100])}function Y5e(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function K5e(e,t){if(e.length===1)return 0;const n=e.map(i=>Math.abs(i-t)),r=Math.min(...n);return n.indexOf(r)}function X5e(e,t,n){const r=e/2,i=I7([0,50],[0,r]);return(r-i(t)*n)*n}function J5e(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Q5e(e,t){if(t>0){const n=J5e(e);return Math.min(...n)>=t}return!0}function I7(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function eSe(e){return(String(e).split(".")[1]||"").length}function tSe(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var KH=FH,XH=HH,nSe=ZH,JH=qH,rSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],QH=rSe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),_4="Switch",[iSe]=Pa(_4),[oSe,aSe]=iSe(_4),eZ=m.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:i,defaultChecked:o,required:a,disabled:s,value:l="on",onCheckedChange:c,form:d,...f}=e,[p,v]=m.useState(null),x=At(t,S=>v(S)),y=m.useRef(!1),b=p?d||!!p.closest("form"):!0,[w,_]=Xs({prop:i,defaultProp:o??!1,onChange:c,caller:_4});return u.jsxs(oSe,{scope:n,checked:w,disabled:s,children:[u.jsx(QH.button,{type:"button",role:"switch","aria-checked":w,"aria-required":a,"data-state":iZ(w),"data-disabled":s?"":void 0,disabled:s,value:l,...f,ref:x,onClick:Xe(e.onClick,S=>{_(C=>!C),b&&(y.current=S.isPropagationStopped(),y.current||S.stopPropagation())})}),b&&u.jsx(rZ,{control:p,bubbles:!y.current,name:r,value:l,checked:w,required:a,disabled:s,form:d,style:{transform:"translateX(-100%)"}})]})});eZ.displayName=_4;var tZ="SwitchThumb",nZ=m.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,i=aSe(tZ,n);return u.jsx(QH.span,{"data-state":iZ(i.checked),"data-disabled":i.disabled?"":void 0,...r,ref:t})});nZ.displayName=tZ;var sSe="SwitchBubbleInput",rZ=m.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...i},o)=>{const a=m.useRef(null),s=At(a,o),l=O9(n),c=z9(t);return m.useEffect(()=>{const d=a.current;if(!d)return;const f=window.HTMLInputElement.prototype,p=Object.getOwnPropertyDescriptor(f,"checked").set;if(l!==n&&p){const v=new Event("click",{bubbles:r});p.call(d,n),d.dispatchEvent(v)}},[l,n,r]),u.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:s,style:{...i.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});rZ.displayName=sSe;function iZ(e){return e?"checked":"unchecked"}var lSe=eZ,uSe=nZ,cSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],dSe=cSe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),oZ="Toggle",E7=m.forwardRef((e,t)=>{const{pressed:n,defaultPressed:r,onPressedChange:i,...o}=e,[a,s]=Xs({prop:n,onChange:i,defaultProp:r??!1,caller:oZ});return u.jsx(dSe.button,{type:"button","aria-pressed":a,"data-state":a?"on":"off","data-disabled":e.disabled?"":void 0,...o,ref:t,onClick:Xe(e.onClick,()=>{e.disabled||s(!a)})})});E7.displayName=oZ;var N7=E7,fSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],aZ=fSe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),If="ToggleGroup",[sZ]=Pa(If,[i4]),lZ=i4(),$7=Pe.forwardRef((e,t)=>{const{type:n,...r}=e;if(n==="single"){const i=r;return u.jsx(hSe,{...i,ref:t})}if(n==="multiple"){const i=r;return u.jsx(pSe,{...i,ref:t})}throw new Error(`Missing prop \`type\` expected on \`${If}\``)});$7.displayName=If;var[uZ,cZ]=sZ(If),hSe=Pe.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:i=()=>{},...o}=e,[a,s]=Xs({prop:n,defaultProp:r??"",onChange:i,caller:If});return u.jsx(uZ,{scope:e.__scopeToggleGroup,type:"single",value:Pe.useMemo(()=>a?[a]:[],[a]),onItemActivate:s,onItemDeactivate:Pe.useCallback(()=>s(""),[s]),children:u.jsx(dZ,{...o,ref:t})})}),pSe=Pe.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:i=()=>{},...o}=e,[a,s]=Xs({prop:n,defaultProp:r??[],onChange:i,caller:If}),l=Pe.useCallback(d=>s((f=[])=>[...f,d]),[s]),c=Pe.useCallback(d=>s((f=[])=>f.filter(p=>p!==d)),[s]);return u.jsx(uZ,{scope:e.__scopeToggleGroup,type:"multiple",value:a,onItemActivate:l,onItemDeactivate:c,children:u.jsx(dZ,{...o,ref:t})})});$7.displayName=If;var[mSe,gSe]=sZ(If),dZ=Pe.forwardRef((e,t)=>{const{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:o,dir:a,loop:s=!0,...l}=e,c=lZ(n),d=T0(a),f={role:"group",dir:d,...l};return u.jsx(mSe,{scope:n,rovingFocus:i,disabled:r,children:i?u.jsx(NW,{asChild:!0,...c,orientation:o,dir:d,loop:s,children:u.jsx(aZ.div,{...f,ref:t})}):u.jsx(aZ.div,{...f,ref:t})})}),w4="ToggleGroupItem",fZ=Pe.forwardRef((e,t)=>{const n=cZ(w4,e.__scopeToggleGroup),r=gSe(w4,e.__scopeToggleGroup),i=lZ(e.__scopeToggleGroup),o=n.value.includes(e.value),a=r.disabled||e.disabled,s={...e,pressed:o,disabled:a},l=Pe.useRef(null);return r.rovingFocus?u.jsx($W,{asChild:!0,...i,focusable:!a,active:o,ref:l,children:u.jsx(hZ,{...s,ref:t})}):u.jsx(hZ,{...s,ref:t})});fZ.displayName=w4;var hZ=Pe.forwardRef((e,t)=>{const{__scopeToggleGroup:n,value:r,...i}=e,o=cZ(w4,n),a={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},s=o.type==="single"?a:void 0;return u.jsx(E7,{...s,...i,ref:t,onPressedChange:l=>{l?o.onItemActivate(r):o.onItemDeactivate(r)}})}),M7=$7,B0=fZ,vSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ySe=vSe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),[k4]=Pa("Tooltip",[Sf]),S4=Sf(),pZ="TooltipProvider",bSe=700,R7="tooltip.open",[xSe,L7]=k4(pZ),mZ=e=>{const{__scopeTooltip:t,delayDuration:n=bSe,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:o}=e,a=m.useRef(!0),s=m.useRef(!1),l=m.useRef(0);return m.useEffect(()=>{const c=l.current;return()=>window.clearTimeout(c)},[]),u.jsx(xSe,{scope:t,isOpenDelayedRef:a,delayDuration:n,onOpen:m.useCallback(()=>{window.clearTimeout(l.current),a.current=!1},[]),onClose:m.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(()=>a.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:m.useCallback(c=>{s.current=c},[]),disableHoverableContent:i,children:o})};mZ.displayName=pZ;var _y="Tooltip",[_Se,wy]=k4(_y),gZ=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:o,disableHoverableContent:a,delayDuration:s}=e,l=L7(_y,e.__scopeTooltip),c=S4(t),[d,f]=m.useState(null),p=wo(),v=m.useRef(0),x=a??l.disableHoverableContent,y=s??l.delayDuration,b=m.useRef(!1),[w,_]=Xs({prop:r,defaultProp:i??!1,onChange:E=>{E?(l.onOpen(),document.dispatchEvent(new CustomEvent(R7))):l.onClose(),o==null||o(E)},caller:_y}),S=m.useMemo(()=>w?b.current?"delayed-open":"instant-open":"closed",[w]),C=m.useCallback(()=>{window.clearTimeout(v.current),v.current=0,b.current=!1,_(!0)},[_]),j=m.useCallback(()=>{window.clearTimeout(v.current),v.current=0,_(!1)},[_]),T=m.useCallback(()=>{window.clearTimeout(v.current),v.current=window.setTimeout(()=>{b.current=!0,_(!0),v.current=0},y)},[y,_]);return m.useEffect(()=>()=>{v.current&&(window.clearTimeout(v.current),v.current=0)},[]),u.jsx(t4,{...c,children:u.jsx(_Se,{scope:t,contentId:p,open:w,stateAttribute:S,trigger:d,onTriggerChange:f,onTriggerEnter:m.useCallback(()=>{l.isOpenDelayedRef.current?T():C()},[l.isOpenDelayedRef,T,C]),onTriggerLeave:m.useCallback(()=>{x?j():(window.clearTimeout(v.current),v.current=0)},[j,x]),onOpen:C,onClose:j,disableHoverableContent:x,children:n})})};gZ.displayName=_y;var P7="TooltipTrigger",vZ=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,i=wy(P7,n),o=L7(P7,n),a=S4(n),s=m.useRef(null),l=At(t,s,i.onTriggerChange),c=m.useRef(!1),d=m.useRef(!1),f=m.useCallback(()=>c.current=!1,[]);return m.useEffect(()=>()=>document.removeEventListener("pointerup",f),[f]),u.jsx(ly,{asChild:!0,...a,children:u.jsx(ySe.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:l,onPointerMove:Xe(e.onPointerMove,p=>{p.pointerType!=="touch"&&!d.current&&!o.isPointerInTransitRef.current&&(i.onTriggerEnter(),d.current=!0)}),onPointerLeave:Xe(e.onPointerLeave,()=>{i.onTriggerLeave(),d.current=!1}),onPointerDown:Xe(e.onPointerDown,()=>{i.open&&i.onClose(),c.current=!0,document.addEventListener("pointerup",f,{once:!0})}),onFocus:Xe(e.onFocus,()=>{c.current||i.onOpen()}),onBlur:Xe(e.onBlur,i.onClose),onClick:Xe(e.onClick,i.onClose)})})});vZ.displayName=P7;var O7="TooltipPortal",[wSe,kSe]=k4(O7,{forceMount:void 0}),yZ=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,o=wy(O7,t);return u.jsx(wSe,{scope:t,forceMount:n,children:u.jsx(Ao,{present:n||o.open,children:u.jsx(Zh,{asChild:!0,container:i,children:r})})})};yZ.displayName=O7;var W0="TooltipContent",bZ=m.forwardRef((e,t)=>{const n=kSe(W0,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i="top",...o}=e,a=wy(W0,e.__scopeTooltip);return u.jsx(Ao,{present:r||a.open,children:a.disableHoverableContent?u.jsx(xZ,{side:i,...o,ref:t}):u.jsx(SSe,{side:i,...o,ref:t})})}),SSe=m.forwardRef((e,t)=>{const n=wy(W0,e.__scopeTooltip),r=L7(W0,e.__scopeTooltip),i=m.useRef(null),o=At(t,i),[a,s]=m.useState(null),{trigger:l,onClose:c}=n,d=i.current,{onPointerInTransitChange:f}=r,p=m.useCallback(()=>{s(null),f(!1)},[f]),v=m.useCallback((x,y)=>{const b=x.currentTarget,w={x:x.clientX,y:x.clientY},_=ISe(w,b.getBoundingClientRect()),S=ESe(w,_),C=NSe(y.getBoundingClientRect()),j=MSe([...S,...C]);s(j),f(!0)},[f]);return m.useEffect(()=>()=>p(),[p]),m.useEffect(()=>{if(l&&d){const x=b=>v(b,d),y=b=>v(b,l);return l.addEventListener("pointerleave",x),d.addEventListener("pointerleave",y),()=>{l.removeEventListener("pointerleave",x),d.removeEventListener("pointerleave",y)}}},[l,d,v,p]),m.useEffect(()=>{if(a){const x=y=>{const b=y.target,w={x:y.clientX,y:y.clientY},_=(l==null?void 0:l.contains(b))||(d==null?void 0:d.contains(b)),S=!$Se(w,a);_?p():S&&(p(),c())};return document.addEventListener("pointermove",x),()=>document.removeEventListener("pointermove",x)}},[l,d,a,c,p]),u.jsx(xZ,{...e,ref:o})}),[CSe,jSe]=k4(_y,{isInside:!1}),TSe=qU("TooltipContent"),xZ=m.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:o,onPointerDownOutside:a,...s}=e,l=wy(W0,n),c=S4(n),{onClose:d}=l;return m.useEffect(()=>(document.addEventListener(R7,d),()=>document.removeEventListener(R7,d)),[d]),m.useEffect(()=>{if(l.trigger){const f=p=>{var v;(v=p.target)!=null&&v.contains(l.trigger)&&d()};return window.addEventListener("scroll",f,{capture:!0}),()=>window.removeEventListener("scroll",f,{capture:!0})}},[l.trigger,d]),u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:f=>f.preventDefault(),onDismiss:d,children:u.jsxs(n4,{"data-state":l.stateAttribute,...c,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[u.jsx(TSe,{children:r}),u.jsx(CSe,{scope:n,isInside:!0,children:u.jsx(KU,{id:l.contentId,role:"tooltip",children:i||r})})]})})});bZ.displayName=W0;var _Z="TooltipArrow",wZ=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,i=S4(n);return jSe(_Z,n).isInside?null:u.jsx(r4,{...i,...r,ref:t})});wZ.displayName=_Z;function ISe(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),o=Math.abs(t.left-e.x);switch(Math.min(n,r,i,o)){case o:return"left";case i:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function ESe(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function NSe(e){const{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function $Se(e,t){const{x:n,y:r}=e;let i=!1;for(let o=0,a=t.length-1;or!=p>r&&n<(f-c)*(r-d)/(p-d)+c&&(i=!i)}return i}function MSe(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),RSe(t)}function RSe(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const o=t[t.length-1],a=t[t.length-2];if((o.x-a.x)*(i.y-a.y)>=(o.y-a.y)*(i.x-a.x))t.pop();else break}t.push(i)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const i=e[r];for(;n.length>=2;){const o=n[n.length-1],a=n[n.length-2];if((o.x-a.x)*(i.y-a.y)>=(o.y-a.y)*(i.x-a.x))n.pop();else break}n.push(i)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var LSe=mZ,PSe=gZ,OSe=vZ,zSe=yZ,DSe=bZ,ASe=wZ,kZ={exports:{}};/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var o="",a=0;az7.includes(t))}function Nf({className:e,customProperties:t,...n}){const r=Sy({allowArbitraryValues:!0,className:e,...n}),i=XSe({customProperties:t,...n});return[r,i]}function Sy({allowArbitraryValues:e,value:t,className:n,propValues:r,parseValue:i=o=>o}){const o=[];if(t){if(typeof t=="string"&&r.includes(t))return $Z(n,t,i);if(ky(t)){const a=t;for(const s in a){if(!NZ(a,s)||!z7.includes(s))continue;const l=a[s];if(l!==void 0){if(r.includes(l)){const c=$Z(n,l,i),d=s==="initial"?c:`${s}:${c}`;o.push(d)}else if(e){const c=s==="initial"?n:`${s}:${n}`;o.push(c)}}}return o.join(" ")}if(e)return n}}function $Z(e,t,n){const r=e?"-":"",i=n(t),o=i==null?void 0:i.startsWith("-"),a=o?"-":"",s=o?i==null?void 0:i.substring(1):i;return`${a}${e}${r}${s}`}function XSe({customProperties:e,value:t,propValues:n,parseValue:r=i=>i}){let i={};if(!(!t||typeof t=="string"&&n.includes(t))){if(typeof t=="string"&&(i=Object.fromEntries(e.map(o=>[o,t]))),ky(t)){const o=t;for(const a in o){if(!NZ(o,a)||!z7.includes(a))continue;const s=o[a];if(!n.includes(s))for(const l of e)i={[a==="initial"?l:`${l}-${a}`]:s,...i}}}for(const o in i){const a=i[o];a!==void 0&&(i[o]=r(a))}return i}}function Cy(...e){let t={};for(const n of e)n&&(t={...t,...n});return Object.keys(t).length?t:void 0}function JSe(...e){return Object.assign({},...e)}function er(e,...t){let n,r;const i={...e},o=JSe(...t);for(const a in o){let s=i[a];const l=o[a];if(l.default!==void 0&&s===void 0&&(s=l.default),l.type==="enum"&&![l.default,...l.values].includes(s)&&!ky(s)&&(s=l.default),i[a]=s,"className"in l&&l.className){delete i[a];const c="responsive"in l;if(!s||ky(s)&&!c)continue;if(ky(s)&&(l.default!==void 0&&s.initial===void 0&&(s.initial=l.default),l.type==="enum"&&([l.default,...l.values].includes(s.initial)||(s.initial=l.default))),l.type==="enum"){const d=Sy({allowArbitraryValues:!1,value:s,className:l.className,propValues:l.values,parseValue:l.parseValue});n=gt(n,d);continue}if(l.type==="string"||l.type==="enum | string"){const d=l.type==="string"?[]:l.values,[f,p]=Nf({className:l.className,customProperties:l.customProperties,propValues:d,parseValue:l.parseValue,value:s});r=Cy(r,p),n=gt(n,f);continue}if(l.type==="boolean"&&s){n=gt(n,l.className);continue}}}return i.className=gt(n,e.className),i.style=Cy(r,e.style),i}const Qh=["0","1","2","3","4","5","6","7","8","9","-1","-2","-3","-4","-5","-6","-7","-8","-9"],So={m:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-m",customProperties:["--m"]},mx:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-mx",customProperties:["--ml","--mr"]},my:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-my",customProperties:["--mt","--mb"]},mt:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-mt",customProperties:["--mt"]},mr:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-mr",customProperties:["--mr"]},mb:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-mb",customProperties:["--mb"]},ml:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-ml",customProperties:["--ml"]}},MZ=m.forwardRef((e,t)=>{const{children:n,className:r,asChild:i,as:o="h1",color:a,...s}=er(e,KSe,So);return m.createElement(xf,{"data-accent-color":a,...s,ref:t,className:gt("rt-Heading",r)},i?n:m.createElement(o,null,n))});MZ.displayName="Heading";const QSe=["span","div","label","p"],eCe=["1","2","3","4","5","6","7","8","9"],tCe={as:{type:"enum",values:QSe,default:"span"},...el,size:{type:"enum",className:"rt-r-size",values:eCe,responsive:!0},...EZ,...jZ,...CZ,...IZ,...TZ,...Oa,...Ef},Z=m.forwardRef((e,t)=>{const{children:n,className:r,asChild:i,as:o="span",color:a,...s}=er(e,tCe,So);return m.createElement(xf,{"data-accent-color":a,...s,ref:t,className:gt("rt-Text",r)},i?n:m.createElement(o,null,n))});Z.displayName="Text";function nCe(e){switch(e){case"tomato":case"red":case"ruby":case"crimson":case"pink":case"plum":case"purple":case"violet":return"mauve";case"iris":case"indigo":case"blue":case"sky":case"cyan":return"slate";case"teal":case"jade":case"mint":case"green":return"sage";case"grass":case"lime":return"olive";case"yellow":case"amber":case"orange":case"brown":case"gold":case"bronze":return"sand";case"gray":return"gray"}}const rCe=["none","small","medium","large","full"],ep={radius:{type:"enum",values:rCe,default:void 0}},fs={hasBackground:{default:!0},appearance:{default:"inherit"},accentColor:{default:"indigo"},grayColor:{default:"auto"},panelBackground:{default:"translucent"},radius:{default:"medium"},scaling:{default:"100%"}},V0=()=>{},j4=m.createContext(void 0);function RZ(){const e=m.useContext(j4);if(e===void 0)throw new Error("`useThemeContext` must be used within a `Theme`");return e}const $f=m.forwardRef((e,t)=>m.useContext(j4)===void 0?m.createElement(LSe,{delayDuration:200},m.createElement(K2e,{dir:"ltr"},m.createElement(LZ,{...e,ref:t}))):m.createElement(D7,{...e,ref:t}));$f.displayName="Theme";const LZ=m.forwardRef((e,t)=>{const{appearance:n=fs.appearance.default,accentColor:r=fs.accentColor.default,grayColor:i=fs.grayColor.default,panelBackground:o=fs.panelBackground.default,radius:a=fs.radius.default,scaling:s=fs.scaling.default,hasBackground:l=fs.hasBackground.default,...c}=e,[d,f]=m.useState(n);m.useEffect(()=>f(n),[n]);const[p,v]=m.useState(r);m.useEffect(()=>v(r),[r]);const[x,y]=m.useState(i);m.useEffect(()=>y(i),[i]);const[b,w]=m.useState(o);m.useEffect(()=>w(o),[o]);const[_,S]=m.useState(a);m.useEffect(()=>S(a),[a]);const[C,j]=m.useState(s);return m.useEffect(()=>j(s),[s]),m.createElement(D7,{...c,ref:t,isRoot:!0,hasBackground:l,appearance:d,accentColor:p,grayColor:x,panelBackground:b,radius:_,scaling:C,onAppearanceChange:f,onAccentColorChange:v,onGrayColorChange:y,onPanelBackgroundChange:w,onRadiusChange:S,onScalingChange:j})});LZ.displayName="ThemeRoot";const D7=m.forwardRef((e,t)=>{const n=m.useContext(j4),{asChild:r,isRoot:i,hasBackground:o,appearance:a=(n==null?void 0:n.appearance)??fs.appearance.default,accentColor:s=(n==null?void 0:n.accentColor)??fs.accentColor.default,grayColor:l=(n==null?void 0:n.resolvedGrayColor)??fs.grayColor.default,panelBackground:c=(n==null?void 0:n.panelBackground)??fs.panelBackground.default,radius:d=(n==null?void 0:n.radius)??fs.radius.default,scaling:f=(n==null?void 0:n.scaling)??fs.scaling.default,onAppearanceChange:p=V0,onAccentColorChange:v=V0,onGrayColorChange:x=V0,onPanelBackgroundChange:y=V0,onRadiusChange:b=V0,onScalingChange:w=V0,..._}=e,S=r?xf:"div",C=l==="auto"?nCe(s):l,j=e.appearance==="light"||e.appearance==="dark",T=o===void 0?i||j:o;return m.createElement(j4.Provider,{value:m.useMemo(()=>({appearance:a,accentColor:s,grayColor:l,resolvedGrayColor:C,panelBackground:c,radius:d,scaling:f,onAppearanceChange:p,onAccentColorChange:v,onGrayColorChange:x,onPanelBackgroundChange:y,onRadiusChange:b,onScalingChange:w}),[a,s,l,C,c,d,f,p,v,x,y,b,w])},m.createElement(S,{"data-is-root-theme":i?"true":"false","data-accent-color":s,"data-gray-color":C,"data-has-background":T?"true":"false","data-panel-background":c,"data-radius":d,"data-scaling":f,ref:t,..._,className:gt("radix-themes",{light:a==="light",dark:a==="dark"},_.className)}))});D7.displayName="ThemeImpl";const H0=e=>{if(!m.isValidElement(e))throw Error(`Expected a single React Element child, but got: ${m.Children.toArray(e).map(t=>typeof t=="object"&&"type"in t&&typeof t.type=="string"?t.type:typeof t).join(", ")}`);return e};function PZ(e,t){const{asChild:n,children:r}=e;if(!n)return typeof t=="function"?t(r):t;const i=m.Children.only(r);return m.cloneElement(i,{children:typeof t=="function"?t(i.props.children):t})}const A7=xf,iCe=["div","span"],oCe=["none","inline","inline-block","block","contents"],aCe={as:{type:"enum",values:iCe,default:"div"},...el,display:{type:"enum",className:"rt-r-display",values:oCe,responsive:!0}},tp=["0","1","2","3","4","5","6","7","8","9"],jy={p:{type:"enum | string",className:"rt-r-p",customProperties:["--p"],values:tp,responsive:!0},px:{type:"enum | string",className:"rt-r-px",customProperties:["--pl","--pr"],values:tp,responsive:!0},py:{type:"enum | string",className:"rt-r-py",customProperties:["--pt","--pb"],values:tp,responsive:!0},pt:{type:"enum | string",className:"rt-r-pt",customProperties:["--pt"],values:tp,responsive:!0},pr:{type:"enum | string",className:"rt-r-pr",customProperties:["--pr"],values:tp,responsive:!0},pb:{type:"enum | string",className:"rt-r-pb",customProperties:["--pb"],values:tp,responsive:!0},pl:{type:"enum | string",className:"rt-r-pl",customProperties:["--pl"],values:tp,responsive:!0}},F7=["visible","hidden","clip","scroll","auto"],sCe=["static","relative","absolute","fixed","sticky"],Ty=["0","1","2","3","4","5","6","7","8","9","-1","-2","-3","-4","-5","-6","-7","-8","-9"],lCe=["0","1"],uCe=["0","1"],T4={...jy,...tl,...C4,position:{type:"enum",className:"rt-r-position",values:sCe,responsive:!0},inset:{type:"enum | string",className:"rt-r-inset",customProperties:["--inset"],values:Ty,responsive:!0},top:{type:"enum | string",className:"rt-r-top",customProperties:["--top"],values:Ty,responsive:!0},right:{type:"enum | string",className:"rt-r-right",customProperties:["--right"],values:Ty,responsive:!0},bottom:{type:"enum | string",className:"rt-r-bottom",customProperties:["--bottom"],values:Ty,responsive:!0},left:{type:"enum | string",className:"rt-r-left",customProperties:["--left"],values:Ty,responsive:!0},overflow:{type:"enum",className:"rt-r-overflow",values:F7,responsive:!0},overflowX:{type:"enum",className:"rt-r-ox",values:F7,responsive:!0},overflowY:{type:"enum",className:"rt-r-oy",values:F7,responsive:!0},flexBasis:{type:"string",className:"rt-r-fb",customProperties:["--flex-basis"],responsive:!0},flexShrink:{type:"enum | string",className:"rt-r-fs",customProperties:["--flex-shrink"],values:lCe,responsive:!0},flexGrow:{type:"enum | string",className:"rt-r-fg",customProperties:["--flex-grow"],values:uCe,responsive:!0},gridArea:{type:"string",className:"rt-r-ga",customProperties:["--grid-area"],responsive:!0},gridColumn:{type:"string",className:"rt-r-gc",customProperties:["--grid-column"],responsive:!0},gridColumnStart:{type:"string",className:"rt-r-gcs",customProperties:["--grid-column-start"],responsive:!0},gridColumnEnd:{type:"string",className:"rt-r-gce",customProperties:["--grid-column-end"],responsive:!0},gridRow:{type:"string",className:"rt-r-gr",customProperties:["--grid-row"],responsive:!0},gridRowStart:{type:"string",className:"rt-r-grs",customProperties:["--grid-row-start"],responsive:!0},gridRowEnd:{type:"string",className:"rt-r-gre",customProperties:["--grid-row-end"],responsive:!0}},Mt=m.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...o}=er(e,aCe,T4,So);return m.createElement(r?A7:i,{...o,ref:t,className:gt("rt-Box",n)})});Mt.displayName="Box";const cCe=["1","2","3","4"],dCe=["classic","solid","soft","surface","outline","ghost"],OZ={...el,size:{type:"enum",className:"rt-r-size",values:cCe,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:dCe,default:"solid"},...WSe,...Ef,...ep,loading:{type:"boolean",className:"rt-loading",default:!1}},U7=["0","1","2","3","4","5","6","7","8","9"],zZ={gap:{type:"enum | string",className:"rt-r-gap",customProperties:["--gap"],values:U7,responsive:!0},gapX:{type:"enum | string",className:"rt-r-cg",customProperties:["--column-gap"],values:U7,responsive:!0},gapY:{type:"enum | string",className:"rt-r-rg",customProperties:["--row-gap"],values:U7,responsive:!0}},fCe=["div","span"],hCe=["none","inline-flex","flex"],pCe=["row","column","row-reverse","column-reverse"],mCe=["start","center","end","baseline","stretch"],gCe=["start","center","end","between"],vCe=["nowrap","wrap","wrap-reverse"],DZ={as:{type:"enum",values:fCe,default:"div"},...el,display:{type:"enum",className:"rt-r-display",values:hCe,responsive:!0},direction:{type:"enum",className:"rt-r-fd",values:pCe,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:mCe,responsive:!0},justify:{type:"enum",className:"rt-r-jc",values:gCe,parseValue:yCe,responsive:!0},wrap:{type:"enum",className:"rt-r-fw",values:vCe,responsive:!0},...zZ};function yCe(e){return e==="between"?"space-between":e}const W=m.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...o}=er(e,DZ,T4,So);return m.createElement(r?A7:i,{...o,ref:t,className:gt("rt-Flex",n)})});W.displayName="Flex";const bCe=["1","2","3"],xCe={size:{type:"enum",className:"rt-r-size",values:bCe,default:"2",responsive:!0},loading:{type:"boolean",default:!0}},Iy=m.forwardRef((e,t)=>{const{className:n,children:r,loading:i,...o}=er(e,xCe,So);if(!i)return r;const a=m.createElement("span",{...o,ref:t,className:gt("rt-Spinner",n)},m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}));return r===void 0?a:m.createElement(W,{asChild:!0,position:"relative",align:"center",justify:"center"},m.createElement("span",null,m.createElement("span",{"aria-hidden":!0,style:{display:"contents",visibility:"hidden"},inert:void 0},r),m.createElement(W,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},m.createElement("span",null,a))))});Iy.displayName="Spinner";const _Ce=KU;function wCe(e,t){if(e!==void 0)return typeof e=="string"?t(e):Object.fromEntries(Object.entries(e).map(([n,r])=>[n,t(r)]))}function kCe(e){switch(e){case"1":return"1";case"2":case"3":return"2";case"4":return"3"}}const B7=m.forwardRef((e,t)=>{const{size:n=OZ.size.default}=e,{className:r,children:i,asChild:o,color:a,radius:s,disabled:l=e.loading,...c}=er(e,OZ,So),d=o?xf:"button";return m.createElement(d,{"data-disabled":l||void 0,"data-accent-color":a,"data-radius":s,...c,ref:t,className:gt("rt-reset","rt-BaseButton",r),disabled:l},e.loading?m.createElement(m.Fragment,null,m.createElement("span",{style:{display:"contents",visibility:"hidden"},"aria-hidden":!0},i),m.createElement(_Ce,null,i),m.createElement(W,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},m.createElement("span",null,m.createElement(Iy,{size:wCe(n,kCe)})))):i)});B7.displayName="BaseButton";const hs=m.forwardRef(({className:e,...t},n)=>m.createElement(B7,{...t,ref:n,className:gt("rt-Button",e)}));hs.displayName="Button";const SCe=["1","2","3","4","5"],CCe=["surface","classic","ghost"],jCe={...el,size:{type:"enum",className:"rt-r-size",values:SCe,default:"1",responsive:!0},variant:{type:"enum",className:"rt-variant",values:CCe,default:"surface"}},Ey=m.forwardRef((e,t)=>{const{asChild:n,className:r,...i}=er(e,jCe,So),o=n?xf:"div";return m.createElement(o,{ref:t,...i,className:gt("rt-reset","rt-BaseCard","rt-Card",r)})});Ey.displayName="Card";const TCe=["div","span"],ICe=["none","inline-grid","grid"],ECe=["1","2","3","4","5","6","7","8","9"],NCe=["1","2","3","4","5","6","7","8","9"],$Ce=["row","column","dense","row-dense","column-dense"],MCe=["start","center","end","baseline","stretch"],RCe=["start","center","end","between"],AZ={as:{type:"enum",values:TCe,default:"div"},...el,display:{type:"enum",className:"rt-r-display",values:ICe,responsive:!0},areas:{type:"string",className:"rt-r-gta",customProperties:["--grid-template-areas"],responsive:!0},columns:{type:"enum | string",className:"rt-r-gtc",customProperties:["--grid-template-columns"],values:ECe,parseValue:FZ,responsive:!0},rows:{type:"enum | string",className:"rt-r-gtr",customProperties:["--grid-template-rows"],values:NCe,parseValue:FZ,responsive:!0},flow:{type:"enum",className:"rt-r-gaf",values:$Ce,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:MCe,responsive:!0},justify:{type:"enum",className:"rt-r-jc",values:RCe,parseValue:LCe,responsive:!0},...zZ};function FZ(e){return AZ.columns.values.includes(e)?e:e!=null&&e.match(/^\d+$/)?`repeat(${e}, minmax(0, 1fr))`:e}function LCe(e){return e==="between"?"space-between":e}const qr=m.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...o}=er(e,AZ,T4,So);return m.createElement(r?A7:i,{...o,ref:t,className:gt("rt-Grid",n)})});qr.displayName="Grid";const PCe=Pe.forwardRef((e,t)=>Pe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Pe.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0.75 4.5C0.75 4.08579 1.08579 3.75 1.5 3.75H7.5C7.91421 3.75 8.25 4.08579 8.25 4.5C8.25 4.91421 7.91421 5.25 7.5 5.25H1.5C1.08579 5.25 0.75 4.91421 0.75 4.5Z"})));PCe.displayName="ThickDividerHorizontalIcon";const I4=Pe.forwardRef((e,t)=>Pe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Pe.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.53547 0.62293C8.88226 0.849446 8.97976 1.3142 8.75325 1.66099L4.5083 8.1599C4.38833 8.34356 4.19397 8.4655 3.9764 8.49358C3.75883 8.52167 3.53987 8.45309 3.3772 8.30591L0.616113 5.80777C0.308959 5.52987 0.285246 5.05559 0.563148 4.74844C0.84105 4.44128 1.31533 4.41757 1.62249 4.69547L3.73256 6.60459L7.49741 0.840706C7.72393 0.493916 8.18868 0.396414 8.53547 0.62293Z"})));I4.displayName="ThickCheckIcon";const W7=Pe.forwardRef((e,t)=>Pe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Pe.createElement("path",{d:"M0.135232 3.15803C0.324102 2.95657 0.640521 2.94637 0.841971 3.13523L4.5 6.56464L8.158 3.13523C8.3595 2.94637 8.6759 2.95657 8.8648 3.15803C9.0536 3.35949 9.0434 3.67591 8.842 3.86477L4.84197 7.6148C4.64964 7.7951 4.35036 7.7951 4.15803 7.6148L0.158031 3.86477C-0.0434285 3.67591 -0.0536285 3.35949 0.135232 3.15803Z"})));W7.displayName="ChevronDownIcon";const UZ=Pe.forwardRef((e,t)=>Pe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Pe.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.23826 0.201711C3.54108 -0.0809141 4.01567 -0.0645489 4.29829 0.238264L7.79829 3.98826C8.06724 4.27642 8.06724 4.72359 7.79829 5.01174L4.29829 8.76174C4.01567 9.06455 3.54108 9.08092 3.23826 8.79829C2.93545 8.51567 2.91909 8.04108 3.20171 7.73826L6.22409 4.5L3.20171 1.26174C2.91909 0.958928 2.93545 0.484337 3.23826 0.201711Z"})));UZ.displayName="ThickChevronRightIcon";const OCe=["1","2","3","4"],zCe=["none","initial"],DCe=["left","center","right"],ACe={...el,size:{type:"enum",className:"rt-r-size",values:OCe,default:"4",responsive:!0},display:{type:"enum",className:"rt-r-display",values:zCe,parseValue:FCe,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:DCe,parseValue:UCe,responsive:!0}};function FCe(e){return e==="initial"?"flex":e}function UCe(e){return e==="left"?"start":e==="right"?"end":e}const BZ=m.forwardRef(({width:e,minWidth:t,maxWidth:n,height:r,minHeight:i,maxHeight:o,...a},s)=>{const{asChild:l,children:c,className:d,...f}=er(a,ACe,T4,So),{className:p,style:v}=er({width:e,minWidth:t,maxWidth:n,height:r,minHeight:i,maxHeight:o},tl,C4),x=l?xf:"div";return m.createElement(x,{...f,ref:s,className:gt("rt-Container",d)},PZ({asChild:l,children:c},y=>m.createElement("div",{className:gt("rt-ContainerInner",p),style:v},y)))});BZ.displayName="Container";const BCe=["1","2","3"],Ny={...el,size:{values:BCe,default:"1"},...ep,scrollbars:{default:"both"}};function WCe(e){const{m:t,mx:n,my:r,mt:i,mr:o,mb:a,ml:s,...l}=e;return{m:t,mx:n,my:r,mt:i,mr:o,mb:a,ml:s,rest:l}}const np=So.m.values;function VCe(e){const[t,n]=Nf({className:"rt-r-m",customProperties:["--margin"],propValues:np,value:e.m}),[r,i]=Nf({className:"rt-r-mx",customProperties:["--margin-left","--margin-right"],propValues:np,value:e.mx}),[o,a]=Nf({className:"rt-r-my",customProperties:["--margin-top","--margin-bottom"],propValues:np,value:e.my}),[s,l]=Nf({className:"rt-r-mt",customProperties:["--margin-top"],propValues:np,value:e.mt}),[c,d]=Nf({className:"rt-r-mr",customProperties:["--margin-right"],propValues:np,value:e.mr}),[f,p]=Nf({className:"rt-r-mb",customProperties:["--margin-bottom"],propValues:np,value:e.mb}),[v,x]=Nf({className:"rt-r-ml",customProperties:["--margin-left"],propValues:np,value:e.ml});return[gt(t,r,o,s,c,f,v),Cy(n,i,a,l,d,p,x)]}const E4=m.forwardRef((e,t)=>{const{rest:n,...r}=WCe(e),[i,o]=VCe(r),{asChild:a,children:s,className:l,style:c,type:d,scrollHideDelay:f=d!=="scroll"?0:void 0,dir:p,size:v=Ny.size.default,radius:x=Ny.radius.default,scrollbars:y=Ny.scrollbars.default,...b}=n;return m.createElement(sH,{type:d,scrollHideDelay:f,className:gt("rt-ScrollAreaRoot",i,l),style:Cy(o,c),asChild:a},PZ({asChild:a,children:s},w=>m.createElement(m.Fragment,null,m.createElement(lH,{...b,ref:t,className:"rt-ScrollAreaViewport"},w),m.createElement("div",{className:"rt-ScrollAreaViewportFocusRing"}),y!=="vertical"?m.createElement(v7,{"data-radius":x,orientation:"horizontal",className:gt("rt-ScrollAreaScrollbar",Sy({className:"rt-r-size",value:v,propValues:Ny.size.values}))},m.createElement(y7,{className:"rt-ScrollAreaThumb"})):null,y!=="horizontal"?m.createElement(v7,{"data-radius":x,orientation:"vertical",className:gt("rt-ScrollAreaScrollbar",Sy({className:"rt-r-size",value:v,propValues:Ny.size.values}))},m.createElement(y7,{className:"rt-ScrollAreaThumb"})):null,y==="both"?m.createElement(r5e,{className:"rt-ScrollAreaCorner"}):null)))});E4.displayName="ScrollArea";const HCe=["1","2"],ZCe=["solid","soft"],$y={size:{type:"enum",className:"rt-r-size",values:HCe,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:ZCe,default:"solid"},...Oa,...Ef},qCe={...el,...Oa},GCe={...Oa},YCe={...Oa},WZ=e=>m.createElement(AB,{...e,modal:!0});WZ.displayName="Dialog.Root";const VZ=m.forwardRef(({children:e,...t},n)=>m.createElement(p4e,{...t,ref:n,asChild:!0},H0(e)));VZ.displayName="Dialog.Trigger";const HZ=m.forwardRef(({align:e,...t},n)=>{const{align:r,...i}=BSe,{className:o}=er({align:e},{align:r}),{className:a,forceMount:s,container:l,...c}=er(t,i);return m.createElement(FB,{container:l,forceMount:s},m.createElement($f,{asChild:!0},m.createElement(UB,{className:"rt-BaseDialogOverlay rt-DialogOverlay"},m.createElement("div",{className:"rt-BaseDialogScroll rt-DialogScroll"},m.createElement("div",{className:`rt-BaseDialogScrollPadding rt-DialogScrollPadding ${o}`},m.createElement(BB,{...c,ref:n,className:gt("rt-BaseDialogContent","rt-DialogContent",a)}))))))});HZ.displayName="Dialog.Content";const ZZ=m.forwardRef((e,t)=>m.createElement(m4e,{asChild:!0},m.createElement(MZ,{size:"5",mb:"3",trim:"start",...e,asChild:!1,ref:t})));ZZ.displayName="Dialog.Title";const KCe=m.forwardRef((e,t)=>m.createElement(g4e,{asChild:!0},m.createElement(Z,{as:"p",size:"3",...e,asChild:!1,ref:t})));KCe.displayName="Dialog.Description";const qZ=m.forwardRef(({children:e,...t},n)=>m.createElement(v4e,{...t,ref:n,asChild:!0},H0(e)));qZ.displayName="Dialog.Close";const GZ=e=>m.createElement(bV,{...e});GZ.displayName="DropdownMenu.Root";const YZ=m.forwardRef(({children:e,...t},n)=>m.createElement(xV,{...t,ref:n,asChild:!0},H0(e)));YZ.displayName="DropdownMenu.Trigger";const KZ=m.createContext({}),XZ=m.forwardRef((e,t)=>{const n=RZ(),{size:r=$y.size.default,variant:i=$y.variant.default,highContrast:o=$y.highContrast.default}=e,{className:a,children:s,color:l,container:c,forceMount:d,...f}=er(e,$y),p=l||n.accentColor;return m.createElement(s7,{container:c,forceMount:d},m.createElement($f,{asChild:!0},m.createElement(_V,{"data-accent-color":p,align:"start",sideOffset:4,collisionPadding:10,...f,asChild:!1,ref:t,className:gt("rt-PopperContent","rt-BaseMenuContent","rt-DropdownMenuContent",a)},m.createElement(E4,{type:"auto"},m.createElement("div",{className:gt("rt-BaseMenuViewport","rt-DropdownMenuViewport")},m.createElement(KZ.Provider,{value:m.useMemo(()=>({size:r,variant:i,color:p,highContrast:o}),[r,i,p,o])},s))))))});XZ.displayName="DropdownMenu.Content";const XCe=m.forwardRef(({className:e,...t},n)=>m.createElement(m6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuLabel","rt-DropdownMenuLabel",e)}));XCe.displayName="DropdownMenu.Label";const JZ=m.forwardRef((e,t)=>{const{className:n,children:r,color:i=qCe.color.default,shortcut:o,...a}=e;return m.createElement(wV,{"data-accent-color":i,...a,ref:t,className:gt("rt-reset","rt-BaseMenuItem","rt-DropdownMenuItem",n)},m.createElement(M2e,null,r),o&&m.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},o))});JZ.displayName="DropdownMenu.Item";const JCe=m.forwardRef(({className:e,...t},n)=>m.createElement(p6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuGroup","rt-DropdownMenuGroup",e)}));JCe.displayName="DropdownMenu.Group";const QCe=m.forwardRef(({className:e,...t},n)=>m.createElement(v6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuRadioGroup","rt-DropdownMenuRadioGroup",e)}));QCe.displayName="DropdownMenu.RadioGroup";const eje=m.forwardRef((e,t)=>{const{children:n,className:r,color:i=YCe.color.default,...o}=e;return m.createElement(y6e,{...o,asChild:!1,ref:t,"data-accent-color":i,className:gt("rt-BaseMenuItem","rt-BaseMenuRadioItem","rt-DropdownMenuItem","rt-DropdownMenuRadioItem",r)},n,m.createElement(kV,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},m.createElement(I4,{className:"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon"})))});eje.displayName="DropdownMenu.RadioItem";const tje=m.forwardRef((e,t)=>{const{children:n,className:r,shortcut:i,color:o=GCe.color.default,...a}=e;return m.createElement(g6e,{...a,asChild:!1,ref:t,"data-accent-color":o,className:gt("rt-BaseMenuItem","rt-BaseMenuCheckboxItem","rt-DropdownMenuItem","rt-DropdownMenuCheckboxItem",r)},n,m.createElement(kV,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},m.createElement(I4,{className:"rt-BaseMenuItemIndicatorIcon rt-ContextMenuItemIndicatorIcon"})),i&&m.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},i))});tje.displayName="DropdownMenu.CheckboxItem";const nje=m.forwardRef((e,t)=>{const{className:n,children:r,...i}=e;return m.createElement(x6e,{...i,asChild:!1,ref:t,className:gt("rt-BaseMenuItem","rt-BaseMenuSubTrigger","rt-DropdownMenuItem","rt-DropdownMenuSubTrigger",n)},r,m.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},m.createElement(UZ,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubtriggerIcon"})))});nje.displayName="DropdownMenu.SubTrigger";const rje=m.forwardRef((e,t)=>{const{size:n,variant:r,color:i,highContrast:o}=m.useContext(KZ),{className:a,children:s,container:l,forceMount:c,...d}=er({size:n,variant:r,color:i,highContrast:o,...e},$y);return m.createElement(s7,{container:l,forceMount:c},m.createElement($f,{asChild:!0},m.createElement(_6e,{"data-accent-color":i,alignOffset:-Number(n)*4,sideOffset:1,collisionPadding:10,...d,asChild:!1,ref:t,className:gt("rt-PopperContent","rt-BaseMenuContent","rt-BaseMenuSubContent","rt-DropdownMenuContent","rt-DropdownMenuSubContent",a)},m.createElement(E4,{type:"auto"},m.createElement("div",{className:gt("rt-BaseMenuViewport","rt-DropdownMenuViewport")},s)))))});rje.displayName="DropdownMenu.SubContent";const ije=m.forwardRef(({className:e,...t},n)=>m.createElement(b6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuSeparator","rt-DropdownMenuSeparator",e)}));ije.displayName="DropdownMenu.Separator";const nl=m.forwardRef(({className:e,...t},n)=>m.createElement(B7,{...t,ref:n,className:gt("rt-IconButton",e)}));nl.displayName="IconButton";const oje=["1","2","3","4"],aje={...el,size:{type:"enum",className:"rt-r-size",values:oje,default:"2",responsive:!0},width:tl.width,minWidth:tl.minWidth,maxWidth:{...tl.maxWidth,default:"480px"},...C4},QZ=e=>m.createElement(u7,{...e});QZ.displayName="Popover.Root";const eq=m.forwardRef(({children:e,...t},n)=>m.createElement(AV,{...t,ref:n,asChild:!0},H0(e)));eq.displayName="Popover.Trigger";const tq=m.forwardRef((e,t)=>{const{className:n,forceMount:r,container:i,...o}=er(e,aje);return m.createElement(c7,{container:i,forceMount:r},m.createElement($f,{asChild:!0},m.createElement(d7,{align:"start",sideOffset:8,collisionPadding:10,...o,ref:t,className:gt("rt-PopperContent","rt-PopoverContent",n)})))});tq.displayName="Popover.Content";const sje=m.forwardRef(({children:e,...t},n)=>m.createElement(P6e,{...t,ref:n,asChild:!0},H0(e)));sje.displayName="Popover.Close";const lje=m.forwardRef(({children:e,...t},n)=>m.createElement(DV,{...t,ref:n}));lje.displayName="Popover.Anchor";const uje=["1","2","3"],cje=["classic","surface","soft"],dje={size:{type:"enum",className:"rt-r-size",values:uje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:cje,default:"surface"},...Oa,...Ef,...ep,duration:{type:"string"}},N4=m.forwardRef((e,t)=>{const{className:n,style:r,color:i,radius:o,duration:a,...s}=er(e,dje,So);return m.createElement(W6e,{"data-accent-color":i,"data-radius":o,ref:t,className:gt("rt-ProgressRoot",n),style:Cy({"--progress-duration":"value"in s?void 0:a,"--progress-value":"value"in s?s.value:void 0,"--progress-max":"max"in s?s.max:void 0},r),...s,asChild:!1},m.createElement(V6e,{className:"rt-ProgressIndicator"}))});N4.displayName="Progress";const Z0=m.forwardRef(({className:e,children:t,...n},r)=>m.createElement(xf,{...n,ref:r,className:gt("rt-reset",e)},H0(t)));Z0.displayName="Reset";const fje=["1","2","3"],V7={size:{type:"enum",className:"rt-r-size",values:fje,default:"2",responsive:!0}},hje=["classic","surface","soft","ghost"],pje={variant:{type:"enum",className:"rt-variant",values:hje,default:"surface"},...Oa,...ep,placeholder:{type:"string"}},mje=["solid","soft"],gje={variant:{type:"enum",className:"rt-variant",values:mje,default:"solid"},...Oa,...Ef},H7=m.createContext({}),Z7=e=>{const{children:t,size:n=V7.size.default,...r}=e;return m.createElement(T5e,{...r},m.createElement(H7.Provider,{value:m.useMemo(()=>({size:n}),[n])},t))};Z7.displayName="Select.Root";const q7=m.forwardRef((e,t)=>{const n=m.useContext(H7),{children:r,className:i,color:o,radius:a,placeholder:s,...l}=er({size:n==null?void 0:n.size,...e},{size:V7.size},pje,So);return m.createElement(I5e,{asChild:!0},m.createElement("button",{"data-accent-color":o,"data-radius":a,...l,ref:t,className:gt("rt-reset","rt-SelectTrigger",i)},m.createElement("span",{className:"rt-SelectTriggerInner"},m.createElement(E5e,{placeholder:s},r)),m.createElement(N5e,{asChild:!0},m.createElement(W7,{className:"rt-SelectIcon"}))))});q7.displayName="Select.Trigger";const G7=m.forwardRef((e,t)=>{const n=m.useContext(H7),{className:r,children:i,color:o,container:a,...s}=er({size:n==null?void 0:n.size,...e},{size:V7.size},gje),l=RZ(),c=o||l.accentColor;return m.createElement($5e,{container:a},m.createElement($f,{asChild:!0},m.createElement(M5e,{"data-accent-color":c,sideOffset:4,...s,asChild:!1,ref:t,className:gt({"rt-PopperContent":s.position==="popper"},"rt-SelectContent",r)},m.createElement(sH,{type:"auto",className:"rt-ScrollAreaRoot"},m.createElement(R5e,{asChild:!0,className:"rt-SelectViewport"},m.createElement(lH,{className:"rt-ScrollAreaViewport",style:{overflowY:void 0}},i)),m.createElement(v7,{className:"rt-ScrollAreaScrollbar rt-r-size-1",orientation:"vertical"},m.createElement(y7,{className:"rt-ScrollAreaThumb"}))))))});G7.displayName="Select.Content";const My=m.forwardRef((e,t)=>{const{className:n,children:r,...i}=e;return m.createElement(O5e,{...i,asChild:!1,ref:t,className:gt("rt-SelectItem",n)},m.createElement(D5e,{className:"rt-SelectItemIndicator"},m.createElement(I4,{className:"rt-SelectItemIndicatorIcon"})),m.createElement(z5e,null,r))});My.displayName="Select.Item";const Y7=m.forwardRef(({className:e,...t},n)=>m.createElement(L5e,{...t,asChild:!1,ref:n,className:gt("rt-SelectGroup",e)}));Y7.displayName="Select.Group";const vje=m.forwardRef(({className:e,...t},n)=>m.createElement(P5e,{...t,asChild:!1,ref:n,className:gt("rt-SelectLabel",e)}));vje.displayName="Select.Label";const yje=m.forwardRef(({className:e,...t},n)=>m.createElement(A5e,{...t,asChild:!1,ref:n,className:gt("rt-SelectSeparator",e)}));yje.displayName="Select.Separator";const bje=["horizontal","vertical"],xje=["1","2","3","4"],_je={orientation:{type:"enum",className:"rt-r-orientation",values:bje,default:"horizontal",responsive:!0},size:{type:"enum",className:"rt-r-size",values:xje,default:"1",responsive:!0},color:{...Oa.color,default:"gray"},decorative:{type:"boolean",default:!0}},ps=m.forwardRef((e,t)=>{const{className:n,color:r,decorative:i,...o}=er(e,_je,So);return m.createElement("span",{"data-accent-color":r,role:i?void 0:"separator",...o,ref:t,className:gt("rt-Separator",n)})});ps.displayName="Separator";const wje=["1","2","3"],kje=["classic","surface","soft"],Sje={size:{type:"enum",className:"rt-r-size",values:wje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:kje,default:"surface"},...Oa,...Ef,...ep},nq=m.forwardRef((e,t)=>{const{className:n,color:r,radius:i,tabIndex:o,...a}=er(e,Sje,So);return m.createElement(KH,{"data-accent-color":r,"data-radius":i,ref:t,...a,asChild:!1,className:gt("rt-SliderRoot",n)},m.createElement(XH,{className:"rt-SliderTrack"},m.createElement(nSe,{className:gt("rt-SliderRange",{"rt-high-contrast":e.highContrast}),"data-inverted":a.inverted?"":void 0})),(a.value??a.defaultValue??[]).map((s,l)=>m.createElement(JH,{key:l,className:"rt-SliderThumb",...o!==void 0?{tabIndex:o}:void 0})))});nq.displayName="Slider";const Cje=["1","2","3"],jje=["classic","surface","soft"],Tje={size:{type:"enum",className:"rt-r-size",values:Cje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:jje,default:"surface"},...Oa,...Ef,...ep},K7=m.forwardRef((e,t)=>{const{className:n,color:r,radius:i,...o}=er(e,Tje,So);return m.createElement(lSe,{"data-accent-color":r,"data-radius":i,...o,asChild:!1,ref:t,className:gt("rt-reset","rt-SwitchRoot",n)},m.createElement(uSe,{className:gt("rt-SwitchThumb",{"rt-high-contrast":e.highContrast})}))});K7.displayName="Switch";const Ije=["1","2","3"],Eje=["surface","ghost"],Nje=["auto","fixed"],X7={size:{type:"enum",className:"rt-r-size",values:Ije,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:Eje,default:"ghost"},layout:{type:"enum",className:"rt-r-tl",values:Nje,responsive:!0}},$je=["start","center","end","baseline"],Mje={align:{type:"enum",className:"rt-r-va",values:$je,parseValue:Rje,responsive:!0}};function Rje(e){return{baseline:"baseline",start:"top",center:"middle",end:"bottom"}[e]}const Lje=["start","center","end"],J7={justify:{type:"enum",className:"rt-r-ta",values:Lje,parseValue:Pje,responsive:!0},...tl,...jy};function Pje(e){return{start:"left",center:"center",end:"right"}[e]}const q0=m.forwardRef((e,t)=>{const{layout:n,...r}=X7,{className:i,children:o,layout:a,...s}=er(e,r,So),l=Sy({value:a,className:X7.layout.className,propValues:X7.layout.values});return m.createElement("div",{ref:t,className:gt("rt-TableRoot",i),...s},m.createElement(E4,null,m.createElement("table",{className:gt("rt-TableRootTable",l)},o)))});q0.displayName="Table.Root";const rp=m.forwardRef(({className:e,...t},n)=>m.createElement("thead",{...t,ref:n,className:gt("rt-TableHeader",e)}));rp.displayName="Table.Header";const G0=m.forwardRef(({className:e,...t},n)=>m.createElement("tbody",{...t,ref:n,className:gt("rt-TableBody",e)}));G0.displayName="Table.Body";const la=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,Mje);return m.createElement("tr",{...r,ref:t,className:gt("rt-TableRow",n)})});la.displayName="Table.Row";const ni=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,J7);return m.createElement("td",{className:gt("rt-TableCell",n),ref:t,...r})});ni.displayName="Table.Cell";const Wi=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,J7);return m.createElement("th",{className:gt("rt-TableCell","rt-TableColumnHeaderCell",n),scope:"col",ref:t,...r})});Wi.displayName="Table.ColumnHeaderCell";const $4=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,J7);return m.createElement("th",{className:gt("rt-TableCell","rt-TableRowHeaderCell",n),scope:"row",ref:t,...r})});$4.displayName="Table.RowHeaderCell";const Oje=["1","2","3"],zje=["classic","surface","soft"],Dje={size:{type:"enum",className:"rt-r-size",values:Oje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:zje,default:"surface"},...Oa,...ep},Aje=["left","right"],Fje={side:{type:"enum",values:Aje},...Oa,gap:DZ.gap,px:jy.px,pl:jy.pl,pr:jy.pr},Q7=m.forwardRef((e,t)=>{const n=m.useRef(null),{children:r,className:i,color:o,radius:a,style:s,...l}=er(e,Dje,So);return m.createElement("div",{"data-accent-color":o,"data-radius":a,style:s,className:gt("rt-TextFieldRoot",i),onPointerDown:c=>{const d=c.target;if(d.closest("input, button, a"))return;const f=n.current;if(!f)return;const p=d.closest(` + .rt-TextFieldSlot[data-side='right'], + .rt-TextFieldSlot:not([data-side='right']) ~ .rt-TextFieldSlot:not([data-side='left']) + `)?f.value.length:0;requestAnimationFrame(()=>{try{f.setSelectionRange(p,p)}catch{}f.focus()})}},m.createElement("input",{spellCheck:"false",...l,ref:zl(n,t),className:"rt-reset rt-TextFieldInput"}),r)});Q7.displayName="TextField.Root";const M4=m.forwardRef((e,t)=>{const{className:n,color:r,side:i,...o}=er(e,Fje);return m.createElement("div",{"data-accent-color":r,"data-side":i,...o,ref:t,className:gt("rt-TextFieldSlot",n)})});M4.displayName="TextField.Slot";const Uje={content:{type:"ReactNode",required:!0},width:tl.width,minWidth:tl.minWidth,maxWidth:{...tl.maxWidth,default:"360px"}},ci=m.forwardRef((e,t)=>{const{children:n,className:r,open:i,defaultOpen:o,onOpenChange:a,delayDuration:s,disableHoverableContent:l,content:c,container:d,forceMount:f,...p}=er(e,Uje),v={open:i,defaultOpen:o,onOpenChange:a,delayDuration:s,disableHoverableContent:l};return m.createElement(PSe,{...v},m.createElement(OSe,{asChild:!0},n),m.createElement(zSe,{container:d,forceMount:f},m.createElement($f,{asChild:!0},m.createElement(DSe,{sideOffset:4,collisionPadding:10,...p,asChild:!1,ref:t,className:gt("rt-TooltipContent",r)},m.createElement(Z,{as:"p",className:"rt-TooltipText",size:"1"},c),m.createElement(ASe,{className:"rt-TooltipArrow"})))))});ci.displayName="Tooltip";const eT=new WeakMap,Bje=new WeakMap,R4={current:[]};let tT=!1,Ry=0;const Ly=new Set,L4=new Map;function rq(e){for(const t of e){if(R4.current.includes(t))continue;R4.current.push(t),t.recompute();const n=Bje.get(t);if(n)for(const r of n){const i=eT.get(r);i!=null&&i.length&&rq(i)}}}function Wje(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function Vje(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function iq(e){if(Ry>0&&!L4.has(e)&&L4.set(e,e.prevState),Ly.add(e),!(Ry>0)&&!tT)try{for(tT=!0;Ly.size>0;){const t=Array.from(Ly);Ly.clear();for(const n of t){const r=L4.get(n)??n.prevState;n.prevState=r,Wje(n)}for(const n of t){const r=eT.get(n);r&&(R4.current.push(n),rq(r))}for(const n of t){const r=eT.get(n);if(r)for(const i of r)Vje(i)}}}finally{tT=!1,R4.current=[],L4.clear()}}function Py(e){Ry++;try{e()}finally{if(Ry--,Ry===0){const t=Ly.values().next().value;t&&iq(t)}}}function Hje(e){return typeof e=="function"}class Zje{constructor(t,n){this.listeners=new Set,this.subscribe=r=>{var i,o;this.listeners.add(r);const a=(o=(i=this.options)==null?void 0:i.onSubscribe)==null?void 0:o.call(i,r,this);return()=>{this.listeners.delete(r),a==null||a()}},this.prevState=t,this.state=t,this.options=n}setState(t){var n,r,i;this.prevState=this.state,(n=this.options)!=null&&n.updateFn?this.state=this.options.updateFn(this.prevState)(t):Hje(t)?this.state=t(this.prevState):this.state=t,(i=(r=this.options)==null?void 0:r.onUpdate)==null||i.call(r),iq(this)}}const Mf="__TSR_index",oq="popstate",aq="beforeunload";function qje(e){let t=e.getLocation();const n=new Set,r=a=>{t=e.getLocation(),n.forEach(s=>s({location:t,action:a}))},i=a=>{e.notifyOnIndexChange??!0?r(a):t=e.getLocation()},o=async({task:a,navigateOpts:s,...l})=>{var f,p;if((s==null?void 0:s.ignoreBlocker)??!1){a();return}const c=((f=e.getBlockers)==null?void 0:f.call(e))??[],d=l.type==="PUSH"||l.type==="REPLACE";if(typeof document<"u"&&c.length&&d)for(const v of c){const x=P4(l.path,l.state);if(await v.blockerFn({currentLocation:t,nextLocation:x,action:l.type})){(p=e.onBlocked)==null||p.call(e);return}}a()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:a=>(n.add(a),()=>{n.delete(a)}),push:(a,s,l)=>{const c=t.state[Mf];s=sq(c+1,s),o({task:()=>{e.pushState(a,s),r({type:"PUSH"})},navigateOpts:l,type:"PUSH",path:a,state:s})},replace:(a,s,l)=>{const c=t.state[Mf];s=sq(c,s),o({task:()=>{e.replaceState(a,s),r({type:"REPLACE"})},navigateOpts:l,type:"REPLACE",path:a,state:s})},go:(a,s)=>{o({task:()=>{e.go(a),i({type:"GO",index:a})},navigateOpts:s,type:"GO"})},back:a=>{o({task:()=>{e.back((a==null?void 0:a.ignoreBlocker)??!1),i({type:"BACK"})},navigateOpts:a,type:"BACK"})},forward:a=>{o({task:()=>{e.forward((a==null?void 0:a.ignoreBlocker)??!1),i({type:"FORWARD"})},navigateOpts:a,type:"FORWARD"})},canGoBack:()=>t.state[Mf]!==0,createHref:a=>e.createHref(a),block:a=>{var l;if(!e.setBlockers)return()=>{};const s=((l=e.getBlockers)==null?void 0:l.call(e))??[];return e.setBlockers([...s,a]),()=>{var d,f;const c=((d=e.getBlockers)==null?void 0:d.call(e))??[];(f=e.setBlockers)==null||f.call(e,c.filter(p=>p!==a))}},flush:()=>{var a;return(a=e.flush)==null?void 0:a.call(e)},destroy:()=>{var a;return(a=e.destroy)==null?void 0:a.call(e)},notify:r}}function sq(e,t){t||(t={});const n=nT();return{...t,key:n,__TSR_key:n,[Mf]:e}}function Gje(e){var $,D;const t=typeof document<"u"?window:void 0,n=t.history.pushState,r=t.history.replaceState;let i=[];const o=()=>i,a=M=>i=M,s=M=>M,l=()=>P4(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state);if(!(($=t.history.state)!=null&&$.__TSR_key)&&!((D=t.history.state)!=null&&D.key)){const M=nT();t.history.replaceState({[Mf]:0,key:M,__TSR_key:M},"")}let c=l(),d,f=!1,p=!1,v=!1,x=!1;const y=()=>c;let b,w;const _=()=>{b&&(E._ignoreSubscribers=!0,(b.isPush?t.history.pushState:t.history.replaceState)(b.state,"",b.href),E._ignoreSubscribers=!1,b=void 0,w=void 0,d=void 0)},S=(M,O,te)=>{const q=s(O);w||(d=c),c=P4(O,te),b={href:q,state:te,isPush:(b==null?void 0:b.isPush)||M==="push"},w||(w=Promise.resolve().then(()=>_()))},C=M=>{c=l(),E.notify({type:M})},j=async()=>{if(p){p=!1;return}const M=l(),O=M.state[Mf]-c.state[Mf],te=O===1,q=O===-1,P=!te&&!q||f;f=!1;const X=P?"GO":q?"BACK":"FORWARD",A=P?{type:"GO",index:O}:{type:q?"BACK":"FORWARD"};if(v)v=!1;else{const Y=o();if(typeof document<"u"&&Y.length){for(const F of Y)if(await F.blockerFn({currentLocation:c,nextLocation:M,action:X})){p=!0,t.history.go(1),E.notify(A);return}}}c=l(),E.notify(A)},T=M=>{if(x){x=!1;return}let O=!1;const te=o();if(typeof document<"u"&&te.length)for(const q of te){const P=q.enableBeforeUnload??!0;if(P===!0){O=!0;break}if(typeof P=="function"&&P()===!0){O=!0;break}}if(O)return M.preventDefault(),M.returnValue=""},E=qje({getLocation:y,getLength:()=>t.history.length,pushState:(M,O)=>S("push",M,O),replaceState:(M,O)=>S("replace",M,O),back:M=>(M&&(v=!0),x=!0,t.history.back()),forward:M=>{M&&(v=!0),x=!0,t.history.forward()},go:M=>{f=!0,t.history.go(M)},createHref:M=>s(M),flush:_,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(aq,T,{capture:!0}),t.removeEventListener(oq,j)},onBlocked:()=>{d&&c!==d&&(c=d)},getBlockers:o,setBlockers:a,notifyOnIndexChange:!1});return t.addEventListener(aq,T,{capture:!0}),t.addEventListener(oq,j),t.history.pushState=function(...M){const O=n.apply(t.history,M);return E._ignoreSubscribers||C("PUSH"),O},t.history.replaceState=function(...M){const O=r.apply(t.history,M);return E._ignoreSubscribers||C("REPLACE"),O},E}function P4(e,t){const n=e.indexOf("#"),r=e.indexOf("?"),i=nT();return{href:e,pathname:e.substring(0,n>0?r>0?Math.min(n,r):n:r>0?r:e.length),hash:n>-1?e.substring(n):"",search:r>-1?e.slice(r,n===-1?void 0:n):"",state:t||{[Mf]:0,key:i,__TSR_key:i}}}function nT(){return(Math.random()+1).toString(36).substring(7)}function rT(e){return e[e.length-1]}function Yje(e){return typeof e=="function"}function ip(e,t){return Yje(e)?e(t):e}const Kje=Object.prototype.hasOwnProperty;function Bl(e,t){if(e===t)return e;const n=t,r=cq(e)&&cq(n);if(!r&&!(O4(e)&&O4(n)))return n;const i=r?e:lq(e);if(!i)return n;const o=r?n:lq(n);if(!o)return n;const a=i.length,s=o.length,l=r?new Array(s):{};let c=0;for(let d=0;d"u")return!0;const n=t.prototype;return!(!uq(n)||!n.hasOwnProperty("isPrototypeOf"))}function uq(e){return Object.prototype.toString.call(e)==="[object Object]"}function cq(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Rf(e,t,n){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0,i=e.length;ri||!Rf(e[a],t[a],n)))return!1;return i===o}return!1}function Y0(e){let t,n;const r=new Promise((i,o)=>{t=i,n=o});return r.status="pending",r.resolve=i=>{r.status="resolved",r.value=i,t(i),e==null||e(i)},r.reject=i=>{r.status="rejected",n(i)},r}function Lf(e){return!!(e&&typeof e=="object"&&typeof e.then=="function")}const Xje=Array.from(new Map([["%","%25"],["\\","%5C"]]).values());function dq(e,t=Xje){function n(i,o,a=0){for(let s=a;s{try{return decodeURI(s)}catch{return s}})}}if(e===""||!/%[0-9A-Fa-f]{2}/g.test(e))return e;const r=e.replaceAll(/%[0-9a-f]{2}/g,i=>i.toUpperCase());return n(r,t)}var Jje="Invariant failed";function Qc(e,t){if(!e)throw new Error(Jje)}const Wu=0,op=1,K0=2,X0=3;function ed(e){return iT(e.filter(t=>t!==void 0).join("/"))}function iT(e){return e.replace(/\/{2,}/g,"/")}function oT(e){return e==="/"?e:e.replace(/^\/{1,}/,"")}function Pf(e){return e==="/"?e:e.replace(/\/{1,}$/,"")}function z4(e){return Pf(oT(e))}function D4(e,t){return e!=null&&e.endsWith("/")&&e!=="/"&&e!==`${t}/`?e.slice(0,-1):e}function Qje(e,t,n){return D4(e,n)===D4(t,n)}function e8e(e){const{type:t,value:n}=e;if(t===Wu)return n;const{prefixSegment:r,suffixSegment:i}=e;if(t===op){const o=n.substring(1);if(r&&i)return`${r}{$${o}}${i}`;if(r)return`${r}{$${o}}`;if(i)return`{$${o}}${i}`}if(t===X0){const o=n.substring(1);return r&&i?`${r}{-$${o}}${i}`:r?`${r}{-$${o}}`:i?`{-$${o}}${i}`:`{-$${o}}`}if(t===K0){if(r&&i)return`${r}{$}${i}`;if(r)return`${r}{$}`;if(i)return`{$}${i}`}return n}function t8e({base:e,to:t,trailingSlash:n="never",parseCache:r}){var s;let i=J0(e,r).slice();const o=J0(t,r);i.length>1&&((s=rT(i))==null?void 0:s.value)==="/"&&i.pop();for(let l=0,c=o.length;l1&&(rT(i).value==="/"?n==="never"&&i.pop():n==="always"&&i.push({type:Wu,value:"/"}));const a=i.map(e8e);return ed(a)}const J0=(e,t)=>{if(!e)return[];const n=t==null?void 0:t.get(e);if(n)return n;const r=s8e(e);return t==null||t.set(e,r),r},n8e=/^\$.{1,}$/,r8e=/^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,i8e=/^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,o8e=/^\$$/,a8e=/^(.*?)\{\$\}(.*)$/;function s8e(e){e=iT(e);const t=[];if(e.slice(0,1)==="/"&&(e=e.substring(1),t.push({type:Wu,value:"/"})),!e)return t;const n=e.split("/").filter(Boolean);return t.push(...n.map(r=>{const i=r.match(a8e);if(i){const s=i[1],l=i[2];return{type:K0,value:"$",prefixSegment:s||void 0,suffixSegment:l||void 0}}const o=r.match(i8e);if(o){const s=o[1],l=o[2],c=o[3];return{type:X0,value:l,prefixSegment:s||void 0,suffixSegment:c||void 0}}const a=r.match(r8e);if(a){const s=a[1],l=a[2],c=a[3];return{type:op,value:""+l,prefixSegment:s||void 0,suffixSegment:c||void 0}}if(n8e.test(r)){const s=r.substring(1);return{type:op,value:"$"+s,prefixSegment:void 0,suffixSegment:void 0}}return o8e.test(r)?{type:K0,value:"$",prefixSegment:void 0,suffixSegment:void 0}:{type:Wu,value:r}})),e.slice(-1)==="/"&&(e=e.substring(1),t.push({type:Wu,value:"/"})),t}function aT({path:e,params:t,leaveParams:n,decodeCharMap:r,parseCache:i}){const o=J0(e,i);function a(d){const f=t[d],p=typeof f=="string";return d==="*"||d==="_splat"?p?encodeURI(f):f:p?l8e(f,r):f}let s=!1;const l={},c=ed(o.map(d=>{if(d.type===Wu)return d.value;if(d.type===K0){l._splat=t._splat,l["*"]=t._splat;const f=d.prefixSegment||"",p=d.suffixSegment||"";if(!t._splat)return s=!0,f||p?`${f}${p}`:void 0;const v=a("_splat");return`${f}${v}${p}`}if(d.type===op){const f=d.value.substring(1);!s&&!(f in t)&&(s=!0),l[f]=t[f];const p=d.prefixSegment||"",v=d.suffixSegment||"";if(n){const x=a(d.value);return`${p}${d.value}${x??""}${v}`}return`${p}${a(f)??"undefined"}${v}`}if(d.type===X0){const f=d.value.substring(1),p=d.prefixSegment||"",v=d.suffixSegment||"";if(!(f in t)||t[f]==null)return p||v?`${p}${v}`:void 0;if(l[f]=t[f],n){const x=a(d.value);return`${p}${d.value}${x??""}${v}`}return`${p}${a(f)??""}${v}`}return d.value}));return{usedParams:l,interpolatedPath:c,isMissingParams:s}}function l8e(e,t){let n=encodeURIComponent(e);if(t)for(const[r,i]of t)n=n.replaceAll(r,i);return n}function sT(e,t,n){const r=u8e(e,t,n);if(!(t.to&&!r))return r??{}}function u8e(e,{to:t,fuzzy:n,caseSensitive:r},i){const o=t,a=J0(e.startsWith("/")?e:`/${e}`,i),s=J0(o.startsWith("/")?o:`/${o}`,i),l={};return c8e(a,s,l,n,r)?l:void 0}function c8e(e,t,n,r,i){var s,l,c;let o=0,a=0;for(;o_.value)));x&&w.startsWith(x)&&(w=w.slice(x.length)),y&&w.endsWith(y)&&(w=w.slice(0,w.length-y.length)),v=w}else v=decodeURI(ed(p.map(x=>x.value)));return n["*"]=v,n._splat=v,!0}if(f.type===Wu){if(f.value==="/"&&!(d!=null&&d.value)){a++;continue}if(d){if(i){if(f.value!==d.value)return!1}else if(f.value.toLowerCase()!==d.value.toLowerCase())return!1;o++,a++;continue}else return!1}if(f.type===op){if(!d||d.value==="/")return!1;let p="",v=!1;if(f.prefixSegment||f.suffixSegment){const x=f.prefixSegment||"",y=f.suffixSegment||"",b=d.value;if(x&&!b.startsWith(x)||y&&!b.endsWith(y))return!1;let w=b;x&&w.startsWith(x)&&(w=w.slice(x.length)),y&&w.endsWith(y)&&(w=w.slice(0,w.length-y.length)),p=decodeURIComponent(w),v=!0}else p=decodeURIComponent(d.value),v=!0;v&&(n[f.value.substring(1)]=p,o++),a++;continue}if(f.type===X0){if(!d){a++;continue}if(d.value==="/"){a++;continue}let p="",v=!1;if(f.prefixSegment||f.suffixSegment){const x=f.prefixSegment||"",y=f.suffixSegment||"",b=d.value;if((!x||b.startsWith(x))&&(!y||b.endsWith(y))){let w=b;x&&w.startsWith(x)&&(w=w.slice(x.length)),y&&w.endsWith(y)&&(w=w.slice(0,w.length-y.length)),p=decodeURIComponent(w),v=!0}}else{let x=!0;for(let y=a+1;y=t.length)return n["**"]=ed(e.slice(o).map(p=>p.value)),!!r&&((l=t[t.length-1])==null?void 0:l.value)!=="/";if(a=e.length){for(let p=a;p{var d;if(n.isRoot||!n.path)return;const i=oT(n.fullPath);let o=J0(i),a=0;for(;o.length>a+1&&((d=o[a])==null?void 0:d.value)==="/";)a++;a>0&&(o=o.slice(a));let s=0,l=!1;const c=o.map((f,p)=>{if(f.value==="/")return d8e;if(f.type===Wu)return f8e;let v;f.type===op?v=h8e:f.type===X0?(v=p8e,s++):v=m8e;for(let x=p+1;x{const i=Math.min(n.scores.length,r.scores.length);for(let o=0;or.parsed[o].value?1:-1;return n.index-r.index}).map((n,r)=>(n.child.rank=r,n.child))}function _8e({routeTree:e,initRoute:t}){const n={},r={},i=a=>{a.forEach((s,l)=>{t==null||t(s,l);const c=n[s.id];if(Qc(!c,`Duplicate routes found with id: ${String(s.id)}`),n[s.id]=s,!s.isRoot&&s.path){const f=Pf(s.fullPath);(!r[f]||s.fullPath.endsWith("/"))&&(r[f]=s)}const d=s.children;d!=null&&d.length&&i(d)})};i([e]);const o=x8e(Object.values(n));return{routesById:n,routesByPath:r,flatRoutes:o}}function Wl(e){return!!(e!=null&&e.isNotFound)}function w8e(){try{if(typeof window<"u"&&typeof window.sessionStorage=="object")return window.sessionStorage}catch{}}const A4="tsr-scroll-restoration-v1_3",k8e=(e,t)=>{let n;return(...r)=>{n||(n=setTimeout(()=>{e(...r),n=null},t))}};function S8e(){const e=w8e();if(!e)return null;const t=e.getItem(A4);let n=t?JSON.parse(t):{};return{state:n,set:r=>(n=ip(r,n)||n,e.setItem(A4,JSON.stringify(n)))}}const F4=S8e(),lT=e=>e.state.__TSR_key||e.href;function C8e(e){const t=[];let n;for(;n=e.parentNode;)t.push(`${e.tagName}:nth-child(${Array.prototype.indexOf.call(n.children,e)+1})`),e=n;return`${t.reverse().join(" > ")}`.toLowerCase()}let U4=!1;function mq({storageKey:e,key:t,behavior:n,shouldScrollRestoration:r,scrollToTopSelectors:i,location:o}){var c,d;let a;try{a=JSON.parse(sessionStorage.getItem(e)||"{}")}catch(f){console.error(f);return}const s=t||((c=window.history.state)==null?void 0:c.__TSR_key),l=a[s];U4=!0;e:{if(r&&l&&Object.keys(l).length>0){for(const v in l){const x=l[v];if(v==="window")window.scrollTo({top:x.scrollY,left:x.scrollX,behavior:n});else if(v){const y=document.querySelector(v);y&&(y.scrollLeft=x.scrollX,y.scrollTop=x.scrollY)}}break e}const f=(o??window.location).hash.split("#",2)[1];if(f){const v=((d=window.history.state)==null?void 0:d.__hashScrollIntoViewOptions)??!0;if(v){const x=document.getElementById(f);x&&x.scrollIntoView(v)}break e}const p={top:0,left:0,behavior:n};if(window.scrollTo(p),i)for(const v of i){if(v==="window")continue;const x=typeof v=="function"?v():document.querySelector(v);x&&x.scrollTo(p)}}U4=!1}function j8e(e,t){if(!F4&&!e.isServer||((e.options.scrollRestoration??!1)&&(e.isScrollRestoring=!0),e.isServer||e.isScrollRestorationSetup||!F4))return;e.isScrollRestorationSetup=!0,U4=!1;const n=e.options.getScrollRestorationKey||lT;window.history.scrollRestoration="manual";const r=i=>{if(U4||!e.isScrollRestoring)return;let o="";if(i.target===document||i.target===window)o="window";else{const s=i.target.getAttribute("data-scroll-restoration-id");s?o=`[data-scroll-restoration-id="${s}"]`:o=C8e(i.target)}const a=n(e.state.location);F4.set(s=>{const l=s[a]||(s[a]={}),c=l[o]||(l[o]={});if(o==="window")c.scrollX=window.scrollX||0,c.scrollY=window.scrollY||0;else if(o){const d=document.querySelector(o);d&&(c.scrollX=d.scrollLeft||0,c.scrollY=d.scrollTop||0)}return s})};typeof document<"u"&&document.addEventListener("scroll",k8e(r,100),!0),e.subscribe("onRendered",i=>{const o=n(i.toLocation);if(!e.resetNextScroll){e.resetNextScroll=!0;return}typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation})||(mq({storageKey:A4,key:o,behavior:e.options.scrollRestorationBehavior,shouldScrollRestoration:e.isScrollRestoring,scrollToTopSelectors:e.options.scrollToTopSelectors,location:e.history.location}),e.isScrollRestoring&&F4.set(a=>(a[o]||(a[o]={}),a)))})}function T8e(e){if(typeof document<"u"&&document.querySelector){const t=e.state.location.state.__hashScrollIntoViewOptions??!0;if(t&&e.state.location.hash!==""){const n=document.getElementById(e.state.location.hash);n&&n.scrollIntoView(t)}}}function I8e(e,t=String){const n=new URLSearchParams;for(const r in e){const i=e[r];i!==void 0&&n.set(r,t(i))}return n.toString()}function uT(e){return e?e==="false"?!1:e==="true"?!0:+e*0===0&&+e+""===e?+e:e:""}function E8e(e){const t=new URLSearchParams(e),n={};for(const[r,i]of t.entries()){const o=n[r];o==null?n[r]=uT(i):Array.isArray(o)?o.push(uT(i)):n[r]=[o,uT(i)]}return n}const N8e=M8e(JSON.parse),$8e=R8e(JSON.stringify,JSON.parse);function M8e(e){return t=>{t[0]==="?"&&(t=t.substring(1));const n=E8e(t);for(const r in n){const i=n[r];if(typeof i=="string")try{n[r]=e(i)}catch{}}return n}}function R8e(e,t){const n=typeof t=="function";function r(i){if(typeof i=="object"&&i!==null)try{return e(i)}catch{}else if(n&&typeof i=="string")try{return t(i),e(i)}catch{}return i}return i=>{const o=I8e(i,r);return o?`?${o}`:""}}const ms="__root__";function cT(e){if(e.statusCode=e.statusCode||e.code||307,!e.reloadDocument&&typeof e.href=="string")try{new URL(e.href),e.reloadDocument=!0}catch{}const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function Vu(e){return e instanceof Response&&!!e.options}function L8e(e){const t=new Map;let n,r;const i=o=>{o.next&&(o.prev?(o.prev.next=o.next,o.next.prev=o.prev,o.next=void 0,r&&(r.next=o,o.prev=r)):(o.next.prev=void 0,n=o.next,o.next=void 0,r&&(o.prev=r,r.next=o)),r=o)};return{get(o){const a=t.get(o);if(a)return i(a),a.value},set(o,a){if(t.size>=e&&n){const l=n;t.delete(l.key),l.next&&(n=l.next,l.next.prev=void 0),l===r&&(r=void 0)}const s=t.get(o);if(s)s.value=a,i(s);else{const l={key:o,value:a,prev:r};r&&(r.next=l),r=l,n||(n=l),t.set(o,l)}}}}const B4=e=>{var t;if(!e.rendered)return e.rendered=!0,(t=e.onReady)==null?void 0:t.call(e)},W4=(e,t)=>!!(e.preload&&!e.router.state.matches.some(n=>n.id===t)),gq=(e,t)=>{var i;const n=e.router.routesById[t.routeId??""]??e.router.routeTree;!n.options.notFoundComponent&&((i=e.router.options)!=null&&i.defaultNotFoundComponent)&&(n.options.notFoundComponent=e.router.options.defaultNotFoundComponent),Qc(n.options.notFoundComponent);const r=e.matches.find(o=>o.routeId===n.id);Qc(r,"Could not find match for route: "+n.id),e.updateMatch(r.id,o=>({...o,status:"notFound",error:t,isFetching:!1})),t.routerCode==="BEFORE_LOAD"&&n.parentRoute&&(t.routeId=n.parentRoute.id,gq(e,t))},Of=(e,t,n)=>{var r,i,o;if(!(!Vu(n)&&!Wl(n))){if(Vu(n)&&n.redirectHandled&&!n.options.reloadDocument)throw n;if(t){(r=t._nonReactive.beforeLoadPromise)==null||r.resolve(),(i=t._nonReactive.loaderPromise)==null||i.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0;const a=Vu(n)?"redirected":"notFound";t._nonReactive.error=n,e.updateMatch(t.id,s=>({...s,status:a,isFetching:!1,error:n})),Wl(n)&&!n.routeId&&(n.routeId=t.routeId),(o=t._nonReactive.loadPromise)==null||o.resolve()}throw Vu(n)?(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n),n):(gq(e,n),n)}},vq=(e,t)=>{const n=e.router.getMatch(t);return!!(!e.router.isServer&&n._nonReactive.dehydrated||e.router.isServer&&n.ssr===!1)},Oy=(e,t,n,r)=>{var s,l;const{id:i,routeId:o}=e.matches[t],a=e.router.looseRoutesById[o];if(n instanceof Promise)throw n;n.routerCode=r,e.firstBadMatchIndex??(e.firstBadMatchIndex=t),Of(e,e.router.getMatch(i),n);try{(l=(s=a.options).onError)==null||l.call(s,n)}catch(c){n=c,Of(e,e.router.getMatch(i),n)}e.updateMatch(i,c=>{var d,f;return(d=c._nonReactive.beforeLoadPromise)==null||d.resolve(),c._nonReactive.beforeLoadPromise=void 0,(f=c._nonReactive.loadPromise)==null||f.resolve(),{...c,error:n,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}})},P8e=(e,t,n,r)=>{var v;const i=e.router.getMatch(t),o=(v=e.matches[n-1])==null?void 0:v.id,a=o?e.router.getMatch(o):void 0;if(e.router.isShell()){i.ssr=r.id===ms;return}if((a==null?void 0:a.ssr)===!1){i.ssr=!1;return}const s=x=>x===!0&&(a==null?void 0:a.ssr)==="data-only"?"data-only":x,l=e.router.options.defaultSsr??!0;if(r.options.ssr===void 0){i.ssr=s(l);return}if(typeof r.options.ssr!="function"){i.ssr=s(r.options.ssr);return}const{search:c,params:d}=i,f={search:V4(c,i.searchError),params:V4(d,i.paramsError),location:e.location,matches:e.matches.map(x=>({index:x.index,pathname:x.pathname,fullPath:x.fullPath,staticData:x.staticData,id:x.id,routeId:x.routeId,search:V4(x.search,x.searchError),params:V4(x.params,x.paramsError),ssr:x.ssr}))},p=r.options.ssr(f);if(Lf(p))return p.then(x=>{i.ssr=s(x??l)});i.ssr=s(p??l)},yq=(e,t,n,r)=>{var o;if(r._nonReactive.pendingTimeout!==void 0)return;const i=n.options.pendingMs??e.router.options.defaultPendingMs;if(e.onReady&&!e.router.isServer&&!W4(e,t)&&(n.options.loader||n.options.beforeLoad||kq(n))&&typeof i=="number"&&i!==1/0&&(n.options.pendingComponent??((o=e.router.options)==null?void 0:o.defaultPendingComponent))){const a=setTimeout(()=>{B4(e)},i);r._nonReactive.pendingTimeout=a}},O8e=(e,t,n)=>{const r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;yq(e,t,n,r);const i=()=>{const o=e.router.getMatch(t);o.preload&&(o.status==="redirected"||o.status==="notFound")&&Of(e,o,o.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(i):i()},z8e=(e,t,n,r)=>{var j,T;const i=e.router.getMatch(t),o=i._nonReactive.loadPromise;i._nonReactive.loadPromise=Y0(()=>{o==null||o.resolve()});const{paramsError:a,searchError:s}=i;a&&Oy(e,n,a,"PARSE_PARAMS"),s&&Oy(e,n,s,"VALIDATE_SEARCH"),yq(e,t,r,i);const l=new AbortController,c=(j=e.matches[n-1])==null?void 0:j.id,d={...((T=c?e.router.getMatch(c):void 0)==null?void 0:T.context)??e.router.options.context??void 0,...i.__routeContext};let f=!1;const p=()=>{f||(f=!0,e.updateMatch(t,E=>({...E,isFetching:"beforeLoad",fetchCount:E.fetchCount+1,abortController:l,context:d})))},v=()=>{var E;(E=i._nonReactive.beforeLoadPromise)==null||E.resolve(),i._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,$=>({...$,isFetching:!1}))};if(!r.options.beforeLoad){Py(()=>{p(),v()});return}i._nonReactive.beforeLoadPromise=Y0();const{search:x,params:y,cause:b}=i,w=W4(e,t),_={search:x,abortController:l,params:y,preload:w,context:d,location:e.location,navigate:E=>e.router.navigate({...E,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:w?"preload":b,matches:e.matches,...e.router.options.additionalContext},S=E=>{if(E===void 0){Py(()=>{p(),v()});return}(Vu(E)||Wl(E))&&(p(),Oy(e,n,E,"BEFORE_LOAD")),Py(()=>{p(),e.updateMatch(t,$=>({...$,__beforeLoadContext:E,context:{...$.context,...E}})),v()})};let C;try{if(C=r.options.beforeLoad(_),Lf(C))return p(),C.catch(E=>{Oy(e,n,E,"BEFORE_LOAD")}).then(S)}catch(E){p(),Oy(e,n,E,"BEFORE_LOAD")}S(C)},D8e=(e,t)=>{const{id:n,routeId:r}=e.matches[t],i=e.router.looseRoutesById[r],o=()=>{if(e.router.isServer){const l=P8e(e,n,t,i);if(Lf(l))return l.then(s)}return s()},a=()=>z8e(e,n,t,i),s=()=>{if(vq(e,n))return;const l=O8e(e,n,i);return Lf(l)?l.then(a):a()};return o()},zy=(e,t,n)=>{var o,a,s,l,c,d;const r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;const i={matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([(a=(o=n.options).head)==null?void 0:a.call(o,i),(l=(s=n.options).scripts)==null?void 0:l.call(s,i),(d=(c=n.options).headers)==null?void 0:d.call(c,i)]).then(([f,p,v])=>{const x=f==null?void 0:f.meta,y=f==null?void 0:f.links,b=f==null?void 0:f.scripts,w=f==null?void 0:f.styles;return{meta:x,links:y,headScripts:b,headers:v,scripts:p,styles:w}})},bq=(e,t,n,r)=>{const i=e.matchPromises[n-1],{params:o,loaderDeps:a,abortController:s,cause:l}=e.router.getMatch(t);let c=e.router.options.context??{};for(let f=0;f<=n;f++){const p=e.matches[f];if(!p)continue;const v=e.router.getMatch(p.id);v&&(c={...c,...v.__routeContext??{},...v.__beforeLoadContext??{}})}const d=W4(e,t);return{params:o,deps:a,preload:!!d,parentMatchPromise:i,abortController:s,context:c,location:e.location,navigate:f=>e.router.navigate({...f,_fromLocation:e.location}),cause:d?"preload":l,route:r,...e.router.options.additionalContext}},xq=async(e,t,n,r)=>{var i,o,a,s,l,c;try{const d=e.router.getMatch(t);try{(!e.router.isServer||d.ssr===!0)&&wq(r);const f=(o=(i=r.options).loader)==null?void 0:o.call(i,bq(e,t,n,r)),p=r.options.loader&&Lf(f);if((p||r._lazyPromise||r._componentsPromise||r.options.head||r.options.scripts||r.options.headers||d._nonReactive.minPendingPromise)&&e.updateMatch(t,b=>({...b,isFetching:"loader"})),r.options.loader){const b=p?await f:f;Of(e,e.router.getMatch(t),b),b!==void 0&&e.updateMatch(t,w=>({...w,loaderData:b}))}r._lazyPromise&&await r._lazyPromise;const v=zy(e,t,r),x=v?await v:void 0,y=d._nonReactive.minPendingPromise;y&&await y,r._componentsPromise&&await r._componentsPromise,e.updateMatch(t,b=>({...b,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),...x}))}catch(f){let p=f;const v=d._nonReactive.minPendingPromise;v&&await v,Wl(f)&&await((s=(a=r.options.notFoundComponent)==null?void 0:a.preload)==null?void 0:s.call(a)),Of(e,e.router.getMatch(t),f);try{(c=(l=r.options).onError)==null||c.call(l,f)}catch(b){p=b,Of(e,e.router.getMatch(t),b)}const x=zy(e,t,r),y=x?await x:void 0;e.updateMatch(t,b=>({...b,error:p,status:"error",isFetching:!1,...y}))}}catch(d){const f=e.router.getMatch(t);if(f){const p=zy(e,t,r);if(p){const v=await p;e.updateMatch(t,x=>({...x,...v}))}f._nonReactive.loaderPromise=void 0}Of(e,f,d)}},A8e=async(e,t)=>{var c,d;const{id:n,routeId:r}=e.matches[t];let i=!1,o=!1;const a=e.router.looseRoutesById[r];if(vq(e,n)){if(e.router.isServer){const f=zy(e,n,a);if(f){const p=await f;e.updateMatch(n,v=>({...v,...p}))}return e.router.getMatch(n)}}else{const f=e.router.getMatch(n);if(f._nonReactive.loaderPromise){if(f.status==="success"&&!e.sync&&!f.preload)return f;await f._nonReactive.loaderPromise;const p=e.router.getMatch(n),v=p._nonReactive.error||p.error;v&&Of(e,p,v)}else{const p=Date.now()-f.updatedAt,v=W4(e,n),x=v?a.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:a.options.staleTime??e.router.options.defaultStaleTime??0,y=a.options.shouldReload,b=typeof y=="function"?y(bq(e,n,t,a)):y,w=!!v&&!e.router.state.matches.some(j=>j.id===n),_=e.router.getMatch(n);_._nonReactive.loaderPromise=Y0(),w!==_.preload&&e.updateMatch(n,j=>({...j,preload:w}));const{status:S,invalid:C}=_;if(i=S==="success"&&(C||(b??p>x)),!(v&&a.options.preload===!1))if(i&&!e.sync)o=!0,(async()=>{var j,T;try{await xq(e,n,t,a);const E=e.router.getMatch(n);(j=E._nonReactive.loaderPromise)==null||j.resolve(),(T=E._nonReactive.loadPromise)==null||T.resolve(),E._nonReactive.loaderPromise=void 0}catch(E){Vu(E)&&await e.router.navigate(E.options)}})();else if(S!=="success"||i&&e.sync)await xq(e,n,t,a);else{const j=zy(e,n,a);if(j){const T=await j;e.updateMatch(n,E=>({...E,...T}))}}}}const s=e.router.getMatch(n);o||((c=s._nonReactive.loaderPromise)==null||c.resolve(),(d=s._nonReactive.loadPromise)==null||d.resolve()),clearTimeout(s._nonReactive.pendingTimeout),s._nonReactive.pendingTimeout=void 0,o||(s._nonReactive.loaderPromise=void 0),s._nonReactive.dehydrated=void 0;const l=o?s.isFetching:!1;return l!==s.isFetching||s.invalid!==!1?(e.updateMatch(n,f=>({...f,isFetching:l,invalid:!1})),e.router.getMatch(n)):s};async function _q(e){const t=Object.assign(e,{matchPromises:[]});!t.router.isServer&&t.router.state.matches.some(n=>n._forcePending)&&B4(t);try{for(let i=0;i{const{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0),!e._componentsLoaded&&e._componentsPromise===void 0){const t=()=>{var r;const n=[];for(const i of Sq){const o=(r=e.options[i])==null?void 0:r.preload;o&&n.push(o())}if(n.length)return Promise.all(n).then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0});e._componentsLoaded=!0,e._componentsPromise=void 0};e._componentsPromise=e._lazyPromise?e._lazyPromise.then(t):t()}return e._componentsPromise}function V4(e,t){return t?{status:"error",error:t}:{status:"success",value:e}}function kq(e){var t;for(const n of Sq)if((t=e.options[n])!=null&&t.preload)return!0;return!1}const Sq=["component","errorComponent","pendingComponent","notFoundComponent"];function F8e(e){return{input:({url:t})=>{for(const n of e)t=Cq(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=jq(e[n],t);return t}}}function U8e(e){const t=z4(e.basepath),n=`/${t}`,r=`${n}/`,i=e.caseSensitive?n:n.toLowerCase(),o=e.caseSensitive?r:r.toLowerCase();return{input:({url:a})=>{const s=e.caseSensitive?a.pathname:a.pathname.toLowerCase();return s===i?a.pathname="/":s.startsWith(o)&&(a.pathname=a.pathname.slice(n.length)),a},output:({url:a})=>(a.pathname=ed(["/",t,a.pathname]),a)}}function Cq(e,t){var r;const n=(r=e==null?void 0:e.input)==null?void 0:r.call(e,{url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function jq(e,t){var r;const n=(r=e==null?void 0:e.output)==null?void 0:r.call(e,{url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function ap(e){const t=e.resolvedLocation,n=e.location,r=(t==null?void 0:t.pathname)!==n.pathname,i=(t==null?void 0:t.href)!==n.href,o=(t==null?void 0:t.hash)!==n.hash;return{fromLocation:t,toLocation:n,pathChanged:r,hrefChanged:i,hashChanged:o}}class B8e{constructor(t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=n=>n(),this.update=n=>{var d;n.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.");const r=this.options,i=this.basepath??(r==null?void 0:r.basepath)??"/",o=this.basepath===void 0,a=r==null?void 0:r.rewrite;this.options={...r,...n},this.isServer=this.options.isServer??typeof document>"u",this.pathParamsDecodeCharMap=this.options.pathParamsAllowedCharacters?new Map(this.options.pathParamsAllowedCharacters.map(f=>[encodeURIComponent(f),f])):void 0,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.isServer||(this.history=Gje())),this.origin=this.options.origin,this.origin||(!this.isServer&&(window!=null&&window.origin)&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),!this.__store&&this.latestLocation&&(this.__store=new Zje(V8e(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(f=>!["redirected"].includes(f.status))}}}),j8e(this));let s=!1;const l=this.options.basepath??"/",c=this.options.rewrite;if(o||i!==l||a!==c){this.basepath=l;const f=[];z4(l)!==""&&f.push(U8e({basepath:l})),c&&f.push(c),this.rewrite=f.length===0?void 0:f.length===1?f[0]:F8e(f),this.history&&this.updateLatestLocation(),s=!0}s&&this.__store&&(this.__store.state={...this.state,location:this.latestLocation}),typeof window<"u"&&"CSS"in window&&typeof((d=window.CSS)==null?void 0:d.supports)=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const{routesById:n,routesByPath:r,flatRoutes:i}=_8e({routeTree:this.routeTree,initRoute:(a,s)=>{a.init({originalIndex:s})}});this.routesById=n,this.routesByPath=r,this.flatRoutes=i;const o=this.options.notFoundRoute;o&&(o.init({originalIndex:99999999999}),this.routesById[o.id]=o)},this.subscribe=(n,r)=>{const i={eventType:n,fn:r};return this.subscribers.add(i),()=>{this.subscribers.delete(i)}},this.emit=n=>{this.subscribers.forEach(r=>{r.eventType===n.type&&r.fn(n)})},this.parseLocation=(n,r)=>{const i=({href:l,state:c})=>{const d=new URL(l,this.origin),f=Cq(this.rewrite,d),p=this.options.parseSearch(f.search),v=this.options.stringifySearch(p);f.search=v;const x=f.href.replace(f.origin,""),{pathname:y,hash:b}=f;return{href:x,publicHref:l,url:f.href,pathname:dq(y),searchStr:v,search:Bl(r==null?void 0:r.search,p),hash:b.split("#").reverse()[0]??"",state:Bl(r==null?void 0:r.state,c)}},o=i(n),{__tempLocation:a,__tempKey:s}=o.state;if(a&&(!s||s===this.tempLocationKey)){const l=i(a);return l.state.key=o.state.key,l.state.__TSR_key=o.state.__TSR_key,delete l.state.__tempLocation,{...l,maskedLocation:o}}return o},this.resolvePathWithBase=(n,r)=>t8e({base:n,to:iT(r),trailingSlash:this.options.trailingSlash,parseCache:this.parsePathnameCache}),this.matchRoutes=(n,r,i)=>typeof n=="string"?this.matchRoutesInternal({pathname:n,search:r},i):this.matchRoutesInternal(n,r),this.parsePathnameCache=L8e(1e3),this.getMatchedRoutes=(n,r)=>H8e({pathname:n,routePathname:r,caseSensitive:this.options.caseSensitive,routesByPath:this.routesByPath,routesById:this.routesById,flatRoutes:this.flatRoutes,parseCache:this.parsePathnameCache}),this.cancelMatch=n=>{const r=this.getMatch(n);r&&(r.abortController.abort(),clearTimeout(r._nonReactive.pendingTimeout),r._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{const n=this.state.matches.filter(i=>i.status==="pending"),r=this.state.matches.filter(i=>i.isFetching==="loader");new Set([...this.state.pendingMatches??[],...n,...r]).forEach(i=>{this.cancelMatch(i.id)})},this.buildLocation=n=>{const r=(o={})=>{var M,O;const a=o._fromLocation||this.pendingBuiltLocation||this.latestLocation,s=this.matchRoutes(a,{_buildLocation:!0}),l=rT(s);o.from;const c=o.unsafeRelative==="path"?a.pathname:o.from??l.fullPath,d=this.resolvePathWithBase(c,"."),f=l.search,p={...l.params},v=o.to?this.resolvePathWithBase(d,`${o.to}`):this.resolvePathWithBase(d,"."),x=o.params===!1||o.params===null?{}:(o.params??!0)===!0?p:Object.assign(p,ip(o.params,p)),y=aT({path:v,params:x,parseCache:this.parsePathnameCache}).interpolatedPath,b=this.matchRoutes(y,void 0,{_buildLocation:!0}).map(te=>this.looseRoutesById[te.routeId]);if(Object.keys(x).length>0)for(const te of b){const q=((M=te.options.params)==null?void 0:M.stringify)??te.options.stringifyParams;q&&Object.assign(x,q(x))}const w=dq(aT({path:v,params:x,leaveParams:n.leaveParams,decodeCharMap:this.pathParamsDecodeCharMap,parseCache:this.parsePathnameCache}).interpolatedPath);let _=f;if(n._includeValidateSearch&&((O=this.options.search)!=null&&O.strict)){const te={};b.forEach(q=>{if(q.options.validateSearch)try{Object.assign(te,dT(q.options.validateSearch,{...te,..._}))}catch{}}),_=te}_=Z8e({search:_,dest:o,destRoutes:b,_includeValidateSearch:n._includeValidateSearch}),_=Bl(f,_);const S=this.options.stringifySearch(_),C=o.hash===!0?a.hash:o.hash?ip(o.hash,a.hash):void 0,j=C?`#${C}`:"";let T=o.state===!0?a.state:o.state?ip(o.state,a.state):{};T=Bl(a.state,T);const E=`${w}${S}${j}`,$=new URL(E,this.origin),D=jq(this.rewrite,$);return{publicHref:D.pathname+D.search+D.hash,href:E,url:D.href,pathname:w,search:_,searchStr:S,state:T,hash:C??"",unmaskOnReload:o.unmaskOnReload}},i=(o={},a)=>{var c;const s=r(o);let l=a?r(a):void 0;if(!l){let d={};const f=(c=this.options.routeMasks)==null?void 0:c.find(p=>{const v=sT(s.pathname,{to:p.from,caseSensitive:!1,fuzzy:!1},this.parsePathnameCache);return v?(d=v,!0):!1});if(f){const{from:p,...v}=f;a={from:n.from,...v,params:d},l=r(a)}}return l&&(s.maskedLocation=l),s};return n.mask?i(n,{from:n.from,...n.mask}):i(n)},this.commitLocation=({viewTransition:n,ignoreBlocker:r,...i})=>{const o=()=>{const l=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];l.forEach(d=>{i.state[d]=this.latestLocation.state[d]});const c=Rf(i.state,this.latestLocation.state);return l.forEach(d=>{delete i.state[d]}),c},a=Pf(this.latestLocation.href)===Pf(i.href),s=this.commitLocationPromise;if(this.commitLocationPromise=Y0(()=>{s==null||s.resolve()}),a&&o())this.load();else{let{maskedLocation:l,hashScrollIntoView:c,...d}=i;l&&(d={...l,state:{...l.state,__tempKey:void 0,__tempLocation:{...d,search:d.searchStr,state:{...d.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(d.unmaskOnReload??this.options.unmaskOnReload??!1)&&(d.state.__tempKey=this.tempLocationKey)),d.state.__hashScrollIntoViewOptions=c??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=n,this.history[i.replace?"replace":"push"](d.publicHref,d.state,{ignoreBlocker:r})}return this.resetNextScroll=i.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:n,resetScroll:r,hashScrollIntoView:i,viewTransition:o,ignoreBlocker:a,href:s,...l}={})=>{if(s){const f=this.history.location.state.__TSR_index,p=P4(s,{__TSR_index:n?f:f+1});l.to=p.pathname,l.search=this.options.parseSearch(p.search),l.hash=p.hash.slice(1)}const c=this.buildLocation({...l,_includeValidateSearch:!0});this.pendingBuiltLocation=c;const d=this.commitLocation({...c,viewTransition:o,replace:n,resetScroll:r,hashScrollIntoView:i,ignoreBlocker:a});return Promise.resolve().then(()=>{this.pendingBuiltLocation===c&&(this.pendingBuiltLocation=void 0)}),d},this.navigate=({to:n,reloadDocument:r,href:i,...o})=>{if(!r&&i)try{new URL(`${i}`),r=!0}catch{}return r?(i||(i=this.buildLocation({to:n,...o}).url),o.replace?window.location.replace(i):window.location.href=i,Promise.resolve()):this.buildAndCommitLocation({...o,href:i,to:n,_isNavigate:!0})},this.beforeLoad=()=>{if(this.cancelMatches(),this.updateLatestLocation(),this.isServer){const r=this.buildLocation({to:this.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0}),i=o=>{try{return encodeURI(decodeURI(o))}catch{return o}};if(z4(i(this.latestLocation.href))!==z4(i(r.href))){let o=r.url;throw this.origin&&o.startsWith(this.origin)&&(o=o.replace(this.origin,"")||"/"),cT({href:o})}}const n=this.matchRoutes(this.latestLocation);this.__store.setState(r=>({...r,status:"pending",statusCode:200,isLoading:!0,location:this.latestLocation,pendingMatches:n,cachedMatches:r.cachedMatches.filter(i=>!n.some(o=>o.id===i.id))}))},this.load=async n=>{let r,i,o;for(o=new Promise(s=>{this.startTransition(async()=>{var l;try{this.beforeLoad();const c=this.latestLocation,d=this.state.resolvedLocation;this.state.redirect||this.emit({type:"onBeforeNavigate",...ap({resolvedLocation:d,location:c})}),this.emit({type:"onBeforeLoad",...ap({resolvedLocation:d,location:c})}),await _q({router:this,sync:n==null?void 0:n.sync,matches:this.state.pendingMatches,location:c,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let f=[],p=[],v=[];Py(()=>{this.__store.setState(x=>{const y=x.matches,b=x.pendingMatches||x.matches;return f=y.filter(w=>!b.some(_=>_.id===w.id)),p=b.filter(w=>!y.some(_=>_.id===w.id)),v=b.filter(w=>y.some(_=>_.id===w.id)),{...x,isLoading:!1,loadedAt:Date.now(),matches:b,pendingMatches:void 0,cachedMatches:[...x.cachedMatches,...f.filter(w=>w.status!=="error")]}}),this.clearExpiredCache()}),[[f,"onLeave"],[p,"onEnter"],[v,"onStay"]].forEach(([x,y])=>{x.forEach(b=>{var w,_;(_=(w=this.looseRoutesById[b.routeId].options)[y])==null||_.call(w,b)})})})})}})}catch(c){Vu(c)?(r=c,this.isServer||this.navigate({...r.options,replace:!0,ignoreBlocker:!0})):Wl(c)&&(i=c),this.__store.setState(d=>({...d,statusCode:r?r.status:i?404:d.matches.some(f=>f.status==="error")?500:200,redirect:r}))}this.latestLoadPromise===o&&((l=this.commitLocationPromise)==null||l.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),s()})}),this.latestLoadPromise=o,await o;this.latestLoadPromise&&o!==this.latestLoadPromise;)await this.latestLoadPromise;let a;this.hasNotFoundMatch()?a=404:this.__store.state.matches.some(s=>s.status==="error")&&(a=500),a!==void 0&&this.__store.setState(s=>({...s,statusCode:a}))},this.startViewTransition=n=>{const r=this.shouldViewTransition??this.options.defaultViewTransition;if(delete this.shouldViewTransition,r&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let i;if(typeof r=="object"&&this.isViewTransitionTypesSupported){const o=this.latestLocation,a=this.state.resolvedLocation,s=typeof r.types=="function"?r.types(ap({resolvedLocation:a,location:o})):r.types;if(s===!1){n();return}i={update:n,types:s}}else i=n;document.startViewTransition(i)}else n()},this.updateMatch=(n,r)=>{this.startTransition(()=>{var o;const i=(o=this.state.pendingMatches)!=null&&o.some(a=>a.id===n)?"pendingMatches":this.state.matches.some(a=>a.id===n)?"matches":this.state.cachedMatches.some(a=>a.id===n)?"cachedMatches":"";i&&this.__store.setState(a=>{var s;return{...a,[i]:(s=a[i])==null?void 0:s.map(l=>l.id===n?r(l):l)}})})},this.getMatch=n=>{var i;const r=o=>o.id===n;return this.state.cachedMatches.find(r)??((i=this.state.pendingMatches)==null?void 0:i.find(r))??this.state.matches.find(r)},this.invalidate=n=>{const r=i=>{var o;return((o=n==null?void 0:n.filter)==null?void 0:o.call(n,i))??!0?{...i,invalid:!0,...n!=null&&n.forcePending||i.status==="error"?{status:"pending",error:void 0}:void 0}:i};return this.__store.setState(i=>{var o;return{...i,matches:i.matches.map(r),cachedMatches:i.cachedMatches.map(r),pendingMatches:(o=i.pendingMatches)==null?void 0:o.map(r)}}),this.shouldViewTransition=!1,this.load({sync:n==null?void 0:n.sync})},this.resolveRedirect=n=>{if(!n.options.href){const r=this.buildLocation(n.options);let i=r.url;this.origin&&i.startsWith(this.origin)&&(i=i.replace(this.origin,"")||"/"),n.options.href=r.href,n.headers.set("Location",i)}return n.headers.get("Location")||n.headers.set("Location",n.options.href),n},this.clearCache=n=>{const r=n==null?void 0:n.filter;r!==void 0?this.__store.setState(i=>({...i,cachedMatches:i.cachedMatches.filter(o=>!r(o))})):this.__store.setState(i=>({...i,cachedMatches:[]}))},this.clearExpiredCache=()=>{const n=r=>{const i=this.looseRoutesById[r.routeId];if(!i.options.loader)return!0;const o=(r.preload?i.options.preloadGcTime??this.options.defaultPreloadGcTime:i.options.gcTime??this.options.defaultGcTime)??5*60*1e3;return r.status==="error"?!0:Date.now()-r.updatedAt>=o};this.clearCache({filter:n})},this.loadRouteChunk=wq,this.preloadRoute=async n=>{const r=this.buildLocation(n);let i=this.matchRoutes(r,{throwOnError:!0,preload:!0,dest:n});const o=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(s=>s.id)),a=new Set([...o,...this.state.cachedMatches.map(s=>s.id)]);Py(()=>{i.forEach(s=>{a.has(s.id)||this.__store.setState(l=>({...l,cachedMatches:[...l.cachedMatches,s]}))})});try{return i=await _q({router:this,matches:i,location:r,preload:!0,updateMatch:(s,l)=>{o.has(s)?i=i.map(c=>c.id===s?l(c):c):this.updateMatch(s,l)}}),i}catch(s){if(Vu(s))return s.options.reloadDocument?void 0:await this.preloadRoute({...s.options,_fromLocation:r});Wl(s)||console.error(s);return}},this.matchRoute=(n,r)=>{const i={...n,to:n.to?this.resolvePathWithBase(n.from||"",n.to):void 0,params:n.params||{},leaveParams:!0},o=this.buildLocation(i);if(r!=null&&r.pending&&this.state.status!=="pending")return!1;const a=((r==null?void 0:r.pending)===void 0?!this.state.isLoading:r.pending)?this.latestLocation:this.state.resolvedLocation||this.state.location,s=sT(a.pathname,{...r,to:o.pathname},this.parsePathnameCache);return!s||n.params&&!Rf(s,n.params,{partial:!0})?!1:s&&((r==null?void 0:r.includeSearch)??!0)?Rf(a.search,o.search,{partial:!0})?s:!1:s},this.hasNotFoundMatch=()=>this.__store.state.matches.some(n=>n.status==="notFound"||n.globalNotFound),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...t,caseSensitive:t.caseSensitive??!1,notFoundMode:t.notFoundMode??"fuzzy",stringifySearch:t.stringifySearch??$8e,parseSearch:t.parseSearch??N8e}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.__store.state}get looseRoutesById(){return this.routesById}matchRoutesInternal(t,n){var d;const{foundRoute:r,matchedRoutes:i,routeParams:o}=this.getMatchedRoutes(t.pathname,(d=n==null?void 0:n.dest)==null?void 0:d.to);let a=!1;(r?r.path!=="/"&&o["**"]:Pf(t.pathname))&&(this.options.notFoundRoute?i.push(this.options.notFoundRoute):a=!0);const s=(()=>{if(a){if(this.options.notFoundMode!=="root")for(let f=i.length-1;f>=0;f--){const p=i[f];if(p.children)return p.id}return ms}})(),l=[],c=f=>f!=null&&f.id?f.context??this.options.context??void 0:this.options.context??void 0;return i.forEach((f,p)=>{var q,P,X;const v=l[p-1],[x,y,b]=(()=>{const A=(v==null?void 0:v.search)??t.search,Y=(v==null?void 0:v._strictSearch)??void 0;try{const F=dT(f.options.validateSearch,{...A})??void 0;return[{...A,...F},{...Y,...F},void 0]}catch(F){let H=F;if(F instanceof H4||(H=new H4(F.message,{cause:F})),n==null?void 0:n.throwOnError)throw H;return[A,{},H]}})(),w=((P=(q=f.options).loaderDeps)==null?void 0:P.call(q,{search:x}))??"",_=w?JSON.stringify(w):"",{interpolatedPath:S,usedParams:C}=aT({path:f.fullPath,params:o,decodeCharMap:this.pathParamsDecodeCharMap}),j=f.id+S+_,T=this.getMatch(j),E=this.state.matches.find(A=>A.routeId===f.id),$=(T==null?void 0:T._strictParams)??C;let D;if(!T){const A=((X=f.options.params)==null?void 0:X.parse)??f.options.parseParams;if(A)try{Object.assign($,A($))}catch(Y){if(D=new W8e(Y.message,{cause:Y}),n==null?void 0:n.throwOnError)throw D}}Object.assign(o,$);const M=E?"stay":"enter";let O;if(T)O={...T,cause:M,params:E?Bl(E.params,o):o,_strictParams:$,search:Bl(E?E.search:T.search,x),_strictSearch:y};else{const A=f.options.loader||f.options.beforeLoad||f.lazyFn||kq(f)?"pending":"success";O={id:j,index:p,routeId:f.id,params:E?Bl(E.params,o):o,_strictParams:$,pathname:S,updatedAt:Date.now(),search:E?Bl(E.search,x):x,_strictSearch:y,searchError:void 0,status:A,isFetching:!1,error:void 0,paramsError:D,__routeContext:void 0,_nonReactive:{loadPromise:Y0()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:M,loaderDeps:E?Bl(E.loaderDeps,w):w,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:f.options.staticData||{},fullPath:f.fullPath}}n!=null&&n.preload||(O.globalNotFound=s===f.id),O.searchError=b;const te=c(v);O.context={...te,...O.__routeContext,...O.__beforeLoadContext},l.push(O)}),l.forEach((f,p)=>{const v=this.looseRoutesById[f.routeId];if(!this.getMatch(f.id)&&(n==null?void 0:n._buildLocation)!==!0){const x=l[p-1],y=c(x);if(v.options.context){const b={deps:f.loaderDeps,params:f.params,context:y??{},location:t,navigate:w=>this.navigate({...w,_fromLocation:t}),buildLocation:this.buildLocation,cause:f.cause,abortController:f.abortController,preload:!!f.preload,matches:l};f.__routeContext=v.options.context(b)??void 0}f.context={...y,...f.__routeContext,...f.__beforeLoadContext}}}),l}}class H4 extends Error{}class W8e extends Error{}function V8e(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:e,matches:[],pendingMatches:[],cachedMatches:[],statusCode:200}}function dT(e,t){if(e==null)return{};if("~standard"in e){const n=e["~standard"].validate(t);if(n instanceof Promise)throw new H4("Async validation not supported");if(n.issues)throw new H4(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return"parse"in e?e.parse(t):typeof e=="function"?e(t):{}}function H8e({pathname:e,routePathname:t,caseSensitive:n,routesByPath:r,routesById:i,flatRoutes:o,parseCache:a}){let s={};const l=Pf(e),c=v=>{var x;return sT(l,{to:v.fullPath,caseSensitive:((x=v.options)==null?void 0:x.caseSensitive)??n,fuzzy:!0},a)};let d=t!==void 0?r[t]:void 0;if(d)s=c(d);else{let v;for(const x of o){const y=c(x);if(y)if(x.path!=="/"&&y["**"])v||(v={foundRoute:x,routeParams:y});else{d=x,s=y;break}}!d&&v&&(d=v.foundRoute,s=v.routeParams)}let f=d||i[ms];const p=[f];for(;f.parentRoute;)f=f.parentRoute,p.push(f);return p.reverse(),{matchedRoutes:p,routeParams:s,foundRoute:d}}function Z8e({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){const i=n.reduce((s,l)=>{var d;const c=[];if("search"in l.options)(d=l.options.search)!=null&&d.middlewares&&c.push(...l.options.search.middlewares);else if(l.options.preSearchFilters||l.options.postSearchFilters){const f=({search:p,next:v})=>{let x=p;"preSearchFilters"in l.options&&l.options.preSearchFilters&&(x=l.options.preSearchFilters.reduce((b,w)=>w(b),p));const y=v(x);return"postSearchFilters"in l.options&&l.options.postSearchFilters?l.options.postSearchFilters.reduce((b,w)=>w(b),y):y};c.push(f)}if(r&&l.options.validateSearch){const f=({search:p,next:v})=>{const x=v(p);try{return{...x,...dT(l.options.validateSearch,x)??void 0}}catch{return x}};c.push(f)}return s.concat(c)},[])??[],o=({search:s})=>t.search?t.search===!0?s:ip(t.search,s):{};i.push(o);const a=(s,l)=>{if(s>=i.length)return l;const c=i[s];return c({search:l,next:d=>a(s+1,d)})};return a(0,e)}const q8e="Error preloading route! \u261D\uFE0F";class Tq{constructor(t){if(this.init=n=>{var c,d;this.originalIndex=n.originalIndex;const r=this.options,i=!(r!=null&&r.path)&&!(r!=null&&r.id);this.parentRoute=(d=(c=this.options).getParentRoute)==null?void 0:d.call(c),i?this._path=ms:this.parentRoute||Qc(!1);let o=i?ms:r==null?void 0:r.path;o&&o!=="/"&&(o=oT(o));const a=(r==null?void 0:r.id)||o;let s=i?ms:ed([this.parentRoute.id===ms?"":this.parentRoute.id,a]);o===ms&&(o="/"),s!==ms&&(s=ed(["/",s]));const l=s===ms?"/":ed([this.parentRoute.fullPath,o]);this._path=o,this._id=s,this._fullPath=l,this._to=l},this.addChildren=n=>this._addFileChildren(n),this._addFileChildren=n=>(Array.isArray(n)&&(this.children=n),typeof n=="object"&&n!==null&&(this.children=Object.values(n)),this),this._addFileTypes=()=>this,this.updateLoader=n=>(Object.assign(this.options,n),this),this.update=n=>(Object.assign(this.options,n),this),this.lazy=n=>(this.lazyFn=n,this),this.options=t||{},this.isRoot=!(t!=null&&t.getParentRoute),(t==null?void 0:t.id)&&(t==null?void 0:t.path))throw new Error("Route cannot have both an 'id' and a 'path' option.")}get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}}class G8e extends Tq{constructor(t){super(t)}}function Y8e(e){return({search:t,next:n})=>{const r=n(t);return e===!0?{...t,...r}:(e.forEach(i=>{i in r||(r[i]=t[i])}),r)}}function K8e(e){return({search:t,next:n})=>{if(e===!0)return{};const r=n(t);return Array.isArray(e)?e.forEach(i=>{delete r[i]}):Object.entries(e).forEach(([i,o])=>{Rf(r[i],o)&&delete r[i]}),r}}function fT(e){const t=e.errorComponent??Z4;return u.jsx(X8e,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?m.createElement(t,{error:n,reset:r}):e.children})}class X8e extends m.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(t){return{resetKey:t.getResetKey()}}static getDerivedStateFromError(t){return{error:t}}reset(){this.setState({error:null})}componentDidUpdate(t,n){n.error&&n.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(t,n){this.props.onCatch&&this.props.onCatch(t,n)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function Z4({error:e}){const[t,n]=m.useState(!1);return u.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[u.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),u.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(r=>!r),children:t?"Hide Error":"Show Error"})]}),u.jsx("div",{style:{height:".25rem"}}),t?u.jsx("div",{children:u.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?u.jsx("code",{children:e.message}):null})}):null]})}function J8e({children:e,fallback:t=null}){return Q8e()?u.jsx(Pe.Fragment,{children:e}):u.jsx(Pe.Fragment,{children:t})}function Q8e(){return Pe.useSyncExternalStore(e9e,()=>!0,()=>!1)}function e9e(){return()=>{}}var Iq={exports:{}},Eq={};/** +* @license React +* use-sync-external-store-shim/with-selector.production.js +* +* Copyright (c) Meta Platforms, Inc. and affiliates. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/var q4=m,t9e=T4e;function n9e(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var r9e=typeof Object.is=="function"?Object.is:n9e,i9e=t9e.useSyncExternalStore,o9e=q4.useRef,a9e=q4.useEffect,s9e=q4.useMemo,l9e=q4.useDebugValue;Eq.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var o=o9e(null);if(o.current===null){var a={hasValue:!1,value:null};o.current=a}else a=o.current;o=s9e(function(){function l(v){if(!c){if(c=!0,d=v,v=r(v),i!==void 0&&a.hasValue){var x=a.value;if(i(x,v))return f=x}return f=v}if(x=f,r9e(d,v))return x;var y=r(v);return i!==void 0&&i(x,y)?(d=v,x):(d=v,f=y)}var c=!1,d,f,p=n===void 0?null:n;return[function(){return l(t())},p===null?void 0:function(){return l(p())}]},[t,n,r,i]);var s=i9e(e,o[0],o[1]);return a9e(function(){a.hasValue=!0,a.value=s},[s]),l9e(s),s},Iq.exports=Eq;var u9e=Iq.exports;function c9e(e,t=r=>r,n={}){const r=n.equal??d9e;return u9e.useSyncExternalStoreWithSelector(e.subscribe,()=>e.state,()=>e.state,t,r)}function d9e(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,i]of e)if(!t.has(r)||!Object.is(i,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();const n=Nq(e);if(n.length!==Nq(t).length)return!1;for(let r=0;r"u"?hT:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=hT,hT)}function gs(e){const t=m.useContext($q());return e==null||e.warn,t}function ua(e){const t=gs({warn:(e==null?void 0:e.router)===void 0}),n=(e==null?void 0:e.router)||t,r=m.useRef(void 0);return c9e(n.__store,i=>{if(e!=null&&e.select){if(e.structuralSharing??n.options.defaultStructuralSharing){const o=Bl(r.current,e.select(i));return r.current=o,o}return e.select(i)}return i})}const G4=m.createContext(void 0),f9e=m.createContext(void 0);function Hu(e){const t=m.useContext(e.from?f9e:G4);return ua({select:n=>{const r=n.matches.find(i=>e.from?e.from===i.routeId:i.id===t);if(Qc(!((e.shouldThrow??!0)&&!r),`Could not find ${e.from?`an active match from "${e.from}"`:"a nearest match!"}`),r!==void 0)return e.select?e.select(r):r},structuralSharing:e.structuralSharing})}function pT(e){return Hu({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function mT(e){const{select:t,...n}=e;return Hu({...n,select:r=>t?t(r.loaderDeps):r.loaderDeps})}function gT(e){return Hu({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function vT(e){return Hu({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function Q0(e){const t=gs();return m.useCallback(n=>t.navigate({...n,from:n.from??(e==null?void 0:e.from)}),[e==null?void 0:e.from,t])}const Y4=typeof window<"u"?m.useLayoutEffect:m.useEffect;function yT(e){const t=m.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function h9e(e,t,n={},r={}){m.useEffect(()=>{if(!e.current||r.disabled||typeof IntersectionObserver!="function")return;const i=new IntersectionObserver(([o])=>{t(o)},n);return i.observe(e.current),()=>{i.disconnect()}},[t,n,r.disabled,e])}function p9e(e){const t=m.useRef(null);return m.useImperativeHandle(e,()=>t.current,[]),t}function m9e(e,t){const n=gs(),[r,i]=m.useState(!1),o=m.useRef(!1),a=p9e(t),{activeProps:s,inactiveProps:l,activeOptions:c,to:d,preload:f,preloadDelay:p,hashScrollIntoView:v,replace:x,startTransition:y,resetScroll:b,viewTransition:w,children:_,target:S,disabled:C,style:j,className:T,onClick:E,onFocus:$,onMouseEnter:D,onMouseLeave:M,onTouchStart:O,ignoreBlocker:te,params:q,search:P,hash:X,state:A,mask:Y,reloadDocument:F,unsafeRelative:H,from:ee,_fromLocation:ce,...B}=e,ae=ua({select:Qe=>Qe.location.search,structuralSharing:!0}),je=e.from,me=m.useMemo(()=>({...e,from:je}),[n,ae,je,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),ke=m.useMemo(()=>n.buildLocation({...me}),[n,me]),he=m.useMemo(()=>{if(C)return;let Qe=ke.maskedLocation?ke.maskedLocation.url:ke.url,Ke=!1;return n.origin&&(Qe.startsWith(n.origin)?Qe=n.history.createHref(Qe.replace(n.origin,""))||"/":Ke=!0),{href:Qe,external:Ke}},[C,ke.maskedLocation,ke.url,n.origin,n.history]),ue=m.useMemo(()=>{if(he!=null&&he.external)return he.href;try{return new URL(d),d}catch{}},[d,he]),re=e.reloadDocument||ue?!1:f??n.options.defaultPreload,ge=p??n.options.defaultPreloadDelay??0,$e=ua({select:Qe=>{if(ue)return!1;if(c!=null&&c.exact){if(!Qje(Qe.location.pathname,ke.pathname,n.basepath))return!1}else{const Ke=D4(Qe.location.pathname,n.basepath),De=D4(ke.pathname,n.basepath);if(!(Ke.startsWith(De)&&(Ke.length===De.length||Ke[De.length]==="/")))return!1}return((c==null?void 0:c.includeSearch)??!0)&&!Rf(Qe.location.search,ke.search,{partial:!(c!=null&&c.exact),ignoreUndefined:!(c!=null&&c.explicitUndefined)})?!1:c!=null&&c.includeHash?Qe.location.hash===ke.hash:!0}}),pe=m.useCallback(()=>{n.preloadRoute({...me}).catch(Qe=>{console.warn(Qe),console.warn(q8e)})},[n,me]),ye=m.useCallback(Qe=>{Qe!=null&&Qe.isIntersecting&&pe()},[pe]);h9e(a,ye,x9e,{disabled:!!C||re!=="viewport"}),m.useEffect(()=>{o.current||!C&&re==="render"&&(pe(),o.current=!0)},[C,pe,re]);const Se=Qe=>{const Ke=Qe.currentTarget.getAttribute("target"),De=S!==void 0?S:Ke;if(!C&&!_9e(Qe)&&!Qe.defaultPrevented&&(!De||De==="_self")&&Qe.button===0){Qe.preventDefault(),Kc.flushSync(()=>{i(!0)});const Dt=n.subscribe("onResolved",()=>{Dt(),i(!1)});n.navigate({...me,replace:x,resetScroll:b,hashScrollIntoView:v,startTransition:y,viewTransition:w,ignoreBlocker:te})}};if(ue)return{...B,ref:a,href:ue,..._&&{children:_},...S&&{target:S},...C&&{disabled:C},...j&&{style:j},...T&&{className:T},...E&&{onClick:E},...$&&{onFocus:$},...D&&{onMouseEnter:D},...M&&{onMouseLeave:M},...O&&{onTouchStart:O}};const Ce=Qe=>{C||re&&pe()},Ue=Ce,Ge=Qe=>{if(!(C||!re))if(!ge)pe();else{const Ke=Qe.target;if(Dy.has(Ke))return;const De=setTimeout(()=>{Dy.delete(Ke),pe()},ge);Dy.set(Ke,De)}},_t=Qe=>{if(C||!re||!ge)return;const Ke=Qe.target,De=Dy.get(Ke);De&&(clearTimeout(De),Dy.delete(Ke))},St=$e?ip(s,{})??g9e:bT,ut=$e?bT:ip(l,{})??bT,ct=[T,St.className,ut.className].filter(Boolean).join(" "),bt=(j||St.style||ut.style)&&{...j,...St.style,...ut.style};return{...B,...St,...ut,href:he==null?void 0:he.href,ref:a,onClick:Ay([E,Se]),onFocus:Ay([$,Ce]),onMouseEnter:Ay([D,Ge]),onMouseLeave:Ay([M,_t]),onTouchStart:Ay([O,Ue]),disabled:!!C,target:S,...bt&&{style:bt},...ct&&{className:ct},...C&&v9e,...$e&&y9e,...r&&b9e}}const bT={},g9e={className:"active"},v9e={role:"link","aria-disabled":!0},y9e={"data-status":"active","aria-current":"page"},b9e={"data-transitioning":"transitioning"},Dy=new WeakMap,x9e={rootMargin:"100px"},Ay=e=>t=>{for(const n of e)if(n){if(t.defaultPrevented)return;n(t)}},sp=m.forwardRef((e,t)=>{const{_asChild:n,...r}=e,{type:i,ref:o,...a}=m9e(r,t),s=typeof r.children=="function"?r.children({isActive:a["data-status"]==="active"}):r.children;return n===void 0&&delete a.disabled,m.createElement(n||"a",{...a,ref:o},s)});function _9e(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}let w9e=class extends Tq{constructor(e){super(e),this.useMatch=t=>Hu({select:t==null?void 0:t.select,from:this.id,structuralSharing:t==null?void 0:t.structuralSharing}),this.useRouteContext=t=>Hu({...t,from:this.id,select:n=>t!=null&&t.select?t.select(n.context):n.context}),this.useSearch=t=>vT({select:t==null?void 0:t.select,structuralSharing:t==null?void 0:t.structuralSharing,from:this.id}),this.useParams=t=>gT({select:t==null?void 0:t.select,structuralSharing:t==null?void 0:t.structuralSharing,from:this.id}),this.useLoaderDeps=t=>mT({...t,from:this.id}),this.useLoaderData=t=>pT({...t,from:this.id}),this.useNavigate=()=>Q0({from:this.fullPath}),this.Link=Pe.forwardRef((t,n)=>u.jsx(sp,{ref:n,from:this.fullPath,...t})),this.$$typeof=Symbol.for("react.memo")}};function k9e(e){return new w9e(e)}class S9e extends G8e{constructor(t){super(t),this.useMatch=n=>Hu({select:n==null?void 0:n.select,from:this.id,structuralSharing:n==null?void 0:n.structuralSharing}),this.useRouteContext=n=>Hu({...n,from:this.id,select:r=>n!=null&&n.select?n.select(r.context):r.context}),this.useSearch=n=>vT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.id}),this.useParams=n=>gT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.id}),this.useLoaderDeps=n=>mT({...n,from:this.id}),this.useLoaderData=n=>pT({...n,from:this.id}),this.useNavigate=()=>Q0({from:this.fullPath}),this.Link=Pe.forwardRef((n,r)=>u.jsx(sp,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function C9e(e){return new S9e(e)}function lp(e){return typeof e=="object"?new Mq(e,{silent:!0}).createRoute(e):new Mq(e,{silent:!0}).createRoute}class Mq{constructor(t,n){this.path=t,this.createRoute=r=>{this.silent;const i=k9e(r);return i.isRoot=!1,i},this.silent=n==null?void 0:n.silent}}class Rq{constructor(t){this.useMatch=n=>Hu({select:n==null?void 0:n.select,from:this.options.id,structuralSharing:n==null?void 0:n.structuralSharing}),this.useRouteContext=n=>Hu({from:this.options.id,select:r=>n!=null&&n.select?n.select(r.context):r.context}),this.useSearch=n=>vT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.options.id}),this.useParams=n=>gT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.options.id}),this.useLoaderDeps=n=>mT({...n,from:this.options.id}),this.useLoaderData=n=>pT({...n,from:this.options.id}),this.useNavigate=()=>{const n=gs();return Q0({from:n.routesById[this.options.id].fullPath})},this.options=t,this.$$typeof=Symbol.for("react.memo")}}function Lq(e){return typeof e=="object"?new Rq(e):t=>new Rq({id:e,...t})}function j9e(){const e=gs(),t=m.useRef({router:e,mounted:!1}),[n,r]=m.useState(!1),{hasPendingMatches:i,isLoading:o}=ua({select:f=>({isLoading:f.isLoading,hasPendingMatches:f.matches.some(p=>p.status==="pending")}),structuralSharing:!0}),a=yT(o),s=o||n||i,l=yT(s),c=o||i,d=yT(c);return e.startTransition=f=>{r(!0),m.startTransition(()=>{f(),r(!1)})},m.useEffect(()=>{const f=e.history.subscribe(e.load),p=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return Pf(e.latestLocation.href)!==Pf(p.href)&&e.commitLocation({...p,replace:!0}),()=>{f()}},[e,e.history]),Y4(()=>{typeof window<"u"&&e.ssr||t.current.router===e&&t.current.mounted||(t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(f){console.error(f)}})())},[e]),Y4(()=>{a&&!o&&e.emit({type:"onLoad",...ap(e.state)})},[a,e,o]),Y4(()=>{d&&!c&&e.emit({type:"onBeforeRouteMount",...ap(e.state)})},[c,d,e]),Y4(()=>{l&&!s&&(e.emit({type:"onResolved",...ap(e.state)}),e.__store.setState(f=>({...f,status:"idle",resolvedLocation:f.location})),T8e(e))},[s,l,e]),null}function T9e(e){const t=ua({select:n=>`not-found-${n.location.pathname}-${n.status}`});return u.jsx(fT,{getResetKey:()=>t,onCatch:(n,r)=>{var i;if(Wl(n))(i=e.onCatch)==null||i.call(e,n,r);else throw n},errorComponent:({error:n})=>{var r;if(Wl(n))return(r=e.fallback)==null?void 0:r.call(e,n);throw n},children:e.children})}function I9e(){return u.jsx("p",{children:"Not Found"})}function eg(e){return u.jsx(u.Fragment,{children:e.children})}function Pq(e,t,n){return t.options.notFoundComponent?u.jsx(t.options.notFoundComponent,{data:n}):e.options.defaultNotFoundComponent?u.jsx(e.options.defaultNotFoundComponent,{data:n}):u.jsx(I9e,{})}function E9e({children:e}){var n;const t=gs();return t.isServer?u.jsx("script",{nonce:(n=t.options.ssr)==null?void 0:n.nonce,className:"$tsr",dangerouslySetInnerHTML:{__html:[e].filter(Boolean).join(` +`)+";$_TSR.c()"}}):null}function N9e(){const e=gs();if(!e.isScrollRestoring||!e.isServer||typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation}))return null;const t=(e.options.getScrollRestorationKey||lT)(e.latestLocation),n=t!==lT(e.latestLocation)?t:void 0,r={storageKey:A4,shouldScrollRestoration:!0};return n&&(r.key=n),u.jsx(E9e,{children:`(${mq.toString()})(${JSON.stringify(r)})`})}const Oq=m.memo(function({matchId:e}){var b,w;const t=gs(),n=ua({select:_=>{const S=_.matches.find(C=>C.id===e);return Qc(S),{routeId:S.routeId,ssr:S.ssr,_displayPending:S._displayPending}},structuralSharing:!0}),r=t.routesById[n.routeId],i=r.options.pendingComponent??t.options.defaultPendingComponent,o=i?u.jsx(i,{}):null,a=r.options.errorComponent??t.options.defaultErrorComponent,s=r.options.onCatch??t.options.defaultOnCatch,l=r.isRoot?r.options.notFoundComponent??((b=t.options.notFoundRoute)==null?void 0:b.options.component):r.options.notFoundComponent,c=n.ssr===!1||n.ssr==="data-only",d=(!r.isRoot||r.options.wrapInSuspense||c)&&(r.options.wrapInSuspense??i??(((w=r.options.errorComponent)==null?void 0:w.preload)||c))?m.Suspense:eg,f=a?fT:eg,p=l?T9e:eg,v=ua({select:_=>_.loadedAt}),x=ua({select:_=>{var C;const S=_.matches.findIndex(j=>j.id===e);return(C=_.matches[S-1])==null?void 0:C.routeId}}),y=r.isRoot?r.options.shellComponent??eg:eg;return u.jsxs(y,{children:[u.jsx(G4.Provider,{value:e,children:u.jsx(d,{fallback:o,children:u.jsx(f,{getResetKey:()=>v,errorComponent:a||Z4,onCatch:(_,S)=>{if(Wl(_))throw _;s==null||s(_,S)},children:u.jsx(p,{fallback:_=>{if(!l||_.routeId&&_.routeId!==n.routeId||!_.routeId&&!r.isRoot)throw _;return m.createElement(l,_)},children:c||n._displayPending?u.jsx(J8e,{fallback:o,children:u.jsx(zq,{matchId:e})}):u.jsx(zq,{matchId:e})})})})}),x===ms&&t.options.scrollRestoration?u.jsxs(u.Fragment,{children:[u.jsx($9e,{}),u.jsx(N9e,{})]}):null]})});function $9e(){const e=gs(),t=m.useRef(void 0);return u.jsx("script",{suppressHydrationWarning:!0,ref:n=>{n&&(t.current===void 0||t.current.href!==e.latestLocation.href)&&(e.emit({type:"onRendered",...ap(e.state)}),t.current=e.latestLocation)}},e.latestLocation.state.__TSR_key)}const zq=m.memo(function({matchId:e}){var s,l,c,d;const t=gs(),{match:n,key:r,routeId:i}=ua({select:f=>{var y;const p=f.matches.find(b=>b.id===e),v=p.routeId,x=(y=t.routesById[v].options.remountDeps??t.options.defaultRemountDeps)==null?void 0:y({routeId:v,loaderDeps:p.loaderDeps,params:p._strictParams,search:p._strictSearch});return{key:x?JSON.stringify(x):void 0,routeId:v,match:{id:p.id,status:p.status,error:p.error,_forcePending:p._forcePending,_displayPending:p._displayPending}}},structuralSharing:!0}),o=t.routesById[i],a=m.useMemo(()=>{const f=o.options.component??t.options.defaultComponent;return f?u.jsx(f,{},r):u.jsx(Dq,{})},[r,o.options.component,t.options.defaultComponent]);if(n._displayPending)throw(s=t.getMatch(n.id))==null?void 0:s._nonReactive.displayPendingPromise;if(n._forcePending)throw(l=t.getMatch(n.id))==null?void 0:l._nonReactive.minPendingPromise;if(n.status==="pending"){const f=o.options.pendingMinMs??t.options.defaultPendingMinMs;if(f){const p=t.getMatch(n.id);if(p&&!p._nonReactive.minPendingPromise&&!t.isServer){const v=Y0();p._nonReactive.minPendingPromise=v,setTimeout(()=>{v.resolve(),p._nonReactive.minPendingPromise=void 0},f)}}throw(c=t.getMatch(n.id))==null?void 0:c._nonReactive.loadPromise}if(n.status==="notFound")return Qc(Wl(n.error)),Pq(t,o,n.error);if(n.status==="redirected")throw Qc(Vu(n.error)),(d=t.getMatch(n.id))==null?void 0:d._nonReactive.loadPromise;if(n.status==="error"){if(t.isServer){const f=(o.options.errorComponent??t.options.defaultErrorComponent)||Z4;return u.jsx(f,{error:n.error,reset:void 0,info:{componentStack:""}})}throw n.error}return a}),Dq=m.memo(function(){const e=gs(),t=m.useContext(G4),n=ua({select:l=>{var c;return(c=l.matches.find(d=>d.id===t))==null?void 0:c.routeId}}),r=e.routesById[n],i=ua({select:l=>{const c=l.matches.find(d=>d.id===t);return Qc(c),c.globalNotFound}}),o=ua({select:l=>{var f;const c=l.matches,d=c.findIndex(p=>p.id===t);return(f=c[d+1])==null?void 0:f.id}}),a=e.options.defaultPendingComponent?u.jsx(e.options.defaultPendingComponent,{}):null;if(i)return Pq(e,r,void 0);if(!o)return null;const s=u.jsx(Oq,{matchId:o});return n===ms?u.jsx(m.Suspense,{fallback:a,children:s}):s});function M9e(){const e=gs(),t=e.routesById[ms].options.pendingComponent??e.options.defaultPendingComponent,n=t?u.jsx(t,{}):null,r=e.isServer||typeof document<"u"&&e.ssr?eg:m.Suspense,i=u.jsxs(r,{fallback:n,children:[!e.isServer&&u.jsx(j9e,{}),u.jsx(R9e,{})]});return e.options.InnerWrap?u.jsx(e.options.InnerWrap,{children:i}):i}function R9e(){const e=gs(),t=ua({select:i=>{var o;return(o=i.matches[0])==null?void 0:o.id}}),n=ua({select:i=>i.loadedAt}),r=t?u.jsx(Oq,{matchId:t}):null;return u.jsx(G4.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:u.jsx(fT,{getResetKey:()=>n,errorComponent:Z4,onCatch:i=>{i.message||i.toString()},children:r})})}const L9e=e=>new P9e(e);class P9e extends B8e{constructor(t){super(t)}}typeof globalThis<"u"?(globalThis.createFileRoute=lp,globalThis.createLazyFileRoute=Lq):typeof window<"u"&&(window.createFileRoute=lp,window.createLazyFileRoute=Lq);function O9e({router:e,children:t,...n}){Object.keys(n).length>0&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});const r=$q(),i=u.jsx(r.Provider,{value:e,children:t});return e.options.Wrap?u.jsx(e.options.Wrap,{children:i}):i}function z9e({router:e,...t}){return u.jsx(O9e,{router:e,...t,children:u.jsx(M9e,{})})}function D9e(e){return ua({select:t=>t.location})}const tg={};function Aq(e){return"init"in e}function xT(e){return!!e.write}function Fq(e){return"v"in e||"e"in e}function K4(e){if("e"in e)throw e.e;if((tg?"production":void 0)!=="production"&&!("v"in e))throw new Error("[Bug] atom state is not initialized");return e.v}const X4=new WeakMap;function Uq(e){var t;return J4(e)&&!!((t=X4.get(e))!=null&&t[0])}function A9e(e){const t=X4.get(e);t!=null&&t[0]&&(t[0]=!1,t[1].forEach(n=>n()))}function _T(e,t){let n=X4.get(e);if(!n){n=[!0,new Set],X4.set(e,n);const r=()=>{n[0]=!1};e.then(r,r)}n[1].add(t)}function J4(e){return typeof(e==null?void 0:e.then)=="function"}function Bq(e,t,n){if(!n.p.has(e)){n.p.add(e);const r=()=>n.p.delete(e);t.then(r,r)}}function Wq(e,t,n){var r;const i=new Set;for(const o of((r=n.get(e))==null?void 0:r.t)||[])n.has(o)&&i.add(o);for(const o of t.p)i.add(o);return i}const F9e=(e,t,...n)=>t.read(...n),U9e=(e,t,...n)=>t.write(...n),B9e=(e,t)=>{var n;return(n=t.unstable_onInit)==null?void 0:n.call(t,e)},W9e=(e,t,n)=>{var r;return(r=t.onMount)==null?void 0:r.call(t,n)},V9e=(e,t)=>{const n=Fo(e),r=n[0],i=n[9];if((tg?"production":void 0)!=="production"&&!t)throw new Error("Atom is undefined or null");let o=r.get(t);return o||(o={d:new Map,p:new Set,n:0},r.set(t,o),i==null||i(e,t)),o},H9e=e=>{const t=Fo(e),n=t[1],r=t[3],i=t[4],o=t[5],a=t[6],s=t[13],l=[],c=d=>{try{d()}catch(f){l.push(f)}};do{a.f&&c(a.f);const d=new Set,f=d.add.bind(d);r.forEach(p=>{var v;return(v=n.get(p))==null?void 0:v.l.forEach(f)}),r.clear(),o.forEach(f),o.clear(),i.forEach(f),i.clear(),d.forEach(c),r.size&&s(e)}while(r.size||o.size||i.size);if(l.length)throw new AggregateError(l)},Z9e=e=>{const t=Fo(e),n=t[1],r=t[2],i=t[3],o=t[11],a=t[14],s=t[17],l=[],c=new WeakSet,d=new WeakSet,f=Array.from(i);for(;f.length;){const p=f[f.length-1],v=o(e,p);if(d.has(p)){f.pop();continue}if(c.has(p)){if(r.get(p)===v.n)l.push([p,v]);else if((tg?"production":void 0)!=="production"&&r.has(p))throw new Error("[Bug] invalidated atom exists");d.add(p),f.pop();continue}c.add(p);for(const x of Wq(p,v,n))c.has(x)||f.push(x)}for(let p=l.length-1;p>=0;--p){const[v,x]=l[p];let y=!1;for(const b of x.d.keys())if(b!==v&&i.has(b)){y=!0;break}y&&(a(e,v),s(e,v)),r.delete(v)}},q9e=(e,t)=>{var n,r;const i=Fo(e),o=i[1],a=i[2],s=i[3],l=i[6],c=i[7],d=i[11],f=i[12],p=i[13],v=i[14],x=i[16],y=i[17],b=d(e,t);if(Fq(b)&&(o.has(t)&&a.get(t)!==b.n||Array.from(b.d).every(([$,D])=>v(e,$).n===D)))return b;b.d.clear();let w=!0;function _(){o.has(t)&&(y(e,t),p(e),f(e))}function S($){var D;if($===t){const O=d(e,$);if(!Fq(O))if(Aq($))Q4(e,$,$.init);else throw new Error("no atom init");return K4(O)}const M=v(e,$);try{return K4(M)}finally{b.d.set($,M.n),Uq(b.v)&&Bq(t,b.v,M),(D=o.get($))==null||D.t.add(t),w||_()}}let C,j;const T={get signal(){return C||(C=new AbortController),C.signal},get setSelf(){return(tg?"production":void 0)!=="production"&&!xT(t)&&console.warn("setSelf function cannot be used with read-only atom"),!j&&xT(t)&&(j=(...$)=>{if((tg?"production":void 0)!=="production"&&w&&console.warn("setSelf function cannot be called in sync"),!w)try{return x(e,t,...$)}finally{p(e),f(e)}}),j}},E=b.n;try{const $=c(e,t,S,T);return Q4(e,t,$),J4($)&&(_T($,()=>C==null?void 0:C.abort()),$.then(_,_)),(n=l.r)==null||n.call(l,t),b}catch($){return delete b.v,b.e=$,++b.n,b}finally{w=!1,E!==b.n&&a.get(t)===E&&(a.set(t,b.n),s.add(t),(r=l.c)==null||r.call(l,t))}},G9e=(e,t)=>{const n=Fo(e),r=n[1],i=n[2],o=n[11],a=[t];for(;a.length;){const s=a.pop(),l=o(e,s);for(const c of Wq(s,l,r)){const d=o(e,c);i.set(c,d.n),a.push(c)}}},Vq=(e,t,...n)=>{const r=Fo(e),i=r[3],o=r[6],a=r[8],s=r[11],l=r[12],c=r[13],d=r[14],f=r[15],p=r[17];let v=!0;const x=b=>K4(d(e,b)),y=(b,...w)=>{var _;const S=s(e,b);try{if(b===t){if(!Aq(b))throw new Error("atom not writable");const C=S.n,j=w[0];Q4(e,b,j),p(e,b),C!==S.n&&(i.add(b),(_=o.c)==null||_.call(o,b),f(e,b));return}else return Vq(e,b,...w)}finally{v||(c(e),l(e))}};try{return a(e,t,x,y,...n)}finally{v=!1}},Y9e=(e,t)=>{var n;const r=Fo(e),i=r[1],o=r[3],a=r[6],s=r[11],l=r[15],c=r[18],d=r[19],f=s(e,t),p=i.get(t);if(p&&!Uq(f.v)){for(const[v,x]of f.d)if(!p.d.has(v)){const y=s(e,v);c(e,v).t.add(t),p.d.add(v),x!==y.n&&(o.add(v),(n=a.c)==null||n.call(a,v),l(e,v))}for(const v of p.d||[])if(!f.d.has(v)){p.d.delete(v);const x=d(e,v);x==null||x.t.delete(t)}}},Hq=(e,t)=>{var n;const r=Fo(e),i=r[1],o=r[4],a=r[6],s=r[10],l=r[11],c=r[12],d=r[13],f=r[14],p=r[16],v=l(e,t);let x=i.get(t);if(!x){f(e,t);for(const y of v.d.keys())Hq(e,y).t.add(t);if(x={l:new Set,d:new Set(v.d.keys()),t:new Set},i.set(t,x),(n=a.m)==null||n.call(a,t),xT(t)){const y=()=>{let b=!0;const w=(..._)=>{try{return p(e,t,..._)}finally{b||(d(e),c(e))}};try{const _=s(e,t,w);_&&(x.u=()=>{b=!0;try{_()}finally{b=!1}})}finally{b=!1}};o.add(y)}}return x},K9e=(e,t)=>{var n;const r=Fo(e),i=r[1],o=r[5],a=r[6],s=r[11],l=r[19],c=s(e,t);let d=i.get(t);if(d&&!d.l.size&&!Array.from(d.t).some(f=>{var p;return(p=i.get(f))==null?void 0:p.d.has(t)})){d.u&&o.add(d.u),d=void 0,i.delete(t),(n=a.u)==null||n.call(a,t);for(const f of c.d.keys()){const p=l(e,f);p==null||p.t.delete(t)}return}return d},Q4=(e,t,n)=>{const r=Fo(e)[11],i=r(e,t),o="v"in i,a=i.v;if(J4(n))for(const s of i.d.keys())Bq(t,n,r(e,s));i.v=n,delete i.e,(!o||!Object.is(a,i.v))&&(++i.n,J4(a)&&A9e(a))},X9e=(e,t)=>{const n=Fo(e)[14];return K4(n(e,t))},J9e=(e,t,...n)=>{const r=Fo(e),i=r[12],o=r[13],a=r[16];try{return a(e,t,...n)}finally{o(e),i(e)}},Q9e=(e,t,n)=>{const r=Fo(e),i=r[12],o=r[18],a=r[19],s=o(e,t).l;return s.add(n),i(e),()=>{s.delete(n),a(e,t),i(e)}},Zq=new WeakMap,Fo=e=>{const t=Zq.get(e);if((tg?"production":void 0)!=="production"&&!t)throw new Error("Store must be created by buildStore to read its building blocks");return t};function e7e(...e){const t={get(r){const i=Fo(t)[21];return i(t,r)},set(r,...i){const o=Fo(t)[22];return o(t,r,...i)},sub(r,i){const o=Fo(t)[23];return o(t,r,i)}},n=[new WeakMap,new WeakMap,new WeakMap,new Set,new Set,new Set,{},F9e,U9e,B9e,W9e,V9e,H9e,Z9e,q9e,G9e,Vq,Y9e,Hq,K9e,Q4,X9e,J9e,Q9e,void 0].map((r,i)=>e[i]||r);return Zq.set(t,Object.freeze(n)),t}const qq={};let t7e=0;function fe(e,t){const n=`atom${++t7e}`,r={toString(){return(qq?"production":void 0)!=="production"&&this.debugLabel?n+":"+this.debugLabel:n}};return typeof e=="function"?r.read=e:(r.init=e,r.read=n7e,r.write=r7e),t&&(r.write=t),r}function n7e(e){return e(this)}function r7e(e,t,n){return t(this,typeof n=="function"?n(e(this)):n)}function i7e(){return e7e()}let Fy;function ca(){return Fy||(Fy=i7e(),(qq?"production":void 0)!=="production"&&(globalThis.__JOTAI_DEFAULT_STORE__||(globalThis.__JOTAI_DEFAULT_STORE__=Fy),globalThis.__JOTAI_DEFAULT_STORE__!==Fy&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"))),Fy}const o7e={},a7e=m.createContext(void 0);function Gq(e){return m.useContext(a7e)||ca()}const wT=e=>typeof(e==null?void 0:e.then)=="function",kT=e=>{e.status||(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}))},s7e=Pe.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(kT(e),e)}),ST=new WeakMap,Yq=(e,t)=>{let n=ST.get(e);return n||(n=new Promise((r,i)=>{let o=e;const a=c=>d=>{o===c&&r(d)},s=c=>d=>{o===c&&i(d)},l=()=>{try{const c=t();wT(c)?(ST.set(c,n),o=c,c.then(a(c),s(c)),_T(c,l)):r(c)}catch(c){i(c)}};e.then(a(e),s(e)),_T(e,l)}),ST.set(e,n)),n};function J(e,t){const{delay:n,unstable_promiseStatus:r=!Pe.use}={},i=Gq(),[[o,a,s],l]=m.useReducer(d=>{const f=i.get(e);return Object.is(d[0],f)&&d[1]===i&&d[2]===e?d:[f,i,e]},void 0,()=>[i.get(e),i,e]);let c=o;if((a!==i||s!==e)&&(l(),c=i.get(e)),m.useEffect(()=>{const d=i.sub(e,()=>{if(r)try{const f=i.get(e);wT(f)&&kT(Yq(f,()=>i.get(e)))}catch{}if(typeof n=="number"){setTimeout(l,n);return}l()});return l(),d},[i,e,n,r]),m.useDebugValue(c),wT(c)){const d=Yq(c,()=>i.get(e));return r&&kT(d),s7e(d)}return c}function Ee(e,t){const n=Gq();return m.useCallback((...r)=>{if((o7e?"production":void 0)!=="production"&&!("write"in e))throw new Error("not writable atom");return n.set(e,...r)},[n,e])}function Vl(e,t){return[J(e),Ee(e)]}var Kq=Symbol.for("immer-nothing"),Xq=Symbol.for("immer-draftable"),Vn=Symbol.for("immer-state");function rl(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Uy=Object.getPrototypeOf;function ng(e){return!!e&&!!e[Vn]}function td(e){var t;return e?Qq(e)||Array.isArray(e)||!!e[Xq]||!!((t=e.constructor)!=null&&t[Xq])||Wy(e)||t3(e):!1}var l7e=Object.prototype.constructor.toString(),Jq=new WeakMap;function Qq(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;const n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(n===Object)return!0;if(typeof n!="function")return!1;let r=Jq.get(n);return r===void 0&&(r=Function.toString.call(n),Jq.set(n,r)),r===l7e}function By(e,t,n=!0){e3(e)===0?(n?Reflect.ownKeys(e):Object.keys(e)).forEach(r=>{t(r,e[r],e)}):e.forEach((r,i)=>t(i,r,e))}function e3(e){const t=e[Vn];return t?t.type_:Array.isArray(e)?1:Wy(e)?2:t3(e)?3:0}function CT(e,t){return e3(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function eG(e,t,n){const r=e3(e);r===2?e.set(t,n):r===3?e.add(n):e[t]=n}function u7e(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function Wy(e){return e instanceof Map}function t3(e){return e instanceof Set}function io(e){return e.copy_||e.base_}function jT(e,t){if(Wy(e))return new Map(e);if(t3(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=Qq(e);if(t===!0||t==="class_only"&&!n){const r=Object.getOwnPropertyDescriptors(e);delete r[Vn];let i=Reflect.ownKeys(r);for(let o=0;o1&&Object.defineProperties(e,{set:n3,add:n3,clear:n3,delete:n3}),Object.freeze(e),t&&Object.values(e).forEach(n=>TT(n,!0))),e}function c7e(){rl(2)}var n3={value:c7e};function r3(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var IT={};function up(e){const t=IT[e];return t||rl(0,e),t}function d7e(e,t){IT[e]||(IT[e]=t)}var Vy;function i3(){return Vy}function f7e(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function tG(e,t){t&&(up("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function ET(e){NT(e),e.drafts_.forEach(h7e),e.drafts_=null}function NT(e){e===Vy&&(Vy=e.parent_)}function nG(e){return Vy=f7e(Vy,e)}function h7e(e){const t=e[Vn];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function rG(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return e!==void 0&&e!==n?(n[Vn].modified_&&(ET(t),rl(4)),td(e)&&(e=o3(t,e),t.parent_||a3(t,e)),t.patches_&&up("Patches").generateReplacementPatches_(n[Vn].base_,e,t.patches_,t.inversePatches_)):e=o3(t,n,[]),ET(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==Kq?e:void 0}function o3(e,t,n){if(r3(t))return t;const r=e.immer_.shouldUseStrictIteration(),i=t[Vn];if(!i)return By(t,(o,a)=>iG(e,i,t,o,a,n),r),t;if(i.scope_!==e)return t;if(!i.modified_)return a3(e,i.base_,!0),i.base_;if(!i.finalized_){i.finalized_=!0,i.scope_.unfinalizedDrafts_--;const o=i.copy_;let a=o,s=!1;i.type_===3&&(a=new Set(o),o.clear(),s=!0),By(a,(l,c)=>iG(e,i,o,l,c,n,s),r),a3(e,o,!1),n&&e.patches_&&up("Patches").generatePatches_(i,n,e.patches_,e.inversePatches_)}return i.copy_}function iG(e,t,n,r,i,o,a){if(i==null||typeof i!="object"&&!a)return;const s=r3(i);if(!(s&&!a)){if(ng(i)){const l=o&&t&&t.type_!==3&&!CT(t.assigned_,r)?o.concat(r):void 0,c=o3(e,i,l);if(eG(n,r,c),ng(c))e.canAutoFreeze_=!1;else return}else a&&n.add(i);if(td(i)&&!s){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[r]===i&&s)return;o3(e,i),(!t||!t.scope_.parent_)&&typeof r!="symbol"&&(Wy(n)?n.has(r):Object.prototype.propertyIsEnumerable.call(n,r))&&a3(e,i)}}}function a3(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&TT(t,n)}function p7e(e,t){const n=Array.isArray(e),r={type_:n?1:0,scope_:t?t.scope_:i3(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=r,o=$T;n&&(i=[r],o=Hy);const{revoke:a,proxy:s}=Proxy.revocable(i,o);return r.draft_=s,r.revoke_=a,s}var $T={get(e,t){if(t===Vn)return e;const n=io(e);if(!CT(n,t))return m7e(e,n,t);const r=n[t];return e.finalized_||!td(r)?r:r===MT(e.base_,t)?(RT(e),e.copy_[t]=Zy(r,e)):r},has(e,t){return t in io(e)},ownKeys(e){return Reflect.ownKeys(io(e))},set(e,t,n){const r=oG(io(e),t);if(r!=null&&r.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){const i=MT(io(e),t),o=i==null?void 0:i[Vn];if(o&&o.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(u7e(n,i)&&(n!==void 0||CT(e.base_,t)))return!0;RT(e),nd(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_[t]=!0),!0},deleteProperty(e,t){return MT(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,RT(e),nd(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const n=io(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:r.enumerable,value:n[t]}},defineProperty(){rl(11)},getPrototypeOf(e){return Uy(e.base_)},setPrototypeOf(){rl(12)}},Hy={};By($T,(e,t)=>{Hy[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),Hy.deleteProperty=function(e,t){return Hy.set.call(this,e,t,void 0)},Hy.set=function(e,t,n){return $T.set.call(this,e[0],t,n,e[0])};function MT(e,t){const n=e[Vn];return(n?io(n):e)[t]}function m7e(e,t,n){var i;const r=oG(t,n);return r?"value"in r?r.value:(i=r.get)==null?void 0:i.call(e.draft_):void 0}function oG(e,t){if(!(t in e))return;let n=Uy(e);for(;n;){const r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Uy(n)}}function nd(e){e.modified_||(e.modified_=!0,e.parent_&&nd(e.parent_))}function RT(e){e.copy_||(e.copy_=jT(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var g7e=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(t,n,r)=>{if(typeof t=="function"&&typeof n!="function"){const o=n;n=t;const a=this;return function(s=o,...l){return a.produce(s,c=>n.call(this,c,...l))}}typeof n!="function"&&rl(6),r!==void 0&&typeof r!="function"&&rl(7);let i;if(td(t)){const o=nG(this),a=Zy(t,void 0);let s=!0;try{i=n(a),s=!1}finally{s?ET(o):NT(o)}return tG(o,r),rG(i,o)}else if(!t||typeof t!="object"){if(i=n(t),i===void 0&&(i=t),i===Kq&&(i=void 0),this.autoFreeze_&&TT(i,!0),r){const o=[],a=[];up("Patches").generateReplacementPatches_(t,i,o,a),r(o,a)}return i}else rl(1,t)},this.produceWithPatches=(t,n)=>{if(typeof t=="function")return(o,...a)=>this.produceWithPatches(o,s=>t(s,...a));let r,i;return[this.produce(t,n,(o,a)=>{r=o,i=a}),r,i]},typeof(e==null?void 0:e.autoFreeze)=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof(e==null?void 0:e.useStrictShallowCopy)=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),typeof(e==null?void 0:e.useStrictIteration)=="boolean"&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){td(e)||rl(8),ng(e)&&(e=v7e(e));const t=nG(this),n=Zy(e,void 0);return n[Vn].isManual_=!0,NT(t),n}finishDraft(e,t){const n=e&&e[Vn];(!n||!n.isManual_)&&rl(9);const{scope_:r}=n;return tG(r,t),rG(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const i=t[n];if(i.path.length===0&&i.op==="replace"){e=i.value;break}}n>-1&&(t=t.slice(n+1));const r=up("Patches").applyPatches_;return ng(e)?r(e,t):this.produce(e,i=>r(i,t))}};function Zy(e,t){const n=Wy(e)?up("MapSet").proxyMap_(e,t):t3(e)?up("MapSet").proxySet_(e,t):p7e(e,t);return(t?t.scope_:i3()).drafts_.push(n),n}function v7e(e){return ng(e)||rl(10,e),aG(e)}function aG(e){if(!td(e)||r3(e))return e;const t=e[Vn];let n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=jT(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=jT(e,!0);return By(n,(i,o)=>{eG(n,i,aG(o))},r),t&&(t.finalized_=!1),n}function y7e(){class e extends Map{constructor(l,c){super(),this[Vn]={type_:2,parent_:c,scope_:c?c.scope_:i3(),modified_:!1,finalized_:!1,copy_:void 0,assigned_:void 0,base_:l,draft_:this,isManual_:!1,revoked_:!1}}get size(){return io(this[Vn]).size}has(l){return io(this[Vn]).has(l)}set(l,c){const d=this[Vn];return a(d),(!io(d).has(l)||io(d).get(l)!==c)&&(n(d),nd(d),d.assigned_.set(l,!0),d.copy_.set(l,c),d.assigned_.set(l,!0)),this}delete(l){if(!this.has(l))return!1;const c=this[Vn];return a(c),n(c),nd(c),c.base_.has(l)?c.assigned_.set(l,!1):c.assigned_.delete(l),c.copy_.delete(l),!0}clear(){const l=this[Vn];a(l),io(l).size&&(n(l),nd(l),l.assigned_=new Map,By(l.base_,c=>{l.assigned_.set(c,!1)}),l.copy_.clear())}forEach(l,c){const d=this[Vn];io(d).forEach((f,p,v)=>{l.call(c,this.get(p),p,this)})}get(l){const c=this[Vn];a(c);const d=io(c).get(l);if(c.finalized_||!td(d)||d!==c.base_.get(l))return d;const f=Zy(d,c);return n(c),c.copy_.set(l,f),f}keys(){return io(this[Vn]).keys()}values(){const l=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{const c=l.next();return c.done?c:{done:!1,value:this.get(c.value)}}}}entries(){const l=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{const c=l.next();if(c.done)return c;const d=this.get(c.value);return{done:!1,value:[c.value,d]}}}}[Symbol.iterator](){return this.entries()}}function t(s,l){return new e(s,l)}function n(s){s.copy_||(s.assigned_=new Map,s.copy_=new Map(s.base_))}class r extends Set{constructor(l,c){super(),this[Vn]={type_:3,parent_:c,scope_:c?c.scope_:i3(),modified_:!1,finalized_:!1,copy_:void 0,base_:l,draft_:this,drafts_:new Map,revoked_:!1,isManual_:!1}}get size(){return io(this[Vn]).size}has(l){const c=this[Vn];return a(c),c.copy_?!!(c.copy_.has(l)||c.drafts_.has(l)&&c.copy_.has(c.drafts_.get(l))):c.base_.has(l)}add(l){const c=this[Vn];return a(c),this.has(l)||(o(c),nd(c),c.copy_.add(l)),this}delete(l){if(!this.has(l))return!1;const c=this[Vn];return a(c),o(c),nd(c),c.copy_.delete(l)||(c.drafts_.has(l)?c.copy_.delete(c.drafts_.get(l)):!1)}clear(){const l=this[Vn];a(l),io(l).size&&(o(l),nd(l),l.copy_.clear())}values(){const l=this[Vn];return a(l),o(l),l.copy_.values()}entries(){const l=this[Vn];return a(l),o(l),l.copy_.entries()}keys(){return this.values()}[Symbol.iterator](){return this.values()}forEach(l,c){const d=this.values();let f=d.next();for(;!f.done;)l.call(c,f.value,f.value,this),f=d.next()}}function i(s,l){return new r(s,l)}function o(s){s.copy_||(s.copy_=new Set,s.base_.forEach(l=>{if(td(l)){const c=Zy(l,s);s.drafts_.set(l,c),s.copy_.add(c)}else s.copy_.add(l)}))}function a(s){s.revoked_&&rl(3,JSON.stringify(io(s)))}d7e("MapSet",{proxyMap_:t,proxySet_:i})}var b7e=new g7e,sG=b7e.produce;function Co(e){const t=fe(e,(n,r,i)=>r(t,sG(n(t),typeof i=="function"?i:()=>i)));return t}function lG(e){const t=fe(e);let n;return fe(r=>r(t),(r,i,o)=>{n!==void 0&&cancelAnimationFrame(n),n=requestAnimationFrame(()=>{n=void 0,i(t,o)})})}function x7e(e=6e4){const t=Co({});return n=>fe(r=>n==null?!1:!!r(t)[n],(r,i)=>{if(n==null)return;const o=setTimeout(()=>{i(t,a=>{delete a[n]})},e);i(t,a=>{a[n]&&clearTimeout(a[n]),a[n]=o})})}const LT={values:[],history:[]},uG=fe(void 0),qy=fe(void 0),cG=fe(void 0),cp=fe(void 0),dG=fe(void 0),rg=fe(void 0),s3=fe(void 0),fG=fe(void 0),hG=fe(void 0),pG=fe(void 0),mG=fe(void 0),dp=fe(void 0),gG=fe(void 0);fe(void 0);const _7e=fe(void 0),vG=fe(void 0),PT=fe(void 0),yG=fe(void 0),Gy=fe(void 0),bG=fe(void 0),xG=fe(void 0),OT=fe(void 0),zT=fe(void 0),_G=fe(LT),wG=fe(LT),kG=lG(void 0),SG=fe(void 0),CG=fe(void 0),l3=fe(void 0),jG=fe(LT),Hl=fe(void 0),Zu=fe(void 0),TG=lG(void 0),w7e=["num_push_messages_rx_success","num_push_messages_rx_failure","num_push_entries_rx_success","num_push_entries_rx_failure","num_push_entries_rx_duplicate","num_pull_response_messages_rx_success","num_pull_response_messages_rx_failure","num_pull_response_entries_rx_success","num_pull_response_entries_rx_failure","num_pull_response_entries_rx_duplicate"],k7e=Object.fromEntries(w7e.map(e=>[e,0])),IG=fe({value:k7e,history:[]}),EG=fe(void 0),NG=fe(void 0),$G=fe(void 0),MG=fe(void 0),DT=fe(void 0),RG=fe(void 0),u3=fe(void 0),LG=fe(void 0),PG=fe(void 0),c3=fe(void 0),S7e="_outer-container_13cf2_1",C7e="_inner-container_13cf2_12",OG={outerContainer:S7e,innerContainer:C7e},zG=Object.freeze({status:"aborted"});function be(e,t,n){function r(s,l){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:l,constr:a,traits:new Set},enumerable:!1}),s._zod.traits.has(e))return;s._zod.traits.add(e),t(s,l);const c=a.prototype,d=Object.keys(c);for(let f=0;f{var l,c;return n!=null&&n.Parent&&s instanceof n.Parent?!0:(c=(l=s==null?void 0:s._zod)==null?void 0:l.traits)==null?void 0:c.has(e)}}),Object.defineProperty(a,"name",{value:e}),a}const DG=Symbol("zod_brand");class fp extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class d3 extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}const f3={};function da(e){return e&&Object.assign(f3,e),f3}function j7e(e){return e}function T7e(e){return e}function I7e(e){}function E7e(e){throw new Error}function N7e(e){}function AT(e){const t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,r])=>t.indexOf(+n)===-1).map(([n,r])=>r)}function qe(e,t="|"){return e.map(n=>Rt(n)).join(t)}function h3(e,t){return typeof t=="bigint"?t.toString():t}function Yy(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function hp(e){return e==null}function p3(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function AG(e,t){const n=(e.toString().split(".")[1]||"").length,r=t.toString();let i=(r.split(".")[1]||"").length;if(i===0&&/\d?e-\d?/.test(r)){const l=r.match(/\d?e-(\d?)/);l!=null&&l[1]&&(i=Number.parseInt(l[1]))}const o=n>i?n:i,a=Number.parseInt(e.toFixed(o).replace(".","")),s=Number.parseInt(t.toFixed(o).replace(".",""));return a%s/10**o}const FG=Symbol("evaluating");function vn(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==FG)return r===void 0&&(r=FG,r=n()),r},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function $7e(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function zf(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function rd(...e){const t={};for(const n of e){const r=Object.getOwnPropertyDescriptors(n);Object.assign(t,r)}return Object.defineProperties({},t)}function M7e(e){return rd(e._zod.def)}function R7e(e,t){return t?t.reduce((n,r)=>n==null?void 0:n[r],e):e}function L7e(e){const t=Object.keys(e),n=t.map(r=>e[r]);return Promise.all(n).then(r=>{const i={};for(let o=0;o{};function ig(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const BG=Yy(()=>{var e;if(typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)!=null&&e.includes("Cloudflare")))return!1;try{const t=Function;return new t(""),!0}catch{return!1}});function pp(e){if(ig(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const n=t.prototype;return!(ig(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function m3(e){return pp(e)?{...e}:Array.isArray(e)?[...e]:e}function O7e(e){let t=0;for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}const z7e=e=>{const t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},g3=new Set(["string","number","symbol"]),WG=new Set(["string","number","bigint","boolean","symbol","undefined"]);function id(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function il(e,t,n){const r=new e._zod.constr(t??e._zod.def);return(!t||n!=null&&n.parent)&&(r._zod.parent=e),r}function Oe(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if((t==null?void 0:t.message)!==void 0){if((t==null?void 0:t.error)!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function D7e(e){let t;return new Proxy({},{get(n,r,i){return t??(t=e()),Reflect.get(t,r,i)},set(n,r,i,o){return t??(t=e()),Reflect.set(t,r,i,o)},has(n,r){return t??(t=e()),Reflect.has(t,r)},deleteProperty(n,r){return t??(t=e()),Reflect.deleteProperty(t,r)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??(t=e()),Reflect.defineProperty(t,r,i)}})}function Rt(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function VG(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const HG={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},ZG={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function qG(e,t){const n=e._zod.def,r=rd(e._zod.def,{get shape(){const i={};for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&(i[o]=n.shape[o])}return zf(this,"shape",i),i},checks:[]});return il(e,r)}function GG(e,t){const n=e._zod.def,r=rd(e._zod.def,{get shape(){const i={...e._zod.def.shape};for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&delete i[o]}return zf(this,"shape",i),i},checks:[]});return il(e,r)}function YG(e,t){if(!pp(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0)throw new Error("Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.");const r=rd(e._zod.def,{get shape(){const i={...e._zod.def.shape,...t};return zf(this,"shape",i),i},checks:[]});return il(e,r)}function KG(e,t){if(!pp(t))throw new Error("Invalid input to safeExtend: expected a plain object");const n={...e._zod.def,get shape(){const r={...e._zod.def.shape,...t};return zf(this,"shape",r),r},checks:e._zod.def.checks};return il(e,n)}function XG(e,t){const n=rd(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t._zod.def.shape};return zf(this,"shape",r),r},get catchall(){return t._zod.def.catchall},checks:[]});return il(e,n)}function JG(e,t,n){const r=rd(t._zod.def,{get shape(){const i=t._zod.def.shape,o={...i};if(n)for(const a in n){if(!(a in i))throw new Error(`Unrecognized key: "${a}"`);n[a]&&(o[a]=e?new e({type:"optional",innerType:i[a]}):i[a])}else for(const a in i)o[a]=e?new e({type:"optional",innerType:i[a]}):i[a];return zf(this,"shape",o),o},checks:[]});return il(t,r)}function QG(e,t,n){const r=rd(t._zod.def,{get shape(){const i=t._zod.def.shape,o={...i};if(n)for(const a in n){if(!(a in o))throw new Error(`Unrecognized key: "${a}"`);n[a]&&(o[a]=new e({type:"nonoptional",innerType:i[a]}))}else for(const a in i)o[a]=new e({type:"nonoptional",innerType:i[a]});return zf(this,"shape",o),o},checks:[]});return il(t,r)}function mp(e,t=0){var n;if(e.aborted===!0)return!0;for(let r=t;r{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function Ky(e){return typeof e=="string"?e:e==null?void 0:e.message}function ql(e,t,n){var i,o,a,s,l,c;const r={...e,path:e.path??[]};if(!e.message){const d=Ky((a=(o=(i=e.inst)==null?void 0:i._zod.def)==null?void 0:o.error)==null?void 0:a.call(o,e))??Ky((s=t==null?void 0:t.error)==null?void 0:s.call(t,e))??Ky((l=n.customError)==null?void 0:l.call(n,e))??Ky((c=n.localeError)==null?void 0:c.call(n,e))??"Invalid input";r.message=d}return delete r.inst,delete r.continue,t!=null&&t.reportInput||delete r.input,r}function v3(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function y3(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function og(...e){const[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function A7e(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function eY(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;rt.toString(16).padStart(2,"0")).join("")}class V7e{constructor(...t){}}const nY=Object.freeze(Object.defineProperty({__proto__:null,BIGINT_FORMAT_RANGES:ZG,Class:V7e,NUMBER_FORMAT_RANGES:HG,aborted:mp,allowsEval:BG,assert:N7e,assertEqual:j7e,assertIs:I7e,assertNever:E7e,assertNotEqual:T7e,assignProp:zf,base64ToUint8Array:eY,base64urlToUint8Array:F7e,cached:Yy,captureStackTrace:UT,cleanEnum:A7e,cleanRegex:p3,clone:il,cloneDef:M7e,createTransparentProxy:D7e,defineLazy:vn,esc:FT,escapeRegex:id,extend:YG,finalizeIssue:ql,floatSafeRemainder:AG,getElementAtPath:R7e,getEnumValues:AT,getLengthableOrigin:y3,getParsedType:z7e,getSizableOrigin:v3,hexToUint8Array:B7e,isObject:ig,isPlainObject:pp,issue:og,joinValues:qe,jsonStringifyReplacer:h3,merge:XG,mergeDefs:rd,normalizeParams:Oe,nullish:hp,numKeys:O7e,objectClone:$7e,omit:GG,optionalKeys:VG,partial:JG,pick:qG,prefixIssues:Zl,primitiveTypes:WG,promiseAllObject:L7e,propertyKeyTypes:g3,randomString:P7e,required:QG,safeExtend:KG,shallowClone:m3,slugify:UG,stringifyPrimitive:Rt,uint8ArrayToBase64:tY,uint8ArrayToBase64url:U7e,uint8ArrayToHex:W7e,unwrapMessage:Ky},Symbol.toStringTag,{value:"Module"})),rY=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,h3,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},BT=be("$ZodError",rY),vs=be("$ZodError",rY,{Parent:Error});function WT(e,t=n=>n.message){const n={},r=[];for(const i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function VT(e,t=n=>n.message){const n={_errors:[]},r=i=>{for(const o of i.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(a=>r({issues:a}));else if(o.code==="invalid_key")r({issues:o.issues});else if(o.code==="invalid_element")r({issues:o.issues});else if(o.path.length===0)n._errors.push(t(o));else{let a=n,s=0;for(;sn.message){const n={errors:[]},r=(i,o=[])=>{var a,s;for(const l of i.issues)if(l.code==="invalid_union"&&l.errors.length)l.errors.map(c=>r({issues:c},l.path));else if(l.code==="invalid_key")r({issues:l.issues},l.path);else if(l.code==="invalid_element")r({issues:l.issues},l.path);else{const c=[...o,...l.path];if(c.length===0){n.errors.push(t(l));continue}let d=n,f=0;for(;ftypeof r=="object"?r.key:r);for(const r of n)typeof r=="number"?t.push(`[${r}]`):typeof r=="symbol"?t.push(`[${JSON.stringify(String(r))}]`):/[^\w$]/.test(r)?t.push(`[${JSON.stringify(r)}]`):(t.length&&t.push("."),t.push(r));return t.join("")}function aY(e){var r;const t=[],n=[...e.issues].sort((i,o)=>(i.path??[]).length-(o.path??[]).length);for(const i of n)t.push(`\u2716 ${i.message}`),(r=i.path)!=null&&r.length&&t.push(` \u2192 at ${oY(i.path)}`);return t.join(` +`)}const Xy=e=>(t,n,r,i)=>{const o=r?Object.assign(r,{async:!1}):{async:!1},a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise)throw new fp;if(a.issues.length){const s=new((i==null?void 0:i.Err)??e)(a.issues.map(l=>ql(l,o,da())));throw UT(s,i==null?void 0:i.callee),s}return a.value},HT=Xy(vs),Jy=e=>async(t,n,r,i)=>{const o=r?Object.assign(r,{async:!0}):{async:!0};let a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise&&(a=await a),a.issues.length){const s=new((i==null?void 0:i.Err)??e)(a.issues.map(l=>ql(l,o,da())));throw UT(s,i==null?void 0:i.callee),s}return a.value},ZT=Jy(vs),Qy=e=>(t,n,r)=>{const i=r?{...r,async:!1}:{async:!1},o=t._zod.run({value:n,issues:[]},i);if(o instanceof Promise)throw new fp;return o.issues.length?{success:!1,error:new(e??BT)(o.issues.map(a=>ql(a,i,da())))}:{success:!0,data:o.value}},sY=Qy(vs),eb=e=>async(t,n,r)=>{const i=r?Object.assign(r,{async:!0}):{async:!0};let o=t._zod.run({value:n,issues:[]},i);return o instanceof Promise&&(o=await o),o.issues.length?{success:!1,error:new e(o.issues.map(a=>ql(a,i,da())))}:{success:!0,data:o.value}},lY=eb(vs),qT=e=>(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Xy(e)(t,n,i)},H7e=qT(vs),GT=e=>(t,n,r)=>Xy(e)(t,n,r),Z7e=GT(vs),YT=e=>async(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Jy(e)(t,n,i)},q7e=YT(vs),KT=e=>async(t,n,r)=>Jy(e)(t,n,r),G7e=KT(vs),XT=e=>(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Qy(e)(t,n,i)},Y7e=XT(vs),JT=e=>(t,n,r)=>Qy(e)(t,n,r),K7e=JT(vs),QT=e=>async(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return eb(e)(t,n,i)},X7e=QT(vs),eI=e=>async(t,n,r)=>eb(e)(t,n,r),J7e=eI(vs),uY=/^[cC][^\s-]{8,}$/,cY=/^[0-9a-z]+$/,dY=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,fY=/^[0-9a-vA-V]{20}$/,hY=/^[A-Za-z0-9]{27}$/,pY=/^[a-zA-Z0-9_-]{21}$/,mY=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Q7e=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,gY=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,ag=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,eTe=ag(4),tTe=ag(6),nTe=ag(7),vY=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,rTe=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,iTe=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,yY=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,oTe=yY,aTe=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,sTe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function bY(){return new RegExp(sTe,"u")}const xY=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,_Y=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,wY=e=>{const t=id(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},kY=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,SY=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,CY=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,tI=/^[A-Za-z0-9_-]*$/,jY=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,TY=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,IY=/^\+(?:[0-9]){6,14}[0-9]$/,EY="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",NY=new RegExp(`^${EY}$`);function $Y(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function MY(e){return new RegExp(`^${$Y(e)}$`)}function RY(e){const t=$Y({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const r=`${t}(?:${n.join("|")})`;return new RegExp(`^${EY}T(?:${r})$`)}const LY=e=>{const t=e?`[\\s\\S]{${(e==null?void 0:e.minimum)??0},${(e==null?void 0:e.maximum)??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},PY=/^-?\d+n?$/,OY=/^-?\d+$/,zY=/^-?\d+(?:\.\d+)?/,DY=/^(?:true|false)$/i,AY=/^null$/i,FY=/^undefined$/i,UY=/^[^A-Z]*$/,BY=/^[^a-z]*$/,WY=/^[0-9a-fA-F]*$/;function tb(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function nb(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}const lTe=/^[0-9a-fA-F]{32}$/,uTe=tb(22,"=="),cTe=nb(22),dTe=/^[0-9a-fA-F]{40}$/,fTe=tb(27,"="),hTe=nb(27),pTe=/^[0-9a-fA-F]{64}$/,mTe=tb(43,"="),gTe=nb(43),vTe=/^[0-9a-fA-F]{96}$/,yTe=tb(64,""),bTe=nb(64),xTe=/^[0-9a-fA-F]{128}$/,_Te=tb(86,"=="),wTe=nb(86),nI=Object.freeze(Object.defineProperty({__proto__:null,base64:CY,base64url:tI,bigint:PY,boolean:DY,browserEmail:aTe,cidrv4:kY,cidrv6:SY,cuid:uY,cuid2:cY,date:NY,datetime:RY,domain:TY,duration:mY,e164:IY,email:vY,emoji:bY,extendedDuration:Q7e,guid:gY,hex:WY,hostname:jY,html5Email:rTe,idnEmail:oTe,integer:OY,ipv4:xY,ipv6:_Y,ksuid:hY,lowercase:UY,mac:wY,md5_base64:uTe,md5_base64url:cTe,md5_hex:lTe,nanoid:pY,null:AY,number:zY,rfc5322Email:iTe,sha1_base64:fTe,sha1_base64url:hTe,sha1_hex:dTe,sha256_base64:mTe,sha256_base64url:gTe,sha256_hex:pTe,sha384_base64:yTe,sha384_base64url:bTe,sha384_hex:vTe,sha512_base64:_Te,sha512_base64url:wTe,sha512_hex:xTe,string:LY,time:MY,ulid:dY,undefined:FY,unicodeEmail:yY,uppercase:BY,uuid:ag,uuid4:eTe,uuid6:tTe,uuid7:nTe,xid:fY},Symbol.toStringTag,{value:"Module"})),Gr=be("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),VY={number:"number",bigint:"bigint",object:"date"},rI=be("$ZodCheckLessThan",(e,t)=>{Gr.init(e,t);const n=VY[typeof t.value];e._zod.onattach.push(r=>{const i=r._zod.bag,o=(t.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?r.value<=t.value:r.value{Gr.init(e,t);const n=VY[typeof t.value];e._zod.onattach.push(r=>{const i=r._zod.bag,o=(t.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>o&&(t.inclusive?i.minimum=t.value:i.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),HY=be("$ZodCheckMultipleOf",(e,t)=>{Gr.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):AG(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),ZY=be("$ZodCheckNumberFormat",(e,t)=>{var a;Gr.init(e,t),t.format=t.format||"float64";const n=(a=t.format)==null?void 0:a.includes("int"),r=n?"int":"number",[i,o]=HG[t.format];e._zod.onattach.push(s=>{const l=s._zod.bag;l.format=t.format,l.minimum=i,l.maximum=o,n&&(l.pattern=OY)}),e._zod.check=s=>{const l=s.value;if(n){if(!Number.isInteger(l)){s.issues.push({expected:r,format:t.format,code:"invalid_type",continue:!1,input:l,inst:e});return}if(!Number.isSafeInteger(l)){l>0?s.issues.push({input:l,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort}):s.issues.push({input:l,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort});return}}lo&&s.issues.push({origin:"number",input:l,code:"too_big",maximum:o,inst:e})}}),qY=be("$ZodCheckBigIntFormat",(e,t)=>{Gr.init(e,t);const[n,r]=ZG[t.format];e._zod.onattach.push(i=>{const o=i._zod.bag;o.format=t.format,o.minimum=n,o.maximum=r}),e._zod.check=i=>{const o=i.value;or&&i.issues.push({origin:"bigint",input:o,code:"too_big",maximum:r,inst:e})}}),GY=be("$ZodCheckMaxSize",(e,t)=>{var n;Gr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!hp(i)&&i.size!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{const i=r.value;i.size<=t.maximum||r.issues.push({origin:v3(i),code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),YY=be("$ZodCheckMinSize",(e,t)=>{var n;Gr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!hp(i)&&i.size!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>i&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{const i=r.value;i.size>=t.minimum||r.issues.push({origin:v3(i),code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),KY=be("$ZodCheckSizeEquals",(e,t)=>{var n;Gr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!hp(i)&&i.size!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag;i.minimum=t.size,i.maximum=t.size,i.size=t.size}),e._zod.check=r=>{const i=r.value,o=i.size;if(o===t.size)return;const a=o>t.size;r.issues.push({origin:v3(i),...a?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),XY=be("$ZodCheckMaxLength",(e,t)=>{var n;Gr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!hp(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{const i=r.value;if(i.length<=t.maximum)return;const o=y3(i);r.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),JY=be("$ZodCheckMinLength",(e,t)=>{var n;Gr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!hp(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>i&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{const i=r.value;if(i.length>=t.minimum)return;const o=y3(i);r.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),QY=be("$ZodCheckLengthEquals",(e,t)=>{var n;Gr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!hp(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag;i.minimum=t.length,i.maximum=t.length,i.length=t.length}),e._zod.check=r=>{const i=r.value,o=i.length;if(o===t.length)return;const a=y3(i),s=o>t.length;r.issues.push({origin:a,...s?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),rb=be("$ZodCheckStringFormat",(e,t)=>{var n,r;Gr.init(e,t),e._zod.onattach.push(i=>{const o=i._zod.bag;o.format=t.format,t.pattern&&(o.patterns??(o.patterns=new Set),o.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=i=>{t.pattern.lastIndex=0,!t.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:t.format,input:i.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),eK=be("$ZodCheckRegex",(e,t)=>{rb.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),tK=be("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=UY),rb.init(e,t)}),nK=be("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=BY),rb.init(e,t)}),rK=be("$ZodCheckIncludes",(e,t)=>{Gr.init(e,t);const n=id(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(i=>{const o=i._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=i=>{i.value.includes(t.includes,t.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:i.value,inst:e,continue:!t.abort})}}),iK=be("$ZodCheckStartsWith",(e,t)=>{Gr.init(e,t);const n=new RegExp(`^${id(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),oK=be("$ZodCheckEndsWith",(e,t)=>{Gr.init(e,t);const n=new RegExp(`.*${id(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}});function aK(e,t,n){e.issues.length&&t.issues.push(...Zl(n,e.issues))}const sK=be("$ZodCheckProperty",(e,t)=>{Gr.init(e,t),e._zod.check=n=>{const r=t.schema._zod.run({value:n.value[t.property],issues:[]},{});if(r instanceof Promise)return r.then(i=>aK(i,n,t.property));aK(r,n,t.property)}}),lK=be("$ZodCheckMimeType",(e,t)=>{Gr.init(e,t);const n=new Set(t.mime);e._zod.onattach.push(r=>{r._zod.bag.mime=t.mime}),e._zod.check=r=>{n.has(r.value.type)||r.issues.push({code:"invalid_value",values:t.mime,input:r.value.type,inst:e,continue:!t.abort})}}),uK=be("$ZodCheckOverwrite",(e,t)=>{Gr.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class cK{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const n=t.split(` +`).filter(o=>o),r=Math.min(...n.map(o=>o.length-o.trimStart().length)),i=n.map(o=>o.slice(r)).map(o=>" ".repeat(this.indent*2)+o);for(const o of i)this.content.push(o)}compile(){const t=Function,n=this==null?void 0:this.args,r=[...((this==null?void 0:this.content)??[""]).map(i=>` ${i}`)];return new t(...n,r.join(` +`))}}const dK={major:4,minor:1,patch:13},Bt=be("$ZodType",(e,t)=>{var i;var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=dK;const r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(const o of r)for(const a of o._zod.onattach)a(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),(i=e._zod.deferred)==null||i.push(()=>{e._zod.run=e._zod.parse});else{const o=(s,l,c)=>{let d=mp(s),f;for(const p of l){if(p._zod.def.when){if(!p._zod.def.when(s))continue}else if(d)continue;const v=s.issues.length,x=p._zod.check(s);if(x instanceof Promise&&(c==null?void 0:c.async)===!1)throw new fp;if(f||x instanceof Promise)f=(f??Promise.resolve()).then(async()=>{await x,s.issues.length!==v&&(d||(d=mp(s,v)))});else{if(s.issues.length===v)continue;d||(d=mp(s,v))}}return f?f.then(()=>s):s},a=(s,l,c)=>{if(mp(s))return s.aborted=!0,s;const d=o(l,r,c);if(d instanceof Promise){if(c.async===!1)throw new fp;return d.then(f=>e._zod.parse(f,c))}return e._zod.parse(d,c)};e._zod.run=(s,l)=>{if(l.skipChecks)return e._zod.parse(s,l);if(l.direction==="backward"){const d=e._zod.parse({value:s.value,issues:[]},{...l,skipChecks:!0});return d instanceof Promise?d.then(f=>a(f,s,l)):a(d,s,l)}const c=e._zod.parse(s,l);if(c instanceof Promise){if(l.async===!1)throw new fp;return c.then(d=>o(d,r,l))}return o(c,r,l)}}e["~standard"]={validate:o=>{var a;try{const s=sY(e,o);return s.success?{value:s.data}:{issues:(a=s.error)==null?void 0:a.issues}}catch{return lY(e,o).then(s=>{var l;return s.success?{value:s.data}:{issues:(l=s.error)==null?void 0:l.issues}})}},vendor:"zod",version:1}}),ib=be("$ZodString",(e,t)=>{var n;Bt.init(e,t),e._zod.pattern=[...((n=e==null?void 0:e._zod.bag)==null?void 0:n.patterns)??[]].pop()??LY(e._zod.bag),e._zod.parse=(r,i)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),yr=be("$ZodStringFormat",(e,t)=>{rb.init(e,t),ib.init(e,t)}),fK=be("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=gY),yr.init(e,t)}),hK=be("$ZodUUID",(e,t)=>{if(t.version){const n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=ag(n))}else t.pattern??(t.pattern=ag());yr.init(e,t)}),pK=be("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=vY),yr.init(e,t)}),mK=be("$ZodURL",(e,t)=>{yr.init(e,t),e._zod.check=n=>{try{const r=n.value.trim(),i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=i.href:n.value=r;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),gK=be("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=bY()),yr.init(e,t)}),vK=be("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=pY),yr.init(e,t)}),yK=be("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=uY),yr.init(e,t)}),bK=be("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=cY),yr.init(e,t)}),xK=be("$ZodULID",(e,t)=>{t.pattern??(t.pattern=dY),yr.init(e,t)}),_K=be("$ZodXID",(e,t)=>{t.pattern??(t.pattern=fY),yr.init(e,t)}),wK=be("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=hY),yr.init(e,t)}),kK=be("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=RY(t)),yr.init(e,t)}),SK=be("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=NY),yr.init(e,t)}),CK=be("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=MY(t)),yr.init(e,t)}),jK=be("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=mY),yr.init(e,t)}),TK=be("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=xY),yr.init(e,t),e._zod.bag.format="ipv4"}),IK=be("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=_Y),yr.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),EK=be("$ZodMAC",(e,t)=>{t.pattern??(t.pattern=wY(t.delimiter)),yr.init(e,t),e._zod.bag.format="mac"}),NK=be("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=kY),yr.init(e,t)}),$K=be("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=SY),yr.init(e,t),e._zod.check=n=>{const r=n.value.split("/");try{if(r.length!==2)throw new Error;const[i,o]=r;if(!o)throw new Error;const a=Number(o);if(`${a}`!==o)throw new Error;if(a<0||a>128)throw new Error;new URL(`http://[${i}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function oI(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const MK=be("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=CY),yr.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{oI(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});function RK(e){if(!tI.test(e))return!1;const t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return oI(n)}const LK=be("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=tI),yr.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{RK(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),PK=be("$ZodE164",(e,t)=>{t.pattern??(t.pattern=IY),yr.init(e,t)});function OK(e,t=null){try{const n=e.split(".");if(n.length!==3)return!1;const[r]=n;if(!r)return!1;const i=JSON.parse(atob(r));return!("typ"in i&&(i==null?void 0:i.typ)!=="JWT"||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}}const zK=be("$ZodJWT",(e,t)=>{yr.init(e,t),e._zod.check=n=>{OK(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),DK=be("$ZodCustomStringFormat",(e,t)=>{yr.init(e,t),e._zod.check=n=>{t.fn(n.value)||n.issues.push({code:"invalid_format",format:t.format,input:n.value,inst:e,continue:!t.abort})}}),aI=be("$ZodNumber",(e,t)=>{Bt.init(e,t),e._zod.pattern=e._zod.bag.pattern??zY,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}const i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;const o=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...o?{received:o}:{}}),n}}),AK=be("$ZodNumberFormat",(e,t)=>{ZY.init(e,t),aI.init(e,t)}),sI=be("$ZodBoolean",(e,t)=>{Bt.init(e,t),e._zod.pattern=DY,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}const i=n.value;return typeof i=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),lI=be("$ZodBigInt",(e,t)=>{Bt.init(e,t),e._zod.pattern=PY,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=BigInt(n.value)}catch{}return typeof n.value=="bigint"||n.issues.push({expected:"bigint",code:"invalid_type",input:n.value,inst:e}),n}}),FK=be("$ZodBigIntFormat",(e,t)=>{qY.init(e,t),lI.init(e,t)}),UK=be("$ZodSymbol",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return typeof i=="symbol"||n.issues.push({expected:"symbol",code:"invalid_type",input:i,inst:e}),n}}),BK=be("$ZodUndefined",(e,t)=>{Bt.init(e,t),e._zod.pattern=FY,e._zod.values=new Set([void 0]),e._zod.optin="optional",e._zod.optout="optional",e._zod.parse=(n,r)=>{const i=n.value;return typeof i>"u"||n.issues.push({expected:"undefined",code:"invalid_type",input:i,inst:e}),n}}),WK=be("$ZodNull",(e,t)=>{Bt.init(e,t),e._zod.pattern=AY,e._zod.values=new Set([null]),e._zod.parse=(n,r)=>{const i=n.value;return i===null||n.issues.push({expected:"null",code:"invalid_type",input:i,inst:e}),n}}),VK=be("$ZodAny",(e,t)=>{Bt.init(e,t),e._zod.parse=n=>n}),HK=be("$ZodUnknown",(e,t)=>{Bt.init(e,t),e._zod.parse=n=>n}),ZK=be("$ZodNever",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)}),qK=be("$ZodVoid",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return typeof i>"u"||n.issues.push({expected:"void",code:"invalid_type",input:i,inst:e}),n}}),GK=be("$ZodDate",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=new Date(n.value)}catch{}const i=n.value,o=i instanceof Date;return o&&!Number.isNaN(i.getTime())||n.issues.push({expected:"date",code:"invalid_type",input:i,...o?{received:"Invalid Date"}:{},inst:e}),n}});function YK(e,t,n){e.issues.length&&t.issues.push(...Zl(n,e.issues)),t.value[n]=e.value}const KK=be("$ZodArray",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);const o=[];for(let a=0;aYK(c,n,a))):YK(l,n,a)}return o.length?Promise.all(o).then(()=>n):n}});function b3(e,t,n,r){e.issues.length&&t.issues.push(...Zl(n,e.issues)),e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function XK(e){var r,i,o,a;const t=Object.keys(e.shape);for(const s of t)if(!((a=(o=(i=(r=e.shape)==null?void 0:r[s])==null?void 0:i._zod)==null?void 0:o.traits)!=null&&a.has("$ZodType")))throw new Error(`Invalid element at key "${s}": expected a Zod schema`);const n=VG(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function JK(e,t,n,r,i,o){const a=[],s=i.keySet,l=i.catchall._zod,c=l.def.type;for(const d in t){if(s.has(d))continue;if(c==="never"){a.push(d);continue}const f=l.run({value:t[d],issues:[]},r);f instanceof Promise?e.push(f.then(p=>b3(p,n,d,t))):b3(f,n,d,t)}return a.length&&n.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:o}),e.length?Promise.all(e).then(()=>n):n}const QK=be("$ZodObject",(e,t)=>{var a;if(Bt.init(e,t),!((a=Object.getOwnPropertyDescriptor(t,"shape"))!=null&&a.get)){const s=t.shape;Object.defineProperty(t,"shape",{get:()=>{const l={...s};return Object.defineProperty(t,"shape",{value:l}),l}})}const n=Yy(()=>XK(t));vn(e._zod,"propValues",()=>{const s=t.shape,l={};for(const c in s){const d=s[c]._zod;if(d.values){l[c]??(l[c]=new Set);for(const f of d.values)l[c].add(f)}}return l});const r=ig,i=t.catchall;let o;e._zod.parse=(s,l)=>{o??(o=n.value);const c=s.value;if(!r(c))return s.issues.push({expected:"object",code:"invalid_type",input:c,inst:e}),s;s.value={};const d=[],f=o.shape;for(const p of o.keys){const v=f[p]._zod.run({value:c[p],issues:[]},l);v instanceof Promise?d.push(v.then(x=>b3(x,s,p,c))):b3(v,s,p,c)}return i?JK(d,c,s,l,n.value,e):d.length?Promise.all(d).then(()=>s):s}}),eX=be("$ZodObjectJIT",(e,t)=>{QK.init(e,t);const n=e._zod.parse,r=Yy(()=>XK(t)),i=f=>{const p=new cK(["shape","payload","ctx"]),v=r.value,x=_=>{const S=FT(_);return`shape[${S}]._zod.run({ value: input[${S}], issues: [] }, ctx)`};p.write("const input = payload.value;");const y=Object.create(null);let b=0;for(const _ of v.keys)y[_]=`key_${b++}`;p.write("const newResult = {};");for(const _ of v.keys){const S=y[_],C=FT(_);p.write(`const ${S} = ${x(_)};`),p.write(` + if (${S}.issues.length) { + payload.issues = payload.issues.concat(${S}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${C}, ...iss.path] : [${C}] + }))); + } + + + if (${S}.value === undefined) { + if (${C} in input) { + newResult[${C}] = undefined; + } + } else { + newResult[${C}] = ${S}.value; + } + + `)}p.write("payload.value = newResult;"),p.write("return payload;");const w=p.compile();return(_,S)=>w(f,_,S)};let o;const a=ig,s=!f3.jitless,l=s&&BG.value,c=t.catchall;let d;e._zod.parse=(f,p)=>{d??(d=r.value);const v=f.value;return a(v)?s&&l&&(p==null?void 0:p.async)===!1&&p.jitless!==!0?(o||(o=i(t.shape)),f=o(f,p),c?JK([],v,f,p,d,e):f):n(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:v,inst:e}),f)}});function tX(e,t,n,r){for(const o of e)if(o.issues.length===0)return t.value=o.value,t;const i=e.filter(o=>!mp(o));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(o=>o.issues.map(a=>ql(a,r,da())))}),t)}const uI=be("$ZodUnion",(e,t)=>{Bt.init(e,t),vn(e._zod,"optin",()=>t.options.some(i=>i._zod.optin==="optional")?"optional":void 0),vn(e._zod,"optout",()=>t.options.some(i=>i._zod.optout==="optional")?"optional":void 0),vn(e._zod,"values",()=>{if(t.options.every(i=>i._zod.values))return new Set(t.options.flatMap(i=>Array.from(i._zod.values)))}),vn(e._zod,"pattern",()=>{if(t.options.every(i=>i._zod.pattern)){const i=t.options.map(o=>o._zod.pattern);return new RegExp(`^(${i.map(o=>p3(o.source)).join("|")})$`)}});const n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,o)=>{if(n)return r(i,o);let a=!1;const s=[];for(const l of t.options){const c=l._zod.run({value:i.value,issues:[]},o);if(c instanceof Promise)s.push(c),a=!0;else{if(c.issues.length===0)return c;s.push(c)}}return a?Promise.all(s).then(l=>tX(l,i,e,o)):tX(s,i,e,o)}}),nX=be("$ZodDiscriminatedUnion",(e,t)=>{uI.init(e,t);const n=e._zod.parse;vn(e._zod,"propValues",()=>{const i={};for(const o of t.options){const a=o._zod.propValues;if(!a||Object.keys(a).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(const[s,l]of Object.entries(a)){i[s]||(i[s]=new Set);for(const c of l)i[s].add(c)}}return i});const r=Yy(()=>{var a;const i=t.options,o=new Map;for(const s of i){const l=(a=s._zod.propValues)==null?void 0:a[t.discriminator];if(!l||l.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(const c of l){if(o.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);o.set(c,s)}}return o});e._zod.parse=(i,o)=>{const a=i.value;if(!ig(a))return i.issues.push({code:"invalid_type",expected:"object",input:a,inst:e}),i;const s=r.value.get(a==null?void 0:a[t.discriminator]);return s?s._zod.run(i,o):t.unionFallback?n(i,o):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:a,path:[t.discriminator],inst:e}),i)}}),rX=be("$ZodIntersection",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value,o=t.left._zod.run({value:i,issues:[]},r),a=t.right._zod.run({value:i,issues:[]},r);return o instanceof Promise||a instanceof Promise?Promise.all([o,a]).then(([s,l])=>iX(n,s,l)):iX(n,o,a)}});function cI(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(pp(e)&&pp(t)){const n=Object.keys(t),r=Object.keys(e).filter(o=>n.indexOf(o)!==-1),i={...e,...t};for(const o of r){const a=cI(e[o],t[o]);if(!a.valid)return{valid:!1,mergeErrorPath:[o,...a.mergeErrorPath]};i[o]=a.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let r=0;r{Bt.init(e,t);const n=t.items;e._zod.parse=(r,i)=>{const o=r.value;if(!Array.isArray(o))return r.issues.push({input:o,inst:e,expected:"tuple",code:"invalid_type"}),r;r.value=[];const a=[],s=[...n].reverse().findIndex(d=>d._zod.optin!=="optional"),l=s===-1?0:n.length-s;if(!t.rest){const d=o.length>n.length,f=o.length=o.length&&c>=l)continue;const f=d._zod.run({value:o[c],issues:[]},i);f instanceof Promise?a.push(f.then(p=>x3(p,r,c))):x3(f,r,c)}if(t.rest){const d=o.slice(n.length);for(const f of d){c++;const p=t.rest._zod.run({value:f,issues:[]},i);p instanceof Promise?a.push(p.then(v=>x3(v,r,c))):x3(p,r,c)}}return a.length?Promise.all(a).then(()=>r):r}});function x3(e,t,n){e.issues.length&&t.issues.push(...Zl(n,e.issues)),t.value[n]=e.value}const oX=be("$ZodRecord",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!pp(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;const o=[],a=t.keyType._zod.values;if(a){n.value={};const s=new Set;for(const c of a)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){s.add(typeof c=="number"?c.toString():c);const d=t.valueType._zod.run({value:i[c],issues:[]},r);d instanceof Promise?o.push(d.then(f=>{f.issues.length&&n.issues.push(...Zl(c,f.issues)),n.value[c]=f.value})):(d.issues.length&&n.issues.push(...Zl(c,d.issues)),n.value[c]=d.value)}let l;for(const c in i)s.has(c)||(l=l??[],l.push(c));l&&l.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:l})}else{n.value={};for(const s of Reflect.ownKeys(i)){if(s==="__proto__")continue;const l=t.keyType._zod.run({value:s,issues:[]},r);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(l.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:l.issues.map(d=>ql(d,r,da())),input:s,path:[s],inst:e}),n.value[l.value]=l.value;continue}const c=t.valueType._zod.run({value:i[s],issues:[]},r);c instanceof Promise?o.push(c.then(d=>{d.issues.length&&n.issues.push(...Zl(s,d.issues)),n.value[l.value]=d.value})):(c.issues.length&&n.issues.push(...Zl(s,c.issues)),n.value[l.value]=c.value)}}return o.length?Promise.all(o).then(()=>n):n}}),aX=be("$ZodMap",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!(i instanceof Map))return n.issues.push({expected:"map",code:"invalid_type",input:i,inst:e}),n;const o=[];n.value=new Map;for(const[a,s]of i){const l=t.keyType._zod.run({value:a,issues:[]},r),c=t.valueType._zod.run({value:s,issues:[]},r);l instanceof Promise||c instanceof Promise?o.push(Promise.all([l,c]).then(([d,f])=>{sX(d,f,n,a,i,e,r)})):sX(l,c,n,a,i,e,r)}return o.length?Promise.all(o).then(()=>n):n}});function sX(e,t,n,r,i,o,a){e.issues.length&&(g3.has(typeof r)?n.issues.push(...Zl(r,e.issues)):n.issues.push({code:"invalid_key",origin:"map",input:i,inst:o,issues:e.issues.map(s=>ql(s,a,da()))})),t.issues.length&&(g3.has(typeof r)?n.issues.push(...Zl(r,t.issues)):n.issues.push({origin:"map",code:"invalid_element",input:i,inst:o,key:r,issues:t.issues.map(s=>ql(s,a,da()))})),n.value.set(e.value,t.value)}const lX=be("$ZodSet",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!(i instanceof Set))return n.issues.push({input:i,inst:e,expected:"set",code:"invalid_type"}),n;const o=[];n.value=new Set;for(const a of i){const s=t.valueType._zod.run({value:a,issues:[]},r);s instanceof Promise?o.push(s.then(l=>uX(l,n))):uX(s,n)}return o.length?Promise.all(o).then(()=>n):n}});function uX(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}const cX=be("$ZodEnum",(e,t)=>{Bt.init(e,t);const n=AT(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.filter(i=>g3.has(typeof i)).map(i=>typeof i=="string"?id(i):i.toString()).join("|")})$`),e._zod.parse=(i,o)=>{const a=i.value;return r.has(a)||i.issues.push({code:"invalid_value",values:n,input:a,inst:e}),i}}),dX=be("$ZodLiteral",(e,t)=>{if(Bt.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");const n=new Set(t.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.values.map(r=>typeof r=="string"?id(r):r?id(r.toString()):String(r)).join("|")})$`),e._zod.parse=(r,i)=>{const o=r.value;return n.has(o)||r.issues.push({code:"invalid_value",values:t.values,input:o,inst:e}),r}}),fX=be("$ZodFile",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return i instanceof File||n.issues.push({expected:"file",code:"invalid_type",input:i,inst:e}),n}}),hX=be("$ZodTransform",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new d3(e.constructor.name);const i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(n.value=o,n));if(i instanceof Promise)throw new fp;return n.value=i,n}});function pX(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const mX=be("$ZodOptional",(e,t)=>{Bt.init(e,t),e._zod.optin="optional",e._zod.optout="optional",vn(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),vn(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${p3(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>{if(t.innerType._zod.optin==="optional"){const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>pX(o,n.value)):pX(i,n.value)}return n.value===void 0?n:t.innerType._zod.run(n,r)}}),gX=be("$ZodNullable",(e,t)=>{Bt.init(e,t),vn(e._zod,"optin",()=>t.innerType._zod.optin),vn(e._zod,"optout",()=>t.innerType._zod.optout),vn(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${p3(n.source)}|null)$`):void 0}),vn(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),vX=be("$ZodDefault",(e,t)=>{Bt.init(e,t),e._zod.optin="optional",vn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);if(n.value===void 0)return n.value=t.defaultValue,n;const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>yX(o,t)):yX(i,t)}});function yX(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const bX=be("$ZodPrefault",(e,t)=>{Bt.init(e,t),e._zod.optin="optional",vn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(r.direction==="backward"||n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),xX=be("$ZodNonOptional",(e,t)=>{Bt.init(e,t),vn(e._zod,"values",()=>{const n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>_X(o,e)):_X(i,e)}});function _X(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const wX=be("$ZodSuccess",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new d3("ZodSuccess");const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>(n.value=o.issues.length===0,n)):(n.value=i.issues.length===0,n)}}),kX=be("$ZodCatch",(e,t)=>{Bt.init(e,t),vn(e._zod,"optin",()=>t.innerType._zod.optin),vn(e._zod,"optout",()=>t.innerType._zod.optout),vn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>(n.value=o.value,o.issues.length&&(n.value=t.catchValue({...n,error:{issues:o.issues.map(a=>ql(a,r,da()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(o=>ql(o,r,da()))},input:n.value}),n.issues=[]),n)}}),SX=be("$ZodNaN",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>((typeof n.value!="number"||!Number.isNaN(n.value))&&n.issues.push({input:n.value,inst:e,expected:"nan",code:"invalid_type"}),n)}),CX=be("$ZodPipe",(e,t)=>{Bt.init(e,t),vn(e._zod,"values",()=>t.in._zod.values),vn(e._zod,"optin",()=>t.in._zod.optin),vn(e._zod,"optout",()=>t.out._zod.optout),vn(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,r)=>{if(r.direction==="backward"){const o=t.out._zod.run(n,r);return o instanceof Promise?o.then(a=>_3(a,t.in,r)):_3(o,t.in,r)}const i=t.in._zod.run(n,r);return i instanceof Promise?i.then(o=>_3(o,t.out,r)):_3(i,t.out,r)}});function _3(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const fI=be("$ZodCodec",(e,t)=>{Bt.init(e,t),vn(e._zod,"values",()=>t.in._zod.values),vn(e._zod,"optin",()=>t.in._zod.optin),vn(e._zod,"optout",()=>t.out._zod.optout),vn(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,r)=>{if((r.direction||"forward")==="forward"){const i=t.in._zod.run(n,r);return i instanceof Promise?i.then(o=>w3(o,t,r)):w3(i,t,r)}else{const i=t.out._zod.run(n,r);return i instanceof Promise?i.then(o=>w3(o,t,r)):w3(i,t,r)}}});function w3(e,t,n){if(e.issues.length)return e.aborted=!0,e;if((n.direction||"forward")==="forward"){const r=t.transform(e.value,e);return r instanceof Promise?r.then(i=>k3(e,i,t.out,n)):k3(e,r,t.out,n)}else{const r=t.reverseTransform(e.value,e);return r instanceof Promise?r.then(i=>k3(e,i,t.in,n)):k3(e,r,t.in,n)}}function k3(e,t,n,r){return e.issues.length?(e.aborted=!0,e):n._zod.run({value:t,issues:e.issues},r)}const jX=be("$ZodReadonly",(e,t)=>{Bt.init(e,t),vn(e._zod,"propValues",()=>t.innerType._zod.propValues),vn(e._zod,"values",()=>t.innerType._zod.values),vn(e._zod,"optin",()=>{var n,r;return(r=(n=t.innerType)==null?void 0:n._zod)==null?void 0:r.optin}),vn(e._zod,"optout",()=>{var n,r;return(r=(n=t.innerType)==null?void 0:n._zod)==null?void 0:r.optout}),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(TX):TX(i)}});function TX(e){return e.value=Object.freeze(e.value),e}const IX=be("$ZodTemplateLiteral",(e,t)=>{Bt.init(e,t);const n=[];for(const r of t.parts)if(typeof r=="object"&&r!==null){if(!r._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...r._zod.traits].shift()}`);const i=r._zod.pattern instanceof RegExp?r._zod.pattern.source:r._zod.pattern;if(!i)throw new Error(`Invalid template literal part: ${r._zod.traits}`);const o=i.startsWith("^")?1:0,a=i.endsWith("$")?i.length-1:i.length;n.push(i.slice(o,a))}else if(r===null||WG.has(typeof r))n.push(id(`${r}`));else throw new Error(`Invalid template literal part: ${r}`);e._zod.pattern=new RegExp(`^${n.join("")}$`),e._zod.parse=(r,i)=>typeof r.value!="string"?(r.issues.push({input:r.value,inst:e,expected:"template_literal",code:"invalid_type"}),r):(e._zod.pattern.lastIndex=0,e._zod.pattern.test(r.value)||r.issues.push({input:r.value,inst:e,code:"invalid_format",format:t.format??"template_literal",pattern:e._zod.pattern.source}),r)}),EX=be("$ZodFunction",(e,t)=>(Bt.init(e,t),e._def=t,e._zod.def=t,e.implement=n=>{if(typeof n!="function")throw new Error("implement() must be called with a function");return function(...r){const i=e._def.input?HT(e._def.input,r):r,o=Reflect.apply(n,this,i);return e._def.output?HT(e._def.output,o):o}},e.implementAsync=n=>{if(typeof n!="function")throw new Error("implementAsync() must be called with a function");return async function(...r){const i=e._def.input?await ZT(e._def.input,r):r,o=await Reflect.apply(n,this,i);return e._def.output?await ZT(e._def.output,o):o}},e._zod.parse=(n,r)=>typeof n.value!="function"?(n.issues.push({code:"invalid_type",expected:"function",input:n.value,inst:e}),n):(e._def.output&&e._def.output._zod.def.type==="promise"?n.value=e.implementAsync(n.value):n.value=e.implement(n.value),n),e.input=(...n)=>{const r=e.constructor;return Array.isArray(n[0])?new r({type:"function",input:new dI({type:"tuple",items:n[0],rest:n[1]}),output:e._def.output}):new r({type:"function",input:n[0],output:e._def.output})},e.output=n=>{const r=e.constructor;return new r({type:"function",input:e._def.input,output:n})},e)),NX=be("$ZodPromise",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>Promise.resolve(n.value).then(i=>t.innerType._zod.run({value:i,issues:[]},r))}),$X=be("$ZodLazy",(e,t)=>{Bt.init(e,t),vn(e._zod,"innerType",()=>t.getter()),vn(e._zod,"pattern",()=>{var n,r;return(r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.pattern}),vn(e._zod,"propValues",()=>{var n,r;return(r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.propValues}),vn(e._zod,"optin",()=>{var n,r;return((r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.optin)??void 0}),vn(e._zod,"optout",()=>{var n,r;return((r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.optout)??void 0}),e._zod.parse=(n,r)=>e._zod.innerType._zod.run(n,r)}),MX=be("$ZodCustom",(e,t)=>{Gr.init(e,t),Bt.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{const r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(o=>RX(o,n,r,e));RX(i,n,r,e)}});function RX(e,t,n,r){if(!e){const i={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(i.params=r._zod.def.params),t.issues.push(og(i))}}const kTe=()=>{const e={string:{unit:"\u062D\u0631\u0641",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},file:{unit:"\u0628\u0627\u064A\u062A",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},array:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},set:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0645\u062F\u062E\u0644",email:"\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A",url:"\u0631\u0627\u0628\u0637",emoji:"\u0625\u064A\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",date:"\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO",time:"\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",duration:"\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO",ipv4:"\u0639\u0646\u0648\u0627\u0646 IPv4",ipv6:"\u0639\u0646\u0648\u0627\u0646 IPv6",cidrv4:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4",cidrv6:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6",base64:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded",base64url:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded",json_string:"\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON",e164:"\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164",jwt:"JWT",template_literal:"\u0645\u062F\u062E\u0644"};return i=>{switch(i.code){case"invalid_type":return`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${i.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${Rt(i.values[0])}`:`\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${i.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${o} ${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"}`:`\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${i.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${i.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${o} ${i.minimum.toString()} ${a.unit}`:`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${i.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 "${i.prefix}"`:o.format==="ends_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 "${o.suffix}"`:o.format==="includes"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 "${o.includes}"`:o.format==="regex"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${o.pattern}`:`${r[o.format]??i.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`}case"not_multiple_of":return`\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${i.divisor}`;case"unrecognized_keys":return`\u0645\u0639\u0631\u0641${i.keys.length>1?"\u0627\u062A":""} \u063A\u0631\u064A\u0628${i.keys.length>1?"\u0629":""}: ${qe(i.keys,"\u060C ")}`;case"invalid_key":return`\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${i.origin}`;case"invalid_union":return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644";case"invalid_element":return`\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${i.origin}`;default:return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"}}};function STe(){return{localeError:kTe()}}const CTe=()=>{const e={string:{unit:"simvol",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"element",verb:"olmal\u0131d\u0131r"},set:{unit:"element",verb:"olmal\u0131d\u0131r"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${i.expected}, daxil olan ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${Rt(i.values[0])}`:`Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${i.origin??"d\u0259y\u0259r"} ${o}${i.maximum.toString()} ${a.unit??"element"}`:`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${i.origin??"d\u0259y\u0259r"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${i.origin} ${o}${i.minimum.toString()} ${a.unit}`:`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Yanl\u0131\u015F m\u0259tn: "${o.prefix}" il\u0259 ba\u015Flamal\u0131d\u0131r`:o.format==="ends_with"?`Yanl\u0131\u015F m\u0259tn: "${o.suffix}" il\u0259 bitm\u0259lidir`:o.format==="includes"?`Yanl\u0131\u015F m\u0259tn: "${o.includes}" daxil olmal\u0131d\u0131r`:o.format==="regex"?`Yanl\u0131\u015F m\u0259tn: ${o.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`:`Yanl\u0131\u015F ${r[o.format]??i.format}`}case"not_multiple_of":return`Yanl\u0131\u015F \u0259d\u0259d: ${i.divisor} il\u0259 b\xF6l\xFCn\u0259 bil\u0259n olmal\u0131d\u0131r`;case"unrecognized_keys":return`Tan\u0131nmayan a\xE7ar${i.keys.length>1?"lar":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} daxilind\u0259 yanl\u0131\u015F a\xE7ar`;case"invalid_union":return"Yanl\u0131\u015F d\u0259y\u0259r";case"invalid_element":return`${i.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`;default:return"Yanl\u0131\u015F d\u0259y\u0259r"}}};function jTe(){return{localeError:CTe()}}function LX(e,t,n,r){const i=Math.abs(e),o=i%10,a=i%100;return a>=11&&a<=19?r:o===1?t:o>=2&&o<=4?n:r}const TTe=()=>{const e={string:{unit:{one:"\u0441\u0456\u043C\u0432\u0430\u043B",few:"\u0441\u0456\u043C\u0432\u0430\u043B\u044B",many:"\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u044B",many:"\u0431\u0430\u0439\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u043B\u0456\u043A";case"object":{if(Array.isArray(i))return"\u043C\u0430\u0441\u0456\u045E";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0443\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0430\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0447\u0430\u0441",duration:"ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0430\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0430\u0441",cidrv4:"IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",base64:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64",base64url:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url",json_string:"JSON \u0440\u0430\u0434\u043E\u043A",e164:"\u043D\u0443\u043C\u0430\u0440 E.164",jwt:"JWT",template_literal:"\u0443\u0432\u043E\u0434"};return i=>{switch(i.code){case"invalid_type":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${i.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${Rt(i.values[0])}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);if(a){const s=Number(i.maximum),l=LX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${o}${i.maximum.toString()} ${l}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);if(a){const s=Number(i.minimum),l=LX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${o}${i.minimum.toString()} ${l}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C "${o.includes}"`:o.format==="regex"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${r[o.format]??i.format}`}case"not_multiple_of":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${i.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${i.keys.length>1?"\u043A\u043B\u044E\u0447\u044B":"\u043A\u043B\u044E\u0447"}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${i.origin}`;case"invalid_union":return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434";case"invalid_element":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${i.origin}`;default:return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434"}}};function ITe(){return{localeError:TTe()}}const ETe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(e))return"\u043C\u0430\u0441\u0438\u0432";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},NTe=()=>{const e={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},file:{unit:"\u0431\u0430\u0439\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"}};function t(r){return e[r]??null}const n={regex:"\u0432\u0445\u043E\u0434",email:"\u0438\u043C\u0435\u0439\u043B \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0436\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"base64-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",base64url:"base64url-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",json_string:"JSON \u043D\u0438\u0437",e164:"E.164 \u043D\u043E\u043C\u0435\u0440",jwt:"JWT",template_literal:"\u0432\u0445\u043E\u0434"};return r=>{switch(r.code){case"invalid_type":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${r.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${ETe(r.input)}`;case"invalid_value":return r.values.length===1?`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${Rt(r.values[0])}`:`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u043E\u043F\u0446\u0438\u044F: \u043E\u0447\u0430\u043A\u0432\u0430\u043D\u043E \u0435\u0434\u043D\u043E \u043E\u0442 ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${i}${r.maximum.toString()} ${o.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430"}`:`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0431\u044A\u0434\u0435 ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${i}${r.minimum.toString()} ${o.unit}`:`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin} \u0434\u0430 \u0431\u044A\u0434\u0435 ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;if(i.format==="starts_with")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430 \u0441 "${i.prefix}"`;if(i.format==="ends_with")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430 \u0441 "${i.suffix}"`;if(i.format==="includes")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0432\u0430 "${i.includes}"`;if(i.format==="regex")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u044A\u0432\u043F\u0430\u0434\u0430 \u0441 ${i.pattern}`;let o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D";return i.format==="emoji"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="datetime"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="date"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"),i.format==="time"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="duration"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"),`${o} ${n[i.format]??r.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E \u0447\u0438\u0441\u043B\u043E: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043A\u0440\u0430\u0442\u043D\u043E \u043D\u0430 ${r.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0442${r.keys.length>1?"\u0438":""} \u043A\u043B\u044E\u0447${r.keys.length>1?"\u043E\u0432\u0435":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043A\u043B\u044E\u0447 \u0432 ${r.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434";case"invalid_element":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0432 ${r.origin}`;default:return"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434"}}};function $Te(){return{localeError:NTe()}}const MTe=()=>{const e={string:{unit:"car\xE0cters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"entrada",email:"adre\xE7a electr\xF2nica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adre\xE7a IPv4",ipv6:"adre\xE7a IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return i=>{switch(i.code){case"invalid_type":return`Tipus inv\xE0lid: s'esperava ${i.expected}, s'ha rebut ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Valor inv\xE0lid: s'esperava ${Rt(i.values[0])}`:`Opci\xF3 inv\xE0lida: s'esperava una de ${qe(i.values," o ")}`;case"too_big":{const o=i.inclusive?"com a m\xE0xim":"menys de",a=t(i.origin);return a?`Massa gran: s'esperava que ${i.origin??"el valor"} contingu\xE9s ${o} ${i.maximum.toString()} ${a.unit??"elements"}`:`Massa gran: s'esperava que ${i.origin??"el valor"} fos ${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?"com a m\xEDnim":"m\xE9s de",a=t(i.origin);return a?`Massa petit: s'esperava que ${i.origin} contingu\xE9s ${o} ${i.minimum.toString()} ${a.unit}`:`Massa petit: s'esperava que ${i.origin} fos ${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Format inv\xE0lid: ha de comen\xE7ar amb "${o.prefix}"`:o.format==="ends_with"?`Format inv\xE0lid: ha d'acabar amb "${o.suffix}"`:o.format==="includes"?`Format inv\xE0lid: ha d'incloure "${o.includes}"`:o.format==="regex"?`Format inv\xE0lid: ha de coincidir amb el patr\xF3 ${o.pattern}`:`Format inv\xE0lid per a ${r[o.format]??i.format}`}case"not_multiple_of":return`N\xFAmero inv\xE0lid: ha de ser m\xFAltiple de ${i.divisor}`;case"unrecognized_keys":return`Clau${i.keys.length>1?"s":""} no reconeguda${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Clau inv\xE0lida a ${i.origin}`;case"invalid_union":return"Entrada inv\xE0lida";case"invalid_element":return`Element inv\xE0lid a ${i.origin}`;default:return"Entrada inv\xE0lida"}}};function RTe(){return{localeError:MTe()}}const LTe=()=>{const e={string:{unit:"znak\u016F",verb:"m\xEDt"},file:{unit:"bajt\u016F",verb:"m\xEDt"},array:{unit:"prvk\u016F",verb:"m\xEDt"},set:{unit:"prvk\u016F",verb:"m\xEDt"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u010D\xEDslo";case"string":return"\u0159et\u011Bzec";case"boolean":return"boolean";case"bigint":return"bigint";case"function":return"funkce";case"symbol":return"symbol";case"undefined":return"undefined";case"object":{if(Array.isArray(i))return"pole";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"regul\xE1rn\xED v\xFDraz",email:"e-mailov\xE1 adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a \u010Das ve form\xE1tu ISO",date:"datum ve form\xE1tu ISO",time:"\u010Das ve form\xE1tu ISO",duration:"doba trv\xE1n\xED ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64",base64url:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64url",json_string:"\u0159et\u011Bzec ve form\xE1tu JSON",e164:"\u010D\xEDslo E.164",jwt:"JWT",template_literal:"vstup"};return i=>{switch(i.code){case"invalid_type":return`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${i.expected}, obdr\u017Eeno ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${Rt(i.values[0])}`:`Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${i.origin??"hodnota"} mus\xED m\xEDt ${o}${i.maximum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${i.origin??"hodnota"} mus\xED b\xFDt ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${i.origin??"hodnota"} mus\xED m\xEDt ${o}${i.minimum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${i.origin??"hodnota"} mus\xED b\xFDt ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED za\u010D\xEDnat na "${o.prefix}"`:o.format==="ends_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED kon\u010Dit na "${o.suffix}"`:o.format==="includes"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED obsahovat "${o.includes}"`:o.format==="regex"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED odpov\xEDdat vzoru ${o.pattern}`:`Neplatn\xFD form\xE1t ${r[o.format]??i.format}`}case"not_multiple_of":return`Neplatn\xE9 \u010D\xEDslo: mus\xED b\xFDt n\xE1sobkem ${i.divisor}`;case"unrecognized_keys":return`Nezn\xE1m\xE9 kl\xED\u010De: ${qe(i.keys,", ")}`;case"invalid_key":return`Neplatn\xFD kl\xED\u010D v ${i.origin}`;case"invalid_union":return"Neplatn\xFD vstup";case"invalid_element":return`Neplatn\xE1 hodnota v ${i.origin}`;default:return"Neplatn\xFD vstup"}}};function PTe(){return{localeError:LTe()}}const OTe=()=>{const e={string:{unit:"tegn",verb:"havde"},file:{unit:"bytes",verb:"havde"},array:{unit:"elementer",verb:"indeholdt"},set:{unit:"elementer",verb:"indeholdt"}},t={string:"streng",number:"tal",boolean:"boolean",array:"liste",object:"objekt",set:"s\xE6t",file:"fil"};function n(a){return e[a]??null}function r(a){return t[a]??a}const i=a=>{const s=typeof a;switch(s){case"number":return Number.isNaN(a)?"NaN":"tal";case"object":return Array.isArray(a)?"liste":a===null?"null":Object.getPrototypeOf(a)!==Object.prototype&&a.constructor?a.constructor.name:"objekt"}return s},o={regex:"input",email:"e-mailadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkesl\xE6t",date:"ISO-dato",time:"ISO-klokkesl\xE6t",duration:"ISO-varighed",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodet streng",base64url:"base64url-kodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return a=>{switch(a.code){case"invalid_type":return`Ugyldigt input: forventede ${r(a.expected)}, fik ${r(i(a.input))}`;case"invalid_value":return a.values.length===1?`Ugyldig v\xE6rdi: forventede ${Rt(a.values[0])}`:`Ugyldigt valg: forventede en af f\xF8lgende ${qe(a.values,"|")}`;case"too_big":{const s=a.inclusive?"<=":"<",l=n(a.origin),c=r(a.origin);return l?`For stor: forventede ${c??"value"} ${l.verb} ${s} ${a.maximum.toString()} ${l.unit??"elementer"}`:`For stor: forventede ${c??"value"} havde ${s} ${a.maximum.toString()}`}case"too_small":{const s=a.inclusive?">=":">",l=n(a.origin),c=r(a.origin);return l?`For lille: forventede ${c} ${l.verb} ${s} ${a.minimum.toString()} ${l.unit}`:`For lille: forventede ${c} havde ${s} ${a.minimum.toString()}`}case"invalid_format":{const s=a;return s.format==="starts_with"?`Ugyldig streng: skal starte med "${s.prefix}"`:s.format==="ends_with"?`Ugyldig streng: skal ende med "${s.suffix}"`:s.format==="includes"?`Ugyldig streng: skal indeholde "${s.includes}"`:s.format==="regex"?`Ugyldig streng: skal matche m\xF8nsteret ${s.pattern}`:`Ugyldig ${o[s.format]??a.format}`}case"not_multiple_of":return`Ugyldigt tal: skal v\xE6re deleligt med ${a.divisor}`;case"unrecognized_keys":return`${a.keys.length>1?"Ukendte n\xF8gler":"Ukendt n\xF8gle"}: ${qe(a.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8gle i ${a.origin}`;case"invalid_union":return"Ugyldigt input: matcher ingen af de tilladte typer";case"invalid_element":return`Ugyldig v\xE6rdi i ${a.origin}`;default:return"Ugyldigt input"}}};function zTe(){return{localeError:OTe()}}const DTe=()=>{const e={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"Zahl";case"object":{if(Array.isArray(i))return"Array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"};return i=>{switch(i.code){case"invalid_type":return`Ung\xFCltige Eingabe: erwartet ${i.expected}, erhalten ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ung\xFCltige Eingabe: erwartet ${Rt(i.values[0])}`:`Ung\xFCltige Option: erwartet eine von ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Zu gro\xDF: erwartet, dass ${i.origin??"Wert"} ${o}${i.maximum.toString()} ${a.unit??"Elemente"} hat`:`Zu gro\xDF: erwartet, dass ${i.origin??"Wert"} ${o}${i.maximum.toString()} ist`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Zu klein: erwartet, dass ${i.origin} ${o}${i.minimum.toString()} ${a.unit} hat`:`Zu klein: erwartet, dass ${i.origin} ${o}${i.minimum.toString()} ist`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ung\xFCltiger String: muss mit "${o.prefix}" beginnen`:o.format==="ends_with"?`Ung\xFCltiger String: muss mit "${o.suffix}" enden`:o.format==="includes"?`Ung\xFCltiger String: muss "${o.includes}" enthalten`:o.format==="regex"?`Ung\xFCltiger String: muss dem Muster ${o.pattern} entsprechen`:`Ung\xFCltig: ${r[o.format]??i.format}`}case"not_multiple_of":return`Ung\xFCltige Zahl: muss ein Vielfaches von ${i.divisor} sein`;case"unrecognized_keys":return`${i.keys.length>1?"Unbekannte Schl\xFCssel":"Unbekannter Schl\xFCssel"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ung\xFCltiger Schl\xFCssel in ${i.origin}`;case"invalid_union":return"Ung\xFCltige Eingabe";case"invalid_element":return`Ung\xFCltiger Wert in ${i.origin}`;default:return"Ung\xFCltige Eingabe"}}};function ATe(){return{localeError:DTe()}}const FTe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},UTe=()=>{const e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function t(r){return e[r]??null}const n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return r=>{switch(r.code){case"invalid_type":return`Invalid input: expected ${r.expected}, received ${FTe(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${Rt(r.values[0])}`:`Invalid option: expected one of ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`Too big: expected ${r.origin??"value"} to have ${i}${r.maximum.toString()} ${o.unit??"elements"}`:`Too big: expected ${r.origin??"value"} to be ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`Too small: expected ${r.origin} to have ${i}${r.minimum.toString()} ${o.unit}`:`Too small: expected ${r.origin} to be ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${n[i.format]??r.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${r.divisor}`;case"unrecognized_keys":return`Unrecognized key${r.keys.length>1?"s":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`Invalid key in ${r.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${r.origin}`;default:return"Invalid input"}}};function PX(){return{localeError:UTe()}}const BTe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"nombro";case"object":{if(Array.isArray(e))return"tabelo";if(e===null)return"senvalora";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},WTe=()=>{const e={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function t(r){return e[r]??null}const n={regex:"enigo",email:"retadreso",url:"URL",emoji:"emo\u011Dio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-da\u016Dro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"};return r=>{switch(r.code){case"invalid_type":return`Nevalida enigo: atendi\u011Dis ${r.expected}, ricevi\u011Dis ${BTe(r.input)}`;case"invalid_value":return r.values.length===1?`Nevalida enigo: atendi\u011Dis ${Rt(r.values[0])}`:`Nevalida opcio: atendi\u011Dis unu el ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`Tro granda: atendi\u011Dis ke ${r.origin??"valoro"} havu ${i}${r.maximum.toString()} ${o.unit??"elementojn"}`:`Tro granda: atendi\u011Dis ke ${r.origin??"valoro"} havu ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`Tro malgranda: atendi\u011Dis ke ${r.origin} havu ${i}${r.minimum.toString()} ${o.unit}`:`Tro malgranda: atendi\u011Dis ke ${r.origin} estu ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Nevalida karaktraro: devas komenci\u011Di per "${i.prefix}"`:i.format==="ends_with"?`Nevalida karaktraro: devas fini\u011Di per "${i.suffix}"`:i.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${i.includes}"`:i.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${i.pattern}`:`Nevalida ${n[i.format]??r.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${r.divisor}`;case"unrecognized_keys":return`Nekonata${r.keys.length>1?"j":""} \u015Dlosilo${r.keys.length>1?"j":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`Nevalida \u015Dlosilo en ${r.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${r.origin}`;default:return"Nevalida enigo"}}};function VTe(){return{localeError:WTe()}}const HTe=()=>{const e={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}},t={string:"texto",number:"n\xFAmero",boolean:"booleano",array:"arreglo",object:"objeto",set:"conjunto",file:"archivo",date:"fecha",bigint:"n\xFAmero grande",symbol:"s\xEDmbolo",undefined:"indefinido",null:"nulo",function:"funci\xF3n",map:"mapa",record:"registro",tuple:"tupla",enum:"enumeraci\xF3n",union:"uni\xF3n",literal:"literal",promise:"promesa",void:"vac\xEDo",never:"nunca",unknown:"desconocido",any:"cualquiera"};function n(a){return e[a]??null}function r(a){return t[a]??a}const i=a=>{const s=typeof a;switch(s){case"number":return Number.isNaN(a)?"NaN":"number";case"object":return Array.isArray(a)?"array":a===null?"null":Object.getPrototypeOf(a)!==Object.prototype?a.constructor.name:"object"}return s},o={regex:"entrada",email:"direcci\xF3n de correo electr\xF3nico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duraci\xF3n ISO",ipv4:"direcci\xF3n IPv4",ipv6:"direcci\xF3n IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return a=>{switch(a.code){case"invalid_type":return`Entrada inv\xE1lida: se esperaba ${r(a.expected)}, recibido ${r(i(a.input))}`;case"invalid_value":return a.values.length===1?`Entrada inv\xE1lida: se esperaba ${Rt(a.values[0])}`:`Opci\xF3n inv\xE1lida: se esperaba una de ${qe(a.values,"|")}`;case"too_big":{const s=a.inclusive?"<=":"<",l=n(a.origin),c=r(a.origin);return l?`Demasiado grande: se esperaba que ${c??"valor"} tuviera ${s}${a.maximum.toString()} ${l.unit??"elementos"}`:`Demasiado grande: se esperaba que ${c??"valor"} fuera ${s}${a.maximum.toString()}`}case"too_small":{const s=a.inclusive?">=":">",l=n(a.origin),c=r(a.origin);return l?`Demasiado peque\xF1o: se esperaba que ${c} tuviera ${s}${a.minimum.toString()} ${l.unit}`:`Demasiado peque\xF1o: se esperaba que ${c} fuera ${s}${a.minimum.toString()}`}case"invalid_format":{const s=a;return s.format==="starts_with"?`Cadena inv\xE1lida: debe comenzar con "${s.prefix}"`:s.format==="ends_with"?`Cadena inv\xE1lida: debe terminar en "${s.suffix}"`:s.format==="includes"?`Cadena inv\xE1lida: debe incluir "${s.includes}"`:s.format==="regex"?`Cadena inv\xE1lida: debe coincidir con el patr\xF3n ${s.pattern}`:`Inv\xE1lido ${o[s.format]??a.format}`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: debe ser m\xFAltiplo de ${a.divisor}`;case"unrecognized_keys":return`Llave${a.keys.length>1?"s":""} desconocida${a.keys.length>1?"s":""}: ${qe(a.keys,", ")}`;case"invalid_key":return`Llave inv\xE1lida en ${r(a.origin)}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido en ${r(a.origin)}`;default:return"Entrada inv\xE1lida"}}};function ZTe(){return{localeError:HTe()}}const qTe=()=>{const e={string:{unit:"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},file:{unit:"\u0628\u0627\u06CC\u062A",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},array:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},set:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(i))return"\u0622\u0631\u0627\u06CC\u0647";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0648\u0631\u0648\u062F\u06CC",email:"\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644",url:"URL",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",date:"\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648",time:"\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",duration:"\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",ipv4:"IPv4 \u0622\u062F\u0631\u0633",ipv6:"IPv6 \u0622\u062F\u0631\u0633",cidrv4:"IPv4 \u062F\u0627\u0645\u0646\u0647",cidrv6:"IPv6 \u062F\u0627\u0645\u0646\u0647",base64:"base64-encoded \u0631\u0634\u062A\u0647",base64url:"base64url-encoded \u0631\u0634\u062A\u0647",json_string:"JSON \u0631\u0634\u062A\u0647",e164:"E.164 \u0639\u062F\u062F",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u06CC"};return i=>{switch(i.code){case"invalid_type":return`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${i.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${n(i.input)} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`;case"invalid_value":return i.values.length===1?`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${Rt(i.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`:`\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${qe(i.values,"|")} \u0645\u06CC\u200C\u0628\u0648\u062F`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${i.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${i.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} \u0628\u0627\u0634\u062F`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} ${a.unit} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} \u0628\u0627\u0634\u062F`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${o.prefix}" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`:o.format==="ends_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${o.suffix}" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`:o.format==="includes"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 "${o.includes}" \u0628\u0627\u0634\u062F`:o.format==="regex"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${o.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`:`${r[o.format]??i.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`}case"not_multiple_of":return`\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${i.divisor} \u0628\u0627\u0634\u062F`;case"unrecognized_keys":return`\u06A9\u0644\u06CC\u062F${i.keys.length>1?"\u0647\u0627\u06CC":""} \u0646\u0627\u0634\u0646\u0627\u0633: ${qe(i.keys,", ")}`;case"invalid_key":return`\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${i.origin}`;case"invalid_union":return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631";case"invalid_element":return`\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${i.origin}`;default:return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631"}}};function GTe(){return{localeError:qTe()}}const YTe=()=>{const e={string:{unit:"merkki\xE4",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"p\xE4iv\xE4m\xE4\xE4r\xE4n"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"s\xE4\xE4nn\xF6llinen lauseke",email:"s\xE4hk\xF6postiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-p\xE4iv\xE4m\xE4\xE4r\xE4",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"};return i=>{switch(i.code){case"invalid_type":return`Virheellinen tyyppi: odotettiin ${i.expected}, oli ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Virheellinen sy\xF6te: t\xE4ytyy olla ${Rt(i.values[0])}`:`Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Liian suuri: ${a.subject} t\xE4ytyy olla ${o}${i.maximum.toString()} ${a.unit}`.trim():`Liian suuri: arvon t\xE4ytyy olla ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Liian pieni: ${a.subject} t\xE4ytyy olla ${o}${i.minimum.toString()} ${a.unit}`.trim():`Liian pieni: arvon t\xE4ytyy olla ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Virheellinen sy\xF6te: t\xE4ytyy alkaa "${o.prefix}"`:o.format==="ends_with"?`Virheellinen sy\xF6te: t\xE4ytyy loppua "${o.suffix}"`:o.format==="includes"?`Virheellinen sy\xF6te: t\xE4ytyy sis\xE4lt\xE4\xE4 "${o.includes}"`:o.format==="regex"?`Virheellinen sy\xF6te: t\xE4ytyy vastata s\xE4\xE4nn\xF6llist\xE4 lauseketta ${o.pattern}`:`Virheellinen ${r[o.format]??i.format}`}case"not_multiple_of":return`Virheellinen luku: t\xE4ytyy olla luvun ${i.divisor} monikerta`;case"unrecognized_keys":return`${i.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${qe(i.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen sy\xF6te"}}};function KTe(){return{localeError:YTe()}}const XTe=()=>{const e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"nombre";case"object":{if(Array.isArray(i))return"tableau";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"entr\xE9e",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return i=>{switch(i.code){case"invalid_type":return`Entr\xE9e invalide : ${i.expected} attendu, ${n(i.input)} re\xE7u`;case"invalid_value":return i.values.length===1?`Entr\xE9e invalide : ${Rt(i.values[0])} attendu`:`Option invalide : une valeur parmi ${qe(i.values,"|")} attendue`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Trop grand : ${i.origin??"valeur"} doit ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"\xE9l\xE9ment(s)"}`:`Trop grand : ${i.origin??"valeur"} doit \xEAtre ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Trop petit : ${i.origin} doit ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Trop petit : ${i.origin} doit \xEAtre ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${o.prefix}"`:o.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${o.suffix}"`:o.format==="includes"?`Cha\xEEne invalide : doit inclure "${o.includes}"`:o.format==="regex"?`Cha\xEEne invalide : doit correspondre au mod\xE8le ${o.pattern}`:`${r[o.format]??i.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${i.divisor}`;case"unrecognized_keys":return`Cl\xE9${i.keys.length>1?"s":""} non reconnue${i.keys.length>1?"s":""} : ${qe(i.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${i.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${i.origin}`;default:return"Entr\xE9e invalide"}}};function JTe(){return{localeError:XTe()}}const QTe=()=>{const e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"entr\xE9e",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return i=>{switch(i.code){case"invalid_type":return`Entr\xE9e invalide : attendu ${i.expected}, re\xE7u ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Entr\xE9e invalide : attendu ${Rt(i.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"\u2264":"<",a=t(i.origin);return a?`Trop grand : attendu que ${i.origin??"la valeur"} ait ${o}${i.maximum.toString()} ${a.unit}`:`Trop grand : attendu que ${i.origin??"la valeur"} soit ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?"\u2265":">",a=t(i.origin);return a?`Trop petit : attendu que ${i.origin} ait ${o}${i.minimum.toString()} ${a.unit}`:`Trop petit : attendu que ${i.origin} soit ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${o.prefix}"`:o.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${o.suffix}"`:o.format==="includes"?`Cha\xEEne invalide : doit inclure "${o.includes}"`:o.format==="regex"?`Cha\xEEne invalide : doit correspondre au motif ${o.pattern}`:`${r[o.format]??i.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${i.divisor}`;case"unrecognized_keys":return`Cl\xE9${i.keys.length>1?"s":""} non reconnue${i.keys.length>1?"s":""} : ${qe(i.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${i.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${i.origin}`;default:return"Entr\xE9e invalide"}}};function eIe(){return{localeError:QTe()}}const tIe=()=>{const e={string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA",gender:"f"},number:{label:"\u05DE\u05E1\u05E4\u05E8",gender:"m"},boolean:{label:"\u05E2\u05E8\u05DA \u05D1\u05D5\u05DC\u05D9\u05D0\u05E0\u05D9",gender:"m"},bigint:{label:"BigInt",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA",gender:"m"},array:{label:"\u05DE\u05E2\u05E8\u05DA",gender:"m"},object:{label:"\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8",gender:"m"},null:{label:"\u05E2\u05E8\u05DA \u05E8\u05D9\u05E7 (null)",gender:"m"},undefined:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05DE\u05D5\u05D2\u05D3\u05E8 (undefined)",gender:"m"},symbol:{label:"\u05E1\u05D9\u05DE\u05D1\u05D5\u05DC (Symbol)",gender:"m"},function:{label:"\u05E4\u05D5\u05E0\u05E7\u05E6\u05D9\u05D4",gender:"f"},map:{label:"\u05DE\u05E4\u05D4 (Map)",gender:"f"},set:{label:"\u05E7\u05D1\u05D5\u05E6\u05D4 (Set)",gender:"f"},file:{label:"\u05E7\u05D5\u05D1\u05E5",gender:"m"},promise:{label:"Promise",gender:"m"},NaN:{label:"NaN",gender:"m"},unknown:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05D9\u05D3\u05D5\u05E2",gender:"m"},value:{label:"\u05E2\u05E8\u05DA",gender:"m"}},t={string:{unit:"\u05EA\u05D5\u05D5\u05D9\u05DD",shortLabel:"\u05E7\u05E6\u05E8",longLabel:"\u05D0\u05E8\u05D5\u05DA"},file:{unit:"\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},array:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},set:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},number:{unit:"",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"}},n=c=>c?e[c]:void 0,r=c=>{const d=n(c);return d?d.label:c??e.unknown.label},i=c=>`\u05D4${r(c)}`,o=c=>{var d;return(((d=n(c))==null?void 0:d.gender)??"m")==="f"?"\u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05D9\u05D5\u05EA":"\u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA"},a=c=>c?t[c]??null:null,s=c=>{const d=typeof c;switch(d){case"number":return Number.isNaN(c)?"NaN":"number";case"object":return Array.isArray(c)?"array":c===null?"null":Object.getPrototypeOf(c)!==Object.prototype&&c.constructor?c.constructor.name:"object";default:return d}},l={regex:{label:"\u05E7\u05DC\u05D8",gender:"m"},email:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC",gender:"f"},url:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA",gender:"f"},emoji:{label:"\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9",gender:"m"},uuid:{label:"UUID",gender:"m"},nanoid:{label:"nanoid",gender:"m"},guid:{label:"GUID",gender:"m"},cuid:{label:"cuid",gender:"m"},cuid2:{label:"cuid2",gender:"m"},ulid:{label:"ULID",gender:"m"},xid:{label:"XID",gender:"m"},ksuid:{label:"KSUID",gender:"m"},datetime:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA ISO",gender:"m"},time:{label:"\u05D6\u05DE\u05DF ISO",gender:"m"},duration:{label:"\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO",gender:"m"},ipv4:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv4",gender:"f"},ipv6:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv6",gender:"f"},cidrv4:{label:"\u05D8\u05D5\u05D5\u05D7 IPv4",gender:"m"},cidrv6:{label:"\u05D8\u05D5\u05D5\u05D7 IPv6",gender:"m"},base64:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64",gender:"f"},base64url:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA",gender:"f"},json_string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON",gender:"f"},e164:{label:"\u05DE\u05E1\u05E4\u05E8 E.164",gender:"m"},jwt:{label:"JWT",gender:"m"},ends_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},includes:{label:"\u05E7\u05DC\u05D8",gender:"m"},lowercase:{label:"\u05E7\u05DC\u05D8",gender:"m"},starts_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},uppercase:{label:"\u05E7\u05DC\u05D8",gender:"m"}};return c=>{var d;switch(c.code){case"invalid_type":{const f=c.expected,p=r(f),v=s(c.input),x=((d=e[v])==null?void 0:d.label)??v;return`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${p}, \u05D4\u05EA\u05E7\u05D1\u05DC ${x}`}case"invalid_value":{if(c.values.length===1)return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05E2\u05E8\u05DA \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA ${Rt(c.values[0])}`;const f=c.values.map(v=>Rt(v));if(c.values.length===2)return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${f[0]} \u05D0\u05D5 ${f[1]}`;const p=f[f.length-1];return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${f.slice(0,-1).join(", ")} \u05D0\u05D5 ${p}`}case"too_big":{const f=a(c.origin),p=i(c.origin??"value");if(c.origin==="string")return`${(f==null?void 0:f.longLabel)??"\u05D0\u05E8\u05D5\u05DA"} \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${c.maximum.toString()} ${(f==null?void 0:f.unit)??""} ${c.inclusive?"\u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA":"\u05DC\u05DB\u05DC \u05D4\u05D9\u05D5\u05EA\u05E8"}`.trim();if(c.origin==="number"){const y=c.inclusive?`\u05E7\u05D8\u05DF \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${c.maximum}`:`\u05E7\u05D8\u05DF \u05DE-${c.maximum}`;return`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${y}`}if(c.origin==="array"||c.origin==="set"){const y=c.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA",b=c.inclusive?`${c.maximum} ${(f==null?void 0:f.unit)??""} \u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA`:`\u05E4\u05D7\u05D5\u05EA \u05DE-${c.maximum} ${(f==null?void 0:f.unit)??""}`;return`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${p} ${y} \u05DC\u05D4\u05DB\u05D9\u05DC ${b}`.trim()}const v=c.inclusive?"<=":"<",x=o(c.origin??"value");return f!=null&&f.unit?`${f.longLabel} \u05DE\u05D3\u05D9: ${p} ${x} ${v}${c.maximum.toString()} ${f.unit}`:`${(f==null?void 0:f.longLabel)??"\u05D2\u05D3\u05D5\u05DC"} \u05DE\u05D3\u05D9: ${p} ${x} ${v}${c.maximum.toString()}`}case"too_small":{const f=a(c.origin),p=i(c.origin??"value");if(c.origin==="string")return`${(f==null?void 0:f.shortLabel)??"\u05E7\u05E6\u05E8"} \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${c.minimum.toString()} ${(f==null?void 0:f.unit)??""} ${c.inclusive?"\u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8":"\u05DC\u05E4\u05D7\u05D5\u05EA"}`.trim();if(c.origin==="number"){const y=c.inclusive?`\u05D2\u05D3\u05D5\u05DC \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${c.minimum}`:`\u05D2\u05D3\u05D5\u05DC \u05DE-${c.minimum}`;return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${y}`}if(c.origin==="array"||c.origin==="set"){const y=c.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA";if(c.minimum===1&&c.inclusive){const w=(c.origin,"\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3");return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} ${y} \u05DC\u05D4\u05DB\u05D9\u05DC ${w}`}const b=c.inclusive?`${c.minimum} ${(f==null?void 0:f.unit)??""} \u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8`:`\u05D9\u05D5\u05EA\u05E8 \u05DE-${c.minimum} ${(f==null?void 0:f.unit)??""}`;return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} ${y} \u05DC\u05D4\u05DB\u05D9\u05DC ${b}`.trim()}const v=c.inclusive?">=":">",x=o(c.origin??"value");return f!=null&&f.unit?`${f.shortLabel} \u05DE\u05D3\u05D9: ${p} ${x} ${v}${c.minimum.toString()} ${f.unit}`:`${(f==null?void 0:f.shortLabel)??"\u05E7\u05D8\u05DF"} \u05DE\u05D3\u05D9: ${p} ${x} ${v}${c.minimum.toString()}`}case"invalid_format":{const f=c;if(f.format==="starts_with")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1 "${f.prefix}"`;if(f.format==="ends_with")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 "${f.suffix}"`;if(f.format==="includes")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC "${f.includes}"`;if(f.format==="regex")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${f.pattern}`;const p=l[f.format],v=(p==null?void 0:p.label)??f.format,x=((p==null?void 0:p.gender)??"m")==="f"?"\u05EA\u05E7\u05D9\u05E0\u05D4":"\u05EA\u05E7\u05D9\u05DF";return`${v} \u05DC\u05D0 ${x}`}case"not_multiple_of":return`\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${c.divisor}`;case"unrecognized_keys":return`\u05DE\u05E4\u05EA\u05D7${c.keys.length>1?"\u05D5\u05EA":""} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${c.keys.length>1?"\u05D9\u05DD":"\u05D4"}: ${qe(c.keys,", ")}`;case"invalid_key":return"\u05E9\u05D3\u05D4 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8";case"invalid_union":return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF";case"invalid_element":return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${i(c.origin??"array")}`;default:return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF"}}};function nIe(){return{localeError:tIe()}}const rIe=()=>{const e={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"sz\xE1m";case"object":{if(Array.isArray(i))return"t\xF6mb";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"bemenet",email:"email c\xEDm",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO id\u0151b\xE9lyeg",date:"ISO d\xE1tum",time:"ISO id\u0151",duration:"ISO id\u0151intervallum",ipv4:"IPv4 c\xEDm",ipv6:"IPv6 c\xEDm",cidrv4:"IPv4 tartom\xE1ny",cidrv6:"IPv6 tartom\xE1ny",base64:"base64-k\xF3dolt string",base64url:"base64url-k\xF3dolt string",json_string:"JSON string",e164:"E.164 sz\xE1m",jwt:"JWT",template_literal:"bemenet"};return i=>{switch(i.code){case"invalid_type":return`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${i.expected}, a kapott \xE9rt\xE9k ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${Rt(i.values[0])}`:`\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`T\xFAl nagy: ${i.origin??"\xE9rt\xE9k"} m\xE9rete t\xFAl nagy ${o}${i.maximum.toString()} ${a.unit??"elem"}`:`T\xFAl nagy: a bemeneti \xE9rt\xE9k ${i.origin??"\xE9rt\xE9k"} t\xFAl nagy: ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${i.origin} m\xE9rete t\xFAl kicsi ${o}${i.minimum.toString()} ${a.unit}`:`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${i.origin} t\xFAl kicsi ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\xC9rv\xE9nytelen string: "${o.prefix}" \xE9rt\xE9kkel kell kezd\u0151dnie`:o.format==="ends_with"?`\xC9rv\xE9nytelen string: "${o.suffix}" \xE9rt\xE9kkel kell v\xE9gz\u0151dnie`:o.format==="includes"?`\xC9rv\xE9nytelen string: "${o.includes}" \xE9rt\xE9ket kell tartalmaznia`:o.format==="regex"?`\xC9rv\xE9nytelen string: ${o.pattern} mint\xE1nak kell megfelelnie`:`\xC9rv\xE9nytelen ${r[o.format]??i.format}`}case"not_multiple_of":return`\xC9rv\xE9nytelen sz\xE1m: ${i.divisor} t\xF6bbsz\xF6r\xF6s\xE9nek kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`\xC9rv\xE9nytelen kulcs ${i.origin}`;case"invalid_union":return"\xC9rv\xE9nytelen bemenet";case"invalid_element":return`\xC9rv\xE9nytelen \xE9rt\xE9k: ${i.origin}`;default:return"\xC9rv\xE9nytelen bemenet"}}};function iIe(){return{localeError:rIe()}}const oIe=()=>{const e={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Input tidak valid: diharapkan ${i.expected}, diterima ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Input tidak valid: diharapkan ${Rt(i.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Terlalu besar: diharapkan ${i.origin??"value"} memiliki ${o}${i.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: diharapkan ${i.origin??"value"} menjadi ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Terlalu kecil: diharapkan ${i.origin} memiliki ${o}${i.minimum.toString()} ${a.unit}`:`Terlalu kecil: diharapkan ${i.origin} menjadi ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`String tidak valid: harus dimulai dengan "${o.prefix}"`:o.format==="ends_with"?`String tidak valid: harus berakhir dengan "${o.suffix}"`:o.format==="includes"?`String tidak valid: harus menyertakan "${o.includes}"`:o.format==="regex"?`String tidak valid: harus sesuai pola ${o.pattern}`:`${r[o.format]??i.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${i.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${i.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${i.origin}`;default:return"Input tidak valid"}}};function aIe(){return{localeError:oIe()}}const sIe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"n\xFAmer";case"object":{if(Array.isArray(e))return"fylki";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},lIe=()=>{const e={string:{unit:"stafi",verb:"a\xF0 hafa"},file:{unit:"b\xE6ti",verb:"a\xF0 hafa"},array:{unit:"hluti",verb:"a\xF0 hafa"},set:{unit:"hluti",verb:"a\xF0 hafa"}};function t(r){return e[r]??null}const n={regex:"gildi",email:"netfang",url:"vefsl\xF3\xF0",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dagsetning og t\xEDmi",date:"ISO dagsetning",time:"ISO t\xEDmi",duration:"ISO t\xEDmalengd",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded strengur",base64url:"base64url-encoded strengur",json_string:"JSON strengur",e164:"E.164 t\xF6lugildi",jwt:"JWT",template_literal:"gildi"};return r=>{switch(r.code){case"invalid_type":return`Rangt gildi: \xDE\xFA sl\xF3st inn ${sIe(r.input)} \xFEar sem \xE1 a\xF0 vera ${r.expected}`;case"invalid_value":return r.values.length===1?`Rangt gildi: gert r\xE1\xF0 fyrir ${Rt(r.values[0])}`:`\xD3gilt val: m\xE1 vera eitt af eftirfarandi ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin??"gildi"} hafi ${i}${r.maximum.toString()} ${o.unit??"hluti"}`:`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin??"gildi"} s\xE9 ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin} hafi ${i}${r.minimum.toString()} ${o.unit}`:`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin} s\xE9 ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`\xD3gildur strengur: ver\xF0ur a\xF0 byrja \xE1 "${i.prefix}"`:i.format==="ends_with"?`\xD3gildur strengur: ver\xF0ur a\xF0 enda \xE1 "${i.suffix}"`:i.format==="includes"?`\xD3gildur strengur: ver\xF0ur a\xF0 innihalda "${i.includes}"`:i.format==="regex"?`\xD3gildur strengur: ver\xF0ur a\xF0 fylgja mynstri ${i.pattern}`:`Rangt ${n[i.format]??r.format}`}case"not_multiple_of":return`R\xF6ng tala: ver\xF0ur a\xF0 vera margfeldi af ${r.divisor}`;case"unrecognized_keys":return`\xD3\xFEekkt ${r.keys.length>1?"ir lyklar":"ur lykill"}: ${qe(r.keys,", ")}`;case"invalid_key":return`Rangur lykill \xED ${r.origin}`;case"invalid_union":return"Rangt gildi";case"invalid_element":return`Rangt gildi \xED ${r.origin}`;default:return"Rangt gildi"}}};function uIe(){return{localeError:lIe()}}const cIe=()=>{const e={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"numero";case"object":{if(Array.isArray(i))return"vettore";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Input non valido: atteso ${i.expected}, ricevuto ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Input non valido: atteso ${Rt(i.values[0])}`:`Opzione non valida: atteso uno tra ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Troppo grande: ${i.origin??"valore"} deve avere ${o}${i.maximum.toString()} ${a.unit??"elementi"}`:`Troppo grande: ${i.origin??"valore"} deve essere ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Troppo piccolo: ${i.origin} deve avere ${o}${i.minimum.toString()} ${a.unit}`:`Troppo piccolo: ${i.origin} deve essere ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Stringa non valida: deve iniziare con "${o.prefix}"`:o.format==="ends_with"?`Stringa non valida: deve terminare con "${o.suffix}"`:o.format==="includes"?`Stringa non valida: deve includere "${o.includes}"`:o.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${o.pattern}`:`Invalid ${r[o.format]??i.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${i.divisor}`;case"unrecognized_keys":return`Chiav${i.keys.length>1?"i":"e"} non riconosciut${i.keys.length>1?"e":"a"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${i.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${i.origin}`;default:return"Input non valido"}}};function dIe(){return{localeError:cIe()}}const fIe=()=>{const e={string:{unit:"\u6587\u5B57",verb:"\u3067\u3042\u308B"},file:{unit:"\u30D0\u30A4\u30C8",verb:"\u3067\u3042\u308B"},array:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"},set:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u6570\u5024";case"object":{if(Array.isArray(i))return"\u914D\u5217";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u5165\u529B\u5024",email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",url:"URL",emoji:"\u7D75\u6587\u5B57",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u6642",date:"ISO\u65E5\u4ED8",time:"ISO\u6642\u523B",duration:"ISO\u671F\u9593",ipv4:"IPv4\u30A2\u30C9\u30EC\u30B9",ipv6:"IPv6\u30A2\u30C9\u30EC\u30B9",cidrv4:"IPv4\u7BC4\u56F2",cidrv6:"IPv6\u7BC4\u56F2",base64:"base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",base64url:"base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",json_string:"JSON\u6587\u5B57\u5217",e164:"E.164\u756A\u53F7",jwt:"JWT",template_literal:"\u5165\u529B\u5024"};return i=>{switch(i.code){case"invalid_type":return`\u7121\u52B9\u306A\u5165\u529B: ${i.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${n(i.input)}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`;case"invalid_value":return i.values.length===1?`\u7121\u52B9\u306A\u5165\u529B: ${Rt(i.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`:`\u7121\u52B9\u306A\u9078\u629E: ${qe(i.values,"\u3001")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"too_big":{const o=i.inclusive?"\u4EE5\u4E0B\u3067\u3042\u308B":"\u3088\u308A\u5C0F\u3055\u3044",a=t(i.origin);return a?`\u5927\u304D\u3059\u304E\u308B\u5024: ${i.origin??"\u5024"}\u306F${i.maximum.toString()}${a.unit??"\u8981\u7D20"}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5927\u304D\u3059\u304E\u308B\u5024: ${i.origin??"\u5024"}\u306F${i.maximum.toString()}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"too_small":{const o=i.inclusive?"\u4EE5\u4E0A\u3067\u3042\u308B":"\u3088\u308A\u5927\u304D\u3044",a=t(i.origin);return a?`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${i.origin}\u306F${i.minimum.toString()}${a.unit}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${i.origin}\u306F${i.minimum.toString()}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.prefix}"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="ends_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.suffix}"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="includes"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.includes}"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="regex"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${o.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u7121\u52B9\u306A${r[o.format]??i.format}`}case"not_multiple_of":return`\u7121\u52B9\u306A\u6570\u5024: ${i.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"unrecognized_keys":return`\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${i.keys.length>1?"\u7FA4":""}: ${qe(i.keys,"\u3001")}`;case"invalid_key":return`${i.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`;case"invalid_union":return"\u7121\u52B9\u306A\u5165\u529B";case"invalid_element":return`${i.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`;default:return"\u7121\u52B9\u306A\u5165\u529B"}}};function hIe(){return{localeError:fIe()}}const pIe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"\u10E0\u10D8\u10EA\u10EE\u10D5\u10D8";case"object":{if(Array.isArray(e))return"\u10DB\u10D0\u10E1\u10D8\u10D5\u10D8";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return{string:"\u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",boolean:"\u10D1\u10E3\u10DA\u10D4\u10D0\u10DC\u10D8",undefined:"undefined",bigint:"bigint",symbol:"symbol",function:"\u10E4\u10E3\u10DC\u10E5\u10EA\u10D8\u10D0"}[t]??t},mIe=()=>{const e={string:{unit:"\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},file:{unit:"\u10D1\u10D0\u10D8\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},array:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},set:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"}};function t(r){return e[r]??null}const n={regex:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0",email:"\u10D4\u10DA-\u10E4\u10DD\u10E1\u10E2\u10D8\u10E1 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",url:"URL",emoji:"\u10D4\u10DB\u10DD\u10EF\u10D8",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8-\u10D3\u10E0\u10DD",date:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8",time:"\u10D3\u10E0\u10DD",duration:"\u10EE\u10D0\u10DC\u10D2\u10E0\u10EB\u10DA\u10D8\u10D5\u10DD\u10D1\u10D0",ipv4:"IPv4 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",ipv6:"IPv6 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",cidrv4:"IPv4 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",cidrv6:"IPv6 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",base64:"base64-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",base64url:"base64url-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",json_string:"JSON \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",e164:"E.164 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8",jwt:"JWT",template_literal:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"};return r=>{switch(r.code){case"invalid_type":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${pIe(r.input)}`;case"invalid_value":return r.values.length===1?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${Rt(r.values[0])}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D0\u10E0\u10D8\u10D0\u10DC\u10E2\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8\u10D0 \u10D4\u10E0\u10D7-\u10D4\u10E0\u10D7\u10D8 ${qe(r.values,"|")}-\u10D3\u10D0\u10DC`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} ${o.verb} ${i}${r.maximum.toString()} ${o.unit}`:`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} \u10D8\u10E7\u10DD\u10E1 ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin} ${o.verb} ${i}${r.minimum.toString()} ${o.unit}`:`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin} \u10D8\u10E7\u10DD\u10E1 ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10EC\u10E7\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${i.prefix}"-\u10D8\u10D7`:i.format==="ends_with"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10DB\u10D7\u10D0\u10D5\u10E0\u10D3\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${i.suffix}"-\u10D8\u10D7`:i.format==="includes"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1 "${i.includes}"-\u10E1`:i.format==="regex"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D4\u10E1\u10D0\u10D1\u10D0\u10DB\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \u10E8\u10D0\u10D1\u10DA\u10DD\u10DC\u10E1 ${i.pattern}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 ${n[i.format]??r.format}`}case"not_multiple_of":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E0\u10D8\u10EA\u10EE\u10D5\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10E7\u10DD\u10E1 ${r.divisor}-\u10D8\u10E1 \u10EF\u10D4\u10E0\u10D0\u10D3\u10D8`;case"unrecognized_keys":return`\u10E3\u10EA\u10DC\u10DD\u10D1\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1${r.keys.length>1?"\u10D4\u10D1\u10D8":"\u10D8"}: ${qe(r.keys,", ")}`;case"invalid_key":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1\u10D8 ${r.origin}-\u10E8\u10D8`;case"invalid_union":return"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0";case"invalid_element":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0 ${r.origin}-\u10E8\u10D8`;default:return"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"}}};function gIe(){return{localeError:mIe()}}const vIe=()=>{const e={string:{unit:"\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},file:{unit:"\u1794\u17C3",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},array:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},set:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u1798\u17B7\u1793\u1798\u17C2\u1793\u1787\u17B6\u179B\u17C1\u1781 (NaN)":"\u179B\u17C1\u1781";case"object":{if(Array.isArray(i))return"\u17A2\u17B6\u179A\u17C1 (Array)";if(i===null)return"\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B",email:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B",url:"URL",emoji:"\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO",date:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO",time:"\u1798\u17C9\u17C4\u1784 ISO",duration:"\u179A\u1799\u17C8\u1796\u17C1\u179B ISO",ipv4:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",ipv6:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",cidrv4:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",cidrv6:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",base64:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64",base64url:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url",json_string:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON",e164:"\u179B\u17C1\u1781 E.164",jwt:"JWT",template_literal:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B"};return i=>{switch(i.code){case"invalid_type":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${Rt(i.values[0])}`:`\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${o} ${i.maximum.toString()} ${a.unit??"\u1792\u17B6\u178F\u17BB"}`:`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin} ${o} ${i.minimum.toString()} ${a.unit}`:`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin} ${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 "${o.prefix}"`:o.format==="ends_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 "${o.suffix}"`:o.format==="includes"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 "${o.includes}"`:o.format==="regex"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${o.pattern}`:`\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${i.divisor}`;case"unrecognized_keys":return`\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${qe(i.keys,", ")}`;case"invalid_key":return`\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${i.origin}`;case"invalid_union":return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C";case"invalid_element":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${i.origin}`;default:return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C"}}};function OX(){return{localeError:vIe()}}function yIe(){return OX()}const bIe=()=>{const e={string:{unit:"\uBB38\uC790",verb:"to have"},file:{unit:"\uBC14\uC774\uD2B8",verb:"to have"},array:{unit:"\uAC1C",verb:"to have"},set:{unit:"\uAC1C",verb:"to have"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\uC785\uB825",email:"\uC774\uBA54\uC77C \uC8FC\uC18C",url:"URL",emoji:"\uC774\uBAA8\uC9C0",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \uB0A0\uC9DC\uC2DC\uAC04",date:"ISO \uB0A0\uC9DC",time:"ISO \uC2DC\uAC04",duration:"ISO \uAE30\uAC04",ipv4:"IPv4 \uC8FC\uC18C",ipv6:"IPv6 \uC8FC\uC18C",cidrv4:"IPv4 \uBC94\uC704",cidrv6:"IPv6 \uBC94\uC704",base64:"base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",base64url:"base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",json_string:"JSON \uBB38\uC790\uC5F4",e164:"E.164 \uBC88\uD638",jwt:"JWT",template_literal:"\uC785\uB825"};return i=>{switch(i.code){case"invalid_type":return`\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${i.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${n(i.input)}\uC785\uB2C8\uB2E4`;case"invalid_value":return i.values.length===1?`\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${Rt(i.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C \uC635\uC158: ${qe(i.values,"\uB610\uB294 ")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"too_big":{const o=i.inclusive?"\uC774\uD558":"\uBBF8\uB9CC",a=o==="\uBBF8\uB9CC"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",s=t(i.origin),l=(s==null?void 0:s.unit)??"\uC694\uC18C";return s?`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${i.maximum.toString()}${l} ${o}${a}`:`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${i.maximum.toString()} ${o}${a}`}case"too_small":{const o=i.inclusive?"\uC774\uC0C1":"\uCD08\uACFC",a=o==="\uC774\uC0C1"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",s=t(i.origin),l=(s==null?void 0:s.unit)??"\uC694\uC18C";return s?`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${i.minimum.toString()}${l} ${o}${a}`:`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${i.minimum.toString()} ${o}${a}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.prefix}"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`:o.format==="ends_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.suffix}"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`:o.format==="includes"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.includes}"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`:o.format==="regex"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${o.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C ${r[o.format]??i.format}`}case"not_multiple_of":return`\uC798\uBABB\uB41C \uC22B\uC790: ${i.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"unrecognized_keys":return`\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${qe(i.keys,", ")}`;case"invalid_key":return`\uC798\uBABB\uB41C \uD0A4: ${i.origin}`;case"invalid_union":return"\uC798\uBABB\uB41C \uC785\uB825";case"invalid_element":return`\uC798\uBABB\uB41C \uAC12: ${i.origin}`;default:return"\uC798\uBABB\uB41C \uC785\uB825"}}};function xIe(){return{localeError:bIe()}}const _Ie=e=>ob(typeof e,e),ob=(e,t=void 0)=>{switch(e){case"number":return Number.isNaN(t)?"NaN":"skai\u010Dius";case"bigint":return"sveikasis skai\u010Dius";case"string":return"eilut\u0117";case"boolean":return"login\u0117 reik\u0161m\u0117";case"undefined":case"void":return"neapibr\u0117\u017Eta reik\u0161m\u0117";case"function":return"funkcija";case"symbol":return"simbolis";case"object":return t===void 0?"ne\u017Einomas objektas":t===null?"nulin\u0117 reik\u0161m\u0117":Array.isArray(t)?"masyvas":Object.getPrototypeOf(t)!==Object.prototype&&t.constructor?t.constructor.name:"objektas";case"null":return"nulin\u0117 reik\u0161m\u0117"}return e},ab=e=>e.charAt(0).toUpperCase()+e.slice(1);function zX(e){const t=Math.abs(e),n=t%10,r=t%100;return r>=11&&r<=19||n===0?"many":n===1?"one":"few"}const wIe=()=>{const e={string:{unit:{one:"simbolis",few:"simboliai",many:"simboli\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne ilgesn\u0117 kaip",notInclusive:"turi b\u016Bti trumpesn\u0117 kaip"},bigger:{inclusive:"turi b\u016Bti ne trumpesn\u0117 kaip",notInclusive:"turi b\u016Bti ilgesn\u0117 kaip"}}},file:{unit:{one:"baitas",few:"baitai",many:"bait\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne didesnis kaip",notInclusive:"turi b\u016Bti ma\u017Eesnis kaip"},bigger:{inclusive:"turi b\u016Bti ne ma\u017Eesnis kaip",notInclusive:"turi b\u016Bti didesnis kaip"}}},array:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}},set:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}}};function t(r,i,o,a){const s=e[r]??null;return s===null?s:{unit:s.unit[i],verb:s.verb[a][o?"inclusive":"notInclusive"]}}const n={regex:"\u012Fvestis",email:"el. pa\u0161to adresas",url:"URL",emoji:"jaustukas",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO data ir laikas",date:"ISO data",time:"ISO laikas",duration:"ISO trukm\u0117",ipv4:"IPv4 adresas",ipv6:"IPv6 adresas",cidrv4:"IPv4 tinklo prefiksas (CIDR)",cidrv6:"IPv6 tinklo prefiksas (CIDR)",base64:"base64 u\u017Ekoduota eilut\u0117",base64url:"base64url u\u017Ekoduota eilut\u0117",json_string:"JSON eilut\u0117",e164:"E.164 numeris",jwt:"JWT",template_literal:"\u012Fvestis"};return r=>{switch(r.code){case"invalid_type":return`Gautas tipas ${_Ie(r.input)}, o tik\u0117tasi - ${ob(r.expected)}`;case"invalid_value":return r.values.length===1?`Privalo b\u016Bti ${Rt(r.values[0])}`:`Privalo b\u016Bti vienas i\u0161 ${qe(r.values,"|")} pasirinkim\u0173`;case"too_big":{const i=ob(r.origin),o=t(r.origin,zX(Number(r.maximum)),r.inclusive??!1,"smaller");if(o!=null&&o.verb)return`${ab(i??r.origin??"reik\u0161m\u0117")} ${o.verb} ${r.maximum.toString()} ${o.unit??"element\u0173"}`;const a=r.inclusive?"ne didesnis kaip":"ma\u017Eesnis kaip";return`${ab(i??r.origin??"reik\u0161m\u0117")} turi b\u016Bti ${a} ${r.maximum.toString()} ${o==null?void 0:o.unit}`}case"too_small":{const i=ob(r.origin),o=t(r.origin,zX(Number(r.minimum)),r.inclusive??!1,"bigger");if(o!=null&&o.verb)return`${ab(i??r.origin??"reik\u0161m\u0117")} ${o.verb} ${r.minimum.toString()} ${o.unit??"element\u0173"}`;const a=r.inclusive?"ne ma\u017Eesnis kaip":"didesnis kaip";return`${ab(i??r.origin??"reik\u0161m\u0117")} turi b\u016Bti ${a} ${r.minimum.toString()} ${o==null?void 0:o.unit}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Eilut\u0117 privalo prasid\u0117ti "${i.prefix}"`:i.format==="ends_with"?`Eilut\u0117 privalo pasibaigti "${i.suffix}"`:i.format==="includes"?`Eilut\u0117 privalo \u012Ftraukti "${i.includes}"`:i.format==="regex"?`Eilut\u0117 privalo atitikti ${i.pattern}`:`Neteisingas ${n[i.format]??r.format}`}case"not_multiple_of":return`Skai\u010Dius privalo b\u016Bti ${r.divisor} kartotinis.`;case"unrecognized_keys":return`Neatpa\u017Eint${r.keys.length>1?"i":"as"} rakt${r.keys.length>1?"ai":"as"}: ${qe(r.keys,", ")}`;case"invalid_key":return"Rastas klaidingas raktas";case"invalid_union":return"Klaidinga \u012Fvestis";case"invalid_element":{const i=ob(r.origin);return`${ab(i??r.origin??"reik\u0161m\u0117")} turi klaiding\u0105 \u012Fvest\u012F`}default:return"Klaidinga \u012Fvestis"}}};function kIe(){return{localeError:wIe()}}const SIe=()=>{const e={string:{unit:"\u0437\u043D\u0430\u0446\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},file:{unit:"\u0431\u0430\u0458\u0442\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},array:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},set:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0431\u0440\u043E\u0458";case"object":{if(Array.isArray(i))return"\u043D\u0438\u0437\u0430";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0432\u043D\u0435\u0441",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430",url:"URL",emoji:"\u0435\u043C\u043E\u045F\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0443\u043C",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441\u0430",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441\u0430",cidrv4:"IPv4 \u043E\u043F\u0441\u0435\u0433",cidrv6:"IPv6 \u043E\u043F\u0441\u0435\u0433",base64:"base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",base64url:"base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",json_string:"JSON \u043D\u0438\u0437\u0430",e164:"E.164 \u0431\u0440\u043E\u0458",jwt:"JWT",template_literal:"\u0432\u043D\u0435\u0441"};return i=>{switch(i.code){case"invalid_type":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Invalid input: expected ${Rt(i.values[0])}`:`\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0438\u043C\u0430 ${o}${i.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438"}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin} \u0434\u0430 \u0438\u043C\u0430 ${o}${i.minimum.toString()} ${a.unit}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${o.pattern}`:`Invalid ${r[o.format]??i.format}`}case"not_multiple_of":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438":"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447"}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${i.origin}`;case"invalid_union":return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441";case"invalid_element":return`\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${i.origin}`;default:return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441"}}};function CIe(){return{localeError:SIe()}}const jIe=()=>{const e={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"nombor";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Input tidak sah: dijangka ${i.expected}, diterima ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Input tidak sah: dijangka ${Rt(i.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Terlalu besar: dijangka ${i.origin??"nilai"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: dijangka ${i.origin??"nilai"} adalah ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Terlalu kecil: dijangka ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Terlalu kecil: dijangka ${i.origin} adalah ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`String tidak sah: mesti bermula dengan "${o.prefix}"`:o.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${o.suffix}"`:o.format==="includes"?`String tidak sah: mesti mengandungi "${o.includes}"`:o.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${o.pattern}`:`${r[o.format]??i.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${i.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${qe(i.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${i.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${i.origin}`;default:return"Input tidak sah"}}};function TIe(){return{localeError:jIe()}}const IIe=()=>{const e={string:{unit:"tekens",verb:"te hebben"},file:{unit:"bytes",verb:"te hebben"},array:{unit:"elementen",verb:"te hebben"},set:{unit:"elementen",verb:"te hebben"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"getal";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"};return i=>{switch(i.code){case"invalid_type":return`Ongeldige invoer: verwacht ${i.expected}, ontving ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ongeldige invoer: verwacht ${Rt(i.values[0])}`:`Ongeldige optie: verwacht \xE9\xE9n van ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Te groot: verwacht dat ${i.origin??"waarde"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"elementen"}`:`Te groot: verwacht dat ${i.origin??"waarde"} ${o}${i.maximum.toString()} is`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Te klein: verwacht dat ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Te klein: verwacht dat ${i.origin} ${o}${i.minimum.toString()} is`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ongeldige tekst: moet met "${o.prefix}" beginnen`:o.format==="ends_with"?`Ongeldige tekst: moet op "${o.suffix}" eindigen`:o.format==="includes"?`Ongeldige tekst: moet "${o.includes}" bevatten`:o.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${o.pattern}`:`Ongeldig: ${r[o.format]??i.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${i.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${i.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${i.origin}`;default:return"Ongeldige invoer"}}};function EIe(){return{localeError:IIe()}}const NIe=()=>{const e={string:{unit:"tegn",verb:"\xE5 ha"},file:{unit:"bytes",verb:"\xE5 ha"},array:{unit:"elementer",verb:"\xE5 inneholde"},set:{unit:"elementer",verb:"\xE5 inneholde"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"tall";case"object":{if(Array.isArray(i))return"liste";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Ugyldig input: forventet ${i.expected}, fikk ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ugyldig verdi: forventet ${Rt(i.values[0])}`:`Ugyldig valg: forventet en av ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`For stor(t): forventet ${i.origin??"value"} til \xE5 ha ${o}${i.maximum.toString()} ${a.unit??"elementer"}`:`For stor(t): forventet ${i.origin??"value"} til \xE5 ha ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`For lite(n): forventet ${i.origin} til \xE5 ha ${o}${i.minimum.toString()} ${a.unit}`:`For lite(n): forventet ${i.origin} til \xE5 ha ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ugyldig streng: m\xE5 starte med "${o.prefix}"`:o.format==="ends_with"?`Ugyldig streng: m\xE5 ende med "${o.suffix}"`:o.format==="includes"?`Ugyldig streng: m\xE5 inneholde "${o.includes}"`:o.format==="regex"?`Ugyldig streng: m\xE5 matche m\xF8nsteret ${o.pattern}`:`Ugyldig ${r[o.format]??i.format}`}case"not_multiple_of":return`Ugyldig tall: m\xE5 v\xE6re et multiplum av ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Ukjente n\xF8kler":"Ukjent n\xF8kkel"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8kkel i ${i.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${i.origin}`;default:return"Ugyldig input"}}};function $Ie(){return{localeError:NIe()}}const MIe=()=>{const e={string:{unit:"harf",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"unsur",verb:"olmal\u0131d\u0131r"},set:{unit:"unsur",verb:"olmal\u0131d\u0131r"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"numara";case"object":{if(Array.isArray(i))return"saf";if(i===null)return"gayb";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"giren",email:"epostag\xE2h",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO heng\xE2m\u0131",date:"ISO tarihi",time:"ISO zaman\u0131",duration:"ISO m\xFCddeti",ipv4:"IPv4 ni\u015F\xE2n\u0131",ipv6:"IPv6 ni\u015F\xE2n\u0131",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-\u015Fifreli metin",base64url:"base64url-\u015Fifreli metin",json_string:"JSON metin",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"giren"};return i=>{switch(i.code){case"invalid_type":return`F\xE2sit giren: umulan ${i.expected}, al\u0131nan ${n(i.input)}`;case"invalid_value":return i.values.length===1?`F\xE2sit giren: umulan ${Rt(i.values[0])}`:`F\xE2sit tercih: m\xFBteberler ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Fazla b\xFCy\xFCk: ${i.origin??"value"}, ${o}${i.maximum.toString()} ${a.unit??"elements"} sahip olmal\u0131yd\u0131.`:`Fazla b\xFCy\xFCk: ${i.origin??"value"}, ${o}${i.maximum.toString()} olmal\u0131yd\u0131.`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Fazla k\xFC\xE7\xFCk: ${i.origin}, ${o}${i.minimum.toString()} ${a.unit} sahip olmal\u0131yd\u0131.`:`Fazla k\xFC\xE7\xFCk: ${i.origin}, ${o}${i.minimum.toString()} olmal\u0131yd\u0131.`}case"invalid_format":{const o=i;return o.format==="starts_with"?`F\xE2sit metin: "${o.prefix}" ile ba\u015Flamal\u0131.`:o.format==="ends_with"?`F\xE2sit metin: "${o.suffix}" ile bitmeli.`:o.format==="includes"?`F\xE2sit metin: "${o.includes}" ihtiv\xE2 etmeli.`:o.format==="regex"?`F\xE2sit metin: ${o.pattern} nak\u015F\u0131na uymal\u0131.`:`F\xE2sit ${r[o.format]??i.format}`}case"not_multiple_of":return`F\xE2sit say\u0131: ${i.divisor} kat\u0131 olmal\u0131yd\u0131.`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar ${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} i\xE7in tan\u0131nmayan anahtar var.`;case"invalid_union":return"Giren tan\u0131namad\u0131.";case"invalid_element":return`${i.origin} i\xE7in tan\u0131nmayan k\u0131ymet var.`;default:return"K\u0131ymet tan\u0131namad\u0131."}}};function RIe(){return{localeError:MIe()}}const LIe=()=>{const e={string:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},file:{unit:"\u0628\u0627\u06CC\u067C\u0633",verb:"\u0648\u0644\u0631\u064A"},array:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},set:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(i))return"\u0627\u0631\u06D0";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0648\u0631\u0648\u062F\u064A",email:"\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9",url:"\u06CC\u0648 \u0622\u0631 \u0627\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A",date:"\u0646\u06D0\u067C\u0647",time:"\u0648\u062E\u062A",duration:"\u0645\u0648\u062F\u0647",ipv4:"\u062F IPv4 \u067E\u062A\u0647",ipv6:"\u062F IPv6 \u067E\u062A\u0647",cidrv4:"\u062F IPv4 \u0633\u0627\u062D\u0647",cidrv6:"\u062F IPv6 \u0633\u0627\u062D\u0647",base64:"base64-encoded \u0645\u062A\u0646",base64url:"base64url-encoded \u0645\u062A\u0646",json_string:"JSON \u0645\u062A\u0646",e164:"\u062F E.164 \u0634\u0645\u06D0\u0631\u0647",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u064A"};return i=>{switch(i.code){case"invalid_type":return`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${i.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${n(i.input)} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`;case"invalid_value":return i.values.length===1?`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${Rt(i.values[0])} \u0648\u0627\u06CC`:`\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${qe(i.values,"|")} \u0685\u062E\u0647 \u0648\u0627\u06CC`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${i.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631\u0648\u0646\u0647"} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${i.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} \u0648\u064A`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} ${a.unit} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} \u0648\u064A`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${o.prefix}" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`:o.format==="ends_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${o.suffix}" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`:o.format==="includes"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F "${o.includes}" \u0648\u0644\u0631\u064A`:o.format==="regex"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${o.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`:`${r[o.format]??i.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`}case"not_multiple_of":return`\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${i.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`;case"unrecognized_keys":return`\u0646\u0627\u0633\u0645 ${i.keys.length>1?"\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647":"\u06A9\u0644\u06CC\u0689"}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${i.origin} \u06A9\u06D0`;case"invalid_union":return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A";case"invalid_element":return`\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${i.origin} \u06A9\u06D0`;default:return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A"}}};function PIe(){return{localeError:LIe()}}const OIe=()=>{const e={string:{unit:"znak\xF3w",verb:"mie\u0107"},file:{unit:"bajt\xF3w",verb:"mie\u0107"},array:{unit:"element\xF3w",verb:"mie\u0107"},set:{unit:"element\xF3w",verb:"mie\u0107"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"liczba";case"object":{if(Array.isArray(i))return"tablica";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"wyra\u017Cenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ci\u0105g znak\xF3w zakodowany w formacie base64",base64url:"ci\u0105g znak\xF3w zakodowany w formacie base64url",json_string:"ci\u0105g znak\xF3w w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wej\u015Bcie"};return i=>{switch(i.code){case"invalid_type":return`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${i.expected}, otrzymano ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${Rt(i.values[0])}`:`Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${o}${i.maximum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${o}${i.minimum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zaczyna\u0107 si\u0119 od "${o.prefix}"`:o.format==="ends_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi ko\u0144czy\u0107 si\u0119 na "${o.suffix}"`:o.format==="includes"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zawiera\u0107 "${o.includes}"`:o.format==="regex"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi odpowiada\u0107 wzorcowi ${o.pattern}`:`Nieprawid\u0142ow(y/a/e) ${r[o.format]??i.format}`}case"not_multiple_of":return`Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${i.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Nieprawid\u0142owy klucz w ${i.origin}`;case"invalid_union":return"Nieprawid\u0142owe dane wej\u015Bciowe";case"invalid_element":return`Nieprawid\u0142owa warto\u015B\u0107 w ${i.origin}`;default:return"Nieprawid\u0142owe dane wej\u015Bciowe"}}};function zIe(){return{localeError:OIe()}}const DIe=()=>{const e={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"n\xFAmero";case"object":{if(Array.isArray(i))return"array";if(i===null)return"nulo";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"padr\xE3o",email:"endere\xE7o de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"dura\xE7\xE3o ISO",ipv4:"endere\xE7o IPv4",ipv6:"endere\xE7o IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return i=>{switch(i.code){case"invalid_type":return`Tipo inv\xE1lido: esperado ${i.expected}, recebido ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Entrada inv\xE1lida: esperado ${Rt(i.values[0])}`:`Op\xE7\xE3o inv\xE1lida: esperada uma das ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Muito grande: esperado que ${i.origin??"valor"} tivesse ${o}${i.maximum.toString()} ${a.unit??"elementos"}`:`Muito grande: esperado que ${i.origin??"valor"} fosse ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Muito pequeno: esperado que ${i.origin} tivesse ${o}${i.minimum.toString()} ${a.unit}`:`Muito pequeno: esperado que ${i.origin} fosse ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Texto inv\xE1lido: deve come\xE7ar com "${o.prefix}"`:o.format==="ends_with"?`Texto inv\xE1lido: deve terminar com "${o.suffix}"`:o.format==="includes"?`Texto inv\xE1lido: deve incluir "${o.includes}"`:o.format==="regex"?`Texto inv\xE1lido: deve corresponder ao padr\xE3o ${o.pattern}`:`${r[o.format]??i.format} inv\xE1lido`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${i.divisor}`;case"unrecognized_keys":return`Chave${i.keys.length>1?"s":""} desconhecida${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Chave inv\xE1lida em ${i.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido em ${i.origin}`;default:return"Campo inv\xE1lido"}}};function AIe(){return{localeError:DIe()}}function DX(e,t,n,r){const i=Math.abs(e),o=i%10,a=i%100;return a>=11&&a<=19?r:o===1?t:o>=2&&o<=4?n:r}const FIe=()=>{const e={string:{unit:{one:"\u0441\u0438\u043C\u0432\u043E\u043B",few:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",many:"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u0430",many:"\u0431\u0430\u0439\u0442"},verb:"\u0438\u043C\u0435\u0442\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(i))return"\u043C\u0430\u0441\u0441\u0438\u0432";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0432\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u044F",duration:"ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64",base64url:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url",json_string:"JSON \u0441\u0442\u0440\u043E\u043A\u0430",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0432\u043E\u0434"};return i=>{switch(i.code){case"invalid_type":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${i.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${Rt(i.values[0])}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);if(a){const s=Number(i.maximum),l=DX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${o}${i.maximum.toString()} ${l}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);if(a){const s=Number(i.minimum),l=DX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${o}${i.minimum.toString()} ${l}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin} \u0431\u0443\u0434\u0435\u0442 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${i.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${i.keys.length>1?"\u044B\u0435":"\u044B\u0439"} \u043A\u043B\u044E\u0447${i.keys.length>1?"\u0438":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${i.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435";case"invalid_element":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${i.origin}`;default:return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"}}};function UIe(){return{localeError:FIe()}}const BIe=()=>{const e={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0161tevilo";case"object":{if(Array.isArray(i))return"tabela";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"vnos",email:"e-po\u0161tni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in \u010Das",date:"ISO datum",time:"ISO \u010Das",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 \u0161tevilka",jwt:"JWT",template_literal:"vnos"};return i=>{switch(i.code){case"invalid_type":return`Neveljaven vnos: pri\u010Dakovano ${i.expected}, prejeto ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Neveljaven vnos: pri\u010Dakovano ${Rt(i.values[0])}`:`Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Preveliko: pri\u010Dakovano, da bo ${i.origin??"vrednost"} imelo ${o}${i.maximum.toString()} ${a.unit??"elementov"}`:`Preveliko: pri\u010Dakovano, da bo ${i.origin??"vrednost"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Premajhno: pri\u010Dakovano, da bo ${i.origin} imelo ${o}${i.minimum.toString()} ${a.unit}`:`Premajhno: pri\u010Dakovano, da bo ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Neveljaven niz: mora se za\u010Deti z "${o.prefix}"`:o.format==="ends_with"?`Neveljaven niz: mora se kon\u010Dati z "${o.suffix}"`:o.format==="includes"?`Neveljaven niz: mora vsebovati "${o.includes}"`:o.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${o.pattern}`:`Neveljaven ${r[o.format]??i.format}`}case"not_multiple_of":return`Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${i.divisor}`;case"unrecognized_keys":return`Neprepoznan${i.keys.length>1?"i klju\u010Di":" klju\u010D"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Neveljaven klju\u010D v ${i.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${i.origin}`;default:return"Neveljaven vnos"}}};function WIe(){return{localeError:BIe()}}const VIe=()=>{const e={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att inneh\xE5lla"},set:{unit:"objekt",verb:"att inneh\xE5lla"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"antal";case"object":{if(Array.isArray(i))return"lista";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"regulj\xE4rt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad str\xE4ng",base64url:"base64url-kodad str\xE4ng",json_string:"JSON-str\xE4ng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"};return i=>{switch(i.code){case"invalid_type":return`Ogiltig inmatning: f\xF6rv\xE4ntat ${i.expected}, fick ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ogiltig inmatning: f\xF6rv\xE4ntat ${Rt(i.values[0])}`:`Ogiltigt val: f\xF6rv\xE4ntade en av ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`F\xF6r stor(t): f\xF6rv\xE4ntade ${i.origin??"v\xE4rdet"} att ha ${o}${i.maximum.toString()} ${a.unit??"element"}`:`F\xF6r stor(t): f\xF6rv\xE4ntat ${i.origin??"v\xE4rdet"} att ha ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`F\xF6r lite(t): f\xF6rv\xE4ntade ${i.origin??"v\xE4rdet"} att ha ${o}${i.minimum.toString()} ${a.unit}`:`F\xF6r lite(t): f\xF6rv\xE4ntade ${i.origin??"v\xE4rdet"} att ha ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ogiltig str\xE4ng: m\xE5ste b\xF6rja med "${o.prefix}"`:o.format==="ends_with"?`Ogiltig str\xE4ng: m\xE5ste sluta med "${o.suffix}"`:o.format==="includes"?`Ogiltig str\xE4ng: m\xE5ste inneh\xE5lla "${o.includes}"`:o.format==="regex"?`Ogiltig str\xE4ng: m\xE5ste matcha m\xF6nstret "${o.pattern}"`:`Ogiltig(t) ${r[o.format]??i.format}`}case"not_multiple_of":return`Ogiltigt tal: m\xE5ste vara en multipel av ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Ok\xE4nda nycklar":"Ok\xE4nd nyckel"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${i.origin??"v\xE4rdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt v\xE4rde i ${i.origin??"v\xE4rdet"}`;default:return"Ogiltig input"}}};function HIe(){return{localeError:VIe()}}const ZIe=()=>{const e={string:{unit:"\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},file:{unit:"\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},array:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},set:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u0B8E\u0BA3\u0BCD \u0B85\u0BB2\u0BCD\u0BB2\u0BBE\u0BA4\u0BA4\u0BC1":"\u0B8E\u0BA3\u0BCD";case"object":{if(Array.isArray(i))return"\u0B85\u0BA3\u0BBF";if(i===null)return"\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1",email:"\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",date:"ISO \u0BA4\u0BC7\u0BA4\u0BBF",time:"ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",duration:"ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1",ipv4:"IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",ipv6:"IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",cidrv4:"IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",cidrv6:"IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",base64:"base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD",base64url:"base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD",json_string:"JSON \u0B9A\u0BB0\u0BAE\u0BCD",e164:"E.164 \u0B8E\u0BA3\u0BCD",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${Rt(i.values[0])}`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${qe(i.values,"|")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${o}${i.maximum.toString()} ${a.unit??"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${o}${i.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin} ${o}${i.minimum.toString()} ${a.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin} ${o}${i.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.prefix}" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="ends_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.suffix}" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="includes"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.includes}" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="regex"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${o.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${i.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;case"unrecognized_keys":return`\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${i.keys.length>1?"\u0B95\u0BB3\u0BCD":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`;case"invalid_union":return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1";case"invalid_element":return`${i.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`;default:return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1"}}};function qIe(){return{localeError:ZIe()}}const GIe=()=>{const e={string:{unit:"\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},file:{unit:"\u0E44\u0E1A\u0E15\u0E4C",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},array:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},set:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02 (NaN)":"\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02";case"object":{if(Array.isArray(i))return"\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)";if(i===null)return"\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19",email:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25",url:"URL",emoji:"\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",date:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO",time:"\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",duration:"\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",ipv4:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4",ipv6:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6",cidrv4:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4",cidrv6:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6",base64:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64",base64url:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL",json_string:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON",e164:"\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)",jwt:"\u0E42\u0E17\u0E40\u0E04\u0E19 JWT",template_literal:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19"};return i=>{switch(i.code){case"invalid_type":return`\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${i.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${Rt(i.values[0])}`:`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19":"\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32",a=t(i.origin);return a?`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.maximum.toString()} ${a.unit??"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23"}`:`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?"\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22":"\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32",a=t(i.origin);return a?`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.minimum.toString()} ${a.unit}`:`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 "${o.prefix}"`:o.format==="ends_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 "${o.suffix}"`:o.format==="includes"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 "${o.includes}" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`:o.format==="regex"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${o.pattern}`:`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${r[o.format]??i.format}`}case"not_multiple_of":return`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${i.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`;case"unrecognized_keys":return`\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${qe(i.keys,", ")}`;case"invalid_key":return`\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${i.origin}`;case"invalid_union":return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49";case"invalid_element":return`\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${i.origin}`;default:return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07"}}};function YIe(){return{localeError:GIe()}}const KIe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},XIe=()=>{const e={string:{unit:"karakter",verb:"olmal\u0131"},file:{unit:"bayt",verb:"olmal\u0131"},array:{unit:"\xF6\u011Fe",verb:"olmal\u0131"},set:{unit:"\xF6\u011Fe",verb:"olmal\u0131"}};function t(r){return e[r]??null}const n={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO s\xFCre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aral\u0131\u011F\u0131",cidrv6:"IPv6 aral\u0131\u011F\u0131",base64:"base64 ile \u015Fifrelenmi\u015F metin",base64url:"base64url ile \u015Fifrelenmi\u015F metin",json_string:"JSON dizesi",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"\u015Eablon dizesi"};return r=>{switch(r.code){case"invalid_type":return`Ge\xE7ersiz de\u011Fer: beklenen ${r.expected}, al\u0131nan ${KIe(r.input)}`;case"invalid_value":return r.values.length===1?`Ge\xE7ersiz de\u011Fer: beklenen ${Rt(r.values[0])}`:`Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`\xC7ok b\xFCy\xFCk: beklenen ${r.origin??"de\u011Fer"} ${i}${r.maximum.toString()} ${o.unit??"\xF6\u011Fe"}`:`\xC7ok b\xFCy\xFCk: beklenen ${r.origin??"de\u011Fer"} ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`\xC7ok k\xFC\xE7\xFCk: beklenen ${r.origin} ${i}${r.minimum.toString()} ${o.unit}`:`\xC7ok k\xFC\xE7\xFCk: beklenen ${r.origin} ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Ge\xE7ersiz metin: "${i.prefix}" ile ba\u015Flamal\u0131`:i.format==="ends_with"?`Ge\xE7ersiz metin: "${i.suffix}" ile bitmeli`:i.format==="includes"?`Ge\xE7ersiz metin: "${i.includes}" i\xE7ermeli`:i.format==="regex"?`Ge\xE7ersiz metin: ${i.pattern} desenine uymal\u0131`:`Ge\xE7ersiz ${n[i.format]??r.format}`}case"not_multiple_of":return`Ge\xE7ersiz say\u0131: ${r.divisor} ile tam b\xF6l\xFCnebilmeli`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar${r.keys.length>1?"lar":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`${r.origin} i\xE7inde ge\xE7ersiz anahtar`;case"invalid_union":return"Ge\xE7ersiz de\u011Fer";case"invalid_element":return`${r.origin} i\xE7inde ge\xE7ersiz de\u011Fer`;default:return"Ge\xE7ersiz de\u011Fer"}}};function JIe(){return{localeError:XIe()}}const QIe=()=>{const e={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},file:{unit:"\u0431\u0430\u0439\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(i))return"\u043C\u0430\u0441\u0438\u0432";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO",date:"\u0434\u0430\u0442\u0430 ISO",time:"\u0447\u0430\u0441 ISO",duration:"\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO",ipv4:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv4",ipv6:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv6",cidrv4:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4",cidrv6:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6",base64:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64",base64url:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url",json_string:"\u0440\u044F\u0434\u043E\u043A JSON",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"};return i=>{switch(i.code){case"invalid_type":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${i.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${Rt(i.values[0])}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432"}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} \u0431\u0443\u0434\u0435 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin} \u0431\u0443\u0434\u0435 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${i.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${i.keys.length>1?"\u0456":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${i.origin}`;case"invalid_union":return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456";case"invalid_element":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${i.origin}`;default:return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"}}};function AX(){return{localeError:QIe()}}function eEe(){return AX()}const tEe=()=>{const e={string:{unit:"\u062D\u0631\u0648\u0641",verb:"\u06C1\u0648\u0646\u0627"},file:{unit:"\u0628\u0627\u0626\u0679\u0633",verb:"\u06C1\u0648\u0646\u0627"},array:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"},set:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0646\u0645\u0628\u0631";case"object":{if(Array.isArray(i))return"\u0622\u0631\u06D2";if(i===null)return"\u0646\u0644";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0627\u0646 \u067E\u0679",email:"\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633",url:"\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",uuidv4:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4",uuidv6:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6",nanoid:"\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC",guid:"\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid2:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2",ulid:"\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC",xid:"\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC",ksuid:"\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",datetime:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645",date:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E",time:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A",duration:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A",ipv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633",ipv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633",cidrv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C",cidrv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C",base64:"\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",base64url:"\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",json_string:"\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF",e164:"\u0627\u06CC 164 \u0646\u0645\u0628\u0631",jwt:"\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC",template_literal:"\u0627\u0646 \u067E\u0679"};return i=>{switch(i.code){case"invalid_type":return`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${i.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${n(i.input)} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`;case"invalid_value":return i.values.length===1?`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${Rt(i.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`:`\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${qe(i.values,"|")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0628\u06C1\u062A \u0628\u0691\u0627: ${i.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u06D2 ${o}${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0627\u0635\u0631"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0628\u0691\u0627: ${i.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u0627 ${o}${i.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${i.origin} \u06A9\u06D2 ${o}${i.minimum.toString()} ${a.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${i.origin} \u06A9\u0627 ${o}${i.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.prefix}" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="ends_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.suffix}" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="includes"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.includes}" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="regex"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${o.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:`\u063A\u0644\u0637 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${i.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;case"unrecognized_keys":return`\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${i.keys.length>1?"\u0632":""}: ${qe(i.keys,"\u060C ")}`;case"invalid_key":return`${i.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`;case"invalid_union":return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679";case"invalid_element":return`${i.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`;default:return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679"}}};function nEe(){return{localeError:tEe()}}const rEe=()=>{const e={string:{unit:"k\xFD t\u1EF1",verb:"c\xF3"},file:{unit:"byte",verb:"c\xF3"},array:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"},set:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"s\u1ED1";case"object":{if(Array.isArray(i))return"m\u1EA3ng";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0111\u1EA7u v\xE0o",email:"\u0111\u1ECBa ch\u1EC9 email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ng\xE0y gi\u1EDD ISO",date:"ng\xE0y ISO",time:"gi\u1EDD ISO",duration:"kho\u1EA3ng th\u1EDDi gian ISO",ipv4:"\u0111\u1ECBa ch\u1EC9 IPv4",ipv6:"\u0111\u1ECBa ch\u1EC9 IPv6",cidrv4:"d\u1EA3i IPv4",cidrv6:"d\u1EA3i IPv6",base64:"chu\u1ED7i m\xE3 h\xF3a base64",base64url:"chu\u1ED7i m\xE3 h\xF3a base64url",json_string:"chu\u1ED7i JSON",e164:"s\u1ED1 E.164",jwt:"JWT",template_literal:"\u0111\u1EA7u v\xE0o"};return i=>{switch(i.code){case"invalid_type":return`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${i.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${Rt(i.values[0])}`:`T\xF9y ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\xE1c gi\xE1 tr\u1ECB ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${i.origin??"gi\xE1 tr\u1ECB"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"ph\u1EA7n t\u1EED"}`:`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${i.origin??"gi\xE1 tr\u1ECB"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng "${o.prefix}"`:o.format==="ends_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng "${o.suffix}"`:o.format==="includes"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m "${o.includes}"`:o.format==="regex"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${o.pattern}`:`${r[o.format]??i.format} kh\xF4ng h\u1EE3p l\u1EC7`}case"not_multiple_of":return`S\u1ED1 kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\xE0 b\u1ED9i s\u1ED1 c\u1EE7a ${i.divisor}`;case"unrecognized_keys":return`Kh\xF3a kh\xF4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${qe(i.keys,", ")}`;case"invalid_key":return`Kh\xF3a kh\xF4ng h\u1EE3p l\u1EC7 trong ${i.origin}`;case"invalid_union":return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7";case"invalid_element":return`Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7 trong ${i.origin}`;default:return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7"}}};function iEe(){return{localeError:rEe()}}const oEe=()=>{const e={string:{unit:"\u5B57\u7B26",verb:"\u5305\u542B"},file:{unit:"\u5B57\u8282",verb:"\u5305\u542B"},array:{unit:"\u9879",verb:"\u5305\u542B"},set:{unit:"\u9879",verb:"\u5305\u542B"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u975E\u6570\u5B57(NaN)":"\u6570\u5B57";case"object":{if(Array.isArray(i))return"\u6570\u7EC4";if(i===null)return"\u7A7A\u503C(null)";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u8F93\u5165",email:"\u7535\u5B50\u90AE\u4EF6",url:"URL",emoji:"\u8868\u60C5\u7B26\u53F7",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u671F\u65F6\u95F4",date:"ISO\u65E5\u671F",time:"ISO\u65F6\u95F4",duration:"ISO\u65F6\u957F",ipv4:"IPv4\u5730\u5740",ipv6:"IPv6\u5730\u5740",cidrv4:"IPv4\u7F51\u6BB5",cidrv6:"IPv6\u7F51\u6BB5",base64:"base64\u7F16\u7801\u5B57\u7B26\u4E32",base64url:"base64url\u7F16\u7801\u5B57\u7B26\u4E32",json_string:"JSON\u5B57\u7B26\u4E32",e164:"E.164\u53F7\u7801",jwt:"JWT",template_literal:"\u8F93\u5165"};return i=>{switch(i.code){case"invalid_type":return`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${i.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${Rt(i.values[0])}`:`\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${i.origin??"\u503C"} ${o}${i.maximum.toString()} ${a.unit??"\u4E2A\u5143\u7D20"}`:`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${i.origin??"\u503C"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${i.origin} ${o}${i.minimum.toString()} ${a.unit}`:`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${o.prefix}" \u5F00\u5934`:o.format==="ends_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${o.suffix}" \u7ED3\u5C3E`:o.format==="includes"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B "${o.includes}"`:o.format==="regex"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${o.pattern}`:`\u65E0\u6548${r[o.format]??i.format}`}case"not_multiple_of":return`\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${i.divisor} \u7684\u500D\u6570`;case"unrecognized_keys":return`\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`;case"invalid_union":return"\u65E0\u6548\u8F93\u5165";case"invalid_element":return`${i.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`;default:return"\u65E0\u6548\u8F93\u5165"}}};function aEe(){return{localeError:oEe()}}const sEe=()=>{const e={string:{unit:"\u5B57\u5143",verb:"\u64C1\u6709"},file:{unit:"\u4F4D\u5143\u7D44",verb:"\u64C1\u6709"},array:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"},set:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u8F38\u5165",email:"\u90F5\u4EF6\u5730\u5740",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u65E5\u671F\u6642\u9593",date:"ISO \u65E5\u671F",time:"ISO \u6642\u9593",duration:"ISO \u671F\u9593",ipv4:"IPv4 \u4F4D\u5740",ipv6:"IPv6 \u4F4D\u5740",cidrv4:"IPv4 \u7BC4\u570D",cidrv6:"IPv6 \u7BC4\u570D",base64:"base64 \u7DE8\u78BC\u5B57\u4E32",base64url:"base64url \u7DE8\u78BC\u5B57\u4E32",json_string:"JSON \u5B57\u4E32",e164:"E.164 \u6578\u503C",jwt:"JWT",template_literal:"\u8F38\u5165"};return i=>{switch(i.code){case"invalid_type":return`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${i.expected}\uFF0C\u4F46\u6536\u5230 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${Rt(i.values[0])}`:`\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${i.origin??"\u503C"} \u61C9\u70BA ${o}${i.maximum.toString()} ${a.unit??"\u500B\u5143\u7D20"}`:`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${i.origin??"\u503C"} \u61C9\u70BA ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${i.origin} \u61C9\u70BA ${o}${i.minimum.toString()} ${a.unit}`:`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${i.origin} \u61C9\u70BA ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${o.prefix}" \u958B\u982D`:o.format==="ends_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${o.suffix}" \u7D50\u5C3E`:o.format==="includes"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B "${o.includes}"`:o.format==="regex"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${o.pattern}`:`\u7121\u6548\u7684 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${i.divisor} \u7684\u500D\u6578`;case"unrecognized_keys":return`\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${i.keys.length>1?"\u5011":""}\uFF1A${qe(i.keys,"\u3001")}`;case"invalid_key":return`${i.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`;case"invalid_union":return"\u7121\u6548\u7684\u8F38\u5165\u503C";case"invalid_element":return`${i.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`;default:return"\u7121\u6548\u7684\u8F38\u5165\u503C"}}};function lEe(){return{localeError:sEe()}}const uEe=()=>{const e={string:{unit:"\xE0mi",verb:"n\xED"},file:{unit:"bytes",verb:"n\xED"},array:{unit:"nkan",verb:"n\xED"},set:{unit:"nkan",verb:"n\xED"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"n\u1ECD\u0301mb\xE0";case"object":{if(Array.isArray(i))return"akop\u1ECD";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9",email:"\xE0d\xEDr\u1EB9\u0301s\xEC \xECm\u1EB9\u0301l\xEC",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\xE0k\xF3k\xF2 ISO",date:"\u1ECDj\u1ECD\u0301 ISO",time:"\xE0k\xF3k\xF2 ISO",duration:"\xE0k\xF3k\xF2 t\xF3 p\xE9 ISO",ipv4:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv4",ipv6:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv6",cidrv4:"\xE0gb\xE8gb\xE8 IPv4",cidrv6:"\xE0gb\xE8gb\xE8 IPv6",base64:"\u1ECD\u0300r\u1ECD\u0300 t\xED a k\u1ECD\u0301 n\xED base64",base64url:"\u1ECD\u0300r\u1ECD\u0300 base64url",json_string:"\u1ECD\u0300r\u1ECD\u0300 JSON",e164:"n\u1ECD\u0301mb\xE0 E.164",jwt:"JWT",template_literal:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9"};return i=>{switch(i.code){case"invalid_type":return`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${i.expected}, \xE0m\u1ECD\u0300 a r\xED ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${Rt(i.values[0])}`:`\xC0\u1E63\xE0y\xE0n a\u1E63\xEC\u1E63e: yan \u1ECD\u0300kan l\xE1ra ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${i.origin??"iye"} ${a.verb} ${o}${i.maximum} ${a.unit}`:`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 ${o}${i.maximum}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${i.origin} ${a.verb} ${o}${i.minimum} ${a.unit}`:`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 ${o}${i.minimum}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u1EB9\u0300r\u1EB9\u0300 p\u1EB9\u0300l\xFA "${o.prefix}"`:o.format==="ends_with"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 par\xED p\u1EB9\u0300l\xFA "${o.suffix}"`:o.format==="includes"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 n\xED "${o.includes}"`:o.format==="regex"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\xE1 \xE0p\u1EB9\u1EB9r\u1EB9 mu ${o.pattern}`:`A\u1E63\xEC\u1E63e: ${r[o.format]??i.format}`}case"not_multiple_of":return`N\u1ECD\u0301mb\xE0 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 j\u1EB9\u0301 \xE8y\xE0 p\xEDp\xEDn ti ${i.divisor}`;case"unrecognized_keys":return`B\u1ECDt\xECn\xEC \xE0\xECm\u1ECD\u0300: ${qe(i.keys,", ")}`;case"invalid_key":return`B\u1ECDt\xECn\xEC a\u1E63\xEC\u1E63e n\xEDn\xFA ${i.origin}`;case"invalid_union":return"\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e";case"invalid_element":return`Iye a\u1E63\xEC\u1E63e n\xEDn\xFA ${i.origin}`;default:return"\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e"}}};function cEe(){return{localeError:uEe()}}const FX=Object.freeze(Object.defineProperty({__proto__:null,ar:STe,az:jTe,be:ITe,bg:$Te,ca:RTe,cs:PTe,da:zTe,de:ATe,en:PX,eo:VTe,es:ZTe,fa:GTe,fi:KTe,fr:JTe,frCA:eIe,he:nIe,hu:iIe,id:aIe,is:uIe,it:dIe,ja:hIe,ka:gIe,kh:yIe,km:OX,ko:xIe,lt:kIe,mk:CIe,ms:TIe,nl:EIe,no:$Ie,ota:RIe,pl:zIe,ps:PIe,pt:AIe,ru:UIe,sl:WIe,sv:HIe,ta:qIe,th:YIe,tr:JIe,ua:eEe,uk:AX,ur:nEe,vi:iEe,yo:cEe,zhCN:aEe,zhTW:lEe},Symbol.toStringTag,{value:"Module"}));var UX;const BX=Symbol("ZodOutput"),WX=Symbol("ZodInput");class hI{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){const r=n[0];if(this._map.set(t,r),r&&typeof r=="object"&&"id"in r){if(this._idmap.has(r.id))throw new Error(`ID ${r.id} already exists in the registry`);this._idmap.set(r.id,t)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){const n=t._zod.parent;if(n){const r={...this.get(n)??{}};delete r.id;const i={...r,...this._map.get(t)};return Object.keys(i).length?i:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function pI(){return new hI}(UX=globalThis).__zod_globalRegistry??(UX.__zod_globalRegistry=pI());const Gl=globalThis.__zod_globalRegistry;function VX(e,t){return new e({type:"string",...Oe(t)})}function HX(e,t){return new e({type:"string",coerce:!0,...Oe(t)})}function mI(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Oe(t)})}function S3(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Oe(t)})}function gI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Oe(t)})}function vI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Oe(t)})}function yI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Oe(t)})}function bI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Oe(t)})}function C3(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Oe(t)})}function xI(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Oe(t)})}function _I(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Oe(t)})}function wI(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Oe(t)})}function kI(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Oe(t)})}function SI(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Oe(t)})}function CI(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Oe(t)})}function jI(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Oe(t)})}function TI(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Oe(t)})}function II(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Oe(t)})}function ZX(e,t){return new e({type:"string",format:"mac",check:"string_format",abort:!1,...Oe(t)})}function EI(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Oe(t)})}function NI(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Oe(t)})}function $I(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Oe(t)})}function MI(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Oe(t)})}function RI(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Oe(t)})}function LI(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Oe(t)})}const qX={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function GX(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Oe(t)})}function YX(e,t){return new e({type:"string",format:"date",check:"string_format",...Oe(t)})}function KX(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Oe(t)})}function XX(e,t){return new e({type:"string",format:"duration",check:"string_format",...Oe(t)})}function JX(e,t){return new e({type:"number",checks:[],...Oe(t)})}function QX(e,t){return new e({type:"number",coerce:!0,checks:[],...Oe(t)})}function eJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Oe(t)})}function tJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float32",...Oe(t)})}function nJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float64",...Oe(t)})}function rJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"int32",...Oe(t)})}function iJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",...Oe(t)})}function oJ(e,t){return new e({type:"boolean",...Oe(t)})}function aJ(e,t){return new e({type:"boolean",coerce:!0,...Oe(t)})}function sJ(e,t){return new e({type:"bigint",...Oe(t)})}function lJ(e,t){return new e({type:"bigint",coerce:!0,...Oe(t)})}function uJ(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...Oe(t)})}function cJ(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...Oe(t)})}function dJ(e,t){return new e({type:"symbol",...Oe(t)})}function fJ(e,t){return new e({type:"undefined",...Oe(t)})}function hJ(e,t){return new e({type:"null",...Oe(t)})}function pJ(e){return new e({type:"any"})}function mJ(e){return new e({type:"unknown"})}function gJ(e,t){return new e({type:"never",...Oe(t)})}function vJ(e,t){return new e({type:"void",...Oe(t)})}function yJ(e,t){return new e({type:"date",...Oe(t)})}function bJ(e,t){return new e({type:"date",coerce:!0,...Oe(t)})}function xJ(e,t){return new e({type:"nan",...Oe(t)})}function gp(e,t){return new rI({check:"less_than",...Oe(t),value:e,inclusive:!1})}function Yl(e,t){return new rI({check:"less_than",...Oe(t),value:e,inclusive:!0})}function vp(e,t){return new iI({check:"greater_than",...Oe(t),value:e,inclusive:!1})}function ys(e,t){return new iI({check:"greater_than",...Oe(t),value:e,inclusive:!0})}function _J(e){return vp(0,e)}function wJ(e){return gp(0,e)}function kJ(e){return Yl(0,e)}function SJ(e){return ys(0,e)}function sb(e,t){return new HY({check:"multiple_of",...Oe(t),value:e})}function j3(e,t){return new GY({check:"max_size",...Oe(t),maximum:e})}function lb(e,t){return new YY({check:"min_size",...Oe(t),minimum:e})}function PI(e,t){return new KY({check:"size_equals",...Oe(t),size:e})}function T3(e,t){return new XY({check:"max_length",...Oe(t),maximum:e})}function sg(e,t){return new JY({check:"min_length",...Oe(t),minimum:e})}function I3(e,t){return new QY({check:"length_equals",...Oe(t),length:e})}function OI(e,t){return new eK({check:"string_format",format:"regex",...Oe(t),pattern:e})}function zI(e){return new tK({check:"string_format",format:"lowercase",...Oe(e)})}function DI(e){return new nK({check:"string_format",format:"uppercase",...Oe(e)})}function AI(e,t){return new rK({check:"string_format",format:"includes",...Oe(t),includes:e})}function FI(e,t){return new iK({check:"string_format",format:"starts_with",...Oe(t),prefix:e})}function UI(e,t){return new oK({check:"string_format",format:"ends_with",...Oe(t),suffix:e})}function CJ(e,t,n){return new sK({check:"property",property:e,schema:t,...Oe(n)})}function BI(e,t){return new lK({check:"mime_type",mime:e,...Oe(t)})}function Df(e){return new uK({check:"overwrite",tx:e})}function WI(e){return Df(t=>t.normalize(e))}function VI(){return Df(e=>e.trim())}function HI(){return Df(e=>e.toLowerCase())}function ZI(){return Df(e=>e.toUpperCase())}function qI(){return Df(e=>UG(e))}function jJ(e,t,n){return new e({type:"array",element:t,...Oe(n)})}function dEe(e,t,n){return new e({type:"union",options:t,...Oe(n)})}function fEe(e,t,n,r){return new e({type:"union",options:n,discriminator:t,...Oe(r)})}function hEe(e,t,n){return new e({type:"intersection",left:t,right:n})}function pEe(e,t,n,r){const i=n instanceof Bt,o=i?r:n,a=i?n:null;return new e({type:"tuple",items:t,rest:a,...Oe(o)})}function mEe(e,t,n,r){return new e({type:"record",keyType:t,valueType:n,...Oe(r)})}function gEe(e,t,n,r){return new e({type:"map",keyType:t,valueType:n,...Oe(r)})}function vEe(e,t,n){return new e({type:"set",valueType:t,...Oe(n)})}function yEe(e,t,n){const r=Array.isArray(t)?Object.fromEntries(t.map(i=>[i,i])):t;return new e({type:"enum",entries:r,...Oe(n)})}function bEe(e,t,n){return new e({type:"enum",entries:t,...Oe(n)})}function xEe(e,t,n){return new e({type:"literal",values:Array.isArray(t)?t:[t],...Oe(n)})}function TJ(e,t){return new e({type:"file",...Oe(t)})}function _Ee(e,t){return new e({type:"transform",transform:t})}function wEe(e,t){return new e({type:"optional",innerType:t})}function kEe(e,t){return new e({type:"nullable",innerType:t})}function SEe(e,t,n){return new e({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():m3(n)}})}function CEe(e,t,n){return new e({type:"nonoptional",innerType:t,...Oe(n)})}function jEe(e,t){return new e({type:"success",innerType:t})}function TEe(e,t,n){return new e({type:"catch",innerType:t,catchValue:typeof n=="function"?n:()=>n})}function IEe(e,t,n){return new e({type:"pipe",in:t,out:n})}function EEe(e,t){return new e({type:"readonly",innerType:t})}function NEe(e,t,n){return new e({type:"template_literal",parts:t,...Oe(n)})}function $Ee(e,t){return new e({type:"lazy",getter:t})}function MEe(e,t){return new e({type:"promise",innerType:t})}function IJ(e,t,n){const r=Oe(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function EJ(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Oe(n)})}function NJ(e){const t=$J(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(og(r,n.value,t._zod.def));else{const i=r;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=t),i.continue??(i.continue=!t._zod.def.abort),n.issues.push(og(i))}},e(n.value,n)));return t}function $J(e,t){const n=new Gr({check:"custom",...Oe(t)});return n._zod.check=e,n}function MJ(e){const t=new Gr({check:"describe"});return t._zod.onattach=[n=>{const r=Gl.get(n)??{};Gl.add(n,{...r,description:e})}],t._zod.check=()=>{},t}function RJ(e){const t=new Gr({check:"meta"});return t._zod.onattach=[n=>{const r=Gl.get(n)??{};Gl.add(n,{...r,...e})}],t._zod.check=()=>{},t}function LJ(e,t){const n=Oe(t);let r=n.truthy??["true","1","yes","on","y","enabled"],i=n.falsy??["false","0","no","off","n","disabled"];n.case!=="sensitive"&&(r=r.map(v=>typeof v=="string"?v.toLowerCase():v),i=i.map(v=>typeof v=="string"?v.toLowerCase():v));const o=new Set(r),a=new Set(i),s=e.Codec??fI,l=e.Boolean??sI,c=e.String??ib,d=new c({type:"string",error:n.error}),f=new l({type:"boolean",error:n.error}),p=new s({type:"pipe",in:d,out:f,transform:(v,x)=>{let y=v;return n.case!=="sensitive"&&(y=y.toLowerCase()),o.has(y)?!0:a.has(y)?!1:(x.issues.push({code:"invalid_value",expected:"stringbool",values:[...o,...a],input:x.value,inst:p,continue:!1}),{})},reverseTransform:(v,x)=>v===!0?r[0]||"true":i[0]||"false",error:n.error});return p}function ub(e,t,n,r={}){const i=Oe(r),o={...Oe(r),check:"string_format",type:"string",format:t,fn:typeof n=="function"?n:a=>n.test(a),...i};return n instanceof RegExp&&(o.pattern=n),new e(o)}class GI{constructor(t){this.counter=0,this.metadataRegistry=(t==null?void 0:t.metadata)??Gl,this.target=(t==null?void 0:t.target)??"draft-2020-12",this.unrepresentable=(t==null?void 0:t.unrepresentable)??"throw",this.override=(t==null?void 0:t.override)??(()=>{}),this.io=(t==null?void 0:t.io)??"output",this.seen=new Map}process(t,n={path:[],schemaPath:[]}){var d,f,p;var r;const i=t._zod.def,o={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},a=this.seen.get(t);if(a)return a.count++,n.schemaPath.includes(t)&&(a.cycle=n.path),a.schema;const s={schema:{},count:1,cycle:void 0,path:n.path};this.seen.set(t,s);const l=(f=(d=t._zod).toJSONSchema)==null?void 0:f.call(d);if(l)s.schema=l;else{const v={...n,schemaPath:[...n.schemaPath,t],path:n.path},x=t._zod.parent;if(x)s.ref=x,this.process(x,v),this.seen.get(x).isParent=!0;else{const y=s.schema;switch(i.type){case"string":{const b=y;b.type="string";const{minimum:w,maximum:_,format:S,patterns:C,contentEncoding:j}=t._zod.bag;if(typeof w=="number"&&(b.minLength=w),typeof _=="number"&&(b.maxLength=_),S&&(b.format=o[S]??S,b.format===""&&delete b.format),j&&(b.contentEncoding=j),C&&C.size>0){const T=[...C];T.length===1?b.pattern=T[0].source:T.length>1&&(s.schema.allOf=[...T.map(E=>({...this.target==="draft-7"||this.target==="draft-4"||this.target==="openapi-3.0"?{type:"string"}:{},pattern:E.source}))])}break}case"number":{const b=y,{minimum:w,maximum:_,format:S,multipleOf:C,exclusiveMaximum:j,exclusiveMinimum:T}=t._zod.bag;typeof S=="string"&&S.includes("int")?b.type="integer":b.type="number",typeof T=="number"&&(this.target==="draft-4"||this.target==="openapi-3.0"?(b.minimum=T,b.exclusiveMinimum=!0):b.exclusiveMinimum=T),typeof w=="number"&&(b.minimum=w,typeof T=="number"&&this.target!=="draft-4"&&(T>=w?delete b.minimum:delete b.exclusiveMinimum)),typeof j=="number"&&(this.target==="draft-4"||this.target==="openapi-3.0"?(b.maximum=j,b.exclusiveMaximum=!0):b.exclusiveMaximum=j),typeof _=="number"&&(b.maximum=_,typeof j=="number"&&this.target!=="draft-4"&&(j<=_?delete b.maximum:delete b.exclusiveMaximum)),typeof C=="number"&&(b.multipleOf=C);break}case"boolean":{const b=y;b.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema");break}case"null":{this.target==="openapi-3.0"?(y.type="string",y.nullable=!0,y.enum=[null]):y.type="null";break}case"any":break;case"unknown":break;case"undefined":{if(this.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema");break}case"void":{if(this.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema");break}case"never":{y.not={};break}case"date":{if(this.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema");break}case"array":{const b=y,{minimum:w,maximum:_}=t._zod.bag;typeof w=="number"&&(b.minItems=w),typeof _=="number"&&(b.maxItems=_),b.type="array",b.items=this.process(i.element,{...v,path:[...v.path,"items"]});break}case"object":{const b=y;b.type="object",b.properties={};const w=i.shape;for(const C in w)b.properties[C]=this.process(w[C],{...v,path:[...v.path,"properties",C]});const _=new Set(Object.keys(w)),S=new Set([..._].filter(C=>{const j=i.shape[C]._zod;return this.io==="input"?j.optin===void 0:j.optout===void 0}));S.size>0&&(b.required=Array.from(S)),((p=i.catchall)==null?void 0:p._zod.def.type)==="never"?b.additionalProperties=!1:i.catchall?i.catchall&&(b.additionalProperties=this.process(i.catchall,{...v,path:[...v.path,"additionalProperties"]})):this.io==="output"&&(b.additionalProperties=!1);break}case"union":{const b=y,w=i.discriminator!==void 0,_=i.options.map((S,C)=>this.process(S,{...v,path:[...v.path,w?"oneOf":"anyOf",C]}));w?b.oneOf=_:b.anyOf=_;break}case"intersection":{const b=y,w=this.process(i.left,{...v,path:[...v.path,"allOf",0]}),_=this.process(i.right,{...v,path:[...v.path,"allOf",1]}),S=j=>"allOf"in j&&Object.keys(j).length===1,C=[...S(w)?w.allOf:[w],...S(_)?_.allOf:[_]];b.allOf=C;break}case"tuple":{const b=y;b.type="array";const w=this.target==="draft-2020-12"?"prefixItems":"items",_=this.target==="draft-2020-12"||this.target==="openapi-3.0"?"items":"additionalItems",S=i.items.map((E,$)=>this.process(E,{...v,path:[...v.path,w,$]})),C=i.rest?this.process(i.rest,{...v,path:[...v.path,_,...this.target==="openapi-3.0"?[i.items.length]:[]]}):null;this.target==="draft-2020-12"?(b.prefixItems=S,C&&(b.items=C)):this.target==="openapi-3.0"?(b.items={anyOf:S},C&&b.items.anyOf.push(C),b.minItems=S.length,C||(b.maxItems=S.length)):(b.items=S,C&&(b.additionalItems=C));const{minimum:j,maximum:T}=t._zod.bag;typeof j=="number"&&(b.minItems=j),typeof T=="number"&&(b.maxItems=T);break}case"record":{const b=y;b.type="object",(this.target==="draft-7"||this.target==="draft-2020-12")&&(b.propertyNames=this.process(i.keyType,{...v,path:[...v.path,"propertyNames"]})),b.additionalProperties=this.process(i.valueType,{...v,path:[...v.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema");break}case"enum":{const b=y,w=AT(i.entries);w.every(_=>typeof _=="number")&&(b.type="number"),w.every(_=>typeof _=="string")&&(b.type="string"),b.enum=w;break}case"literal":{const b=y,w=[];for(const _ of i.values)if(_===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof _=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");w.push(Number(_))}else w.push(_);if(w.length!==0)if(w.length===1){const _=w[0];b.type=_===null?"null":typeof _,this.target==="draft-4"||this.target==="openapi-3.0"?b.enum=[_]:b.const=_}else w.every(_=>typeof _=="number")&&(b.type="number"),w.every(_=>typeof _=="string")&&(b.type="string"),w.every(_=>typeof _=="boolean")&&(b.type="string"),w.every(_=>_===null)&&(b.type="null"),b.enum=w;break}case"file":{const b=y,w={type:"string",format:"binary",contentEncoding:"binary"},{minimum:_,maximum:S,mime:C}=t._zod.bag;_!==void 0&&(w.minLength=_),S!==void 0&&(w.maxLength=S),C?C.length===1?(w.contentMediaType=C[0],Object.assign(b,w)):b.anyOf=C.map(j=>({...w,contentMediaType:j})):Object.assign(b,w);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{const b=this.process(i.innerType,v);this.target==="openapi-3.0"?(s.ref=i.innerType,y.nullable=!0):y.anyOf=[b,{type:"null"}];break}case"nonoptional":{this.process(i.innerType,v),s.ref=i.innerType;break}case"success":{const b=y;b.type="boolean";break}case"default":{this.process(i.innerType,v),s.ref=i.innerType,y.default=JSON.parse(JSON.stringify(i.defaultValue));break}case"prefault":{this.process(i.innerType,v),s.ref=i.innerType,this.io==="input"&&(y._prefault=JSON.parse(JSON.stringify(i.defaultValue)));break}case"catch":{this.process(i.innerType,v),s.ref=i.innerType;let b;try{b=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}y.default=b;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{const b=y,w=t._zod.pattern;if(!w)throw new Error("Pattern not found in template literal");b.type="string",b.pattern=w.source;break}case"pipe":{const b=this.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;this.process(b,v),s.ref=b;break}case"readonly":{this.process(i.innerType,v),s.ref=i.innerType,y.readOnly=!0;break}case"promise":{this.process(i.innerType,v),s.ref=i.innerType;break}case"optional":{this.process(i.innerType,v),s.ref=i.innerType;break}case"lazy":{const b=t._zod.innerType;this.process(b,v),s.ref=b;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}case"function":{if(this.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema");break}}}}const c=this.metadataRegistry.get(t);return c&&Object.assign(s.schema,c),this.io==="input"&&fa(t)&&(delete s.schema.examples,delete s.schema.default),this.io==="input"&&s.schema._prefault&&((r=s.schema).default??(r.default=s.schema._prefault)),delete s.schema._prefault,this.seen.get(t).schema}emit(t,n){var d,f,p,v,x,y;const r={cycles:(n==null?void 0:n.cycles)??"ref",reused:(n==null?void 0:n.reused)??"inline",external:(n==null?void 0:n.external)??void 0},i=this.seen.get(t);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=b=>{var C;const w=this.target==="draft-2020-12"?"$defs":"definitions";if(r.external){const j=(C=r.external.registry.get(b[0]))==null?void 0:C.id,T=r.external.uri??($=>$);if(j)return{ref:T(j)};const E=b[1].defId??b[1].schema.id??`schema${this.counter++}`;return b[1].defId=E,{defId:E,ref:`${T("__shared")}#/${w}/${E}`}}if(b[1]===i)return{ref:"#"};const _=`#/${w}/`,S=b[1].schema.id??`__schema${this.counter++}`;return{defId:S,ref:_+S}},a=b=>{if(b[1].schema.$ref)return;const w=b[1],{ref:_,defId:S}=o(b);w.def={...w.schema},S&&(w.defId=S);const C=w.schema;for(const j in C)delete C[j];C.$ref=_};if(r.cycles==="throw")for(const b of this.seen.entries()){const w=b[1];if(w.cycle)throw new Error(`Cycle detected: #/${(d=w.cycle)==null?void 0:d.join("/")}/ + +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const b of this.seen.entries()){const w=b[1];if(t===b[0]){a(b);continue}if(r.external){const _=(f=r.external.registry.get(b[0]))==null?void 0:f.id;if(t!==b[0]&&_){a(b);continue}}if((p=this.metadataRegistry.get(b[0]))!=null&&p.id){a(b);continue}if(w.cycle){a(b);continue}if(w.count>1&&r.reused==="ref"){a(b);continue}}const s=(b,w)=>{const _=this.seen.get(b),S=_.def??_.schema,C={...S};if(_.ref===null)return;const j=_.ref;if(_.ref=null,j){s(j,w);const T=this.seen.get(j).schema;T.$ref&&(w.target==="draft-7"||w.target==="draft-4"||w.target==="openapi-3.0")?(S.allOf=S.allOf??[],S.allOf.push(T)):(Object.assign(S,T),Object.assign(S,C))}_.isParent||this.override({zodSchema:b,jsonSchema:S,path:_.path??[]})};for(const b of[...this.seen.entries()].reverse())s(b[0],{target:this.target});const l={};if(this.target==="draft-2020-12"?l.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?l.$schema="http://json-schema.org/draft-07/schema#":this.target==="draft-4"?l.$schema="http://json-schema.org/draft-04/schema#":this.target==="openapi-3.0"||console.warn(`Invalid target: ${this.target}`),(v=r.external)==null?void 0:v.uri){const b=(x=r.external.registry.get(t))==null?void 0:x.id;if(!b)throw new Error("Schema is missing an `id` property");l.$id=r.external.uri(b)}Object.assign(l,i.def);const c=((y=r.external)==null?void 0:y.defs)??{};for(const b of this.seen.entries()){const w=b[1];w.def&&w.defId&&(c[w.defId]=w.def)}r.external||Object.keys(c).length>0&&(this.target==="draft-2020-12"?l.$defs=c:l.definitions=c);try{return JSON.parse(JSON.stringify(l))}catch{throw new Error("Error converting schema to JSON.")}}}function PJ(e,t){if(e instanceof hI){const r=new GI(t),i={};for(const s of e._idmap.entries()){const[l,c]=s;r.process(c)}const o={},a={registry:e,uri:t==null?void 0:t.uri,defs:i};for(const s of e._idmap.entries()){const[l,c]=s;o[l]=r.emit(c,{...t,external:a})}if(Object.keys(i).length>0){const s=r.target==="draft-2020-12"?"$defs":"definitions";o.__shared={[s]:i}}return{schemas:o}}const n=new GI(t);return n.process(e),n.emit(e,t)}function fa(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return fa(r.element,n);if(r.type==="set")return fa(r.valueType,n);if(r.type==="lazy")return fa(r.getter(),n);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return fa(r.innerType,n);if(r.type==="intersection")return fa(r.left,n)||fa(r.right,n);if(r.type==="record"||r.type==="map")return fa(r.keyType,n)||fa(r.valueType,n);if(r.type==="pipe")return fa(r.in,n)||fa(r.out,n);if(r.type==="object"){for(const i in r.shape)if(fa(r.shape[i],n))return!0;return!1}if(r.type==="union"){for(const i of r.options)if(fa(i,n))return!0;return!1}if(r.type==="tuple"){for(const i of r.items)if(fa(i,n))return!0;return!!(r.rest&&fa(r.rest,n))}return!1}const REe=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),LEe=Object.freeze(Object.defineProperty({__proto__:null,$ZodAny:VK,$ZodArray:KK,$ZodAsyncError:fp,$ZodBase64:MK,$ZodBase64URL:LK,$ZodBigInt:lI,$ZodBigIntFormat:FK,$ZodBoolean:sI,$ZodCIDRv4:NK,$ZodCIDRv6:$K,$ZodCUID:yK,$ZodCUID2:bK,$ZodCatch:kX,$ZodCheck:Gr,$ZodCheckBigIntFormat:qY,$ZodCheckEndsWith:oK,$ZodCheckGreaterThan:iI,$ZodCheckIncludes:rK,$ZodCheckLengthEquals:QY,$ZodCheckLessThan:rI,$ZodCheckLowerCase:tK,$ZodCheckMaxLength:XY,$ZodCheckMaxSize:GY,$ZodCheckMimeType:lK,$ZodCheckMinLength:JY,$ZodCheckMinSize:YY,$ZodCheckMultipleOf:HY,$ZodCheckNumberFormat:ZY,$ZodCheckOverwrite:uK,$ZodCheckProperty:sK,$ZodCheckRegex:eK,$ZodCheckSizeEquals:KY,$ZodCheckStartsWith:iK,$ZodCheckStringFormat:rb,$ZodCheckUpperCase:nK,$ZodCodec:fI,$ZodCustom:MX,$ZodCustomStringFormat:DK,$ZodDate:GK,$ZodDefault:vX,$ZodDiscriminatedUnion:nX,$ZodE164:PK,$ZodEmail:pK,$ZodEmoji:gK,$ZodEncodeError:d3,$ZodEnum:cX,$ZodError:BT,$ZodFile:fX,$ZodFunction:EX,$ZodGUID:fK,$ZodIPv4:TK,$ZodIPv6:IK,$ZodISODate:SK,$ZodISODateTime:kK,$ZodISODuration:jK,$ZodISOTime:CK,$ZodIntersection:rX,$ZodJWT:zK,$ZodKSUID:wK,$ZodLazy:$X,$ZodLiteral:dX,$ZodMAC:EK,$ZodMap:aX,$ZodNaN:SX,$ZodNanoID:vK,$ZodNever:ZK,$ZodNonOptional:xX,$ZodNull:WK,$ZodNullable:gX,$ZodNumber:aI,$ZodNumberFormat:AK,$ZodObject:QK,$ZodObjectJIT:eX,$ZodOptional:mX,$ZodPipe:CX,$ZodPrefault:bX,$ZodPromise:NX,$ZodReadonly:jX,$ZodRealError:vs,$ZodRecord:oX,$ZodRegistry:hI,$ZodSet:lX,$ZodString:ib,$ZodStringFormat:yr,$ZodSuccess:wX,$ZodSymbol:UK,$ZodTemplateLiteral:IX,$ZodTransform:hX,$ZodTuple:dI,$ZodType:Bt,$ZodULID:xK,$ZodURL:mK,$ZodUUID:hK,$ZodUndefined:BK,$ZodUnion:uI,$ZodUnknown:HK,$ZodVoid:qK,$ZodXID:_K,$brand:DG,$constructor:be,$input:WX,$output:BX,Doc:cK,JSONSchema:REe,JSONSchemaGenerator:GI,NEVER:zG,TimePrecision:qX,_any:pJ,_array:jJ,_base64:$I,_base64url:MI,_bigint:sJ,_boolean:oJ,_catch:TEe,_check:$J,_cidrv4:EI,_cidrv6:NI,_coercedBigint:lJ,_coercedBoolean:aJ,_coercedDate:bJ,_coercedNumber:QX,_coercedString:HX,_cuid:wI,_cuid2:kI,_custom:IJ,_date:yJ,_decode:GT,_decodeAsync:KT,_default:SEe,_discriminatedUnion:fEe,_e164:RI,_email:mI,_emoji:xI,_encode:qT,_encodeAsync:YT,_endsWith:UI,_enum:yEe,_file:TJ,_float32:tJ,_float64:nJ,_gt:vp,_gte:ys,_guid:S3,_includes:AI,_int:eJ,_int32:rJ,_int64:uJ,_intersection:hEe,_ipv4:TI,_ipv6:II,_isoDate:YX,_isoDateTime:GX,_isoDuration:XX,_isoTime:KX,_jwt:LI,_ksuid:jI,_lazy:$Ee,_length:I3,_literal:xEe,_lowercase:zI,_lt:gp,_lte:Yl,_mac:ZX,_map:gEe,_max:Yl,_maxLength:T3,_maxSize:j3,_mime:BI,_min:ys,_minLength:sg,_minSize:lb,_multipleOf:sb,_nan:xJ,_nanoid:_I,_nativeEnum:bEe,_negative:wJ,_never:gJ,_nonnegative:SJ,_nonoptional:CEe,_nonpositive:kJ,_normalize:WI,_null:hJ,_nullable:kEe,_number:JX,_optional:wEe,_overwrite:Df,_parse:Xy,_parseAsync:Jy,_pipe:IEe,_positive:_J,_promise:MEe,_property:CJ,_readonly:EEe,_record:mEe,_refine:EJ,_regex:OI,_safeDecode:JT,_safeDecodeAsync:eI,_safeEncode:XT,_safeEncodeAsync:QT,_safeParse:Qy,_safeParseAsync:eb,_set:vEe,_size:PI,_slugify:qI,_startsWith:FI,_string:VX,_stringFormat:ub,_stringbool:LJ,_success:jEe,_superRefine:NJ,_symbol:dJ,_templateLiteral:NEe,_toLowerCase:HI,_toUpperCase:ZI,_transform:_Ee,_trim:VI,_tuple:pEe,_uint32:iJ,_uint64:cJ,_ulid:SI,_undefined:fJ,_union:dEe,_unknown:mJ,_uppercase:DI,_url:C3,_uuid:gI,_uuidv4:vI,_uuidv6:yI,_uuidv7:bI,_void:vJ,_xid:CI,clone:il,config:da,decode:Z7e,decodeAsync:G7e,describe:MJ,encode:H7e,encodeAsync:q7e,flattenError:WT,formatError:VT,globalConfig:f3,globalRegistry:Gl,isValidBase64:oI,isValidBase64URL:RK,isValidJWT:OK,locales:FX,meta:RJ,parse:HT,parseAsync:ZT,prettifyError:aY,regexes:nI,registry:pI,safeDecode:K7e,safeDecodeAsync:J7e,safeEncode:Y7e,safeEncodeAsync:X7e,safeParse:sY,safeParseAsync:lY,toDotPath:oY,toJSONSchema:PJ,treeifyError:iY,util:nY,version:dK},Symbol.toStringTag,{value:"Module"})),YI=be("ZodISODateTime",(e,t)=>{kK.init(e,t),Ir.init(e,t)});function OJ(e){return GX(YI,e)}const KI=be("ZodISODate",(e,t)=>{SK.init(e,t),Ir.init(e,t)});function zJ(e){return YX(KI,e)}const XI=be("ZodISOTime",(e,t)=>{CK.init(e,t),Ir.init(e,t)});function DJ(e){return KX(XI,e)}const JI=be("ZodISODuration",(e,t)=>{jK.init(e,t),Ir.init(e,t)});function AJ(e){return XX(JI,e)}const PEe=Object.freeze(Object.defineProperty({__proto__:null,ZodISODate:KI,ZodISODateTime:YI,ZodISODuration:JI,ZodISOTime:XI,date:zJ,datetime:OJ,duration:AJ,time:DJ},Symbol.toStringTag,{value:"Module"})),FJ=(e,t)=>{BT.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>VT(e,n)},flatten:{value:n=>WT(e,n)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,h3,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,h3,2)}},isEmpty:{get(){return e.issues.length===0}}})},OEe=be("ZodError",FJ),bs=be("ZodError",FJ,{Parent:Error}),UJ=Xy(bs),BJ=Jy(bs),WJ=Qy(bs),VJ=eb(bs),HJ=qT(bs),ZJ=GT(bs),qJ=YT(bs),GJ=KT(bs),YJ=XT(bs),KJ=JT(bs),XJ=QT(bs),JJ=eI(bs),rn=be("ZodType",(e,t)=>(Bt.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(rd(t,{checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]})),e.clone=(n,r)=>il(e,n,r),e.brand=()=>e,e.register=(n,r)=>(n.add(e,r),e),e.parse=(n,r)=>UJ(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>WJ(e,n,r),e.parseAsync=async(n,r)=>BJ(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>VJ(e,n,r),e.spa=e.safeParseAsync,e.encode=(n,r)=>HJ(e,n,r),e.decode=(n,r)=>ZJ(e,n,r),e.encodeAsync=async(n,r)=>qJ(e,n,r),e.decodeAsync=async(n,r)=>GJ(e,n,r),e.safeEncode=(n,r)=>YJ(e,n,r),e.safeDecode=(n,r)=>KJ(e,n,r),e.safeEncodeAsync=async(n,r)=>XJ(e,n,r),e.safeDecodeAsync=async(n,r)=>JJ(e,n,r),e.refine=(n,r)=>e.check(PQ(n,r)),e.superRefine=n=>e.check(OQ(n)),e.overwrite=n=>e.check(Df(n)),e.optional=()=>z3(e),e.nullable=()=>_s(e),e.nullish=()=>z3(_s(e)),e.nonoptional=n=>wQ(e,n),e.array=()=>zr(e),e.or=n=>O3([e,n]),e.and=n=>cQ(e,n),e.transform=n=>D3(e,SE(n)),e.default=n=>bQ(e,n),e.prefault=n=>_Q(e,n),e.catch=n=>CQ(e,n),e.pipe=n=>D3(e,n),e.readonly=()=>IQ(e),e.describe=n=>{const r=e.clone();return Gl.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){var n;return(n=Gl.get(e))==null?void 0:n.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return Gl.get(e);const r=e.clone();return Gl.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),QI=be("_ZodString",(e,t)=>{ib.init(e,t),rn.init(e,t);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(OI(...r)),e.includes=(...r)=>e.check(AI(...r)),e.startsWith=(...r)=>e.check(FI(...r)),e.endsWith=(...r)=>e.check(UI(...r)),e.min=(...r)=>e.check(sg(...r)),e.max=(...r)=>e.check(T3(...r)),e.length=(...r)=>e.check(I3(...r)),e.nonempty=(...r)=>e.check(sg(1,...r)),e.lowercase=r=>e.check(zI(r)),e.uppercase=r=>e.check(DI(r)),e.trim=()=>e.check(VI()),e.normalize=(...r)=>e.check(WI(...r)),e.toLowerCase=()=>e.check(HI()),e.toUpperCase=()=>e.check(ZI()),e.slugify=()=>e.check(qI())}),E3=be("ZodString",(e,t)=>{ib.init(e,t),QI.init(e,t),e.email=n=>e.check(mI(eE,n)),e.url=n=>e.check(C3($3,n)),e.jwt=n=>e.check(LI(mE,n)),e.emoji=n=>e.check(xI(tE,n)),e.guid=n=>e.check(S3(N3,n)),e.uuid=n=>e.check(gI(od,n)),e.uuidv4=n=>e.check(vI(od,n)),e.uuidv6=n=>e.check(yI(od,n)),e.uuidv7=n=>e.check(bI(od,n)),e.nanoid=n=>e.check(_I(nE,n)),e.guid=n=>e.check(S3(N3,n)),e.cuid=n=>e.check(wI(rE,n)),e.cuid2=n=>e.check(kI(iE,n)),e.ulid=n=>e.check(SI(oE,n)),e.base64=n=>e.check($I(fE,n)),e.base64url=n=>e.check(MI(hE,n)),e.xid=n=>e.check(CI(aE,n)),e.ksuid=n=>e.check(jI(sE,n)),e.ipv4=n=>e.check(TI(lE,n)),e.ipv6=n=>e.check(II(uE,n)),e.cidrv4=n=>e.check(EI(cE,n)),e.cidrv6=n=>e.check(NI(dE,n)),e.e164=n=>e.check(RI(pE,n)),e.datetime=n=>e.check(OJ(n)),e.date=n=>e.check(zJ(n)),e.time=n=>e.check(DJ(n)),e.duration=n=>e.check(AJ(n))});function Et(e){return VX(E3,e)}const Ir=be("ZodStringFormat",(e,t)=>{yr.init(e,t),QI.init(e,t)}),eE=be("ZodEmail",(e,t)=>{pK.init(e,t),Ir.init(e,t)});function zEe(e){return mI(eE,e)}const N3=be("ZodGUID",(e,t)=>{fK.init(e,t),Ir.init(e,t)});function DEe(e){return S3(N3,e)}const od=be("ZodUUID",(e,t)=>{hK.init(e,t),Ir.init(e,t)});function AEe(e){return gI(od,e)}function FEe(e){return vI(od,e)}function UEe(e){return yI(od,e)}function BEe(e){return bI(od,e)}const $3=be("ZodURL",(e,t)=>{mK.init(e,t),Ir.init(e,t)});function WEe(e){return C3($3,e)}function VEe(e){return C3($3,{protocol:/^https?$/,hostname:TY,...Oe(e)})}const tE=be("ZodEmoji",(e,t)=>{gK.init(e,t),Ir.init(e,t)});function HEe(e){return xI(tE,e)}const nE=be("ZodNanoID",(e,t)=>{vK.init(e,t),Ir.init(e,t)});function ZEe(e){return _I(nE,e)}const rE=be("ZodCUID",(e,t)=>{yK.init(e,t),Ir.init(e,t)});function qEe(e){return wI(rE,e)}const iE=be("ZodCUID2",(e,t)=>{bK.init(e,t),Ir.init(e,t)});function GEe(e){return kI(iE,e)}const oE=be("ZodULID",(e,t)=>{xK.init(e,t),Ir.init(e,t)});function YEe(e){return SI(oE,e)}const aE=be("ZodXID",(e,t)=>{_K.init(e,t),Ir.init(e,t)});function KEe(e){return CI(aE,e)}const sE=be("ZodKSUID",(e,t)=>{wK.init(e,t),Ir.init(e,t)});function XEe(e){return jI(sE,e)}const lE=be("ZodIPv4",(e,t)=>{TK.init(e,t),Ir.init(e,t)});function JEe(e){return TI(lE,e)}const QJ=be("ZodMAC",(e,t)=>{EK.init(e,t),Ir.init(e,t)});function QEe(e){return ZX(QJ,e)}const uE=be("ZodIPv6",(e,t)=>{IK.init(e,t),Ir.init(e,t)});function eNe(e){return II(uE,e)}const cE=be("ZodCIDRv4",(e,t)=>{NK.init(e,t),Ir.init(e,t)});function tNe(e){return EI(cE,e)}const dE=be("ZodCIDRv6",(e,t)=>{$K.init(e,t),Ir.init(e,t)});function nNe(e){return NI(dE,e)}const fE=be("ZodBase64",(e,t)=>{MK.init(e,t),Ir.init(e,t)});function rNe(e){return $I(fE,e)}const hE=be("ZodBase64URL",(e,t)=>{LK.init(e,t),Ir.init(e,t)});function iNe(e){return MI(hE,e)}const pE=be("ZodE164",(e,t)=>{PK.init(e,t),Ir.init(e,t)});function oNe(e){return RI(pE,e)}const mE=be("ZodJWT",(e,t)=>{zK.init(e,t),Ir.init(e,t)});function aNe(e){return LI(mE,e)}const cb=be("ZodCustomStringFormat",(e,t)=>{DK.init(e,t),Ir.init(e,t)});function sNe(e,t,n={}){return ub(cb,e,t,n)}function lNe(e){return ub(cb,"hostname",jY,e)}function uNe(e){return ub(cb,"hex",WY,e)}function cNe(e,t){const n=(t==null?void 0:t.enc)??"hex",r=`${e}_${n}`,i=nI[r];if(!i)throw new Error(`Unrecognized hash format: ${r}`);return ub(cb,r,i,t)}const M3=be("ZodNumber",(e,t)=>{aI.init(e,t),rn.init(e,t),e.gt=(r,i)=>e.check(vp(r,i)),e.gte=(r,i)=>e.check(ys(r,i)),e.min=(r,i)=>e.check(ys(r,i)),e.lt=(r,i)=>e.check(gp(r,i)),e.lte=(r,i)=>e.check(Yl(r,i)),e.max=(r,i)=>e.check(Yl(r,i)),e.int=r=>e.check(gE(r)),e.safe=r=>e.check(gE(r)),e.positive=r=>e.check(vp(0,r)),e.nonnegative=r=>e.check(ys(0,r)),e.negative=r=>e.check(gp(0,r)),e.nonpositive=r=>e.check(Yl(0,r)),e.multipleOf=(r,i)=>e.check(sb(r,i)),e.step=(r,i)=>e.check(sb(r,i)),e.finite=()=>e;const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function oe(e){return JX(M3,e)}const lg=be("ZodNumberFormat",(e,t)=>{AK.init(e,t),M3.init(e,t)});function gE(e){return eJ(lg,e)}function dNe(e){return tJ(lg,e)}function fNe(e){return nJ(lg,e)}function hNe(e){return rJ(lg,e)}function pNe(e){return iJ(lg,e)}const R3=be("ZodBoolean",(e,t)=>{sI.init(e,t),rn.init(e,t)});function ad(e){return oJ(R3,e)}const L3=be("ZodBigInt",(e,t)=>{lI.init(e,t),rn.init(e,t),e.gte=(r,i)=>e.check(ys(r,i)),e.min=(r,i)=>e.check(ys(r,i)),e.gt=(r,i)=>e.check(vp(r,i)),e.gte=(r,i)=>e.check(ys(r,i)),e.min=(r,i)=>e.check(ys(r,i)),e.lt=(r,i)=>e.check(gp(r,i)),e.lte=(r,i)=>e.check(Yl(r,i)),e.max=(r,i)=>e.check(Yl(r,i)),e.positive=r=>e.check(vp(BigInt(0),r)),e.negative=r=>e.check(gp(BigInt(0),r)),e.nonpositive=r=>e.check(Yl(BigInt(0),r)),e.nonnegative=r=>e.check(ys(BigInt(0),r)),e.multipleOf=(r,i)=>e.check(sb(r,i));const n=e._zod.bag;e.minValue=n.minimum??null,e.maxValue=n.maximum??null,e.format=n.format??null});function mNe(e){return sJ(L3,e)}const vE=be("ZodBigIntFormat",(e,t)=>{FK.init(e,t),L3.init(e,t)});function gNe(e){return uJ(vE,e)}function vNe(e){return cJ(vE,e)}const eQ=be("ZodSymbol",(e,t)=>{UK.init(e,t),rn.init(e,t)});function yNe(e){return dJ(eQ,e)}const tQ=be("ZodUndefined",(e,t)=>{BK.init(e,t),rn.init(e,t)});function bNe(e){return fJ(tQ,e)}const nQ=be("ZodNull",(e,t)=>{WK.init(e,t),rn.init(e,t)});function yE(e){return hJ(nQ,e)}const rQ=be("ZodAny",(e,t)=>{VK.init(e,t),rn.init(e,t)});function xNe(){return pJ(rQ)}const iQ=be("ZodUnknown",(e,t)=>{HK.init(e,t),rn.init(e,t)});function ug(){return mJ(iQ)}const oQ=be("ZodNever",(e,t)=>{ZK.init(e,t),rn.init(e,t)});function bE(e){return gJ(oQ,e)}const aQ=be("ZodVoid",(e,t)=>{qK.init(e,t),rn.init(e,t)});function _Ne(e){return vJ(aQ,e)}const xE=be("ZodDate",(e,t)=>{GK.init(e,t),rn.init(e,t),e.min=(r,i)=>e.check(ys(r,i)),e.max=(r,i)=>e.check(Yl(r,i));const n=e._zod.bag;e.minDate=n.minimum?new Date(n.minimum):null,e.maxDate=n.maximum?new Date(n.maximum):null});function wNe(e){return yJ(xE,e)}const sQ=be("ZodArray",(e,t)=>{KK.init(e,t),rn.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(sg(n,r)),e.nonempty=n=>e.check(sg(1,n)),e.max=(n,r)=>e.check(T3(n,r)),e.length=(n,r)=>e.check(I3(n,r)),e.unwrap=()=>e.element});function zr(e,t){return jJ(sQ,e,t)}function kNe(e){const t=e._zod.def.shape;return xs(Object.keys(t))}const P3=be("ZodObject",(e,t)=>{eX.init(e,t),rn.init(e,t),vn(e,"shape",()=>t.shape),e.keyof=()=>xs(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:ug()}),e.loose=()=>e.clone({...e._zod.def,catchall:ug()}),e.strict=()=>e.clone({...e._zod.def,catchall:bE()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>YG(e,n),e.safeExtend=n=>KG(e,n),e.merge=n=>XG(e,n),e.pick=n=>qG(e,n),e.omit=n=>GG(e,n),e.partial=(...n)=>JG(CE,e,n[0]),e.required=(...n)=>QG(jE,e,n[0])});function kt(e,t){const n={type:"object",shape:e??{},...Oe(t)};return new P3(n)}function SNe(e,t){return new P3({type:"object",shape:e,catchall:bE(),...Oe(t)})}function CNe(e,t){return new P3({type:"object",shape:e,catchall:ug(),...Oe(t)})}const _E=be("ZodUnion",(e,t)=>{uI.init(e,t),rn.init(e,t),e.options=t.options});function O3(e,t){return new _E({type:"union",options:e,...Oe(t)})}const lQ=be("ZodDiscriminatedUnion",(e,t)=>{_E.init(e,t),nX.init(e,t)});function sd(e,t,n){return new lQ({type:"union",options:t,discriminator:e,...Oe(n)})}const uQ=be("ZodIntersection",(e,t)=>{rX.init(e,t),rn.init(e,t)});function cQ(e,t){return new uQ({type:"intersection",left:e,right:t})}const dQ=be("ZodTuple",(e,t)=>{dI.init(e,t),rn.init(e,t),e.rest=n=>e.clone({...e._zod.def,rest:n})});function wE(e,t,n){const r=t instanceof Bt,i=r?n:t,o=r?t:null;return new dQ({type:"tuple",items:e,rest:o,...Oe(i)})}const kE=be("ZodRecord",(e,t)=>{oX.init(e,t),rn.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function db(e,t,n){return new kE({type:"record",keyType:e,valueType:t,...Oe(n)})}function jNe(e,t,n){const r=il(e);return r._zod.values=void 0,new kE({type:"record",keyType:r,valueType:t,...Oe(n)})}const fQ=be("ZodMap",(e,t)=>{aX.init(e,t),rn.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function TNe(e,t,n){return new fQ({type:"map",keyType:e,valueType:t,...Oe(n)})}const hQ=be("ZodSet",(e,t)=>{lX.init(e,t),rn.init(e,t),e.min=(...n)=>e.check(lb(...n)),e.nonempty=n=>e.check(lb(1,n)),e.max=(...n)=>e.check(j3(...n)),e.size=(...n)=>e.check(PI(...n))});function INe(e,t){return new hQ({type:"set",valueType:e,...Oe(t)})}const fb=be("ZodEnum",(e,t)=>{cX.init(e,t),rn.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(r,i)=>{const o={};for(const a of r)if(n.has(a))o[a]=t.entries[a];else throw new Error(`Key ${a} not found in enum`);return new fb({...t,checks:[],...Oe(i),entries:o})},e.exclude=(r,i)=>{const o={...t.entries};for(const a of r)if(n.has(a))delete o[a];else throw new Error(`Key ${a} not found in enum`);return new fb({...t,checks:[],...Oe(i),entries:o})}});function xs(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new fb({type:"enum",entries:n,...Oe(t)})}function ENe(e,t){return new fb({type:"enum",entries:e,...Oe(t)})}const pQ=be("ZodLiteral",(e,t)=>{dX.init(e,t),rn.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function ft(e,t){return new pQ({type:"literal",values:Array.isArray(e)?e:[e],...Oe(t)})}const mQ=be("ZodFile",(e,t)=>{fX.init(e,t),rn.init(e,t),e.min=(n,r)=>e.check(lb(n,r)),e.max=(n,r)=>e.check(j3(n,r)),e.mime=(n,r)=>e.check(BI(Array.isArray(n)?n:[n],r))});function NNe(e){return TJ(mQ,e)}const gQ=be("ZodTransform",(e,t)=>{hX.init(e,t),rn.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new d3(e.constructor.name);n.addIssue=o=>{if(typeof o=="string")n.issues.push(og(o,n.value,t));else{const a=o;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=n.value),a.inst??(a.inst=e),n.issues.push(og(a))}};const i=t.transform(n.value,n);return i instanceof Promise?i.then(o=>(n.value=o,n)):(n.value=i,n)}});function SE(e){return new gQ({type:"transform",transform:e})}const CE=be("ZodOptional",(e,t)=>{mX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function z3(e){return new CE({type:"optional",innerType:e})}const vQ=be("ZodNullable",(e,t)=>{gX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function _s(e){return new vQ({type:"nullable",innerType:e})}function $Ne(e){return z3(_s(e))}const yQ=be("ZodDefault",(e,t)=>{vX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function bQ(e,t){return new yQ({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():m3(t)}})}const xQ=be("ZodPrefault",(e,t)=>{bX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function _Q(e,t){return new xQ({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():m3(t)}})}const jE=be("ZodNonOptional",(e,t)=>{xX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function wQ(e,t){return new jE({type:"nonoptional",innerType:e,...Oe(t)})}const kQ=be("ZodSuccess",(e,t)=>{wX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function MNe(e){return new kQ({type:"success",innerType:e})}const SQ=be("ZodCatch",(e,t)=>{kX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function CQ(e,t){return new SQ({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const jQ=be("ZodNaN",(e,t)=>{SX.init(e,t),rn.init(e,t)});function RNe(e){return xJ(jQ,e)}const TE=be("ZodPipe",(e,t)=>{CX.init(e,t),rn.init(e,t),e.in=t.in,e.out=t.out});function D3(e,t){return new TE({type:"pipe",in:e,out:t})}const IE=be("ZodCodec",(e,t)=>{TE.init(e,t),fI.init(e,t)});function LNe(e,t,n){return new IE({type:"pipe",in:e,out:t,transform:n.decode,reverseTransform:n.encode})}const TQ=be("ZodReadonly",(e,t)=>{jX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function IQ(e){return new TQ({type:"readonly",innerType:e})}const EQ=be("ZodTemplateLiteral",(e,t)=>{IX.init(e,t),rn.init(e,t)});function PNe(e,t){return new EQ({type:"template_literal",parts:e,...Oe(t)})}const NQ=be("ZodLazy",(e,t)=>{$X.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.getter()});function $Q(e){return new NQ({type:"lazy",getter:e})}const MQ=be("ZodPromise",(e,t)=>{NX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function ONe(e){return new MQ({type:"promise",innerType:e})}const RQ=be("ZodFunction",(e,t)=>{EX.init(e,t),rn.init(e,t)});function LQ(e){return new RQ({type:"function",input:Array.isArray(e==null?void 0:e.input)?wE(e==null?void 0:e.input):(e==null?void 0:e.input)??zr(ug()),output:(e==null?void 0:e.output)??ug()})}const A3=be("ZodCustom",(e,t)=>{MX.init(e,t),rn.init(e,t)});function zNe(e){const t=new Gr({check:"custom"});return t._zod.check=e,t}function DNe(e,t){return IJ(A3,e??(()=>!0),t)}function PQ(e,t={}){return EJ(A3,e,t)}function OQ(e){return NJ(e)}const ANe=MJ,FNe=RJ;function UNe(e,t={error:`Input not instance of ${e.name}`}){const n=new A3({type:"custom",check:"custom",fn:r=>r instanceof e,abort:!0,...Oe(t)});return n._zod.bag.Class=e,n}const BNe=(...e)=>LJ({Codec:IE,Boolean:R3,String:E3},...e);function WNe(e){const t=$Q(()=>O3([Et(e),oe(),ad(),yE(),zr(t),db(Et(),t)]));return t}function zQ(e,t){return D3(SE(e),t)}const VNe={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function HNe(e){da({customError:e})}function ZNe(){return da().customError}var EE;EE||(EE={});function qNe(e){return HX(E3,e)}function jo(e){return QX(M3,e)}function GNe(e){return aJ(R3,e)}function Zt(e){return lJ(L3,e)}function YNe(e){return bJ(xE,e)}const KNe=Object.freeze(Object.defineProperty({__proto__:null,bigint:Zt,boolean:GNe,date:YNe,number:jo,string:qNe},Symbol.toStringTag,{value:"Module"}));da(PX());const XNe=Object.freeze(Object.defineProperty({__proto__:null,$brand:DG,$input:WX,$output:BX,NEVER:zG,TimePrecision:qX,ZodAny:rQ,ZodArray:sQ,ZodBase64:fE,ZodBase64URL:hE,ZodBigInt:L3,ZodBigIntFormat:vE,ZodBoolean:R3,ZodCIDRv4:cE,ZodCIDRv6:dE,ZodCUID:rE,ZodCUID2:iE,ZodCatch:SQ,ZodCodec:IE,ZodCustom:A3,ZodCustomStringFormat:cb,ZodDate:xE,ZodDefault:yQ,ZodDiscriminatedUnion:lQ,ZodE164:pE,ZodEmail:eE,ZodEmoji:tE,ZodEnum:fb,ZodError:OEe,ZodFile:mQ,get ZodFirstPartyTypeKind(){return EE},ZodFunction:RQ,ZodGUID:N3,ZodIPv4:lE,ZodIPv6:uE,ZodISODate:KI,ZodISODateTime:YI,ZodISODuration:JI,ZodISOTime:XI,ZodIntersection:uQ,ZodIssueCode:VNe,ZodJWT:mE,ZodKSUID:sE,ZodLazy:NQ,ZodLiteral:pQ,ZodMAC:QJ,ZodMap:fQ,ZodNaN:jQ,ZodNanoID:nE,ZodNever:oQ,ZodNonOptional:jE,ZodNull:nQ,ZodNullable:vQ,ZodNumber:M3,ZodNumberFormat:lg,ZodObject:P3,ZodOptional:CE,ZodPipe:TE,ZodPrefault:xQ,ZodPromise:MQ,ZodReadonly:TQ,ZodRealError:bs,ZodRecord:kE,ZodSet:hQ,ZodString:E3,ZodStringFormat:Ir,ZodSuccess:kQ,ZodSymbol:eQ,ZodTemplateLiteral:EQ,ZodTransform:gQ,ZodTuple:dQ,ZodType:rn,ZodULID:oE,ZodURL:$3,ZodUUID:od,ZodUndefined:tQ,ZodUnion:_E,ZodUnknown:iQ,ZodVoid:aQ,ZodXID:aE,_ZodString:QI,_default:bQ,_function:LQ,any:xNe,array:zr,base64:rNe,base64url:iNe,bigint:mNe,boolean:ad,catch:CQ,check:zNe,cidrv4:tNe,cidrv6:nNe,clone:il,codec:LNe,coerce:KNe,config:da,core:LEe,cuid:qEe,cuid2:GEe,custom:DNe,date:wNe,decode:ZJ,decodeAsync:GJ,describe:ANe,discriminatedUnion:sd,e164:oNe,email:zEe,emoji:HEe,encode:HJ,encodeAsync:qJ,endsWith:UI,enum:xs,file:NNe,flattenError:WT,float32:dNe,float64:fNe,formatError:VT,function:LQ,getErrorMap:ZNe,globalRegistry:Gl,gt:vp,gte:ys,guid:DEe,hash:cNe,hex:uNe,hostname:lNe,httpUrl:VEe,includes:AI,instanceof:UNe,int:gE,int32:hNe,int64:gNe,intersection:cQ,ipv4:JEe,ipv6:eNe,iso:PEe,json:WNe,jwt:aNe,keyof:kNe,ksuid:XEe,lazy:$Q,length:I3,literal:ft,locales:FX,looseObject:CNe,lowercase:zI,lt:gp,lte:Yl,mac:QEe,map:TNe,maxLength:T3,maxSize:j3,meta:FNe,mime:BI,minLength:sg,minSize:lb,multipleOf:sb,nan:RNe,nanoid:ZEe,nativeEnum:ENe,negative:wJ,never:bE,nonnegative:SJ,nonoptional:wQ,nonpositive:kJ,normalize:WI,null:yE,nullable:_s,nullish:$Ne,number:oe,object:kt,optional:z3,overwrite:Df,parse:UJ,parseAsync:BJ,partialRecord:jNe,pipe:D3,positive:_J,prefault:_Q,preprocess:zQ,prettifyError:aY,promise:ONe,property:CJ,readonly:IQ,record:db,refine:PQ,regex:OI,regexes:nI,registry:pI,safeDecode:KJ,safeDecodeAsync:JJ,safeEncode:YJ,safeEncodeAsync:XJ,safeParse:WJ,safeParseAsync:VJ,set:INe,setErrorMap:HNe,size:PI,slugify:qI,startsWith:FI,strictObject:SNe,string:Et,stringFormat:sNe,stringbool:BNe,success:MNe,superRefine:OQ,symbol:yNe,templateLiteral:PNe,toJSONSchema:PJ,toLowerCase:HI,toUpperCase:ZI,transform:SE,treeifyError:iY,trim:VI,tuple:wE,uint32:pNe,uint64:vNe,ulid:YEe,undefined:bNe,union:O3,unknown:ug,uppercase:DI,url:WEe,util:nY,uuid:AEe,uuidv4:FEe,uuidv6:UEe,uuidv7:BEe,void:_Ne,xid:KEe},Symbol.toStringTag,{value:"Module"})),DQ=xs(["Frankendancer","Firedancer"]),NE=DQ.enum,ln=kt({topic:ft("summary")}),AQ=kt({topic:ft("epoch")}),cg=kt({topic:ft("gossip")}),FQ=kt({topic:ft("peers")}),qu=kt({topic:ft("slot")}),UQ=kt({topic:ft("block_engine")}),F3=kt({topic:ft("wait_for_supermajority")});sd("topic",[ln,AQ,cg,FQ,qu,UQ,F3]);const JNe=Et(),QNe=xs(["development","mainnet-beta","devnet","testnet","pythtest","pythnet","unknown"]),e$e=Et(),t$e=Et(),n$e=Et(),r$e=Zt(),BQ=xs(["perf","balanced","revenue"]),ld=BQ.enum,$E=xs(["sock","net","quic","bundle","verify","dedup","resolv","resolh","pack","execle","bank","poh","pohh","shred","store","snapct","snapld","snapdc","snapin","netlnk","metric","ipecho","gossvf","gossip","repair","replay","execrp","tower","txsend","sign","rpc","gui","http","plugin","genesi","diag","event"]),i$e=kt({kind:Et(),kind_id:oe()}),WQ=Zt();Zt();const o$e=oe(),a$e=oe(),s$e=oe(),l$e=oe().nullable(),u$e=oe().nullable(),c$e=kt({repair:oe().array(),turbine:oe().array()}),d$e=jo(),f$e=oe(),h$e=oe().nullable(),p$e=oe().nullable(),m$e=oe(),g$e=oe().nullable(),v$e=oe(),y$e=oe(),b$e=kt({total:oe(),vote:oe(),nonvote_success:oe(),nonvote_failed:oe()}),x$e=kt({ingress:zr(oe()),egress:zr(oe())}),_$e=kt({pack_cranked:oe(),pack_retained:oe(),resolv_retained:oe(),quic:oe(),udp:oe(),gossip:oe(),block_engine:oe()}),w$e=kt({net_overrun:oe(),quic_overrun:oe(),quic_frag_drop:oe(),quic_abandoned:oe(),tpu_quic_invalid:oe(),tpu_udp_invalid:oe(),verify_overrun:oe(),verify_parse:oe(),verify_failed:oe(),verify_duplicate:oe(),dedup_duplicate:oe(),resolv_lut_failed:oe(),resolv_expired:oe(),resolv_no_ledger:oe(),resolv_ancient:oe(),resolv_retained:oe(),pack_invalid:oe(),pack_already_executed:oe(),pack_invalid_bundle:oe(),pack_retained:oe(),pack_leader_slow:oe(),pack_wait_full:oe(),pack_expired:oe(),bank_invalid:oe(),bank_nonce_already_advanced:oe(),bank_nonce_advance_failed:oe(),bank_nonce_wrong_blockhash:oe(),block_success:oe(),block_fail:oe()}),VQ=kt({in:_$e,out:w$e}),k$e=kt({next_leader_slot:oe().nullable(),waterfall:VQ}),HQ=kt({net_in:oe(),quic:oe(),verify:oe(),bundle_rtt_smoothed_millis:oe(),bundle_rx_delay_millis_p90:oe(),dedup:oe(),pack:oe(),bank:oe(),poh:oe(),shred:oe(),store:oe(),net_out:oe()}),S$e=kt({next_leader_slot:oe().nullable(),tile_primary_metric:HQ}),C$e=kt({timers:zr(zr(oe()).nullable()),sched_timers:zr(zr(oe()).nullable()),in_backp:zr(ad().nullable()),backp_msgs:zr(oe().nullable()),alive:zr(oe().nullable()),nvcsw:zr(oe().nullable()),nivcsw:zr(oe().nullable()),last_cpu:zr(oe().nullable()),minflt:zr(oe().nullable()),majflt:zr(oe().nullable())});kt({tile:Et(),kind_id:oe(),idle:oe()});const j$e=xs(["initializing","searching_for_full_snapshot","downloading_full_snapshot","searching_for_incremental_snapshot","downloading_incremental_snapshot","cleaning_blockstore","cleaning_accounts","loading_ledger","processing_ledger","starting_services","halted","waiting_for_supermajority","running"]),T$e=kt({phase:j$e,downloading_full_snapshot_slot:oe().nullable(),downloading_full_snapshot_peer:Et().nullable(),downloading_full_snapshot_elapsed_secs:oe().nullable(),downloading_full_snapshot_remaining_secs:oe().nullable(),downloading_full_snapshot_throughput:oe().nullable(),downloading_full_snapshot_total_bytes:jo().nullable(),downloading_full_snapshot_current_bytes:jo().nullable(),downloading_incremental_snapshot_slot:oe().nullable(),downloading_incremental_snapshot_peer:Et().nullable(),downloading_incremental_snapshot_elapsed_secs:oe().nullable(),downloading_incremental_snapshot_remaining_secs:oe().nullable(),downloading_incremental_snapshot_throughput:oe().nullable(),downloading_incremental_snapshot_total_bytes:jo().nullable(),downloading_incremental_snapshot_current_bytes:jo().nullable(),ledger_slot:oe().nullable(),ledger_max_slot:oe().nullable(),waiting_for_supermajority_slot:oe().nullable(),waiting_for_supermajority_stake_percent:oe().nullable()}),ZQ=xs(["joining_gossip","loading_full_snapshot","loading_incremental_snapshot","catching_up","waiting_for_supermajority","running"]),wn=ZQ.enum,I$e=kt({phase:ZQ,joining_gossip_elapsed_seconds:oe().nullable().optional(),loading_full_snapshot_elapsed_seconds:oe().nullable().optional(),loading_full_snapshot_reset_count:oe().nullable().optional(),loading_full_snapshot_slot:oe().nullable().optional(),loading_full_snapshot_total_bytes_compressed:jo().nullable().optional(),loading_full_snapshot_read_bytes_compressed:jo().nullable().optional(),loading_full_snapshot_read_path:Et().nullable().optional(),loading_full_snapshot_decompress_bytes_decompressed:jo().nullable().optional(),loading_full_snapshot_decompress_bytes_compressed:jo().nullable().optional(),loading_full_snapshot_insert_bytes_decompressed:jo().nullable().optional(),loading_full_snapshot_insert_accounts:oe().nullable().optional(),loading_incremental_snapshot_elapsed_seconds:oe().nullable().optional(),loading_incremental_snapshot_reset_count:oe().nullable().optional(),loading_incremental_snapshot_slot:oe().nullable().optional(),loading_incremental_snapshot_total_bytes_compressed:jo().nullable().optional(),loading_incremental_snapshot_read_bytes_compressed:jo().nullable().optional(),loading_incremental_snapshot_read_path:Et().nullable().optional(),loading_incremental_snapshot_decompress_bytes_decompressed:jo().nullable().optional(),loading_incremental_snapshot_decompress_bytes_compressed:jo().nullable().optional(),loading_incremental_snapshot_insert_bytes_decompressed:jo().nullable().optional(),loading_incremental_snapshot_insert_accounts:oe().nullable().optional(),wait_for_supermajority_bank_hash:Et().nullable().optional(),wait_for_supermajority_shred_version:Et().nullable().optional(),wait_for_supermajority_attempt:oe().nullable().optional(),wait_for_supermajority_total_stake:Zt().nullable().optional(),wait_for_supermajority_connected_stake:Zt().nullable().optional(),wait_for_supermajority_total_peers:oe().nullable().optional(),wait_for_supermajority_connected_peers:oe().nullable().optional(),catching_up_elapsed_seconds:oe().nullable().optional(),catching_up_first_replay_slot:oe().nullable().optional()}),E$e=zQ(e=>{if(!e||typeof e!="object"||Array.isArray(e))return e;const t=e;return{...t,txn_preload_end_timestamps_nanos:t.txn_preload_end_timestamps_nanos??t.txn_check_start_timestamps_nanos,txn_start_timestamps_nanos:t.txn_start_timestamps_nanos??t.txn_load_start_timestamps_nanos,txn_load_end_timestamps_nanos:t.txn_load_end_timestamps_nanos??t.txn_execute_start_timestamps_nanos,txn_end_timestamps_nanos:t.txn_end_timestamps_nanos??t.txn_commit_start_timestamps_nanos}},kt({start_timestamp_nanos:Zt(),target_end_timestamp_nanos:Zt(),txn_mb_start_timestamps_nanos:Zt().array(),txn_mb_end_timestamps_nanos:Zt().array(),txn_compute_units_requested:oe().array(),txn_compute_units_consumed:oe().array(),txn_transaction_fee:Zt().array(),txn_priority_fee:Zt().array(),txn_tips:Zt().array(),txn_error_code:oe().array(),txn_from_bundle:ad().array(),txn_is_simple_vote:ad().array(),txn_bank_idx:oe().array(),txn_preload_end_timestamps_nanos:Zt().array(),txn_start_timestamps_nanos:Zt().array(),txn_load_end_timestamps_nanos:Zt().array(),txn_end_timestamps_nanos:Zt().array(),txn_commit_end_timestamps_nanos:Zt().array().optional(),txn_arrival_timestamps_nanos:Zt().array(),txn_microblock_id:oe().array(),txn_landed:ad().array(),txn_signature:Et().array(),txn_source_ipv4:Et().array(),txn_source_tpu:Et().array()})),N$e=xs(["incomplete","completed","optimistically_confirmed","rooted","finalized"]),$$e=kt({slot:oe(),mine:ad(),skipped:ad(),level:N$e,success_nonvote_transaction_cnt:oe().nullable(),failed_nonvote_transaction_cnt:oe().nullable(),success_vote_transaction_cnt:oe().nullable(),failed_vote_transaction_cnt:oe().nullable(),priority_fee:Zt().nullable(),transaction_fee:Zt().nullable(),tips:Zt().nullable(),max_compute_units:oe().nullable(),compute_units:oe().nullable(),duration_nanos:oe().nullable(),completed_time_nanos:Zt().nullable(),vote_latency:oe().nullable()}),M$e=zr(wE([oe(),oe(),oe(),oe()])),R$e=xs(["voting","non-voting","delinquent"]),L$e=oe(),P$e=kt({epoch:oe(),skip_rate:oe()}),O$e=kt({hits:oe(),lookups:oe(),insertions:oe(),insertion_bytes:oe(),evictions:oe(),eviction_bytes:oe(),spills:oe(),spill_bytes:oe(),free_bytes:oe(),size_bytes:oe()}),z$e=sd("key",[ln.extend({key:ft("ping"),value:yE(),id:oe()}),ln.extend({key:ft("version"),value:JNe}),ln.extend({key:ft("cluster"),value:QNe}),ln.extend({key:ft("commit_hash"),value:e$e}),ln.extend({key:ft("identity_key"),value:t$e}),ln.extend({key:ft("vote_key"),value:n$e}),ln.extend({key:ft("startup_time_nanos"),value:r$e}),ln.extend({key:ft("schedule_strategy"),value:BQ}),ln.extend({key:ft("tiles"),value:i$e.array()}),ln.extend({key:ft("identity_balance"),value:WQ}),ln.extend({key:ft("vote_balance"),value:WQ}),ln.extend({key:ft("root_slot"),value:o$e}),ln.extend({key:ft("optimistically_confirmed_slot"),value:a$e}),ln.extend({key:ft("completed_slot"),value:s$e}),ln.extend({key:ft("estimated_slot"),value:f$e}),ln.extend({key:ft("reset_slot"),value:h$e}),ln.extend({key:ft("storage_slot"),value:p$e}),ln.extend({key:ft("vote_slot"),value:m$e}),ln.extend({key:ft("slot_caught_up"),value:g$e}),ln.extend({key:ft("active_fork_count"),value:v$e}),ln.extend({key:ft("estimated_slot_duration_nanos"),value:y$e}),ln.extend({key:ft("estimated_tps"),value:b$e}),ln.extend({key:ft("live_network_metrics"),value:x$e}),ln.extend({key:ft("live_txn_waterfall"),value:k$e}),ln.extend({key:ft("live_tile_primary_metric"),value:S$e}),ln.extend({key:ft("live_tile_metrics"),value:C$e}),ln.extend({key:ft("live_tile_timers"),value:oe().array()}),ln.extend({key:ft("startup_progress"),value:T$e}),ln.extend({key:ft("boot_progress"),value:I$e}),ln.extend({key:ft("tps_history"),value:M$e}),ln.extend({key:ft("vote_state"),value:R$e}),ln.extend({key:ft("vote_distance"),value:L$e}),ln.extend({key:ft("skip_rate"),value:P$e}),ln.extend({key:ft("turbine_slot"),value:l$e}),ln.extend({key:ft("repair_slot"),value:u$e}),ln.extend({key:ft("catch_up_history"),value:c$e}),ln.extend({key:ft("server_time_nanos"),value:d$e}),ln.extend({key:ft("live_program_cache"),value:O$e})]),D$e=kt({epoch:oe(),start_time_nanos:Et().nullable(),end_time_nanos:Et().nullable(),start_slot:oe(),end_slot:oe(),excluded_stake_lamports:Zt(),staked_pubkeys:Et().array(),staked_lamports:Zt().array(),leader_slots:oe().array()}),A$e=sd("key",[AQ.extend({key:ft("new"),value:D$e})]),F$e=kt({num_push_messages_rx_success:oe(),num_push_messages_rx_failure:oe(),num_push_entries_rx_success:oe(),num_push_entries_rx_failure:oe(),num_push_entries_rx_duplicate:oe(),num_pull_response_messages_rx_success:oe(),num_pull_response_messages_rx_failure:oe(),num_pull_response_entries_rx_success:oe(),num_pull_response_entries_rx_failure:oe(),num_pull_response_entries_rx_duplicate:oe(),total_peers:oe(),total_stake:Zt(),connected_stake:Zt(),connected_staked_peers:oe(),connected_unstaked_peers:oe()}),qQ=kt({total_throughput:oe(),peer_names:Et().array(),peer_identities:Et().array(),peer_throughput:oe().array()}),U$e=kt({capacity:oe(),expired_count:oe(),evicted_count:oe(),count:oe().array(),count_tx:oe().array(),bytes_tx:oe().array()}),B$e=kt({num_bytes_rx:oe().array(),num_bytes_tx:oe().array(),num_messages_rx:oe().array(),num_messages_tx:oe().array()}),W$e=kt({health:F$e,ingress:qQ,egress:qQ,storage:U$e,messages:B$e}),V$e=oe(),GQ=O3([Et(),oe()]),YQ=db(Et(),db(Et(),GQ)).nullable(),H$e=kt({changes:zr(kt({row_index:oe(),column_name:Et(),new_value:GQ}))}),Z$e=sd("key",[cg.extend({key:ft("network_stats"),value:W$e}),cg.extend({key:ft("peers_size_update"),value:V$e}),cg.extend({key:ft("query_scroll"),value:YQ}),cg.extend({key:ft("query_sort"),value:YQ}),cg.extend({key:ft("view_update"),value:H$e})]),q$e=kt({client_id:oe().nullable().optional(),wallclock:oe(),shred_version:oe(),version:Et().nullable(),feature_set:oe().nullable(),sockets:db(Et(),Et()),country_code:Et().nullable().optional(),city_name:Et().nullable().optional()}),G$e=kt({vote_account:Et(),activated_stake:Zt(),last_vote:_s(oe()),root_slot:_s(oe()),epoch_credits:oe(),commission:oe(),delinquent:ad()}),KQ=kt({name:_s(Et()),details:_s(Et()),website:_s(Et()),icon_url:_s(Et()),keybase_username:_s(Et())}),XQ=kt({identity_pubkey:Et(),gossip:_s(q$e),vote:zr(G$e),info:_s(KQ)}),Y$e=kt({identity_pubkey:Et()}),K$e=kt({add:zr(XQ).optional(),update:zr(XQ).optional(),remove:zr(Y$e).optional()}),X$e=sd("key",[FQ.extend({key:ft("update"),value:K$e})]),J$e=kt({timestamp_nanos:Et(),tile_timers:oe().array()}),Q$e=kt({timestamp_nanos:Zt(),regular:oe(),votes:oe(),conflicting:oe(),bundles:oe()}),eMe=kt({account:Et(),cost:oe()}),tMe=kt({used_total_block_cost:oe(),used_total_vote_cost:oe(),used_account_write_costs:eMe.array(),used_total_bytes:oe(),used_total_microblocks:oe(),max_total_block_cost:oe(),max_total_vote_cost:oe(),max_account_write_cost:oe(),max_total_bytes:oe(),max_total_microblocks:oe()}),nMe=kt({block_hash:Et().optional(),end_slot_reason:Et().optional(),slot_schedule_counts:oe().array(),end_slot_schedule_counts:oe().array(),pending_smallest_cost:oe().nullable(),pending_smallest_bytes:oe().nullable(),pending_vote_smallest_cost:oe().nullable(),pending_vote_smallest_bytes:oe().nullable()}),U3=kt({publish:$$e,waterfall:VQ.nullable().optional(),tile_primary_metric:HQ.nullable().optional(),tile_timers:J$e.array().nullable().optional(),scheduler_counts:Q$e.array().nullable().optional(),transactions:E$e.nullable().optional(),limits:tMe.nullable().optional(),scheduler_stats:nMe.nullable().optional()}),rMe=oe().array(),iMe=oe().array(),oMe=kt({slots_largest_tips:oe().array(),vals_largest_tips:Zt().array(),slots_smallest_tips:oe().array(),vals_smallest_tips:Zt().array(),slots_largest_fees:oe().array(),vals_largest_fees:Zt().array(),slots_smallest_fees:oe().array(),vals_smallest_fees:Zt().array(),slots_largest_rewards:oe().array(),vals_largest_rewards:Zt().array(),slots_smallest_rewards:oe().array(),vals_smallest_rewards:Zt().array(),slots_largest_duration:oe().array(),vals_largest_duration:Zt().array(),slots_smallest_duration:oe().array(),vals_smallest_duration:Zt().array(),slots_largest_compute_units:oe().array(),vals_largest_compute_units:Zt().array(),slots_smallest_compute_units:oe().array(),vals_smallest_compute_units:Zt().array(),slots_largest_skipped:oe().array(),vals_largest_skipped:Zt().array(),slots_smallest_skipped:oe().array(),vals_smallest_skipped:Zt().array()});var Er=(e=>(e[e.shred_repair_request=0]="shred_repair_request",e[e.shred_received_turbine=1]="shred_received_turbine",e[e.shred_received_repair=2]="shred_received_repair",e[e.shred_replayed=3]="shred_replayed",e[e.slot_complete=4]="slot_complete",e[e.shred_published=6]="shred_published",e))(Er||{});const aMe=kt({reference_slot:oe(),reference_ts:Zt(),slot_delta:oe().array(),shred_idx:oe().nullable().array(),event:oe().array(),event_ts_delta:jo().array()}),sMe=sd("key",[qu.extend({key:ft("skipped_history"),value:rMe}),qu.extend({key:ft("skipped_history_cluster"),value:iMe}),qu.extend({key:ft("update"),value:U3}),qu.extend({key:ft("query"),value:U3.nullable()}),qu.extend({key:ft("query_detailed"),value:U3.nullable()}),qu.extend({key:ft("query_transactions"),value:U3.nullable()}),qu.extend({key:ft("query_rankings"),value:oMe}),qu.extend({key:ft("live_shreds"),value:aMe}),qu.extend({key:ft("late_votes_history"),value:kt({slot:oe().array(),latency:oe().nullable().array()})})]),lMe=xs(["disconnected","connecting","connected","sleeping"]),uMe=kt({name:Et(),url:Et(),ip:Et().optional(),status:lMe}),cMe=sd("key",[UQ.extend({key:ft("update"),value:uMe})]),dMe=kt({staked_pubkeys:Et().array(),staked_lamports:Zt().array(),infos:zr(KQ.nullable())}),fMe=Et().array(),hMe=Et().array(),pMe=sd("key",[F3.extend({key:ft("stakes"),value:dMe}),F3.extend({key:ft("peer_add"),value:fMe}),F3.extend({key:ft("peer_remove"),value:hMe})]),JQ=DQ.safeParse("Frankendancer".trim()),hb=JQ.error?NE.Frankendancer:JQ.data,xi=hb===NE.Frankendancer,Vi=hb===NE.Firedancer,Gu=fe(e=>{var t;return(t=e(Hl))==null?void 0:t.phase}),QQ=fe(e=>{const t=e(B3),n=e(Gu);return t.find(({phase:r})=>r===n)}),mMe=fe(e=>{const t=e(Hl);return!!(t!=null&&t.wait_for_supermajority_bank_hash)&&!!(t!=null&&t.wait_for_supermajority_shred_version)}),B3=fe(e=>e(mMe)?[{phase:wn.joining_gossip,completionFraction:.1},{phase:wn.loading_full_snapshot,completionFraction:.6},{phase:wn.loading_incremental_snapshot,completionFraction:.05},{phase:wn.waiting_for_supermajority,completionFraction:.25},{phase:wn.running,completionFraction:0}]:[{phase:wn.joining_gossip,completionFraction:.1},{phase:wn.loading_full_snapshot,completionFraction:.6},{phase:wn.loading_incremental_snapshot,completionFraction:.05},{phase:wn.catching_up,completionFraction:.25},{phase:wn.running,completionFraction:0}]),eee=fe(e=>{const t=e(B3),n=e(Gu),r=new Set;for(const i of t){if(i.phase===n)break;r.add(i.phase)}return r}),ol=fe(!0),W3=fe(!0),tee=fe(null),V3=fe(e=>{const t=e(ol);return t?xi?t:t&&e(W3):!1}),nee=fe(e=>{var t,n;return((t=e(Hl))==null?void 0:t.loading_incremental_snapshot_slot)??((n=e(Hl))==null?void 0:n.loading_full_snapshot_slot)}),ree="/assets/firedancer-D_J0EzUc.svg",gMe="/assets/frankendancer-0Top5G94.svg",vMe="_text_o41r7_1",yMe="_container_o41r7_6",iee={text:vMe,container:yMe};function bMe({label:e,hide:t}){const n=t?{visibility:"hidden"}:{};return u.jsx(W,{gap:"2",align:"center",style:n,className:iee.container,children:u.jsx(Z,{className:iee.text,children:e})})}const xMe="_container_1tszc_1",_Me="_text_1tszc_11",oee={container:xMe,text:_Me};function wMe({label:e,hide:t,rightChildren:n,bottomChildren:r}){const i=t?{visibility:"hidden"}:{};return u.jsxs("div",{className:oee.container,style:i,children:[u.jsx(W,{justify:"center",align:"center",children:u.jsx(Iy,{})}),u.jsxs(W,{gap:"2",align:"center",children:[u.jsxs(Z,{className:oee.text,children:[e,"..."]}),u.jsx(Mt,{flexGrow:"1"}),n]}),r&&u.jsxs(u.Fragment,{children:[u.jsx("div",{}),r]})]})}const kMe="data:image/svg+xml,%3csvg%20width='14'%20height='11'%20viewBox='0%200%2014%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.75%208.6748L12.6953%200.729492L13.75%201.78418L4.75%2010.7842L0.566406%206.60059L1.62109%205.5459L4.75%208.6748Z'%20fill='%231D863B'/%3e%3c/svg%3e",SMe="_text_1ont6_1",CMe="_container_1ont6_7",aee={text:SMe,container:CMe};function jMe({label:e,hide:t}){const n=t?{visibility:"hidden"}:{};return u.jsxs(W,{gap:"2",align:"center",style:n,className:aee.container,children:[u.jsx("img",{src:kMe,alt:"complete"}),u.jsx(Z,{className:aee.text,children:e})]})}const TMe="_label_1ojid_1",IMe="_value_1ojid_6",see={label:TMe,value:IMe};function ud({label:e,value:t}){return u.jsxs(W,{gap:"1",flexGrow:"1",children:[u.jsx(Z,{className:see.label,children:e}),u.jsx(Z,{className:see.value,children:t??"-"})]})}function EMe(){const e=J(Zu);return e?u.jsxs(W,{children:[u.jsx(ud,{label:"Current Slot",value:e.ledger_slot}),u.jsx(ud,{label:"Max Slot",value:e.ledger_max_slot})]}):null}const NMe="_progress_gtr5g_1",$Me="_text_gtr5g_11",H3={progress:NMe,text:$Me};class yp extends Error{}class MMe extends yp{constructor(t){super(`Invalid DateTime: ${t.toMessage()}`)}}class RMe extends yp{constructor(t){super(`Invalid Interval: ${t.toMessage()}`)}}class LMe extends yp{constructor(t){super(`Invalid Duration: ${t.toMessage()}`)}}class dg extends yp{}class lee extends yp{constructor(t){super(`Invalid unit ${t}`)}}class Uo extends yp{}class Af extends yp{constructor(){super("Zone is an abstract class")}}const nt="numeric",Kl="short",ws="long",Z3={year:nt,month:nt,day:nt},uee={year:nt,month:Kl,day:nt},PMe={year:nt,month:Kl,day:nt,weekday:Kl},cee={year:nt,month:ws,day:nt},dee={year:nt,month:ws,day:nt,weekday:ws},fee={hour:nt,minute:nt},hee={hour:nt,minute:nt,second:nt},pee={hour:nt,minute:nt,second:nt,timeZoneName:Kl},mee={hour:nt,minute:nt,second:nt,timeZoneName:ws},gee={hour:nt,minute:nt,hourCycle:"h23"},vee={hour:nt,minute:nt,second:nt,hourCycle:"h23"},yee={hour:nt,minute:nt,second:nt,hourCycle:"h23",timeZoneName:Kl},bee={hour:nt,minute:nt,second:nt,hourCycle:"h23",timeZoneName:ws},xee={year:nt,month:nt,day:nt,hour:nt,minute:nt},_ee={year:nt,month:nt,day:nt,hour:nt,minute:nt,second:nt},wee={year:nt,month:Kl,day:nt,hour:nt,minute:nt},kee={year:nt,month:Kl,day:nt,hour:nt,minute:nt,second:nt},OMe={year:nt,month:Kl,day:nt,weekday:Kl,hour:nt,minute:nt},See={year:nt,month:ws,day:nt,hour:nt,minute:nt,timeZoneName:Kl},Cee={year:nt,month:ws,day:nt,hour:nt,minute:nt,second:nt,timeZoneName:Kl},jee={year:nt,month:ws,day:nt,weekday:ws,hour:nt,minute:nt,timeZoneName:ws},Tee={year:nt,month:ws,day:nt,weekday:ws,hour:nt,minute:nt,second:nt,timeZoneName:ws};class pb{get type(){throw new Af}get name(){throw new Af}get ianaName(){return this.name}get isUniversal(){throw new Af}offsetName(t,n){throw new Af}formatOffset(t,n){throw new Af}offset(t){throw new Af}equals(t){throw new Af}get isValid(){throw new Af}}let ME=null;class pC extends pb{static get instance(){return ME===null&&(ME=new pC),ME}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(t,{format:n,locale:r}){return Qee(t,n,r)}formatOffset(t,n){return vb(this.offset(t),n)}offset(t){return-new Date(t).getTimezoneOffset()}equals(t){return t.type==="system"}get isValid(){return!0}}const RE=new Map;function zMe(e){let t=RE.get(e);return t===void 0&&(t=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),RE.set(e,t)),t}const DMe={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function AMe(e,t){const n=e.format(t).replace(/\u200E/g,""),r=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n),[,i,o,a,s,l,c,d]=r;return[a,i,o,s,l,c,d]}function FMe(e,t){const n=e.formatToParts(t),r=[];for(let i=0;i=0?v:1e3+v,(f-p)/(60*1e3)}equals(t){return t.type==="iana"&&t.name===this.name}get isValid(){return this.valid}}let Iee={};function UMe(e,t={}){const n=JSON.stringify([e,t]);let r=Iee[n];return r||(r=new Intl.ListFormat(e,t),Iee[n]=r),r}const PE=new Map;function OE(e,t={}){const n=JSON.stringify([e,t]);let r=PE.get(n);return r===void 0&&(r=new Intl.DateTimeFormat(e,t),PE.set(n,r)),r}const zE=new Map;function BMe(e,t={}){const n=JSON.stringify([e,t]);let r=zE.get(n);return r===void 0&&(r=new Intl.NumberFormat(e,t),zE.set(n,r)),r}const DE=new Map;function WMe(e,t={}){const{base:n,...r}=t,i=JSON.stringify([e,r]);let o=DE.get(i);return o===void 0&&(o=new Intl.RelativeTimeFormat(e,t),DE.set(i,o)),o}let q3=null;function VMe(){return q3||(q3=new Intl.DateTimeFormat().resolvedOptions().locale,q3)}const AE=new Map;function Eee(e){let t=AE.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(e).resolvedOptions(),AE.set(e,t)),t}const FE=new Map;function HMe(e){let t=FE.get(e);if(!t){const n=new Intl.Locale(e);t="getWeekInfo"in n?n.getWeekInfo():n.weekInfo,"minimalDays"in t||(t={...Nee,...t}),FE.set(e,t)}return t}function ZMe(e){const t=e.indexOf("-x-");t!==-1&&(e=e.substring(0,t));const n=e.indexOf("-u-");if(n===-1)return[e];{let r,i;try{r=OE(e).resolvedOptions(),i=e}catch{const s=e.substring(0,n);r=OE(s).resolvedOptions(),i=s}const{numberingSystem:o,calendar:a}=r;return[i,o,a]}}function qMe(e,t,n){return(n||t)&&(e.includes("-u-")||(e+="-u"),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`)),e}function GMe(e){const t=[];for(let n=1;n<=12;n++){const r=jt.utc(2009,n,1);t.push(e(r))}return t}function YMe(e){const t=[];for(let n=1;n<=7;n++){const r=jt.utc(2016,11,13+n);t.push(e(r))}return t}function G3(e,t,n,r){const i=e.listingMode();return i==="error"?null:i==="en"?n(t):r(t)}function KMe(e){return e.numberingSystem&&e.numberingSystem!=="latn"?!1:e.numberingSystem==="latn"||!e.locale||e.locale.startsWith("en")||Eee(e.locale).numberingSystem==="latn"}class XMe{constructor(t,n,r){this.padTo=r.padTo||0,this.floor=r.floor||!1;const{padTo:i,floor:o,...a}=r;if(!n||Object.keys(a).length>0){const s={useGrouping:!1,...r};r.padTo>0&&(s.minimumIntegerDigits=r.padTo),this.inf=BMe(t,s)}}format(t){if(this.inf){const n=this.floor?Math.floor(t):t;return this.inf.format(n)}else{const n=this.floor?Math.floor(t):YE(t,3);return Ri(n,this.padTo)}}}class JMe{constructor(t,n,r){this.opts=r,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=t;else if(t.zone.type==="fixed"){const a=-1*(t.offset/60),s=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;t.offset!==0&&Ld.create(s).valid?(i=s,this.dt=t):(i="UTC",this.dt=t.offset===0?t:t.setZone("UTC").plus({minutes:t.offset}),this.originalZone=t.zone)}else t.zone.type==="system"?this.dt=t:t.zone.type==="iana"?(this.dt=t,i=t.zone.name):(i="UTC",this.dt=t.setZone("UTC").plus({minutes:t.offset}),this.originalZone=t.zone);const o={...this.opts};o.timeZone=o.timeZone||i,this.dtf=OE(n,o)}format(){return this.originalZone?this.formatToParts().map(({value:t})=>t).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const t=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?t.map(n=>{if(n.type==="timeZoneName"){const r=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...n,value:r}}else return n}):t}resolvedOptions(){return this.dtf.resolvedOptions()}}class QMe{constructor(t,n,r){this.opts={style:"long",...r},!n&&Yee()&&(this.rtf=WMe(t,r))}format(t,n){return this.rtf?this.rtf.format(t,n):_Re(n,t,this.opts.numeric,this.opts.style!=="long")}formatToParts(t,n){return this.rtf?this.rtf.formatToParts(t,n):[]}}const Nee={firstDay:1,minimalDays:4,weekend:[6,7]};class Gn{static fromOpts(t){return Gn.create(t.locale,t.numberingSystem,t.outputCalendar,t.weekSettings,t.defaultToEN)}static create(t,n,r,i,o=!1){const a=t||di.defaultLocale,s=a||(o?"en-US":VMe()),l=n||di.defaultNumberingSystem,c=r||di.defaultOutputCalendar,d=qE(i)||di.defaultWeekSettings;return new Gn(s,l,c,d,a)}static resetCache(){q3=null,PE.clear(),zE.clear(),DE.clear(),AE.clear(),FE.clear()}static fromObject({locale:t,numberingSystem:n,outputCalendar:r,weekSettings:i}={}){return Gn.create(t,n,r,i)}constructor(t,n,r,i,o){const[a,s,l]=ZMe(t);this.locale=a,this.numberingSystem=n||s||null,this.outputCalendar=r||l||null,this.weekSettings=i,this.intl=qMe(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=o,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=KMe(this)),this.fastNumbersCached}listingMode(){const t=this.isEnglish(),n=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return t&&n?"en":"intl"}clone(t){return!t||Object.getOwnPropertyNames(t).length===0?this:Gn.create(t.locale||this.specifiedLocale,t.numberingSystem||this.numberingSystem,t.outputCalendar||this.outputCalendar,qE(t.weekSettings)||this.weekSettings,t.defaultToEN||!1)}redefaultToEN(t={}){return this.clone({...t,defaultToEN:!0})}redefaultToSystem(t={}){return this.clone({...t,defaultToEN:!1})}months(t,n=!1){return G3(this,t,nte,()=>{const r=this.intl==="ja"||this.intl.startsWith("ja-");n&=!r;const i=n?{month:t,day:"numeric"}:{month:t},o=n?"format":"standalone";if(!this.monthsCache[o][t]){const a=r?s=>this.dtFormatter(s,i).format():s=>this.extract(s,i,"month");this.monthsCache[o][t]=GMe(a)}return this.monthsCache[o][t]})}weekdays(t,n=!1){return G3(this,t,ote,()=>{const r=n?{weekday:t,year:"numeric",month:"long",day:"numeric"}:{weekday:t},i=n?"format":"standalone";return this.weekdaysCache[i][t]||(this.weekdaysCache[i][t]=YMe(o=>this.extract(o,r,"weekday"))),this.weekdaysCache[i][t]})}meridiems(){return G3(this,void 0,()=>ate,()=>{if(!this.meridiemCache){const t={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[jt.utc(2016,11,13,9),jt.utc(2016,11,13,19)].map(n=>this.extract(n,t,"dayperiod"))}return this.meridiemCache})}eras(t){return G3(this,t,ste,()=>{const n={era:t};return this.eraCache[t]||(this.eraCache[t]=[jt.utc(-40,1,1),jt.utc(2017,1,1)].map(r=>this.extract(r,n,"era"))),this.eraCache[t]})}extract(t,n,r){const i=this.dtFormatter(t,n),o=i.formatToParts(),a=o.find(s=>s.type.toLowerCase()===r);return a?a.value:null}numberFormatter(t={}){return new XMe(this.intl,t.forceSimple||this.fastNumbers,t)}dtFormatter(t,n={}){return new JMe(t,this.intl,n)}relFormatter(t={}){return new QMe(this.intl,this.isEnglish(),t)}listFormatter(t={}){return UMe(this.intl,t)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||Eee(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:Kee()?HMe(this.locale):Nee}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(t){return this.locale===t.locale&&this.numberingSystem===t.numberingSystem&&this.outputCalendar===t.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}let UE=null;class ba extends pb{static get utcInstance(){return UE===null&&(UE=new ba(0)),UE}static instance(t){return t===0?ba.utcInstance:new ba(t)}static parseSpecifier(t){if(t){const n=t.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new ba(Q3(n[1],n[2]))}return null}constructor(t){super(),this.fixed=t}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${vb(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${vb(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(t,n){return vb(this.fixed,n)}get isUniversal(){return!0}offset(){return this.fixed}equals(t){return t.type==="fixed"&&t.fixed===this.fixed}get isValid(){return!0}}class eRe extends pb{constructor(t){super(),this.zoneName=t}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function Ff(e,t){if(Ot(e)||e===null)return t;if(e instanceof pb)return e;if(aRe(e)){const n=e.toLowerCase();return n==="default"?t:n==="local"||n==="system"?pC.instance:n==="utc"||n==="gmt"?ba.utcInstance:ba.parseSpecifier(n)||Ld.create(e)}else return Uf(e)?ba.instance(e):typeof e=="object"&&"offset"in e&&typeof e.offset=="function"?e:new eRe(e)}const BE={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},$ee={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},tRe=BE.hanidec.replace(/[\[|\]]/g,"").split("");function nRe(e){let t=parseInt(e,10);if(isNaN(t)){t="";for(let n=0;n=o&&r<=a&&(t+=r-o)}}return parseInt(t,10)}else return t}const WE=new Map;function rRe(){WE.clear()}function Xl({numberingSystem:e},t=""){const n=e||"latn";let r=WE.get(n);r===void 0&&(r=new Map,WE.set(n,r));let i=r.get(t);return i===void 0&&(i=new RegExp(`${BE[n]}${t}`),r.set(t,i)),i}let Mee=()=>Date.now(),Ree="system",Lee=null,Pee=null,Oee=null,zee=60,Dee,Aee=null;class di{static get now(){return Mee}static set now(t){Mee=t}static set defaultZone(t){Ree=t}static get defaultZone(){return Ff(Ree,pC.instance)}static get defaultLocale(){return Lee}static set defaultLocale(t){Lee=t}static get defaultNumberingSystem(){return Pee}static set defaultNumberingSystem(t){Pee=t}static get defaultOutputCalendar(){return Oee}static set defaultOutputCalendar(t){Oee=t}static get defaultWeekSettings(){return Aee}static set defaultWeekSettings(t){Aee=qE(t)}static get twoDigitCutoffYear(){return zee}static set twoDigitCutoffYear(t){zee=t%100}static get throwOnInvalid(){return Dee}static set throwOnInvalid(t){Dee=t}static resetCaches(){Gn.resetCache(),Ld.resetCache(),jt.resetCache(),rRe()}}class Jl{constructor(t,n){this.reason=t,this.explanation=n}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const Fee=[0,31,59,90,120,151,181,212,243,273,304,334],Uee=[0,31,60,91,121,152,182,213,244,274,305,335];function al(e,t){return new Jl("unit out of range",`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function VE(e,t,n){const r=new Date(Date.UTC(e,t-1,n));e<100&&e>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);const i=r.getUTCDay();return i===0?7:i}function Bee(e,t,n){return n+(mb(e)?Uee:Fee)[t-1]}function Wee(e,t){const n=mb(e)?Uee:Fee,r=n.findIndex(o=>ogb(r,t,n)?(c=r+1,l=1):c=r,{weekYear:c,weekNumber:l,weekday:s,...tk(e)}}function Vee(e,t=4,n=1){const{weekYear:r,weekNumber:i,weekday:o}=e,a=HE(VE(r,1,t),n),s=hg(r);let l=i*7+o-a-7+t,c;l<1?(c=r-1,l+=hg(c)):l>s?(c=r+1,l-=hg(r)):c=r;const{month:d,day:f}=Wee(c,l);return{year:c,month:d,day:f,...tk(e)}}function ZE(e){const{year:t,month:n,day:r}=e,i=Bee(t,n,r);return{year:t,ordinal:i,...tk(e)}}function Hee(e){const{year:t,ordinal:n}=e,{month:r,day:i}=Wee(t,n);return{year:t,month:r,day:i,...tk(e)}}function Zee(e,t){if(!Ot(e.localWeekday)||!Ot(e.localWeekNumber)||!Ot(e.localWeekYear)){if(!Ot(e.weekday)||!Ot(e.weekNumber)||!Ot(e.weekYear))throw new dg("Cannot mix locale-based week fields with ISO-based week fields");return Ot(e.localWeekday)||(e.weekday=e.localWeekday),Ot(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),Ot(e.localWeekYear)||(e.weekYear=e.localWeekYear),delete e.localWeekday,delete e.localWeekNumber,delete e.localWeekYear,{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function iRe(e,t=4,n=1){const r=K3(e.weekYear),i=sl(e.weekNumber,1,gb(e.weekYear,t,n)),o=sl(e.weekday,1,7);return r?i?o?!1:al("weekday",e.weekday):al("week",e.weekNumber):al("weekYear",e.weekYear)}function oRe(e){const t=K3(e.year),n=sl(e.ordinal,1,hg(e.year));return t?n?!1:al("ordinal",e.ordinal):al("year",e.year)}function qee(e){const t=K3(e.year),n=sl(e.month,1,12),r=sl(e.day,1,X3(e.year,e.month));return t?n?r?!1:al("day",e.day):al("month",e.month):al("year",e.year)}function Gee(e){const{hour:t,minute:n,second:r,millisecond:i}=e,o=sl(t,0,23)||t===24&&n===0&&r===0&&i===0,a=sl(n,0,59),s=sl(r,0,59),l=sl(i,0,999);return o?a?s?l?!1:al("millisecond",i):al("second",r):al("minute",n):al("hour",t)}function Ot(e){return typeof e>"u"}function Uf(e){return typeof e=="number"}function K3(e){return typeof e=="number"&&e%1===0}function aRe(e){return typeof e=="string"}function sRe(e){return Object.prototype.toString.call(e)==="[object Date]"}function Yee(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Kee(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function lRe(e){return Array.isArray(e)?e:[e]}function Xee(e,t,n){if(e.length!==0)return e.reduce((r,i)=>{const o=[t(i),i];return r&&n(r[0],o[0])===r[0]?r:o},null)[1]}function uRe(e,t){return t.reduce((n,r)=>(n[r]=e[r],n),{})}function fg(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function qE(e){if(e==null)return null;if(typeof e!="object")throw new Uo("Week settings must be an object");if(!sl(e.firstDay,1,7)||!sl(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some(t=>!sl(t,1,7)))throw new Uo("Invalid week settings");return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function sl(e,t,n){return K3(e)&&e>=t&&e<=n}function cRe(e,t){return e-t*Math.floor(e/t)}function Ri(e,t=2){const n=e<0;let r;return n?r="-"+(""+-e).padStart(t,"0"):r=(""+e).padStart(t,"0"),r}function Bf(e){if(!(Ot(e)||e===null||e===""))return parseInt(e,10)}function bp(e){if(!(Ot(e)||e===null||e===""))return parseFloat(e)}function GE(e){if(!(Ot(e)||e===null||e==="")){const t=parseFloat("0."+e)*1e3;return Math.floor(t)}}function YE(e,t,n="round"){const r=10**t;switch(n){case"expand":return e>0?Math.ceil(e*r)/r:Math.floor(e*r)/r;case"trunc":return Math.trunc(e*r)/r;case"round":return Math.round(e*r)/r;case"floor":return Math.floor(e*r)/r;case"ceil":return Math.ceil(e*r)/r;default:throw new RangeError(`Value rounding ${n} is out of range`)}}function mb(e){return e%4===0&&(e%100!==0||e%400===0)}function hg(e){return mb(e)?366:365}function X3(e,t){const n=cRe(t-1,12)+1,r=e+(t-n)/12;return n===2?mb(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function J3(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t),t.setUTCFullYear(e.year,e.month-1,e.day)),+t}function Jee(e,t,n){return-HE(VE(e,1,t),n)+t-1}function gb(e,t=4,n=1){const r=Jee(e,t,n),i=Jee(e+1,t,n);return(hg(e)-r+i)/7}function KE(e){return e>99?e:e>di.twoDigitCutoffYear?1900+e:2e3+e}function Qee(e,t,n,r=null){const i=new Date(e),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};r&&(o.timeZone=r);const a={timeZoneName:t,...o},s=new Intl.DateTimeFormat(n,a).formatToParts(i).find(l=>l.type.toLowerCase()==="timezonename");return s?s.value:null}function Q3(e,t){let n=parseInt(e,10);Number.isNaN(n)&&(n=0);const r=parseInt(t,10)||0,i=n<0||Object.is(n,-0)?-r:r;return n*60+i}function ete(e){const t=Number(e);if(typeof e=="boolean"||e===""||!Number.isFinite(t))throw new Uo(`Invalid unit value ${e}`);return t}function ek(e,t){const n={};for(const r in e)if(fg(e,r)){const i=e[r];if(i==null)continue;n[t(r)]=ete(i)}return n}function vb(e,t){const n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=e>=0?"+":"-";switch(t){case"short":return`${i}${Ri(n,2)}:${Ri(r,2)}`;case"narrow":return`${i}${n}${r>0?`:${r}`:""}`;case"techie":return`${i}${Ri(n,2)}${Ri(r,2)}`;default:throw new RangeError(`Value format ${t} is out of range for property format`)}}function tk(e){return uRe(e,["hour","minute","second","millisecond"])}const dRe=["January","February","March","April","May","June","July","August","September","October","November","December"],tte=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],fRe=["J","F","M","A","M","J","J","A","S","O","N","D"];function nte(e){switch(e){case"narrow":return[...fRe];case"short":return[...tte];case"long":return[...dRe];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const rte=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],ite=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],hRe=["M","T","W","T","F","S","S"];function ote(e){switch(e){case"narrow":return[...hRe];case"short":return[...ite];case"long":return[...rte];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const ate=["AM","PM"],pRe=["Before Christ","Anno Domini"],mRe=["BC","AD"],gRe=["B","A"];function ste(e){switch(e){case"narrow":return[...gRe];case"short":return[...mRe];case"long":return[...pRe];default:return null}}function vRe(e){return ate[e.hour<12?0:1]}function yRe(e,t){return ote(t)[e.weekday-1]}function bRe(e,t){return nte(t)[e.month-1]}function xRe(e,t){return ste(t)[e.year<0?0:1]}function _Re(e,t,n="always",r=!1){const i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},o=["hours","minutes","seconds"].indexOf(e)===-1;if(n==="auto"&&o){const f=e==="days";switch(t){case 1:return f?"tomorrow":`next ${i[e][0]}`;case-1:return f?"yesterday":`last ${i[e][0]}`;case 0:return f?"today":`this ${i[e][0]}`}}const a=Object.is(t,-0)||t<0,s=Math.abs(t),l=s===1,c=i[e],d=r?l?c[1]:c[2]||c[1]:l?i[e][0]:e;return a?`${s} ${d} ago`:`in ${s} ${d}`}function lte(e,t){let n="";for(const r of e)r.literal?n+=r.val:n+=t(r.val);return n}const wRe={D:Z3,DD:uee,DDD:cee,DDDD:dee,t:fee,tt:hee,ttt:pee,tttt:mee,T:gee,TT:vee,TTT:yee,TTTT:bee,f:xee,ff:wee,fff:See,ffff:jee,F:_ee,FF:kee,FFF:Cee,FFFF:Tee};class Yo{static create(t,n={}){return new Yo(t,n)}static parseFormat(t){let n=null,r="",i=!1;const o=[];for(let a=0;a0||i)&&o.push({literal:i||/^\s+$/.test(r),val:r===""?"'":r}),n=null,r="",i=!i):i||s===n?r+=s:(r.length>0&&o.push({literal:/^\s+$/.test(r),val:r}),r=s,n=s)}return r.length>0&&o.push({literal:i||/^\s+$/.test(r),val:r}),o}static macroTokenToFormatOpts(t){return wRe[t]}constructor(t,n){this.opts=n,this.loc=t,this.systemLoc=null}formatWithSystemDefault(t,n){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(t,{...this.opts,...n}).format()}dtFormatter(t,n={}){return this.loc.dtFormatter(t,{...this.opts,...n})}formatDateTime(t,n){return this.dtFormatter(t,n).format()}formatDateTimeParts(t,n){return this.dtFormatter(t,n).formatToParts()}formatInterval(t,n){return this.dtFormatter(t.start,n).dtf.formatRange(t.start.toJSDate(),t.end.toJSDate())}resolvedOptions(t,n){return this.dtFormatter(t,n).resolvedOptions()}num(t,n=0,r=void 0){if(this.opts.forceSimple)return Ri(t,n);const i={...this.opts};return n>0&&(i.padTo=n),r&&(i.signDisplay=r),this.loc.numberFormatter(i).format(t)}formatDateTimeFromString(t,n){const r=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",o=(v,x)=>this.loc.extract(t,v,x),a=v=>t.isOffsetFixed&&t.offset===0&&v.allowZ?"Z":t.isValid?t.zone.formatOffset(t.ts,v.format):"",s=()=>r?vRe(t):o({hour:"numeric",hourCycle:"h12"},"dayperiod"),l=(v,x)=>r?bRe(t,v):o(x?{month:v}:{month:v,day:"numeric"},"month"),c=(v,x)=>r?yRe(t,v):o(x?{weekday:v}:{weekday:v,month:"long",day:"numeric"},"weekday"),d=v=>{const x=Yo.macroTokenToFormatOpts(v);return x?this.formatWithSystemDefault(t,x):v},f=v=>r?xRe(t,v):o({era:v},"era"),p=v=>{switch(v){case"S":return this.num(t.millisecond);case"u":case"SSS":return this.num(t.millisecond,3);case"s":return this.num(t.second);case"ss":return this.num(t.second,2);case"uu":return this.num(Math.floor(t.millisecond/10),2);case"uuu":return this.num(Math.floor(t.millisecond/100));case"m":return this.num(t.minute);case"mm":return this.num(t.minute,2);case"h":return this.num(t.hour%12===0?12:t.hour%12);case"hh":return this.num(t.hour%12===0?12:t.hour%12,2);case"H":return this.num(t.hour);case"HH":return this.num(t.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return t.zone.offsetName(t.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return t.zone.offsetName(t.ts,{format:"long",locale:this.loc.locale});case"z":return t.zoneName;case"a":return s();case"d":return i?o({day:"numeric"},"day"):this.num(t.day);case"dd":return i?o({day:"2-digit"},"day"):this.num(t.day,2);case"c":return this.num(t.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(t.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?o({month:"numeric",day:"numeric"},"month"):this.num(t.month);case"LL":return i?o({month:"2-digit",day:"numeric"},"month"):this.num(t.month,2);case"LLL":return l("short",!0);case"LLLL":return l("long",!0);case"LLLLL":return l("narrow",!0);case"M":return i?o({month:"numeric"},"month"):this.num(t.month);case"MM":return i?o({month:"2-digit"},"month"):this.num(t.month,2);case"MMM":return l("short",!1);case"MMMM":return l("long",!1);case"MMMMM":return l("narrow",!1);case"y":return i?o({year:"numeric"},"year"):this.num(t.year);case"yy":return i?o({year:"2-digit"},"year"):this.num(t.year.toString().slice(-2),2);case"yyyy":return i?o({year:"numeric"},"year"):this.num(t.year,4);case"yyyyyy":return i?o({year:"numeric"},"year"):this.num(t.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return this.num(t.weekYear.toString().slice(-2),2);case"kkkk":return this.num(t.weekYear,4);case"W":return this.num(t.weekNumber);case"WW":return this.num(t.weekNumber,2);case"n":return this.num(t.localWeekNumber);case"nn":return this.num(t.localWeekNumber,2);case"ii":return this.num(t.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(t.localWeekYear,4);case"o":return this.num(t.ordinal);case"ooo":return this.num(t.ordinal,3);case"q":return this.num(t.quarter);case"qq":return this.num(t.quarter,2);case"X":return this.num(Math.floor(t.ts/1e3));case"x":return this.num(t.ts);default:return d(v)}};return lte(Yo.parseFormat(n),p)}formatDurationFromString(t,n){const r=this.opts.signMode==="negativeLargestOnly"?-1:1,i=d=>{switch(d[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},o=(d,f)=>p=>{const v=i(p);if(v){const x=f.isNegativeDuration&&v!==f.largestUnit?r:1;let y;return this.opts.signMode==="negativeLargestOnly"&&v!==f.largestUnit?y="never":this.opts.signMode==="all"?y="always":y="auto",this.num(d.get(v)*x,p.length,y)}else return p},a=Yo.parseFormat(n),s=a.reduce((d,{literal:f,val:p})=>f?d:d.concat(p),[]),l=t.shiftTo(...s.map(i).filter(d=>d)),c={isNegativeDuration:l<0,largestUnit:Object.keys(l.values)[0]};return lte(a,o(l,c))}}const ute=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function pg(...e){const t=e.reduce((n,r)=>n+r.source,"");return RegExp(`^${t}$`)}function mg(...e){return t=>e.reduce(([n,r,i],o)=>{const[a,s,l]=o(t,i);return[{...n,...a},s||r,l]},[{},null,1]).slice(0,2)}function gg(e,...t){if(e==null)return[null,null];for(const[n,r]of t){const i=n.exec(e);if(i)return r(i)}return[null,null]}function cte(...e){return(t,n)=>{const r={};let i;for(i=0;iv!==void 0&&(x||v&&d)?-v:v;return[{years:p(bp(n)),months:p(bp(r)),weeks:p(bp(i)),days:p(bp(o)),hours:p(bp(a)),minutes:p(bp(s)),seconds:p(bp(l),l==="-0"),milliseconds:p(GE(c),f)}]}const PRe={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function QE(e,t,n,r,i,o,a){const s={year:t.length===2?KE(Bf(t)):Bf(t),month:tte.indexOf(n)+1,day:Bf(r),hour:Bf(i),minute:Bf(o)};return a&&(s.second=Bf(a)),e&&(s.weekday=e.length>3?rte.indexOf(e)+1:ite.indexOf(e)+1),s}const ORe=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function zRe(e){const[,t,n,r,i,o,a,s,l,c,d,f]=e,p=QE(t,i,r,n,o,a,s);let v;return l?v=PRe[l]:c?v=0:v=Q3(d,f),[p,new ba(v)]}function DRe(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const ARe=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,FRe=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,URe=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function pte(e){const[,t,n,r,i,o,a,s]=e;return[QE(t,i,r,n,o,a,s),ba.utcInstance]}function BRe(e){const[,t,n,r,i,o,a,s]=e;return[QE(t,s,n,r,i,o,a),ba.utcInstance]}const WRe=pg(SRe,JE),VRe=pg(CRe,JE),HRe=pg(jRe,JE),ZRe=pg(fte),mte=mg($Re,yg,yb,bb),qRe=mg(TRe,yg,yb,bb),GRe=mg(IRe,yg,yb,bb),YRe=mg(yg,yb,bb);function KRe(e){return gg(e,[WRe,mte],[VRe,qRe],[HRe,GRe],[ZRe,YRe])}function XRe(e){return gg(DRe(e),[ORe,zRe])}function JRe(e){return gg(e,[ARe,pte],[FRe,pte],[URe,BRe])}function QRe(e){return gg(e,[RRe,LRe])}const eLe=mg(yg);function tLe(e){return gg(e,[MRe,eLe])}const nLe=pg(ERe,NRe),rLe=pg(hte),iLe=mg(yg,yb,bb);function oLe(e){return gg(e,[nLe,mte],[rLe,iLe])}const gte="Invalid Duration",vte={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},aLe={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...vte},ll=146097/400,bg=146097/4800,sLe={years:{quarters:4,months:12,weeks:ll/7,days:ll,hours:ll*24,minutes:ll*24*60,seconds:ll*24*60*60,milliseconds:ll*24*60*60*1e3},quarters:{months:3,weeks:ll/28,days:ll/4,hours:ll*24/4,minutes:ll*24*60/4,seconds:ll*24*60*60/4,milliseconds:ll*24*60*60*1e3/4},months:{weeks:bg/7,days:bg,hours:bg*24,minutes:bg*24*60,seconds:bg*24*60*60,milliseconds:bg*24*60*60*1e3},...vte},xp=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],lLe=xp.slice(0).reverse();function cd(e,t,n=!1){const r={values:n?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix};return new fn(r)}function yte(e,t){let n=t.milliseconds??0;for(const r of lLe.slice(1))t[r]&&(n+=t[r]*e[r].milliseconds);return n}function bte(e,t){const n=yte(e,t)<0?-1:1;xp.reduceRight((r,i)=>{if(Ot(t[i]))return r;if(r){const o=t[r]*n,a=e[i][r],s=Math.floor(o/a);t[i]+=s*n,t[r]-=s*a*n}return i},null),xp.reduce((r,i)=>{if(Ot(t[i]))return r;if(r){const o=t[r]%1;t[r]-=o,t[i]+=o*e[r][i]}return i},null)}function xte(e){const t={};for(const[n,r]of Object.entries(e))r!==0&&(t[n]=r);return t}class fn{constructor(t){const n=t.conversionAccuracy==="longterm"||!1;let r=n?sLe:aLe;t.matrix&&(r=t.matrix),this.values=t.values,this.loc=t.loc||Gn.create(),this.conversionAccuracy=n?"longterm":"casual",this.invalid=t.invalid||null,this.matrix=r,this.isLuxonDuration=!0}static fromMillis(t,n){return fn.fromObject({milliseconds:t},n)}static fromObject(t,n={}){if(t==null||typeof t!="object")throw new Uo(`Duration.fromObject: argument expected to be an object, got ${t===null?"null":typeof t}`);return new fn({values:ek(t,fn.normalizeUnit),loc:Gn.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(t){if(Uf(t))return fn.fromMillis(t);if(fn.isDuration(t))return t;if(typeof t=="object")return fn.fromObject(t);throw new Uo(`Unknown duration argument ${t} of type ${typeof t}`)}static fromISO(t,n){const[r]=QRe(t);return r?fn.fromObject(r,n):fn.invalid("unparsable",`the input "${t}" can't be parsed as ISO 8601`)}static fromISOTime(t,n){const[r]=tLe(t);return r?fn.fromObject(r,n):fn.invalid("unparsable",`the input "${t}" can't be parsed as ISO 8601`)}static invalid(t,n=null){if(!t)throw new Uo("need to specify a reason the Duration is invalid");const r=t instanceof Jl?t:new Jl(t,n);if(di.throwOnInvalid)throw new LMe(r);return new fn({invalid:r})}static normalizeUnit(t){const n={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[t&&t.toLowerCase()];if(!n)throw new lee(t);return n}static isDuration(t){return t&&t.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(t,n={}){const r={...n,floor:n.round!==!1&&n.floor!==!1};return this.isValid?Yo.create(this.loc,r).formatDurationFromString(this,t):gte}toHuman(t={}){if(!this.isValid)return gte;const n=t.showZeros!==!1,r=xp.map(i=>{const o=this.values[i];return Ot(o)||o===0&&!n?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...t,unit:i.slice(0,-1)}).format(o)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:t.listStyle||"narrow",...t}).format(r)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let t="P";return this.years!==0&&(t+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(t+=this.months+this.quarters*3+"M"),this.weeks!==0&&(t+=this.weeks+"W"),this.days!==0&&(t+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(t+="T"),this.hours!==0&&(t+=this.hours+"H"),this.minutes!==0&&(t+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(t+=YE(this.seconds+this.milliseconds/1e3,3)+"S"),t==="P"&&(t+="T0S"),t}toISOTime(t={}){if(!this.isValid)return null;const n=this.toMillis();return n<0||n>=864e5?null:(t={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...t,includeOffset:!1},jt.fromMillis(n,{zone:"UTC"}).toISOTime(t))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?yte(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t),r={};for(const i of xp)(fg(n.values,i)||fg(this.values,i))&&(r[i]=n.get(i)+this.get(i));return cd(this,{values:r},!0)}minus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t);return this.plus(n.negate())}mapUnits(t){if(!this.isValid)return this;const n={};for(const r of Object.keys(this.values))n[r]=ete(t(this.values[r],r));return cd(this,{values:n},!0)}get(t){return this[fn.normalizeUnit(t)]}set(t){if(!this.isValid)return this;const n={...this.values,...ek(t,fn.normalizeUnit)};return cd(this,{values:n})}reconfigure({locale:t,numberingSystem:n,conversionAccuracy:r,matrix:i}={}){const o={loc:this.loc.clone({locale:t,numberingSystem:n}),matrix:i,conversionAccuracy:r};return cd(this,o)}as(t){return this.isValid?this.shiftTo(t).get(t):NaN}normalize(){if(!this.isValid)return this;const t=this.toObject();return bte(this.matrix,t),cd(this,{values:t},!0)}rescale(){if(!this.isValid)return this;const t=xte(this.normalize().shiftToAll().toObject());return cd(this,{values:t},!0)}shiftTo(...t){if(!this.isValid)return this;if(t.length===0)return this;t=t.map(a=>fn.normalizeUnit(a));const n={},r={},i=this.toObject();let o;for(const a of xp)if(t.indexOf(a)>=0){o=a;let s=0;for(const c in r)s+=this.matrix[c][a]*r[c],r[c]=0;Uf(i[a])&&(s+=i[a]);const l=Math.trunc(s);n[a]=l,r[a]=(s*1e3-l*1e3)/1e3}else Uf(i[a])&&(r[a]=i[a]);for(const a in r)r[a]!==0&&(n[o]+=a===o?r[a]:r[a]/this.matrix[o][a]);return bte(this.matrix,n),cd(this,{values:n},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const t={};for(const n of Object.keys(this.values))t[n]=this.values[n]===0?0:-this.values[n];return cd(this,{values:t},!0)}removeZeros(){if(!this.isValid)return this;const t=xte(this.values);return cd(this,{values:t},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(t){if(!this.isValid||!t.isValid||!this.loc.equals(t.loc))return!1;function n(r,i){return r===void 0||r===0?i===void 0||i===0:r===i}for(const r of xp)if(!n(this.values[r],t.values[r]))return!1;return!0}}const xg="Invalid Interval";function uLe(e,t){return!e||!e.isValid?hi.invalid("missing or invalid start"):!t||!t.isValid?hi.invalid("missing or invalid end"):tt:!1}isBefore(t){return this.isValid?this.e<=t:!1}contains(t){return this.isValid?this.s<=t&&this.e>t:!1}set({start:t,end:n}={}){return this.isValid?hi.fromDateTimes(t||this.s,n||this.e):this}splitAt(...t){if(!this.isValid)return[];const n=t.map(wb).filter(a=>this.contains(a)).sort((a,s)=>a.toMillis()-s.toMillis()),r=[];let{s:i}=this,o=0;for(;i+this.e?this.e:a;r.push(hi.fromDateTimes(i,s)),i=s,o+=1}return r}splitBy(t){const n=fn.fromDurationLike(t);if(!this.isValid||!n.isValid||n.as("milliseconds")===0)return[];let{s:r}=this,i=1,o;const a=[];for(;rl*i));o=+s>+this.e?this.e:s,a.push(hi.fromDateTimes(r,o)),r=o,i+=1}return a}divideEqually(t){return this.isValid?this.splitBy(this.length()/t).slice(0,t):[]}overlaps(t){return this.e>t.s&&this.s=t.e:!1}equals(t){return!this.isValid||!t.isValid?!1:this.s.equals(t.s)&&this.e.equals(t.e)}intersection(t){if(!this.isValid)return this;const n=this.s>t.s?this.s:t.s,r=this.e=r?null:hi.fromDateTimes(n,r)}union(t){if(!this.isValid)return this;const n=this.st.e?this.e:t.e;return hi.fromDateTimes(n,r)}static merge(t){const[n,r]=t.sort((i,o)=>i.s-o.s).reduce(([i,o],a)=>o?o.overlaps(a)||o.abutsStart(a)?[i,o.union(a)]:[i.concat([o]),a]:[i,a],[[],null]);return r&&n.push(r),n}static xor(t){let n=null,r=0;const i=[],o=t.map(l=>[{time:l.s,type:"s"},{time:l.e,type:"e"}]),a=Array.prototype.concat(...o),s=a.sort((l,c)=>l.time-c.time);for(const l of s)r+=l.type==="s"?1:-1,r===1?n=l.time:(n&&+n!=+l.time&&i.push(hi.fromDateTimes(n,l.time)),n=null);return hi.merge(i)}difference(...t){return hi.xor([this].concat(t)).map(n=>this.intersection(n)).filter(n=>n&&!n.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:xg}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(t=Z3,n={}){return this.isValid?Yo.create(this.s.loc.clone(n),t).formatInterval(this):xg}toISO(t){return this.isValid?`${this.s.toISO(t)}/${this.e.toISO(t)}`:xg}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:xg}toISOTime(t){return this.isValid?`${this.s.toISOTime(t)}/${this.e.toISOTime(t)}`:xg}toFormat(t,{separator:n=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(t)}${n}${this.e.toFormat(t)}`:xg}toDuration(t,n){return this.isValid?this.e.diff(this.s,t,n):fn.invalid(this.invalidReason)}mapEndpoints(t){return hi.fromDateTimes(t(this.s),t(this.e))}}class nk{static hasDST(t=di.defaultZone){const n=jt.now().setZone(t).set({month:12});return!t.isUniversal&&n.offset!==n.set({month:6}).offset}static isValidIANAZone(t){return Ld.isValidZone(t)}static normalizeZone(t){return Ff(t,di.defaultZone)}static getStartOfWeek({locale:t=null,locObj:n=null}={}){return(n||Gn.create(t)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:t=null,locObj:n=null}={}){return(n||Gn.create(t)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:t=null,locObj:n=null}={}){return(n||Gn.create(t)).getWeekendDays().slice()}static months(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||Gn.create(n,r,o)).months(t)}static monthsFormat(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||Gn.create(n,r,o)).months(t,!0)}static weekdays(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null}={}){return(i||Gn.create(n,r,null)).weekdays(t)}static weekdaysFormat(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null}={}){return(i||Gn.create(n,r,null)).weekdays(t,!0)}static meridiems({locale:t=null}={}){return Gn.create(t).meridiems()}static eras(t="short",{locale:n=null}={}){return Gn.create(n,null,"gregory").eras(t)}static features(){return{relative:Yee(),localeWeek:Kee()}}}function _te(e,t){const n=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),r=n(t)-n(e);return Math.floor(fn.fromMillis(r).as("days"))}function cLe(e,t,n){const r=[["years",(l,c)=>c.year-l.year],["quarters",(l,c)=>c.quarter-l.quarter+(c.year-l.year)*4],["months",(l,c)=>c.month-l.month+(c.year-l.year)*12],["weeks",(l,c)=>{const d=_te(l,c);return(d-d%7)/7}],["days",_te]],i={},o=e;let a,s;for(const[l,c]of r)n.indexOf(l)>=0&&(a=l,i[l]=c(e,t),s=o.plus(i),s>t?(i[l]--,e=o.plus(i),e>t&&(s=e,i[l]--,e=o.plus(i))):e=s);return[e,i,s,a]}function dLe(e,t,n,r){let[i,o,a,s]=cLe(e,t,n);const l=t-i,c=n.filter(f=>["hours","minutes","seconds","milliseconds"].indexOf(f)>=0);c.length===0&&(a0?fn.fromMillis(l,r).shiftTo(...c).plus(d):d}const fLe="missing Intl.DateTimeFormat.formatToParts support";function Dn(e,t=n=>n){return{regex:e,deser:([n])=>t(nRe(n))}}const hLe="\xA0",wte=`[ ${hLe}]`,kte=new RegExp(wte,"g");function pLe(e){return e.replace(/\./g,"\\.?").replace(kte,wte)}function Ste(e){return e.replace(/\./g,"").replace(kte," ").toLowerCase()}function Ql(e,t){return e===null?null:{regex:RegExp(e.map(pLe).join("|")),deser:([n])=>e.findIndex(r=>Ste(n)===Ste(r))+t}}function Cte(e,t){return{regex:e,deser:([,n,r])=>Q3(n,r),groups:t}}function rk(e){return{regex:e,deser:([t])=>t}}function mLe(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function gLe(e,t){const n=Xl(t),r=Xl(t,"{2}"),i=Xl(t,"{3}"),o=Xl(t,"{4}"),a=Xl(t,"{6}"),s=Xl(t,"{1,2}"),l=Xl(t,"{1,3}"),c=Xl(t,"{1,6}"),d=Xl(t,"{1,9}"),f=Xl(t,"{2,4}"),p=Xl(t,"{4,6}"),v=y=>({regex:RegExp(mLe(y.val)),deser:([b])=>b,literal:!0}),x=(y=>{if(e.literal)return v(y);switch(y.val){case"G":return Ql(t.eras("short"),0);case"GG":return Ql(t.eras("long"),0);case"y":return Dn(c);case"yy":return Dn(f,KE);case"yyyy":return Dn(o);case"yyyyy":return Dn(p);case"yyyyyy":return Dn(a);case"M":return Dn(s);case"MM":return Dn(r);case"MMM":return Ql(t.months("short",!0),1);case"MMMM":return Ql(t.months("long",!0),1);case"L":return Dn(s);case"LL":return Dn(r);case"LLL":return Ql(t.months("short",!1),1);case"LLLL":return Ql(t.months("long",!1),1);case"d":return Dn(s);case"dd":return Dn(r);case"o":return Dn(l);case"ooo":return Dn(i);case"HH":return Dn(r);case"H":return Dn(s);case"hh":return Dn(r);case"h":return Dn(s);case"mm":return Dn(r);case"m":return Dn(s);case"q":return Dn(s);case"qq":return Dn(r);case"s":return Dn(s);case"ss":return Dn(r);case"S":return Dn(l);case"SSS":return Dn(i);case"u":return rk(d);case"uu":return rk(s);case"uuu":return Dn(n);case"a":return Ql(t.meridiems(),0);case"kkkk":return Dn(o);case"kk":return Dn(f,KE);case"W":return Dn(s);case"WW":return Dn(r);case"E":case"c":return Dn(n);case"EEE":return Ql(t.weekdays("short",!1),1);case"EEEE":return Ql(t.weekdays("long",!1),1);case"ccc":return Ql(t.weekdays("short",!0),1);case"cccc":return Ql(t.weekdays("long",!0),1);case"Z":case"ZZ":return Cte(new RegExp(`([+-]${s.source})(?::(${r.source}))?`),2);case"ZZZ":return Cte(new RegExp(`([+-]${s.source})(${r.source})?`),2);case"z":return rk(/[a-z_+-/]{1,256}?/i);case" ":return rk(/[^\S\n\r]/);default:return v(y)}})(e)||{invalidReason:fLe};return x.token=e,x}const vLe={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function yLe(e,t,n){const{type:r,value:i}=e;if(r==="literal"){const l=/^\s+$/.test(i);return{literal:!l,val:l?" ":i}}const o=t[r];let a=r;r==="hour"&&(t.hour12!=null?a=t.hour12?"hour12":"hour24":t.hourCycle!=null?t.hourCycle==="h11"||t.hourCycle==="h12"?a="hour12":a="hour24":a=n.hour12?"hour12":"hour24");let s=vLe[a];if(typeof s=="object"&&(s=s[o]),s)return{literal:!1,val:s}}function bLe(e){return[`^${e.map(t=>t.regex).reduce((t,n)=>`${t}(${n.source})`,"")}$`,e]}function xLe(e,t,n){const r=e.match(t);if(r){const i={};let o=1;for(const a in n)if(fg(n,a)){const s=n[a],l=s.groups?s.groups+1:1;!s.literal&&s.token&&(i[s.token.val[0]]=s.deser(r.slice(o,o+l))),o+=l}return[r,i]}else return[r,{}]}function _Le(e){const t=i=>{switch(i){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let n=null,r;return Ot(e.z)||(n=Ld.create(e.z)),Ot(e.Z)||(n||(n=new ba(e.Z)),r=e.Z),Ot(e.q)||(e.M=(e.q-1)*3+1),Ot(e.h)||(e.h<12&&e.a===1?e.h+=12:e.h===12&&e.a===0&&(e.h=0)),e.G===0&&e.y&&(e.y=-e.y),Ot(e.u)||(e.S=GE(e.u)),[Object.keys(e).reduce((i,o)=>{const a=t(o);return a&&(i[a]=e[o]),i},{}),n,r]}let eN=null;function wLe(){return eN||(eN=jt.fromMillis(1555555555555)),eN}function kLe(e,t){if(e.literal)return e;const n=Yo.macroTokenToFormatOpts(e.val),r=Ete(n,t);return r==null||r.includes(void 0)?e:r}function jte(e,t){return Array.prototype.concat(...e.map(n=>kLe(n,t)))}class Tte{constructor(t,n){if(this.locale=t,this.format=n,this.tokens=jte(Yo.parseFormat(n),t),this.units=this.tokens.map(r=>gLe(r,t)),this.disqualifyingUnit=this.units.find(r=>r.invalidReason),!this.disqualifyingUnit){const[r,i]=bLe(this.units);this.regex=RegExp(r,"i"),this.handlers=i}}explainFromTokens(t){if(this.isValid){const[n,r]=xLe(t,this.regex,this.handlers),[i,o,a]=r?_Le(r):[null,null,void 0];if(fg(r,"a")&&fg(r,"H"))throw new dg("Can't include meridiem when specifying 24-hour format");return{input:t,tokens:this.tokens,regex:this.regex,rawMatches:n,matches:r,result:i,zone:o,specificOffset:a}}else return{input:t,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function Ite(e,t,n){return new Tte(e,n).explainFromTokens(t)}function SLe(e,t,n){const{result:r,zone:i,specificOffset:o,invalidReason:a}=Ite(e,t,n);return[r,i,o,a]}function Ete(e,t){if(!e)return null;const n=Yo.create(t,e).dtFormatter(wLe()),r=n.formatToParts(),i=n.resolvedOptions();return r.map(o=>yLe(o,e,i))}const tN="Invalid DateTime",Nte=864e13;function xb(e){return new Jl("unsupported zone",`the zone "${e.name}" is not supported`)}function nN(e){return e.weekData===null&&(e.weekData=Y3(e.c)),e.weekData}function rN(e){return e.localWeekData===null&&(e.localWeekData=Y3(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function _p(e,t){const n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new jt({...n,...t,old:n})}function $te(e,t,n){let r=e-t*60*1e3;const i=n.offset(r);if(t===i)return[r,t];r-=(i-t)*60*1e3;const o=n.offset(r);return i===o?[r,i]:[e-Math.min(i,o)*60*1e3,Math.max(i,o)]}function ik(e,t){e+=t*60*1e3;const n=new Date(e);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function ok(e,t,n){return $te(J3(e),t,n)}function Mte(e,t){const n=e.o,r=e.c.year+Math.trunc(t.years),i=e.c.month+Math.trunc(t.months)+Math.trunc(t.quarters)*3,o={...e.c,year:r,month:i,day:Math.min(e.c.day,X3(r,i))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},a=fn.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),s=J3(o);let[l,c]=$te(s,n,e.zone);return a!==0&&(l+=a,c=e.zone.offset(l)),{ts:l,o:c}}function _g(e,t,n,r,i,o){const{setZone:a,zone:s}=n;if(e&&Object.keys(e).length!==0||t){const l=t||s,c=jt.fromObject(e,{...n,zone:l,specificOffset:o});return a?c:c.setZone(s)}else return jt.invalid(new Jl("unparsable",`the input "${i}" can't be parsed as ${r}`))}function ak(e,t,n=!0){return e.isValid?Yo.create(Gn.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function iN(e,t,n){const r=e.c.year>9999||e.c.year<0;let i="";if(r&&e.c.year>=0&&(i+="+"),i+=Ri(e.c.year,r?6:4),n==="year")return i;if(t){if(i+="-",i+=Ri(e.c.month),n==="month")return i;i+="-"}else if(i+=Ri(e.c.month),n==="month")return i;return i+=Ri(e.c.day),i}function Rte(e,t,n,r,i,o,a){let s=!n||e.c.millisecond!==0||e.c.second!==0,l="";switch(a){case"day":case"month":case"year":break;default:if(l+=Ri(e.c.hour),a==="hour")break;if(t){if(l+=":",l+=Ri(e.c.minute),a==="minute")break;s&&(l+=":",l+=Ri(e.c.second))}else{if(l+=Ri(e.c.minute),a==="minute")break;s&&(l+=Ri(e.c.second))}if(a==="second")break;s&&(!r||e.c.millisecond!==0)&&(l+=".",l+=Ri(e.c.millisecond,3))}return i&&(e.isOffsetFixed&&e.offset===0&&!o?l+="Z":e.o<0?(l+="-",l+=Ri(Math.trunc(-e.o/60)),l+=":",l+=Ri(Math.trunc(-e.o%60))):(l+="+",l+=Ri(Math.trunc(e.o/60)),l+=":",l+=Ri(Math.trunc(e.o%60)))),o&&(l+="["+e.zone.ianaName+"]"),l}const Lte={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},CLe={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},jLe={ordinal:1,hour:0,minute:0,second:0,millisecond:0},sk=["year","month","day","hour","minute","second","millisecond"],TLe=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],ILe=["year","ordinal","hour","minute","second","millisecond"];function lk(e){const t={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[e.toLowerCase()];if(!t)throw new lee(e);return t}function Pte(e){switch(e.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return lk(e)}}function ELe(e){if(_b===void 0&&(_b=di.now()),e.type!=="iana")return e.offset(_b);const t=e.name;let n=oN.get(t);return n===void 0&&(n=e.offset(_b),oN.set(t,n)),n}function Ote(e,t){const n=Ff(t.zone,di.defaultZone);if(!n.isValid)return jt.invalid(xb(n));const r=Gn.fromObject(t);let i,o;if(Ot(e.year))i=di.now();else{for(const l of sk)Ot(e[l])&&(e[l]=Lte[l]);const a=qee(e)||Gee(e);if(a)return jt.invalid(a);const s=ELe(n);[i,o]=ok(e,s,n)}return new jt({ts:i,zone:n,loc:r,o})}function zte(e,t,n){const r=Ot(n.round)?!0:n.round,i=Ot(n.rounding)?"trunc":n.rounding,o=(s,l)=>(s=YE(s,r||n.calendary?0:2,n.calendary?"round":i),t.loc.clone(n).relFormatter(n).format(s,l)),a=s=>n.calendary?t.hasSame(e,s)?0:t.startOf(s).diff(e.startOf(s),s).get(s):t.diff(e,s).get(s);if(n.unit)return o(a(n.unit),n.unit);for(const s of n.units){const l=a(s);if(Math.abs(l)>=1)return o(l,s)}return o(e>t?-0:0,n.units[n.units.length-1])}function Dte(e){let t={},n;return e.length>0&&typeof e[e.length-1]=="object"?(t=e[e.length-1],n=Array.from(e).slice(0,e.length-1)):n=Array.from(e),[t,n]}let _b;const oN=new Map;class jt{constructor(t){const n=t.zone||di.defaultZone;let r=t.invalid||(Number.isNaN(t.ts)?new Jl("invalid input"):null)||(n.isValid?null:xb(n));this.ts=Ot(t.ts)?di.now():t.ts;let i=null,o=null;if(!r)if(t.old&&t.old.ts===this.ts&&t.old.zone.equals(n))[i,o]=[t.old.c,t.old.o];else{const a=Uf(t.o)&&!t.old?t.o:n.offset(this.ts);i=ik(this.ts,a),r=Number.isNaN(i.year)?new Jl("invalid input"):null,i=r?null:i,o=r?null:a}this._zone=n,this.loc=t.loc||Gn.create(),this.invalid=r,this.weekData=null,this.localWeekData=null,this.c=i,this.o=o,this.isLuxonDateTime=!0}static now(){return new jt({})}static local(){const[t,n]=Dte(arguments),[r,i,o,a,s,l,c]=n;return Ote({year:r,month:i,day:o,hour:a,minute:s,second:l,millisecond:c},t)}static utc(){const[t,n]=Dte(arguments),[r,i,o,a,s,l,c]=n;return t.zone=ba.utcInstance,Ote({year:r,month:i,day:o,hour:a,minute:s,second:l,millisecond:c},t)}static fromJSDate(t,n={}){const r=sRe(t)?t.valueOf():NaN;if(Number.isNaN(r))return jt.invalid("invalid input");const i=Ff(n.zone,di.defaultZone);return i.isValid?new jt({ts:r,zone:i,loc:Gn.fromObject(n)}):jt.invalid(xb(i))}static fromMillis(t,n={}){if(Uf(t))return t<-Nte||t>Nte?jt.invalid("Timestamp out of range"):new jt({ts:t,zone:Ff(n.zone,di.defaultZone),loc:Gn.fromObject(n)});throw new Uo(`fromMillis requires a numerical input, but received a ${typeof t} with value ${t}`)}static fromSeconds(t,n={}){if(Uf(t))return new jt({ts:t*1e3,zone:Ff(n.zone,di.defaultZone),loc:Gn.fromObject(n)});throw new Uo("fromSeconds requires a numerical input")}static fromObject(t,n={}){t=t||{};const r=Ff(n.zone,di.defaultZone);if(!r.isValid)return jt.invalid(xb(r));const i=Gn.fromObject(n),o=ek(t,Pte),{minDaysInFirstWeek:a,startOfWeek:s}=Zee(o,i),l=di.now(),c=Ot(n.specificOffset)?r.offset(l):n.specificOffset,d=!Ot(o.ordinal),f=!Ot(o.year),p=!Ot(o.month)||!Ot(o.day),v=f||p,x=o.weekYear||o.weekNumber;if((v||d)&&x)throw new dg("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(p&&d)throw new dg("Can't mix ordinal dates with month/day");const y=x||o.weekday&&!v;let b,w,_=ik(l,c);y?(b=TLe,w=CLe,_=Y3(_,a,s)):d?(b=ILe,w=jLe,_=ZE(_)):(b=sk,w=Lte);let S=!1;for(const M of b){const O=o[M];Ot(O)?S?o[M]=w[M]:o[M]=_[M]:S=!0}const C=y?iRe(o,a,s):d?oRe(o):qee(o),j=C||Gee(o);if(j)return jt.invalid(j);const T=y?Vee(o,a,s):d?Hee(o):o,[E,$]=ok(T,c,r),D=new jt({ts:E,zone:r,o:$,loc:i});return o.weekday&&v&&t.weekday!==D.weekday?jt.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${D.toISO()}`):D.isValid?D:jt.invalid(D.invalid)}static fromISO(t,n={}){const[r,i]=KRe(t);return _g(r,i,n,"ISO 8601",t)}static fromRFC2822(t,n={}){const[r,i]=XRe(t);return _g(r,i,n,"RFC 2822",t)}static fromHTTP(t,n={}){const[r,i]=JRe(t);return _g(r,i,n,"HTTP",n)}static fromFormat(t,n,r={}){if(Ot(t)||Ot(n))throw new Uo("fromFormat requires an input string and a format");const{locale:i=null,numberingSystem:o=null}=r,a=Gn.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0}),[s,l,c,d]=SLe(a,t,n);return d?jt.invalid(d):_g(s,l,r,`format ${n}`,t,c)}static fromString(t,n,r={}){return jt.fromFormat(t,n,r)}static fromSQL(t,n={}){const[r,i]=oLe(t);return _g(r,i,n,"SQL",t)}static invalid(t,n=null){if(!t)throw new Uo("need to specify a reason the DateTime is invalid");const r=t instanceof Jl?t:new Jl(t,n);if(di.throwOnInvalid)throw new MMe(r);return new jt({invalid:r})}static isDateTime(t){return t&&t.isLuxonDateTime||!1}static parseFormatForOpts(t,n={}){const r=Ete(t,Gn.fromObject(n));return r?r.map(i=>i?i.val:null).join(""):null}static expandFormat(t,n={}){return jte(Yo.parseFormat(t),Gn.fromObject(n)).map(r=>r.val).join("")}static resetCache(){_b=void 0,oN.clear()}get(t){return this[t]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?nN(this).weekYear:NaN}get weekNumber(){return this.isValid?nN(this).weekNumber:NaN}get weekday(){return this.isValid?nN(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?rN(this).weekday:NaN}get localWeekNumber(){return this.isValid?rN(this).weekNumber:NaN}get localWeekYear(){return this.isValid?rN(this).weekYear:NaN}get ordinal(){return this.isValid?ZE(this.c).ordinal:NaN}get monthShort(){return this.isValid?nk.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?nk.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?nk.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?nk.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const t=864e5,n=6e4,r=J3(this.c),i=this.zone.offset(r-t),o=this.zone.offset(r+t),a=this.zone.offset(r-i*n),s=this.zone.offset(r-o*n);if(a===s)return[this];const l=r-a*n,c=r-s*n,d=ik(l,a),f=ik(c,s);return d.hour===f.hour&&d.minute===f.minute&&d.second===f.second&&d.millisecond===f.millisecond?[_p(this,{ts:l}),_p(this,{ts:c})]:[this]}get isInLeapYear(){return mb(this.year)}get daysInMonth(){return X3(this.year,this.month)}get daysInYear(){return this.isValid?hg(this.year):NaN}get weeksInWeekYear(){return this.isValid?gb(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?gb(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(t={}){const{locale:n,numberingSystem:r,calendar:i}=Yo.create(this.loc.clone(t),t).resolvedOptions(this);return{locale:n,numberingSystem:r,outputCalendar:i}}toUTC(t=0,n={}){return this.setZone(ba.instance(t),n)}toLocal(){return this.setZone(di.defaultZone)}setZone(t,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(t=Ff(t,di.defaultZone),t.equals(this.zone))return this;if(t.isValid){let i=this.ts;if(n||r){const o=t.offset(this.ts),a=this.toObject();[i]=ok(a,o,t)}return _p(this,{ts:i,zone:t})}else return jt.invalid(xb(t))}reconfigure({locale:t,numberingSystem:n,outputCalendar:r}={}){const i=this.loc.clone({locale:t,numberingSystem:n,outputCalendar:r});return _p(this,{loc:i})}setLocale(t){return this.reconfigure({locale:t})}set(t){if(!this.isValid)return this;const n=ek(t,Pte),{minDaysInFirstWeek:r,startOfWeek:i}=Zee(n,this.loc),o=!Ot(n.weekYear)||!Ot(n.weekNumber)||!Ot(n.weekday),a=!Ot(n.ordinal),s=!Ot(n.year),l=!Ot(n.month)||!Ot(n.day),c=s||l,d=n.weekYear||n.weekNumber;if((c||a)&&d)throw new dg("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&a)throw new dg("Can't mix ordinal dates with month/day");let f;o?f=Vee({...Y3(this.c,r,i),...n},r,i):Ot(n.ordinal)?(f={...this.toObject(),...n},Ot(n.day)&&(f.day=Math.min(X3(f.year,f.month),f.day))):f=Hee({...ZE(this.c),...n});const[p,v]=ok(f,this.o,this.zone);return _p(this,{ts:p,o:v})}plus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t);return _p(this,Mte(this,n))}minus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t).negate();return _p(this,Mte(this,n))}startOf(t,{useLocaleWeeks:n=!1}={}){if(!this.isValid)return this;const r={},i=fn.normalizeUnit(t);switch(i){case"years":r.month=1;case"quarters":case"months":r.day=1;case"weeks":case"days":r.hour=0;case"hours":r.minute=0;case"minutes":r.second=0;case"seconds":r.millisecond=0;break}if(i==="weeks")if(n){const o=this.loc.getStartOfWeek(),{weekday:a}=this;a=3&&(l+="T"),l+=Rte(this,s,n,r,i,o,a),l}toISODate({format:t="extended",precision:n="day"}={}){return this.isValid?iN(this,t==="extended",lk(n)):null}toISOWeekDate(){return ak(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:t=!1,suppressSeconds:n=!1,includeOffset:r=!0,includePrefix:i=!1,extendedZone:o=!1,format:a="extended",precision:s="milliseconds"}={}){return this.isValid?(s=lk(s),(i&&sk.indexOf(s)>=3?"T":"")+Rte(this,a==="extended",n,t,r,o,s)):null}toRFC2822(){return ak(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return ak(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?iN(this,!0):null}toSQLTime({includeOffset:t=!0,includeZone:n=!1,includeOffsetSpace:r=!0}={}){let i="HH:mm:ss.SSS";return(n||t)&&(r&&(i+=" "),n?i+="z":t&&(i+="ZZ")),ak(this,i,!0)}toSQL(t={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(t)}`:null}toString(){return this.isValid?this.toISO():tN}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(t={}){if(!this.isValid)return{};const n={...this.c};return t.includeConfig&&(n.outputCalendar=this.outputCalendar,n.numberingSystem=this.loc.numberingSystem,n.locale=this.loc.locale),n}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(t,n="milliseconds",r={}){if(!this.isValid||!t.isValid)return fn.invalid("created by diffing an invalid DateTime");const i={locale:this.locale,numberingSystem:this.numberingSystem,...r},o=lRe(n).map(fn.normalizeUnit),a=t.valueOf()>this.valueOf(),s=a?this:t,l=a?t:this,c=dLe(s,l,o,i);return a?c.negate():c}diffNow(t="milliseconds",n={}){return this.diff(jt.now(),t,n)}until(t){return this.isValid?hi.fromDateTimes(this,t):this}hasSame(t,n,r){if(!this.isValid)return!1;const i=t.valueOf(),o=this.setZone(t.zone,{keepLocalTime:!0});return o.startOf(n,r)<=i&&i<=o.endOf(n,r)}equals(t){return this.isValid&&t.isValid&&this.valueOf()===t.valueOf()&&this.zone.equals(t.zone)&&this.loc.equals(t.loc)}toRelative(t={}){if(!this.isValid)return null;const n=t.base||jt.fromObject({},{zone:this.zone}),r=t.padding?thisn.valueOf(),Math.min)}static max(...t){if(!t.every(jt.isDateTime))throw new Uo("max requires all arguments be DateTimes");return Xee(t,n=>n.valueOf(),Math.max)}static fromFormatExplain(t,n,r={}){const{locale:i=null,numberingSystem:o=null}=r,a=Gn.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});return Ite(a,t,n)}static fromStringExplain(t,n,r={}){return jt.fromFormatExplain(t,n,r)}static buildFormatParser(t,n={}){const{locale:r=null,numberingSystem:i=null}=n,o=Gn.fromOpts({locale:r,numberingSystem:i,defaultToEN:!0});return new Tte(o,t)}static fromFormatParser(t,n,r={}){if(Ot(t)||Ot(n))throw new Uo("fromFormatParser requires an input string and a format parser");const{locale:i=null,numberingSystem:o=null}=r,a=Gn.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});if(!a.equals(n.locale))throw new Uo(`fromFormatParser called with a locale of ${a}, but the format parser was created for ${n.locale}`);const{result:s,zone:l,specificOffset:c,invalidReason:d}=n.explainFromTokens(t);return d?jt.invalid(d):_g(s,l,r,`format ${n.format}`,t,c)}static get DATE_SHORT(){return Z3}static get DATE_MED(){return uee}static get DATE_MED_WITH_WEEKDAY(){return PMe}static get DATE_FULL(){return cee}static get DATE_HUGE(){return dee}static get TIME_SIMPLE(){return fee}static get TIME_WITH_SECONDS(){return hee}static get TIME_WITH_SHORT_OFFSET(){return pee}static get TIME_WITH_LONG_OFFSET(){return mee}static get TIME_24_SIMPLE(){return gee}static get TIME_24_WITH_SECONDS(){return vee}static get TIME_24_WITH_SHORT_OFFSET(){return yee}static get TIME_24_WITH_LONG_OFFSET(){return bee}static get DATETIME_SHORT(){return xee}static get DATETIME_SHORT_WITH_SECONDS(){return _ee}static get DATETIME_MED(){return wee}static get DATETIME_MED_WITH_SECONDS(){return kee}static get DATETIME_MED_WITH_WEEKDAY(){return OMe}static get DATETIME_FULL(){return See}static get DATETIME_FULL_WITH_SECONDS(){return Cee}static get DATETIME_HUGE(){return jee}static get DATETIME_HUGE_WITH_SECONDS(){return Tee}}function wb(e){if(jt.isDateTime(e))return e;if(e&&e.valueOf&&Uf(e.valueOf()))return jt.fromJSDate(e);if(e&&typeof e=="object")return jt.fromObject(e);throw new Uo(`Unknown datetime argument: ${e}, of type ${typeof e}`)}const $n=4,aN=5,Ate=3,Bo=4,Fte=9,dd=1e9,sN=1e6,Ute=6e7,lN={0:"Success",1:"Account In Use",2:"Account Loaded Twice",3:"Account Not Found",4:"Program Account Not Found",5:"Insufficient Funds For Fee",6:"Invalid Account For Fee",7:"Already Processed",8:"Blockhash Not Found",9:"Instruction Error",10:"Call Chain Too Deep",11:"Missing Signature For Fee",12:"Invalid Account Index",13:"Signature Failure",14:"Invalid Program For Execution",15:"Sanitize Failure",16:"Cluster Maintenance",17:"Account Borrow Outstanding",18:"Would Exceed Max Block Cost Limit",19:"Unsupported Version",20:"Invalid Writable Account",21:"Would Exceed Max Account Cost Limit",22:"Would Exceed Account Data Block Limit",23:"Too Many Account Locks",24:"Address Lookup Table Not Found",25:"Invalid Address Lookup Table Owner",26:"Invalid Address Lookup Table Data",27:"Invalid Address Lookup Table Index",28:"Invalid Rent Paying Account",29:"Would Exceed Max Vote Cost Limit",30:"Would Exceed Account Data Total Limit",31:"Duplicate Instruction",32:"Insufficient Funds For Rent",33:"Max Loaded Accounts Data Size Exceeded",34:"Invalid Loaded Accounts Data Size Limit",35:"Resanitization Needed",36:"Program Execution Temporarily Restricted",37:"Unbalanced Transaction",38:"Program Cache Hit Max Limit",39:"Commit Cancelled",40:"Bundle Peer",50:"Blockhash Nonce Already Advanced",51:"Blockhash Advanced Failed",52:"Blockhash Wrong Nonce"},uk="\xA0",kb=5,Bte=30,Sb=48,uN=13,cN=21,NLe=28,Wf=5,dN=21,ck=8,fN=ck,hN=122,Wte=dN+ck,$Le=Wte+hN+Wf,Vte="(max-width: 768px)",Hte="564px",Vf=110,Zte="1920px";var za=(e=>(e.AgaveJito="Agave Jito",e.Frankendancer="Frankendancer",e.Agave="Agave",e.AgavePaladin="Agave Paladin",e.Firedancer="Firedancer",e.AgaveBam="Agave BAM",e.Sig="Sig",e.AgaveRakurai="Agave Rakurai",e.FiredancerHarmonic="Firedancer Harmonic",e.AgaveHarmonic="Agave Harmonic",e.FrankendancerHarmonic="Frankendancer Harmonic",e))(za||{});const qte={1:"Agave Jito",2:"Frankendancer",3:"Agave",4:"Agave Paladin",5:"Firedancer",6:"Agave BAM",7:"Sig",8:"Agave Rakurai",9:"Firedancer Harmonic",10:"Agave Harmonic",11:"Frankendancer Harmonic"};function MLe(){if(typeof window>"u")return!1;const e=navigator.userAgent.toLowerCase();return/iphone|android|windows phone|ipad|android|tablet/.test(e)||"ontouchstart"in window&&!!(matchMedia!=null&&matchMedia("(hover: none)").matches)}const RLe=MLe(),fd="#E5484D",pN="#67B873",Gte="#C567EA",Yte="#2A7EDF",dk="#1CE7C2",LLe="#CBCBCB",Kte="#8A8A8A",mN="#B2BCC9",wg="#67696A",gN="#8E909D",Xte="#B4B4B4",Jte="#949494",PLe="rgba(250, 250, 250, 0.12)",OLe="rgba(250, 250, 250, 0.05)",zLe="#24262B",DLe="#F7F8F8",ALe="var(--gray-1, #111)",FLe="var(--gray-12, #eee)",ULe="var(--gray-10, #7b7b7b)",BLe="#333333",WLe="#F7F7F7",Qte=Jte,hd="#557AE0",Hf=pN,VLe="#9982f0",HLe="#303134",ZLe="#37a4bc",qLe="#00205F",GLe="#010102",YLe="#03030C",KLe="#A7A7A7",XLe="#121213",JLe=dk,QLe="#3BA158",ePe="#030312",tPe="#020C12",nPe="#020912",rPe="#060E0E",iPe="#120602",oPe="#252D2C",aPe="#175E51",sPe="#2D2B25",lPe="#6A510C",uPe="#E6B11E",cPe="#2D2525",dPe="#5E1717",fPe="#CE3636",hPe="#A2A2A2",pPe="#666",mPe="#C8B3B3",gPe="#686868",vPe="#171765ff",yPe="linear-gradient(270deg, #1414B8 0%, #090952 100%)",bPe="#8F8FED",xPe="#0E0E8E",_Pe="#0C171D",wPe="linear-gradient(270deg, #1481B8 0%, #093952 100%)",kPe="#47B4EB",SPe="#0F3F57",CPe="#041225",jPe="linear-gradient(270deg, #0E448B 0%, #090E15 100%)",TPe="#83B3F2",IPe="#0E448B",EPe="#091515",NPe=`linear-gradient(270deg, ${dk} 0%, #0C6B5A 100%)`,$Pe="#2EC9C9",MPe="#0C6B5A",RPe="#231511",LPe="linear-gradient(270deg, #8B2B0E 0%, #150C09 100%)",PPe="#F29D83",OPe="#250C04",zPe="rgba(16, 129, 108, 0.53)",DPe="#ffffff1a",APe="rgba(250, 250, 250, 0.12)",FPe="#cac4c4",UPe="#231f1f",BPe="var(--gray-11)",WPe="var(--gray-10)",VPe="var(--gray-9)",HPe="var(--gray-7)",ene="#3972C9",tne="#74AFEA",nne="#0F1313",rne="#118B74",ine="#871616",one="#163454",ane="#89603E",ZPe="#EF5F00",qPe="#F76B15",GPe="#0D9B8A",YPe="#53B9AB",KPe="#0588F0",XPe="#0090FF",sne=dk,lne="#E7B81C",une="#1C96E7",cne="#E7601C",dne="#9D1CE7",fne="#E71C88",hne="#898989",JPe="#FF7878",QPe="#FF9D0A",eOe="#FFC267",pne="#141720",fk="var(--gray-11)",hk="var(--gray-9)",mne="#56BF8C",gne="#4A7661",vne="#C27B45",yne="#714C32",bne="#DC6869",xne="#7A3B40",Yu="#BDF3FF",pk="#6F77C0",_ne="#363A63",vN="#20788C",tOe="#b1b1b1",wne="#7b837c",kne="#eee",Sne="#006851",Cne="#19307C",jne="#743F4D",nOe="#919191",rOe="#E5B319",iOe="#E55A19",oOe="#E5484D",yN="#55BA83",bN="#D94343",Tne="#232A38",aOe="#676767",sOe="#E13131",lOe="#5F6FA9",uOe="#A2A2A2",cOe="#DB8F38",dOe="#CACACA",xN="#858585",_N="#312D42",wN="#A66759",kN="#597FA6",SN="#A67F59",CN="#366357",jN="#B2904D",TN="#2F3842",IN="#B23232",EN="#82738C",fOe="#FAFAFA",hOe="#3CB4FF",pOe="#142D53",mOe="#FF5353",Ine="#525463",Ene="#23639E",Nne="#5C5555",$ne="#452909",Zf="#C6C6C6",NN="#183A5A",Mne="#10273D",gOe="#7CE198",vOe="#A4A3A3",yOe="#1B659933",sr="#777b84",$N="#2C3235",pd="#D19DFF",kg="#4CCCE6",qf="#1FD8A4",bOe="#6A6A6E",Rne=wg,Lne="rgba(250, 250, 250, 0.05)",MN="#30A46C",RN="#E5484D",mk="#FF8DCC",wp="#9EB1FF",xOe="#292929",_Oe="#9e9e9e",wOe="#1d6fba",kOe="#84858a",LN="rgba(0, 0, 0, .5)",Pne="rgba(125, 94, 84, .5)",One="#A18072",PN="#6C4E62",zne="rgba(158, 108, 0, .5)",Dne="#836A21",Ane="rgba(96, 100, 108, .5)",Fne="#B5B2BC",Une="rgba(17, 50, 100, .5)",Bne="#0090FF",SOe="var(--gray-11)",COe="var(--gray-10)",jOe="#41B9D3",TOe="#C46BF0",IOe="#6BEFD7",EOe="#C6F06A",NOe="#71EF9B",$Oe="#6AC4F0",MOe="#DDD",ROe="#8FB6FC",LOe="linear-gradient(83.85deg, #024eff 0.22%, #3ce844 102.21%)",POe="#F5F2EC",ON="#AFB2C2",OOe="rgba(178, 178, 178, 0.12)",zOe="#424242",DOe="rgba(114, 114, 114, 0.15)",AOe="#646464",zN="#676767",FOe="var(--gray-11)",UOe="var(--gray-10)",BOe="#cbcbcb",WOe="#1190CF",VOe="#6CB1D3",HOe="#967DC8",gk="#871616",DN="#1d863b",AN="#1d6286",Wne="#1CE7C2",Vne="#076B59",ZOe="#313131",Hne="#666666",Zne=AN,qOe="#19457A",GOe="#FFF",YOe="var(--gray-10)",qne="var(--teal-9)",Gne="var(--cyan-9)",Yne="var(--red-8)",Kne="var(--sky-8)",Xne="var(--green-9)",Jne="var(--indigo-10)",KOe="var(--blue-9)",XOe="#15181e",JOe="#9aabc3",QOe="#250f0f",eze="#283551",tze="#3b0c0c",nze="#e3efff",rze="#484D53B2",ize="var(--gray-11)",oze="var(--gray-10)",aze="var(--gray-12)",sze="#70B8FF",lze="#070A13",uze="#070B14 ",cze="rgba(42, 126, 223, 0.5)",dze="rgba(125, 125, 125, 0.50)",fze="#2A7EDF",hze="#070a13",pze="#0D0D0D",mze="#250f0f",gze="#002163",vze="#3b0c0c",yze="#848484",bze="#A0A0A0",xze="#ccc",_ze="#878787",wze="rgba(191, 135, 253, 0.13)",kze="#283551",vk="#0000001F",Sze=Object.freeze(Object.defineProperty({__proto__:null,appTeal:dk,averageChangedColor:vne,averageUnchangedColor:yne,badChangedColor:bne,badUnchangedColor:xne,bootProgressCatchupBackgroundColor:rPe,bootProgressFullSnapshotBackgroundColor:tPe,bootProgressGossipBackgroundColor:ePe,bootProgressGossipBarsColor:oPe,bootProgressGossipFilledBarColor:aPe,bootProgressGossipHighBarColor:cPe,bootProgressGossipHighFilledBarColor:dPe,bootProgressGossipHighThresholdBarColor:fPe,bootProgressGossipMidBarColor:sPe,bootProgressGossipMidFilledBarColor:lPe,bootProgressGossipMidThresholdBarColor:uPe,bootProgressIncrSnapshotBackgroundColor:nPe,bootProgressPrimaryTextColor:hPe,bootProgressSecondaryTextColor:pPe,bootProgressSnapshotUnitsColor:gPe,bootProgressSupermajorityBackgroundColor:iPe,bootProgressTertiaryColor:mPe,cardBackgroundColor:pne,chartAxisColor:sr,chartGridColor:$N,chartGridStrokeColor:Lne,circularProgressPathColor:Zne,circularProgressTrailColor:Hne,clusterDevelopmentColor:une,clusterDevnetColor:cne,clusterMainnetBetaColor:sne,clusterPythnetColor:dne,clusterPythtestColor:fne,clusterTestnetColor:lne,clusterUnknownColor:hne,computeUnitsColor:pd,containerBackgroundColor:OLe,containerBorderColor:PLe,dropdownBackgroundColor:zLe,dropdownButtonTextColor:DLe,elapsedTimeColor:bOe,epochNotLiveColor:hOe,epochSkippedSlotColor:mOe,epochSliderProgressColor:pOe,epochTextColor:fOe,errorToggleColor:RN,fadedText:kOe,failureColor:fd,feesColor:kg,firstTurbineSlotColor:ene,focusedBorderColor:wOe,goodChangedColor:mne,goodUnchangedColor:gne,gridLineColor:_N,gridTicksColor:xN,headerColor:Yu,headerLabelTextColor:Jte,highIncrementTextColor:oOe,iconButtonColor:Xte,incomePerCuToggleControlColor:wp,latestTurbineSlotColor:tne,lowIncrementTextColor:rOe,midIncrementTextColor:iOe,missingSlotColor:nne,mySlotsColor:Yte,navButtonInactiveTextColor:Qte,navButtonTextColor:WLe,needsReplaySlotColor:one,nextColor:Gte,nextSlotValueColor:dOe,nonDelinquentChartColor:_ne,nonDelinquentColor:pk,nonVoteColor:Hf,popoverBackgroundColor:ALe,popoverPrimaryColor:FLe,popoverSecondaryColor:ULe,primaryTextColor:mN,programCacheColor:kne,progressBackgroundColor:ZLe,progressBarCompleteCatchupColor:MPe,progressBarCompleteFullSnapshotColor:SPe,progressBarCompleteGossipColor:xPe,progressBarCompleteIncSnapshotColor:IPe,progressBarCompleteSupermajorityColor:OPe,progressBarInProgressCatchupBackground:NPe,progressBarInProgressCatchupBorder:$Pe,progressBarInProgressFullSnapshotBackground:wPe,progressBarInProgressFullSnapshotBorder:kPe,progressBarInProgressGossipBackground:yPe,progressBarInProgressGossipBorder:bPe,progressBarInProgressIncSnapshotBackground:jPe,progressBarInProgressIncSnapshotBorder:TPe,progressBarInProgressSupermajorityBackground:LPe,progressBarInProgressSupermajorityBorder:PPe,progressBarIncompleteCatchupColor:EPe,progressBarIncompleteFullSnapshotColor:_Pe,progressBarIncompleteGossipColor:vPe,progressBarIncompleteIncSnapshotColor:CPe,progressBarIncompleteSupermajorityColor:RPe,progressGutterBackgroundColor:HLe,regularTextColor:gN,repairedNeedsReplaySlotColor:ane,repairedSlotsBoldTextColor:qPe,repairedSlotsTextColor:ZPe,replayedMissingSlotColor:ine,replayedSlotColor:rne,replayedSlotsBoldTextColor:YPe,replayedSlotsTextColor:GPe,requestedToggleControlColor:mk,rowSeparatorBackgroundColor:BLe,sankeyBaseLabelColor:Zf,sankeyDroppedLinkColor:Nne,sankeyIncomingLinkColor:Ene,sankeyLinkGradientEndColor:NN,sankeyLinkGradientMiddleColor:Mne,sankeyRetainedLinkColor:$ne,sankeyStartEndNodeColor:Ine,sankeySuccessRateColor:gOe,searchDisabledBackgroundColor:DOe,searchDisabledBorderColor:OOe,searchDisabledTextColor:zOe,searchIconColor:ON,secondaryTextColor:wg,shredPublishedColor:EN,shredReceivedRepairColor:SN,shredReceivedTurbineColor:kN,shredRepairRequestedColor:wN,shredReplayedNothingColor:TN,shredReplayedRepairColor:jN,shredReplayedTurbineColor:CN,shredSkippedColor:IN,skipRateLabelColor:AOe,slotCardHeaderTextColor:BOe,slotCardSectionBackgroundColor:zN,slotCardSectionPrimaryColor:FOe,slotCardSectionSecondaryColor:UOe,slotDetailsBackgroundColor:XOe,slotDetailsChartControlsTriggered:sze,slotDetailsClickableSlotColor:KOe,slotDetailsColor:JOe,slotDetailsDisabledSlotBorderColor:rze,slotDetailsEarliestSlotColor:qne,slotDetailsFeesSlotColor:Kne,slotDetailsMySlotsNotSelectedColor:qOe,slotDetailsQuickSearchTextColor:YOe,slotDetailsRecentSlotColor:Gne,slotDetailsRewardsSlotColor:Jne,slotDetailsSearchLabelColor:GOe,slotDetailsSelectedBackgroundColor:eze,slotDetailsSelectedColor:nze,slotDetailsSkippedBackgroundColor:QOe,slotDetailsSkippedSelectedBackgroundColor:tze,slotDetailsSkippedSlotColor:Yne,slotDetailsStatsPrimary:ize,slotDetailsStatsSecondary:oze,slotDetailsStatsTertiary:aze,slotDetailsTipsSlotColor:Xne,slotNavBackgroundColor:GLe,slotNavFilterBackgroundColor:qLe,slotSelectorItemBackgroundColor:yOe,slotSelectorTextColor:vOe,slotStatusBlue:AN,slotStatusDullTeal:Vne,slotStatusGray:ZOe,slotStatusGreen:DN,slotStatusRed:gk,slotStatusTeal:Wne,slotTextActiveLinkColor:VOe,slotTextLinkColor:WOe,slotTextVisitedLinkColor:HOe,slotTimelineTextColor:tOe,slotsListBackgroundColor:hze,slotsListCurrentSlotBoxShadowColor:wze,slotsListCurrentSlotNumberBackgroundColor:kze,slotsListFutureSlotBackgroundColor:pze,slotsListFutureSlotColor:_ze,slotsListMySlotBackgroundColor:uze,slotsListMySlotsBorderColor:cze,slotsListMySlotsSelectedBorderColor:fze,slotsListNotProcessedMySlotsBorderColor:dze,slotsListPastSlotColor:bze,slotsListPastSlotNumberColor:yze,slotsListSelectedBackgroundColor:gze,slotsListSkippedBackgroundColor:mze,slotsListSkippedSelectedBackgroundColor:vze,slotsListSlotBackgroundColor:lze,slotsListSlotColor:xze,snapshotAreaChartDark:zPe,snapshotAreaChartGridLineColor:DPe,startLineColor:Rne,startupBackgroundColor:YLe,startupCompleteStepColor:QLe,startupProgressBackgroundColor:XLe,startupProgressTealColor:JLe,startupTextColor:KLe,successColor:pN,successToggleColor:MN,summaryAgaveTextColor:EOe,summaryBamTextColor:MOe,summaryFiredancerTextColor:IOe,summaryFrankendancerTextColor:TOe,summaryHarmonicTextColor:POe,summaryJitoTextColor:NOe,summaryMySlotsColor:jOe,summaryPaladinTextColor:$Oe,summaryPrimaryTextColor:SOe,summaryRakuraiTextColor:LOe,summarySecondaryTextColor:COe,summarySigTextColor:ROe,supermajorityPieChartTextColor:FPe,supermajorityPieChartUnfilledColor:UPe,supermajorityTableBorderColor:APe,supermajorityTableOfflinePrimaryColor:BPe,supermajorityTableOfflineSecondaryColor:WPe,supermajorityTableOnlinePrimaryColor:VPe,supermajorityTableOnlineSecondaryColor:HPe,tableBodyColor:Kte,tableHeaderColor:LLe,tileBackgroundBlueColor:lOe,tileBackgroundRedColor:sOe,tileBusyGreenColor:yN,tileBusyRedColor:bN,tileChartDarkBackground:vk,tilePrimaryStatValueColor:cOe,tileSparklineBackgroundColor:Tne,tileSparklineRangeTextColor:aOe,tileSubHeaderColor:uOe,tipsColor:qf,toastConnectingEndColor:eOe,toastConnectingStartColor:QPe,toastDisconnectedColor:JPe,toggleItemBackgroundColor:xOe,toggleItemTextColor:_Oe,totalValidatorsColor:vN,transactionAxisTextColor:nOe,transactionDefaultColor:LN,transactionExecuteColor:Ane,transactionExecuteTextColor:Fne,transactionFailedPathColor:jne,transactionLoadingColor:zne,transactionLoadingTextColor:Dne,transactionNonVotePathColor:Sne,transactionPostExecuteColor:Une,transactionPostExecuteTextColor:Bne,transactionPreloadingColor:Pne,transactionPreloadingTextColor:One,transactionValidateColor:PN,transactionVotePathColor:Cne,turbineSlotsBoldTextColor:XPe,turbineSlotsTextColor:KPe,unknownChangedColor:fk,unknownUnchangedColor:hk,voteDistanceColor:wne,voteLatencyColor:VLe,votesColor:hd},Symbol.toStringTag,{value:"Module"}));var Cze={isEqual:!0,isMatchingKey:!0,isPromise:!0,maxSize:!0,onCacheAdd:!0,onCacheChange:!0,onCacheHit:!0,transformKey:!0},jze=Array.prototype.slice;function yk(e){var t=e.length;return t?t===1?[e[0]]:t===2?[e[0],e[1]]:t===3?[e[0],e[1],e[2]]:jze.call(e,0):[]}function Tze(e){var t={};for(var n in e)Cze[n]||(t[n]=e[n]);return t}function Ize(e){return typeof e=="function"&&e.isMemoized}function Eze(e,t){return e===t||e!==e&&t!==t}function Qne(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n}var Nze=function(){function e(t){this.keys=[],this.values=[],this.options=t;var n=typeof t.isMatchingKey=="function";n?this.getKeyIndex=this._getKeyIndexFromMatchingKey:t.maxSize>1?this.getKeyIndex=this._getKeyIndexForMany:this.getKeyIndex=this._getKeyIndexForSingle,this.canTransformKey=typeof t.transformKey=="function",this.shouldCloneArguments=this.canTransformKey||n,this.shouldUpdateOnAdd=typeof t.onCacheAdd=="function",this.shouldUpdateOnChange=typeof t.onCacheChange=="function",this.shouldUpdateOnHit=typeof t.onCacheHit=="function"}return Object.defineProperty(e.prototype,"size",{get:function(){return this.keys.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"snapshot",{get:function(){return{keys:yk(this.keys),size:this.size,values:yk(this.values)}},enumerable:!1,configurable:!0}),e.prototype._getKeyIndexFromMatchingKey=function(t){var n=this.options,r=n.isMatchingKey,i=n.maxSize,o=this.keys,a=o.length;if(!a)return-1;if(r(o[0],t))return 0;if(i>1){for(var s=1;s1){for(var l=0;l1){for(var a=0;a=l&&(i.length=o.length=l)},e.prototype.updateAsyncCache=function(t){var n=this,r=this.options,i=r.onCacheChange,o=r.onCacheHit,a=this.keys[0],s=this.values[0];this.values[0]=s.then(function(l){return n.shouldUpdateOnHit&&o(n,n.options,t),n.shouldUpdateOnChange&&i(n,n.options,t),l},function(l){var c=n.getKeyIndex(a);throw c!==-1&&(n.keys.splice(c,1),n.values.splice(c,1)),l})},e}();function Gf(e,t){if(t===void 0&&(t={}),Ize(e))return Gf(e.fn,Qne(e.options,t));if(typeof e!="function")throw new TypeError("You must pass a function to `memoize`.");var n=t.isEqual,r=n===void 0?Eze:n,i=t.isMatchingKey,o=t.isPromise,a=o===void 0?!1:o,s=t.maxSize,l=s===void 0?1:s,c=t.onCacheAdd,d=t.onCacheChange,f=t.onCacheHit,p=t.transformKey,v=Qne({isEqual:r,isMatchingKey:i,isPromise:a,maxSize:l,onCacheAdd:c,onCacheChange:d,onCacheHit:f,transformKey:p},Tze(t)),x=new Nze(v),y=x.keys,b=x.values,w=x.canTransformKey,_=x.shouldCloneArguments,S=x.shouldUpdateOnAdd,C=x.shouldUpdateOnChange,j=x.shouldUpdateOnHit,T=function(){var E=_?yk(arguments):arguments;w&&(E=p(E));var $=y.length?x.getKeyIndex(E):-1;if($!==-1)j&&f(x,v,T),$&&(x.orderByLru(y[$],b[$],$),C&&d(x,v,T));else{var D=e.apply(this,arguments),M=_?E:yk(arguments);x.orderByLru(M,D,y.length),a&&x.updateAsyncCache(T),S&&c(x,v,T),C&&d(x,v,T)}return b[0]};return T.cache=x,T.fn=e,T.isMemoized=!0,T.options=v,T}function FN(e,t){return e.leader_slots.reduce((n,r,i)=>(e.staked_pubkeys[r]===t&&n.push(i*$n+e.start_slot),n),[])}function _i(e){return e-e%$n}const UN=[{unit:"years",suffix:"y"},{unit:"months",suffix:"m"},{unit:"weeks",suffix:"w"},{unit:"days",suffix:"d"},{unit:"hours",suffix:"h"},{unit:"minutes",suffix:"m"},{unit:"seconds",suffix:"s"}];function $ze(e,t){if(t!=null&&t.showOnlyTwoSignificantUnits){const n=UN.findIndex(({unit:r})=>!!e[r]);return UN.slice(n,n+2).map(({unit:r,suffix:i})=>[e[r],i])}return UN.filter(({unit:n})=>t!=null&&t.omitSeconds&&n==="seconds"?!1:!!e[n]).map(({unit:n,suffix:r})=>[e[n],r])}function ere(e,t){if(!e)return;if(e.toMillis()<1e3)return[[0,"s"]];const n=$ze(e,t);return n.length?n:[[0,"s"]]}function kp(e,t){const n=ere(e,t);return n?n.map(([r,i])=>`${r}${i}`).join(" "):"Never"}function Mze(e,t={showSeconds:!0}){if(!e)return"Never";if(e.toMillis()<0)return"0s";let n="";return e.years&&(n&&(n+=" "),n+=`${e.years}y`),e.months&&(n&&(n+=" "),n+=`${e.months}m`),e.weeks&&(n&&(n+=" "),n+=`${e.weeks}w`),e.days&&(n&&(n+=" "),n+=`${e.days}d`),e.hours&&(n&&(n+=" "),n+=`${e.hours}h`),e.minutes&&(n&&(n+=" "),n+=`${e.minutes}m`),e.seconds&&t.showSeconds&&(n&&(n+=" "),n+=`${e.seconds}s`),n||(n="0s"),n}let Yf=jt.now();setInterval(()=>{Yf=jt.now()},1e3);function tre(e){return jt.fromMillis(Math.trunc(Number(e/1000000n)))}function Cb(e){return e!==void 0}const jb=e=>e>=18446744073709552e3?0:e;function nre(e){return e.vote.reduce((t,{activated_stake:n})=>t+n,0n)}function Tb(e,t){if(e===void 0)return;const n=Number(e)/dd;return n<1?n.toLocaleString(void 0,{maximumFractionDigits:t}):n<100?n.toLocaleString(void 0,{maximumFractionDigits:2}):n.toLocaleString(void 0,{maximumFractionDigits:0})}function BN(e,t){const n=Tb(e,t);if(n!==void 0)return`${n}\xA0SOL`}const Rze=e=>Array.isArray(e);function WN(e){if(navigator.clipboard){navigator.clipboard.writeText(e);return}const t=document.createElement("textarea");t.value=e,t.style.position="absolute",t.style.left="-999999px",document.body.appendChild(t),t.select();try{document.execCommand("copy")||console.error("Failed to copy text",e)}catch(n){console.error("Failed to copy text",e,n)}finally{document.body.removeChild(t)}}function Lze(e){const t=e.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}function VN(e,t){return e.txn_landed[t]&&![5,6].includes(e.txn_error_code[t])?e.txn_priority_fee[t]+e.txn_transaction_fee[t]:0n}function HN(e,t){return e.txn_landed[t]&&e.txn_error_code[t]===0?e.txn_tips[t]:0n}function md(e,t){return VN(e,t)+HN(e,t)}function ZN(e){return e.split(":")[0]}function bk(e){switch(e){case"mainnet-beta":return sne;case"testnet":return lne;case"development":return une;case"devnet":return cne;case"pythnet":return dne;case"pythtest":return fne;case"unknown":case void 0:return hne}}function Ib(e){const t=e*8;return t<1e3?{value:xk(t),unit:"b"}:t<1e6?{value:xk(t/1e3),unit:"Kb"}:t<1e9?{value:xk(t/1e6),unit:"Mb"}:{value:xk(t/1e9),unit:"Gb"}}const Sg=[{unit:"B",divisor:1,threshold:1e3},{unit:"kB",divisor:1e3,threshold:1e6},{unit:"MB",divisor:1e6,threshold:1e9},{unit:"GB",divisor:1e9,threshold:1/0}];function Da(e,t=1,n,r=!0){if(e===0&&r)return{value:"0",unit:n??"B"};const i=Sg.find(o=>o.unit===n)??Sg.find(o=>e=9.5?Math.round(e):Math.round(e*10)/10}function Eb(e){let t=-1/0;for(let n=0;nt&&(t=r)}return t}function Pze(e){let t=1/0;for(let n=0;n{if(e)return e.toUpperCase().split("").map(t=>String.fromCodePoint(t.charCodeAt(0)-65+127462)).join("")},{maxSize:100}),_k={month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3},wk={local:new Intl.DateTimeFormat(void 0,{..._k,timeZoneName:"short"}),localNoTz:new Intl.DateTimeFormat(void 0,_k),utc:new Intl.DateTimeFormat(void 0,{..._k,timeZone:"UTC",timeZoneName:"short"}),utcNoTz:new Intl.DateTimeFormat(void 0,{..._k,timeZone:"UTC"})};function kk(e,t){const n=Number(e/1000000n),r=Number(e%1000000n),i=new Date(n),o=(t==null?void 0:t.timezone)??"local",a=(t==null?void 0:t.showTimezoneName)??!0,s=(o==="utc"?a?wk.utc:wk.utcNoTz:a?wk.local:wk.localNoTz).formatToParts(i),l=r.toString().padStart(6,"0");let c="",d="";for(const f of s)c+=f.value,d+=f.value,f.type==="fractionalSecond"&&(d+=l);return{inMillis:c,inNanos:d}}function zze(e){return e.level==="rooted"&&(e.vote_latency&&e.vote_latency>1||e.vote_latency===null&&!e.skipped)}function rre(e,t,n){let r=0;for(let i=e;it>=a.from&&t{if(!t)return"";const a=Sp(t,{units:"iec"}),s=e?e/t:0,l=Number(a.value);return`${isNaN(l)?"0":(l*s).toFixed(1)} / ${a.toString()}`};return u.jsx(W,{children:u.jsxs(W,{direction:"column",children:[u.jsx(Mt,{minHeight:"10px"}),u.jsx(N4,{value:r,className:H3.progress}),u.jsxs(W,{minHeight:"10px",children:[u.jsx(Z,{className:H3.text,children:o()}),u.jsx(Mt,{flexGrow:"1"}),u.jsxs(Z,{className:H3.text,children:["~",kp(i)]})]})]})})}function Aze(){const e=J(Zu);if(e)return u.jsx(lre,{currentBytes:e.downloading_full_snapshot_current_bytes,totalBytes:e.downloading_full_snapshot_total_bytes,remainingSecs:e.downloading_full_snapshot_remaining_secs})}var Sk={exports:{}};/** +* @license +* Lodash +* Copyright OpenJS Foundation and other contributors +* Released under MIT license +* Based on Underscore.js 1.8.3 +* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors +*/Sk.exports,function(e,t){(function(){var n,r="4.17.21",i=200,o="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",s="Invalid `variable` option passed into `_.template`",l="__lodash_hash_undefined__",c=500,d="__lodash_placeholder__",f=1,p=2,v=4,x=1,y=2,b=1,w=2,_=4,S=8,C=16,j=32,T=64,E=128,$=256,D=512,M=30,O="...",te=800,q=16,P=1,X=2,A=3,Y=1/0,F=9007199254740991,H=17976931348623157e292,ee=NaN,ce=4294967295,B=ce-1,ae=ce>>>1,je=[["ary",E],["bind",b],["bindKey",w],["curry",S],["curryRight",C],["flip",D],["partial",j],["partialRight",T],["rearg",$]],me="[object Arguments]",ke="[object Array]",he="[object AsyncFunction]",ue="[object Boolean]",re="[object Date]",ge="[object DOMException]",$e="[object Error]",pe="[object Function]",ye="[object GeneratorFunction]",Se="[object Map]",Ce="[object Number]",Ue="[object Null]",Ge="[object Object]",_t="[object Promise]",St="[object Proxy]",ut="[object RegExp]",ct="[object Set]",bt="[object String]",Qe="[object Symbol]",Ke="[object Undefined]",De="[object WeakMap]",Dt="[object WeakSet]",pn="[object ArrayBuffer]",Yn="[object DataView]",hr="[object Float32Array]",Kn="[object Float64Array]",kr="[object Int8Array]",On="[object Int16Array]",Mr="[object Int32Array]",tr="[object Uint8Array]",Sr="[object Uint8ClampedArray]",ri="[object Uint16Array]",uo="[object Uint32Array]",Ki=/\b__p \+= '';/g,No=/\b(__p \+=) '' \+/g,Ps=/(__e\(.*?\)|\b__t\)) \+\n'';/g,zn=/&(?:amp|lt|gt|quot|#39);/g,co=/[&<>"']/g,xa=RegExp(zn.source),yc=RegExp(co.source),bc=/<%-([\s\S]+?)%>/g,xc=/<%([\s\S]+?)%>/g,qa=/<%=([\s\S]+?)%>/g,kl=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,pi=/^\w*$/,Un=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Rr=/[\\^$.*+?()[\]{}|]/g,$o=RegExp(Rr.source),fo=/^\s+/,Lr=/\s/,ho=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,_a=/\{\n\/\* \[wrapped with (.+)\] \*/,it=/,? & /,Yt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,nr=/[()=,{}\[\]\/\s]/,ht=/\\(\\)?/g,ii=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ga=/\w*$/,Ya=/^[-+]0x[0-9a-f]+$/i,Ko=/^0b[01]+$/i,mi=/^\[object .+?Constructor\]$/,Bn=/^0o[0-7]+$/i,pr=/^(?:0|[1-9]\d*)$/,Cr=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ka=/($^)/,po=/['\n\r\u2028\u2029\\]/g,mo="\\ud800-\\udfff",Vr="\\u0300-\\u036f",wa="\\ufe20-\\ufe2f",ji="\\u20d0-\\u20ff",gi=Vr+wa+ji,Os="\\u2700-\\u27bf",go="a-z\\xdf-\\xf6\\xf8-\\xff",Xo="\\xac\\xb1\\xd7\\xf7",Pd="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Od="\\u2000-\\u206f",bu=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Xi="A-Z\\xc0-\\xd6\\xd8-\\xde",oi="\\ufe0e\\ufe0f",_c=Xo+Pd+Od+bu,xu="['\u2019]",wc="["+mo+"]",kc="["+_c+"]",Sl="["+gi+"]",Xa="\\d+",z1="["+Os+"]",zd="["+go+"]",Sc="[^"+mo+_c+Xa+Os+go+Xi+"]",Dd="\\ud83c[\\udffb-\\udfff]",Fm="(?:"+Sl+"|"+Dd+")",Ad="[^"+mo+"]",L="(?:\\ud83c[\\udde6-\\uddff]){2}",G="[\\ud800-\\udbff][\\udc00-\\udfff]",ie="["+Xi+"]",Ie="\\u200d",ze="(?:"+zd+"|"+Sc+")",vt="(?:"+ie+"|"+Sc+")",Kt="(?:"+xu+"(?:d|ll|m|re|s|t|ve))?",In="(?:"+xu+"(?:D|LL|M|RE|S|T|VE))?",Di=Fm+"?",Ti="["+oi+"]?",Ji="(?:"+Ie+"(?:"+[Ad,L,G].join("|")+")"+Ti+Di+")*",mC="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Fd="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",j_=Ti+Di+Ji,T_="(?:"+[z1,L,G].join("|")+")"+j_,D1="(?:"+[Ad+Sl+"?",Sl,L,G,wc].join("|")+")",A1=RegExp(xu,"g"),F1=RegExp(Sl,"g"),_u=RegExp(Dd+"(?="+Dd+")|"+D1+j_,"g"),Ud=RegExp([ie+"?"+zd+"+"+Kt+"(?="+[kc,ie,"$"].join("|")+")",vt+"+"+In+"(?="+[kc,ie+ze,"$"].join("|")+")",ie+"?"+ze+"+"+Kt,ie+"+"+In,Fd,mC,Xa,T_].join("|"),"g"),I_=RegExp("["+Ie+mo+gi+oi+"]"),E_=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Bd=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Wd=-1,rr={};rr[hr]=rr[Kn]=rr[kr]=rr[On]=rr[Mr]=rr[tr]=rr[Sr]=rr[ri]=rr[uo]=!0,rr[me]=rr[ke]=rr[pn]=rr[ue]=rr[Yn]=rr[re]=rr[$e]=rr[pe]=rr[Se]=rr[Ce]=rr[Ge]=rr[ut]=rr[ct]=rr[bt]=rr[De]=!1;var Xn={};Xn[me]=Xn[ke]=Xn[pn]=Xn[Yn]=Xn[ue]=Xn[re]=Xn[hr]=Xn[Kn]=Xn[kr]=Xn[On]=Xn[Mr]=Xn[Se]=Xn[Ce]=Xn[Ge]=Xn[ut]=Xn[ct]=Xn[bt]=Xn[Qe]=Xn[tr]=Xn[Sr]=Xn[ri]=Xn[uo]=!0,Xn[$e]=Xn[pe]=Xn[De]=!1;var mr={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},jr={"&":"&","<":"<",">":">",'"':""","'":"'"},wu={"&":"&","<":"<",">":">",""":'"',"'":"'"},Ai={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ii=parseFloat,Ei=parseInt,ir=typeof Ac=="object"&&Ac&&Ac.Object===Object&&Ac,Vd=typeof self=="object"&&self&&self.Object===Object&&self,ai=ir||Vd||Function("return this")(),U1=t&&!t.nodeType&&t,Mo=U1&&!0&&e&&!e.nodeType&&e,Ja=Mo&&Mo.exports===U1,B1=Ja&&ir.process,ka=function(){try{var le=Mo&&Mo.require&&Mo.require("util").types;return le||B1&&B1.binding&&B1.binding("util")}catch{}}(),N_=ka&&ka.isArrayBuffer,$_=ka&&ka.isDate,zs=ka&&ka.isMap,Cl=ka&&ka.isRegExp,ku=ka&&ka.isSet,Cc=ka&&ka.isTypedArray;function Jo(le,Ne,we){switch(we.length){case 0:return le.call(Ne);case 1:return le.call(Ne,we[0]);case 2:return le.call(Ne,we[0],we[1]);case 3:return le.call(Ne,we[0],we[1],we[2])}return le.apply(Ne,we)}function Ds(le,Ne,we,Je){for(var xt=-1,Gt=le==null?0:le.length;++xt-1}function V1(le,Ne,we){for(var Je=-1,xt=le==null?0:le.length;++Je-1;);return we}function O_(le,Ne){for(var we=le.length;we--&&Tc(Ne,le[we],0)>-1;);return we}function gC(le,Ne){for(var we=le.length,Je=0;we--;)le[we]===Ne&&++Je;return Je}var J1=Y1(mr),N=Y1(jr);function z(le){return"\\"+Ai[le]}function K(le,Ne){return le==null?n:le[Ne]}function Q(le){return I_.test(le)}function de(le){return E_.test(le)}function _e(le){for(var Ne,we=[];!(Ne=le.next()).done;)we.push(Ne.value);return we}function Me(le){var Ne=-1,we=Array(le.size);return le.forEach(function(Je,xt){we[++Ne]=[xt,Je]}),we}function Fe(le,Ne){return function(we){return le(Ne(we))}}function Ve(le,Ne){for(var we=-1,Je=le.length,xt=0,Gt=[];++we-1}function I0e(h,g){var k=this.__data__,I=Y_(k,h);return I<0?(++this.size,k.push([h,g])):k[I][1]=g,this}Nc.prototype.clear=S0e,Nc.prototype.delete=C0e,Nc.prototype.get=j0e,Nc.prototype.has=T0e,Nc.prototype.set=I0e;function $c(h){var g=-1,k=h==null?0:h.length;for(this.clear();++g=g?h:g)),h}function Us(h,g,k,I,R,V){var ne,se=g&f,ve=g&p,Re=g&v;if(k&&(ne=R?k(h,I,R,V):k(h)),ne!==n)return ne;if(!Jr(h))return h;var Le=Ht(h);if(Le){if(ne=Mge(h),!se)return ja(h,ne)}else{var Ae=Lo(h),tt=Ae==pe||Ae==ye;if(Jd(h))return hz(h,se);if(Ae==Ge||Ae==me||tt&&!R){if(ne=ve||tt?{}:Mz(h),!se)return ve?_ge(h,V0e(ne,h)):xge(h,WO(ne,h))}else{if(!Xn[Ae])return R?h:{};ne=Rge(h,Ae,se)}}V||(V=new Tl);var pt=V.get(h);if(pt)return pt;V.set(h,ne),sD(h)?h.forEach(function($t){ne.add(Us($t,g,k,$t,h,V))}):oD(h)&&h.forEach(function($t,mn){ne.set(mn,Us($t,g,k,mn,h,V))});var Nt=Re?ve?UC:FC:ve?Ia:eo,nn=Le?n:Nt(h);return Sa(nn||h,function($t,mn){nn&&(mn=$t,$t=h[mn]),iv(ne,mn,Us($t,g,k,mn,h,V))}),ne}function H0e(h){var g=eo(h);return function(k){return VO(k,h,g)}}function VO(h,g,k){var I=k.length;if(h==null)return!I;for(h=tn(h);I--;){var R=k[I],V=g[R],ne=h[R];if(ne===n&&!(R in h)||!V(ne))return!1}return!0}function HO(h,g,k){if(typeof h!="function")throw new ar(a);return dv(function(){h.apply(n,k)},g)}function ov(h,g,k,I){var R=-1,V=Su,ne=!0,se=h.length,ve=[],Re=g.length;if(!se)return ve;k&&(g=or(g,Sn(k))),I?(V=V1,ne=!1):g.length>=i&&(V=Ic,ne=!1,g=new jh(g));e:for(;++RR?0:R+k),I=I===n||I>R?R:Xt(I),I<0&&(I+=R),I=k>I?0:uD(I);k0&&k(se)?g>1?vo(se,g-1,k,I,R):Cu(R,se):I||(R[R.length]=se)}return R}var wC=bz(),GO=bz(!0);function Iu(h,g){return h&&wC(h,g,eo)}function kC(h,g){return h&&GO(h,g,eo)}function X_(h,g){return Ca(g,function(k){return Oc(h[k])})}function Ih(h,g){g=Kd(g,h);for(var k=0,I=g.length;h!=null&&kg}function G0e(h,g){return h!=null&&Jn.call(h,g)}function Y0e(h,g){return h!=null&&g in tn(h)}function K0e(h,g,k){return h>=Ro(g,k)&&h=120&&Le.length>=120)?new jh(ne&&Le):n}Le=h[0];var Ae=-1,tt=se[0];e:for(;++Ae-1;)se!==h&&B_.call(se,ve,1),B_.call(h,ve,1);return h}function oz(h,g){for(var k=h?g.length:0,I=k-1;k--;){var R=g[k];if(k==I||R!==V){var V=R;Pc(R)?B_.call(h,R,1):RC(h,R)}}return h}function NC(h,g){return h+H_(AO()*(g-h+1))}function uge(h,g,k,I){for(var R=-1,V=Fi(V_((g-h)/(k||1)),0),ne=we(V);V--;)ne[I?V:++R]=h,h+=k;return ne}function $C(h,g){var k="";if(!h||g<1||g>F)return k;do g%2&&(k+=h),g=H_(g/2),g&&(h+=h);while(g);return k}function sn(h,g){return GC(Pz(h,g,Ea),h+"")}function cge(h){return BO(Xm(h))}function dge(h,g){var k=Xm(h);return l2(k,Th(g,0,k.length))}function lv(h,g,k,I){if(!Jr(h))return h;g=Kd(g,h);for(var R=-1,V=g.length,ne=V-1,se=h;se!=null&&++RR?0:R+g),k=k>R?R:k,k<0&&(k+=R),R=g>k?0:k-g>>>0,g>>>=0;for(var V=we(R);++I>>1,ne=h[V];ne!==null&&!es(ne)&&(k?ne<=g:ne=i){var Re=g?null:Cge(h);if(Re)return et(Re);ne=!1,R=Ic,ve=new jh}else ve=g?[]:se;e:for(;++I=I?h:Bs(h,g,k)}var fz=n0e||function(h){return ai.clearTimeout(h)};function hz(h,g){if(g)return h.slice();var k=h.length,I=LO?LO(k):new h.constructor(k);return h.copy(I),I}function zC(h){var g=new h.constructor(h.byteLength);return new F_(g).set(new F_(h)),g}function gge(h,g){var k=g?zC(h.buffer):h.buffer;return new h.constructor(k,h.byteOffset,h.byteLength)}function vge(h){var g=new h.constructor(h.source,Ga.exec(h));return g.lastIndex=h.lastIndex,g}function yge(h){return rv?tn(rv.call(h)):{}}function pz(h,g){var k=g?zC(h.buffer):h.buffer;return new h.constructor(k,h.byteOffset,h.length)}function mz(h,g){if(h!==g){var k=h!==n,I=h===null,R=h===h,V=es(h),ne=g!==n,se=g===null,ve=g===g,Re=es(g);if(!se&&!Re&&!V&&h>g||V&&ne&&ve&&!se&&!Re||I&&ne&&ve||!k&&ve||!R)return 1;if(!I&&!V&&!Re&&h=se)return ve;var Re=k[I];return ve*(Re=="desc"?-1:1)}}return h.index-g.index}function gz(h,g,k,I){for(var R=-1,V=h.length,ne=k.length,se=-1,ve=g.length,Re=Fi(V-ne,0),Le=we(ve+Re),Ae=!I;++se1?k[R-1]:n,ne=R>2?k[2]:n;for(V=h.length>3&&typeof V=="function"?(R--,V):n,ne&&ta(k[0],k[1],ne)&&(V=R<3?n:V,R=1),g=tn(g);++I-1?R[V?g[ne]:ne]:n}}function wz(h){return Lc(function(g){var k=g.length,I=k,R=Fs.prototype.thru;for(h&&g.reverse();I--;){var V=g[I];if(typeof V!="function")throw new ar(a);if(R&&!ne&&a2(V)=="wrapper")var ne=new Fs([],!0)}for(I=ne?I:k;++I1&&_n.reverse(),Le&&vese))return!1;var Re=V.get(h),Le=V.get(g);if(Re&&Le)return Re==g&&Le==h;var Ae=-1,tt=!0,pt=k&y?new jh:n;for(V.set(h,g),V.set(g,h);++Ae1?"& ":"")+g[I],g=g.join(k>2?", ":" "),h.replace(ho,`{ +/* [wrapped with `+g+`] */ +`)}function Pge(h){return Ht(h)||$h(h)||!!(zO&&h&&h[zO])}function Pc(h,g){var k=typeof h;return g=g??F,!!g&&(k=="number"||k!="symbol"&&pr.test(h))&&h>-1&&h%1==0&&h0){if(++g>=te)return arguments[0]}else g=0;return h.apply(n,arguments)}}function l2(h,g){var k=-1,I=h.length,R=I-1;for(g=g===n?I:g;++k1?h[g-1]:n;return k=typeof k=="function"?(h.pop(),k):n,qz(h,k)});function Gz(h){var g=U(h);return g.__chain__=!0,g}function Z1e(h,g){return g(h),h}function u2(h,g){return g(h)}var q1e=Lc(function(h){var g=h.length,k=g?h[0]:0,I=this.__wrapped__,R=function(V){return _C(V,h)};return g>1||this.__actions__.length||!(I instanceof yn)||!Pc(k)?this.thru(R):(I=I.slice(k,+k+(g?1:0)),I.__actions__.push({func:u2,args:[R],thisArg:n}),new Fs(I,this.__chain__).thru(function(V){return g&&!V.length&&V.push(n),V}))});function G1e(){return Gz(this)}function Y1e(){return new Fs(this.value(),this.__chain__)}function K1e(){this.__values__===n&&(this.__values__=lD(this.value()));var h=this.__index__>=this.__values__.length,g=h?n:this.__values__[this.__index__++];return{done:h,value:g}}function X1e(){return this}function J1e(h){for(var g,k=this;k instanceof G_;){var I=Uz(k);I.__index__=0,I.__values__=n,g?R.__wrapped__=I:g=I;var R=I;k=k.__wrapped__}return R.__wrapped__=h,g}function Q1e(){var h=this.__wrapped__;if(h instanceof yn){var g=h;return this.__actions__.length&&(g=new yn(this)),g=g.reverse(),g.__actions__.push({func:u2,args:[YC],thisArg:n}),new Fs(g,this.__chain__)}return this.thru(YC)}function eve(){return cz(this.__wrapped__,this.__actions__)}var tve=t2(function(h,g,k){Jn.call(h,k)?++h[k]:Mc(h,k,1)});function nve(h,g,k){var I=Ht(h)?W1:Z0e;return k&&ta(h,g,k)&&(g=n),I(h,It(g,3))}function rve(h,g){var k=Ht(h)?Ca:qO;return k(h,It(g,3))}var ive=_z(Bz),ove=_z(Wz);function ave(h,g){return vo(c2(h,g),1)}function sve(h,g){return vo(c2(h,g),Y)}function lve(h,g,k){return k=k===n?1:Xt(k),vo(c2(h,g),k)}function Yz(h,g){var k=Ht(h)?Sa:Gd;return k(h,It(g,3))}function Kz(h,g){var k=Ht(h)?M_:ZO;return k(h,It(g,3))}var uve=t2(function(h,g,k){Jn.call(h,k)?h[k].push(g):Mc(h,k,[g])});function cve(h,g,k,I){h=Ta(h)?h:Xm(h),k=k&&!I?Xt(k):0;var R=h.length;return k<0&&(k=Fi(R+k,0)),m2(h)?k<=R&&h.indexOf(g,k)>-1:!!R&&Tc(h,g,k)>-1}var dve=sn(function(h,g,k){var I=-1,R=typeof g=="function",V=Ta(h)?we(h.length):[];return Gd(h,function(ne){V[++I]=R?Jo(g,ne,k):av(ne,g,k)}),V}),fve=t2(function(h,g,k){Mc(h,k,g)});function c2(h,g){var k=Ht(h)?or:QO;return k(h,It(g,3))}function hve(h,g,k,I){return h==null?[]:(Ht(g)||(g=g==null?[]:[g]),k=I?n:k,Ht(k)||(k=k==null?[]:[k]),rz(h,g,k))}var pve=t2(function(h,g,k){h[k?0:1].push(g)},function(){return[[],[]]});function mve(h,g,k){var I=Ht(h)?jl:K1,R=arguments.length<3;return I(h,It(g,4),k,R,Gd)}function gve(h,g,k){var I=Ht(h)?ju:K1,R=arguments.length<3;return I(h,It(g,4),k,R,ZO)}function vve(h,g){var k=Ht(h)?Ca:qO;return k(h,h2(It(g,3)))}function yve(h){var g=Ht(h)?BO:cge;return g(h)}function bve(h,g,k){(k?ta(h,g,k):g===n)?g=1:g=Xt(g);var I=Ht(h)?U0e:dge;return I(h,g)}function xve(h){var g=Ht(h)?B0e:hge;return g(h)}function _ve(h){if(h==null)return 0;if(Ta(h))return m2(h)?hn(h):h.length;var g=Lo(h);return g==Se||g==ct?h.size:TC(h).length}function wve(h,g,k){var I=Ht(h)?jc:pge;return k&&ta(h,g,k)&&(g=n),I(h,It(g,3))}var kve=sn(function(h,g){if(h==null)return[];var k=g.length;return k>1&&ta(h,g[0],g[1])?g=[]:k>2&&ta(g[0],g[1],g[2])&&(g=[g[0]]),rz(h,vo(g,1),[])}),d2=r0e||function(){return ai.Date.now()};function Sve(h,g){if(typeof g!="function")throw new ar(a);return h=Xt(h),function(){if(--h<1)return g.apply(this,arguments)}}function Xz(h,g,k){return g=k?n:g,g=h&&g==null?h.length:g,Rc(h,E,n,n,n,n,g)}function Jz(h,g){var k;if(typeof g!="function")throw new ar(a);return h=Xt(h),function(){return--h>0&&(k=g.apply(this,arguments)),h<=1&&(g=n),k}}var XC=sn(function(h,g,k){var I=b;if(k.length){var R=Ve(k,Ym(XC));I|=j}return Rc(h,I,g,k,R)}),Qz=sn(function(h,g,k){var I=b|w;if(k.length){var R=Ve(k,Ym(Qz));I|=j}return Rc(g,I,h,k,R)});function eD(h,g,k){g=k?n:g;var I=Rc(h,S,n,n,n,n,n,g);return I.placeholder=eD.placeholder,I}function tD(h,g,k){g=k?n:g;var I=Rc(h,C,n,n,n,n,n,g);return I.placeholder=tD.placeholder,I}function nD(h,g,k){var I,R,V,ne,se,ve,Re=0,Le=!1,Ae=!1,tt=!0;if(typeof h!="function")throw new ar(a);g=Vs(g)||0,Jr(k)&&(Le=!!k.leading,Ae="maxWait"in k,V=Ae?Fi(Vs(k.maxWait)||0,g):V,tt="trailing"in k?!!k.trailing:tt);function pt(yi){var El=I,Dc=R;return I=R=n,Re=yi,ne=h.apply(Dc,El),ne}function Nt(yi){return Re=yi,se=dv(mn,g),Le?pt(yi):ne}function nn(yi){var El=yi-ve,Dc=yi-Re,_D=g-El;return Ae?Ro(_D,V-Dc):_D}function $t(yi){var El=yi-ve,Dc=yi-Re;return ve===n||El>=g||El<0||Ae&&Dc>=V}function mn(){var yi=d2();if($t(yi))return _n(yi);se=dv(mn,nn(yi))}function _n(yi){return se=n,tt&&I?pt(yi):(I=R=n,ne)}function ts(){se!==n&&fz(se),Re=0,I=ve=R=se=n}function na(){return se===n?ne:_n(d2())}function ns(){var yi=d2(),El=$t(yi);if(I=arguments,R=this,ve=yi,El){if(se===n)return Nt(ve);if(Ae)return fz(se),se=dv(mn,g),pt(ve)}return se===n&&(se=dv(mn,g)),ne}return ns.cancel=ts,ns.flush=na,ns}var Cve=sn(function(h,g){return HO(h,1,g)}),jve=sn(function(h,g,k){return HO(h,Vs(g)||0,k)});function Tve(h){return Rc(h,D)}function f2(h,g){if(typeof h!="function"||g!=null&&typeof g!="function")throw new ar(a);var k=function(){var I=arguments,R=g?g.apply(this,I):I[0],V=k.cache;if(V.has(R))return V.get(R);var ne=h.apply(this,I);return k.cache=V.set(R,ne)||V,ne};return k.cache=new(f2.Cache||$c),k}f2.Cache=$c;function h2(h){if(typeof h!="function")throw new ar(a);return function(){var g=arguments;switch(g.length){case 0:return!h.call(this);case 1:return!h.call(this,g[0]);case 2:return!h.call(this,g[0],g[1]);case 3:return!h.call(this,g[0],g[1],g[2])}return!h.apply(this,g)}}function Ive(h){return Jz(2,h)}var Eve=mge(function(h,g){g=g.length==1&&Ht(g[0])?or(g[0],Sn(It())):or(vo(g,1),Sn(It()));var k=g.length;return sn(function(I){for(var R=-1,V=Ro(I.length,k);++R=g}),$h=KO(function(){return arguments}())?KO:function(h){return li(h)&&Jn.call(h,"callee")&&!OO.call(h,"callee")},Ht=we.isArray,Vve=N_?Sn(N_):J0e;function Ta(h){return h!=null&&p2(h.length)&&!Oc(h)}function vi(h){return li(h)&&Ta(h)}function Hve(h){return h===!0||h===!1||li(h)&&ea(h)==ue}var Jd=o0e||uj,Zve=$_?Sn($_):Q0e;function qve(h){return li(h)&&h.nodeType===1&&!fv(h)}function Gve(h){if(h==null)return!0;if(Ta(h)&&(Ht(h)||typeof h=="string"||typeof h.splice=="function"||Jd(h)||Km(h)||$h(h)))return!h.length;var g=Lo(h);if(g==Se||g==ct)return!h.size;if(cv(h))return!TC(h).length;for(var k in h)if(Jn.call(h,k))return!1;return!0}function Yve(h,g){return sv(h,g)}function Kve(h,g,k){k=typeof k=="function"?k:n;var I=k?k(h,g):n;return I===n?sv(h,g,n,k):!!I}function QC(h){if(!li(h))return!1;var g=ea(h);return g==$e||g==ge||typeof h.message=="string"&&typeof h.name=="string"&&!fv(h)}function Xve(h){return typeof h=="number"&&DO(h)}function Oc(h){if(!Jr(h))return!1;var g=ea(h);return g==pe||g==ye||g==he||g==St}function iD(h){return typeof h=="number"&&h==Xt(h)}function p2(h){return typeof h=="number"&&h>-1&&h%1==0&&h<=F}function Jr(h){var g=typeof h;return h!=null&&(g=="object"||g=="function")}function li(h){return h!=null&&typeof h=="object"}var oD=zs?Sn(zs):tge;function Jve(h,g){return h===g||jC(h,g,WC(g))}function Qve(h,g,k){return k=typeof k=="function"?k:n,jC(h,g,WC(g),k)}function eye(h){return aD(h)&&h!=+h}function tye(h){if(Dge(h))throw new xt(o);return XO(h)}function nye(h){return h===null}function rye(h){return h==null}function aD(h){return typeof h=="number"||li(h)&&ea(h)==Ce}function fv(h){if(!li(h)||ea(h)!=Ge)return!1;var g=U_(h);if(g===null)return!0;var k=Jn.call(g,"constructor")&&g.constructor;return typeof k=="function"&&k instanceof k&&z_.call(k)==Qme}var ej=Cl?Sn(Cl):nge;function iye(h){return iD(h)&&h>=-F&&h<=F}var sD=ku?Sn(ku):rge;function m2(h){return typeof h=="string"||!Ht(h)&&li(h)&&ea(h)==bt}function es(h){return typeof h=="symbol"||li(h)&&ea(h)==Qe}var Km=Cc?Sn(Cc):ige;function oye(h){return h===n}function aye(h){return li(h)&&Lo(h)==De}function sye(h){return li(h)&&ea(h)==Dt}var lye=o2(IC),uye=o2(function(h,g){return h<=g});function lD(h){if(!h)return[];if(Ta(h))return m2(h)?Ut(h):ja(h);if(Q1&&h[Q1])return _e(h[Q1]());var g=Lo(h),k=g==Se?Me:g==ct?et:Xm;return k(h)}function zc(h){if(!h)return h===0?h:0;if(h=Vs(h),h===Y||h===-Y){var g=h<0?-1:1;return g*H}return h===h?h:0}function Xt(h){var g=zc(h),k=g%1;return g===g?k?g-k:g:0}function uD(h){return h?Th(Xt(h),0,ce):0}function Vs(h){if(typeof h=="number")return h;if(es(h))return ee;if(Jr(h)){var g=typeof h.valueOf=="function"?h.valueOf():h;h=Jr(g)?g+"":g}if(typeof h!="string")return h===0?h:+h;h=X1(h);var k=Ko.test(h);return k||Bn.test(h)?Ei(h.slice(2),k?2:8):Ya.test(h)?ee:+h}function cD(h){return Eu(h,Ia(h))}function cye(h){return h?Th(Xt(h),-F,F):h===0?h:0}function Wn(h){return h==null?"":Qa(h)}var dye=qm(function(h,g){if(cv(g)||Ta(g)){Eu(g,eo(g),h);return}for(var k in g)Jn.call(g,k)&&iv(h,k,g[k])}),dD=qm(function(h,g){Eu(g,Ia(g),h)}),g2=qm(function(h,g,k,I){Eu(g,Ia(g),h,I)}),fye=qm(function(h,g,k,I){Eu(g,eo(g),h,I)}),hye=Lc(_C);function pye(h,g){var k=Zm(h);return g==null?k:WO(k,g)}var mye=sn(function(h,g){h=tn(h);var k=-1,I=g.length,R=I>2?g[2]:n;for(R&&ta(g[0],g[1],R)&&(I=1);++k1),V}),Eu(h,UC(h),k),I&&(k=Us(k,f|p|v,jge));for(var R=g.length;R--;)RC(k,g[R]);return k});function Rye(h,g){return hD(h,h2(It(g)))}var Lye=Lc(function(h,g){return h==null?{}:sge(h,g)});function hD(h,g){if(h==null)return{};var k=or(UC(h),function(I){return[I]});return g=It(g),iz(h,k,function(I,R){return g(I,R[0])})}function Pye(h,g,k){g=Kd(g,h);var I=-1,R=g.length;for(R||(R=1,h=n);++Ig){var I=h;h=g,g=I}if(k||h%1||g%1){var R=AO();return Ro(h+R*(g-h+Ii("1e-"+((R+"").length-1))),g)}return NC(h,g)}var Zye=Gm(function(h,g,k){return g=g.toLowerCase(),h+(k?gD(g):g)});function gD(h){return rj(Wn(h).toLowerCase())}function vD(h){return h=Wn(h),h&&h.replace(Cr,J1).replace(F1,"")}function qye(h,g,k){h=Wn(h),g=Qa(g);var I=h.length;k=k===n?I:Th(Xt(k),0,I);var R=k;return k-=g.length,k>=0&&h.slice(k,R)==g}function Gye(h){return h=Wn(h),h&&yc.test(h)?h.replace(co,N):h}function Yye(h){return h=Wn(h),h&&$o.test(h)?h.replace(Rr,"\\$&"):h}var Kye=Gm(function(h,g,k){return h+(k?"-":"")+g.toLowerCase()}),Xye=Gm(function(h,g,k){return h+(k?" ":"")+g.toLowerCase()}),Jye=xz("toLowerCase");function Qye(h,g,k){h=Wn(h),g=Xt(g);var I=g?hn(h):0;if(!g||I>=g)return h;var R=(g-I)/2;return i2(H_(R),k)+h+i2(V_(R),k)}function ebe(h,g,k){h=Wn(h),g=Xt(g);var I=g?hn(h):0;return g&&I>>0,k?(h=Wn(h),h&&(typeof g=="string"||g!=null&&!ej(g))&&(g=Qa(g),!g&&Q(h))?Xd(Ut(h),0,k):h.split(g,k)):[]}var sbe=Gm(function(h,g,k){return h+(k?" ":"")+rj(g)});function lbe(h,g,k){return h=Wn(h),k=k==null?0:Th(Xt(k),0,h.length),g=Qa(g),h.slice(k,k+g.length)==g}function ube(h,g,k){var I=U.templateSettings;k&&ta(h,g,k)&&(g=n),h=Wn(h),g=g2({},g,I,Tz);var R=g2({},g.imports,I.imports,Tz),V=eo(R),ne=Wm(R,V),se,ve,Re=0,Le=g.interpolate||Ka,Ae="__p += '",tt=Qo((g.escape||Ka).source+"|"+Le.source+"|"+(Le===qa?ii:Ka).source+"|"+(g.evaluate||Ka).source+"|$","g"),pt="//# sourceURL="+(Jn.call(g,"sourceURL")?(g.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Wd+"]")+` +`;h.replace(tt,function($t,mn,_n,ts,na,ns){return _n||(_n=ts),Ae+=h.slice(Re,ns).replace(po,z),mn&&(se=!0,Ae+=`' + +__e(`+mn+`) + +'`),na&&(ve=!0,Ae+=`'; +`+na+`; +__p += '`),_n&&(Ae+=`' + +((__t = (`+_n+`)) == null ? '' : __t) + +'`),Re=ns+$t.length,$t}),Ae+=`'; +`;var Nt=Jn.call(g,"variable")&&g.variable;if(!Nt)Ae=`with (obj) { +`+Ae+` +} +`;else if(nr.test(Nt))throw new xt(s);Ae=(ve?Ae.replace(Ki,""):Ae).replace(No,"$1").replace(Ps,"$1;"),Ae="function("+(Nt||"obj")+`) { +`+(Nt?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(se?", __e = _.escape":"")+(ve?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+Ae+`return __p +}`;var nn=bD(function(){return Gt(V,pt+"return "+Ae).apply(n,ne)});if(nn.source=Ae,QC(nn))throw nn;return nn}function cbe(h){return Wn(h).toLowerCase()}function dbe(h){return Wn(h).toUpperCase()}function fbe(h,g,k){if(h=Wn(h),h&&(k||g===n))return X1(h);if(!h||!(g=Qa(g)))return h;var I=Ut(h),R=Ut(g),V=Zd(I,R),ne=O_(I,R)+1;return Xd(I,V,ne).join("")}function hbe(h,g,k){if(h=Wn(h),h&&(k||g===n))return h.slice(0,an(h)+1);if(!h||!(g=Qa(g)))return h;var I=Ut(h),R=O_(I,Ut(g))+1;return Xd(I,0,R).join("")}function pbe(h,g,k){if(h=Wn(h),h&&(k||g===n))return h.replace(fo,"");if(!h||!(g=Qa(g)))return h;var I=Ut(h),R=Zd(I,Ut(g));return Xd(I,R).join("")}function mbe(h,g){var k=M,I=O;if(Jr(g)){var R="separator"in g?g.separator:R;k="length"in g?Xt(g.length):k,I="omission"in g?Qa(g.omission):I}h=Wn(h);var V=h.length;if(Q(h)){var ne=Ut(h);V=ne.length}if(k>=V)return h;var se=k-hn(I);if(se<1)return I;var ve=ne?Xd(ne,0,se).join(""):h.slice(0,se);if(R===n)return ve+I;if(ne&&(se+=ve.length-se),ej(R)){if(h.slice(se).search(R)){var Re,Le=ve;for(R.global||(R=Qo(R.source,Wn(Ga.exec(R))+"g")),R.lastIndex=0;Re=R.exec(Le);)var Ae=Re.index;ve=ve.slice(0,Ae===n?se:Ae)}}else if(h.indexOf(Qa(R),se)!=se){var tt=ve.lastIndexOf(R);tt>-1&&(ve=ve.slice(0,tt))}return ve+I}function gbe(h){return h=Wn(h),h&&xa.test(h)?h.replace(zn,Tt):h}var vbe=Gm(function(h,g,k){return h+(k?" ":"")+g.toUpperCase()}),rj=xz("toUpperCase");function yD(h,g,k){return h=Wn(h),g=k?n:g,g===n?de(h)?Hr(h):Z1(h):h.match(g)||[]}var bD=sn(function(h,g){try{return Jo(h,n,g)}catch(k){return QC(k)?k:new xt(k)}}),ybe=Lc(function(h,g){return Sa(g,function(k){k=Nu(k),Mc(h,k,XC(h[k],h))}),h});function bbe(h){var g=h==null?0:h.length,k=It();return h=g?or(h,function(I){if(typeof I[1]!="function")throw new ar(a);return[k(I[0]),I[1]]}):[],sn(function(I){for(var R=-1;++RF)return[];var k=ce,I=Ro(h,ce);g=It(g),h-=ce;for(var R=Hd(I,g);++k0||g<0)?new yn(k):(h<0?k=k.takeRight(-h):h&&(k=k.drop(h)),g!==n&&(g=Xt(g),k=g<0?k.dropRight(-g):k.take(g-h)),k)},yn.prototype.takeRightWhile=function(h){return this.reverse().takeWhile(h).reverse()},yn.prototype.toArray=function(){return this.take(ce)},Iu(yn.prototype,function(h,g){var k=/^(?:filter|find|map|reject)|While$/.test(g),I=/^(?:head|last)$/.test(g),R=U[I?"take"+(g=="last"?"Right":""):g],V=I||/^find/.test(g);R&&(U.prototype[g]=function(){var ne=this.__wrapped__,se=I?[1]:arguments,ve=ne instanceof yn,Re=se[0],Le=ve||Ht(ne),Ae=function(mn){var _n=R.apply(U,Cu([mn],se));return I&&tt?_n[0]:_n};Le&&k&&typeof Re=="function"&&Re.length!=1&&(ve=Le=!1);var tt=this.__chain__,pt=!!this.__actions__.length,Nt=V&&!tt,nn=ve&&!pt;if(!V&&Le){ne=nn?ne:new yn(this);var $t=h.apply(ne,se);return $t.__actions__.push({func:u2,args:[Ae],thisArg:n}),new Fs($t,tt)}return Nt&&nn?h.apply(this,se):($t=this.thru(Ae),Nt?I?$t.value()[0]:$t.value():$t)})}),Sa(["pop","push","shift","sort","splice","unshift"],function(h){var g=Qi[h],k=/^(?:push|sort|unshift)$/.test(h)?"tap":"thru",I=/^(?:pop|shift)$/.test(h);U.prototype[h]=function(){var R=arguments;if(I&&!this.__chain__){var V=this.value();return g.apply(Ht(V)?V:[],R)}return this[k](function(ne){return g.apply(Ht(ne)?ne:[],R)})}}),Iu(yn.prototype,function(h,g){var k=U[g];if(k){var I=k.name+"";Jn.call(Hm,I)||(Hm[I]=[]),Hm[I].push({name:g,func:k})}}),Hm[n2(n,w).name]=[{name:"wrapper",func:n}],yn.prototype.clone=g0e,yn.prototype.reverse=v0e,yn.prototype.value=y0e,U.prototype.at=q1e,U.prototype.chain=G1e,U.prototype.commit=Y1e,U.prototype.next=K1e,U.prototype.plant=J1e,U.prototype.reverse=Q1e,U.prototype.toJSON=U.prototype.valueOf=U.prototype.value=eve,U.prototype.first=U.prototype.head,Q1&&(U.prototype[Q1]=X1e),U},xn=$i();Mo?((Mo.exports=xn)._=xn,U1._=xn):ai._=xn}).call(Ac)}(Sk,Sk.exports);var rt=Sk.exports;const Aa=fe(void 0),Fze=fe(null,(e,t,n)=>{var c;const r=e(fi);if(!r)return;if(n=n.trim(),!n){t(Aa,void 0),t(An,void 0);return}const i=parseInt(n,10);if(!isNaN(i)&&i>=r.start_slot&&i<=r.end_slot){t(Aa,void 0),t(An,i);return}if(n.length<3){t(Aa,[]),t(An,void 0);return}const o=n.split(",").map(d=>d.trim().toLowerCase()).filter(d=>!!d),a=Object.entries(qte).reduce((d,[f,p])=>(o.some(v=>p.toLowerCase().includes(v))&&d.add(parseInt(f)),d),new Set),s=(c=e(gDe))==null?void 0:c.filter(({name:d,pubkey:f,clientId:p})=>p!=null&&a.has(p)||o.some(v=>(d==null?void 0:d.includes(v))||f.toLowerCase().includes(v))).map(({pubkey:d})=>d);if(!(s!=null&&s.length)){t(Aa,[]),t(An,void 0);return}const l=s.flatMap(d=>FN(r,d)).sort();t(Aa,l)}),Uze=fe(null,(e,t)=>{const n=e(Aa);if(!n)return;const r=e(An),i=e(eu),o=n.map(l=>Math.abs(l-(r??i??0))),a=Math.min(...o),s=Math.max(o.indexOf(a),0);t(An,n[s])}),Bze=fe(null,(e,t,n)=>{const r=e(An),i=e(Aa),o=e(eu);if(o!==void 0)if(i!=null&&i.length)if(r!==void 0){const a=i.map(c=>Math.abs(c-r)),s=Math.min(...a),l=Math.max(a.indexOf(s),0);if(l>=0){const c=Math.min(Math.max(l+Math.trunc(n/4),0),i.length-1);t(An,i[c])}}else t(Uze);else r!==void 0?t(An,r+n):t(An,n+o+$n*3)});var Kf=(e=>(e.Valid="valid",e.NotReady="invalid",e.OutsideEpoch="outside-epoch",e.BeforeFirstProcessed="before-first-processed",e.Future="future",e.NotYou="not-you",e))(Kf||{});function Wze(e,t,n,r,i){return e===void 0?"valid":!t||!n||r===void 0||i===void 0?"invalid":e=i?"future":"valid":"not-you"}const gd=function(){const e=fe(),t=fe(n=>{const r=n(fi),i=n(e),o=n(ao),a=n(Xf),s=n(oo);return Wze(i,r,o,a,s)});return{slot:e,state:t,isValid:fe(n=>n(t)==="valid")}}(),Cn=fe(e=>e(gd.isValid)?e(gd.slot):void 0);var Io=(e=>(e.Count="Count",e.Pct="Pct %",e.Rate="Rate",e))(Io||{});const Cg=fe("Count"),Vze=fe(e=>{if(!e(Cn))return e(l3)}),Hze=fe(e=>{const t=e(Vze),n=e(rg);return t==null?void 0:t.reduce((r,i,o)=>{var l;const a=n==null?void 0:n[o];if(!a)return r;const s=$E.safeParse(a.kind);return s.error||(r[l=s.data]??(r[l]=[]),r[s.data].push(i)),r},{})}),Zze=fe(e=>{const t=e(rg),n=["snapld","snapdc","snapin"];if(!t)return;const r=t.reduce((i,o,a)=>{const s=$E.safeParse(o.kind);if(s.error||!n.includes(s.data))return i;const l=i.get(s.data)??[];return l.push(a),i.set(s.data,l),i},new Map);return Array.from(r.entries()).map(([i,o])=>[i,o])}),qze=fe(e=>{const t=e(l3),n=e(Zze);if(!(!t||!n))return n.reduce((r,[i,o])=>(r[i]=o.map(a=>t[a]),r),{})}),Gze=fe(e=>{var t;return e(Cn)?void 0:e(Cg)==="Rate"?e(cre):(t=e(kG))==null?void 0:t.waterfall}),ure=Co([]),cre=fe(e=>{var o;if(e(Cg)!=="Rate")return;const t=e(ure);if(t.length<2)return(o=t[0])==null?void 0:o.waterfall;const n=t[t.length-1],r=t[0],i=(n.ts-r.ts)/1e3;return sG(n.waterfall,a=>{for(const s in a.in)if(Object.prototype.hasOwnProperty.call(a.in,s)){const l=a.in[s]-r.waterfall.in[s];a.in[s]=Math.trunc(l/i)}for(const s in a.out)if(Object.prototype.hasOwnProperty.call(a.out,s)){const l=a.out[s]-r.waterfall.out[s];a.out[s]=Math.trunc(l/i)}})},(e,t,n)=>{t(ure,r=>{const i=performance.now();for(n&&r.push({waterfall:n,ts:i});r.length&&i-r[0].ts>1e3;)r.shift();const o=Object.values(r[r.length-1].waterfall.in);for(;r.length>1&&Object.values(r[0].waterfall.in).some((a,s)=>o[s]-a<0);)r.shift()})}),Nb=fe(e=>{const t=e(rg),n=rt.countBy(t,r=>r.kind);return Object.fromEntries($E.options.map(r=>[r,n[r]??0]))}),Yze={};function qN(e,t){let n=null;const r=new Map,i=new Set,o=s=>{let l;if(l=r.get(s),l!==void 0)if(n!=null&&n(l[1],s))o.remove(s);else return l[0];const c=e(s);return r.set(s,[c,Date.now()]),a("CREATE",s,c),c},a=(s,l,c)=>{for(const d of i)d({type:s,param:l,atom:c})};return o.unstable_listen=s=>(i.add(s),()=>{i.delete(s)}),o.getParams=()=>r.keys(),o.remove=s=>{{if(!r.has(s))return;const[l]=r.get(s);r.delete(s),a("REMOVE",s,l)}},o.setShouldRemove=s=>{if(n=s,!!n)for(const[l,[c,d]]of r)n(d,l)&&(r.delete(l),a("REMOVE",l,c))},o}const Kze=e=>typeof(e==null?void 0:e.then)=="function";function Xze(e=()=>{try{return window.localStorage}catch(n){(Yze?"production":void 0)!=="production"&&typeof window<"u"&&console.warn(n);return}},t){var n;let r,i;const o={getItem:(l,c)=>{var d,f;const p=x=>{if(x=x||"",r!==x){try{i=JSON.parse(x,t==null?void 0:t.reviver)}catch{return c}r=x}return i},v=(f=(d=e())==null?void 0:d.getItem(l))!=null?f:null;return Kze(v)?v.then(p):p(v)},setItem:(l,c)=>{var d;return(d=e())==null?void 0:d.setItem(l,JSON.stringify(c,void 0))},removeItem:l=>{var c;return(c=e())==null?void 0:c.removeItem(l)}},a=l=>(c,d,f)=>l(c,p=>{let v;try{v=JSON.parse(p||"")}catch{v=f}d(v)});let s;try{s=(n=e())==null?void 0:n.subscribe}catch{}return!s&&typeof window<"u"&&typeof window.addEventListener=="function"&&window.Storage&&(s=(l,c)=>{if(!(e()instanceof window.Storage))return()=>{};const d=f=>{f.storageArea===e()&&f.key===l&&c(f.newValue)};return window.addEventListener("storage",d),()=>{window.removeEventListener("storage",d)}}),s&&(o.subscribe=a(s)),o}Xze();const GN=3,jg=fe();fe();const Jze=fe(!1),dre=fe(),Ck=Co([]),fi=fe(e=>{const t=e(oo),n=e(Ck);if(!n.length||t===void 0)return;const r=n.find(({start_slot:i,end_slot:o})=>t>=i&&t<=o);if(r)return r},(e,t,n)=>{t(Ck,r=>{r.findIndex(i=>i.epoch===n.epoch)===-1&&r.push(n)})}),Qze=fe(null,(e,t,n)=>{t(Ck,r=>r.filter(({epoch:i})=>i>=n))}),eDe=fe(e=>{const t=e(fi);return t?e(Ck).find(n=>n.epoch===(t==null?void 0:t.epoch)+1):void 0}),[An,tDe]=function(){const e=fe();return[fe(t=>t(e),(t,n,r)=>{const i=t(fi);if(!i)return;const o=r===void 0?void 0:rt.clamp(_i(r),i.start_slot,i.end_slot);n(e,o)}),fe(t=>t(e)===void 0)]}(),YN=Co({}),nDe=Gf(e=>fe(t=>e!==void 0&&t(YN)[e]||"incomplete"),{maxSize:1e3});var $b=(e=>(e.AllSlots="All Slots",e.MySlots="My Slots",e))($b||{});const Tg=function(){const e=fe();return fe(t=>t(e)??"All Slots",(t,n,r)=>{n(e,r);const i=t(Cn);n(An,i??void 0)})}(),rDe=fe(null,(e,t,n,r)=>{(r==="completed"||r==="optimistically_confirmed"||r==="rooted")&&t(oo,n+1),t(YN,i=>{i[n]=r})}),fre=10,iDe=fe(e=>{const t=e(ao),n=e(Cn);if(t===void 0||n===void 0)return;const r=t.indexOf(_i(n));if(r!==-1)return t.slice(Math.max(r-fre,0),r+fre)}),jk=1e3,oDe=fe(null,(e,t)=>{const n=e(An),r=e(iDe),i=e(oo),o=e(Aa),a=e(ao),s=e(Tg),l=n??i;l!==void 0&&t(YN,c=>{const d=l-jk/2,f=l+jk/2,p=Object.keys(c);for(const v of p){const x=Number(v),y=_i(x);o!=null&&o.includes(y)||r!=null&&r.includes(y)||s==="My Slots"&&(a!=null&&a.includes(y))||!isNaN(x)&&(xf)&&delete c[x]}})}),Tk=Co({}),KN=qN(e=>fe(t=>{var n;return e!==void 0?(n=t(Tk)[e])==null?void 0:n.publish:void 0})),hre=qN(e=>fe(t=>e!==void 0?t(Tk)[e]:void 0)),aDe=fe(null,(e,t,n)=>{const r=n.publish.slot;t(Tk,i=>{var o,a,s,l,c,d,f;n.transactions??(n.transactions=(o=i[r])==null?void 0:o.transactions),n.tile_primary_metric??(n.tile_primary_metric=(a=i[r])==null?void 0:a.tile_primary_metric),n.tile_timers??(n.tile_timers=(s=i[r])==null?void 0:s.tile_timers),n.waterfall??(n.waterfall=(l=i[r])==null?void 0:l.waterfall),n.scheduler_counts??(n.scheduler_counts=(c=i[r])==null?void 0:c.scheduler_counts),n.limits??(n.limits=(d=i[r])==null?void 0:d.limits),n.scheduler_stats??(n.scheduler_stats=(f=i[r])==null?void 0:f.scheduler_stats),i[r]=n})}),sDe=fe(null,(e,t)=>{const n=e(An),r=e(Cn),i=e(oo),o=e(Aa),a=n??i,s=e(Tg),l=e(ao),{earliestQuickSlots:c,mostRecentQuickSlots:d}=e(Tre);a!==void 0&&t(Tk,f=>{const p=a-jk/2,v=a+jk/2,x=Object.keys(f);for(const y of x){const b=Number(y),w=_i(b);o!=null&&o.length&&o.includes(w)||r!==void 0&&w===_i(r)||s==="My Slots"&&(l!=null&&l.includes(w))||c&&c.includes(b)||d&&d.includes(b)||!isNaN(b)&&(bv)&&(delete f[b],KN.remove(b))}})}),Xf=fe(e=>{var t;if(xi){const n=e(Zu);return(n==null?void 0:n.ledger_max_slot)==null?void 0:n.ledger_max_slot+1}return((t=e(Hl))==null?void 0:t.catching_up_first_replay_slot)??void 0}),pre=fe(e=>{const t=e(ao),n=e(Xf);if(!t||n===void 0)return;const r=t.findIndex(i=>i>=n);return r!==-1?r:void 0});fe(e=>{const t=e(ao),n=e(pre);return n?t==null?void 0:t[n]:void 0});const XN=fe(e=>{const t=e(ao),n=e(Mb);return n?t==null?void 0:t[n-1]:void 0}),mre=fe(void 0),oo=fe(e=>e(mre),(e,t,n)=>{const r=e(Rb);(r===void 0||n>=r)&&t(Rb,n),t(mre,i=>Math.max(n,i??0))}),ao=fe(e=>{const t=e(fi),n=e(cp);if(!(!t||!n))return FN(t,n)}),lDe=fe(e=>{const t=e(eDe),n=e(cp);if(!(!t||!n))return FN(t,n)}),Mb=fe(void 0),Rb=fe(e=>{const t=e(ao),n=e(Mb);if(!(!t||n===void 0))return t[n]},(e,t,n)=>{const r=e(ao);r!=null&&t(Mb,i=>{let o=i??0;for((r[o-1]??0)>n&&(o=0);o=r.length))return o})}),uDe=fe(e=>{const t=e(lDe);if(t)return t[0]}),gre=fe(e=>{const t=e(ao),n=e(Mb);if(t)return n===void 0?t[t.length-1]:t[n-1]}),cDe=fe(e=>{const t=e(oo),n=e(gre);return t===void 0||n===void 0?!1:t>=n&&t<=n+$n}),eu=fe(e=>{const t=e(oo);if(t!=null)return _i(t)}),Ku=Co({}),JN=fe(e=>Object.values(e(Ku))),dDe=fe(e=>e(JN).length),vre=qN(e=>fe(t=>e!==void 0?t(Ku)[e]:void 0)),fDe=fe(null,(e,t,n)=>{n!=null&&n.length&&t(Ku,r=>{for(const i of n)r[i.identity_pubkey]?r[i.identity_pubkey]=rt.merge(r[i.identity_pubkey],i):r[i.identity_pubkey]=i})}),hDe=6e4*5,pDe=fe(null,(e,t,n)=>{n!=null&&n.length&&(t(Ku,r=>{for(const i of n)r[i.identity_pubkey]&&(r[i.identity_pubkey].removed=!0,vre.remove(i.identity_pubkey))}),setTimeout(()=>{t(Ku,r=>{for(const i of n)r[i.identity_pubkey]&&delete r[i.identity_pubkey]})},hDe))}),Ig=fe(e=>{const t=e(Ku);if(!t)return;const n=Object.values(t).filter(s=>!s.removed),r=n.filter(s=>s.vote.every(l=>!l.activated_stake)&&!!s.gossip),i=n.filter(s=>s.vote.some(l=>l.activated_stake)),o=n.reduce((s,l)=>l.vote.reduce((c,d)=>d.delinquent?c:c+d.activated_stake,0n)+s,0n),a=n.reduce((s,l)=>l.vote.reduce((c,d)=>d.delinquent?c+d.activated_stake:c,0n)+s,0n);return{rpcCount:r.length,validatorCount:i.length,activeStake:o,delinquentStake:a}}),yre=fe(e=>{const t=e(Ig);if(t&&t.activeStake+t.delinquentStake)return t.activeStake+t.delinquentStake}),bre=fe(e=>{const t=e(Ku),n=e(cp),r=e(Ig);if(!t||!n||!r)return;const i=t[n];if(i)return nre(i)}),mDe=fe(e=>{const t=e(yre),n=e(bre);if(!(n===void 0||!t))return Number(n)/Number(t)*100}),xre=fe(e=>{const t=e(fi),n=e(Ku),r=e(dDe);if(!(!t||r===0))return{epoch:t,peers:n}}),gDe=fe(e=>{const t=e(xre);if(!t)return;const{epoch:n,peers:r}=t;return[...new Set(n.leader_slots.map(i=>n.staked_pubkeys[i]))].map(i=>{var o,a,s,l,c;return{pubkey:i,name:(s=(a=(o=r[i])==null?void 0:o.info)==null?void 0:a.name)==null?void 0:s.toLowerCase(),clientId:(c=(l=r[i])==null?void 0:l.gossip)==null?void 0:c.client_id}})}),QN=function(){const e=Co(void 0);return fe(t=>t(e),(t,n,r)=>{const i=new Map;for(let o=0;oi(e)),fe(null,(i,o,a,s)=>{if(o(e,l=>{for(const c of a)l.add(c);for(const c of s)l.delete(c)}),!i(t))o(t,!0),o(n,l=>{for(const c of a)l.add(c);for(const c of s)l.delete(c)});else if(a.length>0||s.length>0){const l=Date.now(),c={addPeers:a,removePeers:s,timestamp:l};o(r,d=>{d.push(c)})}}),fe(i=>{const o=i(n),a=i(e);let s=0;for(const l of o)a.has(l)||s++;return{online:a.size+s-o.size,offline:s}}),fe(null,(i,o)=>{const a=i(r);if(a.length===0)return;const s=Date.now()-_re,l=a.findIndex(d=>d.timestamp>=s);if(l===0)return;const c=l===-1?a.length:l;o(n,d=>{for(let f=0;fl===-1?[]:d.slice(l))}),fe(null,(i,o)=>{o(e,new Set),o(t,!1),o(n,new Set),o(r,[])})]}(),_De=fe(e=>{var i;const t=new Set,n=(i=e(QN))==null?void 0:i.keys();if(!n)return t;const r=e(wre);for(const o of n)r.has(o)||t.add(o);return t}),wDe=Gf(e=>fe(t=>{if(e===void 0)return!0;const n=t(oo);return n===void 0||e>=n}),{maxSize:1e3}),Eg=fe(e=>{const t=e(xG);if(!t)return 300;const n=Math.trunc(t/1e6);return Math.max(50,Math.min(n,1e3*10))}),kre=Co({}),Sre=fe(e=>{const t=e(fi);if(t)return e(kre)[t.epoch]},(e,t,n)=>{t(kre,r=>{r[n.epoch]=n})}),kDe=fe(e=>{const t=e(oo);if(t===void 0)return null;const n=e(An);return n===void 0?"Live":_i(n)===_i(t)?"Current":n>t?"Future":"Past"}),[Ik,SDe,CDe,jDe]=function(){const e=Co(new Set);return[fe(t=>t(e)),fe(null,(t,n,r)=>{n(e,i=>{for(const o of r)i.add(o)})}),fe(null,(t,n,r)=>{n(e,i=>{i.delete(r)})}),fe(null,(t,n,r,i)=>{n(e,o=>{const a=new Set;for(const s of o)si||a.add(s);return a})})]}(),Cre=fe(e=>{const t=e(gG);if(t!=null)return Math.round(t/sN)}),[jre,TDe,IDe,EDe,NDe]=function(){const e=Co(new Map);return[fe(t=>{const n=t(e),r=t(Ik),i=new Set;for(const[o,a]of n){if(a===null){i.add(o);continue}rre(o,a,r)>1&&i.add(o)}return i}),fe(null,(t,n,r,i)=>{n(e,o=>{o.set(r,i)})}),fe(null,(t,n,r)=>{n(e,i=>{i.delete(r)})}),fe(null,(t,n,r)=>{n(e,i=>{if(!r){i.clear();return}const o=[];i.forEach((a,s)=>{(si.delete(a))})}),fe(null,(t,n,r)=>{const i=new Map;let o=0;for(let a=0;a{const t=e(ao),n=e(pre),r=e(Mb);if(!t||n===void 0)return{};const i=t.slice(n,r);return{earliestQuickSlots:i.slice(0,GN),mostRecentQuickSlots:i.slice(-GN).toReversed()}});function $De(){const e=J(Zu);if(e)return u.jsx(lre,{currentBytes:e.downloading_incremental_snapshot_current_bytes,totalBytes:e.downloading_incremental_snapshot_total_bytes,remainingSecs:e.downloading_incremental_snapshot_remaining_secs})}var e$=Pb(),qt=e=>Lb(e,e$),t$=Pb();qt.write=e=>Lb(e,t$);var Ek=Pb();qt.onStart=e=>Lb(e,Ek);var n$=Pb();qt.onFrame=e=>Lb(e,n$);var r$=Pb();qt.onFinish=e=>Lb(e,r$);var Ng=[];qt.setTimeout=(e,t)=>{const n=qt.now()+t,r=()=>{const o=Ng.findIndex(a=>a.cancel==r);~o&&Ng.splice(o,1),Qf-=~o?1:0},i={time:n,handler:e,cancel:r};return Ng.splice(Ire(n),0,i),Qf+=1,Ere(),i};var Ire=e=>~(~Ng.findIndex(t=>t.time>e)||~Ng.length);qt.cancel=e=>{Ek.delete(e),n$.delete(e),r$.delete(e),e$.delete(e),t$.delete(e)},qt.sync=e=>{o$=!0,qt.batchedUpdates(e),o$=!1},qt.throttle=e=>{let t;function n(){try{e(...t)}finally{t=null}}function r(...i){t=i,qt.onStart(n)}return r.handler=e,r.cancel=()=>{Ek.delete(n),t=null},r};var i$=typeof window<"u"?window.requestAnimationFrame:()=>{};qt.use=e=>i$=e,qt.now=typeof performance<"u"?()=>performance.now():Date.now,qt.batchedUpdates=e=>e(),qt.catch=console.error,qt.frameLoop="always",qt.advance=()=>{qt.frameLoop!=="demand"?console.warn("Cannot call the manual advancement of rafz whilst frameLoop is not set as demand"):$re()};var Jf=-1,Qf=0,o$=!1;function Lb(e,t){o$?(t.delete(e),e(0)):(t.add(e),Ere())}function Ere(){Jf<0&&(Jf=0,qt.frameLoop!=="demand"&&i$(Nre))}function MDe(){Jf=-1}function Nre(){~Jf&&(i$(Nre),qt.batchedUpdates($re))}function $re(){const e=Jf;Jf=qt.now();const t=Ire(Jf);if(t&&(Mre(Ng.splice(0,t),n=>n.handler()),Qf-=t),!Qf){MDe();return}Ek.flush(),e$.flush(e?Math.min(64,Jf-e):16.667),n$.flush(),t$.flush(),r$.flush()}function Pb(){let e=new Set,t=e;return{add(n){Qf+=t==e&&!e.has(n)?1:0,e.add(n)},delete(n){return Qf-=t==e&&e.has(n)?1:0,e.delete(n)},flush(n){t.size&&(e=new Set,Qf-=t.size,Mre(t,r=>r(n)&&e.add(r)),Qf+=e.size,t=e)}}}function Mre(e,t){e.forEach(n=>{try{t(n)}catch(r){qt.catch(r)}})}var RDe=Object.defineProperty,LDe=(e,t)=>{for(var n in t)RDe(e,n,{get:t[n],enumerable:!0})},tu={};LDe(tu,{assign:()=>ODe,colors:()=>eh,createStringInterpolator:()=>l$,skipAnimation:()=>Lre,to:()=>Rre,willAdvance:()=>u$});function a$(){}var PDe=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),He={arr:Array.isArray,obj:e=>!!e&&e.constructor.name==="Object",fun:e=>typeof e=="function",str:e=>typeof e=="string",num:e=>typeof e=="number",und:e=>e===void 0};function vd(e,t){if(He.arr(e)){if(!He.arr(t)||e.length!==t.length)return!1;for(let n=0;ne.forEach(t);function Xu(e,t,n){if(He.arr(e)){for(let r=0;rHe.und(e)?[]:He.arr(e)?e:[e];function Ob(e,t){if(e.size){const n=Array.from(e);e.clear(),Ft(n,t)}}var zb=(e,...t)=>Ob(e,n=>n(...t)),s$=()=>typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),l$,Rre,eh=null,Lre=!1,u$=a$,ODe=e=>{e.to&&(Rre=e.to),e.now&&(qt.now=e.now),e.colors!==void 0&&(eh=e.colors),e.skipAnimation!=null&&(Lre=e.skipAnimation),e.createStringInterpolator&&(l$=e.createStringInterpolator),e.requestAnimationFrame&&qt.use(e.requestAnimationFrame),e.batchedUpdates&&(qt.batchedUpdates=e.batchedUpdates),e.willAdvance&&(u$=e.willAdvance),e.frameLoop&&(qt.frameLoop=e.frameLoop)},Db=new Set,ul=[],c$=[],Nk=0,$k={get idle(){return!Db.size&&!ul.length},start(e){Nk>e.priority?(Db.add(e),qt.onStart(zDe)):(Pre(e),qt(d$))},advance:d$,sort(e){if(Nk)qt.onFrame(()=>$k.sort(e));else{const t=ul.indexOf(e);~t&&(ul.splice(t,1),Ore(e))}},clear(){ul=[],Db.clear()}};function zDe(){Db.forEach(Pre),Db.clear(),qt(d$)}function Pre(e){ul.includes(e)||Ore(e)}function Ore(e){ul.splice(DDe(ul,t=>t.priority>e.priority),0,e)}function d$(e){const t=c$;for(let n=0;n0}function DDe(e,t){const n=e.findIndex(t);return n<0?e.length:n}var ADe={transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199},nu="[-+]?\\d*\\.?\\d+",Mk=nu+"%";function Rk(...e){return"\\(\\s*("+e.join(")\\s*,\\s*(")+")\\s*\\)"}var FDe=new RegExp("rgb"+Rk(nu,nu,nu)),UDe=new RegExp("rgba"+Rk(nu,nu,nu,nu)),BDe=new RegExp("hsl"+Rk(nu,Mk,Mk)),WDe=new RegExp("hsla"+Rk(nu,Mk,Mk,nu)),VDe=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,HDe=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,ZDe=/^#([0-9a-fA-F]{6})$/,qDe=/^#([0-9a-fA-F]{8})$/;function GDe(e){let t;return typeof e=="number"?e>>>0===e&&e>=0&&e<=4294967295?e:null:(t=ZDe.exec(e))?parseInt(t[1]+"ff",16)>>>0:eh&&eh[e]!==void 0?eh[e]:(t=FDe.exec(e))?($g(t[1])<<24|$g(t[2])<<16|$g(t[3])<<8|255)>>>0:(t=UDe.exec(e))?($g(t[1])<<24|$g(t[2])<<16|$g(t[3])<<8|Are(t[4]))>>>0:(t=VDe.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+"ff",16)>>>0:(t=qDe.exec(e))?parseInt(t[1],16)>>>0:(t=HDe.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+t[4]+t[4],16)>>>0:(t=BDe.exec(e))?(zre(Dre(t[1]),Lk(t[2]),Lk(t[3]))|255)>>>0:(t=WDe.exec(e))?(zre(Dre(t[1]),Lk(t[2]),Lk(t[3]))|Are(t[4]))>>>0:null}function f$(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function zre(e,t,n){const r=n<.5?n*(1+t):n+t-n*t,i=2*n-r,o=f$(i,r,e+1/3),a=f$(i,r,e),s=f$(i,r,e-1/3);return Math.round(o*255)<<24|Math.round(a*255)<<16|Math.round(s*255)<<8}function $g(e){const t=parseInt(e,10);return t<0?0:t>255?255:t}function Dre(e){return(parseFloat(e)%360+360)%360/360}function Are(e){const t=parseFloat(e);return t<0?0:t>1?255:Math.round(t*255)}function Lk(e){const t=parseFloat(e);return t<0?0:t>100?1:t/100}function Fre(e){let t=GDe(e);if(t===null)return e;t=t||0;const n=(t&4278190080)>>>24,r=(t&16711680)>>>16,i=(t&65280)>>>8,o=(t&255)/255;return`rgba(${n}, ${r}, ${i}, ${o})`}var Ab=(e,t,n)=>{if(He.fun(e))return e;if(He.arr(e))return Ab({range:e,output:t,extrapolate:n});if(He.str(e.output[0]))return l$(e);const r=e,i=r.output,o=r.range||[0,1],a=r.extrapolateLeft||r.extrapolate||"extend",s=r.extrapolateRight||r.extrapolate||"extend",l=r.easing||(c=>c);return c=>{const d=KDe(c,o);return YDe(c,o[d],o[d+1],i[d],i[d+1],l,a,s,r.map)}};function YDe(e,t,n,r,i,o,a,s,l){let c=l?l(e):e;if(cn){if(s==="identity")return c;s==="clamp"&&(c=n)}return r===i?r:t===n?e<=t?r:i:(t===-1/0?c=-c:n===1/0?c=c-t:c=(c-t)/(n-t),c=o(c),r===-1/0?c=-c:i===1/0?c=c+r:c=c*(i-r)+r,c)}function KDe(e,t){for(var n=1;n=e);++n);return n-1}var XDe={linear:e=>e},Fb=Symbol.for("FluidValue.get"),Mg=Symbol.for("FluidValue.observers"),cl=e=>!!(e&&e[Fb]),Fa=e=>e&&e[Fb]?e[Fb]():e,Ure=e=>e[Mg]||null;function JDe(e,t){e.eventObserved?e.eventObserved(t):e(t)}function Ub(e,t){const n=e[Mg];n&&n.forEach(r=>{JDe(r,t)})}var Bre=class{constructor(e){if(!e&&!(e=this.get))throw Error("Unknown getter");QDe(this,e)}},QDe=(e,t)=>Wre(e,Fb,t);function Rg(e,t){if(e[Fb]){let n=e[Mg];n||Wre(e,Mg,n=new Set),n.has(t)||(n.add(t),e.observerAdded&&e.observerAdded(n.size,t))}return t}function Bb(e,t){const n=e[Mg];if(n&&n.has(t)){const r=n.size-1;r?n.delete(t):e[Mg]=null,e.observerRemoved&&e.observerRemoved(r,t)}}var Wre=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),Pk=/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,eAe=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi,Vre=new RegExp(`(${Pk.source})(%|[a-z]+)`,"i"),tAe=/rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi,Ok=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/,Hre=e=>{const[t,n]=nAe(e);if(!t||s$())return e;const r=window.getComputedStyle(document.documentElement).getPropertyValue(t);return r?r.trim():n&&n.startsWith("--")?window.getComputedStyle(document.documentElement).getPropertyValue(n)||e:n&&Ok.test(n)?Hre(n):n||e},nAe=e=>{const t=Ok.exec(e);if(!t)return[,];const[,n,r]=t;return[n,r]},h$,rAe=(e,t,n,r,i)=>`rgba(${Math.round(t)}, ${Math.round(n)}, ${Math.round(r)}, ${i})`,Zre=e=>{h$||(h$=eh?new RegExp(`(${Object.keys(eh).join("|")})(?!\\w)`,"g"):/^\b$/);const t=e.output.map(i=>Fa(i).replace(Ok,Hre).replace(eAe,Fre).replace(h$,Fre)),n=t.map(i=>i.match(Pk).map(Number)),r=n[0].map((i,o)=>n.map(a=>{if(!(o in a))throw Error('The arity of each "output" value must be equal');return a[o]})).map(i=>Ab({...e,output:i}));return i=>{var s;const o=!Vre.test(t[0])&&((s=t.find(l=>Vre.test(l)))==null?void 0:s.replace(Pk,""));let a=0;return t[0].replace(Pk,()=>`${r[a++](i)}${o||""}`).replace(tAe,rAe)}},p$="react-spring: ",qre=e=>{const t=e;let n=!1;if(typeof t!="function")throw new TypeError(`${p$}once requires a function parameter`);return(...r)=>{n||(t(...r),n=!0)}},iAe=qre(console.warn);function oAe(){iAe(`${p$}The "interpolate" function is deprecated in v9 (use "to" instead)`)}var aAe=qre(console.warn);function sAe(){aAe(`${p$}Directly calling start instead of using the api object is deprecated in v9 (use ".start" instead), this will be removed in later 0.X.0 versions`)}function zk(e){return He.str(e)&&(e[0]=="#"||/\d/.test(e)||!s$()&&Ok.test(e)||e in(eh||{}))}var Cp=s$()?m.useEffect:m.useLayoutEffect,lAe=()=>{const e=m.useRef(!1);return Cp(()=>(e.current=!0,()=>{e.current=!1}),[]),e};function m$(){const e=m.useState()[1],t=lAe();return()=>{t.current&&e(Math.random())}}function uAe(e,t){const[n]=m.useState(()=>({inputs:t,result:e()})),r=m.useRef(),i=r.current;let o=i;return o?t&&o.inputs&&cAe(t,o.inputs)||(o={inputs:t,result:e()}):o=n,m.useEffect(()=>{r.current=o,i==n&&(n.inputs=n.result=void 0)},[o]),o.result}function cAe(e,t){if(e.length!==t.length)return!1;for(let n=0;nm.useEffect(e,dAe),dAe=[];function v$(e){const t=m.useRef();return m.useEffect(()=>{t.current=e}),t.current}var Wb=Symbol.for("Animated:node"),fAe=e=>!!e&&e[Wb]===e,Ju=e=>e&&e[Wb],y$=(e,t)=>PDe(e,Wb,t),Dk=e=>e&&e[Wb]&&e[Wb].getPayload(),Gre=class{constructor(){y$(this,this)}getPayload(){return this.payload||[]}},Vb=class extends Gre{constructor(e){super(),this._value=e,this.done=!0,this.durationProgress=0,He.num(this._value)&&(this.lastPosition=this._value)}static create(e){return new Vb(e)}getPayload(){return[this]}getValue(){return this._value}setValue(e,t){return He.num(e)&&(this.lastPosition=e,t&&(e=Math.round(e/t)*t,this.done&&(this.lastPosition=e))),this._value===e?!1:(this._value=e,!0)}reset(){const{done:e}=this;this.done=!1,He.num(this._value)&&(this.elapsedTime=0,this.durationProgress=0,this.lastPosition=this._value,e&&(this.lastVelocity=null),this.v0=null)}},Hb=class extends Vb{constructor(e){super(0),this._string=null,this._toString=Ab({output:[e,e]})}static create(e){return new Hb(e)}getValue(){return this._string??(this._string=this._toString(this._value))}setValue(e){if(He.str(e)){if(e==this._string)return!1;this._string=e,this._value=1}else if(super.setValue(e))this._string=null;else return!1;return!0}reset(e){e&&(this._toString=Ab({output:[this.getValue(),e]})),this._value=0,super.reset()}},Ak={dependencies:null},Fk=class extends Gre{constructor(e){super(),this.source=e,this.setValue(e)}getValue(e){const t={};return Xu(this.source,(n,r)=>{fAe(n)?t[r]=n.getValue(e):cl(n)?t[r]=Fa(n):e||(t[r]=n)}),t}setValue(e){this.source=e,this.payload=this._makePayload(e)}reset(){this.payload&&Ft(this.payload,e=>e.reset())}_makePayload(e){if(e){const t=new Set;return Xu(e,this._addToPayload,t),Array.from(t)}}_addToPayload(e){Ak.dependencies&&cl(e)&&Ak.dependencies.add(e);const t=Dk(e);t&&Ft(t,n=>this.add(n))}},Yre=class extends Fk{constructor(e){super(e)}static create(e){return new Yre(e)}getValue(){return this.source.map(e=>e.getValue())}setValue(e){const t=this.getPayload();return e.length==t.length?t.map((n,r)=>n.setValue(e[r])).some(Boolean):(super.setValue(e.map(hAe)),!0)}};function hAe(e){return(zk(e)?Hb:Vb).create(e)}function b$(e){const t=Ju(e);return t?t.constructor:He.arr(e)?Yre:zk(e)?Hb:Vb}var Kre=(e,t)=>{const n=!He.fun(e)||e.prototype&&e.prototype.isReactComponent;return m.forwardRef((r,i)=>{const o=m.useRef(null),a=n&&m.useCallback(x=>{o.current=gAe(i,x)},[i]),[s,l]=mAe(r,t),c=m$(),d=()=>{const x=o.current;n&&!x||(x?t.applyAnimatedValues(x,s.getValue(!0)):!1)===!1&&c()},f=new pAe(d,l),p=m.useRef();Cp(()=>(p.current=f,Ft(l,x=>Rg(x,f)),()=>{p.current&&(Ft(p.current.deps,x=>Bb(x,p.current)),qt.cancel(p.current.update))})),m.useEffect(d,[]),g$(()=>()=>{const x=p.current;Ft(x.deps,y=>Bb(y,x))});const v=t.getComponentProps(s.getValue());return m.createElement(e,{...v,ref:a})})},pAe=class{constructor(e,t){this.update=e,this.deps=t}eventObserved(e){e.type=="change"&&qt.write(this.update)}};function mAe(e,t){const n=new Set;return Ak.dependencies=n,e.style&&(e={...e,style:t.createAnimatedStyle(e.style)}),e=new Fk(e),Ak.dependencies=null,[e,n]}function gAe(e,t){return e&&(He.fun(e)?e(t):e.current=t),t}var Xre=Symbol.for("AnimatedComponent"),vAe=(e,{applyAnimatedValues:t=()=>!1,createAnimatedStyle:n=i=>new Fk(i),getComponentProps:r=i=>i}={})=>{const i={applyAnimatedValues:t,createAnimatedStyle:n,getComponentProps:r},o=a=>{const s=Jre(a)||"Anonymous";return He.str(a)?a=o[a]||(o[a]=Kre(a,i)):a=a[Xre]||(a[Xre]=Kre(a,i)),a.displayName=`Animated(${s})`,a};return Xu(e,(a,s)=>{He.arr(e)&&(s=Jre(a)),o[s]=o(a)}),{animated:o}},Jre=e=>He.str(e)?e:e&&He.str(e.displayName)?e.displayName:He.fun(e)&&e.name||null;function Ua(e,...t){return He.fun(e)?e(...t):e}var Zb=(e,t)=>e===!0||!!(t&&e&&(He.fun(e)?e(t):ha(e).includes(t))),Qre=(e,t)=>He.obj(e)?t&&e[t]:e,eie=(e,t)=>e.default===!0?e[t]:e.default?e.default[t]:void 0,yAe=e=>e,Uk=(e,t=yAe)=>{let n=bAe;e.default&&e.default!==!0&&(e=e.default,n=Object.keys(e));const r={};for(const i of n){const o=t(e[i],i);He.und(o)||(r[i]=o)}return r},bAe=["config","onProps","onStart","onChange","onPause","onResume","onRest"],xAe={config:1,from:1,to:1,ref:1,loop:1,reset:1,pause:1,cancel:1,reverse:1,immediate:1,default:1,delay:1,onProps:1,onStart:1,onChange:1,onPause:1,onResume:1,onRest:1,onResolve:1,items:1,trail:1,sort:1,expires:1,initial:1,enter:1,update:1,leave:1,children:1,onDestroyed:1,keys:1,callId:1,parentId:1};function _Ae(e){const t={};let n=0;if(Xu(e,(r,i)=>{xAe[i]||(t[i]=r,n++)}),n)return t}function x$(e){const t=_Ae(e);if(t){const n={to:t};return Xu(e,(r,i)=>i in t||(n[i]=r)),n}return{...e}}function qb(e){return e=Fa(e),He.arr(e)?e.map(qb):zk(e)?tu.createStringInterpolator({range:[0,1],output:[e,e]})(1):e}function tie(e){for(const t in e)return!0;return!1}function _$(e){return He.fun(e)||He.arr(e)&&He.obj(e[0])}function w$(e,t){var n;(n=e.ref)==null||n.delete(e),t==null||t.delete(e)}function nie(e,t){var n;t&&e.ref!==t&&((n=e.ref)==null||n.delete(e),t.add(e),e.ref=t)}var k$={default:{tension:170,friction:26},gentle:{tension:120,friction:14},wobbly:{tension:180,friction:12},stiff:{tension:210,friction:20},slow:{tension:280,friction:60},molasses:{tension:280,friction:120}},S$={...k$.default,mass:1,damping:1,easing:XDe.linear,clamp:!1},wAe=class{constructor(){this.velocity=0,Object.assign(this,S$)}};function kAe(e,t,n){n&&(n={...n},rie(n,t),t={...n,...t}),rie(e,t),Object.assign(e,t);for(const a in S$)e[a]==null&&(e[a]=S$[a]);let{frequency:r,damping:i}=e;const{mass:o}=e;return He.und(r)||(r<.01&&(r=.01),i<0&&(i=0),e.tension=Math.pow(2*Math.PI/r,2)*o,e.friction=4*Math.PI*i*o/r),e}function rie(e,t){if(!He.und(t.decay))e.duration=void 0;else{const n=!He.und(t.tension)||!He.und(t.friction);(n||!He.und(t.frequency)||!He.und(t.damping)||!He.und(t.mass))&&(e.duration=void 0,e.decay=void 0),n&&(e.frequency=void 0)}}var iie=[],SAe=class{constructor(){this.changed=!1,this.values=iie,this.toValues=null,this.fromValues=iie,this.config=new wAe,this.immediate=!1}};function oie(e,{key:t,props:n,defaultProps:r,state:i,actions:o}){return new Promise((a,s)=>{let l,c,d=Zb(n.cancel??(r==null?void 0:r.cancel),t);if(d)v();else{He.und(n.pause)||(i.paused=Zb(n.pause,t));let x=r==null?void 0:r.pause;x!==!0&&(x=i.paused||Zb(x,t)),l=Ua(n.delay||0,t),x?(i.resumeQueue.add(p),o.pause()):(o.resume(),p())}function f(){i.resumeQueue.add(p),i.timeouts.delete(c),c.cancel(),l=c.time-qt.now()}function p(){l>0&&!tu.skipAnimation?(i.delayed=!0,c=qt.setTimeout(v,l),i.pauseQueue.add(f),i.timeouts.add(c)):v()}function v(){i.delayed&&(i.delayed=!1),i.pauseQueue.delete(f),i.timeouts.delete(c),e<=(i.cancelId||0)&&(d=!0);try{o.start({...n,callId:e,cancel:d},a)}catch(x){s(x)}}})}var C$=(e,t)=>t.length==1?t[0]:t.some(n=>n.cancelled)?Lg(e.get()):t.every(n=>n.noop)?aie(e.get()):ru(e.get(),t.every(n=>n.finished)),aie=e=>({value:e,noop:!0,finished:!0,cancelled:!1}),ru=(e,t,n=!1)=>({value:e,finished:t,cancelled:n}),Lg=e=>({value:e,cancelled:!0,finished:!1});function sie(e,t,n,r){const{callId:i,parentId:o,onRest:a}=t,{asyncTo:s,promise:l}=n;return!o&&e===s&&!t.reset?l:n.promise=(async()=>{n.asyncId=i,n.asyncTo=e;const c=Uk(t,(b,w)=>w==="onRest"?void 0:b);let d,f;const p=new Promise((b,w)=>(d=b,f=w)),v=b=>{const w=i<=(n.cancelId||0)&&Lg(r)||i!==n.asyncId&&ru(r,!1);if(w)throw b.result=w,f(b),b},x=(b,w)=>{const _=new lie,S=new uie;return(async()=>{if(tu.skipAnimation)throw Gb(n),S.result=ru(r,!1),f(S),S;v(_);const C=He.obj(b)?{...b}:{...w,to:b};C.parentId=i,Xu(c,(T,E)=>{He.und(C[E])&&(C[E]=T)});const j=await r.start(C);return v(_),n.paused&&await new Promise(T=>{n.resumeQueue.add(T)}),j})()};let y;if(tu.skipAnimation)return Gb(n),ru(r,!1);try{let b;He.arr(e)?b=(async w=>{for(const _ of w)await x(_)})(e):b=Promise.resolve(e(x,r.stop.bind(r))),await Promise.all([b.then(d),p]),y=ru(r.get(),!0,!1)}catch(b){if(b instanceof lie)y=b.result;else if(b instanceof uie)y=b.result;else throw b}finally{i==n.asyncId&&(n.asyncId=o,n.asyncTo=o?s:void 0,n.promise=o?l:void 0)}return He.fun(a)&&qt.batchedUpdates(()=>{a(y,r,r.item)}),y})()}function Gb(e,t){Ob(e.timeouts,n=>n.cancel()),e.pauseQueue.clear(),e.resumeQueue.clear(),e.asyncId=e.asyncTo=e.promise=void 0,t&&(e.cancelId=t)}var lie=class extends Error{constructor(){super("An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise.")}},uie=class extends Error{constructor(){super("SkipAnimationSignal")}},j$=e=>e instanceof T$,CAe=1,T$=class extends Bre{constructor(){super(...arguments),this.id=CAe++,this._priority=0}get priority(){return this._priority}set priority(e){this._priority!=e&&(this._priority=e,this._onPriorityChange(e))}get(){const e=Ju(this);return e&&e.getValue()}to(...e){return tu.to(this,e)}interpolate(...e){return oAe(),tu.to(this,e)}toJSON(){return this.get()}observerAdded(e){e==1&&this._attach()}observerRemoved(e){e==0&&this._detach()}_attach(){}_detach(){}_onChange(e,t=!1){Ub(this,{type:"change",parent:this,value:e,idle:t})}_onPriorityChange(e){this.idle||$k.sort(this),Ub(this,{type:"priority",parent:this,priority:e})}},jp=Symbol.for("SpringPhase"),cie=1,I$=2,E$=4,N$=e=>(e[jp]&cie)>0,th=e=>(e[jp]&I$)>0,Yb=e=>(e[jp]&E$)>0,die=(e,t)=>t?e[jp]|=I$|cie:e[jp]&=~I$,fie=(e,t)=>t?e[jp]|=E$:e[jp]&=~E$,jAe=class extends T${constructor(e,t){if(super(),this.animation=new SAe,this.defaultProps={},this._state={paused:!1,delayed:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._pendingCalls=new Set,this._lastCallId=0,this._lastToId=0,this._memoizedDuration=0,!He.und(e)||!He.und(t)){const n=He.obj(e)?{...e}:{...t,from:e};He.und(n.default)&&(n.default=!0),this.start(n)}}get idle(){return!(th(this)||this._state.asyncTo)||Yb(this)}get goal(){return Fa(this.animation.to)}get velocity(){const e=Ju(this);return e instanceof Vb?e.lastVelocity||0:e.getPayload().map(t=>t.lastVelocity||0)}get hasAnimated(){return N$(this)}get isAnimating(){return th(this)}get isPaused(){return Yb(this)}get isDelayed(){return this._state.delayed}advance(e){let t=!0,n=!1;const r=this.animation;let{toValues:i}=r;const{config:o}=r,a=Dk(r.to);!a&&cl(r.to)&&(i=ha(Fa(r.to))),r.values.forEach((c,d)=>{if(c.done)return;const f=c.constructor==Hb?1:a?a[d].lastPosition:i[d];let p=r.immediate,v=f;if(!p){if(v=c.lastPosition,o.tension<=0){c.done=!0;return}let x=c.elapsedTime+=e;const y=r.fromValues[d],b=c.v0!=null?c.v0:c.v0=He.arr(o.velocity)?o.velocity[d]:o.velocity;let w;const _=o.precision||(y==f?.005:Math.min(1,Math.abs(f-y)*.001));if(He.und(o.duration))if(o.decay){const S=o.decay===!0?.998:o.decay,C=Math.exp(-(1-S)*x);v=y+b/(1-S)*(1-C),p=Math.abs(c.lastPosition-v)<=_,w=b*C}else{w=c.lastVelocity==null?b:c.lastVelocity;const S=o.restVelocity||_/10,C=o.clamp?0:o.bounce,j=!He.und(C),T=y==f?c.v0>0:yS,!(!E&&(p=Math.abs(f-v)<=_,p)));++O){j&&($=v==f||v>f==T,$&&(w=-w*C,v=f));const te=-o.tension*1e-6*(v-f),q=-o.friction*.001*w,P=(te+q)/o.mass;w=w+P*D,v=v+w*D}}else{let S=1;o.duration>0&&(this._memoizedDuration!==o.duration&&(this._memoizedDuration=o.duration,c.durationProgress>0&&(c.elapsedTime=o.duration*c.durationProgress,x=c.elapsedTime+=e)),S=(o.progress||0)+x/this._memoizedDuration,S=S>1?1:S<0?0:S,c.durationProgress=S),v=y+o.easing(S)*(f-y),w=(v-c.lastPosition)/e,p=S==1}c.lastVelocity=w,Number.isNaN(v)&&(console.warn("Got NaN while animating:",this),p=!0)}a&&!a[d].done&&(p=!1),p?c.done=!0:t=!1,c.setValue(v,o.round)&&(n=!0)});const s=Ju(this),l=s.getValue();if(t){const c=Fa(r.to);(l!==c||n)&&!o.decay?(s.setValue(c),this._onChange(c)):n&&o.decay&&this._onChange(l),this._stop()}else n&&this._onChange(l)}set(e){return qt.batchedUpdates(()=>{this._stop(),this._focus(e),this._set(e)}),this}pause(){this._update({pause:!0})}resume(){this._update({pause:!1})}finish(){if(th(this)){const{to:e,config:t}=this.animation;qt.batchedUpdates(()=>{this._onStart(),t.decay||this._set(e,!1),this._stop()})}return this}update(e){return(this.queue||(this.queue=[])).push(e),this}start(e,t){let n;return He.und(e)?(n=this.queue||[],this.queue=[]):n=[He.obj(e)?e:{...t,to:e}],Promise.all(n.map(r=>this._update(r))).then(r=>C$(this,r))}stop(e){const{to:t}=this.animation;return this._focus(this.get()),Gb(this._state,e&&this._lastCallId),qt.batchedUpdates(()=>this._stop(t,e)),this}reset(){this._update({reset:!0})}eventObserved(e){e.type=="change"?this._start():e.type=="priority"&&(this.priority=e.priority+1)}_prepareNode(e){const t=this.key||"";let{to:n,from:r}=e;n=He.obj(n)?n[t]:n,(n==null||_$(n))&&(n=void 0),r=He.obj(r)?r[t]:r,r==null&&(r=void 0);const i={to:n,from:r};return N$(this)||(e.reverse&&([n,r]=[r,n]),r=Fa(r),He.und(r)?Ju(this)||this._set(n):this._set(r)),i}_update({...e},t){const{key:n,defaultProps:r}=this;e.default&&Object.assign(r,Uk(e,(a,s)=>/^on/.test(s)?Qre(a,n):a)),mie(this,e,"onProps"),Jb(this,"onProps",e,this);const i=this._prepareNode(e);if(Object.isFrozen(this))throw Error("Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?");const o=this._state;return oie(++this._lastCallId,{key:n,props:e,defaultProps:r,state:o,actions:{pause:()=>{Yb(this)||(fie(this,!0),zb(o.pauseQueue),Jb(this,"onPause",ru(this,Kb(this,this.animation.to)),this))},resume:()=>{Yb(this)&&(fie(this,!1),th(this)&&this._resume(),zb(o.resumeQueue),Jb(this,"onResume",ru(this,Kb(this,this.animation.to)),this))},start:this._merge.bind(this,i)}}).then(a=>{if(e.loop&&a.finished&&!(t&&a.noop)){const s=hie(e);if(s)return this._update(s,!0)}return a})}_merge(e,t,n){if(t.cancel)return this.stop(!0),n(Lg(this));const r=!He.und(e.to),i=!He.und(e.from);if(r||i)if(t.callId>this._lastToId)this._lastToId=t.callId;else return n(Lg(this));const{key:o,defaultProps:a,animation:s}=this,{to:l,from:c}=s;let{to:d=l,from:f=c}=e;i&&!r&&(!t.default||He.und(d))&&(d=f),t.reverse&&([d,f]=[f,d]);const p=!vd(f,c);p&&(s.from=f),f=Fa(f);const v=!vd(d,l);v&&this._focus(d);const x=_$(t.to),{config:y}=s,{decay:b,velocity:w}=y;(r||i)&&(y.velocity=0),t.config&&!x&&kAe(y,Ua(t.config,o),t.config!==a.config?Ua(a.config,o):void 0);let _=Ju(this);if(!_||He.und(d))return n(ru(this,!0));const S=He.und(t.reset)?i&&!t.default:!He.und(f)&&Zb(t.reset,o),C=S?f:this.get(),j=qb(d),T=He.num(j)||He.arr(j)||zk(j),E=!x&&(!T||Zb(a.immediate||t.immediate,o));if(v){const O=b$(d);if(O!==_.constructor)if(E)_=this._set(j);else throw Error(`Cannot animate between ${_.constructor.name} and ${O.name}, as the "to" prop suggests`)}const $=_.constructor;let D=cl(d),M=!1;if(!D){const O=S||!N$(this)&&p;(v||O)&&(M=vd(qb(C),j),D=!M),(!vd(s.immediate,E)&&!E||!vd(y.decay,b)||!vd(y.velocity,w))&&(D=!0)}if(M&&th(this)&&(s.changed&&!S?D=!0:D||this._stop(l)),!x&&((D||cl(l))&&(s.values=_.getPayload(),s.toValues=cl(d)?null:$==Hb?[1]:ha(j)),s.immediate!=E&&(s.immediate=E,!E&&!S&&this._set(l)),D)){const{onRest:O}=s;Ft(IAe,q=>mie(this,t,q));const te=ru(this,Kb(this,l));zb(this._pendingCalls,te),this._pendingCalls.add(n),s.changed&&qt.batchedUpdates(()=>{var q;s.changed=!S,O==null||O(te,this),S?Ua(a.onRest,te):(q=s.onStart)==null||q.call(s,te,this)})}S&&this._set(C),x?n(sie(t.to,t,this._state,this)):D?this._start():th(this)&&!v?this._pendingCalls.add(n):n(aie(C))}_focus(e){const t=this.animation;e!==t.to&&(Ure(this)&&this._detach(),t.to=e,Ure(this)&&this._attach())}_attach(){let e=0;const{to:t}=this.animation;cl(t)&&(Rg(t,this),j$(t)&&(e=t.priority+1)),this.priority=e}_detach(){const{to:e}=this.animation;cl(e)&&Bb(e,this)}_set(e,t=!0){const n=Fa(e);if(!He.und(n)){const r=Ju(this);if(!r||!vd(n,r.getValue())){const i=b$(n);!r||r.constructor!=i?y$(this,i.create(n)):r.setValue(n),r&&qt.batchedUpdates(()=>{this._onChange(n,t)})}}return Ju(this)}_onStart(){const e=this.animation;e.changed||(e.changed=!0,Jb(this,"onStart",ru(this,Kb(this,e.to)),this))}_onChange(e,t){t||(this._onStart(),Ua(this.animation.onChange,e,this)),Ua(this.defaultProps.onChange,e,this),super._onChange(e,t)}_start(){const e=this.animation;Ju(this).reset(Fa(e.to)),e.immediate||(e.fromValues=e.values.map(t=>t.lastPosition)),th(this)||(die(this,!0),Yb(this)||this._resume())}_resume(){tu.skipAnimation?this.finish():$k.start(this)}_stop(e,t){if(th(this)){die(this,!1);const n=this.animation;Ft(n.values,i=>{i.done=!0}),n.toValues&&(n.onChange=n.onPause=n.onResume=void 0),Ub(this,{type:"idle",parent:this});const r=t?Lg(this.get()):ru(this.get(),Kb(this,e??n.to));zb(this._pendingCalls,r),n.changed&&(n.changed=!1,Jb(this,"onRest",r,this))}}};function Kb(e,t){const n=qb(t),r=qb(e.get());return vd(r,n)}function hie(e,t=e.loop,n=e.to){const r=Ua(t);if(r){const i=r!==!0&&x$(r),o=(i||e).reverse,a=!i||i.reset;return Xb({...e,loop:t,default:!1,pause:void 0,to:!o||_$(n)?n:void 0,from:a?e.from:void 0,reset:a,...i})}}function Xb(e){const{to:t,from:n}=e=x$(e),r=new Set;return He.obj(t)&&pie(t,r),He.obj(n)&&pie(n,r),e.keys=r.size?Array.from(r):null,e}function TAe(e){const t=Xb(e);return He.und(t.default)&&(t.default=Uk(t)),t}function pie(e,t){Xu(e,(n,r)=>n!=null&&t.add(r))}var IAe=["onStart","onRest","onChange","onPause","onResume"];function mie(e,t,n){e.animation[n]=t[n]!==eie(t,n)?Qre(t[n],e.key):void 0}function Jb(e,t,...n){var r,i,o,a;(i=(r=e.animation)[t])==null||i.call(r,...n),(a=(o=e.defaultProps)[t])==null||a.call(o,...n)}var EAe=["onStart","onChange","onRest"],NAe=1,gie=class{constructor(e,t){this.id=NAe++,this.springs={},this.queue=[],this._lastAsyncId=0,this._active=new Set,this._changed=new Set,this._started=!1,this._state={paused:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._events={onStart:new Map,onChange:new Map,onRest:new Map},this._onFrame=this._onFrame.bind(this),t&&(this._flush=t),e&&this.start({default:!0,...e})}get idle(){return!this._state.asyncTo&&Object.values(this.springs).every(e=>e.idle&&!e.isDelayed&&!e.isPaused)}get item(){return this._item}set item(e){this._item=e}get(){const e={};return this.each((t,n)=>e[n]=t.get()),e}set(e){for(const t in e){const n=e[t];He.und(n)||this.springs[t].set(n)}}update(e){return e&&this.queue.push(Xb(e)),this}start(e){let{queue:t}=this;return e?t=ha(e).map(Xb):this.queue=[],this._flush?this._flush(this,t):(_ie(this,t),$$(this,t))}stop(e,t){if(e!==!!e&&(t=e),t){const n=this.springs;Ft(ha(t),r=>n[r].stop(!!e))}else Gb(this._state,this._lastAsyncId),this.each(n=>n.stop(!!e));return this}pause(e){if(He.und(e))this.start({pause:!0});else{const t=this.springs;Ft(ha(e),n=>t[n].pause())}return this}resume(e){if(He.und(e))this.start({pause:!1});else{const t=this.springs;Ft(ha(e),n=>t[n].resume())}return this}each(e){Xu(this.springs,e)}_onFrame(){const{onStart:e,onChange:t,onRest:n}=this._events,r=this._active.size>0,i=this._changed.size>0;(r&&!this._started||i&&!this._started)&&(this._started=!0,Ob(e,([s,l])=>{l.value=this.get(),s(l,this,this._item)}));const o=!r&&this._started,a=i||o&&n.size?this.get():null;i&&t.size&&Ob(t,([s,l])=>{l.value=a,s(l,this,this._item)}),o&&(this._started=!1,Ob(n,([s,l])=>{l.value=a,s(l,this,this._item)}))}eventObserved(e){if(e.type=="change")this._changed.add(e.parent),e.idle||this._active.add(e.parent);else if(e.type=="idle")this._active.delete(e.parent);else return;qt.onFrame(this._onFrame)}};function $$(e,t){return Promise.all(t.map(n=>vie(e,n))).then(n=>C$(e,n))}async function vie(e,t,n){const{keys:r,to:i,from:o,loop:a,onRest:s,onResolve:l}=t,c=He.obj(t.default)&&t.default;a&&(t.loop=!1),i===!1&&(t.to=null),o===!1&&(t.from=null);const d=He.arr(i)||He.fun(i)?i:void 0;d?(t.to=void 0,t.onRest=void 0,c&&(c.onRest=void 0)):Ft(EAe,y=>{const b=t[y];if(He.fun(b)){const w=e._events[y];t[y]=({finished:_,cancelled:S})=>{const C=w.get(b);C?(_||(C.finished=!1),S&&(C.cancelled=!0)):w.set(b,{value:null,finished:_||!1,cancelled:S||!1})},c&&(c[y]=t[y])}});const f=e._state;t.pause===!f.paused?(f.paused=t.pause,zb(t.pause?f.pauseQueue:f.resumeQueue)):f.paused&&(t.pause=!0);const p=(r||Object.keys(e.springs)).map(y=>e.springs[y].start(t)),v=t.cancel===!0||eie(t,"cancel")===!0;(d||v&&f.asyncId)&&p.push(oie(++e._lastAsyncId,{props:t,state:f,actions:{pause:a$,resume:a$,start(y,b){v?(Gb(f,e._lastAsyncId),b(Lg(e))):(y.onRest=s,b(sie(d,y,f,e)))}}})),f.paused&&await new Promise(y=>{f.resumeQueue.add(y)});const x=C$(e,await Promise.all(p));if(a&&x.finished&&!(n&&x.noop)){const y=hie(t,a,i);if(y)return _ie(e,[y]),vie(e,y,!0)}return l&&qt.batchedUpdates(()=>l(x,e,e.item)),x}function M$(e,t){const n={...e.springs};return t&&Ft(ha(t),r=>{He.und(r.keys)&&(r=Xb(r)),He.obj(r.to)||(r={...r,to:void 0}),xie(n,r,i=>bie(i))}),yie(e,n),n}function yie(e,t){Xu(t,(n,r)=>{e.springs[r]||(e.springs[r]=n,Rg(n,e))})}function bie(e,t){const n=new jAe;return n.key=e,t&&Rg(n,t),n}function xie(e,t,n){t.keys&&Ft(t.keys,r=>{(e[r]||(e[r]=n(r)))._prepareNode(t)})}function _ie(e,t){Ft(t,n=>{xie(e.springs,n,r=>bie(r,e))})}var Qb=({children:e,...t})=>{const n=m.useContext(Bk),r=t.pause||!!n.pause,i=t.immediate||!!n.immediate;t=uAe(()=>({pause:r,immediate:i}),[r,i]);const{Provider:o}=Bk;return m.createElement(o,{value:t},e)},Bk=$Ae(Qb,{});Qb.Provider=Bk.Provider,Qb.Consumer=Bk.Consumer;function $Ae(e,t){return Object.assign(e,m.createContext(t)),e.Provider._context=e,e.Consumer._context=e,e}var wie=()=>{const e=[],t=function(r){sAe();const i=[];return Ft(e,(o,a)=>{if(He.und(r))i.push(o.start());else{const s=n(r,o,a);s&&i.push(o.start(s))}}),i};t.current=e,t.add=function(r){e.includes(r)||e.push(r)},t.delete=function(r){const i=e.indexOf(r);~i&&e.splice(i,1)},t.pause=function(){return Ft(e,r=>r.pause(...arguments)),this},t.resume=function(){return Ft(e,r=>r.resume(...arguments)),this},t.set=function(r){Ft(e,(i,o)=>{const a=He.fun(r)?r(o,i):r;a&&i.set(a)})},t.start=function(r){const i=[];return Ft(e,(o,a)=>{if(He.und(r))i.push(o.start());else{const s=this._getProps(r,o,a);s&&i.push(o.start(s))}}),i},t.stop=function(){return Ft(e,r=>r.stop(...arguments)),this},t.update=function(r){return Ft(e,(i,o)=>i.update(this._getProps(r,i,o))),this};const n=function(r,i,o){return He.fun(r)?r(o,i):r};return t._getProps=n,t};function MAe(e,t,n){const r=He.fun(t)&&t;r&&!n&&(n=[]);const i=m.useMemo(()=>r||arguments.length==3?wie():void 0,[]),o=m.useRef(0),a=m$(),s=m.useMemo(()=>({ctrls:[],queue:[],flush(w,_){const S=M$(w,_);return o.current>0&&!s.queue.length&&!Object.keys(S).some(C=>!w.springs[C])?$$(w,_):new Promise(C=>{yie(w,S),s.queue.push(()=>{C($$(w,_))}),a()})}}),[]),l=m.useRef([...s.ctrls]),c=[],d=v$(e)||0;m.useMemo(()=>{Ft(l.current.slice(e,d),w=>{w$(w,i),w.stop(!0)}),l.current.length=e,f(d,e)},[e]),m.useMemo(()=>{f(0,Math.min(d,e))},n);function f(w,_){for(let S=w;S<_;S++){const C=l.current[S]||(l.current[S]=new gie(null,s.flush)),j=r?r(S,C):t[S];j&&(c[S]=TAe(j))}}const p=l.current.map((w,_)=>M$(w,c[_])),v=m.useContext(Qb),x=v$(v),y=v!==x&&tie(v);Cp(()=>{o.current++,s.ctrls=l.current;const{queue:w}=s;w.length&&(s.queue=[],Ft(w,_=>_())),Ft(l.current,(_,S)=>{i==null||i.add(_),y&&_.start({default:v});const C=c[S];C&&(nie(_,C.ref),_.ref?_.queue.push(C):_.start(C))})}),g$(()=>()=>{Ft(s.ctrls,w=>w.stop(!0))});const b=p.map(w=>({...w}));return i?[b,i]:b}function ex(e,t){const n=He.fun(e),[[r],i]=MAe(1,n?e:[e],n?[]:t);return n||arguments.length==2?[r,i]:r}function R$(e,t,n){const r=He.fun(t)&&t,{reset:i,sort:o,trail:a=0,expires:s=!0,exitBeforeEnter:l=!1,onDestroyed:c,ref:d,config:f}=r?r():t,p=m.useMemo(()=>r||arguments.length==3?wie():void 0,[]),v=ha(e),x=[],y=m.useRef(null),b=i?null:y.current;Cp(()=>{y.current=x}),g$(()=>(Ft(x,P=>{p==null||p.add(P.ctrl),P.ctrl.ref=p}),()=>{Ft(y.current,P=>{P.expired&&clearTimeout(P.expirationId),w$(P.ctrl,p),P.ctrl.stop(!0)})}));const w=LAe(v,r?r():t,b),_=i&&y.current||[];Cp(()=>Ft(_,({ctrl:P,item:X,key:A})=>{w$(P,p),Ua(c,X,A)}));const S=[];if(b&&Ft(b,(P,X)=>{P.expired?(clearTimeout(P.expirationId),_.push(P)):(X=S[X]=w.indexOf(P.key),~X&&(x[X]=P))}),Ft(v,(P,X)=>{x[X]||(x[X]={key:w[X],item:P,phase:"mount",ctrl:new gie},x[X].ctrl.item=P)}),S.length){let P=-1;const{leave:X}=r?r():t;Ft(S,(A,Y)=>{const F=b[Y];~A?(P=x.indexOf(F),x[P]={...F,item:v[A]}):X&&x.splice(++P,0,F)})}He.fun(o)&&x.sort((P,X)=>o(P.item,X.item));let C=-a;const j=m$(),T=Uk(t),E=new Map,$=m.useRef(new Map),D=m.useRef(!1);Ft(x,(P,X)=>{const A=P.key,Y=P.phase,F=r?r():t;let H,ee;const ce=Ua(F.delay||0,A);if(Y=="mount")H=F.enter,ee="enter";else{const me=w.indexOf(A)<0;if(Y!="leave")if(me)H=F.leave,ee="leave";else if(H=F.update)ee="update";else return;else if(!me)H=F.enter,ee="enter";else return}if(H=Ua(H,P.item,X),H=He.obj(H)?x$(H):{to:H},!H.config){const me=f||T.config;H.config=Ua(me,P.item,X,ee)}C+=a;const B={...T,delay:ce+C,ref:d,immediate:F.immediate,reset:!1,...H};if(ee=="enter"&&He.und(B.from)){const me=r?r():t,ke=He.und(me.initial)||b?me.from:me.initial;B.from=Ua(ke,P.item,X)}const{onResolve:ae}=B;B.onResolve=me=>{Ua(ae,me);const ke=y.current,he=ke.find(ue=>ue.key===A);if(he&&!(me.cancelled&&he.phase!="update")&&he.ctrl.idle){const ue=ke.every(re=>re.ctrl.idle);if(he.phase=="leave"){const re=Ua(s,he.item);if(re!==!1){const ge=re===!0?0:re;if(he.expired=!0,!ue&&ge>0){ge<=2147483647&&(he.expirationId=setTimeout(j,ge));return}}}ue&&ke.some(re=>re.expired)&&($.current.delete(he),l&&(D.current=!0),j())}};const je=M$(P.ctrl,B);ee==="leave"&&l?$.current.set(P,{phase:ee,springs:je,payload:B}):E.set(P,{phase:ee,springs:je,payload:B})});const M=m.useContext(Qb),O=v$(M),te=M!==O&&tie(M);Cp(()=>{te&&Ft(x,P=>{P.ctrl.start({default:M})})},[M]),Ft(E,(P,X)=>{if($.current.size){const A=x.findIndex(Y=>Y.key===X.key);x.splice(A,1)}}),Cp(()=>{Ft($.current.size?$.current:E,({phase:P,payload:X},A)=>{const{ctrl:Y}=A;A.phase=P,p==null||p.add(Y),te&&P=="enter"&&Y.start({default:M}),X&&(nie(Y,X.ref),(Y.ref||p)&&!D.current?Y.update(X):(Y.start(X),D.current&&(D.current=!1)))})},i?void 0:n);const q=P=>m.createElement(m.Fragment,null,x.map((X,A)=>{const{springs:Y}=E.get(X)||X.ctrl,F=P({...Y},X.item,X,A);return F&&F.type?m.createElement(F.type,{...F.props,key:He.str(X.key)||He.num(X.key)?X.key:X.ctrl.id,ref:F.ref}):F}));return p?[q,p]:q}var RAe=1;function LAe(e,{key:t,keys:n=t},r){if(n===null){const i=new Set;return e.map(o=>{const a=r&&r.find(s=>s.item===o&&s.phase!=="leave"&&!i.has(s));return a?(i.add(a),a.key):RAe++})}return He.und(n)?e:He.fun(n)?e.map(n):ha(n)}var kie=class extends T${constructor(e,t){super(),this.source=e,this.idle=!0,this._active=new Set,this.calc=Ab(...t);const n=this._get(),r=b$(n);y$(this,r.create(n))}advance(e){const t=this._get(),n=this.get();vd(t,n)||(Ju(this).setValue(t),this._onChange(t,this.idle)),!this.idle&&Sie(this._active)&&L$(this)}_get(){const e=He.arr(this.source)?this.source.map(Fa):ha(Fa(this.source));return this.calc(...e)}_start(){this.idle&&!Sie(this._active)&&(this.idle=!1,Ft(Dk(this),e=>{e.done=!1}),tu.skipAnimation?(qt.batchedUpdates(()=>this.advance()),L$(this)):$k.start(this))}_attach(){let e=1;Ft(ha(this.source),t=>{cl(t)&&Rg(t,this),j$(t)&&(t.idle||this._active.add(t),e=Math.max(e,t.priority+1))}),this.priority=e,this._start()}_detach(){Ft(ha(this.source),e=>{cl(e)&&Bb(e,this)}),this._active.clear(),L$(this)}eventObserved(e){e.type=="change"?e.idle?this.advance():(this._active.add(e.parent),this._start()):e.type=="idle"?this._active.delete(e.parent):e.type=="priority"&&(this.priority=ha(this.source).reduce((t,n)=>Math.max(t,(j$(n)?n.priority:0)+1),0))}};function PAe(e){return e.idle!==!1}function Sie(e){return!e.size||Array.from(e).every(PAe)}function L$(e){e.idle||(e.idle=!0,Ft(Dk(e),t=>{t.done=!0}),Ub(e,{type:"idle",parent:e}))}var tx=(e,...t)=>new kie(e,t);tu.assign({createStringInterpolator:Zre,to:(e,t)=>new kie(e,t)});var Cie=/^--/;function OAe(e,t){return t==null||typeof t=="boolean"||t===""?"":typeof t=="number"&&t!==0&&!Cie.test(e)&&!(nx.hasOwnProperty(e)&&nx[e])?t+"px":(""+t).trim()}var jie={};function zAe(e,t){if(!e.nodeType||!e.setAttribute)return!1;const n=e.nodeName==="filter"||e.parentNode&&e.parentNode.nodeName==="filter",{className:r,style:i,children:o,scrollTop:a,scrollLeft:s,viewBox:l,...c}=t,d=Object.values(c),f=Object.keys(c).map(p=>n||e.hasAttribute(p)?p:jie[p]||(jie[p]=p.replace(/([A-Z])/g,v=>"-"+v.toLowerCase())));o!==void 0&&(e.textContent=o);for(const p in i)if(i.hasOwnProperty(p)){const v=OAe(p,i[p]);Cie.test(p)?e.style.setProperty(p,v):e.style[p]=v}f.forEach((p,v)=>{e.setAttribute(p,d[v])}),r!==void 0&&(e.className=r),a!==void 0&&(e.scrollTop=a),s!==void 0&&(e.scrollLeft=s),l!==void 0&&e.setAttribute("viewBox",l)}var nx={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},DAe=(e,t)=>e+t.charAt(0).toUpperCase()+t.substring(1),AAe=["Webkit","Ms","Moz","O"];nx=Object.keys(nx).reduce((e,t)=>(AAe.forEach(n=>e[DAe(n,t)]=e[t]),e),nx);var FAe=/^(matrix|translate|scale|rotate|skew)/,UAe=/^(translate)/,BAe=/^(rotate|skew)/,P$=(e,t)=>He.num(e)&&e!==0?e+t:e,Wk=(e,t)=>He.arr(e)?e.every(n=>Wk(n,t)):He.num(e)?e===t:parseFloat(e)===t,WAe=class extends Fk{constructor({x:e,y:t,z:n,...r}){const i=[],o=[];(e||t||n)&&(i.push([e||0,t||0,n||0]),o.push(a=>[`translate3d(${a.map(s=>P$(s,"px")).join(",")})`,Wk(a,0)])),Xu(r,(a,s)=>{if(s==="transform")i.push([a||""]),o.push(l=>[l,l===""]);else if(FAe.test(s)){if(delete r[s],He.und(a))return;const l=UAe.test(s)?"px":BAe.test(s)?"deg":"";i.push(ha(a)),o.push(s==="rotate3d"?([c,d,f,p])=>[`rotate3d(${c},${d},${f},${P$(p,l)})`,Wk(p,0)]:c=>[`${s}(${c.map(d=>P$(d,l)).join(",")})`,Wk(c,s.startsWith("scale")?1:0)])}}),i.length&&(r.transform=new VAe(i,o)),super(r)}},VAe=class extends Bre{constructor(e,t){super(),this.inputs=e,this.transforms=t,this._value=null}get(){return this._value||(this._value=this._get())}_get(){let e="",t=!0;return Ft(this.inputs,(n,r)=>{const i=Fa(n[0]),[o,a]=this.transforms[r](He.arr(i)?i:n.map(Fa));e+=" "+o,t=t&&a}),t?"none":e}observerAdded(e){e==1&&Ft(this.inputs,t=>Ft(t,n=>cl(n)&&Rg(n,this)))}observerRemoved(e){e==0&&Ft(this.inputs,t=>Ft(t,n=>cl(n)&&Bb(n,this)))}eventObserved(e){e.type=="change"&&(this._value=null),Ub(this,e)}},HAe=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"];tu.assign({batchedUpdates:Kc.unstable_batchedUpdates,createStringInterpolator:Zre,colors:ADe});var ZAe=vAe(HAe,{applyAnimatedValues:zAe,createAnimatedStyle:e=>new WAe(e),getComponentProps:({scrollTop:e,scrollLeft:t,...n})=>n}),iu=ZAe.animated;function qAe(){const e=J(Zu);if(!e)return;const t=e.downloading_full_snapshot_throughput?`${Sp(e.downloading_full_snapshot_throughput).toString()}/s`:"-";return u.jsxs(W,{children:[u.jsx(ud,{label:"Peer",value:e.downloading_full_snapshot_peer}),u.jsx(ud,{label:"Slot",value:e.downloading_full_snapshot_slot}),u.jsx(ud,{label:"Throughput",value:t})]})}function GAe(){const e=J(Zu);return e?u.jsx(ud,{label:"Slot",value:e.waiting_for_supermajority_slot}):null}function YAe(){const e=J(Zu);return e?u.jsx(N4,{value:e.waiting_for_supermajority_stake_percent||0,className:H3.progress}):null}function KAe(){const e=J(Zu);if(!e)return;const t=e.downloading_incremental_snapshot_throughput?`${Sp(e.downloading_incremental_snapshot_throughput).toString()}/s`:"-";return u.jsxs(W,{children:[u.jsx(ud,{label:"Peer",value:e.downloading_incremental_snapshot_peer}),u.jsx(ud,{label:"Slot",value:e.downloading_incremental_snapshot_slot}),u.jsx(ud,{label:"Throughput",value:t})]})}const Tie=[{step:"initializing"},{step:"searching_for_full_snapshot"},{step:"downloading_full_snapshot",rightChildren:u.jsx(Aze,{}),bottomChildren:u.jsx(qAe,{})},{step:"searching_for_incremental_snapshot"},{step:"downloading_incremental_snapshot",rightChildren:u.jsx($De,{}),bottomChildren:u.jsx(KAe,{})},{step:"cleaning_blockstore"},{step:"cleaning_accounts"},{step:"loading_ledger"},{step:"processing_ledger",bottomChildren:u.jsx(EMe,{})},{step:"starting_services"},{step:"waiting_for_supermajority",rightChildren:u.jsx(YAe,{}),bottomChildren:u.jsx(GAe,{}),optional:!0},{step:"running"}];function XAe(){const e=J(Zu),[t,n]=Vl(ol),r=J(Ku),i=!!Object.values(r).length,[o,a]=m.useState();m.useEffect(()=>{(e==null?void 0:e.phase)!=="running"&&n(!0),a(f=>e?e.phase==="running":f)},[n,e]);const s=o===!0||o===void 0;m.useEffect(()=>{i&&(e==null?void 0:e.phase)==="running"&&n(!1)},[i,n,t,e==null?void 0:e.phase]);const l=Math.max(0,Tie.findIndex(({step:f})=>f===(e==null?void 0:e.phase))),[c,d]=ex(()=>({from:{opacity:t?1:0,zIndex:t?1:-1}}));return m.useEffect(()=>{d.stop(),t?d.start({from:{opacity:1,zIndex:1}}):d.start({from:{opacity:1,zIndex:1},to:{opacity:0,zIndex:-1}})},[d,t]),u.jsx(iu.div,{className:OG.outerContainer,style:c,children:u.jsxs(W,{direction:"column",gap:"4",className:OG.innerContainer,children:[u.jsx(Mt,{flexGrow:"1"}),u.jsx("img",{src:Vi?ree:gMe,alt:"fd",height:"50px",style:{marginBottom:"28px"}}),Tie.map(({step:f,rightChildren:p,bottomChildren:v,optional:x},y)=>{if(x&&f!==(e==null?void 0:e.phase))return null;const b=JAe(f);return y===l?u.jsx(wMe,{label:b,hide:s,rightChildren:p,bottomChildren:v},f):yt!==void 0).map((t,n)=>t==="for"?t:t==="rpc"?"RPC":(n===0?t[0].toUpperCase():t[0])+t.slice(1)).join(" ")}const QAe="_container_e8h4h_1",eFe="_blur_e8h4h_4",Iie={container:QAe,blur:eFe};function Eie(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;tvFe(e||null),{maxSize:1e3}),yFe="_hide_1etvv_1",Mie={hide:yFe};function ks({url:e,size:t,hideFallback:n,hideTooltip:r=!1,isYou:i}){const[o,a]=Vl($ie(e)),[s,l]=m.useState(o),[c,d]=m.useState(!1),f=`${t}px`,p={width:f,height:f,minWidth:f,minHeight:f};if(!e||s){if(n)return u.jsx("div",{style:p});if(i){const x=u.jsx("img",{src:gFe,style:p});return r?x:u.jsx(ci,{content:"Your current validator",children:x})}return u.jsx("img",{src:Nie,alt:"private",style:p})}const v=()=>{a(),l(!0)};return u.jsxs(u.Fragment,{children:[u.jsx("img",{className:Te({[Mie.hide]:!c}),style:p,onError:v,onLoad:()=>d(!0),src:e}),u.jsx("img",{className:Te({[Mie.hide]:c}),style:p,src:Nie,alt:"private"})]})}const O$=Gf((e,t,n)=>new Intl.NumberFormat(void 0,{minimumFractionDigits:n?e:0,maximumFractionDigits:e,minimumSignificantDigits:!n&&t?1:t,maximumSignificantDigits:t}),{maxSize:100});function z$(e,t){const{trailingZeroes:n=!0,decimalsOnZero:r=!1}=t;if(e===0&&!r)return"0";let i;if("decimals"in t){const s=typeof t.decimals=="function"?t.decimals(e):t.decimals;i=O$(s,void 0,n)}else{const{significantDigits:s,exactIntegers:l}=t;l&&Math.abs(e)>Math.pow(10,s)?i=O$(0,void 0,n):i=O$(void 0,s||1,n)}let o="";t.useSuffix&&([e,o]=bFe(e));const a=i.format(e);return a==="-0"?"0":a+o}function bFe(e){if(isFinite(e)){const t=Math.abs(e);if(t>=1e12)return[e/1e12,"T"];if(t>=1e9)return[e/1e9,"B"];if(t>=1e6)return[e/1e6,"M"];if(t>=1e3)return[e/1e3,"K"]}return[e,""]}const Rie=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",maximumFractionDigits:0}),D$=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",minimumFractionDigits:1,maximumFractionDigits:1});function xFe(e){switch(e){case 1:return"Once";case 2:return"Twice";default:return`${e} times`}}function _Fe(){var e=m.useRef(!0);return e.current?(e.current=!1,!0):e.current}var Lie=function(){};function wFe(e){for(var t=[],n=1;ns.preventDefault(),children:t})})]})}function Uie(e){const t=J(dG),n=Pie();if(Qu(n,e),!!t)return Yf.diff(jt.fromMillis(Math.trunc(Number(t.startupTimeNanos)/1e6))).rescale()}function Tp(e,t,n,r){var i=this,o=m.useRef(null),a=m.useRef(0),s=m.useRef(0),l=m.useRef(null),c=m.useRef([]),d=m.useRef(),f=m.useRef(),p=m.useRef(e),v=m.useRef(!0);p.current=e;var x=typeof window<"u",y=!t&&t!==0&&x;if(typeof e!="function")throw new TypeError("Expected a function");t=+t||0;var b=!!(n=n||{}).leading,w=!("trailing"in n)||!!n.trailing,_="maxWait"in n,S="debounceOnServer"in n&&!!n.debounceOnServer,C=_?Math.max(+n.maxWait||0,t):null;m.useEffect(function(){return v.current=!0,function(){v.current=!1}},[]);var j=m.useMemo(function(){var T=function(q){var P=c.current,X=d.current;return c.current=d.current=null,a.current=q,s.current=s.current||q,f.current=p.current.apply(X,P)},E=function(q,P){y&&cancelAnimationFrame(l.current),l.current=y?requestAnimationFrame(q):setTimeout(q,P)},$=function(q){if(!v.current)return!1;var P=q-o.current;return!o.current||P>=t||P<0||_&&q-a.current>=C},D=function(q){return l.current=null,w&&c.current?T(q):(c.current=d.current=null,f.current)},M=function q(){var P=Date.now();if(b&&s.current===a.current&&O(),$(P))return D(P);if(v.current){var X=t-(P-o.current),A=_?Math.min(X,C-(P-a.current)):X;E(q,A)}},O=function(){r&&r({})},te=function(){if(x||S){var q=Date.now(),P=$(q);if(c.current=[].slice.call(arguments),d.current=i,o.current=q,P){if(!l.current&&v.current)return a.current=o.current,E(M,t),b?T(o.current):f.current;if(_)return E(M,t),T(o.current)}return l.current||E(M,t),f.current}};return te.cancel=function(){var q=l.current;q&&(y?cancelAnimationFrame(l.current):clearTimeout(l.current)),a.current=0,c.current=o.current=d.current=l.current=null,q&&r&&r({})},te.isPending=function(){return!!l.current},te.flush=function(){return l.current?D(Date.now()):f.current},te},[b,_,t,C,w,y,x,S,r]);return j}function DFe(e,t){return e===t}function Bie(e,t,n){var r=n&&n.equalityFn||DFe,i=m.useRef(e),o=m.useState({})[1],a=Tp(m.useCallback(function(l){i.current=l,o({})},[o]),t,n,o),s=m.useRef(e);return r(s.current,e)||(a(e),s.current=e),[i.current,a]}function Ba(e,t,n){var r=n===void 0?{}:n,i=r.leading,o=r.trailing;return Tp(e,t,{maxWait:t,leading:i===void 0||i,trailing:o===void 0||o})}function Yr(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}var AFe=["color"],Wie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,AFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.5 2C7.77614 2 8 2.22386 8 2.5L8 11.2929L11.1464 8.14645C11.3417 7.95118 11.6583 7.95118 11.8536 8.14645C12.0488 8.34171 12.0488 8.65829 11.8536 8.85355L7.85355 12.8536C7.75979 12.9473 7.63261 13 7.5 13C7.36739 13 7.24021 12.9473 7.14645 12.8536L3.14645 8.85355C2.95118 8.65829 2.95118 8.34171 3.14645 8.14645C3.34171 7.95118 3.65829 7.95118 3.85355 8.14645L7 11.2929L7 2.5C7 2.22386 7.22386 2 7.5 2Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),FFe=["color"],Vie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,FFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.14645 2.14645C7.34171 1.95118 7.65829 1.95118 7.85355 2.14645L11.8536 6.14645C12.0488 6.34171 12.0488 6.65829 11.8536 6.85355C11.6583 7.04882 11.3417 7.04882 11.1464 6.85355L8 3.70711L8 12.5C8 12.7761 7.77614 13 7.5 13C7.22386 13 7 12.7761 7 12.5L7 3.70711L3.85355 6.85355C3.65829 7.04882 3.34171 7.04882 3.14645 6.85355C2.95118 6.65829 2.95118 6.34171 3.14645 6.14645L7.14645 2.14645Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),UFe=["color"],F$=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,UFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M4.18179 6.18181C4.35753 6.00608 4.64245 6.00608 4.81819 6.18181L7.49999 8.86362L10.1818 6.18181C10.3575 6.00608 10.6424 6.00608 10.8182 6.18181C10.9939 6.35755 10.9939 6.64247 10.8182 6.81821L7.81819 9.81821C7.73379 9.9026 7.61934 9.95001 7.49999 9.95001C7.38064 9.95001 7.26618 9.9026 7.18179 9.81821L4.18179 6.81821C4.00605 6.64247 4.00605 6.35755 4.18179 6.18181Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),BFe=["color"],U$=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,BFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M4.18179 8.81819C4.00605 8.64245 4.00605 8.35753 4.18179 8.18179L7.18179 5.18179C7.26618 5.0974 7.38064 5.04999 7.49999 5.04999C7.61933 5.04999 7.73379 5.0974 7.81819 5.18179L10.8182 8.18179C10.9939 8.35753 10.9939 8.64245 10.8182 8.81819C10.6424 8.99392 10.3575 8.99392 10.1818 8.81819L7.49999 6.13638L4.81819 8.81819C4.64245 8.99392 4.35753 8.99392 4.18179 8.81819Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),WFe=["color"],VFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,WFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),HFe=["color"],Hie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,HFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),ZFe=["color"],qFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,ZFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M6.1584 3.13508C6.35985 2.94621 6.67627 2.95642 6.86514 3.15788L10.6151 7.15788C10.7954 7.3502 10.7954 7.64949 10.6151 7.84182L6.86514 11.8418C6.67627 12.0433 6.35985 12.0535 6.1584 11.8646C5.95694 11.6757 5.94673 11.3593 6.1356 11.1579L9.565 7.49985L6.1356 3.84182C5.94673 3.64036 5.95694 3.32394 6.1584 3.13508Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),GFe=["color"],YFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,GFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M3.13523 8.84197C3.3241 9.04343 3.64052 9.05363 3.84197 8.86477L7.5 5.43536L11.158 8.86477C11.3595 9.05363 11.6759 9.04343 11.8648 8.84197C12.0536 8.64051 12.0434 8.32409 11.842 8.13523L7.84197 4.38523C7.64964 4.20492 7.35036 4.20492 7.15803 4.38523L3.15803 8.13523C2.95657 8.32409 2.94637 8.64051 3.13523 8.84197Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),KFe=["color"],XFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,KFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M1 9.50006C1 10.3285 1.67157 11.0001 2.5 11.0001H4L4 10.0001H2.5C2.22386 10.0001 2 9.7762 2 9.50006L2 2.50006C2 2.22392 2.22386 2.00006 2.5 2.00006L9.5 2.00006C9.77614 2.00006 10 2.22392 10 2.50006V4.00002H5.5C4.67158 4.00002 4 4.67159 4 5.50002V12.5C4 13.3284 4.67158 14 5.5 14H12.5C13.3284 14 14 13.3284 14 12.5V5.50002C14 4.67159 13.3284 4.00002 12.5 4.00002H11V2.50006C11 1.67163 10.3284 1.00006 9.5 1.00006H2.5C1.67157 1.00006 1 1.67163 1 2.50006V9.50006ZM5 5.50002C5 5.22388 5.22386 5.00002 5.5 5.00002H12.5C12.7761 5.00002 13 5.22388 13 5.50002V12.5C13 12.7762 12.7761 13 12.5 13H5.5C5.22386 13 5 12.7762 5 12.5V5.50002Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),JFe=["color"],QFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,JFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M13.15 7.49998C13.15 4.66458 10.9402 1.84998 7.50002 1.84998C4.72167 1.84998 3.34849 3.9064 2.76335 5H4.5C4.77614 5 5 5.22386 5 5.5C5 5.77614 4.77614 6 4.5 6H1.5C1.22386 6 1 5.77614 1 5.5V2.5C1 2.22386 1.22386 2 1.5 2C1.77614 2 2 2.22386 2 2.5V4.31318C2.70453 3.07126 4.33406 0.849976 7.50002 0.849976C11.5628 0.849976 14.15 4.18537 14.15 7.49998C14.15 10.8146 11.5628 14.15 7.50002 14.15C5.55618 14.15 3.93778 13.3808 2.78548 12.2084C2.16852 11.5806 1.68668 10.839 1.35816 10.0407C1.25306 9.78536 1.37488 9.49315 1.63024 9.38806C1.8856 9.28296 2.17781 9.40478 2.2829 9.66014C2.56374 10.3425 2.97495 10.9745 3.4987 11.5074C4.47052 12.4963 5.83496 13.15 7.50002 13.15C10.9402 13.15 13.15 10.3354 13.15 7.49998ZM7.5 4.00001C7.77614 4.00001 8 4.22387 8 4.50001V7.29291L9.85355 9.14646C10.0488 9.34172 10.0488 9.65831 9.85355 9.85357C9.65829 10.0488 9.34171 10.0488 9.14645 9.85357L7.14645 7.85357C7.05268 7.7598 7 7.63262 7 7.50001V4.50001C7 4.22387 7.22386 4.00001 7.5 4.00001Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),eUe=["color"],B$=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,eUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M12.8536 2.85355C13.0488 2.65829 13.0488 2.34171 12.8536 2.14645C12.6583 1.95118 12.3417 1.95118 12.1464 2.14645L7.5 6.79289L2.85355 2.14645C2.65829 1.95118 2.34171 1.95118 2.14645 2.14645C1.95118 2.34171 1.95118 2.65829 2.14645 2.85355L6.79289 7.5L2.14645 12.1464C1.95118 12.3417 1.95118 12.6583 2.14645 12.8536C2.34171 13.0488 2.65829 13.0488 2.85355 12.8536L7.5 8.20711L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L8.20711 7.5L12.8536 2.85355Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),tUe=["color"],nUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,tUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),rUe=["color"],iUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,rUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M11.1464 6.85355C11.3417 7.04882 11.6583 7.04882 11.8536 6.85355C12.0488 6.65829 12.0488 6.34171 11.8536 6.14645L7.85355 2.14645C7.65829 1.95118 7.34171 1.95118 7.14645 2.14645L3.14645 6.14645C2.95118 6.34171 2.95118 6.65829 3.14645 6.85355C3.34171 7.04882 3.65829 7.04882 3.85355 6.85355L7.5 3.20711L11.1464 6.85355ZM11.1464 12.8536C11.3417 13.0488 11.6583 13.0488 11.8536 12.8536C12.0488 12.6583 12.0488 12.3417 11.8536 12.1464L7.85355 8.14645C7.65829 7.95118 7.34171 7.95118 7.14645 8.14645L3.14645 12.1464C2.95118 12.3417 2.95118 12.6583 3.14645 12.8536C3.34171 13.0488 3.65829 13.0488 3.85355 12.8536L7.5 9.20711L11.1464 12.8536Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),oUe=["color"],aUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,oUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M2 2.5C2 2.22386 2.22386 2 2.5 2H5.5C5.77614 2 6 2.22386 6 2.5C6 2.77614 5.77614 3 5.5 3H3V5.5C3 5.77614 2.77614 6 2.5 6C2.22386 6 2 5.77614 2 5.5V2.5ZM9 2.5C9 2.22386 9.22386 2 9.5 2H12.5C12.7761 2 13 2.22386 13 2.5V5.5C13 5.77614 12.7761 6 12.5 6C12.2239 6 12 5.77614 12 5.5V3H9.5C9.22386 3 9 2.77614 9 2.5ZM2.5 9C2.77614 9 3 9.22386 3 9.5V12H5.5C5.77614 12 6 12.2239 6 12.5C6 12.7761 5.77614 13 5.5 13H2.5C2.22386 13 2 12.7761 2 12.5V9.5C2 9.22386 2.22386 9 2.5 9ZM12.5 9C12.7761 9 13 9.22386 13 9.5V12.5C13 12.7761 12.7761 13 12.5 13H9.5C9.22386 13 9 12.7761 9 12.5C9 12.2239 9.22386 12 9.5 12H12V9.5C12 9.22386 12.2239 9 12.5 9Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),sUe=["color"],lUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,sUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M5.5 2C5.77614 2 6 2.22386 6 2.5V5.5C6 5.77614 5.77614 6 5.5 6H2.5C2.22386 6 2 5.77614 2 5.5C2 5.22386 2.22386 5 2.5 5H5V2.5C5 2.22386 5.22386 2 5.5 2ZM9.5 2C9.77614 2 10 2.22386 10 2.5V5H12.5C12.7761 5 13 5.22386 13 5.5C13 5.77614 12.7761 6 12.5 6H9.5C9.22386 6 9 5.77614 9 5.5V2.5C9 2.22386 9.22386 2 9.5 2ZM2 9.5C2 9.22386 2.22386 9 2.5 9H5.5C5.77614 9 6 9.22386 6 9.5V12.5C6 12.7761 5.77614 13 5.5 13C5.22386 13 5 12.7761 5 12.5V10H2.5C2.22386 10 2 9.77614 2 9.5ZM9 9.5C9 9.22386 9.22386 9 9.5 9H12.5C12.7761 9 13 9.22386 13 9.5C13 9.77614 12.7761 10 12.5 10H10V12.5C10 12.7761 9.77614 13 9.5 13C9.22386 13 9 12.7761 9 12.5V9.5Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),uUe=["color"],Zie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,uUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.49991 0.876892C3.84222 0.876892 0.877075 3.84204 0.877075 7.49972C0.877075 11.1574 3.84222 14.1226 7.49991 14.1226C11.1576 14.1226 14.1227 11.1574 14.1227 7.49972C14.1227 3.84204 11.1576 0.876892 7.49991 0.876892ZM1.82707 7.49972C1.82707 4.36671 4.36689 1.82689 7.49991 1.82689C10.6329 1.82689 13.1727 4.36671 13.1727 7.49972C13.1727 10.6327 10.6329 13.1726 7.49991 13.1726C4.36689 13.1726 1.82707 10.6327 1.82707 7.49972ZM8.24992 4.49999C8.24992 4.9142 7.91413 5.24999 7.49992 5.24999C7.08571 5.24999 6.74992 4.9142 6.74992 4.49999C6.74992 4.08577 7.08571 3.74999 7.49992 3.74999C7.91413 3.74999 8.24992 4.08577 8.24992 4.49999ZM6.00003 5.99999H6.50003H7.50003C7.77618 5.99999 8.00003 6.22384 8.00003 6.49999V9.99999H8.50003H9.00003V11H8.50003H7.50003H6.50003H6.00003V9.99999H6.50003H7.00003V6.99999H6.50003H6.00003V5.99999Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),cUe=["color"],qie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,cUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),dUe=["color"],fUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,dUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M1.85001 7.50043C1.85001 4.37975 4.37963 1.85001 7.50001 1.85001C10.6204 1.85001 13.15 4.37975 13.15 7.50043C13.15 10.6211 10.6204 13.1509 7.50001 13.1509C4.37963 13.1509 1.85001 10.6211 1.85001 7.50043ZM7.50001 0.850006C3.82728 0.850006 0.850006 3.82753 0.850006 7.50043C0.850006 11.1733 3.82728 14.1509 7.50001 14.1509C11.1727 14.1509 14.15 11.1733 14.15 7.50043C14.15 3.82753 11.1727 0.850006 7.50001 0.850006ZM7.00001 8.00001V3.12811C7.16411 3.10954 7.33094 3.10001 7.50001 3.10001C9.93006 3.10001 11.9 5.07014 11.9 7.50043C11.9 7.66935 11.8905 7.83604 11.872 8.00001H7.00001Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),hUe=["color"],pUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,hUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.49991 0.876892C3.84222 0.876892 0.877075 3.84204 0.877075 7.49972C0.877075 11.1574 3.84222 14.1226 7.49991 14.1226C11.1576 14.1226 14.1227 11.1574 14.1227 7.49972C14.1227 3.84204 11.1576 0.876892 7.49991 0.876892ZM1.82707 7.49972C1.82707 4.36671 4.36689 1.82689 7.49991 1.82689C10.6329 1.82689 13.1727 4.36671 13.1727 7.49972C13.1727 10.6327 10.6329 13.1726 7.49991 13.1726C4.36689 13.1726 1.82707 10.6327 1.82707 7.49972ZM7.50003 4C7.77617 4 8.00003 4.22386 8.00003 4.5V7H10.5C10.7762 7 11 7.22386 11 7.5C11 7.77614 10.7762 8 10.5 8H8.00003V10.5C8.00003 10.7761 7.77617 11 7.50003 11C7.22389 11 7.00003 10.7761 7.00003 10.5V8H4.50003C4.22389 8 4.00003 7.77614 4.00003 7.5C4.00003 7.22386 4.22389 7 4.50003 7H7.00003V4.5C7.00003 4.22386 7.22389 4 7.50003 4Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),mUe=["color"],gUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,mUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M4.85355 2.14645C5.04882 2.34171 5.04882 2.65829 4.85355 2.85355L3.70711 4H9C11.4853 4 13.5 6.01472 13.5 8.5C13.5 10.9853 11.4853 13 9 13H5C4.72386 13 4.5 12.7761 4.5 12.5C4.5 12.2239 4.72386 12 5 12H9C10.933 12 12.5 10.433 12.5 8.5C12.5 6.567 10.933 5 9 5H3.70711L4.85355 6.14645C5.04882 6.34171 5.04882 6.65829 4.85355 6.85355C4.65829 7.04882 4.34171 7.04882 4.14645 6.85355L2.14645 4.85355C1.95118 4.65829 1.95118 4.34171 2.14645 4.14645L4.14645 2.14645C4.34171 1.95118 4.65829 1.95118 4.85355 2.14645Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),vUe=["color"],yUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,vUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M3.89949 9.49998C3.89949 9.72089 3.7204 9.89997 3.49949 9.89997C3.27857 9.89997 3.09949 9.72089 3.09949 9.49998L3.09949 2.46566L1.78233 3.78282C1.62612 3.93903 1.37285 3.93903 1.21664 3.78282C1.06043 3.62661 1.06043 3.37334 1.21664 3.21713L3.21664 1.21713C3.29166 1.14212 3.3934 1.09998 3.49949 1.09998C3.60557 1.09998 3.70732 1.14212 3.78233 1.21713L5.78233 3.21713C5.93854 3.37334 5.93854 3.62661 5.78233 3.78282C5.62612 3.93903 5.37285 3.93903 5.21664 3.78282L3.89949 2.46566L3.89949 9.49998ZM8.49998 1.99998C8.22383 1.99998 7.99998 2.22383 7.99998 2.49998C7.99998 2.77612 8.22383 2.99998 8.49998 2.99998H14.5C14.7761 2.99998 15 2.77612 15 2.49998C15 2.22383 14.7761 1.99998 14.5 1.99998H8.49998ZM8.49998 4.99998C8.22383 4.99998 7.99998 5.22383 7.99998 5.49998C7.99998 5.77612 8.22383 5.99998 8.49998 5.99998H14.5C14.7761 5.99998 15 5.77612 15 5.49998C15 5.22383 14.7761 4.99998 14.5 4.99998H8.49998ZM7.99998 8.49998C7.99998 8.22383 8.22383 7.99998 8.49998 7.99998H14.5C14.7761 7.99998 15 8.22383 15 8.49998C15 8.77612 14.7761 8.99998 14.5 8.99998H8.49998C8.22383 8.99998 7.99998 8.77612 7.99998 8.49998Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),bUe=["color"],Gie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,bUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.49998 0.849976C7.22383 0.849976 6.99998 1.07383 6.99998 1.34998V3.52234C6.99998 3.79848 7.22383 4.02234 7.49998 4.02234C7.77612 4.02234 7.99998 3.79848 7.99998 3.52234V1.8718C10.8862 2.12488 13.15 4.54806 13.15 7.49998C13.15 10.6204 10.6204 13.15 7.49998 13.15C4.37957 13.15 1.84998 10.6204 1.84998 7.49998C1.84998 6.10612 2.35407 4.83128 3.19049 3.8459C3.36919 3.63538 3.34339 3.31985 3.13286 3.14115C2.92234 2.96245 2.60681 2.98825 2.42811 3.19877C1.44405 4.35808 0.849976 5.86029 0.849976 7.49998C0.849976 11.1727 3.82728 14.15 7.49998 14.15C11.1727 14.15 14.15 11.1727 14.15 7.49998C14.15 3.82728 11.1727 0.849976 7.49998 0.849976ZM6.74049 8.08072L4.22363 4.57237C4.15231 4.47295 4.16346 4.33652 4.24998 4.25C4.33649 4.16348 4.47293 4.15233 4.57234 4.22365L8.08069 6.74051C8.56227 7.08599 8.61906 7.78091 8.19998 8.2C7.78089 8.61909 7.08597 8.56229 6.74049 8.08072Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),xUe=["color"],_Ue=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,xUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159ZM4.25 6.5C4.25 6.22386 4.47386 6 4.75 6H6V4.75C6 4.47386 6.22386 4.25 6.5 4.25C6.77614 4.25 7 4.47386 7 4.75V6H8.25C8.52614 6 8.75 6.22386 8.75 6.5C8.75 6.77614 8.52614 7 8.25 7H7V8.25C7 8.52614 6.77614 8.75 6.5 8.75C6.22386 8.75 6 8.52614 6 8.25V7H4.75C4.47386 7 4.25 6.77614 4.25 6.5Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),wUe=["color"],kUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,wUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M6.5 10C8.433 10 10 8.433 10 6.5C10 4.567 8.433 3 6.5 3C4.567 3 3 4.567 3 6.5C3 8.433 4.567 10 6.5 10ZM6.5 11C7.56251 11 8.53901 10.6318 9.30884 10.0159L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L10.0159 9.30884C10.6318 8.53901 11 7.56251 11 6.5C11 4.01472 8.98528 2 6.5 2C4.01472 2 2 4.01472 2 6.5C2 8.98528 4.01472 11 6.5 11ZM4.75 6C4.47386 6 4.25 6.22386 4.25 6.5C4.25 6.77614 4.47386 7 4.75 7H8.25C8.52614 7 8.75 6.77614 8.75 6.5C8.75 6.22386 8.52614 6 8.25 6H4.75Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))});const SUe="_copy-button_1km2g_1",CUe="_icon_1km2g_8",jUe="_hide-icon-until-hover_1km2g_12",Zk={copyButton:SUe,icon:CUe,hideIconUntilHover:jUe};function Dg({value:e,color:t,size:n,hideIconUntilHover:r,className:i,children:o}){const[a,s]=m.useState(!1),l=Tp(()=>s(!1),1e3);return e===void 0?o:u.jsxs(hs,{className:Te(i,Zk.copyButton,r&&Zk.hideIconUntilHover),variant:"ghost",size:"1",onClick:c=>{WN(e),s(!0),l(),c.stopPropagation()},children:[o,a?u.jsx(VFe,{className:Zk.icon,color:"green",height:n}):u.jsx(XFe,{className:Zk.icon,color:t,height:n})]})}function qk({children:e,...t}){return t.content?u.jsx(ci,{...t,children:e}):u.jsx(u.Fragment,{children:e})}function TUe(){var o;const{peer:e,identityKey:t}=ax(),n=Hn(`(min-width: ${Hte})`),r=Hn("(min-width: 798px)"),i=Hn("(min-width: 914px)");return m.useEffect(()=>{var s;const a=((s=e==null?void 0:e.info)==null?void 0:s.name)??t;document.title=a?`${hb} | ${a}`:hb},[t,e]),u.jsx(IUe,{showDropdown:!0,children:u.jsxs("div",{className:Te(nh.container,nh.horizontal,nh.pointer),children:[u.jsx(ks,{url:(o=e==null?void 0:e.info)==null?void 0:o.icon_url,size:28,isYou:!0}),n&&u.jsx(Yie,{shouldShrink:!0}),r&&u.jsxs(u.Fragment,{children:[u.jsx(Jie,{showTooltip:!0}),u.jsx(Xie,{showTooltip:!0})]}),i&&u.jsxs(u.Fragment,{children:[u.jsx(Qie,{}),u.jsx(Kie,{showTooltip:!0}),u.jsx(eoe,{})]})]})})}function IUe({showDropdown:e,children:t}){return e?u.jsx(zg,{content:u.jsx(EUe,{}),align:"end",children:t}):t}function EUe(){var t;const{peer:e}=ax();return u.jsxs(W,{direction:"column",wrap:"wrap",gap:"2",className:Te(nh.container,nh.dropdownMenu),style:{zIndex:Vf},children:[u.jsxs(W,{gap:"2",children:[u.jsx(ks,{url:(t=e==null?void 0:e.info)==null?void 0:t.icon_url,size:24,isYou:!0}),u.jsx(Yie,{})]}),u.jsx(Jie,{}),u.jsx(Xie,{}),u.jsx(Qie,{}),u.jsx(Kie,{}),u.jsx(NUe,{}),u.jsx($Ue,{}),u.jsx(eoe,{})]})}function Yie({shouldShrink:e}){const{identityKey:t}=ax();return u.jsx(rh,{label:"Validator Name",copyValue:t,shouldShrink:e,children:t})}function NUe(){var t;const{peer:e}=ax();return u.jsx(rh,{label:"Vote Pubkey",children:(t=e==null?void 0:e.vote[0])==null?void 0:t.vote_account})}function $Ue(){const e=J(hG),t=Tb(e);return u.jsx(rh,{label:"Vote Balance",children:u.jsx(Ag,{value:t,suffix:"SOL"})})}function Kie({showTooltip:e}){const t=J(fG),n=Tb(t);return u.jsx(rh,{label:"Identity Balance",tooltip:e?"Account balance of this validators identity account. The balance is on the highest slot of the currently active fork of the validator.":void 0,children:u.jsx(Ag,{value:n,suffix:"SOL"})})}function Xie({showTooltip:e}){const t=J(mDe),n=t===void 0?void 0:z$(t,{significantDigits:4,trailingZeroes:!1});return u.jsx(rh,{label:"Stake %",tooltip:e?"What percentage of total stake is delegated to this validator":void 0,children:u.jsx(Ag,{value:n,suffix:"%"})})}function Jie({showTooltip:e}){const t=J(bre),n=Tb(t);return u.jsx(rh,{label:"Stake Amount",tooltip:e?"Amount of total stake that is delegated to this validator":void 0,children:u.jsx(Ag,{value:n,suffix:"SOL"})})}function Qie(){var n;const{peer:e}=ax(),t=e==null?void 0:e.vote.reduce((r,i)=>i.activated_stake>r.maxStake?{maxStake:i.activated_stake,commission:i.commission}:r,{maxStake:0n,commission:void 0});return u.jsx(rh,{label:"Commission",children:u.jsx(Ag,{value:(n=t==null?void 0:t.commission)==null?void 0:n.toLocaleString(),suffix:"%"})})}function eoe(){const e=Uie(6e4),t=e?ere(e,{omitSeconds:!0}):void 0;return u.jsx(rh,{label:"Uptime",children:t==null?void 0:t.map(([n,r],i)=>u.jsxs(m.Fragment,{children:[i!==0&&"\xA0",u.jsx(Ag,{value:n,suffix:r,excludeSpace:!0})]},`${n}${r}`))})}function rh({label:e,tooltip:t,shouldShrink:n=!1,children:r,copyValue:i}){return r?u.jsx(qk,{content:t,children:u.jsxs(W,{direction:"column",minWidth:"0",flexShrink:n?"1":"0",children:[u.jsx(Z,{truncate:!0,className:nh.label,children:e}),u.jsx(Dg,{value:i,color:"white",size:"10px",hideIconUntilHover:!0,children:u.jsx(Z,{truncate:!0,className:nh.value,children:r})})]})}):null}function Ag({value:e,suffix:t,valueColor:n,excludeSpace:r}){return u.jsxs(u.Fragment,{children:[u.jsxs("span",{style:{color:n},children:[e,!r&&"\xA0"]}),u.jsx("span",{className:nh.valueSuffix,children:t})]})}const MUe="_nav-link_tb1ax_1",RUe="_icon_tb1ax_14",LUe="_dropdown-icon_tb1ax_19",PUe="_active_tb1ax_29",OUe="_nav-dropdown-content_tb1ax_41",sx={navLink:MUe,icon:RUe,dropdownIcon:LUe,active:PUe,navDropdownContent:OUe},zUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M21 5.47 12 12 7.62 7.62 3 11V8.52L7.83 5l4.38 4.38L21 3v2.47zM21 15h-4.7l-4.17 3.34L6 12.41l-3 2.13V17l2.8-2 6.2 6 5-4h4v-2z"})),DUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"})),AUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zM9 14H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm-8 4H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2z"})),FUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M18 11v2h4v-2h-4zm-2 6.61c.96.71 2.21 1.65 3.2 2.39.4-.53.8-1.07 1.2-1.6-.99-.74-2.24-1.68-3.2-2.4-.4.54-.8 1.08-1.2 1.61zM20.4 5.6c-.4-.53-.8-1.07-1.2-1.6-.99.74-2.24 1.68-3.2 2.4.4.53.8 1.07 1.2 1.6.96-.72 2.21-1.65 3.2-2.4zM4 9c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1v4h2v-4h1l5 3V6L8 9H4zm11.5 3c0-1.33-.58-2.53-1.5-3.35v6.69c.92-.81 1.5-2.01 1.5-3.34z"})),UUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"})),Gk={Overview:"/","Slot Details":"/slotDetails",Schedule:"/leaderSchedule",Gossip:"/gossip"};function Yk(){const e=D9e();return m.useMemo(()=>{const t=Object.entries(Gk).find(([n,r])=>e.pathname===r);return t?t[0]:"Overview"},[e.pathname])}function BUe(){const e=J(ao),t=J(eu),n=J(An),r=Ee(An),[i,o]=m.useMemo(()=>{if(e===void 0)return[-1,-1];const a=e.findIndex(l=>l>(n??t??0));let s=a-1;return s===e.findIndex(l=>l===(n??t??0))&&s--,[s,a]},[t,e,n]);return m.useMemo(()=>({navPrevLeaderSlot:(a=1)=>{if(i>-1&&a>0){const s=e==null?void 0:e[i-a+1];s!==void 0&&r(s)}},navNextLeaderSlot:(a=1)=>{if(o>-1&&a>0){const s=e==null?void 0:e[o+a-1];s!==void 0&&r(s)}}}),[e,o,i,r])}const WUe={Overview:zUe,Schedule:AUe,Gossip:FUe,"Slot Details":DUe},Kk=m.forwardRef(({label:e,isActive:t,showDropdownIcon:n=!1,isLink:r,...i},o)=>{const a=J(qy),s=bk(a),l=WUe[e],c=Gk[e],d=m.useMemo(()=>{const f=t?s:Qte;return u.jsxs(u.Fragment,{children:[u.jsx(l,{className:sx.icon,fill:f}),u.jsx(Z,{truncate:!0,children:e}),n&&u.jsx(UUe,{className:sx.dropdownIcon,fill:f})]})},[l,s,t,e,n]);return u.jsx(hs,{ref:o,...i,size:"2",variant:"soft",color:"gray",className:Te(sx.navLink,{[sx.active]:t}),style:{color:t?s:void 0},asChild:r,children:r?u.jsx(sp,{to:c,children:d}):d})});Kk.displayName="NavButton";function VUe(){const e=Yk();return u.jsx(W,{gap:`${Wf}px`,children:Object.keys(Gk).map(t=>{const n=t;if(!(n==="Gossip"&&xi))return u.jsx(Kk,{label:n,isActive:e===n,isLink:!0},n)})})}function HUe(){const e=J(jg),t=Yk();return u.jsxs(bV,{children:[u.jsx(xV,{asChild:!0,children:u.jsx(Kk,{label:t,isActive:!0,showDropdownIcon:!0,isLink:!1},t)}),u.jsx(s7,{container:e,children:u.jsx(_V,{side:"bottom",sideOffset:5,className:sx.navDropdownContent,style:{zIndex:Vf},children:Object.keys(Gk).map(n=>{const r=n;if(!(r==="Gossip"&&xi))return u.jsx(wV,{asChild:!0,children:u.jsx(Kk,{label:r,isActive:r===t,isLink:!0},r)},r)})})})]})}function ZUe(){const e=BUe();return m.useEffect(()=>{const t=n=>{n.code==="ArrowLeft"?e.navPrevLeaderSlot():n.code==="ArrowRight"&&e.navNextLeaderSlot()};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[e]),null}const toe="/assets/firedancer_logo-CrgwxzPk.svg",noe="/assets/frankendancer_logo-CHyfJ772.svg",qUe="_logo_1ml9x_1",GUe={logo:qUe};function YUe(){return u.jsx(Z0,{children:u.jsx(sp,{to:"/",children:u.jsx("img",{className:GUe.logo,width:dN,src:Vi?toe:noe,alt:hb})})})}const KUe="_cluster-container_7aa6c_1",XUe="_cluster_7aa6c_1",JUe="_cluster-name_7aa6c_19",W$={clusterContainer:KUe,cluster:XUe,clusterName:JUe},QUe=e=>m.createElement("svg",{width:12,height:12,viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{d:"M6.39844 3.39062V9.89844H11.6484V11.0742H0V9.89844H5.25V3.39062C4.72135 3.20833 4.36589 2.85286 4.18359 2.32422H2.32422L4.07422 6.39844C4.07422 6.72656 3.98307 7.02734 3.80078 7.30078C3.61849 7.55599 3.3724 7.76562 3.0625 7.92969C2.7526 8.07552 2.40625 8.14844 2.02344 8.14844C1.65885 8.14844 1.32161 8.07552 1.01172 7.92969C0.701823 7.76562 0.455729 7.55599 0.273438 7.30078C0.0911458 7.02734 0 6.72656 0 6.39844L1.75 2.32422H0.574219V1.14844H4.18359C4.29297 0.820312 4.49349 0.546875 4.78516 0.328125C5.09505 0.109375 5.44141 0 5.82422 0C6.20703 0 6.54427 0.109375 6.83594 0.328125C7.14583 0.546875 7.35547 0.820312 7.46484 1.14844H11.0742V2.32422H9.89844L11.6484 6.39844C11.6484 6.72656 11.5573 7.02734 11.375 7.30078C11.1927 7.55599 10.9466 7.76562 10.6367 7.92969C10.3268 8.07552 9.98958 8.14844 9.625 8.14844C9.24219 8.14844 8.89583 8.07552 8.58594 7.92969C8.27604 7.76562 8.02995 7.55599 7.84766 7.30078C7.66536 7.02734 7.57422 6.72656 7.57422 6.39844L9.32422 2.32422H7.46484C7.28255 2.85286 6.92708 3.20833 6.39844 3.39062ZM10.7188 6.39844L9.625 3.85547L8.53125 6.39844H10.7188ZM3.11719 6.39844L2.02344 3.85547L0.929688 6.39844H3.11719ZM5.82422 2.32422C5.98828 2.32422 6.125 2.26953 6.23438 2.16016C6.34375 2.03255 6.39844 1.89583 6.39844 1.75C6.39844 1.58594 6.34375 1.44922 6.23438 1.33984C6.125 1.21224 5.98828 1.14844 5.82422 1.14844C5.66016 1.14844 5.52344 1.21224 5.41406 1.33984C5.30469 1.44922 5.25 1.58594 5.25 1.75C5.25 1.89583 5.30469 2.03255 5.41406 2.16016C5.52344 2.26953 5.66016 2.32422 5.82422 2.32422Z"})),eBe=e=>m.createElement("svg",{width:7,height:11,viewBox:"0 0 7 11",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{d:"M2.48828 10.5H1.88672L2.48828 6.42578H0.4375C0.145833 6.42578 0.0729167 6.29818 0.21875 6.04297C0.273438 5.95182 0.282552 5.92448 0.246094 5.96094C1.17578 4.33854 2.30599 2.35156 3.63672 0H4.23828L3.63672 4.07422H5.6875C5.94271 4.07422 6.02474 4.20182 5.93359 4.45703L2.48828 10.5Z"})),tBe=e=>m.createElement("svg",{width:12,height:12,viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{d:"M4.18359 2.26953L3.41797 2.13281C2.9987 2.04167 2.64323 2.15104 2.35156 2.46094L0 4.8125L2.10547 5.71484C2.1237 5.67839 2.1875 5.54167 2.29688 5.30469C2.40625 5.06771 2.55208 4.77604 2.73438 4.42969C2.91667 4.08333 3.1263 3.72786 3.36328 3.36328C3.61849 2.98047 3.89193 2.61589 4.18359 2.26953ZM5.33203 8.50391L2.89844 6.07031C2.89844 6.07031 2.95312 5.95182 3.0625 5.71484C3.17188 5.47786 3.31771 5.17708 3.5 4.8125C3.70052 4.44792 3.92839 4.07422 4.18359 3.69141C4.45703 3.29036 4.7487 2.9349 5.05859 2.625C5.69661 1.98698 6.29818 1.49479 6.86328 1.14844C7.42839 0.783854 7.94792 0.519531 8.42188 0.355469C8.91406 0.191406 9.35156 0.0911458 9.73438 0.0546875C10.1172 0.0182292 10.4362 0.0182292 10.6914 0.0546875C10.9466 0.0911458 11.1289 0.127604 11.2383 0.164062C11.2747 0.273438 11.3112 0.455729 11.3477 0.710938C11.3841 0.966146 11.3841 1.28516 11.3477 1.66797C11.3112 2.05078 11.2109 2.48828 11.0469 2.98047C10.8828 3.45443 10.6185 3.97396 10.2539 4.53906C9.90755 5.10417 9.41536 5.70573 8.77734 6.34375C8.46745 6.65365 8.11198 6.94531 7.71094 7.21875C7.32812 7.47396 6.95443 7.70182 6.58984 7.90234C6.22526 8.08464 5.92448 8.23047 5.6875 8.33984C5.45052 8.44922 5.33203 8.50391 5.33203 8.50391ZM9.13281 7.21875L9.26953 7.98438C9.36068 8.40365 9.2513 8.75911 8.94141 9.05078L6.58984 11.4023L5.6875 9.29688C5.72396 9.27865 5.86068 9.21484 6.09766 9.10547C6.33464 8.99609 6.6263 8.85026 6.97266 8.66797C7.31901 8.48568 7.67448 8.27604 8.03906 8.03906C8.42188 7.78385 8.78646 7.51042 9.13281 7.21875ZM4.07422 9.07812C4.07422 8.75 3.99219 8.45833 3.82812 8.20312C3.68229 7.92969 3.47266 7.72005 3.19922 7.57422C2.94401 7.41016 2.65234 7.32812 2.32422 7.32812C2.08724 7.32812 1.85938 7.3737 1.64062 7.46484C1.42188 7.55599 1.23958 7.68359 1.09375 7.84766C0.947917 7.97526 0.820312 8.1849 0.710938 8.47656C0.601562 8.75 0.501302 9.0599 0.410156 9.40625C0.31901 9.73438 0.236979 10.0534 0.164062 10.3633C0.109375 10.6732 0.0638021 10.9284 0.0273438 11.1289C0.00911458 11.3112 0 11.4023 0 11.4023C0 11.4023 0.0911458 11.3932 0.273438 11.375C0.473958 11.3385 0.729167 11.293 1.03906 11.2383C1.34896 11.1654 1.66797 11.0833 1.99609 10.9922C2.34245 10.901 2.65234 10.8008 2.92578 10.6914C3.21745 10.582 3.42708 10.4544 3.55469 10.3086C3.71875 10.1628 3.84635 9.98047 3.9375 9.76172C4.02865 9.54297 4.07422 9.3151 4.07422 9.07812ZM6.39844 3.82812C6.39844 4.15625 6.50781 4.4388 6.72656 4.67578C6.96354 4.89453 7.24609 5.00391 7.57422 5.00391C7.90234 5.00391 8.17578 4.89453 8.39453 4.67578C8.63151 4.4388 8.75 4.15625 8.75 3.82812C8.75 3.5 8.63151 3.22656 8.39453 3.00781C8.17578 2.77083 7.90234 2.65234 7.57422 2.65234C7.24609 2.65234 6.96354 2.77083 6.72656 3.00781C6.50781 3.22656 6.39844 3.5 6.39844 3.82812Z"}));function roe({strategy:e,iconSize:t,tooltipContent:n}){const r=J(qy),i=m.useMemo(()=>({width:`${t}px`,height:`${t}px`,color:bk(r)}),[r,t]),o=m.useMemo(()=>{if(e===ld.balanced)return u.jsx(QUe,{...i});if(e===ld.perf)return u.jsx(eBe,{...i});if(e===ld.revenue)return u.jsx(tBe,{...i})},[e,i]);return n?u.jsx(ci,{content:n,children:u.jsx("div",{style:{lineHeight:0},children:o})}):o}const lx=2;function nBe(){const e=J(qy),t=J(uG),n=J(cG);if(!e&&!t)return null;let r=e;return e==="mainnet-beta"&&(r="mainnet"),u.jsxs(W,{width:`${hN+lx}px`,className:W$.clusterContainer,gap:"5px",ml:`-${lx}px`,p:`${lx}px 5px ${lx}px ${lx}px`,children:[u.jsxs(W,{className:W$.cluster,flexGrow:"1",direction:"column",align:"center",style:{background:bk(e)},children:[u.jsx(ci,{content:"Cluster the validator is joined to",children:u.jsx(Z,{className:W$.clusterName,children:r})}),u.jsx(ci,{content:`Current validator software version. Commit Hash: ${n||"unknown"}`,children:u.jsxs(Z,{children:["v",t]})})]}),u.jsx(iBe,{})]})}function rBe(){const e=J(qy),t=bk(e);return u.jsx("div",{style:{background:t,height:kb,width:"100%"}})}function iBe(){const e=J(s3),t=m.useMemo(()=>{if(e===ld.balanced)return"Transaction scheduler strategy: balanced";if(e===ld.perf)return"Transaction scheduler strategy: performance";if(e===ld.revenue)return"Transaction scheduler strategy: revenue"},[e]);if(e)return u.jsx(roe,{strategy:e,iconSize:12,tooltipContent:t})}const oBe="_nav-filter-toggle-group_148xa_1",aBe="_lg_148xa_47",sBe="_toggle-button_148xa_43",lBe="_floating_148xa_61",uBe="_mirror_148xa_75",cBe="_slot-nav-container_148xa_81",dBe="_nav-background_148xa_85",Ip={navFilterToggleGroup:oBe,lg:aBe,toggleButton:sBe,floating:lBe,mirror:uBe,slotNavContainer:cBe,navBackground:dBe},fBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M13 7h9v2h-9zm0 8h9v2h-9zm3-4h6v2h-6zm-3 1L8 7v4H2v2h6v4z"}));function Fg(){const e=Hn(Vte),[t,n]=Vl(Jze),r=Yk()==="Schedule",i=r||!t,o=r;return{isNarrowScreen:e,showNav:i,setIsNavCollapsed:n,showOnlyEpochBar:o,blurBackground:e&&!t&&!o,occupyRowWidth:o||!e&&!t}}function V$({isFloating:e,isLarge:t}){const{showNav:n,setIsNavCollapsed:r,showOnlyEpochBar:i}=Fg(),o=`${t?NLe:cN}px`;return i?u.jsx("div",{style:{height:o,width:o}}):u.jsx(nl,{size:"1",onClick:()=>r(a=>!a),className:Te(Ip.toggleButton,{[Ip.floating]:e}),style:{height:o,width:o},children:u.jsx(fBe,{className:Te({[Ip.lg]:t,[Ip.mirror]:n})})})}function ioe(){const{setIsNavCollapsed:e}=Fg();return u.jsx("div",{onClick:()=>e(!0),className:"blur",style:{zIndex:Vf-2}})}const hBe="_nav-background_1sjct_1",pBe={navBackground:hBe},mBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M18 13h-.68l-2 2h1.91L19 17H5l1.78-2h2.05l-2-2H6l-3 3v4c0 1.1.89 2 1.99 2H19a2 2 0 0 0 2-2v-4l-3-3zm-1-5.05-4.95 4.95-3.54-3.54 4.95-4.95L17 7.95zm-4.24-5.66L6.39 8.66a.996.996 0 0 0 0 1.41l4.95 4.95c.39.39 1.02.39 1.41 0l6.36-6.36a.996.996 0 0 0 0-1.41L14.16 2.3a.975.975 0 0 0-1.4-.01z"})),gBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"m11.99 18.54-7.37-5.73L3 14.07l9 7 9-7-1.63-1.27-7.38 5.74zM12 16l7.36-5.73L21 9l-9-7-9 7 1.63 1.27L12 16z"})),vBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"}),m.createElement("path",{d:"M22 7.47V5.35C20.05 4.77 16.56 4 12 4c-2.15 0-4.11.86-5.54 2.24.13-.85.4-2.4 1.01-4.24H5.35C4.77 3.95 4 7.44 4 12c0 2.15.86 4.11 2.24 5.54-.85-.14-2.4-.4-4.24-1.01v2.12C3.95 19.23 7.44 20 12 20c2.15 0 4.11-.86 5.54-2.24-.14.85-.4 2.4-1.01 4.24h2.12c.58-1.95 1.35-5.44 1.35-10 0-2.15-.86-4.11-2.24-5.54.85.13 2.4.4 4.24 1.01zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"})),yBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{fillRule:"evenodd",d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm6 10c0 3.31-2.69 6-6 6s-6-2.69-6-6h2c0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4v3L8 7l4-4v3c3.31 0 6 2.69 6 6z"})),bBe="_health-pane_hbx15_1",xBe="_vertical_hbx15_14",_Be="_narrow_hbx15_18",wBe="_health-box_hbx15_22",kBe="_stacked_hbx15_36",SBe="_alerting_hbx15_44",CBe="_popover_hbx15_58",jBe="_title_hbx15_62",TBe="_status_hbx15_67",IBe="_content_hbx15_77",dl={healthPane:bBe,vertical:xBe,narrow:_Be,healthBox:wBe,stacked:kBe,alerting:SBe,popover:CBe,title:jBe,status:TBe,content:IBe},ooe={forceUpdateIntervalMs:1500,halfLifeMs:5e3,initMinSamples:5};function Ug(e,t){const{forceUpdateIntervalMs:n,halfLifeMs:r,initMinSamples:i}={...ooe,...t},o=m.useMemo(()=>r/Math.log(2),[r]),[a,s]=m.useState(),l=m.useRef(),c=m.useRef(e);c.current=e;const d=m.useRef(),f=m.useRef(0),p=m.useRef(!1);p.current=a!==void 0;const v=m.useCallback(()=>{s(void 0),l.current=void 0,d.current=void 0,f.current=0,y.current!==void 0&&(clearTimeout(y.current),y.current=void 0)},[]),x=m.useCallback(b=>{b??(b=c.current);const w=performance.now();if(l.current===void 0){b!=null&&(l.current={value:b,tsMs:w});return}b??(b=l.current.value);const{value:_,tsMs:S}=l.current,C=w-S;if(!isFinite(C)||C<=0)return;const j=b-_;if(!isFinite(j)||j<0){v();return}if(l.current={value:b,tsMs:w},!p.current&&j>0){if(f.current+=1,!d.current){d.current={value:b,tsMs:w};return}if(f.current{const E=j/C*1e3;if(T===void 0)return E>0?E:T;const $=-Math.expm1(-C/o);return T*(1-$)+E*$})},[i,v,o]),y=m.useRef();return m.useEffect(()=>{if(y.current!==void 0&&(clearTimeout(y.current),y.current=void 0),x(e),n!==void 0){let b=function(){y.current=setTimeout(()=>{x(),b()},n)};b()}return()=>{y.current!==void 0&&(clearTimeout(y.current),y.current=void 0)}},[n,x,e]),{ema:a,reset:v}}function Bg(e,t=ooe){return Ug(e,t).ema??0}const H$=["turbine","gossip","tpu","repair","metrics"],aoe={Ingress:{turbine:64e6/8,gossip:1e9/8,tpu:1e8/8,repair:1e6/8,metrics:1e4/8,Total:118901e4/8},Egress:{turbine:1e9/8,gossip:1e9/8,tpu:1e6/8,repair:1e6/8,metrics:1e4/8,Total:205001e4/8}};function soe(e){return e?"Unhealthy":"Healthy"}function EBe(){const e=Hn("(max-width: 450px)"),t=Hn("(max-width: 390px)"),n=ABe(),r="Health Pane",i=Te(dl.healthPane,{[dl.narrow]:t});return e&&n.length>1?u.jsx(zg,{className:dl.popover,content:u.jsx(W,{direction:"column",gap:"8px",children:n.map(o=>u.jsx(loe,{...o},o.title))}),children:u.jsx("button",{"aria-label":r,className:Te(i,dl.vertical),children:n.map(o=>u.jsx(uoe,{...o,isStacked:!0},o.title))})}):u.jsx("div",{"aria-label":r,className:i,children:n.map(o=>u.jsx(uoe,{...o},o.title))})}function loe({title:e,description:t,isAlerting:n}){return u.jsxs(W,{direction:"column",gap:"4px",children:[u.jsxs(W,{gap:"5px",children:[u.jsx(Z,{className:dl.title,children:e}),u.jsx(Z,{className:Te(dl.status,{[dl.alerting]:n}),children:soe(n)})]}),u.jsx("div",{className:dl.content,children:u.jsx(Z,{children:t})})]})}function uoe({title:e,description:t,Icon:n,isAlerting:r,isStacked:i=!1}){const o=`${e}: ${soe(r)}`,a=Te(dl.healthBox,{[dl.alerting]:r});return i?u.jsx("div",{"aria-label":o,className:Te(a,dl.stacked)}):u.jsx(zg,{className:dl.popover,content:u.jsx(loe,{title:e,description:t,isAlerting:r}),children:u.jsx("button",{"aria-label":o,className:a,children:u.jsx(n,{width:"75%"})})})}function NBe(){const e=J(DT),t=J(PT),n=J(Gy),r=e==="delinquent";return m.useMemo(()=>({title:"Vote Health",Icon:mBe,isAlerting:r,description:r?t==null||n==null?"Missing vote slot or turbine slot data.":`We haven't landed a vote since slot ${t} (${t-n}).`:"Our consensus votes are being received by other nodes normally."}),[r,t,n])}function $Be(){const e=J(LG);return m.useMemo(()=>{if(!e)return null;const t=e.status==="sleeping"?"sleeping and disconnected from":e.status==="disconnected"?`${e.status} from`:`${e.status} to`;return{title:"Bundle Health",Icon:gBe,isAlerting:e.status!=="connected"&&e.status!=="sleeping",description:`Currently ${t} ${e.name} - ${e.url} (${e.ip})`}},[e])}const coe={forceUpdateIntervalMs:void 0},MBe=xi?coe:{forceUpdateIntervalMs:1e3,initMinSamples:2,halfLifeMs:1e3},RBe=.5,doe=xi?coe:{halfLifeMs:1e3};function LBe(){const e=J(Gy),t=e==null,{ema:n}=Ug(xi?null:e,MBe),r=t||n!=null&&nxi?null:{title:"Turbine Health",Icon:vBe,isAlerting:l,description:l?t?"Missing turbine slot data.":"We are receiving little to no block data from other nodes over Turbine.":"Block data is arriving normally over Turbine."},[l,t])}const PBe=H$.indexOf("turbine"),OBe=H$.indexOf("repair"),zBe=12;function DBe(){const e=J(Gy),t=J(dp);return m.useMemo(()=>{if(xi)return null;const n=e==null||t==null||e-t>zBe;return{title:"Replay Health",Icon:yBe,isAlerting:n,description:n?e==null||t==null?"Missing turbine slot or processed slot data.":`Replay is ${e-t} behind the rest of the cluster.`:"Replay is keeping up with the cluster."}},[e,t])}function ABe(){const e=NBe(),t=$Be(),n=LBe(),r=DBe();return[e,t,n,r].filter(i=>i!=null)}function foe({isStartup:e}){const t=Hn("(max-width: 1218px)"),n=Hn("(max-width: 401px)"),r=Hn(`(max-width: ${Hte})`),{isNarrowScreen:i,blurBackground:o,showNav:a,showOnlyEpochBar:s}=Fg(),l=!a&&n,c="3px";return u.jsxs("div",{className:"sticky",style:{top:0,backgroundColor:"var(--color-background)",zIndex:Vf},children:[u.jsx(rBe,{}),u.jsxs(Mt,{px:"2",className:"app-width-container",children:[u.jsxs(W,{height:`${Sb}px`,align:"center",children:[u.jsxs(W,{className:Te({[pBe.navBackground]:a&&!s}),height:"100%",align:"center",gapX:l?c:`${ck}px`,pr:l?c:`${Wf}px`,ml:`${-fN}px`,pl:`${fN}px`,children:[!e&&i&&!a&&u.jsx(V$,{isLarge:!0}),u.jsx(YUe,{}),u.jsx(nBe,{})]}),u.jsxs(W,{position:"relative",gapX:l?c:`${uN}px`,height:"100%",flexGrow:"1",align:"center",justify:"between",pl:l?c:`${uN-Wf}px`,minWidth:"0",flexShrink:"100",children:[!e&&u.jsxs(W,{flexShrink:r?"1":"0",minWidth:"100px",children:[u.jsx(ZUe,{}),t?u.jsx(HUe,{}):u.jsx(VUe,{})]}),u.jsxs(W,{gap:i?"1":"3",justify:"end",align:"center",minWidth:"50px",flexGrow:"1",children:[u.jsx(TUe,{}),u.jsx(EBe,{}),u.jsxs(W,{gap:"1",direction:i?"column":"row",children:[u.jsx(FBe,{}),e?u.jsx(BBe,{}):u.jsx(UBe,{})]})]}),o&&u.jsx(ioe,{})]})]}),!e&&!i&&u.jsx("div",{style:{position:"relative"},children:u.jsx("div",{style:{position:"absolute",top:0,left:0},children:u.jsx(V$,{isFloating:!a})})})]})]})}function FBe(){return u.jsx(zg,{content:u.jsx(Z,{size:"2",wrap:"wrap",children:u.jsx("a",{href:"https://db-ip.com",children:"IP Geolocation by DB-IP"})}),children:u.jsx(Zie,{color:"var(--gray-11)"})})}function UBe(){const e=J(ol),t=Ee(W3),n=Ee(tee);return e?u.jsx(nl,{ref:n,variant:"ghost",color:"gray",onClick:()=>t(!0),children:u.jsx(Gie,{})}):null}function BBe(){const e=J(ol),t=Ee(W3),n=J(tee),r=J(dre),i=m.useCallback(()=>{if(!n||!r)return;const{bottom:o,left:a,width:s,height:l}=n.getBoundingClientRect();r.style.setProperty("--transform-origin",`${Math.round(a+s/2)}px ${Math.round(o-l/2)}px`),t(!1)},[r,n,t]);return e?u.jsx(nl,{variant:"ghost",color:"gray",onClick:i,children:u.jsx(B$,{color:"white"})}):null}const WBe="_logo-container_1po46_1",VBe="_hidden_1po46_30",hoe={logoContainer:WBe,hidden:VBe};function HBe(){const e=J(Gu),[t,n]=m.useState(!0);return e&&t&&n(!1),u.jsx(W,{className:Te(hoe.logoContainer,{[hoe.hidden]:!t}),children:u.jsx("img",{src:ree,alt:"fd"})})}const ZBe="_secondary-color_2x9jp_1",qBe="_ellipsis_2x9jp_5",GBe="_card_2x9jp_11",YBe="_sparkline-card_2x9jp_19",KBe="_snapshot-tile-title_2x9jp_25",XBe="_snapshot-tile-busy_2x9jp_31",JBe="_sparkline-container_2x9jp_36",QBe="_bars-card_2x9jp_54",eWe="_card-header_2x9jp_62",tWe="_title_2x9jp_68",nWe="_accounts-rate_2x9jp_74",rWe="_total_2x9jp_79",iWe="_throughput_2x9jp_84",oWe="_with-prefix_2x9jp_87",aWe="_reading-card_2x9jp_95",sWe="_read-path-container_2x9jp_96",lWe="_read-path_2x9jp_96",uWe="_decompressing-card_2x9jp_124",cWe="_decompressing-card-left_2x9jp_127",dWe="_decompressing-card-right_2x9jp_137",fWe="_inserting-card_2x9jp_146",lr={secondaryColor:ZBe,ellipsis:qBe,card:GBe,sparklineCard:YBe,snapshotTileTitle:KBe,snapshotTileBusy:XBe,sparklineContainer:JBe,barsCard:QBe,cardHeader:eWe,title:tWe,accountsRate:nWe,total:rWe,throughput:iWe,withPrefix:oWe,readingCard:aWe,readPathContainer:sWe,readPath:lWe,decompressingCard:uWe,decompressingCardLeft:cWe,decompressingCardRight:dWe,insertingCard:fWe},hWe="_busy_1fw9w_1",pWe={busy:hWe};function Xk({busy:e,className:t}){const n=e!==void 0?Math.trunc(e*100):void 0;return u.jsx(W,{gap:"1",align:"end",children:u.jsxs(Z,{className:t??pWe.busy,style:{color:`color-mix(in srgb, ${yN}, ${bN} ${n}%)`},children:[n??"-","%"]})})}function mWe(e){const t=new Set;let n=null,r=performance.now();function i(){const s=()=>{const l=performance.now();if(l-r>=e){const c=l-r;r=l,t.forEach(d=>d(l,c))}n=requestAnimationFrame(s)};n=requestAnimationFrame(s)}function o(){n!=null&&cancelAnimationFrame(n),n=null}function a(s){return t.add(s),n==null&&i(),()=>{t.delete(s),t.size||o()}}return{subscribeClock:a}}const Jk=2;function poe({isLive:e,tileCount:t,liveIdlePerTile:n,queryIdlePerTile:r}){var c;const i=m.useMemo(()=>new Array(t).fill(0),[t]),o=n==null?void 0:n.map(d=>d===-1?void 0:1-d),a=r==null?void 0:r.map(d=>{const f=d.filter(p=>p!==-1);if(f.length)return 1-rt.mean(f)}).filter(d=>d!==void 0),s=i.map((d,f)=>{const p=r==null?void 0:r.map(v=>1-v[f]).filter(v=>v!==void 0&&v<=1);if(p!=null&&p.length)return rt.mean(p)}),l=(c=e?o:s)==null?void 0:c.filter(d=>d!==void 0&&d<=1);return{avgBusy:l!=null&&l.length?rt.mean(l):void 0,aggQueryBusyPerTs:a,tileCountArr:i,liveBusyPerTile:o,busy:l}}function Z$(e){const t=m.useRef();return e!==void 0&&(t.current=e),e??t.current}const moe=[0,1],gWe=150,goe=3,q$=new Map;function voe(e,t,n){var i;const r=performance.now();for(e.push({value:n,ts:r});(((i=e[1])==null?void 0:i.ts)??0)+t{if(!(t!=null&&t.length))return;if(!vWe(t))return t;const w=performance.now(),_=n/(t.length-1),S=w-n;return t.map((C,j)=>({value:C,ts:S+j*_}))},[n,t]),{pxPerTick:p,width:v,windowMs:x}=m.useMemo(()=>{let w=n,_=i;const S=_/(w/s);return d||(w+=s*goe,_+=S*goe),{pxPerTick:S,width:_,windowMs:w}},[i,n,d,s]),y=m.useRef([{value:void 0,ts:performance.now()-x},{value:void 0,ts:performance.now()}]),b=m.useRef(!1);return m.useEffect(()=>{if(b.current||!(f!=null&&f.length))return;b.current=!0;const w=performance.now(),_=f[f.length-1].ts;y.current=f.map(({ts:S,value:C})=>({value:C,ts:w-(_-S)}))},[f]),m.useEffect(()=>{a||d||voe(y.current,x,e)},[d,x,a,e]),Qu(()=>{var _;if(a||d)return;const w=(_=y.current[y.current.length-1])==null?void 0:_.ts;w!==void 0&&performance.now()-w{function w(_,S){var $,D;const C=_.length;if(C===0){c([]);return}const j=S-x,T=v/x,E=new Array(C);for(let M=0;M({value:T,ts:_-(S-j)}));w(C,_)}else{q$.has(s)||q$.set(s,mWe(s));const _=q$.get(s);if(_)return _.subscribeClock(S=>{w(y.current,S)})}},[r,f,d,s,v,x]),{scaledDataPoints:l,range:moe,pxPerTick:p,chartTickMs:s,isLive:!d}}const yWe="_range-label_14i5c_1",bWe="_top_14i5c_9",xWe="_bottom_14i5c_13",_We="_g-transform_14i5c_17",ux={rangeLabel:yWe,top:bWe,bottom:xWe,gTransform:_We},wWe=400*4,kWe=80;function cx({value:e,history:t,height:n=24,background:r,windowMs:i=wWe,strokeWidth:o=Jk,updateIntervalMs:a=kWe,tickMs:s}){const[l,{width:c}]=Ss(),{scaledDataPoints:d,range:f,pxPerTick:p,chartTickMs:v,isLive:x}=yoe({value:e,history:t,windowMs:i,height:n,width:c,updateIntervalMs:a,tickMs:s});return u.jsx(boe,{svgRef:l,scaledDataPoints:d,range:f,height:n,background:r,pxPerTick:p,tickMs:v,isLive:x,strokeWidth:o})}function boe({svgRef:e,scaledDataPoints:t,range:n=moe,showRange:r=!1,height:i,background:o=Tne,pxPerTick:a,tickMs:s,isLive:l,strokeWidth:c=Jk}){const d=m.useRef(null),f=m.useRef(null),p=m.useRef(null),v=m.useMemo(()=>{const y=n[1]-n[0],b=(i-c*2)/y,w=b*(n[1]-1);return[w+b,w]},[i,n,c]),x=m.useMemo(()=>t.map(({x:y,y:b})=>`${y},${b}`).join(" "),[t]);return m.useLayoutEffect(()=>{var b,w,_;const y=d.current;if(y)if(l){p.current||(p.current=y.animate([{transform:"translate3d(0px, 0, 0)"},{transform:"translate3d(0px, 0, 0)"}],{duration:s,easing:"linear",fill:"forwards"}),p.current.cancel()),p.current.finish(),(b=f.current)==null||b.setAttribute("points",x);const S=p.current.effect;S.setKeyframes([{transform:"translate3d(0px, 0, 0)"},{transform:`translate3d(${-a}px, 0, 0)`}]),S.updateTiming({duration:s,easing:"linear",fill:"forwards"}),p.current.currentTime=0,p.current.play()}else(w=f.current)==null||w.setAttribute("points",x),(_=p.current)==null||_.cancel()},[l,x,a,s]),u.jsxs(u.Fragment,{children:[u.jsxs("svg",{ref:e,xmlns:"http://www.w3.org/2000/svg",width:"100%",height:`${i}px`,fill:"none",style:{background:o},shapeRendering:"optimizeSpeed",children:[u.jsx("g",{ref:d,className:ux.gTransform,children:u.jsx("polyline",{ref:f,stroke:"url(#paint0_linear_2971_11300)",strokeWidth:c,strokeLinecap:"butt",vectorEffect:"non-scaling-stroke",pointerEvents:"none"})}),u.jsx("defs",{children:u.jsxs("linearGradient",{id:"paint0_linear_2971_11300",x1:"59.5",y1:v[0],x2:"59.5",y2:v[1],gradientUnits:"userSpaceOnUse",children:[u.jsx("stop",{stopColor:yN}),u.jsx("stop",{offset:"1",stopColor:bN})]})})]}),r&&u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:Te(ux.rangeLabel,ux.top),children:[Math.round(n[1]*100),"%"]}),u.jsxs("div",{className:Te(ux.rangeLabel,ux.bottom),children:[Math.round(n[0]*100),"%"]})]})]})}const Qk=15,xoe=Qk*6+1,_oe=Qk*15+1,SWe=6e3,CWe=50;function G$({title:e,tileType:t,isComplete:n}){const r=J(Nb),i=J(qze),{avgBusy:o}=poe({isLive:!0,tileCount:r[t],liveIdlePerTile:i==null?void 0:i[t]}),a=Z$(o),{scaledDataPoints:s,range:l,pxPerTick:c,chartTickMs:d,isLive:f}=yoe({value:a,windowMs:SWe,height:xoe,width:_oe,updateIntervalMs:CWe,stopShifting:n});return u.jsxs(Ey,{className:Te(lr.card,lr.sparklineCard),children:[u.jsxs(W,{justify:"between",align:"center",children:[u.jsx(Z,{className:lr.snapshotTileTitle,children:e}),u.jsx(Xk,{busy:a,className:lr.snapshotTileBusy})]}),u.jsx(W,{className:lr.sparklineContainer,style:{alignSelf:"center",width:`${_oe}px`,backgroundSize:`${Qk}px ${Qk}px`},children:u.jsx(boe,{scaledDataPoints:s,range:l,showRange:!0,height:xoe,background:"transparent",tickMs:d,pxPerTick:c,isLive:f})})]})}const jWe="_bars_1d34t_1",TWe={bars:jWe},IWe=2;function Y$({value:e,max:t,barWidth:n=IWe}){const r=!t||!e?0:rt.clamp(e/t,0,1);return u.jsx("div",{className:TWe.bars,style:{"--bar-width":`${n}px`,"--bar-gap":`${n*1.5}px`,"--pct":r}})}function woe(e,t,n){const r=performance.now(),i=[...e,[t,r]];for(;i.length>2&&i[0]&&i[0][1]<=r-n;)i.shift();return i}function koe(e,t=500){const[n,r]=m.useState([]);m.useEffect(()=>{e!=null&&r(o=>woe(o,e,t))},[e,t]),Qu(()=>{r(o=>{const a=performance.now(),s=o[o.length-1];return s&&s[1]{r([])},[]);return{valuePerSecond:m.useMemo(()=>{if(!(n.length<=1))return 1e3*(n[n.length-1][0]-n[0][0])/(n[n.length-1][1]-n[0][1])},[n]),reset:i}}const EWe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M2 20h20v-4H2v4zm2-3h2v2H4v-2zM2 4v4h20V4H2zm4 3H4V5h2v2zm-4 7h20v-4H2v4zm2-3h2v2H4v-2z"}));function K$({headerContent:e,footer:t,throughput:n,containerClassName:r,maxThroughput:i}){return u.jsxs(Ey,{className:Te(lr.card,lr.barsCard,r),children:[u.jsx(W,{justify:"between",align:"center",wrap:"wrap",gapX:"4",className:lr.cardHeader,children:e}),u.jsx(Y$,{value:n??0,max:i}),t]})}function e6({value:e,unit:t}){return u.jsxs(u.Fragment,{children:[u.jsx(Z,{children:e??"--"}),t&&u.jsxs(u.Fragment,{children:[" ",u.jsx(Z,{className:lr.secondaryColor,children:t})]})]})}function X$({text:e}){return u.jsx(Z,{className:Te(lr.title,lr.ellipsis),children:e})}function NWe({cumulativeAccounts:e}){const t=J(Gu),{valuePerSecond:n,reset:r}=koe(e,1e3);m.useEffect(()=>{r()},[t,r]);const i=m.useMemo(()=>{if(e!=null&&n==null)return"0";if(n!=null)return D$.format(n)},[n,e]);return u.jsx("div",{className:lr.accountsRate,children:u.jsx(e6,{value:i,unit:"Accounts / sec"})})}function J$({completed:e,total:t}){return u.jsxs("div",{className:lr.total,children:[u.jsx(e6,{value:e==null?void 0:e.value,unit:e==null?void 0:e.unit}),u.jsx(Z,{children:" / "}),u.jsx(e6,{value:t==null?void 0:t.value,unit:t==null?void 0:t.unit})]})}function t6({prefix:e,throughput:t}){return u.jsxs("div",{className:Te(lr.throughput,{[lr.withPrefix]:!!e}),children:[e&&u.jsxs(Z,{className:lr.secondaryColor,children:[e," "]}),u.jsx(e6,{value:t==null?void 0:t.value,unit:t==null?void 0:t.unit}),u.jsx(Z,{className:lr.secondaryColor,children:"/sec"})]})}function $We({readPath:e}){return u.jsxs(W,{align:"center",gap:"10px",wrap:"nowrap",className:lr.readPathContainer,children:[u.jsx(EWe,{}),u.jsx(Z,{className:Te(lr.readPath,lr.ellipsis),children:e})]})}function MWe({compressedCompleted:e,compressedTotal:t,readPath:n}){const r=J(Gu),{ema:i,reset:o}=Ug(e);m.useEffect(()=>{o()},[r,o]);const a=i==null?void 0:Da(i),s=e==null?void 0:Da(e),l=t==null?void 0:Da(t),c=m.useMemo(()=>u.jsx($We,{readPath:n}),[n]);return u.jsx(K$,{containerClassName:lr.readingCard,headerContent:u.jsxs(u.Fragment,{children:[u.jsx(X$,{text:"Reading"}),u.jsx(J$,{completed:s,total:l}),u.jsx(t6,{throughput:a})]}),footer:c,throughput:i,maxThroughput:8e8})}function RWe({compressedCompleted:e,decompressedCompleted:t,compressedTotal:n}){const r=J(Gu),{ema:i,reset:o}=Ug(e),{ema:a,reset:s}=Ug(t);m.useEffect(()=>{o(),s()},[r,o,s]);const l=i==null?void 0:Da(i),c=a==null?void 0:Da(a),d=e==null?void 0:Da(e),f=n==null?void 0:Da(n);return u.jsx(K$,{containerClassName:lr.decompressingCard,headerContent:u.jsxs(u.Fragment,{children:[u.jsxs(W,{flexGrow:"1",justify:"between",align:"center",className:lr.decompressingCardLeft,children:[u.jsx(X$,{text:"Decompressing"}),u.jsx(J$,{completed:d,total:f})]}),u.jsxs(W,{gapX:"30px",justify:"end",flexGrow:"1",className:lr.decompressingCardRight,children:[u.jsx(t6,{prefix:"Input",throughput:l}),u.jsx(t6,{prefix:"Output",throughput:c})]})]}),throughput:i,maxThroughput:8e8})}function LWe({decompressedThroughput:e,decompressedCompleted:t,decompressedTotal:n,cumulativeAccounts:r}){const i=e==null?void 0:Da(e),o=t==null?void 0:Da(t),a=n==null?void 0:Da(n);return u.jsx(K$,{containerClassName:lr.insertingCard,headerContent:u.jsxs(u.Fragment,{children:[u.jsx(X$,{text:"Inserting"}),u.jsx(NWe,{cumulativeAccounts:r}),u.jsx(J$,{completed:o,total:a}),u.jsx(t6,{throughput:i})]}),throughput:e,maxThroughput:35e8})}const PWe="_secondary-text_1iskf_1",OWe="_phase-header-container_1iskf_5",zWe="_phase-name_1iskf_11",DWe="_no-wrap_1iskf_15",AWe="_complete-pct-container_1iskf_19",ih={secondaryText:PWe,phaseHeaderContainer:OWe,phaseName:zWe,noWrap:DWe,completePctContainer:AWe},FWe="_progress-bar_drgbz_1",UWe="_current_drgbz_14",BWe="_progressing-bar_drgbz_21",WWe="_gossip_drgbz_33",VWe="_complete_drgbz_35",HWe="_full-snapshot_drgbz_46",ZWe="_incr-snapshot_drgbz_59",qWe="_catching-up_drgbz_72",GWe="_supermajority_drgbz_85",bd={progressBar:FWe,current:UWe,progressingBar:BWe,gossip:WWe,complete:VWe,fullSnapshot:HWe,incrSnapshot:ZWe,catchingUp:qWe,supermajority:GWe},YWe={[wn.joining_gossip]:bd.gossip,[wn.loading_full_snapshot]:bd.fullSnapshot,[wn.loading_incremental_snapshot]:bd.incrSnapshot,[wn.catching_up]:bd.catchingUp,[wn.waiting_for_supermajority]:bd.supermajority,[wn.running]:""};function KWe({phaseCompleteFraction:e}){const[t,n]=m.useState(0);m.useEffect(()=>{n(rt.clamp(e,0,1))},[e]);const r=J(Gu),i=J(B3),o=J(eee);return u.jsx(W,{className:bd.progressBar,children:i.map(({phase:a,completionFraction:s})=>{if(a===wn.running)return;const l=a===r,c=`${s*100}%`;return u.jsx("div",{className:Te(YWe[a],{[bd.current]:l,[bd.complete]:o.has(a)}),style:{width:c},children:l&&u.jsx("div",{className:bd.progressingBar,style:{transform:`scaleX(${t})`}})},a)})})}const XWe={[wn.joining_gossip]:"Joining Gossip",[wn.loading_full_snapshot]:"Loading Full Snapshot",[wn.loading_incremental_snapshot]:"Loading Incremental Snapshot",[wn.catching_up]:"Catching Up",[wn.waiting_for_supermajority]:"Waiting for Supermajority",[wn.running]:"Running"};function JWe(){const e=Uie(1e3);return u.jsx(Z,{children:e==null?"--":Mze(e)})}function Q$({phaseCompleteFraction:e,overallCompleteFraction:t,remainingSeconds:n,showLoadingIcon:r=!1}){const i=J(Gu),[o,a]=m.useState(),s=Ba(d=>{const f=d==null?void 0:Math.max(Math.round(d),0);a(f)},1e3);m.useEffect(()=>{s(n)},[s,n]);const l=m.useMemo(()=>{if(o!=null)return kp(fn.fromObject({seconds:o}).rescale(),{showOnlyTwoSignificantUnits:!0})},[o]),c=rt.clamp(Math.round(t*100),0,100);return i?u.jsxs(Mt,{flexShrink:"0",className:ih.phaseHeaderContainer,children:[u.jsxs(W,{justify:"between",mt:"7",mb:"2",gapX:"8px",wrap:"wrap",children:[u.jsxs("span",{className:ih.noWrap,children:[u.jsx(Z,{className:ih.secondaryText,children:"Elapsed "}),u.jsx(JWe,{})]}),u.jsxs("span",{children:[u.jsxs(Z,{className:ih.phaseName,children:[XWe[i],"... "]}),l&&u.jsxs("span",{className:ih.noWrap,children:[u.jsx(Z,{className:ih.secondaryText,children:"Remaining "}),u.jsxs(Z,{style:{display:"inline-block",minWidth:"120px"},children:["~",l]})]})]}),u.jsxs(Z,{className:ih.completePctContainer,children:[u.jsx(Z,{className:ih.secondaryText,children:"Complete "}),c,"%",r&&u.jsx(Iy,{size:"3",ml:"8px"})]})]}),u.jsx(KWe,{phaseCompleteFraction:e})]}):null}function Soe(e){const t=J(QQ),n=J(B3),r=J(eee);return m.useMemo(()=>t?rt.sum(n.map(i=>i===t?i.completionFraction*rt.clamp(e,0,1):r.has(i.phase)?i.completionFraction:0)):0,[r,e,t,n])}const QWe="5",Coe="26px";function eVe(e){const{loading_full_snapshot_total_bytes_compressed:t,loading_full_snapshot_read_bytes_compressed:n,loading_full_snapshot_decompress_bytes_compressed:r,loading_full_snapshot_decompress_bytes_decompressed:i,loading_full_snapshot_insert_bytes_decompressed:o,loading_full_snapshot_read_path:a,loading_full_snapshot_insert_accounts:s,loading_incremental_snapshot_total_bytes_compressed:l,loading_incremental_snapshot_read_bytes_compressed:c,loading_incremental_snapshot_decompress_bytes_compressed:d,loading_incremental_snapshot_decompress_bytes_decompressed:f,loading_incremental_snapshot_insert_bytes_decompressed:p,loading_incremental_snapshot_read_path:v,loading_incremental_snapshot_insert_accounts:x}=e,y=e.phase===wn.loading_full_snapshot||!l?{totalCompressedBytes:t,readCompressedBytes:n,readPath:a,decompressCompressedBytes:r,decompressDecompressedBytes:i,insertDecompressedBytes:o,insertAccounts:s}:{totalCompressedBytes:l,readCompressedBytes:c,readPath:v,decompressCompressedBytes:d,decompressDecompressedBytes:f,insertDecompressedBytes:p,insertAccounts:x},b=y.insertDecompressedBytes&&y.decompressCompressedBytes&&y.decompressDecompressedBytes?y.insertDecompressedBytes*(y.decompressCompressedBytes/y.decompressDecompressedBytes):0,w=y.totalCompressedBytes&&y.decompressCompressedBytes&&y.decompressDecompressedBytes?y.totalCompressedBytes*y.decompressDecompressedBytes/y.decompressCompressedBytes:0;return{...y,insertCompressedBytes:b,totalDecompressedBytes:w}}function tVe(){const e=J(Hl),t=(e==null?void 0:e.phase)===wn.loading_incremental_snapshot,n=Hn("(max-width: 560px)"),r=n?"wrap":"nowrap",i=n?Coe:QWe,o=e?eVe(e):void 0,{ema:a,reset:s}=Ug(o==null?void 0:o.insertDecompressedBytes);m.useEffect(()=>{s()},[e==null?void 0:e.phase,s]);const{totalCompressedBytes:l,readCompressedBytes:c,readPath:d,decompressCompressedBytes:f,decompressDecompressedBytes:p,insertDecompressedBytes:v,insertAccounts:x,insertCompressedBytes:y,totalDecompressedBytes:b}=o??{},w=a==null||b==null||v==null?void 0:Math.round((b-v)/a),_=Math.min(l&&y?y/l:0,1),S=Soe(_);if(!(!e||!o))return u.jsxs(u.Fragment,{children:[u.jsx(Q$,{phaseCompleteFraction:_,overallCompleteFraction:S,remainingSeconds:w}),u.jsxs(W,{mt:"52px",direction:"column",gap:Coe,className:yd.startupContentIndentation,children:[u.jsxs(W,{className:lr.rowContainer,gap:i,wrap:r,children:[u.jsx(MWe,{compressedCompleted:c,compressedTotal:l,readPath:d}),u.jsx(G$,{title:"CPU Utilization",tileType:"snapld",isComplete:t&&!!c&&c===l})]}),u.jsxs(W,{className:lr.rowContainer,gap:i,wrap:r,children:[u.jsx(RWe,{compressedCompleted:f,decompressedCompleted:p,compressedTotal:l}),u.jsx(G$,{title:"CPU Utilization",tileType:"snapdc",isComplete:t&&!!f&&f===l})]}),u.jsxs(W,{className:lr.rowContainer,gap:i,wrap:r,children:[u.jsx(LWe,{decompressedThroughput:a,decompressedCompleted:v,decompressedTotal:b,cumulativeAccounts:x}),u.jsx(G$,{title:"CPU Utilization",tileType:"snapin",isComplete:t&&!!y&&y===l})]})]})]})}const nVe=!0,Hi="u-",rVe="uplot",iVe=Hi+"hz",oVe=Hi+"vt",aVe=Hi+"title",sVe=Hi+"wrap",lVe=Hi+"under",uVe=Hi+"over",cVe=Hi+"axis",Ep=Hi+"off",dVe=Hi+"select",fVe=Hi+"cursor-x",hVe=Hi+"cursor-y",pVe=Hi+"cursor-pt",mVe=Hi+"legend",gVe=Hi+"live",vVe=Hi+"inline",yVe=Hi+"series",bVe=Hi+"marker",joe=Hi+"label",xVe=Hi+"value",dx="width",fx="height",hx="top",Toe="bottom",Wg="left",eM="right",tM="#000",Ioe=tM+"0",nM="mousemove",Eoe="mousedown",rM="mouseup",Noe="mouseenter",$oe="mouseleave",Moe="dblclick",_Ve="resize",wVe="scroll",Roe="change",n6="dppxchange",iM="--",Vg=typeof window<"u",oM=Vg?document:null,Hg=Vg?window:null,kVe=Vg?navigator:null;let Fn,r6;function aM(){let e=devicePixelRatio;Fn!=e&&(Fn=e,r6&&uM(Roe,r6,aM),r6=matchMedia(`(min-resolution: ${Fn-.001}dppx) and (max-resolution: ${Fn+.001}dppx)`),Np(Roe,r6,aM),Hg.dispatchEvent(new CustomEvent(n6)))}function Cs(e,t){if(t!=null){let n=e.classList;!n.contains(t)&&n.add(t)}}function sM(e,t){let n=e.classList;n.contains(t)&&n.remove(t)}function Dr(e,t,n){e.style[t]=n+"px"}function ou(e,t,n,r){let i=oM.createElement(e);return t!=null&&Cs(i,t),n==null||n.insertBefore(i,r),i}function fl(e,t){return ou("div",e,t)}const Loe=new WeakMap;function ec(e,t,n,r,i){let o="translate("+t+"px,"+n+"px)",a=Loe.get(e);o!=a&&(e.style.transform=o,Loe.set(e,o),t<0||n<0||t>r||n>i?Cs(e,Ep):sM(e,Ep))}const Poe=new WeakMap;function Ooe(e,t,n){let r=t+n,i=Poe.get(e);r!=i&&(Poe.set(e,r),e.style.background=t,e.style.borderColor=n)}const zoe=new WeakMap;function Doe(e,t,n,r){let i=t+""+n,o=zoe.get(e);i!=o&&(zoe.set(e,i),e.style.height=n+"px",e.style.width=t+"px",e.style.marginLeft=r?-t/2+"px":0,e.style.marginTop=r?-n/2+"px":0)}const lM={passive:!0},SVe={...lM,capture:!0};function Np(e,t,n,r){t.addEventListener(e,n,r?SVe:lM)}function uM(e,t,n,r){t.removeEventListener(e,n,lM)}Vg&&aM();function au(e,t,n,r){let i;n=n||0,r=r||t.length-1;let o=r<=2147483647;for(;r-n>1;)i=o?n+r>>1:Ts((n+r)/2),t[i]{let i=-1,o=-1;for(let a=n;a<=r;a++)if(e(t[a])){i=a;break}for(let a=r;a>=n;a--)if(e(t[a])){o=a;break}return[i,o]}}const Foe=e=>e!=null,Uoe=e=>e!=null&&e>0,i6=Aoe(Foe),CVe=Aoe(Uoe);function jVe(e,t,n,r=0,i=!1){let o=i?CVe:i6,a=i?Uoe:Foe;[t,n]=o(e,t,n);let s=e[t],l=e[t];if(t>-1)if(r==1)s=e[t],l=e[n];else if(r==-1)s=e[n],l=e[t];else for(let c=t;c<=n;c++){let d=e[c];a(d)&&(dl&&(l=d))}return[s??br,l??-br]}function o6(e,t,n,r){let i=Voe(e),o=Voe(t);e==t&&(i==-1?(e*=n,t/=n):(e/=n,t*=n));let a=n==10?xd:Hoe,s=i==1?Ts:hl,l=o==1?hl:Ts,c=s(a(Zi(e))),d=l(a(Zi(t))),f=Zg(n,c),p=Zg(n,d);return n==10&&(c<0&&(f=xr(f,-c)),d<0&&(p=xr(p,-d))),r||n==2?(e=f*i,t=p*o):(e=Joe(e,f),t=l6(t,p)),[e,t]}function cM(e,t,n,r){let i=o6(e,t,n,r);return e==0&&(i[0]=0),t==0&&(i[1]=0),i}const dM=.1,Boe={mode:3,pad:dM},px={pad:0,soft:null,mode:0},TVe={min:px,max:px};function a6(e,t,n,r){return u6(n)?Woe(e,t,n):(px.pad=n,px.soft=r?0:null,px.mode=r?3:0,Woe(e,t,TVe))}function Rn(e,t){return e??t}function IVe(e,t,n){for(t=Rn(t,0),n=Rn(n,e.length-1);t<=n;){if(e[t]!=null)return!0;t++}return!1}function Woe(e,t,n){let r=n.min,i=n.max,o=Rn(r.pad,0),a=Rn(i.pad,0),s=Rn(r.hard,-br),l=Rn(i.hard,br),c=Rn(r.soft,br),d=Rn(i.soft,-br),f=Rn(r.mode,0),p=Rn(i.mode,0),v=t-e,x=xd(v),y=pa(Zi(e),Zi(t)),b=xd(y),w=Zi(b-x);(v<1e-24||w>10)&&(v=0,(e==0||t==0)&&(v=1e-24,f==2&&c!=br&&(o=0),p==2&&d!=-br&&(a=0)));let _=v||y||1e3,S=xd(_),C=Zg(10,Ts(S)),j=_*(v==0?e==0?.1:1:o),T=xr(Joe(e-j,C/10),24),E=e>=c&&(f==1||f==3&&T<=c||f==2&&T>=c)?c:br,$=pa(s,T=E?E:su(E,T)),D=_*(v==0?t==0?.1:1:a),M=xr(l6(t+D,C/10),24),O=t<=d&&(p==1||p==3&&M>=d||p==2&&M<=d)?d:-br,te=su(l,M>O&&t<=O?O:pa(O,M));return $==te&&$==0&&(te=100),[$,te]}const EVe=new Intl.NumberFormat(Vg?kVe.language:"en-US"),fM=e=>EVe.format(e),js=Math,s6=js.PI,Zi=js.abs,Ts=js.floor,qi=js.round,hl=js.ceil,su=js.min,pa=js.max,Zg=js.pow,Voe=js.sign,xd=js.log10,Hoe=js.log2,NVe=(e,t=1)=>js.sinh(e)*t,hM=(e,t=1)=>js.asinh(e/t),br=1/0;function Zoe(e){return(xd((e^e>>31)-(e>>31))|0)+1}function pM(e,t,n){return su(pa(e,t),n)}function qoe(e){return typeof e=="function"}function bn(e){return qoe(e)?e:()=>e}const $Ve=()=>{},Goe=e=>e,Yoe=(e,t)=>t,MVe=e=>null,Koe=e=>!0,Xoe=(e,t)=>e==t,RVe=/\.\d*?(?=9{6,}|0{6,})/gm,$p=e=>{if(eae(e)||oh.has(e))return e;const t=`${e}`,n=t.match(RVe);if(n==null)return e;let r=n[0].length-1;if(t.indexOf("e-")!=-1){let[i,o]=t.split("e");return+`${$p(i)}e${o}`}return xr(e,r)};function Mp(e,t){return $p(xr($p(e/t))*t)}function l6(e,t){return $p(hl($p(e/t))*t)}function Joe(e,t){return $p(Ts($p(e/t))*t)}function xr(e,t=0){if(eae(e))return e;let n=10**t,r=e*n*(1+Number.EPSILON);return qi(r)/n}const oh=new Map;function Qoe(e){return((""+e).split(".")[1]||"").length}function mx(e,t,n,r){let i=[],o=r.map(Qoe);for(let a=t;a=0?0:s)+(a>=o[c]?0:o[c]),p=e==10?d:xr(d,f);i.push(p),oh.set(p,f)}}return i}const gx={},mM=[],qg=[null,null],ah=Array.isArray,eae=Number.isInteger,LVe=e=>e===void 0;function tae(e){return typeof e=="string"}function u6(e){let t=!1;if(e!=null){let n=e.constructor;t=n==null||n==Object}return t}function PVe(e){return e!=null&&typeof e=="object"}const OVe=Object.getPrototypeOf(Uint8Array),nae="__proto__";function Gg(e,t=u6){let n;if(ah(e)){let r=e.find(i=>i!=null);if(ah(r)||t(r)){n=Array(e.length);for(let i=0;io){for(i=a-1;i>=0&&e[i]==null;)e[i--]=null;for(i=a+1;ia-s)],i=r[0].length,o=new Map;for(let a=0;a"u"?e=>Promise.resolve().then(e):queueMicrotask;function WVe(e){let t=e[0],n=t.length,r=Array(n);for(let o=0;ot[o]-t[a]);let i=[];for(let o=0;o=r&&e[i]==null;)i--;if(i<=r)return!0;const o=pa(1,Ts((i-r+1)/t));for(let a=e[r],s=r+o;s<=i;s+=o){const l=e[s];if(l!=null){if(l<=a)return!1;a=l}}return!0}const rae=["January","February","March","April","May","June","July","August","September","October","November","December"],iae=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function oae(e){return e.slice(0,3)}const ZVe=iae.map(oae),qVe=rae.map(oae),GVe={MMMM:rae,MMM:qVe,WWWW:iae,WWW:ZVe};function vx(e){return(e<10?"0":"")+e}function YVe(e){return(e<10?"00":e<100?"0":"")+e}const KVe={YYYY:e=>e.getFullYear(),YY:e=>(e.getFullYear()+"").slice(2),MMMM:(e,t)=>t.MMMM[e.getMonth()],MMM:(e,t)=>t.MMM[e.getMonth()],MM:e=>vx(e.getMonth()+1),M:e=>e.getMonth()+1,DD:e=>vx(e.getDate()),D:e=>e.getDate(),WWWW:(e,t)=>t.WWWW[e.getDay()],WWW:(e,t)=>t.WWW[e.getDay()],HH:e=>vx(e.getHours()),H:e=>e.getHours(),h:e=>{let t=e.getHours();return t==0?12:t>12?t-12:t},AA:e=>e.getHours()>=12?"PM":"AM",aa:e=>e.getHours()>=12?"pm":"am",a:e=>e.getHours()>=12?"p":"a",mm:e=>vx(e.getMinutes()),m:e=>e.getMinutes(),ss:e=>vx(e.getSeconds()),s:e=>e.getSeconds(),fff:e=>YVe(e.getMilliseconds())};function gM(e,t){t=t||GVe;let n=[],r=/\{([a-z]+)\}|[^{]+/gi,i;for(;i=r.exec(e);)n.push(i[0][0]=="{"?KVe[i[1]]:i[0]);return o=>{let a="";for(let s=0;se%1==0,c6=[1,2,2.5,5],QVe=mx(10,-32,0,c6),sae=mx(10,0,32,c6),eHe=sae.filter(aae),Rp=QVe.concat(sae),vM=` +`,lae="{YYYY}",uae=vM+lae,cae="{M}/{D}",yx=vM+cae,d6=yx+"/{YY}",dae="{aa}",tHe="{h}:{mm}",Yg=tHe+dae,fae=vM+Yg,hae=":{ss}",Zn=null;function pae(e){let t=e*1e3,n=t*60,r=n*60,i=r*24,o=i*30,a=i*365,s=(e==1?mx(10,0,3,c6).filter(aae):mx(10,-3,0,c6)).concat([t,t*5,t*10,t*15,t*30,n,n*5,n*10,n*15,n*30,r,r*2,r*3,r*4,r*6,r*8,r*12,i,i*2,i*3,i*4,i*5,i*6,i*7,i*8,i*9,i*10,i*15,o,o*2,o*3,o*4,o*6,a,a*2,a*5,a*10,a*25,a*50,a*100]);const l=[[a,lae,Zn,Zn,Zn,Zn,Zn,Zn,1],[i*28,"{MMM}",uae,Zn,Zn,Zn,Zn,Zn,1],[i,cae,uae,Zn,Zn,Zn,Zn,Zn,1],[r,"{h}"+dae,d6,Zn,yx,Zn,Zn,Zn,1],[n,Yg,d6,Zn,yx,Zn,Zn,Zn,1],[t,hae,d6+" "+Yg,Zn,yx+" "+Yg,Zn,fae,Zn,1],[e,hae+".{fff}",d6+" "+Yg,Zn,yx+" "+Yg,Zn,fae,Zn,1]];function c(d){return(f,p,v,x,y,b)=>{let w=[],_=y>=a,S=y>=o&&y=i?i:y,D=Ts(v)-Ts(j),M=E+D+l6(j-E,$);w.push(M);let O=d(M),te=O.getHours()+O.getMinutes()/n+O.getSeconds()/r,q=y/r,P=f.axes[p]._space,X=b/P;for(;M=xr(M+y,e==1?0:3),!(M>x);)if(q>1){let A=Ts(xr(te+q,6))%24,Y=d(M).getHours()-A;Y>1&&(Y=-1),M-=Y*r,te=(te+q)%24;let F=w[w.length-1];xr((M-F)/y,3)*X>=.7&&w.push(M)}else w.push(M)}return w}}return[s,l,c]}const[nHe,rHe,iHe]=pae(1),[oHe,aHe,sHe]=pae(.001);mx(2,-53,53,[1]);function mae(e,t){return e.map(n=>n.map((r,i)=>i==0||i==8||r==null?r:t(i==1||n[8]==0?r:n[1]+r)))}function gae(e,t){return(n,r,i,o,a)=>{let s=t.find(x=>a>=x[0])||t[t.length-1],l,c,d,f,p,v;return r.map(x=>{let y=e(x),b=y.getFullYear(),w=y.getMonth(),_=y.getDate(),S=y.getHours(),C=y.getMinutes(),j=y.getSeconds(),T=b!=l&&s[2]||w!=c&&s[3]||_!=d&&s[4]||S!=f&&s[5]||C!=p&&s[6]||j!=v&&s[7]||s[1];return l=b,c=w,d=_,f=S,p=C,v=j,T(y)})}}function lHe(e,t){let n=gM(t);return(r,i,o,a,s)=>i.map(l=>n(e(l)))}function yM(e,t,n){return new Date(e,t,n)}function vae(e,t){return t(e)}const uHe="{YYYY}-{MM}-{DD} {h}:{mm}{aa}";function yae(e,t){return(n,r,i,o)=>o==null?iM:t(e(r))}function cHe(e,t){let n=e.series[t];return n.width?n.stroke(e,t):n.points.width?n.points.stroke(e,t):null}function dHe(e,t){return e.series[t].fill(e,t)}const fHe={show:!0,live:!0,isolate:!1,mount:$Ve,markers:{show:!0,width:2,stroke:cHe,fill:dHe,dash:"solid"},idx:null,idxs:null,values:[]};function hHe(e,t){let n=e.cursor.points,r=fl(),i=n.size(e,t);Dr(r,dx,i),Dr(r,fx,i);let o=i/-2;Dr(r,"marginLeft",o),Dr(r,"marginTop",o);let a=n.width(e,t,i);return a&&Dr(r,"borderWidth",a),r}function pHe(e,t){let n=e.series[t].points;return n._fill||n._stroke}function mHe(e,t){let n=e.series[t].points;return n._stroke||n._fill}function gHe(e,t){return e.series[t].points.size}const bM=[0,0];function vHe(e,t,n){return bM[0]=t,bM[1]=n,bM}function f6(e,t,n,r=!0){return i=>{i.button==0&&(!r||i.target==t)&&n(i)}}function xM(e,t,n,r=!0){return i=>{(!r||i.target==t)&&n(i)}}const yHe={show:!0,x:!0,y:!0,lock:!1,move:vHe,points:{one:!1,show:hHe,size:gHe,width:0,stroke:mHe,fill:pHe},bind:{mousedown:f6,mouseup:f6,click:f6,dblclick:f6,mousemove:xM,mouseleave:xM,mouseenter:xM},drag:{setScale:!0,x:!0,y:!1,dist:0,uni:null,click:(e,t)=>{t.stopPropagation(),t.stopImmediatePropagation()},_x:!1,_y:!1},focus:{dist:(e,t,n,r,i)=>r-i,prox:-1,bias:0},hover:{skip:[void 0],prox:null,bias:0},left:-10,top:-10,idx:null,dataIdx:null,idxs:null,event:null},bae={show:!0,stroke:"rgba(0,0,0,0.07)",width:2},_M=Li({},bae,{filter:Yoe}),xae=Li({},_M,{size:10}),_ae=Li({},bae,{show:!1}),wM='12px system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',wae="bold "+wM,kae=1.5,Sae={show:!0,scale:"x",stroke:tM,space:50,gap:5,alignTo:1,size:50,labelGap:0,labelSize:30,labelFont:wae,side:2,grid:_M,ticks:xae,border:_ae,font:wM,lineGap:kae,rotate:0},bHe="Value",xHe="Time",Cae={show:!0,scale:"x",auto:!1,sorted:1,min:br,max:-br,idxs:[]};function _He(e,t,n,r,i){return t.map(o=>o==null?"":fM(o))}function wHe(e,t,n,r,i,o,a){let s=[],l=oh.get(i)||0;n=a?n:xr(l6(n,i),l);for(let c=n;c<=r;c=xr(c+i,l))s.push(Object.is(c,-0)?0:c);return s}function kM(e,t,n,r,i,o,a){const s=[],l=e.scales[e.axes[t].scale].log,c=l==10?xd:Hoe,d=Ts(c(n));i=Zg(l,d),l==10&&(i=Rp[au(i,Rp)]);let f=n,p=i*l;l==10&&(p=Rp[au(p,Rp)]);do s.push(f),f=f+i,l==10&&!oh.has(f)&&(f=xr(f,oh.get(i))),f>=p&&(i=f,p=i*l,l==10&&(p=Rp[au(p,Rp)]));while(f<=r);return s}function kHe(e,t,n,r,i,o,a){let s=e.scales[e.axes[t].scale].asinh,l=r>s?kM(e,t,pa(s,n),r,i):[s],c=r>=0&&n<=0?[0]:[];return(n<-s?kM(e,t,pa(s,-r),-n,i):[s]).reverse().map(d=>-d).concat(c,l)}const jae=/./,SHe=/[12357]/,CHe=/[125]/,Tae=/1/,SM=(e,t,n,r)=>e.map((i,o)=>t==4&&i==0||o%r==0&&n.test(i.toExponential()[i<0?1:0])?i:null);function jHe(e,t,n,r,i){let o=e.axes[n],a=o.scale,s=e.scales[a],l=e.valToPos,c=o._space,d=l(10,a),f=l(9,a)-d>=c?jae:l(7,a)-d>=c?SHe:l(5,a)-d>=c?CHe:Tae;if(f==Tae){let p=Zi(l(1,a)-d);if(pi,$ae={show:!0,auto:!0,sorted:0,gaps:Nae,alpha:1,facets:[Li({},Eae,{scale:"x"}),Li({},Eae,{scale:"y"})]},Mae={scale:"y",auto:!0,sorted:0,show:!0,spanGaps:!1,gaps:Nae,alpha:1,points:{show:NHe,filter:null},values:null,min:br,max:-br,idxs:[],path:null,clip:null};function $He(e,t,n,r,i){return n/10}const Rae={time:nVe,auto:!0,distr:1,log:10,asinh:1,min:null,max:null,dir:1,ori:0},MHe=Li({},Rae,{time:!1,ori:1}),Lae={};function Pae(e,t){let n=Lae[e];return n||(n={key:e,plots:[],sub(r){n.plots.push(r)},unsub(r){n.plots=n.plots.filter(i=>i!=r)},pub(r,i,o,a,s,l,c){for(let d=0;d{let w=a.pxRound;const _=c.dir*(c.ori==0?1:-1),S=c.ori==0?Xg:Jg;let C,j;_==1?(C=n,j=r):(C=r,j=n);let T=w(f(s[C],c,y,v)),E=w(p(l[C],d,b,x)),$=w(f(s[j],c,y,v)),D=w(p(o==1?d.max:d.min,d,b,x)),M=new Path2D(i);return S(M,$,D),S(M,T,D),S(M,T,E),M})}function h6(e,t,n,r,i,o){let a=null;if(e.length>0){a=new Path2D;const s=t==0?g6:IM;let l=n;for(let f=0;fp[0]){let v=p[0]-l;v>0&&s(a,l,r,v,r+o),l=p[1]}}let c=n+i-l,d=10;c>0&&s(a,l,r-d/2,c,r+o+d)}return a}function LHe(e,t,n){let r=e[e.length-1];r&&r[0]==t?r[1]=n:e.push([t,n])}function TM(e,t,n,r,i,o,a){let s=[],l=e.length;for(let c=i==1?n:r;c>=n&&c<=r;c+=i)if(t[c]===null){let d=c,f=c;if(i==1)for(;++c<=r&&t[c]===null;)f=c;else for(;--c>=n&&t[c]===null;)f=c;let p=o(e[d]),v=f==d?p:o(e[f]),x=d-i;p=a<=0&&x>=0&&x=0&&y>=0&&y=p&&s.push([p,v])}return s}function Oae(e){return e==0?Goe:e==1?qi:t=>Mp(t,e)}function zae(e){let t=e==0?p6:m6,n=e==0?(i,o,a,s,l,c)=>{i.arcTo(o,a,s,l,c)}:(i,o,a,s,l,c)=>{i.arcTo(a,o,l,s,c)},r=e==0?(i,o,a,s,l)=>{i.rect(o,a,s,l)}:(i,o,a,s,l)=>{i.rect(a,o,l,s)};return(i,o,a,s,l,c=0,d=0)=>{c==0&&d==0?r(i,o,a,s,l):(c=su(c,s/2,l/2),d=su(d,s/2,l/2),t(i,o+c,a),n(i,o+s,a,o+s,a+l,c),n(i,o+s,a+l,o,a+l,d),n(i,o,a+l,o,a,d),n(i,o,a,o+s,a,c),i.closePath())}}const p6=(e,t,n)=>{e.moveTo(t,n)},m6=(e,t,n)=>{e.moveTo(n,t)},Xg=(e,t,n)=>{e.lineTo(t,n)},Jg=(e,t,n)=>{e.lineTo(n,t)},g6=zae(0),IM=zae(1),Dae=(e,t,n,r,i,o)=>{e.arc(t,n,r,i,o)},Aae=(e,t,n,r,i,o)=>{e.arc(n,t,r,i,o)},Fae=(e,t,n,r,i,o,a)=>{e.bezierCurveTo(t,n,r,i,o,a)},Uae=(e,t,n,r,i,o,a)=>{e.bezierCurveTo(n,t,i,r,a,o)};function Bae(e){return(t,n,r,i,o)=>Lp(t,n,(a,s,l,c,d,f,p,v,x,y,b)=>{let{pxRound:w,points:_}=a,S,C;c.ori==0?(S=p6,C=Dae):(S=m6,C=Aae);const j=xr(_.width*Fn,3);let T=(_.size-_.width)/2*Fn,E=xr(T*2,3),$=new Path2D,D=new Path2D,{left:M,top:O,width:te,height:q}=t.bbox;g6(D,M-E,O-E,te+E*2,q+E*2);const P=X=>{if(l[X]!=null){let A=w(f(s[X],c,y,v)),Y=w(p(l[X],d,b,x));S($,A+T,Y),C($,A,Y,T,0,s6*2)}};if(o)o.forEach(P);else for(let X=r;X<=i;X++)P(X);return{stroke:j>0?$:null,fill:$,clip:D,flags:Kg|CM}})}function Wae(e){return(t,n,r,i,o,a)=>{r!=i&&(o!=r&&a!=r&&e(t,n,r),o!=i&&a!=i&&e(t,n,i),e(t,n,a))}}const PHe=Wae(Xg),OHe=Wae(Jg);function Vae(e){const t=Rn(e==null?void 0:e.alignGaps,0);return(n,r,i,o)=>Lp(n,r,(a,s,l,c,d,f,p,v,x,y,b)=>{[i,o]=i6(l,i,o);let w=a.pxRound,_=te=>w(f(te,c,y,v)),S=te=>w(p(te,d,b,x)),C,j;c.ori==0?(C=Xg,j=PHe):(C=Jg,j=OHe);const T=c.dir*(c.ori==0?1:-1),E={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:Kg},$=E.stroke;let D=!1;if(o-i>=y*4){let te=B=>n.posToVal(B,c.key,!0),q=null,P=null,X,A,Y,F=_(s[T==1?i:o]),H=_(s[i]),ee=_(s[o]),ce=te(T==1?H+1:ee-1);for(let B=T==1?i:o;B>=i&&B<=o;B+=T){let ae=s[B],je=(T==1?aece)?F:_(ae),me=l[B];je==F?me!=null?(A=me,q==null?(C($,je,S(A)),X=q=P=A):AP&&(P=A)):me===null&&(D=!0):(q!=null&&j($,F,S(q),S(P),S(X),S(A)),me!=null?(A=me,C($,je,S(A)),q=P=X=A):(q=P=null,me===null&&(D=!0)),F=je,ce=te(F+T))}q!=null&&q!=P&&Y!=F&&j($,F,S(q),S(P),S(X),S(A))}else for(let te=T==1?i:o;te>=i&&te<=o;te+=T){let q=l[te];q===null?D=!0:q!=null&&C($,_(s[te]),S(q))}let[M,O]=jM(n,r);if(a.fill!=null||M!=0){let te=E.fill=new Path2D($),q=a.fillTo(n,r,a.min,a.max,M),P=S(q),X=_(s[i]),A=_(s[o]);T==-1&&([A,X]=[X,A]),C(te,A,P),C(te,X,P)}if(!a.spanGaps){let te=[];D&&te.push(...TM(s,l,i,o,T,_,t)),E.gaps=te=a.gaps(n,r,i,o,te),E.clip=h6(te,c.ori,v,x,y,b)}return O!=0&&(E.band=O==2?[_d(n,r,i,o,$,-1),_d(n,r,i,o,$,1)]:_d(n,r,i,o,$,O)),E})}function zHe(e){const t=Rn(e.align,1),n=Rn(e.ascDesc,!1),r=Rn(e.alignGaps,0),i=Rn(e.extend,!1);return(o,a,s,l)=>Lp(o,a,(c,d,f,p,v,x,y,b,w,_,S)=>{[s,l]=i6(f,s,l);let C=c.pxRound,{left:j,width:T}=o.bbox,E=ee=>C(x(ee,p,_,b)),$=ee=>C(y(ee,v,S,w)),D=p.ori==0?Xg:Jg;const M={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:Kg},O=M.stroke,te=p.dir*(p.ori==0?1:-1);let q=$(f[te==1?s:l]),P=E(d[te==1?s:l]),X=P,A=P;i&&t==-1&&(A=j,D(O,A,q)),D(O,P,q);for(let ee=te==1?s:l;ee>=s&&ee<=l;ee+=te){let ce=f[ee];if(ce==null)continue;let B=E(d[ee]),ae=$(ce);t==1?D(O,B,q):D(O,X,ae),D(O,B,ae),q=ae,X=B}let Y=X;i&&t==1&&(Y=j+T,D(O,Y,q));let[F,H]=jM(o,a);if(c.fill!=null||F!=0){let ee=M.fill=new Path2D(O),ce=c.fillTo(o,a,c.min,c.max,F),B=$(ce);D(ee,Y,B),D(ee,A,B)}if(!c.spanGaps){let ee=[];ee.push(...TM(d,f,s,l,te,E,r));let ce=c.width*Fn/2,B=n||t==1?ce:-ce,ae=n||t==-1?-ce:ce;ee.forEach(je=>{je[0]+=B,je[1]+=ae}),M.gaps=ee=c.gaps(o,a,s,l,ee),M.clip=h6(ee,p.ori,b,w,_,S)}return H!=0&&(M.band=H==2?[_d(o,a,s,l,O,-1),_d(o,a,s,l,O,1)]:_d(o,a,s,l,O,H)),M})}function Hae(e,t,n,r,i,o,a=br){if(e.length>1){let s=null;for(let l=0,c=1/0;l{}),{fill:f,stroke:p}=c;return(v,x,y,b)=>Lp(v,x,(w,_,S,C,j,T,E,$,D,M,O)=>{let te=w.pxRound,q=n,P=r*Fn,X=s*Fn,A=l*Fn,Y,F;C.ori==0?[Y,F]=o(v,x):[F,Y]=o(v,x);const H=C.dir*(C.ori==0?1:-1);let ee=C.ori==0?g6:IM,ce=C.ori==0?d:(De,Dt,pn,Yn,hr,Kn,kr)=>{d(De,Dt,pn,hr,Yn,kr,Kn)},B=Rn(v.bands,mM).find(De=>De.series[0]==x),ae=B!=null?B.dir:0,je=w.fillTo(v,x,w.min,w.max,ae),me=te(E(je,j,O,D)),ke,he,ue,re=M,ge=te(w.width*Fn),$e=!1,pe=null,ye=null,Se=null,Ce=null;f!=null&&(ge==0||p!=null)&&($e=!0,pe=f.values(v,x,y,b),ye=new Map,new Set(pe).forEach(De=>{De!=null&&ye.set(De,new Path2D)}),ge>0&&(Se=p.values(v,x,y,b),Ce=new Map,new Set(Se).forEach(De=>{De!=null&&Ce.set(De,new Path2D)})));let{x0:Ue,size:Ge}=c;if(Ue!=null&&Ge!=null){q=1,_=Ue.values(v,x,y,b),Ue.unit==2&&(_=_.map(Dt=>v.posToVal($+Dt*M,C.key,!0)));let De=Ge.values(v,x,y,b);Ge.unit==2?he=De[0]*M:he=T(De[0],C,M,$)-T(0,C,M,$),re=Hae(_,S,T,C,M,$,re),ue=re-he+P}else re=Hae(_,S,T,C,M,$,re),ue=re*a+P,he=re-ue;ue<1&&(ue=0),ge>=he/2&&(ge=0),ue<5&&(te=Goe);let _t=ue>0,St=re-ue-(_t?ge:0);he=te(pM(St,A,X)),ke=(q==0?he/2:q==H?0:he)-q*H*((q==0?P/2:0)+(_t?ge/2:0));const ut={stroke:null,fill:null,clip:null,band:null,gaps:null,flags:0},ct=$e?null:new Path2D;let bt=null;if(B!=null)bt=v.data[B.series[1]];else{let{y0:De,y1:Dt}=c;De!=null&&Dt!=null&&(S=Dt.values(v,x,y,b),bt=De.values(v,x,y,b))}let Qe=Y*he,Ke=F*he;for(let De=H==1?y:b;De>=y&&De<=b;De+=H){let Dt=S[De];if(Dt==null)continue;if(bt!=null){let tr=bt[De]??0;if(Dt-tr==0)continue;me=E(tr,j,O,D)}let pn=C.distr!=2||c!=null?_[De]:De,Yn=T(pn,C,M,$),hr=E(Rn(Dt,je),j,O,D),Kn=te(Yn-ke),kr=te(pa(hr,me)),On=te(su(hr,me)),Mr=kr-On;if(Dt!=null){let tr=Dt<0?Ke:Qe,Sr=Dt<0?Qe:Ke;$e?(ge>0&&Se[De]!=null&&ee(Ce.get(Se[De]),Kn,On+Ts(ge/2),he,pa(0,Mr-ge),tr,Sr),pe[De]!=null&&ee(ye.get(pe[De]),Kn,On+Ts(ge/2),he,pa(0,Mr-ge),tr,Sr)):ee(ct,Kn,On+Ts(ge/2),he,pa(0,Mr-ge),tr,Sr),ce(v,x,De,Kn-ge/2,On,he+ge,Mr)}}return ge>0?ut.stroke=$e?Ce:ct:$e||(ut._fill=w.width==0?w._fill:w._stroke??w._fill,ut.width=0),ut.fill=$e?ye:ct,ut})}function AHe(e,t){const n=Rn(t==null?void 0:t.alignGaps,0);return(r,i,o,a)=>Lp(r,i,(s,l,c,d,f,p,v,x,y,b,w)=>{[o,a]=i6(c,o,a);let _=s.pxRound,S=Y=>_(p(Y,d,b,x)),C=Y=>_(v(Y,f,w,y)),j,T,E;d.ori==0?(j=p6,E=Xg,T=Fae):(j=m6,E=Jg,T=Uae);const $=d.dir*(d.ori==0?1:-1);let D=S(l[$==1?o:a]),M=D,O=[],te=[];for(let Y=$==1?o:a;Y>=o&&Y<=a;Y+=$)if(c[Y]!=null){let F=l[Y],H=S(F);O.push(M=H),te.push(C(c[Y]))}const q={stroke:e(O,te,j,E,T,_),fill:null,clip:null,band:null,gaps:null,flags:Kg},P=q.stroke;let[X,A]=jM(r,i);if(s.fill!=null||X!=0){let Y=q.fill=new Path2D(P),F=s.fillTo(r,i,s.min,s.max,X),H=C(F);E(Y,M,H),E(Y,D,H)}if(!s.spanGaps){let Y=[];Y.push(...TM(l,c,o,a,$,S,n)),q.gaps=Y=s.gaps(r,i,o,a,Y),q.clip=h6(Y,d.ori,x,y,b,w)}return A!=0&&(q.band=A==2?[_d(r,i,o,a,P,-1),_d(r,i,o,a,P,1)]:_d(r,i,o,a,P,A)),q})}function FHe(e){return AHe(UHe,e)}function UHe(e,t,n,r,i,o){const a=e.length;if(a<2)return null;const s=new Path2D;if(n(s,e[0],t[0]),a==2)r(s,e[1],t[1]);else{let l=Array(a),c=Array(a-1),d=Array(a-1),f=Array(a-1);for(let p=0;p0!=c[p]>0?l[p]=0:(l[p]=3*(f[p-1]+f[p])/((2*f[p]+f[p-1])/c[p-1]+(f[p]+2*f[p-1])/c[p]),isFinite(l[p])||(l[p]=0));l[a-1]=c[a-2];for(let p=0;p{jn.pxRatio=Fn}));const BHe=Vae(),WHe=Bae();function qae(e,t,n,r){return(r?[e[0],e[1]].concat(e.slice(2)):[e[0]].concat(e.slice(1))).map((i,o)=>NM(i,o,t,n))}function VHe(e,t){return e.map((n,r)=>r==0?{}:Li({},t,n))}function NM(e,t,n,r){return Li({},t==0?n:r,e)}function Gae(e,t,n){return t==null?qg:[t,n]}const HHe=Gae;function ZHe(e,t,n){return t==null?qg:a6(t,n,dM,!0)}function Yae(e,t,n,r){return t==null?qg:o6(t,n,e.scales[r].log,!1)}const qHe=Yae;function Kae(e,t,n,r){return t==null?qg:cM(t,n,e.scales[r].log,!1)}const GHe=Kae;function YHe(e,t,n,r,i){let o=pa(Zoe(e),Zoe(t)),a=t-e,s=au(i/r*a,n);do{let l=n[s],c=r*l/a;if(c>=i&&o+(l<5?oh.get(l):0)<=17)return[l,c]}while(++s(t=qi((n=+i)*Fn))+"px"),[e,t,n]}function KHe(e){e.show&&[e.font,e.labelFont].forEach(t=>{let n=xr(t[2]*Fn,1);t[0]=t[0].replace(/[0-9.]+px/,n+"px"),t[1]=n})}function jn(e,t,n){const r={mode:Rn(e.mode,1)},i=r.mode;function o(N,z,K,Q){let de=z.valToPct(N);return Q+K*(z.dir==-1?1-de:de)}function a(N,z,K,Q){let de=z.valToPct(N);return Q+K*(z.dir==-1?de:1-de)}function s(N,z,K,Q){return z.ori==0?o(N,z,K,Q):a(N,z,K,Q)}r.valToPosH=o,r.valToPosV=a;let l=!1;r.status=0;const c=r.root=fl(rVe);if(e.id!=null&&(c.id=e.id),Cs(c,e.class),e.title){let N=fl(aVe,c);N.textContent=e.title}const d=ou("canvas"),f=r.ctx=d.getContext("2d"),p=fl(sVe,c);Np("click",p,N=>{N.target===x&&(mr!=Bd||jr!=Wd)&&Ai.click(r,N)},!0);const v=r.under=fl(lVe,p);p.appendChild(d);const x=r.over=fl(uVe,p);e=Gg(e);const y=+Rn(e.pxAlign,1),b=Oae(y);(e.plugins||[]).forEach(N=>{N.opts&&(e=N.opts(r,e)||e)});const w=e.ms||.001,_=r.series=i==1?qae(e.series||[],Cae,Mae,!1):VHe(e.series||[null],$ae),S=r.axes=qae(e.axes||[],Sae,Iae,!0),C=r.scales={},j=r.bands=e.bands||[];j.forEach(N=>{N.fill=bn(N.fill||null),N.dir=Rn(N.dir,-1)});const T=i==2?_[1].facets[0].scale:_[0].scale,E={axes:Kt,series:z1},$=(e.drawOrder||["axes","series"]).map(N=>E[N]);function D(N){const z=N.distr==3?K=>xd(K>0?K:N.clamp(r,K,N.min,N.max,N.key)):N.distr==4?K=>hM(K,N.asinh):N.distr==100?K=>N.fwd(K):K=>K;return K=>{let Q=z(K),{_min:de,_max:_e}=N,Me=_e-de;return(Q-de)/Me}}function M(N){let z=C[N];if(z==null){let K=(e.scales||gx)[N]||gx;if(K.from!=null){M(K.from);let Q=Li({},C[K.from],K,{key:N});Q.valToPct=D(Q),C[N]=Q}else{z=C[N]=Li({},N==T?Rae:MHe,K),z.key=N;let Q=z.time,de=z.range,_e=ah(de);if((N!=T||i==2&&!Q)&&(_e&&(de[0]==null||de[1]==null)&&(de={min:de[0]==null?Boe:{mode:1,hard:de[0],soft:de[0]},max:de[1]==null?Boe:{mode:1,hard:de[1],soft:de[1]}},_e=!1),!_e&&u6(de))){let Me=de;de=(Fe,Ve,et)=>Ve==null?qg:a6(Ve,et,Me)}z.range=bn(de||(Q?HHe:N==T?z.distr==3?qHe:z.distr==4?GHe:Gae:z.distr==3?Yae:z.distr==4?Kae:ZHe)),z.auto=bn(_e?!1:z.auto),z.clamp=bn(z.clamp||$He),z._min=z._max=null,z.valToPct=D(z)}}}M("x"),M("y"),i==1&&_.forEach(N=>{M(N.scale)}),S.forEach(N=>{M(N.scale)});for(let N in e.scales)M(N);const O=C[T],te=O.distr;let q,P;O.ori==0?(Cs(c,iVe),q=o,P=a):(Cs(c,oVe),q=a,P=o);const X={};for(let N in C){let z=C[N];(z.min!=null||z.max!=null)&&(X[N]={min:z.min,max:z.max},z.min=z.max=null)}const A=e.tzDate||(N=>new Date(qi(N/w))),Y=e.fmtDate||gM,F=w==1?iHe(A):sHe(A),H=gae(A,mae(w==1?rHe:aHe,Y)),ee=yae(A,vae(uHe,Y)),ce=[],B=r.legend=Li({},fHe,e.legend),ae=r.cursor=Li({},yHe,{drag:{y:i==2}},e.cursor),je=B.show,me=ae.show,ke=B.markers;B.idxs=ce,ke.width=bn(ke.width),ke.dash=bn(ke.dash),ke.stroke=bn(ke.stroke),ke.fill=bn(ke.fill);let he,ue,re,ge=[],$e=[],pe,ye=!1,Se={};if(B.live){const N=_[1]?_[1].values:null;ye=N!=null,pe=ye?N(r,1,0):{_:0};for(let z in pe)Se[z]=iM}if(je)if(he=ou("table",mVe,c),re=ou("tbody",null,he),B.mount(r,he),ye){ue=ou("thead",null,he,re);let N=ou("tr",null,ue);ou("th",null,N);for(var Ce in pe)ou("th",joe,N).textContent=Ce}else Cs(he,vVe),B.live&&Cs(he,gVe);const Ue={show:!0},Ge={show:!1};function _t(N,z){if(z==0&&(ye||!B.live||i==2))return qg;let K=[],Q=ou("tr",yVe,re,re.childNodes[z]);Cs(Q,N.class),N.show||Cs(Q,Ep);let de=ou("th",null,Q);if(ke.show){let Fe=fl(bVe,de);if(z>0){let Ve=ke.width(r,z);Ve&&(Fe.style.border=Ve+"px "+ke.dash(r,z)+" "+ke.stroke(r,z)),Fe.style.background=ke.fill(r,z)}}let _e=fl(joe,de);N.label instanceof HTMLElement?_e.appendChild(N.label):_e.textContent=N.label,z>0&&(ke.show||(_e.style.color=N.width>0?ke.stroke(r,z):ke.fill(r,z)),ut("click",de,Fe=>{if(ae._lock)return;pi(Fe);let Ve=_.indexOf(N);if((Fe.ctrlKey||Fe.metaKey)!=B.isolate){let et=_.some((ot,st)=>st>0&&st!=Ve&&ot.show);_.forEach((ot,st)=>{st>0&&Ja(st,et?st==Ve?Ue:Ge:Ue,!0,Sn.setSeries)})}else Ja(Ve,{show:!N.show},!0,Sn.setSeries)},!1),$o&&ut(Noe,de,Fe=>{ae._lock||(pi(Fe),Ja(_.indexOf(N),Cc,!0,Sn.setSeries))},!1));for(var Me in pe){let Fe=ou("td",xVe,Q);Fe.textContent="--",K.push(Fe)}return[Q,K]}const St=new Map;function ut(N,z,K,Q=!0){const de=St.get(z)||{},_e=ae.bind[N](r,z,K,Q);_e&&(Np(N,z,de[N]=_e),St.set(z,de))}function ct(N,z,K){const Q=St.get(z)||{};for(let de in Q)(N==null||de==N)&&(uM(de,z,Q[de]),delete Q[de]);N==null&&St.delete(z)}let bt=0,Qe=0,Ke=0,De=0,Dt=0,pn=0,Yn=Dt,hr=pn,Kn=Ke,kr=De,On=0,Mr=0,tr=0,Sr=0;r.bbox={};let ri=!1,uo=!1,Ki=!1,No=!1,Ps=!1,zn=!1;function co(N,z,K){(K||N!=r.width||z!=r.height)&&xa(N,z),In(!1),Ki=!0,uo=!0,Fd()}function xa(N,z){r.width=bt=Ke=N,r.height=Qe=De=z,Dt=pn=0,qa(),kl();let K=r.bbox;On=K.left=Mp(Dt*Fn,.5),Mr=K.top=Mp(pn*Fn,.5),tr=K.width=Mp(Ke*Fn,.5),Sr=K.height=Mp(De*Fn,.5)}const yc=3;function bc(){let N=!1,z=0;for(;!N;){z++;let K=ze(z),Q=vt(z);N=z==yc||K&&Q,N||(xa(r.width,r.height),uo=!0)}}function xc({width:N,height:z}){co(N,z)}r.setSize=xc;function qa(){let N=!1,z=!1,K=!1,Q=!1;S.forEach((de,_e)=>{if(de.show&&de._show){let{side:Me,_size:Fe}=de,Ve=Me%2,et=de.label!=null?de.labelSize:0,ot=Fe+et;ot>0&&(Ve?(Ke-=ot,Me==3?(Dt+=ot,Q=!0):K=!0):(De-=ot,Me==0?(pn+=ot,N=!0):z=!0))}}),ii[0]=N,ii[1]=K,ii[2]=z,ii[3]=Q,Ke-=mi[1]+mi[3],Dt+=mi[3],De-=mi[2]+mi[0],pn+=mi[0]}function kl(){let N=Dt+Ke,z=pn+De,K=Dt,Q=pn;function de(_e,Me){switch(_e){case 1:return N+=Me,N-Me;case 2:return z+=Me,z-Me;case 3:return K-=Me,K+Me;case 0:return Q-=Me,Q+Me}}S.forEach((_e,Me)=>{if(_e.show&&_e._show){let Fe=_e.side;_e._pos=de(Fe,_e._size),_e.label!=null&&(_e._lpos=de(Fe,_e.labelSize))}})}if(ae.dataIdx==null){let N=ae.hover,z=N.skip=new Set(N.skip??[]);z.add(void 0);let K=N.prox=bn(N.prox),Q=N.bias??(N.bias=0);ae.dataIdx=(de,_e,Me,Fe)=>{if(_e==0)return Me;let Ve=Me,et=K(de,_e,Me,Fe)??br,ot=et>=0&&et0;)z.has(Ut[mt])||(an=mt);if(Q==0||Q==1)for(mt=Me;Tt==null&&mt++et&&(Ve=null);return Ve}}const pi=N=>{ae.event=N};ae.idxs=ce,ae._lock=!1;let Un=ae.points;Un.show=bn(Un.show),Un.size=bn(Un.size),Un.stroke=bn(Un.stroke),Un.width=bn(Un.width),Un.fill=bn(Un.fill);const Rr=r.focus=Li({},e.focus||{alpha:.3},ae.focus),$o=Rr.prox>=0,fo=$o&&Un.one;let Lr=[],ho=[],_a=[];function it(N,z){let K=Un.show(r,z);if(K instanceof HTMLElement)return Cs(K,pVe),Cs(K,N.class),ec(K,-10,-10,Ke,De),x.insertBefore(K,Lr[z]),K}function Yt(N,z){if(i==1||z>0){let K=i==1&&C[N.scale].time,Q=N.value;N.value=K?tae(Q)?yae(A,vae(Q,Y)):Q||ee:Q||IHe,N.label=N.label||(K?xHe:bHe)}if(fo||z>0){N.width=N.width==null?1:N.width,N.paths=N.paths||BHe||MVe,N.fillTo=bn(N.fillTo||RHe),N.pxAlign=+Rn(N.pxAlign,y),N.pxRound=Oae(N.pxAlign),N.stroke=bn(N.stroke||null),N.fill=bn(N.fill||null),N._stroke=N._fill=N._paths=N._focus=null;let K=EHe(pa(1,N.width),1),Q=N.points=Li({},{size:K,width:pa(1,K*.2),stroke:N.stroke,space:K*2,paths:WHe,_stroke:null,_fill:null},N.points);Q.show=bn(Q.show),Q.filter=bn(Q.filter),Q.fill=bn(Q.fill),Q.stroke=bn(Q.stroke),Q.paths=bn(Q.paths),Q.pxAlign=N.pxAlign}if(je){let K=_t(N,z);ge.splice(z,0,K[0]),$e.splice(z,0,K[1]),B.values.push(null)}if(me){ce.splice(z,0,null);let K=null;fo?z==0&&(K=it(N,z)):z>0&&(K=it(N,z)),Lr.splice(z,0,K),ho.splice(z,0,0),_a.splice(z,0,0)}Ni("addSeries",z)}function nr(N,z){z=z??_.length,N=i==1?NM(N,z,Cae,Mae):NM(N,z,{},$ae),_.splice(z,0,N),Yt(_[z],z)}r.addSeries=nr;function ht(N){if(_.splice(N,1),je){B.values.splice(N,1),$e.splice(N,1);let z=ge.splice(N,1)[0];ct(null,z.firstChild),z.remove()}me&&(ce.splice(N,1),Lr.splice(N,1)[0].remove(),ho.splice(N,1),_a.splice(N,1)),Ni("delSeries",N)}r.delSeries=ht;const ii=[!1,!1,!1,!1];function Ga(N,z){if(N._show=N.show,N.show){let K=N.side%2,Q=C[N.scale];Q==null&&(N.scale=K?_[1].scale:T,Q=C[N.scale]);let de=Q.time;N.size=bn(N.size),N.space=bn(N.space),N.rotate=bn(N.rotate),ah(N.incrs)&&N.incrs.forEach(Me=>{!oh.has(Me)&&oh.set(Me,Qoe(Me))}),N.incrs=bn(N.incrs||(Q.distr==2?eHe:de?w==1?nHe:oHe:Rp)),N.splits=bn(N.splits||(de&&Q.distr==1?F:Q.distr==3?kM:Q.distr==4?kHe:wHe)),N.stroke=bn(N.stroke),N.grid.stroke=bn(N.grid.stroke),N.ticks.stroke=bn(N.ticks.stroke),N.border.stroke=bn(N.border.stroke);let _e=N.values;N.values=ah(_e)&&!ah(_e[0])?bn(_e):de?ah(_e)?gae(A,mae(_e,Y)):tae(_e)?lHe(A,_e):_e||H:_e||_He,N.filter=bn(N.filter||(Q.distr>=3&&Q.log==10?jHe:Q.distr==3&&Q.log==2?THe:Yoe)),N.font=Xae(N.font),N.labelFont=Xae(N.labelFont),N._size=N.size(r,null,z,0),N._space=N._rotate=N._incrs=N._found=N._splits=N._values=null,N._size>0&&(ii[z]=!0,N._el=fl(cVe,p))}}function Ya(N,z,K,Q){let[de,_e,Me,Fe]=K,Ve=z%2,et=0;return Ve==0&&(Fe||_e)&&(et=z==0&&!de||z==2&&!Me?qi(Sae.size/3):0),Ve==1&&(de||Me)&&(et=z==1&&!_e||z==3&&!Fe?qi(Iae.size/2):0),et}const Ko=r.padding=(e.padding||[Ya,Ya,Ya,Ya]).map(N=>bn(Rn(N,Ya))),mi=r._padding=Ko.map((N,z)=>N(r,z,ii,0));let Bn,pr=null,Cr=null;const Ka=i==1?_[0].idxs:null;let po=null,mo=!1;function Vr(N,z){if(t=N??[],r.data=r._data=t,i==2){Bn=0;for(let K=1;K<_.length;K++)Bn+=t[K][0].length}else{t.length==0&&(r.data=r._data=t=[[]]),po=t[0],Bn=po.length;let K=t;if(te==2){K=t.slice();let Q=K[0]=Array(Bn);for(let de=0;de=0,zn=!0,Fd()}}r.setData=Vr;function wa(){mo=!0;let N,z;i==1&&(Bn>0?(pr=Ka[0]=0,Cr=Ka[1]=Bn-1,N=t[0][pr],z=t[0][Cr],te==2?(N=pr,z=Cr):N==z&&(te==3?[N,z]=o6(N,N,O.log,!1):te==4?[N,z]=cM(N,N,O.log,!1):O.time?z=N+qi(86400/w):[N,z]=a6(N,z,dM,!0))):(pr=Ka[0]=N=null,Cr=Ka[1]=z=null)),Mo(T,N,z)}let ji,gi,Os,go,Xo,Pd,Od,bu,Xi,oi;function _c(N,z,K,Q,de,_e){N??(N=Ioe),K??(K=mM),Q??(Q="butt"),de??(de=Ioe),_e??(_e="round"),N!=ji&&(f.strokeStyle=ji=N),de!=gi&&(f.fillStyle=gi=de),z!=Os&&(f.lineWidth=Os=z),_e!=Xo&&(f.lineJoin=Xo=_e),Q!=Pd&&(f.lineCap=Pd=Q),K!=go&&f.setLineDash(go=K)}function xu(N,z,K,Q){z!=gi&&(f.fillStyle=gi=z),N!=Od&&(f.font=Od=N),K!=bu&&(f.textAlign=bu=K),Q!=Xi&&(f.textBaseline=Xi=Q)}function wc(N,z,K,Q,de=0){if(Q.length>0&&N.auto(r,mo)&&(z==null||z.min==null)){let _e=Rn(pr,0),Me=Rn(Cr,Q.length-1),Fe=K.min==null?jVe(Q,_e,Me,de,N.distr==3):[K.min,K.max];N.min=su(N.min,K.min=Fe[0]),N.max=pa(N.max,K.max=Fe[1])}}const kc={min:null,max:null};function Sl(){for(let Q in C){let de=C[Q];X[Q]==null&&(de.min==null||X[T]!=null&&de.auto(r,mo))&&(X[Q]=kc)}for(let Q in C){let de=C[Q];X[Q]==null&&de.from!=null&&X[de.from]!=null&&(X[Q]=kc)}X[T]!=null&&In(!0);let N={};for(let Q in X){let de=X[Q];if(de!=null){let _e=N[Q]=Gg(C[Q],PVe);if(de.min!=null)Li(_e,de);else if(Q!=T||i==2)if(Bn==0&&_e.from==null){let Me=_e.range(r,null,null,Q);_e.min=Me[0],_e.max=Me[1]}else _e.min=br,_e.max=-br}}if(Bn>0){_.forEach((Q,de)=>{if(i==1){let _e=Q.scale,Me=X[_e];if(Me==null)return;let Fe=N[_e];if(de==0){let Ve=Fe.range(r,Fe.min,Fe.max,_e);Fe.min=Ve[0],Fe.max=Ve[1],pr=au(Fe.min,t[0]),Cr=au(Fe.max,t[0]),Cr-pr>1&&(t[0][pr]Fe.max&&Cr--),Q.min=po[pr],Q.max=po[Cr]}else Q.show&&Q.auto&&wc(Fe,Me,Q,t[de],Q.sorted);Q.idxs[0]=pr,Q.idxs[1]=Cr}else if(de>0&&Q.show&&Q.auto){let[_e,Me]=Q.facets,Fe=_e.scale,Ve=Me.scale,[et,ot]=t[de],st=N[Fe],Pt=N[Ve];st!=null&&wc(st,X[Fe],_e,et,_e.sorted),Pt!=null&&wc(Pt,X[Ve],Me,ot,Me.sorted),Q.min=Me.min,Q.max=Me.max}});for(let Q in N){let de=N[Q],_e=X[Q];if(de.from==null&&(_e==null||_e.min==null)){let Me=de.range(r,de.min==br?null:de.min,de.max==-br?null:de.max,Q);de.min=Me[0],de.max=Me[1]}}}for(let Q in N){let de=N[Q];if(de.from!=null){let _e=N[de.from];if(_e.min==null)de.min=de.max=null;else{let Me=de.range(r,_e.min,_e.max,Q);de.min=Me[0],de.max=Me[1]}}}let z={},K=!1;for(let Q in N){let de=N[Q],_e=C[Q];if(_e.min!=de.min||_e.max!=de.max){_e.min=de.min,_e.max=de.max;let Me=_e.distr;_e._min=Me==3?xd(_e.min):Me==4?hM(_e.min,_e.asinh):Me==100?_e.fwd(_e.min):_e.min,_e._max=Me==3?xd(_e.max):Me==4?hM(_e.max,_e.asinh):Me==100?_e.fwd(_e.max):_e.max,z[Q]=K=!0}}if(K){_.forEach((Q,de)=>{i==2?de>0&&z.y&&(Q._paths=null):z[Q.scale]&&(Q._paths=null)});for(let Q in z)Ki=!0,Ni("setScale",Q);me&&ae.left>=0&&(No=zn=!0)}for(let Q in X)X[Q]=null}function Xa(N){let z=pM(pr-1,0,Bn-1),K=pM(Cr+1,0,Bn-1);for(;N[z]==null&&z>0;)z--;for(;N[K]==null&&K0){let N=_.some(z=>z._focus)&&oi!=Rr.alpha;N&&(f.globalAlpha=oi=Rr.alpha),_.forEach((z,K)=>{if(K>0&&z.show&&(zd(K,!1),zd(K,!0),z._paths==null)){let Q=oi;oi!=z.alpha&&(f.globalAlpha=oi=z.alpha);let de=i==2?[0,t[K][0].length-1]:Xa(t[K]);z._paths=z.paths(r,K,de[0],de[1]),oi!=Q&&(f.globalAlpha=oi=Q)}}),_.forEach((z,K)=>{if(K>0&&z.show){let Q=oi;oi!=z.alpha&&(f.globalAlpha=oi=z.alpha),z._paths!=null&&Sc(K,!1);{let de=z._paths!=null?z._paths.gaps:null,_e=z.points.show(r,K,pr,Cr,de),Me=z.points.filter(r,K,_e,de);(_e||Me)&&(z.points._paths=z.points.paths(r,K,pr,Cr,Me),Sc(K,!0))}oi!=Q&&(f.globalAlpha=oi=Q),Ni("drawSeries",K)}}),N&&(f.globalAlpha=oi=1)}}function zd(N,z){let K=z?_[N].points:_[N];K._stroke=K.stroke(r,N),K._fill=K.fill(r,N)}function Sc(N,z){let K=z?_[N].points:_[N],{stroke:Q,fill:de,clip:_e,flags:Me,_stroke:Fe=K._stroke,_fill:Ve=K._fill,_width:et=K.width}=K._paths;et=xr(et*Fn,3);let ot=null,st=et%2/2;z&&Ve==null&&(Ve=et>0?"#fff":Fe);let Pt=K.pxAlign==1&&st>0;if(Pt&&f.translate(st,st),!z){let hn=On-et/2,Ut=Mr-et/2,an=tr+et,Tt=Sr+et;ot=new Path2D,ot.rect(hn,Ut,an,Tt)}z?Ad(Fe,et,K.dash,K.cap,Ve,Q,de,Me,_e):Dd(N,Fe,et,K.dash,K.cap,Ve,Q,de,Me,ot,_e),Pt&&f.translate(-st,-st)}function Dd(N,z,K,Q,de,_e,Me,Fe,Ve,et,ot){let st=!1;Ve!=0&&j.forEach((Pt,hn)=>{if(Pt.series[0]==N){let Ut=_[Pt.series[1]],an=t[Pt.series[1]],Tt=(Ut._paths||gx).band;ah(Tt)&&(Tt=Pt.dir==1?Tt[0]:Tt[1]);let mt,gr=null;Ut.show&&Tt&&IVe(an,pr,Cr)?(gr=Pt.fill(r,hn)||_e,mt=Ut._paths.clip):Tt=null,Ad(z,K,Q,de,gr,Me,Fe,Ve,et,ot,mt,Tt),st=!0}}),st||Ad(z,K,Q,de,_e,Me,Fe,Ve,et,ot)}const Fm=Kg|CM;function Ad(N,z,K,Q,de,_e,Me,Fe,Ve,et,ot,st){_c(N,z,K,Q,de),(Ve||et||st)&&(f.save(),Ve&&f.clip(Ve),et&&f.clip(et)),st?(Fe&Fm)==Fm?(f.clip(st),ot&&f.clip(ot),G(de,Me),L(N,_e,z)):Fe&CM?(G(de,Me),f.clip(st),L(N,_e,z)):Fe&Kg&&(f.save(),f.clip(st),ot&&f.clip(ot),G(de,Me),f.restore(),L(N,_e,z)):(G(de,Me),L(N,_e,z)),(Ve||et||st)&&f.restore()}function L(N,z,K){K>0&&(z instanceof Map?z.forEach((Q,de)=>{f.strokeStyle=ji=de,f.stroke(Q)}):z!=null&&N&&f.stroke(z))}function G(N,z){z instanceof Map?z.forEach((K,Q)=>{f.fillStyle=gi=Q,f.fill(K)}):z!=null&&N&&f.fill(z)}function ie(N,z,K,Q){let de=S[N],_e;if(Q<=0)_e=[0,0];else{let Me=de._space=de.space(r,N,z,K,Q),Fe=de._incrs=de.incrs(r,N,z,K,Q,Me);_e=YHe(z,K,Fe,Q,Me)}return de._found=_e}function Ie(N,z,K,Q,de,_e,Me,Fe,Ve,et){let ot=Me%2/2;y==1&&f.translate(ot,ot),_c(Fe,Me,Ve,et,Fe),f.beginPath();let st,Pt,hn,Ut,an=de+(Q==0||Q==3?-_e:_e);K==0?(Pt=de,Ut=an):(st=de,hn=an);for(let Tt=0;Tt{if(!K.show)return;let de=C[K.scale];if(de.min==null){K._show&&(z=!1,K._show=!1,In(!1));return}else K._show||(z=!1,K._show=!0,In(!1));let _e=K.side,Me=_e%2,{min:Fe,max:Ve}=de,[et,ot]=ie(Q,Fe,Ve,Me==0?Ke:De);if(ot==0)return;let st=de.distr==2,Pt=K._splits=K.splits(r,Q,Fe,Ve,et,ot,st),hn=de.distr==2?Pt.map(mt=>po[mt]):Pt,Ut=de.distr==2?po[Pt[1]]-po[Pt[0]]:et,an=K._values=K.values(r,K.filter(r,hn,Q,ot,Ut),Q,ot,Ut);K._rotate=_e==2?K.rotate(r,an,Q,ot):0;let Tt=K._size;K._size=hl(K.size(r,an,Q,N)),Tt!=null&&K._size!=Tt&&(z=!1)}),z}function vt(N){let z=!0;return Ko.forEach((K,Q)=>{let de=K(r,Q,ii,N);de!=mi[Q]&&(z=!1),mi[Q]=de}),z}function Kt(){for(let N=0;Npo[ar]):hn,an=ot.distr==2?po[hn[1]]-po[hn[0]]:Ve,Tt=z.ticks,mt=z.border,gr=Tt.show?Tt.size:0,Hr=qi(gr*Fn),$i=qi((z.alignTo==2?z._size-gr-z.gap:z.gap)*Fn),xn=z._rotate*-s6/180,le=b(z._pos*Fn),Ne=(Hr+$i)*Fe,we=le+Ne;_e=Q==0?we:0,de=Q==1?we:0;let Je=z.font[0],xt=z.align==1?Wg:z.align==2?eM:xn>0?Wg:xn<0?eM:Q==0?"center":K==3?eM:Wg,Gt=xn||Q==1?"middle":K==2?hx:Toe;xu(Je,Me,xt,Gt);let En=z.font[1]*z.lineGap,tn=hn.map(ar=>b(s(ar,ot,st,Pt))),Qo=z._values;for(let ar=0;ar{K>0&&(z._paths=null,N&&(i==1?(z.min=null,z.max=null):z.facets.forEach(Q=>{Q.min=null,Q.max=null})))})}let Di=!1,Ti=!1,Ji=[];function mC(){Ti=!1;for(let N=0;N0&&queueMicrotask(mC)}r.batch=j_;function T_(){if(ri&&(Sl(),ri=!1),Ki&&(bc(),Ki=!1),uo){if(Dr(v,Wg,Dt),Dr(v,hx,pn),Dr(v,dx,Ke),Dr(v,fx,De),Dr(x,Wg,Dt),Dr(x,hx,pn),Dr(x,dx,Ke),Dr(x,fx,De),Dr(p,dx,bt),Dr(p,fx,Qe),d.width=qi(bt*Fn),d.height=qi(Qe*Fn),S.forEach(({_el:N,_show:z,_size:K,_pos:Q,side:de})=>{if(N!=null)if(z){let _e=de===3||de===0?K:0,Me=de%2==1;Dr(N,Me?"left":"top",Q-_e),Dr(N,Me?"width":"height",K),Dr(N,Me?"top":"left",Me?pn:Dt),Dr(N,Me?"height":"width",Me?De:Ke),sM(N,Ep)}else Cs(N,Ep)}),ji=gi=Os=Xo=Pd=Od=bu=Xi=go=null,oi=1,jc(!0),Dt!=Yn||pn!=hr||Ke!=Kn||De!=kr){In(!1);let N=Ke/Kn,z=De/kr;if(me&&!No&&ae.left>=0){ae.left*=N,ae.top*=z,_u&&ec(_u,qi(ae.left),0,Ke,De),Ud&&ec(Ud,0,qi(ae.top),Ke,De);for(let K=0;K=0&&ir.width>0){ir.left*=N,ir.width*=N,ir.top*=z,ir.height*=z;for(let K in Z1)Dr(Vd,K,ir[K])}Yn=Dt,hr=pn,Kn=Ke,kr=De}Ni("setSize"),uo=!1}bt>0&&Qe>0&&(f.clearRect(0,0,d.width,d.height),Ni("drawClear"),$.forEach(N=>N()),Ni("draw")),ir.show&&Ps&&(ai(ir),Ps=!1),me&&No&&(jl(null,!0,!1),No=!1),B.show&&B.live&&zn&&(or(),zn=!1),l||(l=!0,r.status=1,Ni("ready")),mo=!1,Di=!1}r.redraw=(N,z)=>{Ki=z||!1,N!==!1?Mo(T,O.min,O.max):Fd()};function D1(N,z){let K=C[N];if(K.from==null){if(Bn==0){let Q=K.range(r,z.min,z.max,N);z.min=Q[0],z.max=Q[1]}if(z.min>z.max){let Q=z.min;z.min=z.max,z.max=Q}if(Bn>1&&z.min!=null&&z.max!=null&&z.max-z.min<1e-16)return;N==T&&K.distr==2&&Bn>0&&(z.min=au(z.min,t[0]),z.max=au(z.max,t[0]),z.min==z.max&&z.max++),X[N]=z,ri=!0,Fd()}}r.setScale=D1;let A1,F1,_u,Ud,I_,E_,Bd,Wd,rr,Xn,mr,jr,wu=!1;const Ai=ae.drag;let Ii=Ai.x,Ei=Ai.y;me&&(ae.x&&(A1=fl(fVe,x)),ae.y&&(F1=fl(hVe,x)),O.ori==0?(_u=A1,Ud=F1):(_u=F1,Ud=A1),mr=ae.left,jr=ae.top);const ir=r.select=Li({show:!0,over:!0,left:0,width:0,top:0,height:0},e.select),Vd=ir.show?fl(dVe,ir.over?x:v):null;function ai(N,z){if(ir.show){for(let K in N)ir[K]=N[K],K in Z1&&Dr(Vd,K,N[K]);z!==!1&&Ni("setSelect")}}r.setSelect=ai;function U1(N){if(_[N].show)je&&sM(ge[N],Ep);else if(je&&Cs(ge[N],Ep),me){let z=fo?Lr[0]:Lr[N];z!=null&&ec(z,-10,-10,Ke,De)}}function Mo(N,z,K){D1(N,{min:z,max:K})}function Ja(N,z,K,Q){z.focus!=null&&Jo(N),z.show!=null&&_.forEach((de,_e)=>{_e>0&&(N==_e||N==null)&&(de.show=z.show,U1(_e),i==2?(Mo(de.facets[0].scale,null,null),Mo(de.facets[1].scale,null,null)):Mo(de.scale,null,null),Fd())}),K!==!1&&Ni("setSeries",N,z),Q&&Zd("setSeries",r,N,z)}r.setSeries=Ja;function B1(N,z){Li(j[N],z)}function ka(N,z){N.fill=bn(N.fill||null),N.dir=Rn(N.dir,-1),z=z??j.length,j.splice(z,0,N)}function N_(N){N==null?j.length=0:j.splice(N,1)}r.addBand=ka,r.setBand=B1,r.delBand=N_;function $_(N,z){_[N].alpha=z,me&&Lr[N]!=null&&(Lr[N].style.opacity=z),je&&ge[N]&&(ge[N].style.opacity=z)}let zs,Cl,ku;const Cc={focus:!0};function Jo(N){if(N!=ku){let z=N==null,K=Rr.alpha!=1;_.forEach((Q,de)=>{if(i==1||de>0){let _e=z||de==0||de==N;Q._focus=z?null:_e,K&&$_(de,_e?1:Rr.alpha)}}),ku=N,K&&Fd()}}je&&$o&&ut($oe,he,N=>{ae._lock||(pi(N),ku!=null&&Ja(null,Cc,!0,Sn.setSeries))});function Ds(N,z,K){let Q=C[z];K&&(N=N/Fn-(Q.ori==1?pn:Dt));let de=Ke;Q.ori==1&&(de=De,N=de-N),Q.dir==-1&&(N=de-N);let _e=Q._min,Me=Q._max,Fe=N/de,Ve=_e+(Me-_e)*Fe,et=Q.distr;return et==3?Zg(10,Ve):et==4?NVe(Ve,Q.asinh):et==100?Q.bwd(Ve):Ve}function Sa(N,z){let K=Ds(N,T,z);return au(K,t[0],pr,Cr)}r.valToIdx=N=>au(N,t[0]),r.posToIdx=Sa,r.posToVal=Ds,r.valToPos=(N,z,K)=>C[z].ori==0?o(N,C[z],K?tr:Ke,K?On:0):a(N,C[z],K?Sr:De,K?Mr:0),r.setCursor=(N,z,K)=>{mr=N.left,jr=N.top,jl(null,z,K)};function M_(N,z){Dr(Vd,Wg,ir.left=N),Dr(Vd,dx,ir.width=z)}function W1(N,z){Dr(Vd,hx,ir.top=N),Dr(Vd,fx,ir.height=z)}let Ca=O.ori==0?M_:W1,Su=O.ori==1?M_:W1;function V1(){if(je&&B.live)for(let N=i==2?1:0;N<_.length;N++){if(N==0&&ye)continue;let z=B.values[N],K=0;for(let Q in z)$e[N][K++].firstChild.nodeValue=z[Q]}}function or(N,z){if(N!=null&&(N.idxs?N.idxs.forEach((K,Q)=>{ce[Q]=K}):LVe(N.idx)||ce.fill(N.idx),B.idx=ce[0]),je&&B.live){for(let K=0;K<_.length;K++)(K>0||i==1&&!ye)&&Cu(K,ce[K]);V1()}zn=!1,z!==!1&&Ni("setLegend")}r.setLegend=or;function Cu(N,z){let K=_[N],Q=N==0&&te==2?po:t[N],de;ye?de=K.values(r,N,z)??Se:(de=K.value(r,z==null?null:Q[z],N,z),de=de==null?Se:{_:de}),B.values[N]=de}function jl(N,z,K){rr=mr,Xn=jr,[mr,jr]=ae.move(r,mr,jr),ae.left=mr,ae.top=jr,me&&(_u&&ec(_u,qi(mr),0,Ke,De),Ud&&ec(Ud,0,qi(jr),Ke,De));let Q,de=pr>Cr;zs=br,Cl=null;let _e=O.ori==0?Ke:De,Me=O.ori==1?Ke:De;if(mr<0||Bn==0||de){Q=ae.idx=null;for(let Fe=0;Fe<_.length;Fe++){let Ve=Lr[Fe];Ve!=null&&ec(Ve,-10,-10,Ke,De)}$o&&Ja(null,Cc,!0,N==null&&Sn.setSeries),B.live&&(ce.fill(Q),zn=!0)}else{let Fe,Ve,et;i==1&&(Fe=O.ori==0?mr:jr,Ve=Ds(Fe,T),Q=ae.idx=au(Ve,t[0],pr,Cr),et=q(t[0][Q],O,_e,0));let ot=-10,st=-10,Pt=0,hn=0,Ut=!0,an="",Tt="";for(let mt=i==2?1:0;mt<_.length;mt++){let gr=_[mt],Hr=ce[mt],$i=Hr==null?null:i==1?t[mt][Hr]:t[mt][1][Hr],xn=ae.dataIdx(r,mt,Q,Ve),le=xn==null?null:i==1?t[mt][xn]:t[mt][1][xn];if(zn=zn||le!=$i||xn!=Hr,ce[mt]=xn,mt>0&&gr.show){let Ne=xn==null?-10:xn==Q?et:q(i==1?t[0][xn]:t[mt][0][xn],O,_e,0),we=le==null?-10:P(le,i==1?C[gr.scale]:C[gr.facets[1].scale],Me,0);if($o&&le!=null){let Je=O.ori==1?mr:jr,xt=Zi(Rr.dist(r,mt,xn,we,Je));if(xt=0?1:-1,Qo=En>=0?1:-1;Qo==tn&&(Qo==1?Gt==1?le>=En:le<=En:Gt==1?le<=En:le>=En)&&(zs=xt,Cl=mt)}else zs=xt,Cl=mt}}if(zn||fo){let Je,xt;O.ori==0?(Je=Ne,xt=we):(Je=we,xt=Ne);let Gt,En,tn,Qo,As,ar,Qi=!0,Ec=Un.bbox;if(Ec!=null){Qi=!1;let si=Ec(r,mt);tn=si.left,Qo=si.top,Gt=si.width,En=si.height}else tn=Je,Qo=xt,Gt=En=Un.size(r,mt);if(ar=Un.fill(r,mt),As=Un.stroke(r,mt),fo)mt==Cl&&zs<=Rr.prox&&(ot=tn,st=Qo,Pt=Gt,hn=En,Ut=Qi,an=ar,Tt=As);else{let si=Lr[mt];si!=null&&(ho[mt]=tn,_a[mt]=Qo,Doe(si,Gt,En,Qi),Ooe(si,ar,As),ec(si,hl(tn),hl(Qo),Ke,De))}}}}if(fo){let mt=Rr.prox,gr=ku==null?zs<=mt:zs>mt||Cl!=ku;if(zn||gr){let Hr=Lr[0];Hr!=null&&(ho[0]=ot,_a[0]=st,Doe(Hr,Pt,hn,Ut),Ooe(Hr,an,Tt),ec(Hr,hl(ot),hl(st),Ke,De))}}}if(ir.show&&wu)if(N!=null){let[Fe,Ve]=Sn.scales,[et,ot]=Sn.match,[st,Pt]=N.cursor.sync.scales,hn=N.cursor.drag;if(Ii=hn._x,Ei=hn._y,Ii||Ei){let{left:Ut,top:an,width:Tt,height:mt}=N.select,gr=N.scales[st].ori,Hr=N.posToVal,$i,xn,le,Ne,we,Je=Fe!=null&&et(Fe,st),xt=Ve!=null&&ot(Ve,Pt);Je&&Ii?(gr==0?($i=Ut,xn=Tt):($i=an,xn=mt),le=C[Fe],Ne=q(Hr($i,st),le,_e,0),we=q(Hr($i+xn,st),le,_e,0),Ca(su(Ne,we),Zi(we-Ne))):Ca(0,_e),xt&&Ei?(gr==1?($i=Ut,xn=Tt):($i=an,xn=mt),le=C[Ve],Ne=P(Hr($i,Pt),le,Me,0),we=P(Hr($i+xn,Pt),le,Me,0),Su(su(Ne,we),Zi(we-Ne))):Su(0,Me)}else Um()}else{let Fe=Zi(rr-I_),Ve=Zi(Xn-E_);if(O.ori==1){let Pt=Fe;Fe=Ve,Ve=Pt}Ii=Ai.x&&Fe>=Ai.dist,Ei=Ai.y&&Ve>=Ai.dist;let et=Ai.uni;et!=null?Ii&&Ei&&(Ii=Fe>=et,Ei=Ve>=et,!Ii&&!Ei&&(Ve>Fe?Ei=!0:Ii=!0)):Ai.x&&Ai.y&&(Ii||Ei)&&(Ii=Ei=!0);let ot,st;Ii&&(O.ori==0?(ot=Bd,st=mr):(ot=Wd,st=jr),Ca(su(ot,st),Zi(st-ot)),Ei||Su(0,Me)),Ei&&(O.ori==1?(ot=Bd,st=mr):(ot=Wd,st=jr),Su(su(ot,st),Zi(st-ot)),Ii||Ca(0,_e)),!Ii&&!Ei&&(Ca(0,0),Su(0,0))}if(Ai._x=Ii,Ai._y=Ei,N==null){if(K){if(Wm!=null){let[Fe,Ve]=Sn.scales;Sn.values[0]=Fe!=null?Ds(O.ori==0?mr:jr,Fe):null,Sn.values[1]=Ve!=null?Ds(O.ori==1?mr:jr,Ve):null}Zd(nM,r,mr,jr,Ke,De,Q)}if($o){let Fe=K&&Sn.setSeries,Ve=Rr.prox;ku==null?zs<=Ve&&Ja(Cl,Cc,!0,Fe):zs>Ve?Ja(null,Cc,!0,Fe):Cl!=ku&&Ja(Cl,Cc,!0,Fe)}}zn&&(B.idx=Q,or()),z!==!1&&Ni("setCursor")}let ju=null;Object.defineProperty(r,"rect",{get(){return ju==null&&jc(!1),ju}});function jc(N=!1){N?ju=null:(ju=x.getBoundingClientRect(),Ni("syncRect",ju))}function R_(N,z,K,Q,de,_e,Me){ae._lock||wu&&N!=null&&N.movementX==0&&N.movementY==0||(H1(N,z,K,Q,de,_e,Me,!1,N!=null),N!=null?jl(null,!0,!0):jl(z,!0,!1))}function H1(N,z,K,Q,de,_e,Me,Fe,Ve){if(ju==null&&jc(!1),pi(N),N!=null)K=N.clientX-ju.left,Q=N.clientY-ju.top;else{if(K<0||Q<0){mr=-10,jr=-10;return}let[et,ot]=Sn.scales,st=z.cursor.sync,[Pt,hn]=st.values,[Ut,an]=st.scales,[Tt,mt]=Sn.match,gr=z.axes[0].side%2==1,Hr=O.ori==0?Ke:De,$i=O.ori==1?Ke:De,xn=gr?_e:de,le=gr?de:_e,Ne=gr?Q:K,we=gr?K:Q;if(Ut!=null?K=Tt(et,Ut)?s(Pt,C[et],Hr,0):-10:K=Hr*(Ne/xn),an!=null?Q=mt(ot,an)?s(hn,C[ot],$i,0):-10:Q=$i*(we/le),O.ori==1){let Je=K;K=Q,Q=Je}}Ve&&(z==null||z.cursor.event.type==nM)&&((K<=1||K>=Ke-1)&&(K=Mp(K,Ke)),(Q<=1||Q>=De-1)&&(Q=Mp(Q,De))),Fe?(I_=K,E_=Q,[Bd,Wd]=ae.move(r,K,Q)):(mr=K,jr=Q)}const Z1={width:0,height:0,left:0,top:0};function Um(){ai(Z1,!1)}let wh,Tc,L_,q1;function G1(N,z,K,Q,de,_e,Me){wu=!0,Ii=Ei=Ai._x=Ai._y=!1,H1(N,z,K,Q,de,_e,Me,!0,!1),N!=null&&(ut(rM,oM,Bm,!1),Zd(Eoe,r,Bd,Wd,Ke,De,null));let{left:Fe,top:Ve,width:et,height:ot}=ir;wh=Fe,Tc=Ve,L_=et,q1=ot}function Bm(N,z,K,Q,de,_e,Me){wu=Ai._x=Ai._y=!1,H1(N,z,K,Q,de,_e,Me,!1,!0);let{left:Fe,top:Ve,width:et,height:ot}=ir,st=et>0||ot>0,Pt=wh!=Fe||Tc!=Ve||L_!=et||q1!=ot;if(st&&Pt&&ai(ir),Ai.setScale&&st&&Pt){let hn=Fe,Ut=et,an=Ve,Tt=ot;if(O.ori==1&&(hn=Ve,Ut=ot,an=Fe,Tt=et),Ii&&Mo(T,Ds(hn,T),Ds(hn+Ut,T)),Ei)for(let mt in C){let gr=C[mt];mt!=T&&gr.from==null&&gr.min!=br&&Mo(mt,Ds(an+Tt,mt),Ds(an,mt))}Um()}else ae.lock&&(ae._lock=!ae._lock,jl(z,!0,N!=null));N!=null&&(ct(rM,oM),Zd(rM,r,mr,jr,Ke,De,null))}function Y1(N,z,K,Q,de,_e,Me){if(ae._lock)return;pi(N);let Fe=wu;if(wu){let Ve=!0,et=!0,ot=10,st,Pt;O.ori==0?(st=Ii,Pt=Ei):(st=Ei,Pt=Ii),st&&Pt&&(Ve=mr<=ot||mr>=Ke-ot,et=jr<=ot||jr>=De-ot),st&&Ve&&(mr=mr{let de=Sn.match[2];K=de(r,z,K),K!=-1&&Ja(K,Q,!0,!1)},me&&(ut(Eoe,x,G1),ut(nM,x,R_),ut(Noe,x,N=>{pi(N),jc(!1)}),ut($oe,x,Y1),ut(Moe,x,K1),EM.add(r),r.syncRect=jc);const Hd=r.hooks=e.hooks||{};function Ni(N,z,K){Ti?Ji.push([N,z,K]):N in Hd&&Hd[N].forEach(Q=>{Q.call(null,r,z,K)})}(e.plugins||[]).forEach(N=>{for(let z in N.hooks)Hd[z]=(Hd[z]||[]).concat(N.hooks[z])});const X1=(N,z,K)=>K,Sn=Li({key:null,setSeries:!1,filters:{pub:Koe,sub:Koe},scales:[T,_[1]?_[1].scale:null],match:[Xoe,Xoe,X1],values:[null,null]},ae.sync);Sn.match.length==2&&Sn.match.push(X1),ae.sync=Sn;const Wm=Sn.key,Ic=Pae(Wm);function Zd(N,z,K,Q,de,_e,Me){Sn.filters.pub(N,z,K,Q,de,_e,Me)&&Ic.pub(N,z,K,Q,de,_e,Me)}Ic.sub(r);function O_(N,z,K,Q,de,_e,Me){Sn.filters.sub(N,z,K,Q,de,_e,Me)&&Tu[N](null,z,K,Q,de,_e,Me)}r.pub=O_;function gC(){Ic.unsub(r),EM.delete(r),St.clear(),uM(n6,Hg,P_),c.remove(),he==null||he.remove(),Ni("destroy")}r.destroy=gC;function J1(){Ni("init",e,t),Vr(t||e.data,!1),X[T]?D1(T,X[T]):wa(),Ps=ir.show&&(ir.width>0||ir.height>0),No=zn=!0,co(e.width,e.height)}return _.forEach(Yt),S.forEach(Ga),n?n instanceof HTMLElement?(n.appendChild(c),J1()):n(r,J1):J1(),r}jn.assign=Li,jn.fmtNum=fM,jn.rangeNum=a6,jn.rangeLog=o6,jn.rangeAsinh=cM,jn.orient=Lp,jn.pxRatio=Fn,jn.join=UVe,jn.fmtDate=gM,jn.tzDate=JVe,jn.sync=Pae;{jn.addGap=LHe,jn.clipGaps=h6;let e=jn.paths={points:Bae};e.linear=Vae,e.stepped=zHe,e.bars=DHe,e.spline=FHe}Object.is||Object.defineProperty(Object,"is",{value:(e,t)=>e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t});const XHe=(e,t)=>{const{width:n,height:r,...i}=e,{width:o,height:a,...s}=t;let l="keep";if((r!==a||n!==o)&&(l="update"),Object.keys(i).length!==Object.keys(s).length)return"create";for(const c of Object.keys(i))if(!Object.is(i[c],s[c])){l="create";break}return l},JHe=(e,t)=>e.length!==t.length?!1:e.every((n,r)=>{const i=t[r];if(n.length!==i.length)return!1;if(Array.isArray(n))return n.every((o,a)=>o===i[a])});function v6(e,t,n,r,i,o){return e>r?(t=i,n=o):to&&(n=o,t=o-e),[t,n]}const Jae=e=>e._size??0,Qae=fe({}),y6=fe(null,(e,t,n,r)=>{const{chartId:i,isMatchingChartId:o}=r||{},a=e(Qae);if(i&&a[i])n(a[i],i);else for(const[s,l]of Object.entries(a))o&&!o(s)||n(l,s)}),QHe="_uplot_1swaw_1",eZe={uplot:QHe};function Pp({id:e,options:t,data:n,target:r,onDelete:i,onCreate:o,resetScales:a=!0,className:s}){var S,C;const l=m.useRef(null),c=m.useRef(null),d=m.useRef(t),f=m.useRef(r),p=m.useRef(n),v=m.useRef(o),x=m.useRef(i),y=Ee(Qae);m.useEffect(()=>{v.current=o,x.current=i});const b=m.useCallback(j=>{var T;j&&((T=x.current)==null||T.call(x,j),j.destroy(),l.current=null,y(E=>{const $={...E};return delete $[e],$}))},[e,y]),w=m.useCallback(()=>{var T;const j=new jn(d.current,p.current,f.current||c.current);l.current=j,y(E=>({...E,[e]:j})),(T=v.current)==null||T.call(v,j)},[e,y]);m.useEffect(()=>(w(),()=>{b(l.current)}),[w,b]),m.useEffect(()=>{if(d.current!==t){const j=XHe(d.current,t);d.current=t,!l.current||j==="create"?(b(l.current),w()):j==="update"&&l.current.setSize({width:t.width,height:t.height})}},[t,w,b]),m.useEffect(()=>{p.current!==n&&(l.current?JHe(p.current,n)||(a?l.current.setData(n,!0):(l.current.setData(n,!1),l.current.redraw())):(p.current=n,w()),p.current=n)},[n,a,w]),m.useEffect(()=>(f.current!==r&&(f.current=r,w()),()=>b(l.current)),[r,w,b]);const _=Ba(()=>{requestAnimationFrame(()=>{var j;return(j=l.current)==null?void 0:j.setSize({width:d.current.width,height:d.current.height})})},500,{leading:!0,trailing:!0});return(t.height!==((S=l.current)==null?void 0:S.height)||t.width!==((C=l.current)==null?void 0:C.width))&&_(),r?null:u.jsx("div",{id:e,ref:c,className:Te(eZe.uplot,s)})}const $M=fe(null),Op=fe(e=>{const t=e(nee);return t==null?void 0:t+1}),tZe=fe(e=>{const t=e(Op),n=e(ese);return t!=null&&!!n.size}),[ese,nZe,tse,bx,rZe]=function(){const e=Co(new Set),t=fe(),n=fe();return[fe(r=>r(e)),fe(null,(r,i,o)=>{r(ol)&&i(e,a=>{o.forEach(s=>{a.add(s),i(t,l=>l?Math.min(l,s):s),i(n,l=>l?Math.max(l,s):s)})})}),fe(r=>r(t)),fe(r=>r(n)),fe(null,(r,i)=>{i(t,void 0),i(n,void 0),i(e,new Set)})]}(),[iZe,oZe,aZe]=function(){const e=Co(new Set);return[fe(t=>t(e)),fe(null,(t,n,r)=>{t(ol)&&n(e,i=>{r.forEach(o=>{i.add(o)})})}),fe(null,(t,n)=>{n(e,new Set)})]}();function nse(e,t,n,r){if(!n)return 0;const i=Math.ceil((e-t+1)/n);return Math.min(i-1,r)}function MM(e,t){return t==null?!1:e<=t}function RM(e,t){return t.has(e)}function LM(e,t){return t.has(e)}function b6(e,t,n){for(let r=t;r>=e;r--)if(n(r))return!0;return!1}function sZe(e,t,n,r,i,o,a){return o?tne:i?ene:b6(e,t,s=>!MM(s,n)&&!RM(s,r)&&!LM(s,a))?nne:b6(e,t,s=>!MM(s,n)&&RM(s,r))?ane:b6(e,t,s=>!MM(s,n)&&LM(s,a))?one:b6(e,t,s=>!RM(s,r)&&!LM(s,a))?ine:rne}const lZe=ca(),rse=4,uZe=rse;function cZe(e,t){return{hooks:{drawSeries:[n=>{const r=e.current.totalSlotsEstimate;if(r==null||!t.current)return;const i=n.ctx;i.save();const o=n.bbox.top,a=n.bbox.height,s=rse*window.devicePixelRatio,l=uZe*window.devicePixelRatio,c=s/2,d=Math.trunc((n.bbox.width+l)/(s+l)),f=r/d,{startSlot:p,repairSlots:v,latestReplaySlot:x,firstTurbineSlot:y,latestTurbineSlot:b,turbineSlots:w}=t.current,_=nse(b,p,f,d-1),S=nse(y,p,f,d-1),C=lZe.get($M);C==null||C.style.setProperty("--turbine-start-x",`${PM(S,s,l)/window.devicePixelRatio}px`),C==null||C.style.setProperty("--turbine-head-x",`${PM(_,s,l)/window.devicePixelRatio}px`);const j=new Map;for(let T=0;T<=_;T++){const E=T*f,$=p+Math.trunc(E),D=(T+1)*f,M=Math.min(b,p+Math.ceil(D)-1),O=PM(T,s,l),te=sZe($,M,x,v,T===S,T===_,w),q=j.get(te)??[];q.push(O),j.set(te,q)}for(const[T,E]of j.entries()){i.fillStyle=T,i.beginPath();for(const $ of E)i.roundRect($,o,s,a,c);i.fill()}i.restore()}]}}}function PM(e,t,n){return e*(t+n)}const dZe=[[0],[null]];function fZe({catchingUpRatesRef:e}){const[t,n]=Ss(),r=J(Op),i=J(iZe),o=J(ese),a=J(tse),s=J(bx),l=J(dp),c=m.useRef(),d=m.useRef(),f=m.useMemo(()=>({width:0,height:0,scales:{x:{time:!1}},axes:[{show:!1},{show:!1}],series:[{},{points:{show:!1}}],cursor:{x:!1,y:!1},legend:{show:!1},plugins:[cZe(e,c)]}),[c,e]);f.width=n.width,f.height=n.height;const p=m.useCallback(y=>{d.current=y},[]),v=m.useCallback(y=>{var b;c.current=y,(b=d.current)==null||b.redraw()},[]),x=Ba(v,100,{trailing:!0});if(m.useEffect(()=>{r==null||!o.size||a==null||s==null||x({startSlot:r,repairSlots:i,turbineSlots:o,firstTurbineSlot:a,latestTurbineSlot:s,latestReplaySlot:l})},[a,l,s,i,r,x,o]),!(r==null||!o.size||a==null||s==null))return u.jsx(Mt,{height:"77px",ref:t,children:u.jsx(Pp,{id:"catching-up-slot-bars",options:f,data:dZe,onCreate:p})})}const hZe="_card_1yavk_1",pZe="_secondary-color_1yavk_13",mZe="_bold_1yavk_17",gZe="_ellipsis_1yavk_21",vZe="_labels-row_1yavk_27",yZe="_labels-left_1yavk_39",bZe="_turbine-label_1yavk_46",xZe="_start_1yavk_54",_Ze="_head_1yavk_58",wZe="_footer-row_1yavk_64",kZe="_left-footer_1yavk_76",SZe="_footer-title_1yavk_83",CZe="_footer-value_1yavk_88",jZe="_bars-stats-container_1yavk_95",TZe="_bars-stats-row_1yavk_99",IZe="_replayed_1yavk_104",EZe="_speed_1yavk_111",NZe="_to-replay_1yavk_118",ur={card:hZe,secondaryColor:pZe,bold:mZe,ellipsis:gZe,labelsRow:vZe,labelsLeft:yZe,turbineLabel:bZe,start:xZe,head:_Ze,footerRow:wZe,leftFooter:kZe,footerTitle:SZe,footerValue:CZe,barsStatsContainer:jZe,barsStatsRow:TZe,replayed:IZe,speed:EZe,toReplay:NZe};function $Ze(){const e=J(Op);if(e)return u.jsxs(W,{className:ur.footerRow,children:[u.jsxs(W,{className:ur.leftFooter,children:[u.jsxs(Z,{className:Te(ur.footerValue,ur.ellipsis),children:[u.jsx(Z,{className:ur.secondaryColor,children:"Slot "}),e]}),u.jsx(Z,{className:Te(ur.footerTitle,ur.ellipsis),children:"Repair"})]}),u.jsx(Z,{className:Te(ur.rightFooter,ur.footerTitle,ur.ellipsis),children:"Turbine"})]})}function MZe(){const e=J(Op),t=J(tse),n=J(bx);if(!(e==null||t==null||n==null))return u.jsxs(W,{className:ur.labelsRow,children:[u.jsx(W,{justify:"end",flexShrink:"0",className:ur.labelsLeft,children:u.jsx(ise,{slot:t})}),u.jsx(W,{justify:"end",flexGrow:"1",minWidth:"0",className:ur.labelsRight,children:u.jsx(ise,{slot:n,isHead:!0})})]})}function ise({isHead:e=!1,slot:t}){const n=J($M),[r,{width:i}]=Ss();return m.useEffect(()=>{n==null||n.style.setProperty(e?"--turbine-head-label-width":"--turbine-start-label-width",`${i}px`)},[n,e,i]),u.jsxs(W,{ref:r,direction:"column",className:Te(ur.turbineLabel,e?ur.head:ur.start),children:[u.jsx(Z,{className:ur.bold,children:e?"Turbine Head":"Turbine Start"}),u.jsx(Z,{children:t})]})}const x6=1e4,ose=50,RZe=[Er.shred_published,Er.shred_replayed,Er.shred_received_repair,Er.shred_received_turbine,Er.shred_repair_request],LZe=[Er.shred_received_repair,Er.shred_published,Er.shred_replayed,Er.shred_received_turbine,Er.shred_repair_request],PZe={"Repair Requested":wN,"Received Turbine":kN,"Received Repair":SN,"Replayed Turbine":CN,"Replayed Repair":jN,"Replayed Nothing":TN,Skipped:IN,Published:EN};function OZe(){const e=fe(),t=fe(),n=fe(),r=fe(i=>{const o=i(n),a=i(bG);if(!(!o||a==null)&&!(a+1>o.max))return{min:Math.max(a+1,o.min),max:o.max}});return{minCompletedSlot:fe(i=>i(e)),range:fe(i=>i(n)),rangeAfterStartup:r,groupLeaderSlots:fe(i=>{const o=i(r);if(!o)return[];const a=[_i(o.min)];for(;a[a.length-1]+$n-1i(t)),addShredEvents:fe(null,(i,o,{reference_slot:a,reference_ts:s,slot_delta:l,shred_idx:c,event:d,event_ts_delta:f})=>{let p=i(n),v=i(e);o(t,x=>{const y=x??{referenceTs:Math.round(Number(s)/sN),slots:new Map};for(let b=0;b{if(a){o(n,void 0),o(e,void 0),o(t,void 0);return}o(t,l=>{const c=i(n),d=i(Cre)??Date.now();if(!l||!c)return l;if(s)for(let p=c.min;p<=c.max;p++){const v=l.slots.get(p);v&&(v.maxEventTsDelta==null||ase(v.maxEventTsDelta,d,l.referenceTs))&&l.slots.delete(p)}else{let p=c.min;if(c.max-c.min>50){for(let x=p;x<=c.max-50;x++)l.slots.get(x)&&l.slots.delete(x);p=c.max-50}let v=!1;for(let x=c.max;x>=p;x--){const y=l.slots.get(x);if((y==null?void 0:y.maxEventTsDelta)!=null){if(!v&&y.completionTsDelta!=null&&ase(y.completionTsDelta,d,l.referenceTs)){v=!0;continue}v&&l.slots.delete(x)}}}const f=l.slots.keys();return o(n,p=>{if(!(!p||!l.slots.size))return{min:Math.min(...f),max:p.max}}),l})})}}function ase(e,t,n){const r=t-n,i=x6+ose;return r-e>i}const xx=OZe();function zZe(e,t,n){const r=n??new Array;return r[e]=Math.min(t,r[e]??t),r}function DZe(e,t,n,r){const i=r??{shreds:[]};return i.minEventTsDelta=Math.min(n,i.minEventTsDelta??n),i.maxEventTsDelta=Math.max(n,i.maxEventTsDelta??n),t===Er.slot_complete?(i.completionTsDelta=Math.min(n,i.completionTsDelta??n),i):e==null?(console.error("Missing shred ID"),i):(i.shreds[e]=zZe(t,n,i.shreds[e]),i)}function sse(e){return`slot-group-label-${_i(e)}`}function lse(e){return`slot-label-${e}`}const sh=ca(),zp="shredsXScaleKey";function AZe(e){const t=[];function n(){const r=Date.now(),i=sh.get(Cre);if(i){const a=r-i;for(t.push(a);t.length>20;)t.shift()}const o=t.length?rt.sum(t)/t.length:void 0;return(o==null?i??r:r-o)-ose}return{hooks:{draw:[r=>{e&&FZe(r);const i=xx,o=sh.get(i.slotsShreds),a=sh.get(i.range),s=sh.get(i.minCompletedSlot),l=sh.get(Ik),c=sh.get(i.rangeAfterStartup),{min:d,max:f}=r.scales[zp];if(!o||!a||d==null||f==null||!e&&(sh.get(ol)||s==null||!c))return;const p=n()-o.referenceTs,v=f-d,x={minDeltaTs:p-v,maxDeltaTs:p,minCanvasPos:r.bbox.left,maxCanvasPos:r.bbox.left+r.bbox.width,minCssPos:r.valToPos(d,zp,!1),maxCssPos:r.valToPos(f,zp,!1)},y=e?a.min:Math.max(a.min,s??a.min),b=a.max,{maxShreds:w,orderedSlotNumbers:_}=UZe(y,b,o,x),S=e?Math.trunc(r.bbox.height/3):r.bbox.height,C=e?M=>{switch(M){case Er.shred_received_turbine:case Er.shred_published:return 0;case Er.shred_repair_request:case Er.shred_received_repair:return S;case Er.shred_replayed:return S*2}}:void 0,j=rt.clamp(S/w,1,10),T=1,E=Math.max(j,3),$=Math.trunc((S+T)/(j+T)),D=w/$;r.ctx.save(),r.ctx.rect(r.bbox.left,r.bbox.top,r.bbox.width,r.bbox.height),r.ctx.clip();for(const M of _){const O={},te=(X,A)=>{O[X]??(O[X]=[]),O[X].push(A)},q=o.slots.get(M);if(!q)continue;const P=l.has(M);for(let X=0;X<$;X++){const A=X*D,Y=Math.trunc(A),F=(X+1)*D,H=Math.min(w,Math.ceil(F)-1);BZe({addEventPosition:te,firstShredIdx:Y,lastShredIdx:H,shreds:q.shreds,slotCompletionTsDelta:q.completionTsDelta,isSlotSkipped:P,drawOnlyDots:e,y:(j+T)*X+r.bbox.top,getYOffset:C,xRange:x})}for(const X of Object.keys(O)){r.ctx.beginPath(),r.ctx.fillStyle=X;for(const[A,Y,F]of O[X])F==null?r.ctx.rect(A,Y,E,E):r.ctx.rect(A,Y,F,j);r.ctx.fill()}}r.ctx.restore(),!e&&c&&HZe(c,o.slots,l,r,x)}]}}}function FZe(e){e.ctx.save(),e.ctx.strokeStyle=_N,e.ctx.lineWidth=1,e.ctx.beginPath();const t=e.bbox.left,n=e.bbox.left+e.bbox.width;for(let r=0;r<3;r++)e.ctx.moveTo(t,e.bbox.top+e.bbox.height*r/3),e.ctx.lineTo(n,e.bbox.top+e.bbox.height*r/3);e.ctx.stroke(),e.ctx.restore()}function UZe(e,t,n,r){const i=[];let o=0;for(let a=e;a<=t;a++){const s=n.slots.get(a);!(s!=null&&s.shreds.length)||s.minEventTsDelta==null||s.minEventTsDelta>r.maxDeltaTs||s.completionTsDelta!=null&&s.completionTsDelta=p)continue;const w=(l==null?void 0:l(x))??0;v.set(x,o||a?[b,s+w]:[b,s+w,p-b]),p=b}for(const[x,y]of v.entries()){if(a){e(IN,y);continue}switch(x){case Er.shred_repair_request:{e(wN,y);break}case Er.shred_received_turbine:{e(kN,y);break}case Er.shred_received_repair:{e(SN,y);break}case Er.shred_replayed:{v.has(Er.shred_received_repair)?e(jN,y):v.has(Er.shred_received_turbine)?e(CN,y):e(TN,y);break}case Er.shred_published:e(EN,y)}}}function WZe(e,t,n){for(const r of LZe){const i=VZe(e,t,n,o=>(o==null?void 0:o[r])!=null);if(i!==-1)return i}return e}function VZe(e,t,n,r){for(let i=e;is+r).reduce((a,s)=>(a.length===0&&!(s in e)||s in e&&e[s]===void 0||a.push(s),a),[]);if(i.length===0)continue;const o=i.reduce((a,s)=>{var d,f;const l=(d=e[s])==null?void 0:d[0],c=(f=e[s])==null?void 0:f[1];return l!=null&&(a[0]=Math.min(a[0],l)),a[1]=a[1]===void 0||c===void 0?void 0:Math.max(c,a[1]),a},[1/0,-1/0]);n[r]=o}return n}function dse(e,t){if(!e)return;const n=_6(e[0],t,!1),r=e[1];if(r==null)return[n,void 0];const i=_6(r,t,!1);return[n,i-n]}function fse(e,t,n,r){const i=e?"--group-x":"--slot-x";if(!t){r.style.setProperty(i,"-100000px");return}const[o,a]=t;r.style.setProperty(i,`${o-(e?1:0)}px`);const s=a??n-o+1;r.style.width=`${s+(e?1*2:0)}px`;const l=a==null;e&&r.style.setProperty("--group-name-opacity",l?"0":"1")}const YZe="_slot-group-label_mfowj_1",KZe="_you_mfowj_13",XZe="_slot-group-top-container_mfowj_17",JZe="_skipped_mfowj_21",QZe="_slot-group-name-container_mfowj_25",eqe="_name_mfowj_30",tqe="_slot-bars-container_mfowj_41",nqe="_slot-bar_mfowj_41",rqe="_legend-color-box_mfowj_72",iqe="_legend-label_mfowj_78",lu={slotGroupLabel:YZe,you:KZe,slotGroupTopContainer:XZe,skipped:JZe,slotGroupNameContainer:QZe,name:eqe,slotBarsContainer:tqe,slotBar:nqe,legendColorBox:rqe,legendLabel:iqe};function OM(e){const t=J(fi);if(!t)return;const n=e-t.start_slot,r=Math.trunc(n/4);return t.staked_pubkeys[t.leader_slots[r]]}function zM(e){var s,l,c,d;const t=(s=e==null?void 0:e.gossip)==null?void 0:s.version,n=(l=e==null?void 0:e.gossip)==null?void 0:l.client_id,r=(n?qte[n]:void 0)??(t?t[0]==="0"?za.Frankendancer:za.Agave:void 0),i=(c=e==null?void 0:e.gossip)==null?void 0:c.country_code,o=Oze(i),a=(d=e==null?void 0:e.gossip)==null?void 0:d.city_name;return m.useMemo(()=>({client:r,version:t,countryCode:i,countryFlag:o,cityName:a}),[a,r,i,o,t])}function ma(e){var f;const t=J(cp),n=OM(e),r=Hk(n??""),i=t===n,o=((f=r==null?void 0:r.info)==null?void 0:f.name)??"Private",{version:a,client:s,countryCode:l,countryFlag:c,cityName:d}=zM(r);return{pubkey:n,peer:r,isLeader:i,name:o,client:s,version:a,countryCode:l,countryFlag:c,cityName:d}}function oqe(){const e=J(V3),t=J(xx.groupLeaderSlots);if(!e)return u.jsx(W,{flexShrink:"0",overflowX:"hidden",position:"relative",height:"15px",children:t.map(n=>u.jsx(aqe,{firstSlot:n},n))})}function aqe({firstSlot:e}){var s;const{peer:t,name:n,isLeader:r}=ma(e),i=m.useMemo(()=>Array.from({length:$n},(l,c)=>e+c),[e]),o=J(Ik),a=m.useMemo(()=>{const l=new Set;for(const c of i)o.has(c)&&l.add(c);return l},[i,o]);return u.jsxs(W,{height:"100%",minHeight:"0",direction:"column",gap:"2px",position:"absolute",id:sse(e),className:Te(lu.slotGroupLabel,{[lu.you]:r}),children:[u.jsx(W,{justify:"center",flexGrow:"1",minHeight:"0",minWidth:"0",px:"2px",className:Te(lu.slotGroupTopContainer,{[lu.skipped]:a.size>0}),children:u.jsxs(W,{align:"center",gap:"4px",minWidth:"0",className:lu.slotGroupNameContainer,children:[u.jsx(ks,{url:(s=t==null?void 0:t.info)==null?void 0:s.icon_url,size:10,isYou:r,hideTooltip:!0}),u.jsx(Z,{className:lu.name,children:n})]})}),u.jsx(W,{height:"2px",position:"relative",className:lu.slotBarsContainer,children:i.map(l=>u.jsx("div",{className:Te(lu.slotBar,{[lu.skipped]:a.has(l)}),id:lse(l)},l))})]})}const sqe=40,DM=15,AM={min:200,max:1600},lqe=e=>{const t=e*AM.max,n=[Math.trunc(t/AM.min)*AM.min];for(;n[n.length-1]{c.current=w},[]),[x,y]=m.useMemo(()=>[[[Math.trunc(l*-x6),0],new Array(2)],lqe(l)],[l]);m.useEffect(()=>{c.current&&(c.current.axes[0].incrs=()=>y,c.current.setData(x,!0))},[x,y]);const b=m.useMemo(()=>({padding:[0,DM,0,DM],width:0,height:0,scales:{[zp]:{time:!1},y:{time:!1,range:[0,1]}},series:[{scale:zp},{}],cursor:{show:!1,drag:{[zp]:!1,y:!1}},legend:{show:!1},axes:[{scale:zp,incrs:y,size:30,ticks:{opacity:.2,stroke:sr,size:5,width:1/devicePixelRatio},values:(w,_)=>_.map(S=>S===0?"now":`${(S/1e3).toFixed(1)}s`),grid:{stroke:_N,width:1/devicePixelRatio},stroke:xN},{size:0,grid:{filter:()=>[0],stroke:xN,width:1}}],plugins:[AZe(t)]}),[t,y]);return b.width=p.width,b.height=p.height,Aie(w=>{var _;c&&(d.current==null||w-d.current>=sqe)&&(d.current=w,(_=c.current)==null||_.redraw(!0,!1))}),u.jsxs(W,{direction:"column",gap:"2px",...n,children:[!t&&u.jsx(oqe,{}),u.jsx(Mt,{flexGrow:"1",minHeight:"0",mx:`-${DM}px`,ref:f,children:u.jsx(Pp,{id:e,options:b,data:x,onCreate:v})})]})}const uqe="_card_1vnw5_1",cqe="_narrow_1vnw5_7",pse={card:uqe,narrow:cqe};function so({children:e,hideChildren:t,isNarrow:n=!1,...r}){return u.jsx("div",{...r,className:Te(pse.card,n&&pse.narrow,r.className),children:!t&&e})}const dqe="_header_10qjn_1",fqe="_full-width_10qjn_5",hqe="_dark_10qjn_9",pqe="_subHeader_10qjn_14",mqe="_tile-container_10qjn_20",gqe="_tile_10qjn_20",Dp={header:dqe,fullWidth:fqe,dark:hqe,subHeader:pqe,tileContainer:mqe,tile:gqe},vqe="_stat-container_1hzk8_1",yqe="_label_1hzk8_10",bqe="_value-container_1hzk8_15",xqe="_value_1hzk8_15",w6={statContainer:vqe,label:yqe,valueContainer:bqe,value:xqe};var FM={exports:{}},Qg=typeof Reflect=="object"?Reflect:null,mse=Qg&&typeof Qg.apply=="function"?Qg.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)},k6;Qg&&typeof Qg.ownKeys=="function"?k6=Qg.ownKeys:Object.getOwnPropertySymbols?k6=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:k6=function(e){return Object.getOwnPropertyNames(e)};function _qe(e){console&&console.warn&&console.warn(e)}var gse=Number.isNaN||function(e){return e!==e};function cr(){cr.init.call(this)}FM.exports=cr,FM.exports.once=Cqe,cr.EventEmitter=cr,cr.prototype._events=void 0,cr.prototype._eventsCount=0,cr.prototype._maxListeners=void 0;var vse=10;function S6(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(cr,"defaultMaxListeners",{enumerable:!0,get:function(){return vse},set:function(e){if(typeof e!="number"||e<0||gse(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");vse=e}}),cr.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},cr.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||gse(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function yse(e){return e._maxListeners===void 0?cr.defaultMaxListeners:e._maxListeners}cr.prototype.getMaxListeners=function(){return yse(this)},cr.prototype.emit=function(e){for(var t=[],n=1;n0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var s=i[e];if(s===void 0)return!1;if(typeof s=="function")mse(s,this,t);else for(var l=s.length,c=kse(s,l),n=0;n0&&a.length>i&&!a.warned){a.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=a.length,_qe(s)}return e}cr.prototype.addListener=function(e,t){return bse(this,e,t,!1)},cr.prototype.on=cr.prototype.addListener,cr.prototype.prependListener=function(e,t){return bse(this,e,t,!0)};function wqe(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function xse(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=wqe.bind(r);return i.listener=n,r.wrapFn=i,i}cr.prototype.once=function(e,t){return S6(t),this.on(e,xse(this,e,t)),this},cr.prototype.prependOnceListener=function(e,t){return S6(t),this.prependListener(e,xse(this,e,t)),this},cr.prototype.removeListener=function(e,t){var n,r,i,o,a;if(S6(t),r=this._events,r===void 0)return this;if(n=r[e],n===void 0)return this;if(n===t||n.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if(typeof n!="function"){for(i=-1,o=n.length-1;o>=0;o--)if(n[o]===t||n[o].listener===t){a=n[o].listener,i=o;break}if(i<0)return this;i===0?n.shift():kqe(n,i),n.length===1&&(r[e]=n[0]),r.removeListener!==void 0&&this.emit("removeListener",e,a||t)}return this},cr.prototype.off=cr.prototype.removeListener,cr.prototype.removeAllListeners=function(e){var t,n,r;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var i=Object.keys(n),o;for(r=0;r=0;r--)this.removeListener(e,t[r]);return this};function _se(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?Sqe(i):kse(i,i.length)}cr.prototype.listeners=function(e){return _se(this,e,!0)},cr.prototype.rawListeners=function(e){return _se(this,e,!1)},cr.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):wse.call(e,t)},cr.prototype.listenerCount=wse;function wse(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}cr.prototype.eventNames=function(){return this._eventsCount>0?k6(this._events):[]};function kse(e,t){for(var n=new Array(t),r=0;r{const r=i=>n.current(i);return t.addListener(UM,r),()=>{t.removeListener(UM,r)}},[t])}const Eqe=Gf((e,t,n)=>rt.throttle(()=>{switch(n){case"publish":{e({topic:"slot",key:"query",id:1,params:{slot:t}});break}case"detailed":{e({topic:"slot",key:"query_detailed",id:2,params:{slot:t}});break}case"transactions":{e({topic:"slot",key:"query_transactions",id:3,params:{slot:t}});break}}},5e3,{trailing:!1}),{maxSize:250});function WM(e,t,n){const r=C6(),i=J(wDe(e)),o=m.useCallback(()=>{!e||i||n||Eqe(r,e,t)()},[t,i,e,n,r]);m.useEffect(()=>{const l=setTimeout(()=>o(),250);return()=>{clearTimeout(l)}},[o]);const[a,s]=m.useState(!0);return ix(()=>{setTimeout(()=>s(!1),3e3)}),{hasWaitedForData:!a}}function Is(e){const t=J(KN(e)),n=!!t,{hasWaitedForData:r}=WM(e,"publish",n);return{publish:t,hasWaitedForData:r}}function tc(e){const t=J(hre(e)),n=!!(t!=null&&t.waterfall)&&!!(t!=null&&t.tile_timers)&&!!(t!=null&&t.tile_primary_metric)&&!!t.scheduler_counts&&!!t.scheduler_stats&&!!t.limits,{hasWaitedForData:r}=WM(e,"detailed",n);return{response:t,hasWaitedForData:r}}function pl(e){const t=J(hre(e)),n=!!(t!=null&&t.transactions),{hasWaitedForData:r}=WM(e,"transactions",n);return{response:t,hasWaitedForData:r}}function Nqe({type:e,label:t}){var l,c,d;const n=J(Cn),r=!n,i=J(SG),o=tc(r?void 0:n),a=r?(l=i==null?void 0:i.tile_primary_metric)==null?void 0:l[e]:(d=(c=o.response)==null?void 0:c.tile_primary_metric)==null?void 0:d[e],s=e==="net_in"||e==="net_out"?{minWidth:"55px"}:void 0;return u.jsxs("div",{className:w6.statContainer,children:[u.jsx(Z,{className:w6.label,children:t}),u.jsx("div",{className:w6.valueContainer,style:s,children:u.jsx(Z,{className:w6.value,children:$qe(e,a)})})]})}function $qe(e,t){if(t===void 0||t===-1)return"-";if(e==="net_in"||e==="net_out"){const n=t*8,r=Sp(t*8,{precision:n>1e9?2:0}),i=Number(r.value);if(!t)return"0";const o=r.unit.replace("B","b");return`${i} ${o}/s`}if(e==="bundle_rx_delay_millis_p90"||e==="bundle_rtt_smoothed_millis")return`${Math.max(1,Math.round(t))} ms`;if(e==="verify"||e==="dedup"||e==="pack"){if(t<.01&&t>0)return`${(t*100).toFixed(2)}%`;{const n=t*100;return`${Math.trunc(n)}%`}}return t.toLocaleString()}const Mqe="_btn_1lb0v_1",Rqe={btn:Mqe};let VM=!1;function Lqe({children:e,tileCountArr:t,liveBusyPerTile:n,queryIdlePerTile:r,width:i,header:o,isExpanded:a,setIsExpanded:s}){return t.length>1?u.jsxs(QZ,{open:a,onOpenChange:l=>{VM||(s(l),VM=!0,setTimeout(()=>VM=!1,10))},defaultOpen:!1,children:[u.jsx(eq,{children:a?u.jsx("div",{}):u.jsx(hs,{className:Rqe.btn,children:e})}),u.jsx(tq,{width:`${i}px`,size:"1",side:"top",sideOffset:-17,align:"center",children:u.jsxs(W,{gap:"3",direction:"column",children:[o,n?n.map((l,c)=>u.jsx(Pqe,{busy:l},c)):t==null?void 0:t.map((l,c)=>{const d=r==null?void 0:r.map(f=>f[c]!==void 0&&f[c]!==-1?1-f[c]:void 0).filter(Cb);if(d!=null&&d.length)return u.jsxs(W,{children:[u.jsx(cx,{history:d}),u.jsx(Xk,{busy:rt.mean(d)})]},c)})]})})]}):u.jsx(W,{gap:"1",children:e})}function Pqe({busy:e}){const t=Z$(e);return u.jsxs(W,{children:[u.jsx(cx,{value:t}),u.jsx(Xk,{busy:t})]})}function Wa({header:e,subHeader:t,tileCount:n,statLabel:r,liveIdlePerTile:i,queryIdlePerTile:o,metricType:a,sparklineHeight:s,isExpanded:l=!1,setIsExpanded:c=()=>{},isDark:d=!1,isNarrow:f}){const[p,{width:v}]=Ss(),x=J(Cn)===void 0,{avgBusy:y,aggQueryBusyPerTs:b,tileCountArr:w,liveBusyPerTile:_,busy:S}=poe({isLive:x,tileCount:n,liveIdlePerTile:i,queryIdlePerTile:o}),C=Z$(y);return u.jsx(W,{ref:p,children:u.jsx(so,{className:Te(Dp.fullWidth,d&&Dp.dark),isNarrow:f,children:u.jsxs(W,{direction:"column",justify:"between",height:"100%",gap:"1",children:[u.jsx(Tse,{header:e,subHeader:t,statLabel:r,metricType:a}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(cx,{value:b===void 0?C:void 0,history:b,height:s,background:d?vk:void 0}),u.jsxs(Lqe,{tileCountArr:w,liveBusyPerTile:_,queryIdlePerTile:o,width:v,header:u.jsx(Tse,{header:e,subHeader:t,statLabel:r,metricType:a}),isExpanded:l,setIsExpanded:c,children:[u.jsx("div",{className:Dp.tileContainer,children:w.map((j,T)=>{const E=S==null?void 0:S[T];return E===void 0?u.jsx("div",{className:Dp.tile,style:{background:d?"#232A38":"gray"}},T):u.jsx("div",{className:Dp.tile,style:{"--busy":`${E*100}%`}},T)})}),u.jsx(Xk,{busy:C})]})]})})})}function Tse({header:e,subHeader:t,metricType:n,statLabel:r}){return u.jsxs(W,{justify:"between",gap:"1",children:[u.jsxs(W,{direction:"column",gap:"0",children:[u.jsx(Z,{className:Dp.header,children:e}),t&&u.jsx(Z,{className:Dp.subHeader,children:t})]}),n&&u.jsx(Nqe,{type:n,label:r})]})}function HM(){var s;const e=J(Cn),t=!e,n=J(rg),r=J(Nb),i=J(Hze),o=tc(e),a=m.useMemo(()=>{var l,c;if(!(!((c=(l=o.response)==null?void 0:l.tile_timers)!=null&&c.length)||t||!n))return o.response.tile_timers.reduce((d,f)=>{var v;if(!f.tile_timers.length)return d;const p={};f.tile_timers.length!==n.length&&console.warn("Length mismatch between tiles and time timers",f.tile_timers,n);for(let x=0;xu.jsx(Wa,{header:s,tileCount:r[s],liveIdlePerTile:i==null?void 0:i[s],queryIdlePerTile:o||a==null?void 0:a[s],statLabel:"",sparklineHeight:Oqe,isExpanded:n,setIsExpanded:t},s))})}function Aqe(){const e=m.useRef({}),t=J(Op),n=J(bx),r=J(dp),i=r??(t==null?void 0:t-1),o=Bg(i),a=Bg(n);return e.current.replaySlotsPerSecond=o,e.current.turbineSlotsPerSecond=a,m.useEffect(()=>{if(t==null||n==null||e.current.totalSlotsEstimate!=null)return;const s=Ise(400,100,t,r,n);e.current={totalSlotsEstimate:s}},[r,n,t,e]),Qu(()=>{const s=e.current.totalSlotsEstimate;if(t==null||n==null||s==null||o==null||a==null)return;const l=Ise(o,a,t,r,n),c=r==null||l==null?void 0:l+t-1-r,d=o===0||c==null?void 0:c/o;if(e.current.remainingSeconds=d,!l||l>=s)return;const f=Math.min(.15*s,s-l),p=s-f;e.current.totalSlotsEstimate=p},500),e}function Ise(e,t,n,r,i){const o=r??n-1;if(o===i)return i-n;if(e<=t)return;const a=o-n+1,s=e*(i-o)/(e-t);return a+s}function Fqe({catchingUpRates:e}){const t=J(Op),n=J(bx),r=J(dp),i=e.replaySlotsPerSecond,o=e.turbineSlotsPerSecond,a=i==null||o==null?void 0:Math.round(i-o);return u.jsxs(Mt,{mt:"3px",className:ur.barsStatsContainer,children:[u.jsxs(W,{justify:"between",className:ur.barsStatsRow,children:[u.jsx(j6,{className:ur.replayed,value:r==null||t==null?void 0:r-t+1,label:"Slots Replayed"}),u.jsx(j6,{className:ur.toReplay,value:r==null||n==null?void 0:n-r,label:"Slots Remaining"})]}),u.jsxs(W,{justify:"between",className:ur.barsStatsColumn,children:[u.jsx(j6,{className:ur.speed,value:i,label:"Slots/s Replay Speed"}),u.jsx(j6,{className:ur.speed,value:a,label:"Slots/s Catchup Speed"})]})]})}function j6({value:e,label:t,className:n}){const r=e===void 0?"--":e.toLocaleString(void 0,{maximumFractionDigits:0});return u.jsxs(Z,{truncate:!0,className:n,children:[u.jsxs(Z,{className:ur.bold,children:[r," "]}),t]})}function Ese(){return u.jsx(W,{gapX:"15px",gapY:"5px",wrap:"wrap",children:Object.entries(PZe).map(([e,t])=>u.jsxs(W,{gap:"5px",flexShrink:"0",children:[u.jsx("div",{className:lu.legendColorBox,style:{backgroundColor:t}}),u.jsx(Z,{className:lu.legendLabel,children:e})]},e))})}function Uqe(){const e=Ee($M),t=J(tZe),n=Aqe(),r=J(Op),i=J(bx),o=J(dp),a=m.useMemo(()=>{if(r==null||i==null||o==null)return 0;const l=i-r+1;if(!l)return 0;const c=o-r+1;return rt.clamp(c/l,0,1)},[o,i,r]),s=Soe(a);return u.jsxs(u.Fragment,{children:[u.jsx(Q$,{phaseCompleteFraction:a,overallCompleteFraction:s,remainingSeconds:n.current.remainingSeconds}),u.jsxs(W,{direction:"column",mt:"8px",gap:"8px",className:yd.startupContentIndentation,children:[t&&u.jsxs(W,{ref:e,direction:"column",gap:"5px",children:[u.jsx(MZe,{}),u.jsx(fZe,{catchingUpRatesRef:n}),u.jsx($Ze,{}),u.jsx(Fqe,{catchingUpRates:n.current})]}),u.jsxs(W,{direction:"column",className:ur.card,mb:"14px",children:[u.jsxs(W,{gapX:"15px",gapY:"2",align:"center",wrap:"wrap",children:[u.jsx(Z,{className:ur.title,children:"Shreds"}),u.jsx(Ese,{})]}),u.jsx(hse,{flexGrow:"1",minHeight:"280px",chartId:"catching-up-shreds",isOnStartupScreen:!0})]}),u.jsx(Dqe,{})]})]})}const Bqe="_secondary-color_1cuvx_1",Wqe="_card_1cuvx_5",Vqe="_pie-chart-title_1cuvx_18",Hqe="_pie-chart-container_1cuvx_24",Zqe="_pie-chart_1cuvx_18",qqe="_shimmer_1cuvx_58",Gqe="_threshold-marker_1cuvx_43",Yqe="_marker-line_1cuvx_47",Kqe="_marker-icon_1cuvx_51",Xqe="_overlay_1cuvx_74",Jqe="_pie-chart-content_1cuvx_86",Qqe="_lg_1cuvx_93",eGe="_eighty_1cuvx_97",tGe="_details-box_1cuvx_103",nGe="_copyButton_1cuvx_105",rGe="_label_1cuvx_111",iGe="_snapshot-source_1cuvx_116",wi={secondaryColor:Bqe,card:Wqe,pieChartTitle:Vqe,pieChartContainer:Hqe,pieChart:Zqe,shimmer:qqe,thresholdMarker:Gqe,markerLine:Yqe,markerIcon:Kqe,overlay:Xqe,pieChartContent:Jqe,lg:Qqe,eighty:eGe,detailsBox:tGe,copyButton:nGe,label:rGe,snapshotSource:iGe},oGe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("circle",{cx:12,cy:12,r:8})),aGe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6 2.69-6 6-6m0-2c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8z"})),sGe="_container_1vhtf_1",lGe="_horizontal_1vhtf_4",uGe="_vertical_1vhtf_9",cGe="_table-card_1vhtf_15",dGe="_narrow_1vhtf_21",fGe="_rows-container_1vhtf_26",hGe="_row_1vhtf_26",pGe="_xnarrow_1vhtf_44",mGe="_online_1vhtf_48",gGe="_pubkey-text_1vhtf_51",vGe="_peer_1vhtf_56",yGe="_status_1vhtf_62",bGe="_version_1vhtf_66",xGe="_client-icon_1vhtf_66",_Ge="_client-icon-placeholder_1vhtf_66",wGe="_suffix_1vhtf_70",kGe="_offline_1vhtf_75",SGe="_header-row_1vhtf_92",CGe="_toggle-row_1vhtf_97",jGe="_cell_1vhtf_116",TGe="_header_1vhtf_92",IGe="_pubkey_1vhtf_51",EGe="_stake_1vhtf_174",NGe="_stake-pct_1vhtf_187",un={container:sGe,horizontal:lGe,vertical:uGe,tableCard:cGe,narrow:dGe,rowsContainer:fGe,row:hGe,xnarrow:pGe,online:mGe,pubkeyText:gGe,peer:vGe,status:yGe,version:bGe,clientIcon:xGe,clientIconPlaceholder:_Ge,suffix:wGe,offline:kGe,headerRow:SGe,toggleRow:CGe,cell:jGe,header:TGe,pubkey:IGe,stake:EGe,stakePct:NGe},$Ge="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='%23111113'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3c/svg%3e",MGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='%23111113'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='%23111113'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cg%20clip-path='url(%23clip0_474_23049)'%3e%3cpath%20d='M39.3846%2011.9422C39.3846%207.91449%2036.1195%204.64941%2032.0918%204.64941C28.0641%204.64941%2024.7991%207.91449%2024.7991%2011.9422C24.7991%2015.9698%2028.0641%2019.2349%2032.0918%2019.2349C36.1195%2019.2349%2039.3846%2015.9698%2039.3846%2011.9422Z'%20fill='white'/%3e%3cpath%20d='M32.0907%2017.6901C35.3062%2017.6901%2037.9129%2015.0834%2037.9129%2011.8678C37.9129%208.65226%2035.3062%206.04553%2032.0907%206.04553C28.8751%206.04553%2026.2684%208.65226%2026.2684%2011.8678C26.2684%2015.0834%2028.8751%2017.6901%2032.0907%2017.6901Z'%20fill='white'%20stroke='%23000000F2'%20stroke-width='0.540037'/%3e%3cpath%20d='M32.6719%2010.4479C32.2543%2010.7361%2031.8053%2010.8349%2031.3257%2010.7436C30.8452%2010.6529%2030.4636%2010.4018%2030.1799%209.99083L29.7579%209.3793L30.3633%208.96143L30.7854%209.57296C30.9533%209.81627%2031.1774%209.96374%2031.4585%2010.0148C31.7388%2010.0665%2032.0029%2010.0068%2032.249%209.83693L33.3171%209.09511C33.6566%208.85936%2034.123%208.94414%2034.3578%209.2843L32.6719%2010.4479Z'%20fill='%23000000F2'/%3e%3cpath%20d='M33.4893%2012.4798C33.2006%2012.0614%2033.1011%2011.6119%2033.1914%2011.1321C33.2812%2010.6515%2033.5315%2010.27%2033.9417%209.98692L34.552%209.56567L34.9707%2010.1723L34.3603%2010.5935C34.1175%2010.7611%2033.9705%2010.9851%2033.92%2011.2664C33.8688%2011.5468%2033.9289%2011.8111%2034.0991%2012.0577L34.8439%2013.1301C35.0793%2013.469%2034.9946%2013.9345%2034.6551%2014.1689L33.4893%2012.4798Z'%20fill='%23000000F2'/%3e%3cpath%20d='M31.4498%2013.3013C31.8674%2013.013%2032.3164%2012.9143%2032.796%2013.0055C33.2764%2013.0962%2033.6581%2013.3473%2033.9417%2013.7583L34.3638%2014.3698L33.7584%2014.7877L33.3363%2014.1762C33.1684%2013.9329%2032.9442%2013.7854%2032.6631%2013.7343C32.3828%2013.6827%2032.1188%2013.7423%2031.8726%2013.9122L30.8045%2014.654C30.4651%2014.8898%2029.9986%2014.805%2029.7639%2014.4648L31.4498%2013.3013Z'%20fill='%23000000F2'/%3e%3cpath%20d='M30.6689%2011.3224C30.9576%2011.7408%2031.0571%2012.1903%2030.9668%2012.6701C30.877%2013.1507%2030.6267%2013.5321%2030.2165%2013.8152L29.6062%2014.2365L29.1875%2013.6299L29.7979%2013.2086C30.0407%2013.041%2030.1877%2012.817%2030.2383%2012.5358C30.2894%2012.2554%2030.2293%2011.9911%2030.0591%2011.7445L29.3143%2010.672C29.0789%2010.3332%2029.1636%209.86764%2029.5031%209.6333L30.6689%2011.3224Z'%20fill='%23000000F2'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_474_23049'%3e%3crect%20width='15'%20height='15'%20fill='white'%20transform='translate(24.5%204.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",RGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cg%20clip-path='url(%23clip0_bam)'%3e%3cg%20transform='translate(25.5%204.5)%20scale(0.1%200.10204)'%3e%3cpath%20d='M124.208%2034.2304C125.338%2034.8826%20125.338%2035.939%20124.208%2036.5912L100.697%2050.1653C99.5673%2050.8175%2097.7375%2050.8175%2096.6079%2050.1653L85.4912%2043.7471C83.8097%2042.7763%2081.0548%2042.6789%2079.3221%2043.6202C77.5894%2044.5616%2077.5025%2046.217%2079.2301%2047.2144L90.4746%2053.7064C91.6041%2054.3586%2091.6041%2055.415%2090.4746%2056.0672L66.9634%2069.6413C65.8338%2070.2935%2064.0041%2070.2935%2062.8745%2069.6413L5.62989%2036.5912C4.50034%2035.939%204.50033%2034.8826%205.62989%2034.2304L62.8694%201.18319C63.9989%200.531042%2065.8338%200.528091%2066.9634%201.18024L124.208%2034.2304ZM58.7805%2037.7745C57.0887%2036.7977%2054.3389%2036.7977%2052.6471%2037.7745L49.5805%2039.545C47.8887%2040.5218%2047.8887%2042.1094%2049.5805%2043.0861C51.2722%2044.0629%2054.022%2044.0629%2055.7138%2043.0861L58.7805%2041.3156C60.4723%2040.3388%2060.4723%2038.7512%2058.7805%2037.7745ZM78.2028%2026.561C76.511%2025.5843%2073.7612%2025.5843%2072.0694%2026.561L69.0027%2028.3316C67.311%2029.3083%2067.3109%2030.8959%2069.0027%2031.8727C70.6945%2032.8494%2073.4443%2032.8494%2075.1361%2031.8727L78.2028%2030.1021C79.8945%2029.1254%2079.8945%2027.5378%2078.2028%2026.561Z'%20fill='white'/%3e%3cpath%20d='M59.2891%2076.1449L2.04445%2043.0947C0.914891%2042.4425%200%2042.9707%200%2044.275V110.375C0%20111.674%200.914891%20113.264%202.04445%20113.916L24.5334%20126.9C25.663%20127.553%2026.5779%20127.024%2026.5779%20125.72V108.162C26.5779%20106.226%2027.871%20105.285%2029.5423%20106.185C31.2136%20107.085%2032.7112%20109.555%2032.7112%20111.556V129.261C32.7112%20130.566%2033.6261%20132.15%2034.7557%20132.802L59.2891%20146.967C60.4135%20147.616%2061.3335%20147.085%2061.3335%20145.786V79.6859C61.3335%2078.3816%2060.4135%2076.7941%2059.2891%2076.1449ZM32.7112%2086.7681C32.7112%2088.7216%2031.3363%2089.5154%2029.6445%2088.5387C27.9527%2087.5619%2026.5779%2085.1805%2026.5779%2083.227V79.6859C26.5779%2077.7265%2027.9476%2076.9357%2029.6445%2077.9154C31.3414%2078.8951%2032.7112%2081.2676%2032.7112%2083.227V86.7681Z'%20fill='white'/%3e%3cpath%20d='M129.768%2044.2782L129.758%20110.384C129.758%20111.683%20128.838%20113.276%20127.714%20113.926L115.447%20121.008C114.318%20121.66%20113.403%20121.126%20113.403%20119.821V102.116C113.403%20100.115%20111.977%2099.3333%20110.239%20100.402C108.501%20101.47%20107.269%20103.869%20107.269%20105.805V123.363C107.269%20124.667%20106.349%20126.254%20105.22%20126.907L92.9531%20133.989C91.8235%20134.641%2090.9086%20134.107%2090.9086%20132.803V115.097C90.9086%20113.096%2089.4826%20112.314%2087.7448%20113.383C86.007%20114.451%2084.7753%20116.85%2084.7753%20118.786V136.344C84.7753%20137.648%2083.8553%20139.235%2082.7257%20139.888L70.459%20146.97C69.3294%20147.622%2068.4146%20147.082%2068.4146%20145.784L68.4248%2079.6773C68.435%2078.373%2069.3499%2076.7884%2070.4794%2076.1362L93.9906%2062.562C95.1202%2061.9099%2096.0351%2062.444%2096.0351%2063.7483V76.7323C96.0351%2078.7212%2097.4508%2079.5091%2099.1835%2078.4556C100.916%2077.4021%20102.163%2074.9883%20102.163%2073.0466V60.2101C102.163%2058.9058%20103.083%2057.3183%20104.213%2056.6661L127.724%2043.0919C128.848%2042.4427%20129.768%2042.9739%20129.768%2044.2782Z'%20fill='white'/%3e%3c/g%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_bam'%3e%3crect%20width='13'%20height='15'%20fill='white'%20transform='translate(25.5%204.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",LGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M30.9666%2013.9482L32%204.5V15.7351H30.4462L29.7889%2016.2729L29.3705%2016.0637V15.6963L30.3462%2014.9648H31.1439L30.9666%2013.9482Z'%20fill='white'/%3e%3cpath%20d='M33.0334%2013.9482L32%204.5V15.7351H33.5538L34.2112%2016.2729L34.6295%2016.0637V15.6963L33.6539%2014.9648H32.8562L33.0334%2013.9482Z'%20fill='white'/%3e%3cpath%20d='M32.7769%2016.0338H31.2231L31.5278%2018.1254C31.9083%2017.9732%2032.1222%2017.9697%2032.5027%2018.1254L32.7769%2016.0338Z'%20fill='white'/%3e%3ccircle%20cx='32'%20cy='18.9024'%20r='0.597609'%20fill='white'/%3e%3c/svg%3e",PGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M30.3732%2012.8333L28.5766%2017.4999H26.5V12.8333H30.3732Z'%20fill='white'/%3e%3cpath%20d='M32.2294%207.25712L26.5%2012.8333V6.5H33.007L32.2294%207.25712Z'%20fill='white'/%3e%3cpath%20d='M37.5001%2017.4997H28.5142L29.2508%2016.7805L35.0308%2011.1317L31.1466%2011.1272L32.9948%206.5H33.7908C36.6966%206.5%2038.0893%2010.2843%2035.9518%2012.3714L34.1024%2014.1786L34.1002%2014.181L37.5001%2017.5V17.4997Z'%20fill='white'/%3e%3c/svg%3e",OGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M16.1566%209.23523L18.3627%2017.4735H12.9886L11.3783%2014.6581L9.93787%2017.2225H6.92126L6.00037%2013.9823L7.64783%2011.9999L10.9594%2013.9257L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M26.0904%2015.5H24.5V8.5H26.0904V15.5Z'%20fill='white'/%3e%3cpath%20d='M39.5%2015.5H37.9096V8.5H39.5V15.5Z'%20fill='white'/%3e%3cpath%20d='M36.0011%2013.9841H32.8203V12.6465H36.0011V13.9841Z'%20fill='white'/%3e%3cpath%20d='M27.9989%2012.6465H26.3583V11.2049H27.9989V12.6465Z'%20fill='white'/%3e%3cpath%20d='M32.8203%2012.6465H31.1797V11.2049H32.8203V12.6465Z'%20fill='white'/%3e%3cpath%20d='M37.6417%2012.6465H36.0011V11.2049H37.6417V12.6465Z'%20fill='white'/%3e%3cpath%20d='M31.1797%2011.2049H27.9989V9.8673H31.1797V11.2049Z'%20fill='white'/%3e%3c/svg%3e",zGe="/assets/firedancer_circle_logo-D9jlxCje.svg",DGe="/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg",AGe="/assets/frankendancer_circle_logo-D5z79vwQ.svg",FGe="/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg",UGe="data:image/svg+xml,%3csvg%20width='35'%20height='20'%20viewBox='0%200%2035%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='25'%20cy='10'%20r='9.5'%20stroke='%233E332E'/%3e%3cmask%20id='path-2-inside-1_10887_28103'%20fill='white'%3e%3cpath%20d='M10%200C13.2712%200%2016.1755%201.57069%2018%203.99902C16.7442%205.67051%2016%207.74835%2016%2010C16%2012.2514%2016.7445%2014.3286%2018%2016C16.1756%2018.4287%2013.2715%2020%2010%2020C4.47715%2020%200%2015.5228%200%2010C0%204.47715%204.47715%200%2010%200Z'/%3e%3c/mask%3e%3cpath%20d='M18%203.99902L18.7995%204.5997L19.2508%203.99902L18.7995%203.39835L18%203.99902ZM18%2016L18.7995%2016.6006L19.2507%2016L18.7995%2015.3994L18%2016ZM10%200V1C12.9434%201%2015.5568%202.41194%2017.2005%204.5997L18%203.99902L18.7995%203.39835C16.7943%200.729431%2013.599%20-1%2010%20-1V0ZM18%203.99902L17.2005%203.39835C15.819%205.23708%2015%207.52433%2015%2010H16H17C17%207.97237%2017.6693%206.10394%2018.7995%204.5997L18%203.99902ZM16%2010H15C15%2012.4755%2015.8194%2014.7621%2017.2005%2016.6006L18%2016L18.7995%2015.3994C17.6695%2013.8951%2017%2012.0272%2017%2010H16ZM18%2016L17.2005%2015.3994C15.5567%2017.5876%2012.9436%2019%2010%2019V20V21C13.5994%2021%2016.7944%2019.2698%2018.7995%2016.6006L18%2016ZM10%2020V19C5.02944%2019%201%2014.9706%201%2010H0H-1C-1%2016.0751%203.92487%2021%2010%2021V20ZM0%2010H1C1%205.02944%205.02944%201%2010%201V0V-1C3.92487%20-1%20-1%203.92487%20-1%2010H0Z'%20fill='%233E332E'%20mask='url(%23path-2-inside-1_10887_28103)'/%3e%3c/svg%3e",BGe="_small-icon_imn4j_1",WGe="_medium-icon_imn4j_5",VGe="_large-icon_imn4j_9",HGe="_xlarge-icon_imn4j_13",ZGe={smallIcon:BGe,mediumIcon:WGe,largeIcon:VGe,xlargeIcon:HGe},qGe={[za.Frankendancer]:{src:AGe,alt:"Frankendancer Logo"},[za.Firedancer]:{src:zGe,alt:"Firedancer Logo"},[za.Agave]:{src:$Ge,alt:"Anza Logo"},[za.AgaveJito]:{src:MGe,alt:"Anza Jito Logo"},[za.AgavePaladin]:{src:LGe,alt:"Anza Paladin Logo"},[za.AgaveBam]:{src:RGe,alt:"Anza Bam Logo"},[za.AgaveRakurai]:{src:PGe,alt:"Anza Rakurai Logo"},[za.Sig]:null,[za.FiredancerHarmonic]:{src:DGe,alt:"Firedancer Harmonic Logo"},[za.AgaveHarmonic]:{src:OGe,alt:"Anza Harmonic Logo"},[za.FrankendancerHarmonic]:{src:FGe,alt:"Frankendancer Harmonic Logo"}},Nse=m.memo(function({client:e,size:t,showPlaceholder:n,className:r,placeholderClassName:i}){const o=Te(ZGe[`${t}Icon`],r),a=e?qGe[e]:void 0;return a?u.jsx("img",{src:a.src,alt:a.alt,className:o}):n?u.jsx("img",{src:UGe,alt:"Empty clients logo",className:Te(o,i)}):null}),GGe=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",minimumSignificantDigits:3,maximumSignificantDigits:3});function ZM(e){if(e==null)return;const t=GGe.formatToParts(Number(e)/dd);let n="",r;for(const{value:i,type:o}of t)o==="compact"?r=i:n+=i;return{formatted:n,suffix:r}}function YGe(e,t,n){if(e==null||!t)return;const r=10**n,i=100n*BigInt(r)*e/t;return Number(i)/r}const T6=0,lh=1,e1=2,$se=4;function Mse(e){return()=>e}function KGe(e){e()}function _x(e,t){return n=>e(t(n))}function Rse(e,t){return()=>e(t)}function XGe(e,t){return n=>e(t,n)}function qM(e){return e!==void 0}function JGe(...e){return()=>{e.map(KGe)}}function t1(){}function I6(e,t){return t(e),e}function QGe(e,t){return t(e)}function Ar(...e){return e}function qn(e,t){return e(lh,t)}function Jt(e,t){e(T6,t)}function GM(e){e(e1)}function ki(e){return e($se)}function yt(e,t){return qn(e,XGe(t,T6))}function uu(e,t){const n=e(lh,r=>{n(),t(r)});return n}function Lse(e){let t,n;return r=>i=>{t=i,n&&clearTimeout(n),n=setTimeout(()=>{r(t)},e)}}function Pse(e,t){return e===t}function Fr(e=Pse){let t;return n=>r=>{e(t,r)||(t=r,n(r))}}function zt(e){return t=>n=>{e(n)&&t(n)}}function lt(e){return t=>_x(t,e)}function nc(e){return t=>()=>{t(e)}}function Be(e,...t){const n=eYe(...t);return(r,i)=>{switch(r){case e1:GM(e);return;case lh:return qn(e,n(i))}}}function rc(e,t){return n=>r=>{n(t=e(t,r))}}function Ap(e){return t=>n=>{e>0?e--:t(n)}}function wd(e){let t=null,n;return r=>i=>{t=i,!n&&(n=setTimeout(()=>{n=void 0,r(t)},e))}}function cn(...e){const t=new Array(e.length);let n=0,r=null;const i=Math.pow(2,e.length)-1;return e.forEach((o,a)=>{const s=Math.pow(2,a);qn(o,l=>{const c=n;n=n|s,t[a]=l,c!==i&&n===i&&r&&(r(),r=null)})}),o=>a=>{const s=()=>{o([a].concat(t))};n===i?s():r=s}}function eYe(...e){return t=>e.reduceRight(QGe,t)}function tYe(e){let t,n;const r=()=>t==null?void 0:t();return function(i,o){switch(i){case lh:return o?n===o?void 0:(r(),n=o,t=qn(e,o),t):(r(),t1);case e1:r(),n=null;return}}}function Ye(e){let t=e;const n=kn();return(r,i)=>{switch(r){case T6:t=i;break;case lh:{i(t);break}case $se:return t}return n(r,i)}}function Wo(e,t){return I6(Ye(t),n=>yt(e,n))}function kn(){const e=[];return(t,n)=>{switch(t){case T6:e.slice().forEach(r=>{r(n)});return;case e1:e.splice(0,e.length);return;case lh:return e.push(n),()=>{const r=e.indexOf(n);r>-1&&e.splice(r,1)}}}}function Es(e){return I6(kn(),t=>yt(e,t))}function Ln(e,t=[],{singleton:n}={singleton:!0}){return{constructor:e,dependencies:t,id:nYe(),singleton:n}}const nYe=()=>Symbol();function rYe(e){const t=new Map,n=({constructor:r,dependencies:i,id:o,singleton:a})=>{if(a&&t.has(o))return t.get(o);const s=r(i.map(l=>n(l)));return a&&t.set(o,s),s};return n(e)}function Pi(...e){const t=kn(),n=new Array(e.length);let r=0;const i=Math.pow(2,e.length)-1;return e.forEach((o,a)=>{const s=Math.pow(2,a);qn(o,l=>{n[a]=l,r=r|s,r===i&&Jt(t,n)})}),function(o,a){switch(o){case e1:{GM(t);return}case lh:return r===i&&a(n),qn(t,a)}}}function Lt(e,t=Pse){return Be(e,Fr(t))}function YM(...e){return function(t,n){switch(t){case e1:return;case lh:return JGe(...e.map(r=>qn(r,n)))}}}var Va=(e=>(e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e))(Va||{});const iYe={0:"debug",3:"error",1:"log",2:"warn"},oYe=()=>typeof globalThis>"u"?window:globalThis,uh=Ln(()=>{const e=Ye(3);return{log:Ye((t,n,r=1)=>{var i;const o=(i=oYe().VIRTUOSO_LOG_LEVEL)!=null?i:ki(e);r>=o&&console[iYe[r]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",t,n)}),logLevel:e}},[],{singleton:!0});function ic(e,t,n){return KM(e,t,n).callbackRef}function KM(e,t,n){const r=Pe.useRef(null);let i=a=>{};const o=Pe.useMemo(()=>typeof ResizeObserver<"u"?new ResizeObserver(a=>{const s=()=>{const l=a[0].target;l.offsetParent!==null&&e(l)};n?s():requestAnimationFrame(s)}):null,[e,n]);return i=a=>{a&&t?(o==null||o.observe(a),r.current=a):(r.current&&(o==null||o.unobserve(r.current)),r.current=null)},{callbackRef:i,ref:r}}function Ose(e,t,n,r,i,o,a,s,l){const c=Pe.useCallback(d=>{const f=aYe(d.children,t,s?"offsetWidth":"offsetHeight",i);let p=d.parentElement;for(;!p.dataset.virtuosoScroller;)p=p.parentElement;const v=p.lastElementChild.dataset.viewportType==="window";let x;v&&(x=p.ownerDocument.defaultView);const y=a?s?a.scrollLeft:a.scrollTop:v?s?x.scrollX||x.document.documentElement.scrollLeft:x.scrollY||x.document.documentElement.scrollTop:s?p.scrollLeft:p.scrollTop,b=a?s?a.scrollWidth:a.scrollHeight:v?s?x.document.documentElement.scrollWidth:x.document.documentElement.scrollHeight:s?p.scrollWidth:p.scrollHeight,w=a?s?a.offsetWidth:a.offsetHeight:v?s?x.innerWidth:x.innerHeight:s?p.offsetWidth:p.offsetHeight;r({scrollHeight:b,scrollTop:Math.max(y,0),viewportHeight:w}),o==null||o(s?zse("column-gap",getComputedStyle(d).columnGap,i):zse("row-gap",getComputedStyle(d).rowGap,i)),f!==null&&e(f)},[e,t,i,o,a,r,s]);return KM(c,n,l)}function aYe(e,t,n,r){const i=e.length;if(i===0)return null;const o=[];for(let a=0;a{if(!(l!=null&&l.offsetParent))return;const c=l.getBoundingClientRect(),d=c.width;let f,p;if(t){const v=t.getBoundingClientRect(),x=c.top-v.top;p=v.height-Math.max(0,x),f=x+t.scrollTop}else{const v=a.current.ownerDocument.defaultView;p=v.innerHeight-Math.max(0,c.top),f=c.top+v.scrollY}r.current={offsetTop:f,visibleHeight:p,visibleWidth:d},e(r.current)},[e,t]),{callbackRef:o,ref:a}=KM(i,!0,n),s=Pe.useCallback(()=>{i(a.current)},[i,a]);return Pe.useEffect(()=>{var l;if(t){t.addEventListener("scroll",s);const c=new ResizeObserver(()=>{requestAnimationFrame(s)});return c.observe(t),()=>{t.removeEventListener("scroll",s),c.unobserve(t)}}else{const c=(l=a.current)==null?void 0:l.ownerDocument.defaultView;return c==null||c.addEventListener("scroll",s),c==null||c.addEventListener("resize",s),()=>{c==null||c.removeEventListener("scroll",s),c==null||c.removeEventListener("resize",s)}}},[s,t,a]),o}const ga=Ln(()=>{const e=kn(),t=kn(),n=Ye(0),r=kn(),i=Ye(0),o=kn(),a=kn(),s=Ye(0),l=Ye(0),c=Ye(0),d=Ye(0),f=kn(),p=kn(),v=Ye(!1),x=Ye(!1),y=Ye(!1);return yt(Be(e,lt(({scrollTop:b})=>b)),t),yt(Be(e,lt(({scrollHeight:b})=>b)),a),yt(t,i),{deviation:n,fixedFooterHeight:c,fixedHeaderHeight:l,footerHeight:d,headerHeight:s,horizontalDirection:x,scrollBy:p,scrollContainerState:e,scrollHeight:a,scrollingInProgress:v,scrollTo:f,scrollTop:t,skipAnimationFrameInResizeObserver:y,smoothScrollTargetReached:r,statefulScrollTop:i,viewportHeight:o}},[],{singleton:!0}),wx={lvl:0};function Dse(e,t){const n=e.length;if(n===0)return[];let{index:r,value:i}=t(e[0]);const o=[];for(let a=1;at&&(s=s.concat(QM(i,t,n))),r>=t&&r<=n&&s.push({k:r,v:a}),r<=n&&(s=s.concat(QM(o,t,n))),s}function N6(e){const{l:t,lvl:n,r}=e;if(r.lvl>=n-1&&t.lvl>=n-1)return e;if(n>r.lvl+1){if(eR(t))return Wse(Gi(e,{lvl:n-1}));if(!_r(t)&&!_r(t.r))return Gi(t.r,{l:Gi(t,{r:t.r.l}),lvl:n,r:Gi(e,{l:t.r.r,lvl:n-1})});throw new Error("Unexpected empty nodes")}else{if(eR(e))return tR(Gi(e,{lvl:n-1}));if(!_r(r)&&!_r(r.l)){const i=r.l,o=eR(i)?r.lvl-1:r.lvl;return Gi(i,{l:Gi(e,{lvl:n-1,r:i.l}),lvl:i.lvl+1,r:tR(Gi(r,{l:i.r,lvl:o}))})}else throw new Error("Unexpected empty nodes")}}function Gi(e,t){return Use(t.k!==void 0?t.k:e.k,t.v!==void 0?t.v:e.v,t.lvl!==void 0?t.lvl:e.lvl,t.l!==void 0?t.l:e.l,t.r!==void 0?t.r:e.r)}function Ase(e){return _r(e.r)?e.l:N6(Gi(e,{r:Ase(e.r)}))}function eR(e){return _r(e)||e.lvl>e.r.lvl}function Fse(e){return _r(e.r)?[e.k,e.v]:Fse(e.r)}function Use(e,t,n,r=wx,i=wx){return{k:e,l:r,lvl:n,r:i,v:t}}function Bse(e){return tR(Wse(e))}function Wse(e){const{l:t}=e;return!_r(t)&&t.lvl===e.lvl?Gi(t,{r:Gi(e,{l:t.r})}):e}function tR(e){const{lvl:t,r:n}=e;return!_r(n)&&!_r(n.r)&&n.lvl===t&&n.r.lvl===t?Gi(n,{l:Gi(e,{r:n.l}),lvl:t+1}):e}function sYe(e){return Dse(e,({k:t,v:n})=>({index:t,value:n}))}function Vse(e,t){return!!(e&&e.startIndex===t.startIndex&&e.endIndex===t.endIndex)}function Sx(e,t){return!!(e&&e[0]===t[0]&&e[1]===t[1])}const nR=Ln(()=>({recalcInProgress:Ye(!1)}),[],{singleton:!0});function Hse(e,t,n){return e[$6(e,t,n)]}function $6(e,t,n,r=0){let i=e.length-1;for(;r<=i;){const o=Math.floor((r+i)/2),a=e[o],s=n(a,t);if(s===0)return o;if(s===-1){if(i-r<2)return o-1;i=o-1}else{if(i===r)return o;r=o+1}}throw new Error(`Failed binary finding record in array - ${e.join(",")}, searched for ${t}`)}function lYe(e,t,n,r){const i=$6(e,t,r),o=$6(e,n,r,i);return e.slice(i,o+1)}function du(e,t){return Math.round(e.getBoundingClientRect()[t])}function M6(e){return!_r(e.groupOffsetTree)}function rR({index:e},t){return t===e?0:t=f||o===p)&&(e=JM(e,f)):(c=p!==o,l=!0),d>i&&i>=f&&p!==o&&(e=Ns(e,i+1,p));c&&(e=Ns(e,a,o))}return[e,n]}function dYe(e){return typeof e.groupIndex<"u"}function fYe({offset:e},t){return t===e?0:t0?s+n:s}function Zse(e,t){if(!M6(t))return e;let n=0;for(;t.groupIndices[n]<=e+n;)n++;return e+n}function qse(e,t,n){if(dYe(e))return t.groupIndices[e.groupIndex]+1;{const r=e.index==="LAST"?n:e.index;let i=Zse(r,t);return i=Math.max(0,i,Math.min(n,i)),i}}function hYe(e,t,n,r=0){return r>0&&(t=Math.max(t,Hse(e,r,rR).offset)),Dse(lYe(e,t,n,fYe),gYe)}function pYe(e,[t,n,r,i]){t.length>0&&r("received item sizes",t,Va.DEBUG);const o=e.sizeTree;let a=o,s=0;if(n.length>0&&_r(o)&&t.length===2){const p=t[0].size,v=t[1].size;a=n.reduce((x,y)=>Ns(Ns(x,y,p),y+1,v),a)}else[a,s]=cYe(a,t);if(a===o)return e;const{lastIndex:l,lastOffset:c,lastSize:d,offsetTree:f}=iR(e.offsetTree,s,a,i);return{groupIndices:n,groupOffsetTree:n.reduce((p,v)=>Ns(p,v,Cx(v,f,i)),n1()),lastIndex:l,lastOffset:c,lastSize:d,offsetTree:f,sizeTree:a}}function mYe(e){return Fp(e).map(({k:t,v:n},r,i)=>{const o=i[r+1];return{endIndex:o?o.k-1:1/0,size:n,startIndex:t}})}function Gse(e,t){let n=0,r=0;for(;ni.start===r&&(i.end===t||i.end===1/0)&&i.value===n}const yYe={offsetHeight:"height",offsetWidth:"width"},oc=Ln(([{log:e},{recalcInProgress:t}])=>{const n=kn(),r=kn(),i=Wo(r,0),o=kn(),a=kn(),s=Ye(0),l=Ye([]),c=Ye(void 0),d=Ye(void 0),f=Ye((j,T)=>du(j,yYe[T])),p=Ye(void 0),v=Ye(0),x=uYe(),y=Wo(Be(n,cn(l,e,v),rc(pYe,x),Fr()),x),b=Wo(Be(l,Fr(),rc((j,T)=>({current:T,prev:j.current}),{current:[],prev:[]}),lt(({prev:j})=>j)),[]);yt(Be(l,zt(j=>j.length>0),cn(y,v),lt(([j,T,E])=>{const $=j.reduce((D,M,O)=>Ns(D,M,Cx(M,T.offsetTree,E)||O),n1());return{...T,groupIndices:j,groupOffsetTree:$}})),y),yt(Be(r,cn(y),zt(([j,{lastIndex:T}])=>j[{endIndex:T,size:E,startIndex:j}])),n),yt(c,d);const w=Wo(Be(c,lt(j=>j===void 0)),!0);yt(Be(d,zt(j=>j!==void 0&&_r(ki(y).sizeTree)),lt(j=>[{endIndex:0,size:j,startIndex:0}])),n);const _=Es(Be(n,cn(y),rc(({sizes:j},[T,E])=>({changed:E!==j,sizes:E}),{changed:!1,sizes:x}),lt(j=>j.changed)));qn(Be(s,rc((j,T)=>({diff:j.prev-T,prev:T}),{diff:0,prev:0}),lt(j=>j.diff)),j=>{const{groupIndices:T}=ki(y);if(j>0)Jt(t,!0),Jt(o,j+Gse(j,T));else if(j<0){const E=ki(b);E.length>0&&(j-=Gse(-j,E)),Jt(a,j)}}),qn(Be(s,cn(e)),([j,T])=>{j<0&&T("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value",{firstItemIndex:s},Va.ERROR)});const S=Es(o);yt(Be(o,cn(y),lt(([j,T])=>{const E=T.groupIndices.length>0,$=[],D=T.lastSize;if(E){const M=kx(T.sizeTree,0);let O=0,te=0;for(;O{let Y=P.ranges;return P.prevSize!==0&&(Y=[...P.ranges,{endIndex:X+j-1,size:P.prevSize,startIndex:P.prevIndex}]),{prevIndex:X+j,prevSize:A,ranges:Y}},{prevIndex:j,prevSize:0,ranges:$}).ranges}return Fp(T.sizeTree).reduce((M,{k:O,v:te})=>({prevIndex:O+j,prevSize:te,ranges:[...M.ranges,{endIndex:O+j-1,size:M.prevSize,startIndex:M.prevIndex}]}),{prevIndex:0,prevSize:D,ranges:[]}).ranges})),n);const C=Es(Be(a,cn(y,v),lt(([j,{offsetTree:T},E])=>{const $=-j;return Cx($,T,E)})));return yt(Be(a,cn(y,v),lt(([j,T,E])=>{if(T.groupIndices.length>0){if(_r(T.sizeTree))return T;let $=n1();const D=ki(b);let M=0,O=0,te=0;for(;M<-j;){te=D[O];const q=D[O+1]-te-1;O++,M+=q+1}if($=Fp(T.sizeTree).reduce((q,{k:P,v:X})=>Ns(q,Math.max(0,P+j),X),$),M!==-j){const q=kx(T.sizeTree,te);$=Ns($,0,q);const P=cu(T.sizeTree,-j+1)[1];$=Ns($,1,P)}return{...T,sizeTree:$,...iR(T.offsetTree,0,$,E)}}else{const $=Fp(T.sizeTree).reduce((D,{k:M,v:O})=>Ns(D,Math.max(0,M+j),O),n1());return{...T,sizeTree:$,...iR(T.offsetTree,0,$,E)}}})),y),{beforeUnshiftWith:S,data:p,defaultItemSize:d,firstItemIndex:s,fixedItemSize:c,gap:v,groupIndices:l,itemSize:f,listRefresh:_,shiftWith:a,shiftWithOffset:C,sizeRanges:n,sizes:y,statefulTotalCount:i,totalCount:r,trackItemSizes:w,unshiftWith:o}},Ar(uh,nR),{singleton:!0});function bYe(e){return e.reduce((t,n)=>(t.groupIndices.push(t.totalCount),t.totalCount+=n+1,t),{groupIndices:[],totalCount:0})}const Yse=Ln(([{groupIndices:e,sizes:t,totalCount:n},{headerHeight:r,scrollTop:i}])=>{const o=kn(),a=kn(),s=Es(Be(o,lt(bYe)));return yt(Be(s,lt(l=>l.totalCount)),n),yt(Be(s,lt(l=>l.groupIndices)),e),yt(Be(Pi(i,t,r),zt(([l,c])=>M6(c)),lt(([l,c,d])=>cu(c.groupOffsetTree,Math.max(l-d,0),"v")[0]),Fr(),lt(l=>[l])),a),{groupCounts:o,topItemsIndexes:a}},Ar(oc,ga)),ch=Ln(([{log:e}])=>{const t=Ye(!1),n=Es(Be(t,zt(r=>r),Fr()));return qn(t,r=>{r&&ki(e)("props updated",{},Va.DEBUG)}),{didMount:n,propsReady:t}},Ar(uh),{singleton:!0}),xYe=typeof document<"u"&&"scrollBehavior"in document.documentElement.style;function Kse(e){const t=typeof e=="number"?{index:e}:e;return t.align||(t.align="start"),(!t.behavior||!xYe)&&(t.behavior="auto"),t.offset||(t.offset=0),t}const jx=Ln(([{gap:e,listRefresh:t,sizes:n,totalCount:r},{fixedFooterHeight:i,fixedHeaderHeight:o,footerHeight:a,headerHeight:s,scrollingInProgress:l,scrollTo:c,smoothScrollTargetReached:d,viewportHeight:f},{log:p}])=>{const v=kn(),x=kn(),y=Ye(0);let b=null,w=null,_=null;function S(){b&&(b(),b=null),_&&(_(),_=null),w&&(clearTimeout(w),w=null),Jt(l,!1)}return yt(Be(v,cn(n,f,r,y,s,a,p),cn(e,o,i),lt(([[C,j,T,E,$,D,M,O],te,q,P])=>{const X=Kse(C),{align:A,behavior:Y,offset:F}=X,H=E-1,ee=qse(X,j,H);let ce=Cx(ee,j.offsetTree,te)+D;A==="end"?(ce+=q+cu(j.sizeTree,ee)[1]-T+P,ee===H&&(ce+=M)):A==="center"?ce+=(q+cu(j.sizeTree,ee)[1]-T+P)/2:ce-=$,F&&(ce+=F);const B=ae=>{S(),ae?(O("retrying to scroll to",{location:C},Va.DEBUG),Jt(v,C)):(Jt(x,!0),O("list did not change, scroll successful",{},Va.DEBUG))};if(S(),Y==="smooth"){let ae=!1;_=qn(t,je=>{ae=ae||je}),b=uu(d,()=>{B(ae)})}else b=uu(Be(t,_Ye(150)),B);return w=setTimeout(()=>{S()},1200),Jt(l,!0),O("scrolling from index to",{behavior:Y,index:ee,top:ce},Va.DEBUG),{behavior:Y,top:ce}})),c),{scrollTargetReached:x,scrollToIndex:v,topListHeight:y}},Ar(oc,ga,uh),{singleton:!0});function _Ye(e){return t=>{const n=setTimeout(()=>{t(!1)},e);return r=>{r&&(t(!0),clearTimeout(n))}}}function oR(e,t){e==0?t():requestAnimationFrame(()=>{oR(e-1,t)})}function aR(e,t){const n=t-1;return typeof e=="number"?e:e.index==="LAST"?n:e.index}const Tx=Ln(([{defaultItemSize:e,listRefresh:t,sizes:n},{scrollTop:r},{scrollTargetReached:i,scrollToIndex:o},{didMount:a}])=>{const s=Ye(!0),l=Ye(0),c=Ye(!0);return yt(Be(a,cn(l),zt(([d,f])=>!!f),nc(!1)),s),yt(Be(a,cn(l),zt(([d,f])=>!!f),nc(!1)),c),qn(Be(Pi(t,a),cn(s,n,e,c),zt(([[,d],f,{sizeTree:p},v,x])=>d&&(!_r(p)||qM(v))&&!f&&!x),cn(l)),([,d])=>{uu(i,()=>{Jt(c,!0)}),oR(4,()=>{uu(r,()=>{Jt(s,!0)}),Jt(o,d)})}),{initialItemFinalLocationReached:c,initialTopMostItemIndex:l,scrolledToInitialItem:s}},Ar(oc,ga,jx,ch),{singleton:!0});function Xse(e,t){return Math.abs(e-t)<1.01}const Ix="up",Ex="down",wYe="none",kYe={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollHeight:0,scrollTop:0,viewportHeight:0}},SYe=0,Nx=Ln(([{footerHeight:e,headerHeight:t,scrollBy:n,scrollContainerState:r,scrollTop:i,viewportHeight:o}])=>{const a=Ye(!1),s=Ye(!0),l=kn(),c=kn(),d=Ye(4),f=Ye(SYe),p=Wo(Be(YM(Be(Lt(i),Ap(1),nc(!0)),Be(Lt(i),Ap(1),nc(!1),Lse(100))),Fr()),!1),v=Wo(Be(YM(Be(n,nc(!0)),Be(n,nc(!1),Lse(200))),Fr()),!1);yt(Be(Pi(Lt(i),Lt(f)),lt(([_,S])=>_<=S),Fr()),s),yt(Be(s,wd(50)),c);const x=Es(Be(Pi(r,Lt(o),Lt(t),Lt(e),Lt(d)),rc((_,[{scrollHeight:S,scrollTop:C},j,T,E,$])=>{const D=C+j-S>-$,M={scrollHeight:S,scrollTop:C,viewportHeight:j};if(D){let te,q;return C>_.state.scrollTop?(te="SCROLLED_DOWN",q=_.state.scrollTop-C):(te="SIZE_DECREASED",q=_.state.scrollTop-C||_.scrollTopDelta),{atBottom:!0,atBottomBecause:te,scrollTopDelta:q,state:M}}let O;return M.scrollHeight>_.state.scrollHeight?O="SIZE_INCREASED":j<_.state.viewportHeight?O="VIEWPORT_HEIGHT_DECREASING":C<_.state.scrollTop?O="SCROLLING_UPWARDS":O="NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM",{atBottom:!1,notAtBottomBecause:O,state:M}},kYe),Fr((_,S)=>_&&_.atBottom===S.atBottom))),y=Wo(Be(r,rc((_,{scrollHeight:S,scrollTop:C,viewportHeight:j})=>{if(Xse(_.scrollHeight,S))return{changed:!1,jump:0,scrollHeight:S,scrollTop:C};{const T=S-(C+j)<1;return _.scrollTop!==C&&T?{changed:!0,jump:_.scrollTop-C,scrollHeight:S,scrollTop:C}:{changed:!0,jump:0,scrollHeight:S,scrollTop:C}}},{changed:!1,jump:0,scrollHeight:0,scrollTop:0}),zt(_=>_.changed),lt(_=>_.jump)),0);yt(Be(x,lt(_=>_.atBottom)),a),yt(Be(a,wd(50)),l);const b=Ye(Ex);yt(Be(r,lt(({scrollTop:_})=>_),Fr(),rc((_,S)=>ki(v)?{direction:_.direction,prevScrollTop:S}:{direction:S<_.prevScrollTop?Ix:Ex,prevScrollTop:S},{direction:Ex,prevScrollTop:0}),lt(_=>_.direction)),b),yt(Be(r,wd(50),nc(wYe)),b);const w=Ye(0);return yt(Be(p,zt(_=>!_),nc(0)),w),yt(Be(i,wd(100),cn(p),zt(([_,S])=>!!S),rc(([_,S],[C])=>[S,C],[0,0]),lt(([_,S])=>S-_)),w),{atBottomState:x,atBottomStateChange:l,atBottomThreshold:d,atTopStateChange:c,atTopThreshold:f,isAtBottom:a,isAtTop:s,isScrolling:p,lastJumpDueToItemResize:y,scrollDirection:b,scrollVelocity:w}},Ar(ga)),R6="top",L6="bottom",Jse="none";function Qse(e,t,n){return typeof e=="number"?n===Ix&&t===R6||n===Ex&&t===L6?e:0:n===Ix?t===R6?e.main:e.reverse:t===L6?e.main:e.reverse}function ele(e,t){var n;return typeof e=="number"?e:(n=e[t])!=null?n:0}const sR=Ln(([{deviation:e,fixedHeaderHeight:t,headerHeight:n,scrollTop:r,viewportHeight:i}])=>{const o=kn(),a=Ye(0),s=Ye(0),l=Ye(0),c=Wo(Be(Pi(Lt(r),Lt(i),Lt(n),Lt(o,Sx),Lt(l),Lt(a),Lt(t),Lt(e),Lt(s)),lt(([d,f,p,[v,x],y,b,w,_,S])=>{const C=d-_,j=b+w,T=Math.max(p-C,0);let E=Jse;const $=ele(S,R6),D=ele(S,L6);return v-=_,v+=p+w,x+=p+w,x-=_,v>d+j-$&&(E=Ix),xd!=null),Fr(Sx)),[0,0]);return{increaseViewportBy:s,listBoundary:o,overscan:l,topListHeight:a,visibleRange:c}},Ar(ga),{singleton:!0});function CYe(e,t,n){if(M6(t)){const r=Zse(e,t);return[{index:cu(t.groupOffsetTree,r)[0],offset:0,size:0},{data:n==null?void 0:n[0],index:r,offset:0,size:0}]}return[{data:n==null?void 0:n[0],index:e,offset:0,size:0}]}const lR={bottom:0,firstItemIndex:0,items:[],offsetBottom:0,offsetTop:0,top:0,topItems:[],topListHeight:0,totalCount:0};function P6(e,t,n,r,i,o){const{lastIndex:a,lastOffset:s,lastSize:l}=i;let c=0,d=0;if(e.length>0){c=e[0].offset;const y=e[e.length-1];d=y.offset+y.size}const f=n-a,p=s+f*l+(f-1)*r,v=c,x=p-d;return{bottom:d,firstItemIndex:o,items:nle(e,i,o),offsetBottom:x,offsetTop:c,top:v,topItems:nle(t,i,o),topListHeight:t.reduce((y,b)=>b.size+y,0),totalCount:n}}function tle(e,t,n,r,i,o){let a=0;if(n.groupIndices.length>0)for(const d of n.groupIndices){if(d-a>=e)break;a++}const s=e+a,l=aR(t,s),c=Array.from({length:s}).map((d,f)=>({data:o[f+l],index:f+l,offset:0,size:0}));return P6(c,[],s,i,n,r)}function nle(e,t,n){if(e.length===0)return[];if(!M6(t))return e.map(c=>({...c,index:c.index+n,originalIndex:c.index}));const r=e[0].index,i=e[e.length-1].index,o=[],a=E6(t.groupOffsetTree,r,i);let s,l=0;for(const c of e){(!s||s.end{const y=Ye([]),b=Ye(0),w=kn();yt(o.topItemsIndexes,y);const _=Wo(Be(Pi(v,x,Lt(l,Sx),Lt(i),Lt(r),Lt(c),d,Lt(y),Lt(t),Lt(n),e),zt(([T,E,,$,,,,,,,D])=>{const M=D&&D.length!==$;return T&&!E&&!M}),lt(([,,[T,E],$,D,M,O,te,q,P,X])=>{const A=D,{offsetTree:Y,sizeTree:F}=A,H=ki(b);if($===0)return{...lR,totalCount:$};if(T===0&&E===0)return H===0?{...lR,totalCount:$}:tle(H,M,D,q,P,X||[]);if(_r(F))return H>0?null:P6(CYe(aR(M,$),A,X),[],$,P,A,q);const ee=[];if(te.length>0){const me=te[0],ke=te[te.length-1];let he=0;for(const ue of E6(F,me,ke)){const re=ue.value,ge=Math.max(ue.start,me),$e=Math.min(ue.end,ke);for(let pe=ge;pe<=$e;pe++)ee.push({data:X==null?void 0:X[pe],index:pe,offset:he,size:re}),he+=re}}if(!O)return P6([],ee,$,P,A,q);const ce=te.length>0?te[te.length-1]+1:0,B=hYe(Y,T,E,ce);if(B.length===0)return null;const ae=$-1,je=I6([],me=>{for(const ke of B){const he=ke.value;let ue=he.offset,re=ke.start;const ge=he.size;if(he.offset=E);pe++)me.push({data:X==null?void 0:X[pe],index:pe,offset:ue,size:ge}),ue+=ge+P}});return P6(je,ee,$,P,A,q)}),zt(T=>T!==null),Fr()),lR);yt(Be(e,zt(qM),lt(T=>T==null?void 0:T.length)),i),yt(Be(_,lt(T=>T.topListHeight)),f),yt(f,s),yt(Be(_,lt(T=>[T.top,T.bottom])),a),yt(Be(_,lt(T=>T.items)),w);const S=Es(Be(_,zt(({items:T})=>T.length>0),cn(i,e),zt(([{items:T},E])=>T[T.length-1].originalIndex===E-1),lt(([,T,E])=>[T-1,E]),Fr(Sx),lt(([T])=>T))),C=Es(Be(_,wd(200),zt(({items:T,topItems:E})=>T.length>0&&T[0].originalIndex===E.length),lt(({items:T})=>T[0].index),Fr())),j=Es(Be(_,zt(({items:T})=>T.length>0),lt(({items:T})=>{let E=0,$=T.length-1;for(;T[E].type==="group"&&E<$;)E++;for(;T[$].type==="group"&&$>E;)$--;return{endIndex:T[$].index,startIndex:T[E].index}}),Fr(Vse)));return{endReached:S,initialItemCount:b,itemsRendered:w,listState:_,rangeChanged:j,startReached:C,topItemsIndexes:y,...p}},Ar(oc,Yse,sR,Tx,jx,Nx,ch,nR),{singleton:!0}),rle=Ln(([{fixedFooterHeight:e,fixedHeaderHeight:t,footerHeight:n,headerHeight:r},{listState:i}])=>{const o=kn(),a=Wo(Be(Pi(n,e,r,t,i),lt(([s,l,c,d,f])=>s+l+c+d+f.offsetBottom+f.bottom)),0);return yt(Lt(a),o),{totalListHeight:a,totalListHeightChanged:o}},Ar(ga,Up),{singleton:!0}),jYe=Ln(([{viewportHeight:e},{totalListHeight:t}])=>{const n=Ye(!1),r=Wo(Be(Pi(n,e,t),zt(([i])=>i),lt(([,i,o])=>Math.max(0,i-o)),wd(0),Fr()),0);return{alignToBottom:n,paddingTopAddition:r}},Ar(ga,rle),{singleton:!0}),ile=Ln(()=>({context:Ye(null)})),TYe=({itemBottom:e,itemTop:t,locationParams:{align:n,behavior:r,...i},viewportBottom:o,viewportTop:a})=>to?{...i,align:n??"end",behavior:r}:null,ole=Ln(([{gap:e,sizes:t,totalCount:n},{fixedFooterHeight:r,fixedHeaderHeight:i,headerHeight:o,scrollingInProgress:a,scrollTop:s,viewportHeight:l},{scrollToIndex:c}])=>{const d=kn();return yt(Be(d,cn(t,l,n,o,i,r,s),cn(e),lt(([[f,p,v,x,y,b,w,_],S])=>{const{align:C,behavior:j,calculateViewLocation:T=TYe,done:E,...$}=f,D=qse(f,p,x-1),M=Cx(D,p.offsetTree,S)+y+b,O=M+cu(p.sizeTree,D)[1],te=_+b,q=_+v-w,P=T({itemBottom:O,itemTop:M,locationParams:{align:C,behavior:j,...$},viewportBottom:q,viewportTop:te});return P?E&&uu(Be(a,zt(X=>!X),Ap(ki(a)?1:2)),E):E&&E(),P}),zt(f=>f!==null)),c),{scrollIntoView:d}},Ar(oc,ga,jx,Up,uh),{singleton:!0});function ale(e){return e?e==="smooth"?"smooth":"auto":!1}const IYe=(e,t)=>typeof e=="function"?ale(e(t)):t&&ale(e),EYe=Ln(([{listRefresh:e,totalCount:t,fixedItemSize:n,data:r},{atBottomState:i,isAtBottom:o},{scrollToIndex:a},{scrolledToInitialItem:s},{didMount:l,propsReady:c},{log:d},{scrollingInProgress:f},{context:p},{scrollIntoView:v}])=>{const x=Ye(!1),y=kn();let b=null;function w(j){Jt(a,{align:"end",behavior:j,index:"LAST"})}qn(Be(Pi(Be(Lt(t),Ap(1)),l),cn(Lt(x),o,s,f),lt(([[j,T],E,$,D,M])=>{let O=T&&D,te="auto";return O&&(te=IYe(E,$||M),O=O&&!!te),{followOutputBehavior:te,shouldFollow:O,totalCount:j}}),zt(({shouldFollow:j})=>j)),({followOutputBehavior:j,totalCount:T})=>{b&&(b(),b=null),ki(n)?requestAnimationFrame(()=>{ki(d)("following output to ",{totalCount:T},Va.DEBUG),w(j)}):b=uu(e,()=>{ki(d)("following output to ",{totalCount:T},Va.DEBUG),w(j),b=null})});function _(j){const T=uu(i,E=>{j&&!E.atBottom&&E.notAtBottomBecause==="SIZE_INCREASED"&&!b&&(ki(d)("scrolling to bottom due to increased size",{},Va.DEBUG),w("auto"))});setTimeout(T,100)}qn(Be(Pi(Lt(x),t,c),zt(([j,,T])=>j&&T),rc(({value:j},[,T])=>({refreshed:j===T,value:T}),{refreshed:!1,value:0}),zt(({refreshed:j})=>j),cn(x,t)),([,j])=>{ki(s)&&_(j!==!1)}),qn(y,()=>{_(ki(x)!==!1)}),qn(Pi(Lt(x),i),([j,T])=>{j&&!T.atBottom&&T.notAtBottomBecause==="VIEWPORT_HEIGHT_DECREASING"&&w("auto")});const S=Ye(null),C=kn();return yt(YM(Be(Lt(r),lt(j=>{var T;return(T=j==null?void 0:j.length)!=null?T:0})),Be(Lt(t))),C),qn(Be(Pi(Be(C,Ap(1)),l),cn(Lt(S),s,f,p),lt(([[j,T],E,$,D,M])=>T&&$&&(E==null?void 0:E({context:M,totalCount:j,scrollingInProgress:D}))),zt(j=>!!j),wd(0)),j=>{b&&(b(),b=null),ki(n)?requestAnimationFrame(()=>{ki(d)("scrolling into view",{}),Jt(v,j)}):b=uu(e,()=>{ki(d)("scrolling into view",{}),Jt(v,j),b=null})}),{autoscrollToBottom:y,followOutput:x,scrollIntoViewOnChange:S}},Ar(oc,Nx,jx,Tx,ch,uh,ga,ile,ole)),NYe=Ln(([{data:e,firstItemIndex:t,gap:n,sizes:r},{initialTopMostItemIndex:i},{initialItemCount:o,listState:a},{didMount:s}])=>(yt(Be(s,cn(o),zt(([,l])=>l!==0),cn(i,r,t,n,e),lt(([[,l],c,d,f,p,v=[]])=>tle(l,c,d,f,p,v))),a),{}),Ar(oc,Tx,Up,ch),{singleton:!0}),$Ye=Ln(([{didMount:e},{scrollTo:t},{listState:n}])=>{const r=Ye(0);return qn(Be(e,cn(r),zt(([,i])=>i!==0),lt(([,i])=>({top:i}))),i=>{uu(Be(n,Ap(1),zt(o=>o.items.length>1)),()=>{requestAnimationFrame(()=>{Jt(t,i)})})}),{initialScrollTop:r}},Ar(ch,ga,Up),{singleton:!0}),sle=Ln(([{scrollVelocity:e}])=>{const t=Ye(!1),n=kn(),r=Ye(!1);return yt(Be(e,cn(r,t,n),zt(([i,o])=>!!o),lt(([i,o,a,s])=>{const{enter:l,exit:c}=o;if(a){if(c(i,s))return!1}else if(l(i,s))return!0;return a}),Fr()),t),qn(Be(Pi(t,e,n),cn(r)),([[i,o,a],s])=>{i&&s&&s.change&&s.change(o,a)}),{isSeeking:t,scrollSeekConfiguration:r,scrollSeekRangeChanged:n,scrollVelocity:e}},Ar(Nx),{singleton:!0}),uR=Ln(([{scrollContainerState:e,scrollTo:t}])=>{const n=kn(),r=kn(),i=kn(),o=Ye(!1),a=Ye(void 0);return yt(Be(Pi(n,r),lt(([{scrollHeight:s,scrollTop:l,viewportHeight:c},{offsetTop:d}])=>({scrollHeight:s,scrollTop:Math.max(0,l-d),viewportHeight:c}))),e),yt(Be(t,cn(r),lt(([s,{offsetTop:l}])=>({...s,top:s.top+l}))),i),{customScrollParent:a,useWindowScroll:o,windowScrollContainerState:n,windowScrollTo:i,windowViewportRect:r}},Ar(ga)),MYe=Ln(([{sizeRanges:e,sizes:t},{headerHeight:n,scrollTop:r},{initialTopMostItemIndex:i},{didMount:o},{useWindowScroll:a,windowScrollContainerState:s,windowViewportRect:l}])=>{const c=kn(),d=Ye(void 0),f=Ye(null),p=Ye(null);return yt(s,f),yt(l,p),qn(Be(c,cn(t,r,a,f,p,n)),([v,x,y,b,w,_,S])=>{const C=mYe(x.sizeTree);b&&w!==null&&_!==null&&(y=w.scrollTop-_.offsetTop),y-=S,v({ranges:C,scrollTop:y})}),yt(Be(d,zt(qM),lt(RYe)),i),yt(Be(o,cn(d),zt(([,v])=>v!==void 0),Fr(),lt(([,v])=>v.ranges)),e),{getState:c,restoreStateFrom:d}},Ar(oc,ga,Tx,ch,uR));function RYe(e){return{align:"start",index:0,offset:e.scrollTop}}const LYe=Ln(([{topItemsIndexes:e}])=>{const t=Ye(0);return yt(Be(t,zt(n=>n>=0),lt(n=>Array.from({length:n}).map((r,i)=>i))),e),{topItemCount:t}},Ar(Up));function lle(e){let t=!1,n;return()=>(t||(t=!0,n=e()),n)}const PYe=lle(()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent)),OYe=Ln(([{deviation:e,scrollBy:t,scrollingInProgress:n,scrollTop:r},{isAtBottom:i,isScrolling:o,lastJumpDueToItemResize:a,scrollDirection:s},{listState:l},{beforeUnshiftWith:c,gap:d,shiftWithOffset:f,sizes:p},{log:v},{recalcInProgress:x}])=>{const y=Es(Be(l,cn(a),rc(([,w,_,S],[{bottom:C,items:j,offsetBottom:T,totalCount:E},$])=>{const D=C+T;let M=0;return _===E&&w.length>0&&j.length>0&&(j[0].originalIndex===0&&w[0].originalIndex===0||(M=D-S,M!==0&&(M+=$))),[M,j,E,D]},[0,[],0,0]),zt(([w])=>w!==0),cn(r,s,n,i,v,x),zt(([,w,_,S,,,C])=>!C&&!S&&w!==0&&_===Ix),lt(([[w],,,,,_])=>(_("Upward scrolling compensation",{amount:w},Va.DEBUG),w))));function b(w){w>0?(Jt(t,{behavior:"auto",top:-w}),Jt(e,0)):(Jt(e,0),Jt(t,{behavior:"auto",top:-w}))}return qn(Be(y,cn(e,o)),([w,_,S])=>{S&&PYe()?Jt(e,_-w):b(-w)}),qn(Be(Pi(Wo(o,!1),e,x),zt(([w,_,S])=>!w&&!S&&_!==0),lt(([w,_])=>_),wd(1)),b),yt(Be(f,lt(w=>({top:-w}))),t),qn(Be(c,cn(p,d),lt(([w,{groupIndices:_,lastSize:S,sizeTree:C},j])=>{function T(E){return E*(S+j)}if(_.length===0)return T(w);{let E=0;const $=kx(C,0);let D=0,M=0;for(;Dw&&(E-=$,O=w-D+1),D+=O,E+=T(O),M++}return E}})),w=>{Jt(e,w),requestAnimationFrame(()=>{Jt(t,{top:w}),requestAnimationFrame(()=>{Jt(e,0),Jt(x,!1)})})}),{deviation:e}},Ar(ga,Nx,Up,oc,uh,nR)),zYe=Ln(([e,t,n,r,i,o,a,s,l,c,d])=>({...e,...t,...n,...r,...i,...o,...a,...s,...l,...c,...d}),Ar(sR,NYe,ch,sle,rle,$Ye,jYe,uR,ole,uh,ile)),ule=Ln(([{data:e,defaultItemSize:t,firstItemIndex:n,fixedItemSize:r,gap:i,groupIndices:o,itemSize:a,sizeRanges:s,sizes:l,statefulTotalCount:c,totalCount:d,trackItemSizes:f},{initialItemFinalLocationReached:p,initialTopMostItemIndex:v,scrolledToInitialItem:x},y,b,w,{listState:_,topItemsIndexes:S,...C},{scrollToIndex:j},T,{topItemCount:E},{groupCounts:$},D])=>(yt(C.rangeChanged,D.scrollSeekRangeChanged),yt(Be(D.windowViewportRect,lt(M=>M.visibleHeight)),y.viewportHeight),{data:e,defaultItemHeight:t,firstItemIndex:n,fixedItemHeight:r,gap:i,groupCounts:$,initialItemFinalLocationReached:p,initialTopMostItemIndex:v,scrolledToInitialItem:x,sizeRanges:s,topItemCount:E,topItemsIndexes:S,totalCount:d,...w,groupIndices:o,itemSize:a,listState:_,scrollToIndex:j,statefulTotalCount:c,trackItemSizes:f,...C,...D,...y,sizes:l,...b}),Ar(oc,Tx,ga,MYe,EYe,Up,jx,OYe,LYe,Yse,zYe));function DYe(e,t){const n={},r={};let i=0;const o=e.length;for(;i(w[_]=S=>{const C=b[t.methods[_]];Jt(C,S)},w),{})}function d(b){return a.reduce((w,_)=>(w[_]=tYe(b[t.events[_]]),w),{})}const f=Pe.forwardRef((b,w)=>{const{children:_,...S}=b,[C]=Pe.useState(()=>I6(rYe(e),E=>{l(E,S)})),[j]=Pe.useState(Rse(d,C));O6(()=>{for(const E of a)E in S&&qn(j[E],S[E]);return()=>{Object.values(j).map(GM)}},[S,j,C]),O6(()=>{l(C,S)}),Pe.useImperativeHandle(w,Mse(c(C)));const T=n;return u.jsx(s.Provider,{value:C,children:n?u.jsx(T,{...DYe([...r,...i,...a],S),children:_}):_})}),p=b=>{const w=Pe.useContext(s);return Pe.useCallback(_=>{Jt(w[b],_)},[w,b])},v=b=>{const w=Pe.useContext(s)[b],_=Pe.useCallback(S=>qn(w,S),[w]);return Pe.useSyncExternalStore(_,()=>ki(w),()=>ki(w))},x=b=>{const w=Pe.useContext(s)[b],[_,S]=Pe.useState(Rse(ki,w));return O6(()=>qn(w,C=>{C!==_&&S(Mse(C))}),[w,_]),_},y=Pe.version.startsWith("18")?v:x;return{Component:f,useEmitter:(b,w)=>{const _=Pe.useContext(s)[b];O6(()=>qn(_,w),[w,_])},useEmitterValue:y,usePublisher:p}}const z6=Pe.createContext(void 0),cle=Pe.createContext(void 0),dle=typeof document<"u"?Pe.useLayoutEffect:Pe.useEffect;function dR(e){return"self"in e}function AYe(e){return"body"in e}function fle(e,t,n,r=t1,i,o){const a=Pe.useRef(null),s=Pe.useRef(null),l=Pe.useRef(null),c=Pe.useCallback(p=>{let v,x,y;const b=p.target;if(AYe(b)||dR(b)){const _=dR(b)?b:b.defaultView;y=o?_.scrollX:_.scrollY,v=o?_.document.documentElement.scrollWidth:_.document.documentElement.scrollHeight,x=o?_.innerWidth:_.innerHeight}else y=o?b.scrollLeft:b.scrollTop,v=o?b.scrollWidth:b.scrollHeight,x=o?b.offsetWidth:b.offsetHeight;const w=()=>{e({scrollHeight:v,scrollTop:Math.max(y,0),viewportHeight:x})};p.suppressFlushSync?w():WU.flushSync(w),s.current!==null&&(y===s.current||y<=0||y===v-x)&&(s.current=null,t(!0),l.current&&(clearTimeout(l.current),l.current=null))},[e,t,o]);Pe.useEffect(()=>{const p=i||a.current;return r(i||a.current),c({suppressFlushSync:!0,target:p}),p.addEventListener("scroll",c,{passive:!0}),()=>{r(null),p.removeEventListener("scroll",c)}},[a,c,n,r,i]);function d(p){const v=a.current;if(!v||(o?"offsetWidth"in v&&v.offsetWidth===0:"offsetHeight"in v&&v.offsetHeight===0))return;const x=p.behavior==="smooth";let y,b,w;dR(v)?(b=Math.max(du(v.document.documentElement,o?"width":"height"),o?v.document.documentElement.scrollWidth:v.document.documentElement.scrollHeight),y=o?v.innerWidth:v.innerHeight,w=o?window.scrollX:window.scrollY):(b=v[o?"scrollWidth":"scrollHeight"],y=du(v,o?"width":"height"),w=v[o?"scrollLeft":"scrollTop"]);const _=b-y;if(p.top=Math.ceil(Math.max(Math.min(_,p.top),0)),Xse(y,b)||p.top===w){e({scrollHeight:b,scrollTop:w,viewportHeight:y}),x&&t(!0);return}x?(s.current=p.top,l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{l.current=null,s.current=null,t(!0)},1e3)):s.current=null,o&&(p={behavior:p.behavior,left:p.top}),v.scrollTo(p)}function f(p){o&&(p={behavior:p.behavior,left:p.top}),a.current.scrollBy(p)}return{scrollByCallback:f,scrollerRef:a,scrollToCallback:d}}const fR="-webkit-sticky",hle="sticky",hR=lle(()=>{if(typeof document>"u")return hle;const e=document.createElement("div");return e.style.position=fR,e.style.position===fR?fR:hle});function pR(e){return e}const FYe=Ln(()=>{const e=Ye(s=>`Item ${s}`),t=Ye(s=>`Group ${s}`),n=Ye({}),r=Ye(pR),i=Ye("div"),o=Ye(t1),a=(s,l=null)=>Wo(Be(n,lt(c=>c[s]),Fr()),l);return{components:n,computeItemKey:r,EmptyPlaceholder:a("EmptyPlaceholder"),FooterComponent:a("Footer"),GroupComponent:a("Group","div"),groupContent:t,HeaderComponent:a("Header"),HeaderFooterTag:i,ItemComponent:a("Item","div"),itemContent:e,ListComponent:a("List","div"),ScrollerComponent:a("Scroller","div"),scrollerRef:o,ScrollSeekPlaceholder:a("ScrollSeekPlaceholder"),TopItemListComponent:a("TopItemList")}}),UYe=Ln(([e,t])=>({...e,...t}),Ar(ule,FYe)),BYe=({height:e})=>u.jsx("div",{style:{height:e}}),WYe={overflowAnchor:"none",position:hR(),zIndex:1},ple={overflowAnchor:"none"},VYe={...ple,display:"inline-block",height:"100%"},mle=Pe.memo(function({showTopList:e=!1}){const t=Wt("listState"),n=ml("sizeRanges"),r=Wt("useWindowScroll"),i=Wt("customScrollParent"),o=ml("windowScrollContainerState"),a=ml("scrollContainerState"),s=i||r?o:a,l=Wt("itemContent"),c=Wt("context"),d=Wt("groupContent"),f=Wt("trackItemSizes"),p=Wt("itemSize"),v=Wt("log"),x=ml("gap"),y=Wt("horizontalDirection"),{callbackRef:b}=Ose(n,p,f,e?t1:s,v,x,i,y,Wt("skipAnimationFrameInResizeObserver")),[w,_]=Pe.useState(0);vR("deviation",P=>{w!==P&&_(P)});const S=Wt("EmptyPlaceholder"),C=Wt("ScrollSeekPlaceholder")||BYe,j=Wt("ListComponent"),T=Wt("ItemComponent"),E=Wt("GroupComponent"),$=Wt("computeItemKey"),D=Wt("isSeeking"),M=Wt("groupIndices").length>0,O=Wt("alignToBottom"),te=Wt("initialItemFinalLocationReached"),q=e?{}:{boxSizing:"border-box",...y?{display:"inline-block",height:"100%",marginLeft:w!==0?w:O?"auto":0,paddingLeft:t.offsetTop,paddingRight:t.offsetBottom,whiteSpace:"nowrap"}:{marginTop:w!==0?w:O?"auto":0,paddingBottom:t.offsetBottom,paddingTop:t.offsetTop},...te?{}:{visibility:"hidden"}};return!e&&t.totalCount===0&&S?u.jsx(S,{...Ur(S,c)}):u.jsx(j,{...Ur(j,c),"data-testid":e?"virtuoso-top-item-list":"virtuoso-item-list",ref:b,style:q,children:(e?t.topItems:t.items).map(P=>{const X=P.originalIndex,A=$(X+t.firstItemIndex,P.data,c);return D?m.createElement(C,{...Ur(C,c),height:P.size,index:P.index,key:A,type:P.type||"item",...P.type==="group"?{}:{groupIndex:P.groupIndex}}):P.type==="group"?m.createElement(E,{...Ur(E,c),"data-index":X,"data-item-index":P.index,"data-known-size":P.size,key:A,style:WYe},d(P.index,c)):m.createElement(T,{...Ur(T,c),...gle(T,P.data),"data-index":X,"data-item-group-index":P.groupIndex,"data-item-index":P.index,"data-known-size":P.size,key:A,style:y?VYe:ple},M?l(P.index,P.groupIndex,P.data,c):l(P.index,P.data,c))})})}),HYe={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},ZYe={outline:"none",overflowX:"auto",position:"relative"},r1=e=>({height:"100%",position:"absolute",top:0,width:"100%",...e?{display:"flex",flexDirection:"column"}:{}}),qYe={position:hR(),top:0,width:"100%",zIndex:1};function Ur(e,t){if(typeof e!="string")return{context:t}}function gle(e,t){return{item:typeof e=="string"?void 0:t}}const GYe=Pe.memo(function(){const e=Wt("HeaderComponent"),t=ml("headerHeight"),n=Wt("HeaderFooterTag"),r=ic(Pe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,Wt("skipAnimationFrameInResizeObserver")),i=Wt("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Ur(e,i)})}):null}),YYe=Pe.memo(function(){const e=Wt("FooterComponent"),t=ml("footerHeight"),n=Wt("HeaderFooterTag"),r=ic(Pe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,Wt("skipAnimationFrameInResizeObserver")),i=Wt("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Ur(e,i)})}):null});function mR({useEmitter:e,useEmitterValue:t,usePublisher:n}){return Pe.memo(function({children:r,style:i,context:o,...a}){const s=n("scrollContainerState"),l=t("ScrollerComponent"),c=n("smoothScrollTargetReached"),d=t("scrollerRef"),f=t("horizontalDirection")||!1,{scrollByCallback:p,scrollerRef:v,scrollToCallback:x}=fle(s,c,l,d,void 0,f);return e("scrollTo",x),e("scrollBy",p),u.jsx(l,{"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,ref:v,style:{...f?ZYe:HYe,...i},tabIndex:0,...a,...Ur(l,o),children:r})})}function gR({useEmitter:e,useEmitterValue:t,usePublisher:n}){return Pe.memo(function({children:r,style:i,context:o,...a}){const s=n("windowScrollContainerState"),l=t("ScrollerComponent"),c=n("smoothScrollTargetReached"),d=t("totalListHeight"),f=t("deviation"),p=t("customScrollParent"),v=Pe.useRef(null),x=t("scrollerRef"),{scrollByCallback:y,scrollerRef:b,scrollToCallback:w}=fle(s,c,l,x,p);return dle(()=>{var _;return b.current=p||((_=v.current)==null?void 0:_.ownerDocument.defaultView),()=>{b.current=null}},[b,p]),e("windowScrollTo",w),e("scrollBy",y),u.jsx(l,{ref:v,"data-virtuoso-scroller":!0,style:{position:"relative",...i,...d!==0?{height:d+f}:{}},...a,...Ur(l,o),children:r})})}const KYe=({children:e})=>{const t=Pe.useContext(z6),n=ml("viewportHeight"),r=ml("fixedItemHeight"),i=Wt("alignToBottom"),o=Wt("horizontalDirection"),a=Pe.useMemo(()=>_x(n,l=>du(l,o?"width":"height")),[n,o]),s=ic(a,!0,Wt("skipAnimationFrameInResizeObserver"));return Pe.useEffect(()=>{t&&(n(t.viewportHeight),r(t.itemHeight))},[t,n,r]),u.jsx("div",{"data-viewport-type":"element",ref:s,style:r1(i),children:e})},XYe=({children:e})=>{const t=Pe.useContext(z6),n=ml("windowViewportRect"),r=ml("fixedItemHeight"),i=Wt("customScrollParent"),o=XM(n,i,Wt("skipAnimationFrameInResizeObserver")),a=Wt("alignToBottom");return Pe.useEffect(()=>{t&&(r(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,r]),u.jsx("div",{"data-viewport-type":"window",ref:o,style:r1(a),children:e})},JYe=({children:e})=>{const t=Wt("TopItemListComponent")||"div",n=Wt("headerHeight"),r={...qYe,marginTop:`${n}px`},i=Wt("context");return u.jsx(t,{style:r,...Ur(t,i),children:e})},QYe=Pe.memo(function(e){const t=Wt("useWindowScroll"),n=Wt("topItemsIndexes").length>0,r=Wt("customScrollParent"),i=Wt("context");return u.jsxs(r||t?nKe:tKe,{...e,context:i,children:[n&&u.jsx(JYe,{children:u.jsx(mle,{showTopList:!0})}),u.jsxs(r||t?XYe:KYe,{children:[u.jsx(GYe,{}),u.jsx(mle,{}),u.jsx(YYe,{})]})]})}),{Component:eKe,useEmitter:vR,useEmitterValue:Wt,usePublisher:ml}=cR(UYe,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",scrollIntoViewOnChange:"scrollIntoViewOnChange",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",groupCounts:"groupCounts",topItemCount:"topItemCount",firstItemIndex:"firstItemIndex",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"HeaderFooterTag",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",horizontalDirection:"horizontalDirection",skipAnimationFrameInResizeObserver:"skipAnimationFrameInResizeObserver"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",autoscrollToBottom:"autoscrollToBottom",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},QYe),tKe=mR({useEmitter:vR,useEmitterValue:Wt,usePublisher:ml}),nKe=gR({useEmitter:vR,useEmitterValue:Wt,usePublisher:ml}),yR=eKe,rKe=Ln(()=>{const e=Ye(c=>u.jsxs("td",{children:["Item $",c]})),t=Ye(null),n=Ye(c=>u.jsxs("td",{colSpan:1e3,children:["Group ",c]})),r=Ye(null),i=Ye(null),o=Ye({}),a=Ye(pR),s=Ye(t1),l=(c,d=null)=>Wo(Be(o,lt(f=>f[c]),Fr()),d);return{components:o,computeItemKey:a,context:t,EmptyPlaceholder:l("EmptyPlaceholder"),FillerRow:l("FillerRow"),fixedFooterContent:i,fixedHeaderContent:r,itemContent:e,groupContent:n,ScrollerComponent:l("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:l("ScrollSeekPlaceholder"),TableBodyComponent:l("TableBody","tbody"),TableComponent:l("Table","table"),TableFooterComponent:l("TableFoot","tfoot"),TableHeadComponent:l("TableHead","thead"),TableRowComponent:l("TableRow","tr"),GroupComponent:l("Group","tr")}}),iKe=Ln(([e,t])=>({...e,...t}),Ar(ule,rKe)),oKe=({height:e})=>u.jsx("tr",{children:u.jsx("td",{style:{height:e}})}),aKe=({height:e})=>u.jsx("tr",{children:u.jsx("td",{style:{border:0,height:e,padding:0}})}),sKe={overflowAnchor:"none"},vle={position:hR(),zIndex:2,overflowAnchor:"none"},yle=Pe.memo(function({showTopList:e=!1}){const t=Qt("listState"),n=Qt("computeItemKey"),r=Qt("firstItemIndex"),i=Qt("context"),o=Qt("isSeeking"),a=Qt("fixedHeaderHeight"),s=Qt("groupIndices").length>0,l=Qt("itemContent"),c=Qt("groupContent"),d=Qt("ScrollSeekPlaceholder")||oKe,f=Qt("GroupComponent"),p=Qt("TableRowComponent"),v=(e?t.topItems:[]).reduce((y,b,w)=>(w===0?y.push(b.size):y.push(y[w-1]+b.size),y),[]),x=(e?t.topItems:t.items).map(y=>{const b=y.originalIndex,w=n(b+r,y.data,i),_=e?b===0?0:v[b-1]:0;return o?m.createElement(d,{...Ur(d,i),height:y.size,index:y.index,key:w,type:y.type||"item"}):y.type==="group"?m.createElement(f,{...Ur(f,i),"data-index":b,"data-item-index":y.index,"data-known-size":y.size,key:w,style:{...vle,top:a}},c(y.index,i)):m.createElement(p,{...Ur(p,i),...gle(p,y.data),"data-index":b,"data-item-index":y.index,"data-known-size":y.size,"data-item-group-index":y.groupIndex,key:w,style:e?{...vle,top:a+_}:sKe},s?l(y.index,y.groupIndex,y.data,i):l(y.index,y.data,i))});return u.jsx(u.Fragment,{children:x})}),lKe=Pe.memo(function(){const e=Qt("listState"),t=Qt("topItemsIndexes").length>0,n=fu("sizeRanges"),r=Qt("useWindowScroll"),i=Qt("customScrollParent"),o=fu("windowScrollContainerState"),a=fu("scrollContainerState"),s=i||r?o:a,l=Qt("trackItemSizes"),c=Qt("itemSize"),d=Qt("log"),{callbackRef:f,ref:p}=Ose(n,c,l,s,d,void 0,i,!1,Qt("skipAnimationFrameInResizeObserver")),[v,x]=Pe.useState(0);bR("deviation",M=>{v!==M&&(p.current.style.marginTop=`${M}px`,x(M))});const y=Qt("EmptyPlaceholder"),b=Qt("FillerRow")||aKe,w=Qt("TableBodyComponent"),_=Qt("paddingTopAddition"),S=Qt("statefulTotalCount"),C=Qt("context");if(S===0&&y)return u.jsx(y,{...Ur(y,C)});const j=(t?e.topItems:[]).reduce((M,O)=>M+O.size,0),T=e.offsetTop+_+v-j,E=e.offsetBottom,$=T>0?u.jsx(b,{context:C,height:T},"padding-top"):null,D=E>0?u.jsx(b,{context:C,height:E},"padding-bottom"):null;return u.jsxs(w,{"data-testid":"virtuoso-item-list",ref:f,...Ur(w,C),children:[$,t&&u.jsx(yle,{showTopList:!0}),u.jsx(yle,{}),D]})}),uKe=({children:e})=>{const t=Pe.useContext(z6),n=fu("viewportHeight"),r=fu("fixedItemHeight"),i=ic(Pe.useMemo(()=>_x(n,o=>du(o,"height")),[n]),!0,Qt("skipAnimationFrameInResizeObserver"));return Pe.useEffect(()=>{t&&(n(t.viewportHeight),r(t.itemHeight))},[t,n,r]),u.jsx("div",{"data-viewport-type":"element",ref:i,style:r1(!1),children:e})},cKe=({children:e})=>{const t=Pe.useContext(z6),n=fu("windowViewportRect"),r=fu("fixedItemHeight"),i=Qt("customScrollParent"),o=XM(n,i,Qt("skipAnimationFrameInResizeObserver"));return Pe.useEffect(()=>{t&&(r(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,r]),u.jsx("div",{"data-viewport-type":"window",ref:o,style:r1(!1),children:e})},dKe=Pe.memo(function(e){const t=Qt("useWindowScroll"),n=Qt("customScrollParent"),r=fu("fixedHeaderHeight"),i=fu("fixedFooterHeight"),o=Qt("fixedHeaderContent"),a=Qt("fixedFooterContent"),s=Qt("context"),l=ic(Pe.useMemo(()=>_x(r,w=>du(w,"height")),[r]),!0,Qt("skipAnimationFrameInResizeObserver")),c=ic(Pe.useMemo(()=>_x(i,w=>du(w,"height")),[i]),!0,Qt("skipAnimationFrameInResizeObserver")),d=n||t?pKe:hKe,f=n||t?cKe:uKe,p=Qt("TableComponent"),v=Qt("TableHeadComponent"),x=Qt("TableFooterComponent"),y=o?u.jsx(v,{ref:l,style:{position:"sticky",top:0,zIndex:2},...Ur(v,s),children:o()},"TableHead"):null,b=a?u.jsx(x,{ref:c,style:{bottom:0,position:"sticky",zIndex:1},...Ur(x,s),children:a()},"TableFoot"):null;return u.jsx(d,{...e,...Ur(d,s),children:u.jsx(f,{children:u.jsxs(p,{style:{borderSpacing:0,overflowAnchor:"none"},...Ur(p,s),children:[y,u.jsx(lKe,{},"TableBody"),b]})})})}),{Component:fKe,useEmitter:bR,useEmitterValue:Qt,usePublisher:fu}=cR(iKe,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",firstItemIndex:"firstItemIndex",itemContent:"itemContent",groupContent:"groupContent",fixedHeaderContent:"fixedHeaderContent",fixedFooterContent:"fixedFooterContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",topItemCount:"topItemCount",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",groupCounts:"groupCounts",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},dKe),hKe=mR({useEmitter:bR,useEmitterValue:Qt,usePublisher:fu}),pKe=gR({useEmitter:bR,useEmitterValue:Qt,usePublisher:fu}),mKe=fKe,ble={bottom:0,itemHeight:0,items:[],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},gKe={bottom:0,itemHeight:0,items:[{index:0}],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},{ceil:xle,floor:D6,max:$x,min:xR,round:_le}=Math;function wle(e,t,n){return Array.from({length:t-e+1}).map((r,i)=>({data:n===null?null:n[i+e],index:i+e}))}function vKe(e){return{...gKe,items:e}}function A6(e,t){return e&&e.width===t.width&&e.height===t.height}function yKe(e,t){return e&&e.column===t.column&&e.row===t.row}const bKe=Ln(([{increaseViewportBy:e,listBoundary:t,overscan:n,visibleRange:r},{footerHeight:i,headerHeight:o,scrollBy:a,scrollContainerState:s,scrollTo:l,scrollTop:c,smoothScrollTargetReached:d,viewportHeight:f},p,v,{didMount:x,propsReady:y},{customScrollParent:b,useWindowScroll:w,windowScrollContainerState:_,windowScrollTo:S,windowViewportRect:C},j])=>{const T=Ye(0),E=Ye(0),$=Ye(ble),D=Ye({height:0,width:0}),M=Ye({height:0,width:0}),O=kn(),te=kn(),q=Ye(0),P=Ye(null),X=Ye({column:0,row:0}),A=kn(),Y=kn(),F=Ye(!1),H=Ye(0),ee=Ye(!0),ce=Ye(!1),B=Ye(!1);qn(Be(x,cn(H),zt(([ue,re])=>!!re)),()=>{Jt(ee,!1)}),qn(Be(Pi(x,ee,M,D,H,ce),zt(([ue,re,ge,$e,,pe])=>ue&&!re&&ge.height!==0&&$e.height!==0&&!pe)),([,,,,ue])=>{Jt(ce,!0),oR(1,()=>{Jt(O,ue)}),uu(Be(c),()=>{Jt(t,[0,0]),Jt(ee,!0)})}),yt(Be(Y,zt(ue=>ue!=null&&ue.scrollTop>0),nc(0)),E),qn(Be(x,cn(Y),zt(([,ue])=>ue!=null)),([,ue])=>{ue&&(Jt(D,ue.viewport),Jt(M,ue.item),Jt(X,ue.gap),ue.scrollTop>0&&(Jt(F,!0),uu(Be(c,Ap(1)),re=>{Jt(F,!1)}),Jt(l,{top:ue.scrollTop})))}),yt(Be(D,lt(({height:ue})=>ue)),f),yt(Be(Pi(Lt(D,A6),Lt(M,A6),Lt(X,(ue,re)=>ue&&ue.column===re.column&&ue.row===re.row),Lt(c)),lt(([ue,re,ge,$e])=>({gap:ge,item:re,scrollTop:$e,viewport:ue}))),A),yt(Be(Pi(Lt(T),r,Lt(X,yKe),Lt(M,A6),Lt(D,A6),Lt(P),Lt(E),Lt(F),Lt(ee),Lt(H)),zt(([,,,,,,,ue])=>!ue),lt(([ue,[re,ge],$e,pe,ye,Se,Ce,,Ue,Ge])=>{const{column:_t,row:St}=$e,{height:ut,width:ct}=pe,{width:bt}=ye;if(Ce===0&&(ue===0||bt===0))return ble;if(ct===0){const kr=aR(Ge,ue),On=kr+Math.max(Ce-1,0);return vKe(wle(kr,On,Se))}const Qe=kle(bt,ct,_t);let Ke,De;Ue?re===0&&ge===0&&Ce>0?(Ke=0,De=Ce-1):(Ke=Qe*D6((re+St)/(ut+St)),De=Qe*xle((ge+St)/(ut+St))-1,De=xR(ue-1,$x(De,Qe-1)),Ke=xR(De,$x(0,Ke))):(Ke=0,De=-1);const Dt=wle(Ke,De,Se),{bottom:pn,top:Yn}=Sle(ye,$e,pe,Dt),hr=xle(ue/Qe),Kn=hr*ut+(hr-1)*St-pn;return{bottom:pn,itemHeight:ut,items:Dt,itemWidth:ct,offsetBottom:Kn,offsetTop:Yn,top:Yn}})),$),yt(Be(P,zt(ue=>ue!==null),lt(ue=>ue.length)),T),yt(Be(Pi(D,M,$,X),zt(([ue,re,{items:ge}])=>ge.length>0&&re.height!==0&&ue.height!==0),lt(([ue,re,{items:ge},$e])=>{const{bottom:pe,top:ye}=Sle(ue,$e,re,ge);return[ye,pe]}),Fr(Sx)),t);const ae=Ye(!1);yt(Be(c,cn(ae),lt(([ue,re])=>re||ue!==0)),ae);const je=Es(Be(Pi($,T),zt(([{items:ue}])=>ue.length>0),cn(ae),zt(([[ue,re],ge])=>{const $e=ue.items[ue.items.length-1].index===re-1;return(ge||ue.bottom>0&&ue.itemHeight>0&&ue.offsetBottom===0&&ue.items.length===re)&&$e}),lt(([[,ue]])=>ue-1),Fr())),me=Es(Be(Lt($),zt(({items:ue})=>ue.length>0&&ue[0].index===0),nc(0),Fr())),ke=Es(Be(Lt($),cn(F),zt(([{items:ue},re])=>ue.length>0&&!re),lt(([{items:ue}])=>({endIndex:ue[ue.length-1].index,startIndex:ue[0].index})),Fr(Vse),wd(0)));yt(ke,v.scrollSeekRangeChanged),yt(Be(O,cn(D,M,T,X),lt(([ue,re,ge,$e,pe])=>{const ye=Kse(ue),{align:Se,behavior:Ce,offset:Ue}=ye;let Ge=ye.index;Ge==="LAST"&&(Ge=$e-1),Ge=$x(0,Ge,xR($e-1,Ge));let _t=_R(re,pe,ge,Ge);return Se==="end"?_t=_le(_t-re.height+ge.height):Se==="center"&&(_t=_le(_t-re.height/2+ge.height/2)),Ue&&(_t+=Ue),{behavior:Ce,top:_t}})),l);const he=Wo(Be($,lt(ue=>ue.offsetBottom+ue.bottom)),0);return yt(Be(C,lt(ue=>({height:ue.visibleHeight,width:ue.visibleWidth}))),D),{customScrollParent:b,data:P,deviation:q,footerHeight:i,gap:X,headerHeight:o,increaseViewportBy:e,initialItemCount:E,itemDimensions:M,overscan:n,restoreStateFrom:Y,scrollBy:a,scrollContainerState:s,scrollHeight:te,scrollTo:l,scrollToIndex:O,scrollTop:c,smoothScrollTargetReached:d,totalCount:T,useWindowScroll:w,viewportDimensions:D,windowScrollContainerState:_,windowScrollTo:S,windowViewportRect:C,...v,gridState:$,horizontalDirection:B,initialTopMostItemIndex:H,totalListHeight:he,...p,endReached:je,propsReady:y,rangeChanged:ke,startReached:me,stateChanged:A,stateRestoreInProgress:F,...j}},Ar(sR,ga,Nx,sle,ch,uR,uh));function kle(e,t,n){return $x(1,D6((e+n)/(D6(t)+n)))}function Sle(e,t,n,r){const{height:i}=n;if(i===void 0||r.length===0)return{bottom:0,top:0};const o=_R(e,t,n,r[0].index);return{bottom:_R(e,t,n,r[r.length-1].index)+i,top:o}}function _R(e,t,n,r){const i=kle(e.width,n.width,t.column),o=D6(r/i),a=o*n.height+$x(0,o-1)*t.row;return a>0?a+t.row:a}const xKe=Ln(()=>{const e=Ye(f=>`Item ${f}`),t=Ye({}),n=Ye(null),r=Ye("virtuoso-grid-item"),i=Ye("virtuoso-grid-list"),o=Ye(pR),a=Ye("div"),s=Ye(t1),l=(f,p=null)=>Wo(Be(t,lt(v=>v[f]),Fr()),p),c=Ye(!1),d=Ye(!1);return yt(Lt(d),c),{components:t,computeItemKey:o,context:n,FooterComponent:l("Footer"),HeaderComponent:l("Header"),headerFooterTag:a,itemClassName:r,ItemComponent:l("Item","div"),itemContent:e,listClassName:i,ListComponent:l("List","div"),readyStateChanged:c,reportReadyState:d,ScrollerComponent:l("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:l("ScrollSeekPlaceholder","div")}}),_Ke=Ln(([e,t])=>({...e,...t}),Ar(bKe,xKe)),wKe=Pe.memo(function(){const e=Kr("gridState"),t=Kr("listClassName"),n=Kr("itemClassName"),r=Kr("itemContent"),i=Kr("computeItemKey"),o=Kr("isSeeking"),a=gl("scrollHeight"),s=Kr("ItemComponent"),l=Kr("ListComponent"),c=Kr("ScrollSeekPlaceholder"),d=Kr("context"),f=gl("itemDimensions"),p=gl("gap"),v=Kr("log"),x=Kr("stateRestoreInProgress"),y=gl("reportReadyState"),b=ic(Pe.useMemo(()=>w=>{const _=w.parentElement.parentElement.scrollHeight;a(_);const S=w.firstChild;if(S){const{height:C,width:j}=S.getBoundingClientRect();f({height:C,width:j})}p({column:jle("column-gap",getComputedStyle(w).columnGap,v),row:jle("row-gap",getComputedStyle(w).rowGap,v)})},[a,f,p,v]),!0,!1);return dle(()=>{e.itemHeight>0&&e.itemWidth>0&&y(!0)},[e]),x?null:u.jsx(l,{className:t,ref:b,...Ur(l,d),"data-testid":"virtuoso-item-list",style:{paddingBottom:e.offsetBottom,paddingTop:e.offsetTop},children:e.items.map(w=>{const _=i(w.index,w.data,d);return o?u.jsx(c,{...Ur(c,d),height:e.itemHeight,index:w.index,width:e.itemWidth},_):m.createElement(s,{...Ur(s,d),className:n,"data-index":w.index,key:_},r(w.index,w.data,d))})})}),kKe=Pe.memo(function(){const e=Kr("HeaderComponent"),t=gl("headerHeight"),n=Kr("headerFooterTag"),r=ic(Pe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,!1),i=Kr("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Ur(e,i)})}):null}),SKe=Pe.memo(function(){const e=Kr("FooterComponent"),t=gl("footerHeight"),n=Kr("headerFooterTag"),r=ic(Pe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,!1),i=Kr("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Ur(e,i)})}):null}),CKe=({children:e})=>{const t=Pe.useContext(cle),n=gl("itemDimensions"),r=gl("viewportDimensions"),i=ic(Pe.useMemo(()=>o=>{r(o.getBoundingClientRect())},[r]),!0,!1);return Pe.useEffect(()=>{t&&(r({height:t.viewportHeight,width:t.viewportWidth}),n({height:t.itemHeight,width:t.itemWidth}))},[t,r,n]),u.jsx("div",{ref:i,style:r1(!1),children:e})},jKe=({children:e})=>{const t=Pe.useContext(cle),n=gl("windowViewportRect"),r=gl("itemDimensions"),i=Kr("customScrollParent"),o=XM(n,i,!1);return Pe.useEffect(()=>{t&&(r({height:t.itemHeight,width:t.itemWidth}),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:t.viewportWidth}))},[t,n,r]),u.jsx("div",{ref:o,style:r1(!1),children:e})},TKe=Pe.memo(function({...e}){const t=Kr("useWindowScroll"),n=Kr("customScrollParent"),r=n||t?EKe:IKe,i=n||t?jKe:CKe,o=Kr("context");return u.jsx(r,{...e,...Ur(r,o),children:u.jsxs(i,{children:[u.jsx(kKe,{}),u.jsx(wKe,{}),u.jsx(SKe,{})]})})}),{useEmitter:Cle,useEmitterValue:Kr,usePublisher:gl}=cR(_Ke,{optional:{context:"context",totalCount:"totalCount",overscan:"overscan",itemContent:"itemContent",components:"components",computeItemKey:"computeItemKey",data:"data",initialItemCount:"initialItemCount",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",listClassName:"listClassName",itemClassName:"itemClassName",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",restoreStateFrom:"restoreStateFrom",initialTopMostItemIndex:"initialTopMostItemIndex",increaseViewportBy:"increaseViewportBy"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",stateChanged:"stateChanged",readyStateChanged:"readyStateChanged"}},TKe),IKe=mR({useEmitter:Cle,useEmitterValue:Kr,usePublisher:gl}),EKe=gR({useEmitter:Cle,useEmitterValue:Kr,usePublisher:gl});function jle(e,t,n){return t!=="normal"&&!(t!=null&&t.endsWith("px"))&&n(`${e} was not resolved to pixel value correctly`,t,Va.WARN),t==="normal"?0:parseInt(t??"0",10)}const NKe="_digit_1rfzd_1",$Ke="_hidden_1rfzd_5",MKe="_selection-text_1rfzd_10",wR={digit:NKe,hidden:$Ke,selectionText:MKe};function RKe(){const[e,t]=m.useState(()=>document.visibilityState==="visible");return m.useEffect(()=>{const n=()=>{t(document.visibilityState==="visible")};return document.addEventListener("visibilitychange",n),()=>document.removeEventListener("visibilitychange",n)},[]),e}const LKe=20;function Mx(e){return RKe()?u.jsx(OKe,{...e}):null}function PKe(e,t){const{start:n,target:r}=t;return{start:n,target:r,maxDigitsSeen:Math.max(e.maxDigitsSeen,kR(n),kR(r))}}function OKe({value:e,animationDurationMs:t=150,height:n,className:r,containerRowJustify:i}){const[o,a]=m.useReducer(PKe,{start:e,target:e,maxDigitsSeen:kR(e)}),{start:s,target:l,maxDigitsSeen:c}=o,[d,f]=m.useState(e),[p,v]=m.useState(()=>{const T=Ile(e).reverse(),E=Array.from({length:T.length});return{digits:T,animations:E}}),x=l>s?"incr":"decr",{stepDurationMs:y,shouldJumpToTarget:b}=m.useMemo(()=>{const T=Math.abs(l-s),E=Math.trunc(t/T);return E{const T=d===l||b?l:x==="incr"?d+1:d-1;return{number:T,paddedDigits:Ile(T,c)}},[d,x,c,b,l]),_=m.useCallback((T,E)=>{v($=>{const D=[...$.animations];return D[E]=T,{...$,animations:D}})},[]),S=m.useCallback((T,E)=>{v($=>{const D=[...$.digits],M=[...$.animations];D[E]=T,M[E]=void 0;const O={digits:D,animations:M};return parseInt([...O.digits].reverse().join(""),10)===Math.abs(w.number)&&f(w.number),O})},[w.number]),C=m.useMemo(()=>p.animations.some(T=>!!T),[p.animations]);m.useLayoutEffect(()=>{e===l||C||a({start:d,target:e})},[d,C,w.number,l,e]);const j=m.useMemo(()=>{if(n!=null)return{height:`${n}px`}},[n]);return u.jsxs(W,{position:"relative",justify:i,children:[u.jsx(Z,{className:Te(r,wR.selectionText),style:j,children:d}),u.jsxs(W,{height:"100%",position:"absolute",inert:"true",children:[w.number<0&&u.jsx(Z,{className:r,children:"-"}),w.paddedDigits.map((T,E)=>{const $=w.paddedDigits.length-1-E;return u.jsx(zKe,{idxFromBack:$,currentDigit:p.digits[$],nextDigit:T,direction:x,animation:p.animations[$],pauseNextAnimation:l!==e,animationDurationMs:y,onAnimationStart:_,onAnimationCompleted:S,className:r},$)})]})]})}function zKe({idxFromBack:e,currentDigit:t,nextDigit:n,direction:r,animation:i,pauseNextAnimation:o,onAnimationStart:a,onAnimationCompleted:s,animationDurationMs:l,className:c}){const d=m.useRef(null),f=m.useRef(null);return m.useLayoutEffect(()=>{if(i||o||t===n)return;const p=d.current;if(!p)return;const v=p.animate(r==="incr"?[{transform:"translateY(-50%)"},{transform:"translateY(0px)"}]:[{transform:"translateY(0px)"},{transform:"translateY(-50%)"}],{duration:l,easing:"ease-in-out",fill:"forwards"});f.current=v,a(v,e),v.finished.catch(()=>{}).finally(()=>{f.current=null,s(n,e)})},[l,t,n,r,e,o,s,i,a]),Og(()=>{var p;(p=f.current)==null||p.cancel()}),u.jsx(Mt,{height:"100%",overflowY:"hidden",children:u.jsxs(W,{ref:d,height:"200%",direction:"column",children:[u.jsx(Tle,{className:c,digit:r==="incr"?n:t}),u.jsx(Tle,{className:c,digit:r==="incr"?t:n})]})})}function Tle({digit:e,className:t}){return u.jsx(Z,{className:Te(t,wR.digit,{[wR.hidden]:e==null}),children:e})}function Ile(e,t){const n=Math.abs(e).toString().split("").map(i=>parseInt(i,10));if(t==null)return n;const r=Math.max(0,t-n.length);return[...Array(r).fill(null),...n]}function kR(e){return Math.abs(e).toString().length}const DKe="_container_zkl3s_1",AKe="_added_zkl3s_6",FKe="_removed_zkl3s_10",SR={container:DKe,added:AKe,removed:FKe},UKe=`Last ${_re/6e4}m`;function Ele({isOffline:e}){const t=J(yDe);return u.jsxs(W,{className:SR.container,align:"center",gap:"5px",children:[u.jsx(Z,{children:UKe}),u.jsxs(Z,{className:SR.added,children:["+",e?t.offline:t.online]}),u.jsxs(Z,{className:SR.removed,children:["-",e?t.online:t.offline]})]})}const Nle="16px",CR=33,$le="15px";function BKe({isStacked:e}){var j;const[t,{width:n}]=Ss(),r=n<496,i=!r&&n<642,o=r?"xnarrow":i?"narrow":"wide",[a,s]=m.useState(!0),[l,c]=m.useState(!0),d=J(QN),f=J(wre),p=J(_De),v=m.useCallback((T,E)=>{var M,O;const $=(M=d==null?void 0:d.get(T))==null?void 0:M[0],D=(O=d==null?void 0:d.get(E))==null?void 0:O[0];return $==null&&D==null?0:$==null?1:D==null?-1:$===D?0:$[...p].sort(v),[p,v]),y=m.useMemo(()=>[...f].sort(v),[f,v]),b=(j=J(Hl))==null?void 0:j.wait_for_supermajority_total_stake,w=m.useCallback(T=>x[T],[x]),_=m.useCallback(T=>{const E=w(T),[$,D]=(d==null?void 0:d.get(E))??[];return u.jsx(Rle,{pubkey:E,lamportsStake:$,info:D,totalStake:b,isOffline:!0,size:o})},[w,o,d,b]),S=m.useCallback(T=>y[T],[y]),C=m.useCallback(T=>{const E=S(T),[$,D]=(d==null?void 0:d.get(E))??[];return u.jsx(Rle,{pubkey:E,lamportsStake:$,info:D,totalStake:b,size:o})},[S,o,d,b]);return u.jsx(W,{ref:t,className:Te(un.container,e?un.vertical:un.horizontal),style:{"--row-height":`${CR}px`},children:u.jsxs(so,{className:Te(wi.card,un.tableCard,{[un.narrow]:i,[un.xnarrow]:r}),children:[u.jsxs(F6,{size:o,flexShrink:"0",className:un.headerRow,children:[u.jsx(o1,{size:o,className:un.peer,children:"Peer"}),u.jsx(o1,{size:o,className:un.status,children:"Status"}),u.jsx(o1,{size:o,className:un.pubkey,children:"Pubkey"}),u.jsx(o1,{size:o,className:un.version,children:"Version"}),u.jsx(o1,{size:o,className:un.stake,children:"Stake (SOL)"}),u.jsx(o1,{size:o,className:un.stakePct,children:"Stake %"})]}),u.jsx(F6,{size:o,flexShrink:"0",gapX:"8px",align:"center",className:Te(un.toggleRow,un.offline),asChild:!0,children:u.jsxs("button",{type:"button","aria-expanded":a,"aria-controls":"supermajority-offline-rows",onClick:()=>s(T=>!T),children:[u.jsx(Mle,{isExpanded:a}),u.jsxs(W,{align:"center",gap:$le,children:[u.jsxs(W,{align:"center",gap:"1",children:[u.jsx(Mx,{value:p.size}),u.jsx(Z,{children:"Nodes Offline"})]}),u.jsx(Ele,{isOffline:!0})]})]})}),u.jsx(Mt,{display:a?void 0:"none",className:un.rowsContainer,id:"supermajority-offline-rows",children:u.jsx(yR,{totalCount:x.length,fixedItemHeight:CR,computeItemKey:w,itemContent:_})}),u.jsx(F6,{size:o,flexShrink:"0",gapX:"8px",align:"center",className:Te(un.toggleRow,un.online),asChild:!0,children:u.jsxs("button",{type:"button","aria-expanded":l,"aria-controls":"supermajority-online-rows",onClick:()=>c(T=>!T),children:[u.jsx(Mle,{isExpanded:l}),u.jsxs(W,{align:"center",gap:$le,children:[u.jsxs(W,{align:"center",gap:"1",children:[u.jsx(Mx,{value:f.size}),u.jsx(Z,{children:"Nodes Online"})]}),u.jsx(Ele,{})]})]})}),u.jsx(Mt,{id:"supermajority-online-rows",display:l?void 0:"none",className:un.rowsContainer,children:u.jsx(yR,{totalCount:y.length,fixedItemHeight:CR,computeItemKey:S,itemContent:C})})]})})}function Mle({isExpanded:e}){const t=e?Hie:qFe;return u.jsx(t,{height:Nle,width:Nle,color:"white"})}const F6=m.forwardRef(function({size:e,className:t,...n},r){return u.jsx(W,{ref:r,className:Te(un.row,un[e],t),...n})});function Rle({pubkey:e,lamportsStake:t,info:n,totalStake:r,isOffline:i=!1,size:o}){return u.jsxs(F6,{size:o,className:i?un.offline:un.online,children:[u.jsx(WKe,{name:n==null?void 0:n.name,iconUrl:ire(n),size:o}),u.jsx(VKe,{isOffline:i,size:o}),u.jsx(HKe,{pubkey:e,size:o}),u.jsx(ZKe,{pubkey:e,size:o}),u.jsx(qKe,{lamportsStake:t,size:o}),u.jsx(GKe,{lamportsStake:t,totalStake:r,size:o})]})}function i1({children:e,className:t,size:n}){return u.jsx(W,{align:"center",className:Te(un.cell,un[n],t),children:e})}function o1({children:e,className:t,size:n}){return u.jsx(W,{align:"center",className:Te(un.cell,un.header,un[n],t),children:u.jsx(Z,{truncate:!0,children:e})})}function WKe({name:e,iconUrl:t,size:n}){return u.jsxs(i1,{size:n,className:un.peer,children:[u.jsx(ks,{url:t,size:16}),u.jsx(Z,{truncate:!0,children:e??"-"})]})}function VKe({isOffline:e=!1,size:t}){const n=e?aGe:oGe;return u.jsxs(i1,{size:t,className:Te(un.status),children:[u.jsx(n,{height:12,width:12,fill:"currentColor"}),t==="wide"&&u.jsx(Z,{truncate:!0,children:e?"Offline":"Online"})]})}function HKe({pubkey:e,size:t}){return u.jsx(i1,{size:t,className:un.pubkey,children:u.jsx(Dg,{value:e,color:"white",size:"10px",hideIconUntilHover:!0,children:u.jsx(Z,{truncate:!0,className:un.pubkeyText,children:e})})})}function ZKe({pubkey:e,size:t}){const n=Hk(e),{version:r,client:i}=zM(n);return u.jsxs(i1,{size:t,className:Te(un.version),children:[u.jsx(W,{width:"37px",flexShrink:"0",children:u.jsx(Nse,{client:i,size:"xlarge",showPlaceholder:!0,className:un.clientIcon,placeholderClassName:un.clientIconPlaceholder})}),t!=="xnarrow"&&u.jsx(Z,{truncate:!0,children:r?`v${r}`:"-"})]})}function qKe({lamportsStake:e,size:t}){const n=ZM(e);return u.jsx(i1,{size:t,className:un.stake,children:u.jsxs(Z,{children:[u.jsx(Z,{children:(n==null?void 0:n.formatted)??"-"}),(n==null?void 0:n.suffix)&&u.jsxs(Z,{className:un.suffix,children:[" ",n.suffix]})]})})}const Lle=2;function GKe({lamportsStake:e,totalStake:t,size:n}){const r=YGe(e,t,Lle);return u.jsx(i1,{size:n,className:un.stakePct,children:u.jsxs(Z,{children:[u.jsx(Z,{children:r===void 0?"-":r.toFixed(Lle)}),r!==void 0&&u.jsx(Z,{className:un.suffix,children:" %"})]})})}const YKe="data:image/svg+xml,%3csvg%20width='12'%20height='11'%20viewBox='0%200%2012%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0%2011H12L6.0482%200L0%2011Z'%20fill='%23F29D83'/%3e%3c/svg%3e";function KKe(){const e=J(Hl),t=e==null?void 0:e.wait_for_supermajority_total_stake,n=e==null?void 0:e.wait_for_supermajority_connected_stake,r=t&&n?rt.clamp(Number(n)/Number(t),0,1):0,i=m.useMemo(()=>ZM(t),[t]),o=ZM(n);return e?u.jsxs(W,{height:"100%",maxWidth:"100%",position:"relative",align:"center",justify:"center",className:wi.pieChart,children:[u.jsx("div",{className:wi.shimmer}),u.jsx("div",{className:wi.overlay,style:{"--progress-pct":`${Math.round(r*100)}%`}}),u.jsxs(W,{direction:"column",position:"absolute",height:"50%",width:"0px",bottom:"0",left:"50%",align:"center",className:wi.thresholdMarker,gap:"1px",children:[u.jsx(Mt,{className:wi.markerLine,height:"100%",flexShrink:"0"}),u.jsx("img",{className:wi.markerIcon,src:YKe,alt:"80% supermajority pointer"})]}),u.jsxs(W,{direction:"column",position:"relative",height:"70%",width:"70%",align:"center",justify:"center",gapY:"4%",className:wi.pieChartContent,children:[u.jsxs(Z,{children:[u.jsx(Z,{weight:"bold",className:wi.lg,children:(r*100).toFixed(2)}),u.jsx(Z,{weight:"bold",className:wi.secondaryColor,children:" %"}),u.jsx(Z,{className:wi.lg,children:" / "}),u.jsx(Z,{weight:"bold",className:Te(wi.lg,wi.eighty),children:"80"}),u.jsx(Z,{weight:"bold",color:"bronze",children:" %"})]}),u.jsxs(Z,{children:[(o==null?void 0:o.formatted)??"--",(o==null?void 0:o.suffix)&&u.jsxs(Z,{className:wi.secondaryColor,children:[" ",o.suffix]})," / ",u.jsx(Z,{children:(i==null?void 0:i.formatted)??"--"}),(i==null?void 0:i.suffix)&&u.jsxs(Z,{className:wi.secondaryColor,children:[" ",i.suffix]})]})]})]}):null}function XKe(){const e=J(Hl),t=J(nee);if(!e)return null;const n=e.wait_for_supermajority_attempt,r=e.loading_incremental_snapshot_read_path??e.loading_full_snapshot_read_path;return u.jsxs(W,{flexShrink:"0",direction:"column",width:"100%",className:wi.detailsBox,gapY:"10px",children:[u.jsxs(W,{gapX:"8px",justify:"between",children:[u.jsx(Rx,{label:"Slot",value:t==null?void 0:t.toString()}),u.jsx(Rx,{label:"Shred Version",value:e.wait_for_supermajority_shred_version}),u.jsx(Rx,{label:"Forked",value:n==null?void 0:xFe(n)})]}),u.jsx(Rx,{label:"Bank Hash",value:e.wait_for_supermajority_bank_hash,allowCopy:!0}),u.jsx(Rx,{label:"Snapshot Source",value:r,wrap:!0,valueClassName:wi.snapshotSource,allowCopy:!0})]})}function Rx({label:e,value:t,wrap:n=!1,valueClassName:r,allowCopy:i=!1}){return u.jsxs(W,{direction:"column",gap:"3px",children:[u.jsx(Z,{className:wi.label,children:e}),u.jsx(Dg,{className:wi.copyButton,value:i&&t?t:void 0,color:"white",size:"12px",hideIconUntilHover:!0,children:u.jsx(Z,{className:r,truncate:!n,children:t??"--"})})]})}const Ple="400px",jR="24px",Ole="50px";function JKe(){var i;const e=Hn("(max-width: 1025px)"),t=J(Hl),n=(i=J(QQ))==null?void 0:i.completionFraction;if(!t||!n)return null;const r=1-.01/n;return u.jsxs(u.Fragment,{children:[u.jsx(Q$,{phaseCompleteFraction:r,overallCompleteFraction:.99,showLoadingIcon:!0}),u.jsxs(W,{flexGrow:"1",mt:e?"18px":"36px",direction:e?"column-reverse":"row",justify:e?"end":"center",align:"stretch",gap:e?jR:Ole,minHeight:"0",children:[u.jsx(BKe,{isStacked:e}),u.jsxs(W,{direction:"column",align:"center",width:e?"100%":void 0,minWidth:"300px",maxWidth:e?void 0:Ple,flexBasis:"30%",flexGrow:e?"0":"1",flexShrink:"1",children:[u.jsx(Z,{className:wi.pieChartTitle,children:"Stake Online"}),u.jsx(W,{className:wi.pieChartContainer,mt:e?"4px":"8px",maxHeight:Ple,justify:"center",children:u.jsx(KKe,{})}),u.jsx(Mt,{height:e?jR:void 0,minHeight:jR,maxHeight:Ole,flexGrow:"1"}),u.jsx(XKe,{})]})]})]})}const QKe={[wn.joining_gossip]:yd.gossip,[wn.loading_full_snapshot]:yd.fullSnapshot,[wn.loading_incremental_snapshot]:yd.incrSnapshot,[wn.catching_up]:yd.catchingUp,[wn.waiting_for_supermajority]:yd.supermajority};function eXe(){const e=Ee(ol),t=J(Gu);return m.useEffect(()=>{e(t!=="running")},[e,t]),u.jsxs(u.Fragment,{children:[t&&u.jsx(tXe,{phase:t}),u.jsx(HBe,{})]})}function tXe({phase:e}){const t=Ee(dre),n=J(ol),r=J(W3),i=e?QKe[e]:"",o=Hn("(max-width: 750px)");return u.jsxs(W,{direction:"column",ref:a=>t(a),overflowY:"auto",className:Te(yd.container,i,{[yd.collapsed]:!n||!r}),children:[u.jsx(foe,{isStartup:!0}),u.jsxs(W,{flexGrow:"1",direction:"column",width:"100%",maxWidth:Zte,minHeight:"0",mx:"auto",px:o?"20px":"89px",children:[(e===wn.loading_full_snapshot||e===wn.loading_incremental_snapshot)&&u.jsx(tVe,{}),e===wn.catching_up&&u.jsx(Uqe,{}),e===wn.waiting_for_supermajority&&u.jsx(JKe,{}),u.jsx(Mt,{pb:"20px"})]})]})}function nXe({children:e}){const t=J(ol);return Vi?u.jsxs(u.Fragment,{children:[u.jsx(eXe,{}),u.jsx("div",{children:e})]}):u.jsxs(u.Fragment,{children:[u.jsx(XAe,{}),u.jsx("div",{className:Te(Iie.container,{[Iie.blur]:t}),children:e})]})}const rXe="_container_1i8oq_1",iXe="_toast_1i8oq_10",oXe="_disconnected_1i8oq_19",aXe="_connecting_1i8oq_29",sXe="_text_1i8oq_39",Lx={container:rXe,toast:iXe,disconnected:oXe,connecting:aXe,text:sXe};var ac=(e=>(e.Disconnected="disconnected",e.Connecting="connecting",e.Connected="connected",e))(ac||{});const TR=fe(ac.Disconnected),zle={opacity:0,top:-100},lXe={opacity:1,top:18};function Dle(e,t){if(e)return e===ac.Disconnected?{className:Lx.disconnected,text:"validator disconnected."}:e===ac.Connecting?{className:Lx.connecting,text:"validator connecting..."}:Dle(t)}function uXe(){const e=J(TR),t=ox(e),[n,r]=m.useState(!0);ix(()=>{setTimeout(()=>r(!1),3e3)});const[i,o]=ex(()=>({from:zle}));m.useEffect(()=>{n||(e===ac.Connecting||e===ac.Disconnected?o.start({to:lXe}):o.start({to:zle}))},[o,n,e]);const a=Dle(e,t);if(a)return u.jsx(iu.div,{className:Lx.container,style:i,children:u.jsx("div",{className:`${Lx.toast} ${a.className}`,children:u.jsx(Z,{className:Lx.text,children:a.text})})})}const cXe="_slots-list_1sk8v_1",dXe="_hidden_1sk8v_3",fXe="_no-slots-text_1sk8v_8",IR={slotsList:cXe,hidden:dXe,noSlotsText:fXe},hXe="_slot-group-container_1sejw_1",pXe="_slot-group_1sejw_1",mXe="_left-column_1sejw_14",gXe="_future_1sejw_20",vXe="_you_1sejw_28",yXe="_current_1sejw_36",bXe="_slot-name_1sejw_43",xXe="_skipped_1sejw_47",_Xe="_current-slot-row_1sejw_57",wXe="_past_1sejw_63",kXe="_processed_1sejw_74",SXe="_selected_1sejw_87",CXe="_ellipsis_1sejw_105",jXe="_slot-item-content_1sejw_111",TXe="_placeholder_1sejw_119",IXe="_slot-statuses_1sejw_123",EXe="_slot-status_1sejw_123",NXe="_slot-status-progress_1sejw_132",$Xe="_tall_1sejw_142",MXe="_short_1sejw_149",RXe="_scroll-slots-placeholder_1sejw_173",LXe="_shimmer_1sejw_184",PXe="_absolute-full-size_1sejw_176",OXe="_scroll-placeholder-item_1sejw_197",on={slotGroupContainer:hXe,slotGroup:pXe,leftColumn:mXe,future:gXe,you:vXe,current:yXe,slotName:bXe,skipped:xXe,currentSlotRow:_Xe,past:wXe,processed:kXe,selected:SXe,ellipsis:CXe,slotItemContent:jXe,placeholder:TXe,slotStatuses:IXe,slotStatus:EXe,slotStatusProgress:NXe,tall:$Xe,short:MXe,scrollSlotsPlaceholder:RXe,shimmer:LXe,absoluteFullSize:PXe,scrollPlaceholderItem:OXe},Px=m.memo(function({slot:e,size:t}){const{client:n}=ma(e);return u.jsx(Nse,{client:n,size:t})}),zXe=Gf(e=>fe(t=>{var r;const n=_i(e);for(let i=0;i<$n;i++)if((r=t(KN(n+i)))!=null&&r.skipped)return!0;return!1}),{maxSize:500});function ER(e){return J(zXe(e))}const Ale=fe(!1);function Ox({showNowIfCurrent:e,durationOptions:t}){const n=J(gre),r=J(Rb),i=J(uDe),o=r??i,a=J(oo),s=J(cDe),l=J(Eg),[c,d]=m.useState(a);rx(()=>{d(v=>{if(!a)return v;if(!v)return a;const x=v-a;return x>10?v-Math.trunc(x/2):x>4?v:x<-4?v-Math.trunc(x/2):v+1})},l);const f=m.useMemo(()=>{if(!(o==null||c==null))return fn.fromMillis(l*(o-c)).rescale()},[c,o,l]),p=m.useMemo(()=>{if(n==null||o==null||c==null)return;const v=o-n,x=(c-n)/v*100;return x<0||x>100?0:x},[c,o,n]);return e&&s?{progressSinceLastLeader:100,nextSlotText:"Now",nextLeaderSlot:a}:{progressSinceLastLeader:p??0,nextSlotText:kp(f,t),nextLeaderSlot:o}}const DXe="_progress_51hag_1",AXe={progress:DXe};function a1({width:e="100%",height:t="3px",style:n,className:r,variant:i="soft",...o}){return u.jsx(N4,{className:Te(AXe.progress,r),style:{width:e,height:t,...n},variant:i,...o})}function FXe(e){return J(Ale)?u.jsx("div",{className:on.placeholder}):u.jsx(UXe,{...e})}const Fle=fe(e=>{const t=e(eu),n=e(Xf);if(!e(ao)||t===void 0||n===void 0)return;const r=e(Rb);return function(i){return{isCurrentSlotGroup:t<=i&&iMath.ceil(t/46),[t]);return u.jsxs(Mt,{position:"absolute",width:`${e-1}px`,height:`${t}px`,overflow:"hidden",className:on.scrollSlotsPlaceholder,children:[u.jsx("div",{className:Te(on.absoluteFullSize,on.shimmer)}),u.jsx("div",{className:on.absoluteFullSize,children:Array.from({length:n},(r,i)=>u.jsx("div",{className:on.scrollPlaceholderItem},i))})]})});function U6({slot:e,iconSize:t=15}){var o;const{peer:n,isLeader:r,name:i}=ma(e);return u.jsxs(W,{gap:"4px",minWidth:"0",children:[u.jsx(ks,{url:(o=n==null?void 0:n.info)==null?void 0:o.icon_url,size:t,isYou:r,hideTooltip:!0}),u.jsx(Z,{className:Te(on.slotName,on.ellipsis),children:i})]})}function Ble({flag:e,width:t}){return u.jsx(W,{width:t,children:e&&u.jsx(Z,{children:e})})}function zx({firstSlot:e,isCurrentSlot:t=!1,isPastSlot:n=!1}){return u.jsx(W,{className:Te(on.slotStatuses,{[on.tall]:t,[on.short]:!t&&!n}),direction:"column",justify:"between",children:Array.from({length:$n}).map((r,i)=>{const o=e+($n-1)-i;return t?u.jsx(GXe,{slot:o},i):n?u.jsx(YXe,{slot:o},i):u.jsx(NR,{},i)})})}function NR({borderColor:e,backgroundColor:t,slotDuration:n}){return u.jsx(W,{className:on.slotStatus,style:{borderColor:e,backgroundColor:t},children:n&&u.jsx("div",{style:{"--slot-duration":`${n}ms`},className:on.slotStatusProgress})})}function Wle(e){if(!e)return{};if(e.skipped)return{backgroundColor:gk};switch(e.level){case"incomplete":return{};case"completed":return{borderColor:DN};case"optimistically_confirmed":return{backgroundColor:DN};case"finalized":case"rooted":return{backgroundColor:Wne}}}function GXe({slot:e}){const t=J(oo),n=Is(e),r=J(Eg),i=m.useMemo(()=>e===t,[e,t]),o=m.useMemo(()=>i?{borderColor:AN}:Wle(n.publish),[i,n.publish]);return u.jsx(NR,{borderColor:o.borderColor,backgroundColor:o.backgroundColor,slotDuration:i?r:void 0})}function YXe({slot:e}){const t=Is(e),n=J(Cn),r=m.useMemo(()=>{var o,a;const i=Wle(t.publish);return((o=t==null?void 0:t.publish)==null?void 0:o.level)==="rooted"&&!((a=t.publish)!=null&&a.skipped)&&(n===void 0||_i(e)!==_i(n))&&(i.backgroundColor=Vne),i},[t.publish,n,e]);return u.jsx(NR,{borderColor:r.borderColor,backgroundColor:r.backgroundColor})}const KXe="_container_1l1zm_1",XXe="_button_1l1zm_5",Vle={container:KXe,button:XXe};function JXe(){const e=Ee(An),t=J(kDe);return t==="Live"?null:u.jsx("div",{className:Vle.container,children:u.jsxs(hs,{className:Vle.button,style:{zIndex:3},onClick:()=>{e(void 0)},children:[u.jsx(Z,{children:"Skip to RT"}),t==="Past"?u.jsx(Vie,{}):u.jsx(Wie,{})]})})}const QXe=m.memo(JXe);function eJe(e){if(!e)return;const t=e.end_slot-e.start_slot+1,n=Math.ceil(t/$n);return{getSlotAtIndex:r=>{if(!(r<0||r>=n))return _i(e.end_slot-r*$n)},getIndexForSlot:r=>{if(!(re.end_slot))return Math.trunc((e.end_slot-r)/$n)},itemsCount:n}}function tJe(e){if(e==null)return;const t=e.reduce((n,r,i)=>(n[r]=e.length-i-1,n),{});return{getSlotAtIndex:n=>e[e.length-n-1],getIndexForSlot:n=>n>=e[e.length-1]?0:t[_i(n)]??e.length-rt.sortedIndex(e,n)-1,itemsCount:e.length}}const nJe=e=>e,rJe={top:24,bottom:0};function iJe({width:e,height:t}){const n=J(Tg),r=J(fi);return r?n===$b.MySlots?u.jsx(uJe,{width:e,height:t},r.epoch):u.jsx(lJe,{width:e,height:t},r.epoch):null}function Hle({width:e,height:t,itemsCount:n,getSlotAtIndex:r,getIndexForSlot:i}){const o=m.useRef(null),a=m.useRef(null),s=m.useRef(null),[l,c]=m.useState(!0),[d,f]=m.useState(!0);m.useEffect(()=>{const _=setTimeout(()=>{c(!1)},100);return()=>clearTimeout(_)},[]);const p=Ee(An),v=Tp(()=>{},100),{rangeChanged:x,scrollSeekConfiguration:y}=m.useMemo(()=>{const _=({startIndex:S})=>{s.current=S+1};return{rangeChanged:_,scrollSeekConfiguration:{enter:S=>Math.abs(S)>1500,exit:S=>Math.abs(S)<500,change:(S,C)=>_(C)}}},[s]);m.useEffect(()=>{if(!o.current)return;const _=o.current,S=rt.throttle(()=>{if(s.current===null)return;v();const j=Math.min(s.current+aN,n-1),T=r(j);p(T)},50,{leading:!0,trailing:!0}),C=()=>{S()};return _.addEventListener("wheel",C),_.addEventListener("touchmove",C),()=>{_.removeEventListener("wheel",C),_.removeEventListener("touchmove",C)}},[r,v,p,n,s]);const b=m.useCallback(_=>{const S=r(_);return S==null?null:u.jsx(FXe,{leaderSlotForGroup:S})},[r]),w=m.useCallback(_=>f(_>=t),[t]);return u.jsxs(Mt,{ref:o,position:"relative",width:`${e}px`,height:`${t}px`,children:[u.jsx(aJe,{listRef:a,getIndexForSlot:i}),u.jsx(sJe,{listRef:a,getIndexForSlot:i,debouncedScroll:v}),d&&u.jsx(qXe,{width:e,height:t}),u.jsx(QXe,{}),u.jsx(yR,{ref:a,className:Te(IR.slotsList,{[IR.hidden]:l}),width:e,height:t,totalCount:n,increaseViewportBy:rJe,defaultItemHeight:42,skipAnimationFrameInResizeObserver:!0,computeItemKey:nJe,itemContent:b,rangeChanged:x,components:{ScrollSeekPlaceholder:oJe},scrollSeekConfiguration:y,totalListHeightChanged:w})]})}const oJe=m.memo(function(){return null}),aJe=m.memo(function({listRef:e,getIndexForSlot:t}){const n=J(eu),r=J(tDe);return m.useEffect(()=>{if(!r||n===void 0||!e.current)return;const i=t(n),o=i?Math.max(0,i-aN):0;e.current.scrollToIndex({index:o,align:"start"})},[r,n,t,e]),null}),sJe=m.memo(function({listRef:e,getIndexForSlot:t,debouncedScroll:n}){const r=m.useRef(null),i=J(An);return m.useEffect(()=>{if(i===void 0||!e.current||n.isPending())return;const o=t(i),a=o?Math.max(0,o-aN):0,s=r.current;return r.current=requestAnimationFrame(()=>{var l;s!==null&&cancelAnimationFrame(s),(l=e.current)==null||l.scrollToIndex({index:a,align:"start"})}),()=>{r.current!==null&&(cancelAnimationFrame(r.current),r.current=null)}},[t,i,e,n]),null});function lJe({width:e,height:t}){const n=J(fi),r=m.useMemo(()=>eJe(n),[n]);return r?u.jsx(Hle,{width:e,height:t,...r}):null}function uJe({width:e,height:t}){const n=J(ao),r=m.useMemo(()=>tJe(n),[n]);return r?r.itemsCount===0?u.jsx(W,{width:`${e}px`,height:`${t}px`,justify:"center",align:"center",children:u.jsxs(Z,{className:IR.noSlotsText,children:["No Slots",u.jsx("br",{}),"Available"]})}):u.jsx(Hle,{width:e,height:t,...r}):null}let vl;typeof window<"u"?vl=window:typeof self<"u"?vl=self:vl=global;let $R=null,MR=null;const Zle=20,RR=vl.clearTimeout,qle=vl.setTimeout,LR=vl.cancelAnimationFrame||vl.mozCancelAnimationFrame||vl.webkitCancelAnimationFrame,Gle=vl.requestAnimationFrame||vl.mozRequestAnimationFrame||vl.webkitRequestAnimationFrame;LR==null||Gle==null?($R=RR,MR=function(e){return qle(e,Zle)}):($R=function([e,t]){LR(e),RR(t)},MR=function(e){const t=Gle(function(){RR(n),e()}),n=qle(function(){LR(t),e()},Zle);return[t,n]});function cJe(e){let t,n,r,i,o,a,s;const l=typeof document<"u"&&document.attachEvent;if(!l){a=function(y){const b=y.__resizeTriggers__,w=b.firstElementChild,_=b.lastElementChild,S=w.firstElementChild;_.scrollLeft=_.scrollWidth,_.scrollTop=_.scrollHeight,S.style.width=w.offsetWidth+1+"px",S.style.height=w.offsetHeight+1+"px",w.scrollLeft=w.scrollWidth,w.scrollTop=w.scrollHeight},o=function(y){return y.offsetWidth!==y.__resizeLast__.width||y.offsetHeight!==y.__resizeLast__.height},s=function(y){if(y.target.className&&typeof y.target.className.indexOf=="function"&&y.target.className.indexOf("contract-trigger")<0&&y.target.className.indexOf("expand-trigger")<0)return;const b=this;a(this),this.__resizeRAF__&&$R(this.__resizeRAF__),this.__resizeRAF__=MR(function(){o(b)&&(b.__resizeLast__.width=b.offsetWidth,b.__resizeLast__.height=b.offsetHeight,b.__resizeListeners__.forEach(function(w){w.call(b,y)}))})};let d=!1,f="";r="animationstart";const p="Webkit Moz O ms".split(" ");let v="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),x="";{const y=document.createElement("fakeelement");if(y.style.animationName!==void 0&&(d=!0),d===!1){for(let b=0;b div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',p=d.head||d.getElementsByTagName("head")[0],v=d.createElement("style");v.id="detectElementResize",v.type="text/css",e!=null&&v.setAttribute("nonce",e),v.styleSheet?v.styleSheet.cssText=f:v.appendChild(d.createTextNode(f)),p.appendChild(v)}};return{addResizeListener:function(d,f){if(l)d.attachEvent("onresize",f);else{if(!d.__resizeTriggers__){const p=d.ownerDocument,v=vl.getComputedStyle(d);v&&v.position==="static"&&(d.style.position="relative"),c(p),d.__resizeLast__={},d.__resizeListeners__=[],(d.__resizeTriggers__=p.createElement("div")).className="resize-triggers";const x=p.createElement("div");x.className="expand-trigger",x.appendChild(p.createElement("div"));const y=p.createElement("div");y.className="contract-trigger",d.__resizeTriggers__.appendChild(x),d.__resizeTriggers__.appendChild(y),d.appendChild(d.__resizeTriggers__),a(d),d.addEventListener("scroll",s,!0),r&&(d.__resizeTriggers__.__animationListener__=function(b){b.animationName===n&&a(d)},d.__resizeTriggers__.addEventListener(r,d.__resizeTriggers__.__animationListener__))}d.__resizeListeners__.push(f)}},removeResizeListener:function(d,f){if(l)d.detachEvent("onresize",f);else if(d.__resizeListeners__.splice(d.__resizeListeners__.indexOf(f),1),!d.__resizeListeners__.length){d.removeEventListener("scroll",s,!0),d.__resizeTriggers__.__animationListener__&&(d.__resizeTriggers__.removeEventListener(r,d.__resizeTriggers__.__animationListener__),d.__resizeTriggers__.__animationListener__=null);try{d.__resizeTriggers__=!d.removeChild(d.__resizeTriggers__)}catch{}}}}}class $s extends m.Component{constructor(...t){super(...t),this.state={height:this.props.defaultHeight||0,width:this.props.defaultWidth||0},this._autoSizer=null,this._detectElementResize=null,this._didLogDeprecationWarning=!1,this._parentNode=null,this._resizeObserver=null,this._timeoutId=null,this._onResize=()=>{this._timeoutId=null;const{disableHeight:n,disableWidth:r,onResize:i}=this.props;if(this._parentNode){const o=window.getComputedStyle(this._parentNode)||{},a=parseFloat(o.paddingLeft||"0"),s=parseFloat(o.paddingRight||"0"),l=parseFloat(o.paddingTop||"0"),c=parseFloat(o.paddingBottom||"0"),d=this._parentNode.getBoundingClientRect(),f=d.height-l-c,p=d.width-a-s;if(!n&&this.state.height!==f||!r&&this.state.width!==p){this.setState({height:f,width:p});const v=()=>{this._didLogDeprecationWarning||(this._didLogDeprecationWarning=!0,console.warn("scaledWidth and scaledHeight parameters have been deprecated; use width and height instead"))};typeof i=="function"&&i({height:f,width:p,get scaledHeight(){return v(),f},get scaledWidth(){return v(),p}})}}},this._setRef=n=>{this._autoSizer=n}}componentDidMount(){const{nonce:t}=this.props,n=this._autoSizer?this._autoSizer.parentNode:null;if(n!=null&&n.ownerDocument&&n.ownerDocument.defaultView&&n instanceof n.ownerDocument.defaultView.HTMLElement){this._parentNode=n;const r=n.ownerDocument.defaultView.ResizeObserver;r!=null?(this._resizeObserver=new r(()=>{this._timeoutId=setTimeout(this._onResize,0)}),this._resizeObserver.observe(n)):(this._detectElementResize=cJe(t),this._detectElementResize.addResizeListener(n,this._onResize)),this._onResize()}}componentWillUnmount(){this._parentNode&&(this._detectElementResize&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize),this._timeoutId!==null&&clearTimeout(this._timeoutId),this._resizeObserver&&this._resizeObserver.disconnect())}render(){const{children:t,defaultHeight:n,defaultWidth:r,disableHeight:i=!1,disableWidth:o=!1,doNotBailOutOnEmptyChildren:a=!1,nonce:s,onResize:l,style:c={},tagName:d="div",...f}=this.props,{height:p,width:v}=this.state,x={overflow:"visible"},y={};let b=!1;return i||(p===0&&(b=!0),x.height=0,y.height=p,y.scaledHeight=p),o||(v===0&&(b=!0),x.width=0,y.width=v,y.scaledWidth=v),a&&(b=!1),m.createElement(d,{ref:this._setRef,style:{...x,...c},...f},!b&&t(y))}}function dJe(){const[e,t]=Vl(Tg),n=m.useCallback(r=>{r&&t(r)},[t]);return u.jsx(W,{height:`${cN}px`,width:"100%",children:u.jsxs(M7,{type:"single",value:e,"aria-label":"Slots List Toggle",onValueChange:n,className:Ip.navFilterToggleGroup,children:[u.jsx(B0,{value:$b.AllSlots,"aria-label":"All Slots toggle",tabIndex:0,children:u.jsx(Z,{children:"All Slots"})}),u.jsx(B0,{value:$b.MySlots,"aria-label":"My Slots toggle",tabIndex:0,children:u.jsx(Z,{children:"My Slots"})})]})})}const fJe="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='20px'%20viewBox='0%20-960%20960%20960'%20width='20px'%20fill='%23FF5353'%3e%3cpath%20d='m48-144%20432-720%20432%20720H48Zm431.79-120q15.21%200%2025.71-10.29t10.5-25.5q0-15.21-10.29-25.71t-25.5-10.5q-15.21%200-25.71%2010.29t-10.5%2025.5q0%2015.21%2010.29%2025.71t25.5%2010.5ZM444-384h72v-192h-72v192Z'/%3e%3c/svg%3e",hJe="data:image/svg+xml,%3csvg%20width='10'%20height='11'%20viewBox='0%200%2010%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6.39453%201.5H9.67578V7.32422H5.57422L5.35547%206.17578H2.07422V10.25H0.925781V0.324219H6.17578L6.39453%201.5Z'%20fill='%231DB247'/%3e%3c/svg%3e",pJe="_epoch-progress_niwu5_1",mJe="_clickable_niwu5_8",gJe="_leader-slot_niwu5_12",vJe="_before-start_niwu5_21",yJe="_skipped-slot_niwu5_26",bJe="_skipped-slot-icon_niwu5_36",xJe="_first-processed-slot_niwu5_45",_Je="_first-processed-slot-icon_niwu5_56",wJe="_slider-root_niwu5_65",kJe="_slider-track_niwu5_76",SJe="_slider-thumb_niwu5_82",CJe="_collapsed_niwu5_92",jJe="_tooltip_niwu5_106",TJe="_hide_niwu5_114",IJe="_show_niwu5_123",Yi={epochProgress:pJe,clickable:mJe,leaderSlot:gJe,beforeStart:vJe,skippedSlot:yJe,skippedSlotIcon:bJe,firstProcessedSlot:xJe,firstProcessedSlotIcon:_Je,sliderRoot:wJe,sliderTrack:kJe,sliderThumb:SJe,collapsed:CJe,tooltip:jJe,hide:TJe,show:IJe};function EJe(e,t,n=window){const r=m.useRef(t);m.useEffect(()=>{r.current=t});const i=Rze(e)?e:[e];m.useEffect(()=>{if(!r.current||!n||!n.addEventListener||i.length===0)return;const o=a=>{var s;return(s=r.current)==null?void 0:s.call(r,a)};return i.forEach(a=>n.addEventListener(a,o,{passive:!1})),()=>{i.forEach(a=>n.removeEventListener(a,o,!1))}},[...i,n])}const PR=10800;function Bp({slot:e,epochStartSlot:t,epochEndSlot:n}){if(!e||t===void 0||n===void 0||t===n)return 0;e=Math.min(Math.max(e,t),n);const r=n-t;return(e-t)/r}function NJe(e){return Math.trunc(e*PR)}function $Je(e,t,n){if(e===void 0||t===void 0||n===void 0)return;const r=e/PR,i=n-t;return Math.trunc(i*r)+t}function MJe(e,t){return Bp(t)}function RJe(e,t){if(!e||!t)return 3e3;const n=e.end_slot-e.start_slot;return n<1e4?300:n<5e4?1e3:n<1e5?3e3:n<2e5?5e3:n<3e5?1e4:n<4e5?15e3:3e4}function Yle(e,t){return e.length?e.reduce((n,r,i)=>{if(i===0)return n;const o=n[n.length-1];return Math.abs(r.pct-o.pct)clearTimeout(f.current));const p=m.useCallback(y=>{t(y),d(!0),clearTimeout(f.current),f.current=setTimeout(()=>d(!1),100)},[t]),v=m.useCallback(y=>{const b=$Je(y[0],e==null?void 0:e.start_slot,e==null?void 0:e.end_slot);b!==void 0&&p(b)},[e==null?void 0:e.end_slot,e==null?void 0:e.start_slot,p]),x=Ba(v,100,{trailing:!0});return EJe("pointerup",()=>{i.current=!1,o(!1)}),u.jsx(W,{direction:"column",width:"100%",flexGrow:"1",align:"center",ref:a,children:u.jsxs(KH,{orientation:"vertical",className:Yi.sliderRoot,style:{zIndex:Vf},value:n,onValueChange:y=>{i.current=!0,r(y),x(y),o(!0)},onValueCommit:()=>{i.current=!1,x.flush(),o(!1)},max:PR,children:[u.jsxs(XH,{className:Yi.sliderTrack,children:[u.jsx(zJe,{isSliderChangingValueRef:i,setSliderValue:r},e==null?void 0:e.epoch),u.jsx(WJe,{updateSlot:p,slotHeight:l}),u.jsx(ZJe,{updateSlot:p}),u.jsx(YJe,{updateSlot:p})]}),u.jsx(DJe,{isOpen:c})]})})}function OJe({isSliderChangingValueRef:e,setSliderValue:t}){const n=J(fi),r=J(XN),i=J(eu),o=J(An),a=J(Tg),[s,l]=m.useReducer(MJe,{slot:i,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot},Bp),c=m.useMemo(()=>RJe(n,s),[n,s]);return Qu(()=>{m.startTransition(()=>{l({slot:i,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot})})},c),m.useEffect(()=>{if(e.current)return;const d=o?Bp({slot:o,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot}):a===$b.MySlots?Bp({slot:r,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot}):s,f=NJe(d);t(p=>p[0]===f?p:[f])},[n==null?void 0:n.end_slot,n==null?void 0:n.start_slot,s,e,t,o,a,r]),u.jsx(Mt,{className:Yi.epochProgress,height:`${s*100}%`})}const zJe=m.memo(OJe);function DJe({isOpen:e}){const t=J(An),{showNav:n}=Fg();return u.jsx(JH,{className:Te(Yi.sliderThumb,{[Yi.collapsed]:!n}),children:u.jsx(Z,{size:"1",className:Te("rt-TooltipContent","rt-TooltipText",Yi.tooltip,e?Yi.show:Yi.hide),children:t})})}const AJe=e=>fe(t=>{const n=t(eu);return e>(n??0)});function FJe({slot:e,pct:t,height:n,updateSlot:r}){const i=J(Xf),o=J(m.useMemo(()=>AJe(e),[e])),a=l=>c=>{c.stopPropagation(),c.preventDefault(),r(l)},s=i?e{if(!n||!(r!=null&&r.length))return;const o=r.map(a=>({slot:a,pct:Bp({slot:a,epochStartSlot:n.start_slot,epochEndSlot:n.end_slot})}));return Yle(o,.005)},[n,r]);return u.jsx(u.Fragment,{children:i==null?void 0:i.map(({slot:o,pct:a})=>u.jsx(UJe,{slot:o,pct:a,height:t,updateSlot:e},o))})}const WJe=m.memo(BJe);function VJe({slot:e,pct:t,updateSlot:n}){const r=i=>o=>{o.stopPropagation(),o.preventDefault(),n(i)};return u.jsx(u.Fragment,{children:u.jsx("div",{className:Te(Yi.skippedSlot,Yi.clickable),style:{bottom:`${t*100}%`},onPointerDown:r(e),children:u.jsx("img",{src:fJe,alt:"skipped slot",className:Te(Yi.skippedSlotIcon,Yi.clickable),style:{bottom:"-3px"},onPointerDown:r(e)})})})}function HJe({updateSlot:e}){const t=J(fi),n=J(u3),r=m.useMemo(()=>{if(!t||!(n!=null&&n.length))return;const i=n.map(o=>({slot:o,pct:Bp({slot:o,epochStartSlot:t.start_slot,epochEndSlot:t.end_slot})}));return Yle(i,.005)},[t,n]);return u.jsx(u.Fragment,{children:r==null?void 0:r.map(({slot:i,pct:o})=>u.jsx(VJe,{slot:i,pct:o,updateSlot:e},i))})}const ZJe=m.memo(HJe);function qJe({slot:e,pct:t,updateSlot:n}){const r=i=>o=>{o.stopPropagation(),o.preventDefault(),n(i)};return u.jsxs(u.Fragment,{children:[u.jsx(Mt,{className:Te(Yi.firstProcessedSlot,Yi.clickable),style:{bottom:`${t*100}%`},onPointerDown:r(e)}),u.jsx("img",{src:hJe,alt:"first processed slot",className:Te(Yi.firstProcessedSlotIcon,Yi.clickable),style:{bottom:`calc(${t*100}%)`},onPointerDown:r(e)})]})}function GJe({updateSlot:e}){const t=J(fi),n=J(Xf),r=m.useMemo(()=>{if(!(!n||!t))return Bp({slot:n,epochStartSlot:t.start_slot,epochEndSlot:t.end_slot})},[t,n]);return!r||!n?null:u.jsx(qJe,{slot:n,pct:r,updateSlot:e})}const YJe=m.memo(GJe),Kle=kb+Sb;function KJe(){const e=Hn(Vte),{showNav:t,occupyRowWidth:n,showOnlyEpochBar:r}=Fg(),i=t?fN:0,o=m.useMemo(()=>r?Wte:$Le,[r]);return u.jsxs(u.Fragment,{children:[u.jsx(XJe,{}),u.jsx("div",{style:{flexShrink:0,width:n?`${o}px`:"0"},children:u.jsxs(W,{width:t?`${o+i}px`:"0",overflow:t?"visible":"hidden",className:Te("sticky",Ip.slotNavContainer,{[Ip.navBackground]:!r}),style:{zIndex:Vf-1},top:`${Kle}px`,height:`calc(100vh - ${Kle}px)`,ml:`${-i}px`,pl:`${i}px`,pb:"2",children:[u.jsxs(W,{flexShrink:"0",direction:"column",width:`${dN}px`,pt:e?"0":`${cN+Wf}px`,children:[e&&u.jsx("div",{style:{marginBottom:`${Wf}px`},children:u.jsx(V$,{})}),u.jsx(LJe,{})]}),!r&&u.jsxs(W,{ml:`${ck}px`,direction:"column",width:`${hN}px`,flexShrink:"0",gap:`${Wf}px`,children:[u.jsx(dJe,{}),u.jsx(W,{flexGrow:"1",children:u.jsx($s,{children:({height:a,width:s})=>u.jsx(iJe,{width:s,height:a})})})]})]})})]})}function XJe(){const e=Ee(An),t=J(Cn);return m.useEffect(()=>{t!==void 0&&e(t)},[t,e]),null}const JJe=ca(),s1=C9e({component:QJe,beforeLoad:()=>JJe.set(gd.slot,void 0)});function QJe(){const e=J(V3);return u.jsxs(u.Fragment,{children:[u.jsx(uXe,{}),u.jsx(nXe,{children:u.jsxs("div",{id:"scroll-container",style:{position:"relative",height:"100dvh",maxHeight:e?"100vh":"unset",overflowY:e?"hidden":"auto",willChange:"scroll-position",contain:"paint",isolation:"isolate"},children:[u.jsx(foe,{}),u.jsxs(W,{className:"app-width-container",px:"2",position:"relative",children:[u.jsx(KJe,{}),u.jsx(eQe,{})]})]})})]})}function eQe(){const e=Yk()==="Schedule",{setIsNavCollapsed:t,isNarrowScreen:n,occupyRowWidth:r,blurBackground:i}=Fg();return m.useEffect(()=>{t(n)},[n,t]),u.jsxs(Mt,{position:"relative",flexGrow:"1",minWidth:"0",pb:"2",pl:e||!r?"0px":`${uN-Wf}px`,children:[u.jsx(Dq,{}),i&&u.jsx(ioe,{})]})}const tQe="_text_nk1yn_1",nQe={text:tQe};function kd({text:e}){return u.jsx(Z,{className:nQe.text,children:e})}var rQe=typeof Ac=="object"&&Ac&&Ac.Object===Object&&Ac,Xle=rQe,iQe=Xle,oQe=typeof self=="object"&&self&&self.Object===Object&&self,aQe=iQe||oQe||Function("return this")(),sc=aQe,sQe=sc,lQe=sQe.Symbol,l1=lQe,Jle=l1,Qle=Object.prototype,uQe=Qle.hasOwnProperty,cQe=Qle.toString,Dx=Jle?Jle.toStringTag:void 0;function dQe(e){var t=uQe.call(e,Dx),n=e[Dx];try{e[Dx]=void 0;var r=!0}catch{}var i=cQe.call(e);return r&&(t?e[Dx]=n:delete e[Dx]),i}var fQe=dQe,hQe=Object.prototype,pQe=hQe.toString;function mQe(e){return pQe.call(e)}var gQe=mQe,eue=l1,vQe=fQe,yQe=gQe,bQe="[object Null]",xQe="[object Undefined]",tue=eue?eue.toStringTag:void 0;function _Qe(e){return e==null?e===void 0?xQe:bQe:tue&&tue in Object(e)?vQe(e):yQe(e)}var Wp=_Qe;function wQe(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Sd=wQe,kQe=Wp,SQe=Sd,CQe="[object AsyncFunction]",jQe="[object Function]",TQe="[object GeneratorFunction]",IQe="[object Proxy]";function EQe(e){if(!SQe(e))return!1;var t=kQe(e);return t==jQe||t==TQe||t==CQe||t==IQe}var B6=EQe;const nue=to(B6);var NQe=sc,$Qe=NQe["__core-js_shared__"],MQe=$Qe,OR=MQe,rue=function(){var e=/[^.]+$/.exec(OR&&OR.keys&&OR.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function RQe(e){return!!rue&&rue in e}var LQe=RQe,PQe=Function.prototype,OQe=PQe.toString;function zQe(e){if(e!=null){try{return OQe.call(e)}catch{}try{return e+""}catch{}}return""}var iue=zQe,DQe=B6,AQe=LQe,FQe=Sd,UQe=iue,BQe=/[\\^$.*+?()[\]{}|]/g,WQe=/^\[object .+?Constructor\]$/,VQe=Function.prototype,HQe=Object.prototype,ZQe=VQe.toString,qQe=HQe.hasOwnProperty,GQe=RegExp("^"+ZQe.call(qQe).replace(BQe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function YQe(e){if(!FQe(e)||AQe(e))return!1;var t=DQe(e)?GQe:WQe;return t.test(UQe(e))}var KQe=YQe;function XQe(e,t){return e==null?void 0:e[t]}var JQe=XQe,QQe=KQe,eet=JQe;function tet(e,t){var n=eet(e,t);return QQe(n)?n:void 0}var Vp=tet,net=Vp,ret=net(Object,"create"),W6=ret,oue=W6;function iet(){this.__data__=oue?oue(null):{},this.size=0}var oet=iet;function aet(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var set=aet,uet=W6,cet="__lodash_hash_undefined__",det=Object.prototype,fet=det.hasOwnProperty;function het(e){var t=this.__data__;if(uet){var n=t[e];return n===cet?void 0:n}return fet.call(t,e)?t[e]:void 0}var pet=het,met=W6,get=Object.prototype,vet=get.hasOwnProperty;function yet(e){var t=this.__data__;return met?t[e]!==void 0:vet.call(t,e)}var bet=yet,xet=W6,_et="__lodash_hash_undefined__";function wet(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=xet&&t===void 0?_et:t,this}var ket=wet,Cet=oet,jet=set,Tet=pet,Iet=bet,Eet=ket;function u1(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}var Zet=Het,qet=V6;function Get(e,t){var n=this.__data__,r=qet(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Yet=Get,Ket=Met,Xet=Fet,Jet=Wet,Qet=Zet,ett=Yet;function c1(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}var sue=Ytt;function Ktt(e,t,n){for(var r=-1,i=e==null?0:e.length;++r=mnt){var c=t?null:hnt(e);if(c)return pnt(c);a=!1,i=fnt,l=new unt}else l=t?[]:s;e:for(;++r0&&f.height>0,b=Math.round(n[0]),w=Math.round(n[1]);y&&(r==="top"?(b-=f.width/2,w-=f.height+14):r==="right"?(b+=14,w-=f.height/2):r==="bottom"?(b-=f.width/2,w+=14):r==="left"?(b-=f.width+14,w-=f.height/2):r==="center"&&(b-=f.width/2,w-=f.height/2),v={transform:hue(b,w)},p.current||(x=!0),p.current=[b,w]);var _=ex({to:v,config:l,immediate:!s||x}),S=Hp({},Tnt,o.tooltip.wrapper,{transform:(t=_.transform)!=null?t:hue(b,w),opacity:_.transform?1:0});return u.jsx(iu.div,{ref:d,style:S,children:i})});pue.displayName="TooltipWrapper";var WR=m.memo(function(e){var t=e.size,n=t===void 0?12:t,r=e.color,i=e.style;return u.jsx("span",{style:Hp({display:"block",width:n,height:n,background:r},i===void 0?{}:i)})}),VR=m.memo(function(e){var t,n=e.id,r=e.value,i=e.format,o=e.enableChip,a=o!==void 0&&o,s=e.color,l=e.renderContent,c=Ms(),d=VL(i);if(typeof l=="function")t=l();else{var f=r;d!==void 0&&f!==void 0&&(f=d(f)),t=u.jsxs("div",{style:c.tooltip.basic,children:[a&&u.jsx(WR,{color:s,style:c.tooltip.chip}),f!==void 0?u.jsxs("span",{children:[n,": ",u.jsx("strong",{children:""+f})]}):n]})}return u.jsx("div",{style:c.tooltip.container,children:t})}),Int={width:"100%",borderCollapse:"collapse"},Ent=m.memo(function(e){var t,n=e.title,r=e.rows,i=r===void 0?[]:r,o=e.renderContent,a=Ms();return i.length?(t=typeof o=="function"?o():u.jsxs("div",{children:[n&&n,u.jsx("table",{style:Hp({},Int,a.tooltip.table),children:u.jsx("tbody",{children:i.map(function(s,l){return u.jsx("tr",{children:s.map(function(c,d){return u.jsx("td",{style:a.tooltip.tableCell,children:c},d)})},l)})})})]}),u.jsx("div",{style:a.tooltip.container,children:t})):null});Ent.displayName="TableTooltip";var HR=m.memo(function(e){var t=e.x0,n=e.x1,r=e.y0,i=e.y1,o=Ms(),a=w1(),s=a.animate,l=a.config,c=m.useMemo(function(){return Hp({},o.crosshair.line,{pointerEvents:"none"})},[o.crosshair.line]),d=ex({x1:t,x2:n,y1:r,y2:i,config:l,immediate:!s});return u.jsx(iu.line,Hp({},d,{fill:"none",style:c}))});HR.displayName="CrosshairLine";var Nnt=m.memo(function(e){var t,n,r=e.width,i=e.height,o=e.type,a=e.x,s=e.y;return o==="cross"?(t={x0:a,x1:a,y0:0,y1:i},n={x0:0,x1:r,y0:s,y1:s}):o==="top-left"?(t={x0:a,x1:a,y0:0,y1:s},n={x0:0,x1:a,y0:s,y1:s}):o==="top"?t={x0:a,x1:a,y0:0,y1:s}:o==="top-right"?(t={x0:a,x1:a,y0:0,y1:s},n={x0:a,x1:r,y0:s,y1:s}):o==="right"?n={x0:a,x1:r,y0:s,y1:s}:o==="bottom-right"?(t={x0:a,x1:a,y0:s,y1:i},n={x0:a,x1:r,y0:s,y1:s}):o==="bottom"?t={x0:a,x1:a,y0:s,y1:i}:o==="bottom-left"?(t={x0:a,x1:a,y0:s,y1:i},n={x0:0,x1:a,y0:s,y1:s}):o==="left"?n={x0:0,x1:a,y0:s,y1:s}:o==="x"?t={x0:a,x1:a,y0:0,y1:i}:o==="y"&&(n={x0:0,x1:r,y0:s,y1:s}),u.jsxs(u.Fragment,{children:[t&&u.jsx(HR,{x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1}),n&&u.jsx(HR,{x0:n.x0,x1:n.x1,y0:n.y0,y1:n.y1})]})});Nnt.displayName="Crosshair";var mue=m.createContext({showTooltipAt:function(){},showTooltipFromEvent:function(){},hideTooltip:function(){}}),ZR={isVisible:!1,position:[null,null],content:null,anchor:null},gue=m.createContext(ZR),$nt=function(e){var t=m.useState(ZR),n=t[0],r=t[1],i=m.useCallback(function(s,l,c){var d=l[0],f=l[1];c===void 0&&(c="top"),r({isVisible:!0,position:[d,f],anchor:c,content:s})},[r]),o=m.useCallback(function(s,l,c){c===void 0&&(c="top");var d=e.current.getBoundingClientRect(),f=e.current.offsetWidth,p=f===d.width?1:f/d.width,v="touches"in l?l.touches[0]:l,x=v.clientX,y=v.clientY,b=(x-d.left)*p,w=(y-d.top)*p;c!=="left"&&c!=="right"||(c=b-1&&e%1==0&&e<=Vrt}var JR=Hrt,Zrt=B6,qrt=JR;function Grt(e){return e!=null&&qrt(e.length)&&!Zrt(e)}var K6=Grt,Yrt=K6,Krt=lc;function Xrt(e){return Krt(e)&&Yrt(e)}var Nue=Xrt,X6={exports:{}};function Jrt(){return!1}var Qrt=Jrt;X6.exports,function(e,t){var n=sc,r=Qrt,i=t&&!t.nodeType&&t,o=i&&!0&&e&&!e.nodeType&&e,a=o&&o.exports===i,s=a?n.Buffer:void 0,l=s?s.isBuffer:void 0,c=l||r;e.exports=c}(X6,X6.exports);var J6=X6.exports,eit=Wp,tit=KR,nit=lc,rit="[object Object]",iit=Function.prototype,oit=Object.prototype,$ue=iit.toString,ait=oit.hasOwnProperty,sit=$ue.call(Object);function lit(e){if(!nit(e)||eit(e)!=rit)return!1;var t=tit(e);if(t===null)return!0;var n=ait.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&$ue.call(n)==sit}var Mue=lit;const Fx=to(Mue);var uit=Wp,cit=JR,dit=lc,fit="[object Arguments]",hit="[object Array]",pit="[object Boolean]",mit="[object Date]",git="[object Error]",vit="[object Function]",yit="[object Map]",bit="[object Number]",xit="[object Object]",_it="[object RegExp]",wit="[object Set]",kit="[object String]",Sit="[object WeakMap]",Cit="[object ArrayBuffer]",jit="[object DataView]",Tit="[object Float32Array]",Iit="[object Float64Array]",Eit="[object Int8Array]",Nit="[object Int16Array]",$it="[object Int32Array]",Mit="[object Uint8Array]",Rit="[object Uint8ClampedArray]",Lit="[object Uint16Array]",Pit="[object Uint32Array]",Br={};Br[Tit]=Br[Iit]=Br[Eit]=Br[Nit]=Br[$it]=Br[Mit]=Br[Rit]=Br[Lit]=Br[Pit]=!0,Br[fit]=Br[hit]=Br[Cit]=Br[pit]=Br[jit]=Br[mit]=Br[git]=Br[vit]=Br[yit]=Br[bit]=Br[xit]=Br[_it]=Br[wit]=Br[kit]=Br[Sit]=!1;function Oit(e){return dit(e)&&cit(e.length)&&!!Br[uit(e)]}var zit=Oit;function Dit(e){return function(t){return e(t)}}var Q6=Dit,e5={exports:{}};e5.exports,function(e,t){var n=Xle,r=t&&!t.nodeType&&t,i=r&&!0&&e&&!e.nodeType&&e,o=i&&i.exports===r,a=o&&n.process,s=function(){try{var l=i&&i.require&&i.require("util").types;return l||a&&a.binding&&a.binding("util")}catch{}}();e.exports=s}(e5,e5.exports);var QR=e5.exports,Ait=zit,Fit=Q6,Rue=QR,Lue=Rue&&Rue.isTypedArray,Uit=Lue?Fit(Lue):Ait,eL=Uit;function Bit(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var Pue=Bit,Wit=GR,Vit=Ax,Hit=Object.prototype,Zit=Hit.hasOwnProperty;function qit(e,t,n){var r=e[t];(!(Zit.call(e,t)&&Vit(r,n))||n===void 0&&!(t in e))&&Wit(e,t,n)}var tL=qit,Git=tL,Yit=GR;function Kit(e,t,n,r){var i=!n;n||(n={});for(var o=-1,a=t.length;++o-1&&e%1==0&&e0){if(++t>=aat)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var cat=uat,dat=oat,fat=cat,hat=fat(dat),Zue=hat,pat=Bue,mat=Vue,gat=Zue;function vat(e,t){return gat(mat(e,t,pat),e+"")}var que=vat,yat=Ax,bat=K6,xat=t5,_at=Sd;function wat(e,t,n){if(!_at(n))return!1;var r=typeof t;return(r=="number"?bat(n)&&xat(t,n.length):r=="string"&&t in n)?yat(n[t],e):!1}var kat=wat,Sat=que,Cat=kat;function jat(e){return Sat(function(t,n){var r=-1,i=n.length,o=i>1?n[i-1]:void 0,a=i>2?n[2]:void 0;for(o=e.length>3&&typeof o=="function"?(i--,o):void 0,a&&Cat(n[0],n[1],a)&&(o=i<3?void 0:o,i=1),t=Object(t);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?i5(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?i5(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Nst.exec(e))?new Vo(t[1],t[2],t[3],1):(t=$st.exec(e))?new Vo(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Mst.exec(e))?i5(t[1],t[2],t[3],t[4]):(t=Rst.exec(e))?i5(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Lst.exec(e))?cce(t[1],t[2]/100,t[3]/100,1):(t=Pst.exec(e))?cce(t[1],t[2]/100,t[3]/100,t[4]):rce.hasOwnProperty(e)?ace(rce[e]):e==="transparent"?new Vo(NaN,NaN,NaN,0):null}function ace(e){return new Vo(e>>16&255,e>>8&255,e&255,1)}function i5(e,t,n,r){return r<=0&&(e=t=n=NaN),new Vo(e,t,n,r)}function sce(e){return e instanceof h1||(e=aL(e)),e?(e=e.rgb(),new Vo(e.r,e.g,e.b,e.opacity)):new Vo}function qp(e,t,n,r){return arguments.length===1?sce(e):new Vo(e,t,n,r??1)}function Vo(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}r5(Vo,qp,oL(h1,{brighter(e){return e=e==null?p1:Math.pow(p1,e),new Vo(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Zp:Math.pow(Zp,e),new Vo(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Vo(Gp(this.r),Gp(this.g),Gp(this.b),o5(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:lce,formatHex:lce,formatHex8:Dst,formatRgb:uce,toString:uce}));function lce(){return`#${Yp(this.r)}${Yp(this.g)}${Yp(this.b)}`}function Dst(){return`#${Yp(this.r)}${Yp(this.g)}${Yp(this.b)}${Yp((isNaN(this.opacity)?1:this.opacity)*255)}`}function uce(){const e=o5(this.opacity);return`${e===1?"rgb(":"rgba("}${Gp(this.r)}, ${Gp(this.g)}, ${Gp(this.b)}${e===1?")":`, ${e})`}`}function o5(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Gp(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Yp(e){return e=Gp(e),(e<16?"0":"")+e.toString(16)}function cce(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new pu(e,t,n,r)}function dce(e){if(e instanceof pu)return new pu(e.h,e.s,e.l,e.opacity);if(e instanceof h1||(e=aL(e)),!e)return new pu;if(e instanceof pu)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),a=NaN,s=o-i,l=(o+i)/2;return s?(t===o?a=(n-r)/s+(n0&&l<1?0:a,new pu(a,s,l,e.opacity)}function Ast(e,t,n,r){return arguments.length===1?dce(e):new pu(e,t,n,r??1)}function pu(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}r5(pu,Ast,oL(h1,{brighter(e){return e=e==null?p1:Math.pow(p1,e),new pu(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Zp:Math.pow(Zp,e),new pu(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Vo(sL(e>=240?e-240:e+120,i,r),sL(e,i,r),sL(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new pu(fce(this.h),a5(this.s),a5(this.l),o5(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=o5(this.opacity);return`${e===1?"hsl(":"hsla("}${fce(this.h)}, ${a5(this.s)*100}%, ${a5(this.l)*100}%${e===1?")":`, ${e})`}`}}));function fce(e){return e=(e||0)%360,e<0?e+360:e}function a5(e){return Math.max(0,Math.min(1,e||0))}function sL(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const Fst=Math.PI/180,Ust=180/Math.PI;var hce=-.14861,lL=1.78277,uL=-.29227,s5=-.90649,Hx=1.97294,pce=Hx*s5,mce=Hx*lL,gce=lL*uL-s5*hce;function Bst(e){if(e instanceof Kp)return new Kp(e.h,e.s,e.l,e.opacity);e instanceof Vo||(e=sce(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(gce*r+pce*t-mce*n)/(gce+pce-mce),o=r-i,a=(Hx*(n-i)-uL*o)/s5,s=Math.sqrt(a*a+o*o)/(Hx*i*(1-i)),l=s?Math.atan2(a,o)*Ust-120:NaN;return new Kp(l<0?l+360:l,s,i,e.opacity)}function cc(e,t,n,r){return arguments.length===1?Bst(e):new Kp(e,t,n,r??1)}function Kp(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}r5(Kp,cc,oL(h1,{brighter(e){return e=e==null?p1:Math.pow(p1,e),new Kp(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Zp:Math.pow(Zp,e),new Kp(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*Fst,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new Vo(255*(t+n*(hce*r+lL*i)),255*(t+n*(uL*r+s5*i)),255*(t+n*(Hx*r)),this.opacity)}}));function Wst(e,t,n,r,i){var o=e*e,a=o*e;return((1-3*e+3*o-a)*t+(4-6*o+3*a)*n+(1+3*e+3*o-3*a)*r+a*i)/6}function Vst(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],o=e[r+1],a=r>0?e[r-1]:2*i-o,s=r()=>e;function vce(e,t){return function(n){return e+n*t}}function Hst(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Zst(e,t){var n=t-e;return n?vce(e,n>180||n<-180?n-360*Math.round(n/360):n):cL(isNaN(e)?t:e)}function qst(e){return(e=+e)==1?g1:function(t,n){return n-t?Hst(t,n,e):cL(isNaN(t)?n:t)}}function g1(e,t){var n=t-e;return n?vce(e,n):cL(isNaN(e)?t:e)}(function e(t){var n=qst(t);function r(i,o){var a=n((i=qp(i)).r,(o=qp(o)).r),s=n(i.g,o.g),l=n(i.b,o.b),c=g1(i.opacity,o.opacity);return function(d){return i.r=a(d),i.g=s(d),i.b=l(d),i.opacity=c(d),i+""}}return r.gamma=e,r})(1);function Gst(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),o=new Array(n),a,s;for(a=0;a=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n=i)&&(n=i)}return n}function wce(e,t){let n;if(t===void 0)for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function fL(e,t){let n=0;if(t===void 0)for(let r of e)(r=+r)&&(n+=r);else{let r=-1;for(let i of e)(i=+t(i,++r,e))&&(n+=i)}return n}function llt(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}const kce=Symbol("implicit");function dc(){var e=new bce,t=[],n=[],r=kce;function i(o){let a=e.get(o);if(a===void 0){if(r!==kce)return r;e.set(o,a=t.push(o)-1)}return n[a%n.length]}return i.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new bce;for(const a of o)e.has(a)||e.set(a,t.push(a)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return dc(t,n).unknown(r)},llt.apply(i,arguments),i}function ult(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function l5(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function clt(e){return e=l5(Math.abs(e)),e?e[1]:NaN}function dlt(e,t){return function(n,r){for(var i=n.length,o=[],a=0,s=e[0],l=0;i>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),o.push(n.substring(i-=s,i+s)),!((l+=s+1)>r));)s=e[a=(a+1)%e.length];return o.reverse().join(t)}}function flt(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var hlt=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function hL(e){if(!(t=hlt.exec(e)))throw new Error("invalid format: "+e);var t;return new pL({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}hL.prototype=pL.prototype;function pL(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}pL.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function plt(e){e:for(var t=e.length,n=1,r=-1,i;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var Sce;function mlt(e,t){var n=l5(e,t);if(!n)return e+"";var r=n[0],i=n[1],o=i-(Sce=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+l5(e,Math.max(0,t+o-1))[0]}function Cce(e,t){var n=l5(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const jce={"%":function(e,t){return(e*100).toFixed(t)},b:function(e){return Math.round(e).toString(2)},c:function(e){return e+""},d:ult,e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},g:function(e,t){return e.toPrecision(t)},o:function(e){return Math.round(e).toString(8)},p:function(e,t){return Cce(e*100,t)},r:Cce,s:mlt,X:function(e){return Math.round(e).toString(16).toUpperCase()},x:function(e){return Math.round(e).toString(16)}};function Tce(e){return e}var Ice=Array.prototype.map,Ece=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function glt(e){var t=e.grouping===void 0||e.thousands===void 0?Tce:dlt(Ice.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal+"",o=e.numerals===void 0?Tce:flt(Ice.call(e.numerals,String)),a=e.percent===void 0?"%":e.percent+"",s=e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function c(f){f=hL(f);var p=f.fill,v=f.align,x=f.sign,y=f.symbol,b=f.zero,w=f.width,_=f.comma,S=f.precision,C=f.trim,j=f.type;j==="n"?(_=!0,j="g"):jce[j]||(S===void 0&&(S=12),C=!0,j="g"),(b||p==="0"&&v==="=")&&(b=!0,p="0",v="=");var T=y==="$"?n:y==="#"&&/[boxX]/.test(j)?"0"+j.toLowerCase():"",E=y==="$"?r:/[%p]/.test(j)?a:"",$=jce[j],D=/[defgprs%]/.test(j);S=S===void 0?6:/[gprs]/.test(j)?Math.max(1,Math.min(21,S)):Math.max(0,Math.min(20,S));function M(O){var te=T,q=E,P,X,A;if(j==="c")q=$(O)+q,O="";else{O=+O;var Y=O<0||1/O<0;if(O=isNaN(O)?l:$(Math.abs(O),S),C&&(O=plt(O)),Y&&+O==0&&x!=="+"&&(Y=!1),te=(Y?x==="("?x:s:x==="-"||x==="("?"":x)+te,q=(j==="s"?Ece[8+Sce/3]:"")+q+(Y&&x==="("?")":""),D){for(P=-1,X=O.length;++PA||A>57){q=(A===46?i+O.slice(P+1):O.slice(P))+q,O=O.slice(0,P);break}}}_&&!b&&(O=t(O,1/0));var F=te.length+O.length+q.length,H=F>1)+te+O+q+H.slice(F);break;default:O=H+te+O+q;break}return o(O)}return M.toString=function(){return f+""},M}function d(f,p){var v=c((f=hL(f),f.type="f",f)),x=Math.max(-8,Math.min(8,Math.floor(clt(p)/3)))*3,y=Math.pow(10,-x),b=Ece[8+x/3];return function(w){return v(y*w)+b}}return{format:c,formatPrefix:d}}var u5,Nce;vlt({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function vlt(e){return u5=glt(e),Nce=u5.format,u5.formatPrefix,u5}var mL=new Date,gL=new Date;function Cd(e,t,n,r){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=function(o){return e(o=new Date(+o)),o},i.ceil=function(o){return e(o=new Date(o-1)),t(o,1),e(o),o},i.round=function(o){var a=i(o),s=i.ceil(o);return o-a0))return l;do l.push(c=new Date(+o)),t(o,s),e(o);while(c=a)for(;e(a),!o(a);)a.setTime(a-1)},function(a,s){if(a>=a)if(s<0)for(;++s<=0;)for(;t(a,-1),!o(a););else for(;--s>=0;)for(;t(a,1),!o(a););})},n&&(i.count=function(o,a){return mL.setTime(+o),gL.setTime(+a),e(mL),e(gL),Math.floor(n(mL,gL))},i.every=function(o){return o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?function(a){return r(a)%o===0}:function(a){return i.count(0,a)%o===0}):i}),i}const ylt=1e3,vL=ylt*60,blt=vL*60,yL=blt*24,$ce=yL*7;var bL=Cd(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*vL)/yL,e=>e.getDate()-1);bL.range;function Xp(e){return Cd(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*vL)/$ce})}var Mce=Xp(0),c5=Xp(1),xlt=Xp(2),_lt=Xp(3),v1=Xp(4),wlt=Xp(5),klt=Xp(6);Mce.range,c5.range,xlt.range,_lt.range,v1.range,wlt.range,klt.range;var Jp=Cd(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()});Jp.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:Cd(function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n*e)})},Jp.range;var xL=Cd(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/yL},function(e){return e.getUTCDate()-1});xL.range;function Qp(e){return Cd(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/$ce})}var Rce=Qp(0),d5=Qp(1),Slt=Qp(2),Clt=Qp(3),y1=Qp(4),jlt=Qp(5),Tlt=Qp(6);Rce.range,d5.range,Slt.range,Clt.range,y1.range,jlt.range,Tlt.range;var em=Cd(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()});em.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:Cd(function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})},em.range;function _L(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function wL(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Zx(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function Ilt(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,o=e.days,a=e.shortDays,s=e.months,l=e.shortMonths,c=qx(i),d=Gx(i),f=qx(o),p=Gx(o),v=qx(a),x=Gx(a),y=qx(s),b=Gx(s),w=qx(l),_=Gx(l),S={a:Y,A:F,b:H,B:ee,c:null,d:Ace,e:Ace,f:Xlt,g:sut,G:uut,H:Glt,I:Ylt,j:Klt,L:Fce,m:Jlt,M:Qlt,p:ce,q:B,Q:Zce,s:qce,S:eut,u:tut,U:nut,V:rut,w:iut,W:out,x:null,X:null,y:aut,Y:lut,Z:cut,"%":Hce},C={a:ae,A:je,b:me,B:ke,c:null,d:Bce,e:Bce,f:put,g:Sut,G:jut,H:dut,I:fut,j:hut,L:Wce,m:mut,M:gut,p:he,q:ue,Q:Zce,s:qce,S:vut,u:yut,U:but,V:xut,w:_ut,W:wut,x:null,X:null,y:kut,Y:Cut,Z:Tut,"%":Hce},j={a:M,A:O,b:te,B:q,c:P,d:zce,e:zce,f:Vlt,g:Oce,G:Pce,H:Dce,I:Dce,j:Flt,L:Wlt,m:Alt,M:Ult,p:D,q:Dlt,Q:Zlt,s:qlt,S:Blt,u:Rlt,U:Llt,V:Plt,w:Mlt,W:Olt,x:X,X:A,y:Oce,Y:Pce,Z:zlt,"%":Hlt};S.x=T(n,S),S.X=T(r,S),S.c=T(t,S),C.x=T(n,C),C.X=T(r,C),C.c=T(t,C);function T(re,ge){return function($e){var pe=[],ye=-1,Se=0,Ce=re.length,Ue,Ge,_t;for($e instanceof Date||($e=new Date(+$e));++ye53)return null;"w"in pe||(pe.w=1),"Z"in pe?(Se=wL(Zx(pe.y,0,1)),Ce=Se.getUTCDay(),Se=Ce>4||Ce===0?d5.ceil(Se):d5(Se),Se=xL.offset(Se,(pe.V-1)*7),pe.y=Se.getUTCFullYear(),pe.m=Se.getUTCMonth(),pe.d=Se.getUTCDate()+(pe.w+6)%7):(Se=_L(Zx(pe.y,0,1)),Ce=Se.getDay(),Se=Ce>4||Ce===0?c5.ceil(Se):c5(Se),Se=bL.offset(Se,(pe.V-1)*7),pe.y=Se.getFullYear(),pe.m=Se.getMonth(),pe.d=Se.getDate()+(pe.w+6)%7)}else("W"in pe||"U"in pe)&&("w"in pe||(pe.w="u"in pe?pe.u%7:"W"in pe?1:0),Ce="Z"in pe?wL(Zx(pe.y,0,1)).getUTCDay():_L(Zx(pe.y,0,1)).getDay(),pe.m=0,pe.d="W"in pe?(pe.w+6)%7+pe.W*7-(Ce+5)%7:pe.w+pe.U*7-(Ce+6)%7);return"Z"in pe?(pe.H+=pe.Z/100|0,pe.M+=pe.Z%100,wL(pe)):_L(pe)}}function $(re,ge,$e,pe){for(var ye=0,Se=ge.length,Ce=$e.length,Ue,Ge;ye=Ce)return-1;if(Ue=ge.charCodeAt(ye++),Ue===37){if(Ue=ge.charAt(ye++),Ge=j[Ue in Lce?ge.charAt(ye++):Ue],!Ge||(pe=Ge(re,$e,pe))<0)return-1}else if(Ue!=$e.charCodeAt(pe++))return-1}return pe}function D(re,ge,$e){var pe=c.exec(ge.slice($e));return pe?(re.p=d.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function M(re,ge,$e){var pe=v.exec(ge.slice($e));return pe?(re.w=x.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function O(re,ge,$e){var pe=f.exec(ge.slice($e));return pe?(re.w=p.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function te(re,ge,$e){var pe=w.exec(ge.slice($e));return pe?(re.m=_.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function q(re,ge,$e){var pe=y.exec(ge.slice($e));return pe?(re.m=b.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function P(re,ge,$e){return $(re,t,ge,$e)}function X(re,ge,$e){return $(re,n,ge,$e)}function A(re,ge,$e){return $(re,r,ge,$e)}function Y(re){return a[re.getDay()]}function F(re){return o[re.getDay()]}function H(re){return l[re.getMonth()]}function ee(re){return s[re.getMonth()]}function ce(re){return i[+(re.getHours()>=12)]}function B(re){return 1+~~(re.getMonth()/3)}function ae(re){return a[re.getUTCDay()]}function je(re){return o[re.getUTCDay()]}function me(re){return l[re.getUTCMonth()]}function ke(re){return s[re.getUTCMonth()]}function he(re){return i[+(re.getUTCHours()>=12)]}function ue(re){return 1+~~(re.getUTCMonth()/3)}return{format:function(re){var ge=T(re+="",S);return ge.toString=function(){return re},ge},parse:function(re){var ge=E(re+="",!1);return ge.toString=function(){return re},ge},utcFormat:function(re){var ge=T(re+="",C);return ge.toString=function(){return re},ge},utcParse:function(re){var ge=E(re+="",!0);return ge.toString=function(){return re},ge}}}var Lce={"-":"",_:" ",0:"0"},lo=/^\s*\d+/,Elt=/^%/,Nlt=/[\\^$*+?|[\]().{}]/g;function Pn(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",o=i.length;return r+(o[t.toLowerCase(),n]))}function Mlt(e,t,n){var r=lo.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function Rlt(e,t,n){var r=lo.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function Llt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function Plt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function Olt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Pce(e,t,n){var r=lo.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function Oce(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function zlt(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Dlt(e,t,n){var r=lo.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function Alt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function zce(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function Flt(e,t,n){var r=lo.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Dce(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function Ult(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function Blt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function Wlt(e,t,n){var r=lo.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function Vlt(e,t,n){var r=lo.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Hlt(e,t,n){var r=Elt.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Zlt(e,t,n){var r=lo.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function qlt(e,t,n){var r=lo.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Ace(e,t){return Pn(e.getDate(),t,2)}function Glt(e,t){return Pn(e.getHours(),t,2)}function Ylt(e,t){return Pn(e.getHours()%12||12,t,2)}function Klt(e,t){return Pn(1+bL.count(Jp(e),e),t,3)}function Fce(e,t){return Pn(e.getMilliseconds(),t,3)}function Xlt(e,t){return Fce(e,t)+"000"}function Jlt(e,t){return Pn(e.getMonth()+1,t,2)}function Qlt(e,t){return Pn(e.getMinutes(),t,2)}function eut(e,t){return Pn(e.getSeconds(),t,2)}function tut(e){var t=e.getDay();return t===0?7:t}function nut(e,t){return Pn(Mce.count(Jp(e)-1,e),t,2)}function Uce(e){var t=e.getDay();return t>=4||t===0?v1(e):v1.ceil(e)}function rut(e,t){return e=Uce(e),Pn(v1.count(Jp(e),e)+(Jp(e).getDay()===4),t,2)}function iut(e){return e.getDay()}function out(e,t){return Pn(c5.count(Jp(e)-1,e),t,2)}function aut(e,t){return Pn(e.getFullYear()%100,t,2)}function sut(e,t){return e=Uce(e),Pn(e.getFullYear()%100,t,2)}function lut(e,t){return Pn(e.getFullYear()%1e4,t,4)}function uut(e,t){var n=e.getDay();return e=n>=4||n===0?v1(e):v1.ceil(e),Pn(e.getFullYear()%1e4,t,4)}function cut(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Pn(t/60|0,"0",2)+Pn(t%60,"0",2)}function Bce(e,t){return Pn(e.getUTCDate(),t,2)}function dut(e,t){return Pn(e.getUTCHours(),t,2)}function fut(e,t){return Pn(e.getUTCHours()%12||12,t,2)}function hut(e,t){return Pn(1+xL.count(em(e),e),t,3)}function Wce(e,t){return Pn(e.getUTCMilliseconds(),t,3)}function put(e,t){return Wce(e,t)+"000"}function mut(e,t){return Pn(e.getUTCMonth()+1,t,2)}function gut(e,t){return Pn(e.getUTCMinutes(),t,2)}function vut(e,t){return Pn(e.getUTCSeconds(),t,2)}function yut(e){var t=e.getUTCDay();return t===0?7:t}function but(e,t){return Pn(Rce.count(em(e)-1,e),t,2)}function Vce(e){var t=e.getUTCDay();return t>=4||t===0?y1(e):y1.ceil(e)}function xut(e,t){return e=Vce(e),Pn(y1.count(em(e),e)+(em(e).getUTCDay()===4),t,2)}function _ut(e){return e.getUTCDay()}function wut(e,t){return Pn(d5.count(em(e)-1,e),t,2)}function kut(e,t){return Pn(e.getUTCFullYear()%100,t,2)}function Sut(e,t){return e=Vce(e),Pn(e.getUTCFullYear()%100,t,2)}function Cut(e,t){return Pn(e.getUTCFullYear()%1e4,t,4)}function jut(e,t){var n=e.getUTCDay();return e=n>=4||n===0?y1(e):y1.ceil(e),Pn(e.getUTCFullYear()%1e4,t,4)}function Tut(){return"+0000"}function Hce(){return"%"}function Zce(e){return+e}function qce(e){return Math.floor(+e/1e3)}var b1,Gce;Iut({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Iut(e){return b1=Ilt(e),Gce=b1.format,b1.parse,b1.utcFormat,b1.utcParse,b1}function en(e){for(var t=e.length/6|0,n=new Array(t),r=0;rYst(e[e.length-1]);var tm=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(en);const _5=wr(tm);var nm=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(en);const w5=wr(nm);var rm=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(en);const k5=wr(rm);var im=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(en);const S5=wr(im);var om=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(en);const C5=wr(om);var am=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(en);const j5=wr(am);var sm=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(en);const T5=wr(sm);var lm=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(en);const I5=wr(lm);var um=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(en);const E5=wr(um);var cm=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(en);const N5=wr(cm);var dm=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(en);const $5=wr(dm);var fm=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(en);const M5=wr(fm);var hm=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(en);const R5=wr(hm);var pm=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(en);const L5=wr(pm);var mm=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(en);const P5=wr(mm);var gm=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(en);const O5=wr(gm);var vm=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(en);const z5=wr(vm);var ym=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(en);const D5=wr(ym);var bm=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(en);const A5=wr(bm);var xm=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(en);const F5=wr(xm);var _m=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(en);const U5=wr(_m);var wm=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(en);const B5=wr(wm);var km=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(en);const W5=wr(km);var Sm=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(en);const V5=wr(Sm);var Cm=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(en);const H5=wr(Cm);var jm=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(en);const Z5=wr(jm);var Tm=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(en);const q5=wr(Tm);function G5(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-e*(35.34-e*(2381.73-e*(6402.7-e*(7024.72-e*2710.57)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+e*(170.73+e*(52.82-e*(131.46-e*(176.58-e*67.37)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+e*(442.36-e*(2482.43-e*(6167.24-e*(6614.94-e*2475.67)))))))+")"}const Y5=dL(cc(300,.5,0),cc(-240,.5,1));var K5=dL(cc(-100,.75,.35),cc(80,1.5,.8)),X5=dL(cc(260,.75,.35),cc(80,1.5,.8)),J5=cc();function Q5(e){(e<0||e>1)&&(e-=Math.floor(e));var t=Math.abs(e-.5);return J5.h=360*e-100,J5.s=1.5-1.5*t,J5.l=.8-.9*t,J5+""}var eS=qp(),Eut=Math.PI/3,Nut=Math.PI*2/3;function tS(e){var t;return e=(.5-e)*Math.PI,eS.r=255*(t=Math.sin(e))*t,eS.g=255*(t=Math.sin(e+Eut))*t,eS.b=255*(t=Math.sin(e+Nut))*t,eS+""}function nS(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+e*(1172.33-e*(10793.56-e*(33300.12-e*(38394.49-e*14825.05)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+e*(557.33+e*(1225.33-e*(3574.96-e*(1073.77+e*707.56)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+e*(3211.1-e*(15327.97-e*(27814-e*(22569.18-e*6838.66)))))))+")"}function rS(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}const iS=rS(en("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));var oS=rS(en("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),aS=rS(en("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),sS=rS(en("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),$ut=AR,Mut=sue,Rut=lue,Lut=Yue,Put=Q6,Out=FR,zut=200;function Dut(e,t,n,r){var i=-1,o=Mut,a=!0,s=e.length,l=[],c=t.length;if(!s)return l;n&&(t=Lut(t,Put(n))),r?(o=Rut,a=!1):t.length>=zut&&(o=Out,a=!1,t=new $ut(t));e:for(;++i1?0:e<-1?Kx:Math.acos(e)}function Xce(e){return e>=1?lS:e<=-1?-lS:Math.asin(e)}const SL=Math.PI,CL=2*SL,Em=1e-6,qut=CL-Em;function Jce(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return Jce;const n=10**t;return function(r){this._+=r[0];for(let i=1,o=r.length;iEm)if(!(Math.abs(d*s-l*c)>Em)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let p=n-o,v=r-a,x=s*s+l*l,y=p*p+v*v,b=Math.sqrt(x),w=Math.sqrt(f),_=i*Math.tan((SL-Math.acos((x+f-y)/(2*b*w)))/2),S=_/w,C=_/b;Math.abs(S-1)>Em&&this._append`L${e+S*c},${t+S*d}`,this._append`A${i},${i},0,0,${+(d*p>c*v)},${this._x1=e+C*s},${this._y1=t+C*l}`}}arc(e,t,n,r,i,o){if(e=+e,t=+t,n=+n,o=!!o,n<0)throw new Error(`negative radius: ${n}`);let a=n*Math.cos(r),s=n*Math.sin(r),l=e+a,c=t+s,d=1^o,f=o?r-i:i-r;this._x1===null?this._append`M${l},${c}`:(Math.abs(this._x1-l)>Em||Math.abs(this._y1-c)>Em)&&this._append`L${l},${c}`,n&&(f<0&&(f=f%CL+CL),f>qut?this._append`A${n},${n},0,1,${d},${e-a},${t-s}A${n},${n},0,1,${d},${this._x1=l},${this._y1=c}`:f>Em&&this._append`A${n},${n},0,${+(f>=SL)},${d},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}};function Qce(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new Yut(t)}function Kut(e){return e.innerRadius}function Xut(e){return e.outerRadius}function Jut(e){return e.startAngle}function Qut(e){return e.endAngle}function ect(e){return e&&e.padAngle}function tct(e,t,n,r,i,o,a,s){var l=n-e,c=r-t,d=a-i,f=s-o,p=f*l-d*c;if(!(p*pP*P+X*X&&($=M,D=O),{cx:$,cy:D,x01:-d,y01:-f,x11:$*(i/j-1),y11:D*(i/j-1)}}function nct(){var e=Kut,t=Xut,n=Si(0),r=null,i=Jut,o=Qut,a=ect,s=null,l=Qce(c);function c(){var d,f,p=+e.apply(this,arguments),v=+t.apply(this,arguments),x=i.apply(this,arguments)-lS,y=o.apply(this,arguments)-lS,b=Kce(y-x),w=y>x;if(s||(s=d=l()),vZo))s.moveTo(0,0);else if(b>uS-Zo)s.moveTo(v*Im(x),v*fc(x)),s.arc(0,0,v,x,y,!w),p>Zo&&(s.moveTo(p*Im(y),p*fc(y)),s.arc(0,0,p,y,x,w));else{var _=x,S=y,C=x,j=y,T=b,E=b,$=a.apply(this,arguments)/2,D=$>Zo&&(r?+r.apply(this,arguments):x1(p*p+v*v)),M=kL(Kce(v-p)/2,+n.apply(this,arguments)),O=M,te=M,q,P;if(D>Zo){var X=Xce(D/p*fc($)),A=Xce(D/v*fc($));(T-=X*2)>Zo?(X*=w?1:-1,C+=X,j-=X):(T=0,C=j=(x+y)/2),(E-=A*2)>Zo?(A*=w?1:-1,_+=A,S-=A):(E=0,_=S=(x+y)/2)}var Y=v*Im(_),F=v*fc(_),H=p*Im(j),ee=p*fc(j);if(M>Zo){var ce=v*Im(S),B=v*fc(S),ae=p*Im(C),je=p*fc(C),me;if(bZo?te>Zo?(q=cS(ae,je,Y,F,v,te,w),P=cS(ce,B,H,ee,v,te,w),s.moveTo(q.cx+q.x01,q.cy+q.y01),teZo)||!(T>Zo)?s.lineTo(H,ee):O>Zo?(q=cS(H,ee,ce,B,p,-O,w),P=cS(Y,F,ae,je,p,-O,w),s.lineTo(q.cx+q.x01,q.cy+q.y01),Oe?1:t>=e?0:NaN}function act(e){return e}function sct(){var e=act,t=oct,n=null,r=Si(0),i=Si(uS),o=Si(0);function a(s){var l,c=(s=ede(s)).length,d,f,p=0,v=new Array(c),x=new Array(c),y=+r.apply(this,arguments),b=Math.min(uS,Math.max(-uS,i.apply(this,arguments)-y)),w,_=Math.min(Math.abs(b)/c,o.apply(this,arguments)),S=_*(b<0?-1:1),C;for(l=0;l0&&(p+=C);for(t!=null?v.sort(function(j,T){return t(x[j],x[T])}):n!=null&&v.sort(function(j,T){return n(s[j],s[T])}),l=0,f=p?(b-c*S)/p:0;l0?C*f:0)+S,x[d]={data:s[d],index:l,value:C,startAngle:y,endAngle:w,padAngle:_};return x}return a.value=function(s){return arguments.length?(e=typeof s=="function"?s:Si(+s),a):e},a.sortValues=function(s){return arguments.length?(t=s,n=null,a):t},a.sort=function(s){return arguments.length?(n=s,t=null,a):n},a.startAngle=function(s){return arguments.length?(r=typeof s=="function"?s:Si(+s),a):r},a.endAngle=function(s){return arguments.length?(i=typeof s=="function"?s:Si(+s),a):i},a.padAngle=function(s){return arguments.length?(o=typeof s=="function"?s:Si(+s),a):o},a}function dh(){}function dS(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function fS(e){this._context=e}fS.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:dS(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:dS(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function lct(e){return new fS(e)}function rde(e){this._context=e}rde.prototype={areaStart:dh,areaEnd:dh,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:dS(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function uct(e){return new rde(e)}function ide(e){this._context=e}ide.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:dS(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function cct(e){return new ide(e)}function ode(e,t){this._basis=new fS(e),this._beta=t}ode.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,n=e.length-1;if(n>0)for(var r=e[0],i=t[0],o=e[n]-r,a=t[n]-i,s=-1,l;++s<=n;)l=s/n,this._basis.point(this._beta*e[s]+(1-this._beta)*(r+l*o),this._beta*t[s]+(1-this._beta)*(i+l*a));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};const dct=function e(t){function n(r){return t===1?new fS(r):new ode(r,t)}return n.beta=function(r){return e(+r)},n}(.85);function hS(e,t,n){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-n),e._x2,e._y2)}function TL(e,t){this._context=e,this._k=(1-t)/6}TL.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:hS(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:hS(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const fct=function e(t){function n(r){return new TL(r,t)}return n.tension=function(r){return e(+r)},n}(0);function IL(e,t){this._context=e,this._k=(1-t)/6}IL.prototype={areaStart:dh,areaEnd:dh,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:hS(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const hct=function e(t){function n(r){return new IL(r,t)}return n.tension=function(r){return e(+r)},n}(0);function EL(e,t){this._context=e,this._k=(1-t)/6}EL.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:hS(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const pct=function e(t){function n(r){return new EL(r,t)}return n.tension=function(r){return e(+r)},n}(0);function NL(e,t,n){var r=e._x1,i=e._y1,o=e._x2,a=e._y2;if(e._l01_a>Zo){var s=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,l=3*e._l01_a*(e._l01_a+e._l12_a);r=(r*s-e._x0*e._l12_2a+e._x2*e._l01_2a)/l,i=(i*s-e._y0*e._l12_2a+e._y2*e._l01_2a)/l}if(e._l23_a>Zo){var c=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,d=3*e._l23_a*(e._l23_a+e._l12_a);o=(o*c+e._x1*e._l23_2a-t*e._l12_2a)/d,a=(a*c+e._y1*e._l23_2a-n*e._l12_2a)/d}e._context.bezierCurveTo(r,i,o,a,e._x2,e._y2)}function ade(e,t){this._context=e,this._alpha=t}ade.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:NL(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const mct=function e(t){function n(r){return t?new ade(r,t):new TL(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function sde(e,t){this._context=e,this._alpha=t}sde.prototype={areaStart:dh,areaEnd:dh,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:NL(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const gct=function e(t){function n(r){return t?new sde(r,t):new IL(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function lde(e,t){this._context=e,this._alpha=t}lde.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:NL(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const vct=function e(t){function n(r){return t?new lde(r,t):new EL(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function ude(e){this._context=e}ude.prototype={areaStart:dh,areaEnd:dh,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function yct(e){return new ude(e)}function cde(e){return e<0?-1:1}function dde(e,t,n){var r=e._x1-e._x0,i=t-e._x1,o=(e._y1-e._y0)/(r||i<0&&-0),a=(n-e._y1)/(i||r<0&&-0),s=(o*i+a*r)/(r+i);return(cde(o)+cde(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function fde(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function $L(e,t,n){var r=e._x0,i=e._y0,o=e._x1,a=e._y1,s=(o-r)/3;e._context.bezierCurveTo(r+s,i+s*t,o-s,a-s*n,o,a)}function pS(e){this._context=e}pS.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:$L(this,this._t0,fde(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,$L(this,fde(this,n=dde(this,e,t)),n);break;default:$L(this,this._t0,n=dde(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function hde(e){this._context=new pde(e)}(hde.prototype=Object.create(pS.prototype)).point=function(e,t){pS.prototype.point.call(this,t,e)};function pde(e){this._context=e}pde.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,i,o){this._context.bezierCurveTo(t,e,r,n,o,i)}};function mde(e){return new pS(e)}function gde(e){return new hde(e)}function vde(e){this._context=e}vde.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=yde(e),i=yde(t),o=0,a=1;a=0;--t)i[t]=(a[t]-i[t+1])/o[t];for(o[n-1]=(e[n]+i[n-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function xct(e){return new mS(e,.5)}function _ct(e){return new mS(e,0)}function wct(e){return new mS(e,1)}var kct=ece,Sct=nce,Cct=n5;function jct(e,t,n){for(var r=-1,i=t.length,o={};++r0&&n(s)?t>1?_de(s,t-1,n,r,i):Xct(i,s):r||(i[i.length]=s)}return i}var Qct=_de,edt=Qct;function tdt(e){var t=e==null?0:e.length;return t?edt(e,1):[]}var ndt=tdt,rdt=ndt,idt=Vue,odt=Zue;function adt(e){return odt(idt(e,void 0,rdt),e+"")}var sdt=adt,ldt=Hct,udt=sdt,cdt=udt(function(e,t){return e==null?{}:ldt(e,t)}),ddt=cdt;const fdt=to(ddt);function hdt(e,t){for(var n=-1,r=e==null?0:e.length;++ns))return!1;var c=o.get(e),d=o.get(t);if(c&&d)return c==t&&d==e;var f=-1,p=!0,v=n&bdt?new mdt:void 0;for(o.set(e,t),o.set(t,e);++f=0||(i[n]=e[n]);return i}var eht=["axis.ticks.text","axis.legend.text","legends.title.text","legends.text","legends.ticks.text","legends.title.text","labels.text","dots.text","markers.text","annotations.text"],tht=function(e,t){return mu({},t,e)},nht=function(e,t){var n=Mat({},e,t);return eht.forEach(function(r){Wx(n,r,tht(yl(n,r),n.text))}),n},Hde=m.createContext(),Zde=function(e){var t=e.children,n=e.animate,r=n===void 0||n,i=e.config,o=i===void 0?"default":i,a=m.useMemo(function(){var s=nlt(o)?k$[o]:o;return{animate:r,config:s}},[r,o]);return u.jsx(Hde.Provider,{value:a,children:t})},yS={animate:xe.bool,motionConfig:xe.oneOfType([xe.oneOf(Object.keys(k$)),xe.shape({mass:xe.number,tension:xe.number,friction:xe.number,clamp:xe.bool,precision:xe.number,velocity:xe.number,duration:xe.number,easing:xe.func})])};Zde.propTypes={children:xe.node.isRequired,animate:yS.animate,config:yS.motionConfig};var w1=function(){return m.useContext(Hde)},rht={nivo:["#d76445","#f47560","#e8c1a0","#97e3d5","#61cdbb","#00b0a7"],BrBG:wt(tm),PRGn:wt(nm),PiYG:wt(rm),PuOr:wt(im),RdBu:wt(om),RdGy:wt(am),RdYlBu:wt(sm),RdYlGn:wt(lm),spectral:wt(um),blues:wt(wm),greens:wt(km),greys:wt(Sm),oranges:wt(Tm),purples:wt(Cm),reds:wt(jm),BuGn:wt(cm),BuPu:wt(dm),GnBu:wt(fm),OrRd:wt(hm),PuBuGn:wt(pm),PuBu:wt(mm),PuRd:wt(gm),RdPu:wt(vm),YlGnBu:wt(ym),YlGn:wt(bm),YlOrBr:wt(xm),YlOrRd:wt(_m)},iht=Object.keys(rht);wt(tm),wt(nm),wt(rm),wt(im),wt(om),wt(am),wt(sm),wt(lm),wt(um),wt(wm),wt(km),wt(Sm),wt(Tm),wt(Cm),wt(jm),wt(cm),wt(dm),wt(fm),wt(hm),wt(pm),wt(mm),wt(gm),wt(vm),wt(ym),wt(bm),wt(xm),wt(_m),xe.oneOfType([xe.oneOf(iht),xe.func,xe.arrayOf(xe.string)]);var oht={basis:lct,basisClosed:uct,basisOpen:cct,bundle:dct,cardinal:fct,cardinalClosed:hct,cardinalOpen:pct,catmullRom:mct,catmullRomClosed:gct,catmullRomOpen:vct,linear:nde,linearClosed:yct,monotoneX:mde,monotoneY:gde,natural:bct,step:xct,stepAfter:wct,stepBefore:_ct},WL=Object.keys(oht);WL.filter(function(e){return e.endsWith("Closed")}),Yce(WL,"bundle","basisClosed","basisOpen","cardinalClosed","cardinalOpen","catmullRomClosed","catmullRomOpen","linearClosed"),Yce(WL,"bundle","basisClosed","basisOpen","cardinalClosed","cardinalOpen","catmullRomClosed","catmullRomOpen","linearClosed"),xe.shape({top:xe.number,right:xe.number,bottom:xe.number,left:xe.number}).isRequired;var aht=["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"];xe.oneOf(aht),dc(Yx);var sht={top:0,right:0,bottom:0,left:0},qde=function(e,t,n){return n===void 0&&(n={}),m.useMemo(function(){var r=mu({},sht,n);return{margin:r,innerWidth:e-r.left-r.right,innerHeight:t-r.top-r.bottom,outerWidth:e,outerHeight:t}},[e,t,n.top,n.right,n.bottom,n.left])},lht=function(){var e=m.useRef(null),t=m.useState({left:0,top:0,width:0,height:0}),n=t[0],r=t[1],i=m.useState(function(){return typeof ResizeObserver>"u"?null:new ResizeObserver(function(o){var a=o[0];return r(a.contentRect)})})[0];return m.useEffect(function(){return e.current&&i!==null&&i.observe(e.current),function(){i!==null&&i.disconnect()}},[]),[e,n]},uht=function(e){return m.useMemo(function(){return nht(Qft,e)},[e])},cht=function(e){return typeof e=="function"?e:typeof e=="string"?e.indexOf("time:")===0?Gce(e.slice("5")):Nce(e):function(t){return""+t}},VL=function(e){return m.useMemo(function(){return cht(e)},[e])},Gde=m.createContext(),dht={},Yde=function(e){var t=e.theme,n=t===void 0?dht:t,r=e.children,i=uht(n);return u.jsx(Gde.Provider,{value:i,children:r})};Yde.propTypes={children:xe.node.isRequired,theme:xe.object};var Ms=function(){return m.useContext(Gde)},fht=["outlineWidth","outlineColor","outlineOpacity"],Kde=function(e){return e.outlineWidth,e.outlineColor,e.outlineOpacity,BL(e,fht)},Xde=function(e){var t=e.children,n=e.condition,r=e.wrapper;return n?m.cloneElement(r,{},t):t};Xde.propTypes={children:xe.node.isRequired,condition:xe.bool.isRequired,wrapper:xe.element.isRequired};var hht={position:"relative"},HL=function(e){var t=e.children,n=e.theme,r=e.renderWrapper,i=r===void 0||r,o=e.isInteractive,a=o===void 0||o,s=e.animate,l=e.motionConfig,c=m.useRef(null);return u.jsx(Yde,{theme:n,children:u.jsx(Zde,{animate:s,config:l,children:u.jsx(Ont,{container:c,children:u.jsxs(Xde,{condition:i,wrapper:u.jsx("div",{style:hht,ref:c}),children:[t,a&&u.jsx(Pnt,{})]})})})})};HL.propTypes={children:xe.element.isRequired,isInteractive:xe.bool,renderWrapper:xe.bool,theme:xe.object,animate:xe.bool,motionConfig:xe.oneOfType([xe.string,yS.motionConfig])},xe.func.isRequired,xe.bool,xe.bool,xe.object.isRequired,xe.bool.isRequired,xe.oneOfType([xe.string,yS.motionConfig]),xe.func.isRequired;var pht=["id","colors"],Jde=function(e){var t=e.id,n=e.colors,r=BL(e,pht);return u.jsx("linearGradient",mu({id:t,x1:0,x2:0,y1:0,y2:1},r,{children:n.map(function(i){var o=i.offset,a=i.color,s=i.opacity;return u.jsx("stop",{offset:o+"%",stopColor:a,stopOpacity:s!==void 0?s:1},o)})}))};Jde.propTypes={id:xe.string.isRequired,colors:xe.arrayOf(xe.shape({offset:xe.number.isRequired,color:xe.string.isRequired,opacity:xe.number})).isRequired,gradientTransform:xe.string};var Qde={linearGradient:Jde},Xx={color:"#000000",background:"#ffffff",size:4,padding:4,stagger:!1},ZL=m.memo(function(e){var t=e.id,n=e.background,r=n===void 0?Xx.background:n,i=e.color,o=i===void 0?Xx.color:i,a=e.size,s=a===void 0?Xx.size:a,l=e.padding,c=l===void 0?Xx.padding:l,d=e.stagger,f=d===void 0?Xx.stagger:d,p=s+c,v=s/2,x=c/2;return f===!0&&(p=2*s+2*c),u.jsxs("pattern",{id:t,width:p,height:p,patternUnits:"userSpaceOnUse",children:[u.jsx("rect",{width:p,height:p,fill:r}),u.jsx("circle",{cx:x+v,cy:x+v,r:v,fill:o}),f&&u.jsx("circle",{cx:1.5*c+s+v,cy:1.5*c+s+v,r:v,fill:o})]})});ZL.displayName="PatternDots",ZL.propTypes={id:xe.string.isRequired,color:xe.string.isRequired,background:xe.string.isRequired,size:xe.number.isRequired,padding:xe.number.isRequired,stagger:xe.bool.isRequired};var jd=function(e){return e*Math.PI/180},qL=function(e){return 180*e/Math.PI},mht=function(e){return e.startAngle+(e.endAngle-e.startAngle)/2},k1=function(e,t){return{x:Math.cos(e)*t,y:Math.sin(e)*t}},Jx={spacing:5,rotation:0,background:"#000000",color:"#ffffff",lineWidth:2},GL=m.memo(function(e){var t=e.id,n=e.spacing,r=n===void 0?Jx.spacing:n,i=e.rotation,o=i===void 0?Jx.rotation:i,a=e.background,s=a===void 0?Jx.background:a,l=e.color,c=l===void 0?Jx.color:l,d=e.lineWidth,f=d===void 0?Jx.lineWidth:d,p=Math.round(o)%360,v=Math.abs(r);p>180?p-=360:p>90?p-=180:p<-180?p+=360:p<-90&&(p+=180);var x,y=v,b=v;return p===0?x=` + M 0 0 L `+y+` 0 + M 0 `+b+" L "+y+" "+b+` + `:p===90?x=` + M 0 0 L 0 `+b+` + M `+y+" 0 L "+y+" "+b+` + `:(y=Math.abs(v/Math.sin(jd(p))),b=v/Math.sin(jd(90-p)),x=p>0?` + M 0 `+-b+" L "+2*y+" "+b+` + M `+-y+" "+-b+" L "+y+" "+b+` + M `+-y+" 0 L "+y+" "+2*b+` + `:` + M `+-y+" "+b+" L "+y+" "+-b+` + M `+-y+" "+2*b+" L "+2*y+" "+-b+` + M 0 `+2*b+" L "+2*y+` 0 + `),u.jsxs("pattern",{id:t,width:y,height:b,patternUnits:"userSpaceOnUse",children:[u.jsx("rect",{width:y,height:b,fill:s,stroke:"rgba(255, 0, 0, 0.1)",strokeWidth:0}),u.jsx("path",{d:x,strokeWidth:f,stroke:c,strokeLinecap:"square"})]})});GL.displayName="PatternLines",GL.propTypes={id:xe.string.isRequired,spacing:xe.number.isRequired,rotation:xe.number.isRequired,background:xe.string.isRequired,color:xe.string.isRequired,lineWidth:xe.number.isRequired};var Qx={color:"#000000",background:"#ffffff",size:4,padding:4,stagger:!1},YL=m.memo(function(e){var t=e.id,n=e.color,r=n===void 0?Qx.color:n,i=e.background,o=i===void 0?Qx.background:i,a=e.size,s=a===void 0?Qx.size:a,l=e.padding,c=l===void 0?Qx.padding:l,d=e.stagger,f=d===void 0?Qx.stagger:d,p=s+c,v=c/2;return f===!0&&(p=2*s+2*c),u.jsxs("pattern",{id:t,width:p,height:p,patternUnits:"userSpaceOnUse",children:[u.jsx("rect",{width:p,height:p,fill:o}),u.jsx("rect",{x:v,y:v,width:s,height:s,fill:r}),f&&u.jsx("rect",{x:1.5*c+s,y:1.5*c+s,width:s,height:s,fill:r})]})});YL.displayName="PatternSquares",YL.propTypes={id:xe.string.isRequired,color:xe.string.isRequired,background:xe.string.isRequired,size:xe.number.isRequired,padding:xe.number.isRequired,stagger:xe.bool.isRequired};var efe={patternDots:ZL,patternLines:GL,patternSquares:YL},ght=["type"],KL=mu({},Qde,efe),tfe=function(e){var t=e.defs;return!t||t.length<1?null:u.jsx("defs",{"aria-hidden":!0,children:t.map(function(n){var r=n.type,i=BL(n,ght);return KL[r]?m.createElement(KL[r],mu({key:i.id},i)):null})})};tfe.propTypes={defs:xe.arrayOf(xe.shape({type:xe.oneOf(Object.keys(KL)).isRequired,id:xe.string.isRequired}))};var vht=m.memo(tfe),XL=function(e){var t=e.width,n=e.height,r=e.margin,i=e.defs,o=e.children,a=e.role,s=e.ariaLabel,l=e.ariaLabelledBy,c=e.ariaDescribedBy,d=e.isFocusable,f=Ms();return u.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:t,height:n,role:a,"aria-label":s,"aria-labelledby":l,"aria-describedby":c,focusable:d,tabIndex:d?0:void 0,children:[u.jsx(vht,{defs:i}),u.jsx("rect",{width:t,height:n,fill:f.background}),u.jsx("g",{transform:"translate("+r.left+","+r.top+")",children:o})]})};XL.propTypes={width:xe.number.isRequired,height:xe.number.isRequired,margin:xe.shape({top:xe.number.isRequired,left:xe.number.isRequired}).isRequired,defs:xe.array,children:xe.oneOfType([xe.arrayOf(xe.node),xe.node]).isRequired,role:xe.string,isFocusable:xe.bool,ariaLabel:xe.string,ariaLabelledBy:xe.string,ariaDescribedBy:xe.string};var nfe=function(e){var t=e.size,n=e.color,r=e.borderWidth,i=e.borderColor;return u.jsx("circle",{r:t/2,fill:n,stroke:i,strokeWidth:r,style:{pointerEvents:"none"}})};nfe.propTypes={size:xe.number.isRequired,color:xe.string.isRequired,borderWidth:xe.number.isRequired,borderColor:xe.string.isRequired};var yht=m.memo(nfe),rfe=function(e){var t=e.x,n=e.y,r=e.symbol,i=r===void 0?yht:r,o=e.size,a=e.datum,s=e.color,l=e.borderWidth,c=e.borderColor,d=e.label,f=e.labelTextAnchor,p=f===void 0?"middle":f,v=e.labelYOffset,x=v===void 0?-12:v,y=Ms(),b=w1(),w=b.animate,_=b.config,S=ex({transform:"translate("+t+", "+n+")",config:_,immediate:!w});return u.jsxs(iu.g,{transform:S.transform,style:{pointerEvents:"none"},children:[m.createElement(i,{size:o,color:s,datum:a,borderWidth:l,borderColor:c}),d&&u.jsx("text",{textAnchor:p,y:x,style:Kde(y.dots.text),children:d})]})};rfe.propTypes={x:xe.number.isRequired,y:xe.number.isRequired,datum:xe.object.isRequired,size:xe.number.isRequired,color:xe.string.isRequired,borderWidth:xe.number.isRequired,borderColor:xe.string.isRequired,symbol:xe.oneOfType([xe.func,xe.object]),label:xe.oneOfType([xe.string,xe.number]),labelTextAnchor:xe.oneOf(["start","middle","end"]),labelYOffset:xe.number},m.memo(rfe);var ife=function(e){var t=e.width,n=e.height,r=e.axis,i=e.scale,o=e.value,a=e.lineStyle,s=e.textStyle,l=e.legend,c=e.legendNode,d=e.legendPosition,f=d===void 0?"top-right":d,p=e.legendOffsetX,v=p===void 0?14:p,x=e.legendOffsetY,y=x===void 0?14:x,b=e.legendOrientation,w=b===void 0?"horizontal":b,_=Ms(),S=0,C=0,j=0,T=0;if(r==="y"?(j=i(o),C=t):(S=i(o),T=n),l&&!c){var E=function($){var D=$.axis,M=$.width,O=$.height,te=$.position,q=$.offsetX,P=$.offsetY,X=$.orientation,A=0,Y=0,F=X==="vertical"?-90:0,H="start";if(D==="x")switch(te){case"top-left":A=-q,Y=P,H="end";break;case"top":Y=-P,H=X==="horizontal"?"middle":"start";break;case"top-right":A=q,Y=P,H=X==="horizontal"?"start":"end";break;case"right":A=q,Y=O/2,H=X==="horizontal"?"start":"middle";break;case"bottom-right":A=q,Y=O-P,H="start";break;case"bottom":Y=O+P,H=X==="horizontal"?"middle":"end";break;case"bottom-left":Y=O-P,A=-q,H=X==="horizontal"?"end":"start";break;case"left":A=-q,Y=O/2,H=X==="horizontal"?"end":"middle"}else switch(te){case"top-left":A=q,Y=-P,H="start";break;case"top":A=M/2,Y=-P,H=X==="horizontal"?"middle":"start";break;case"top-right":A=M-q,Y=-P,H=X==="horizontal"?"end":"start";break;case"right":A=M+q,H=X==="horizontal"?"start":"middle";break;case"bottom-right":A=M-q,Y=P,H="end";break;case"bottom":A=M/2,Y=P,H=X==="horizontal"?"middle":"end";break;case"bottom-left":A=q,Y=P,H=X==="horizontal"?"start":"end";break;case"left":A=-q,H=X==="horizontal"?"end":"middle"}return{x:A,y:Y,rotation:F,textAnchor:H}}({axis:r,width:t,height:n,position:f,offsetX:v,offsetY:y,orientation:w});c=u.jsx("text",{transform:"translate("+E.x+", "+E.y+") rotate("+E.rotation+")",textAnchor:E.textAnchor,dominantBaseline:"central",style:s,children:l})}return u.jsxs("g",{transform:"translate("+S+", "+j+")",children:[u.jsx("line",{x1:0,x2:C,y1:0,y2:T,stroke:_.markers.lineColor,strokeWidth:_.markers.lineStrokeWidth,style:a}),c]})};ife.propTypes={width:xe.number.isRequired,height:xe.number.isRequired,axis:xe.oneOf(["x","y"]).isRequired,scale:xe.func.isRequired,value:xe.oneOfType([xe.number,xe.string,xe.instanceOf(Date)]).isRequired,lineStyle:xe.object,textStyle:xe.object,legend:xe.string,legendPosition:xe.oneOf(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"]),legendOffsetX:xe.number.isRequired,legendOffsetY:xe.number.isRequired,legendOrientation:xe.oneOf(["horizontal","vertical"]).isRequired};var bht=m.memo(ife),ofe=function(e){var t=e.markers,n=e.width,r=e.height,i=e.xScale,o=e.yScale;return t&&t.length!==0?t.map(function(a,s){return u.jsx(bht,mu({},a,{width:n,height:r,scale:a.axis==="y"?o:i}),s)}):null};ofe.propTypes={width:xe.number.isRequired,height:xe.number.isRequired,xScale:xe.func.isRequired,yScale:xe.func.isRequired,markers:xe.arrayOf(xe.shape({axis:xe.oneOf(["x","y"]).isRequired,value:xe.oneOfType([xe.number,xe.string,xe.instanceOf(Date)]).isRequired,lineStyle:xe.object,textStyle:xe.object}))},m.memo(ofe);var xht=function(e){return nue(e)?e:function(t){return yl(t,e)}},e_=function(e){return m.useMemo(function(){return xht(e)},[e])},_ht=Object.keys(Qde),wht=Object.keys(efe),kht=function(e,t,n){if(e==="*")return!0;if(nue(e))return e(t);if(Fx(e)){var r=n?yl(t,n):t;return Jft(fdt(r,Object.keys(e)),e)}return!1},Sht=function(e,t,n,r){var i={},o=i.dataKey,a=i.colorKey,s=a===void 0?"color":a,l=i.targetKey,c=l===void 0?"fill":l,d=[],f={};return e.length&&t.length&&(d=[].concat(e),t.forEach(function(p){for(var v=function(){var y=n[x],b=y.id,w=y.match;if(kht(w,p,o)){var _=e.find(function(M){return M.id===b});if(_){if(wht.includes(_.type))if(_.background==="inherit"||_.color==="inherit"){var S=yl(p,s),C=_.background,j=_.color,T=b;_.background==="inherit"&&(T=T+".bg."+S,C=S),_.color==="inherit"&&(T=T+".fg."+S,j=S),Wx(p,c,"url(#"+T+")"),f[T]||(d.push(mu({},_,{id:T,background:C,color:j})),f[T]=1)}else Wx(p,c,"url(#"+b+")");else if(_ht.includes(_.type))if(_.colors.map(function(M){return M.color}).includes("inherit")){var E=yl(p,s),$=b,D=mu({},_,{colors:_.colors.map(function(M,O){return M.color!=="inherit"?M:($=$+"."+O+"."+E,mu({},M,{color:M.color==="inherit"?E:M.color}))})});D.id=$,Wx(p,c,"url(#"+$+")"),f[$]||(d.push(D),f[$]=1)}else Wx(p,c,"url(#"+b+")")}return"break"}},x=0;xu.jsx(VR,{id:e.label,enableChip:!0,color:e.color}),JL={container:{display:"flex",alignItems:"center"},sourceChip:{marginRight:7},targetChip:{marginLeft:7,marginRight:7}},Bht=({link:e})=>u.jsx(VR,{id:u.jsxs("span",{style:JL.container,children:[u.jsx(WR,{color:e.source.color,style:JL.sourceChip}),u.jsx("strong",{children:e.source.label})," > ",u.jsx("strong",{children:e.target.label}),u.jsx(WR,{color:e.target.color,style:JL.targetChip}),u.jsx("strong",{children:e.formattedValue})]})});function Wht(e){return e.target.depth}function Vht(e){return e.depth}function Hht(e,t){return t-1-e.height}function lfe(e,t){return e.sourceLinks.length?e.depth:t-1}function Zht(e){return e.targetLinks.length?e.depth:e.sourceLinks.length?wce(e.sourceLinks,Wht)-1:0}function xS(e){return function(){return e}}var We=(e=>(e.IncPackCranked="Crank:inc",e.IncPackRetained="Buffered:inc",e.IncResolvRetained="Unresolved:inc",e.IncQuic="QUIC",e.IncUdp="UDP",e.IncGossip="Gossip",e.IncBlockEngine="Jito",e.SlotStart="Received",e.SlotEnd="Packed",e.End="End",e.Networking="networking:tile",e.QUIC="QUIC:tile",e.Verification="verify:tile",e.Dedup="dedup:tile",e.Resolv="resolv:tile",e.Pack="pack:tile",e.Execle="execle:tile",e.NetOverrun="Too slow:net",e.QUICOverrun="Too slow:quic",e.QUICInvalid="Malformed:quic",e.QUICTooManyFrags="Out of buffers:quic",e.QUICAbandoned="Abandoned:quic",e.VerifyOverrun="Too slow:verify",e.VerifyParse="Unparseable",e.VerifyFailed="Bad signature",e.VerifyDuplicate="Duplicate:verify",e.DedupDeuplicate="Duplicate:dedup",e.ResolvFailed="Bad LUT",e.ResolvExpired="Expired:resolv",e.ResolvNoLedger="No ledger",e.ResolvRetained="Unresolved:resolv",e.PackInvalid="Unpackable",e.PackInvalidBundle="Bad Bundle",e.PackExpired="Expired:pack",e.PackAlreadyExecuted="AlreadyExecuted:pack",e.PackRetained="Buffered:pack",e.PackLeaderSlow="Buffer full",e.PackWaitFull="Storage full",e.BankInvalid="Unexecutable",e.BankNonceAlreadyAdvanced="NonceAlreadyAdvanced",e.BankNonceAdvanceFailed="NonceAdvanceFailed",e.BankNonceWrongBlockhash="NonceWrongBlockhash",e.BlockSuccess="Success",e.BlockFailure="Failure",e.Votes="Votes",e.NonVoteSuccess="Non-vote Success",e.NonVoteFailure="Non-vote Failure",e))(We||{});const qht=["Received","Packed"],ufe=["networking:tile","QUIC:tile","verify:tile","dedup:tile","resolv:tile","pack:tile","execle:tile"],cfe=["Too slow:net","Too slow:quic","Malformed:quic","Out of buffers:quic","Abandoned:quic","Too slow:verify","Unparseable","Bad signature","Duplicate:verify","Duplicate:dedup","Bad LUT","Expired:resolv","No ledger","Unresolved:resolv","Unpackable","Bad Bundle","Expired:pack","AlreadyExecuted:pack","Buffered:pack","Buffer full","Storage full","Unexecutable","NonceAlreadyAdvanced","NonceAdvanceFailed","NonceWrongBlockhash"],dfe=["QUIC","UDP"],QL=["Buffered:inc","Buffered:pack","Unresolved:inc","Unresolved:resolv"],ffe=["Success","Non-vote Success"],hfe=["Failure","Non-vote Failure"],Ght=[{id:"QUIC"},{id:"UDP"},{id:"Buffered:pack",labelPositionOverride:"right"},{id:"Unresolved:resolv",labelPositionOverride:"right"},{id:"Too slow:net",labelPositionOverride:"right"},{id:"Too slow:quic",labelPositionOverride:"right"},{id:"Malformed:quic",labelPositionOverride:"right"},{id:"Out of buffers:quic",labelPositionOverride:"right"},{id:"Abandoned:quic",labelPositionOverride:"right"},{id:"Too slow:verify",labelPositionOverride:"right"},{id:"Unparseable",labelPositionOverride:"right"},{id:"Bad signature",labelPositionOverride:"right"},{id:"Duplicate:verify",labelPositionOverride:"right"},{id:"Duplicate:dedup",labelPositionOverride:"right"},{id:"Bad LUT",labelPositionOverride:"right"},{id:"Expired:resolv",labelPositionOverride:"right"},{id:"No ledger",labelPositionOverride:"right"},{id:"Unpackable",labelPositionOverride:"right"},{id:"Bad Bundle",labelPositionOverride:"right"},{id:"Expired:pack",labelPositionOverride:"right"},{id:"AlreadyExecuted:pack",labelPositionOverride:"right"},{id:"Buffer full",labelPositionOverride:"right"},{id:"Storage full",labelPositionOverride:"right"},{id:"Unexecutable",labelPositionOverride:"right"},{id:"NonceAlreadyAdvanced",labelPositionOverride:"right"},{id:"NonceAdvanceFailed",labelPositionOverride:"right"},{id:"NonceWrongBlockhash",labelPositionOverride:"right"},{id:"Received",alignLabelBottom:!0,labelPositionOverride:"right"},{id:"QUIC:tile",alignLabelBottom:!0},{id:"verify:tile",alignLabelBottom:!0},{id:"dedup:tile",alignLabelBottom:!0},{id:"resolv:tile",alignLabelBottom:!0},{id:"Gossip"},{id:"Jito"},{id:"Unresolved:inc",labelPositionOverride:"left"},{id:"Crank:inc",labelPositionOverride:"left"},{id:"Buffered:inc",labelPositionOverride:"left"},{id:"pack:tile",alignLabelBottom:!0},{id:"execle:tile",alignLabelBottom:!0},{id:"End",hideLabel:!0},{id:"Packed",alignLabelBottom:!0,labelPositionOverride:"left"},{id:"Failure"},{id:"Success"},{id:"Votes"},{id:"Non-vote Failure"},{id:"Non-vote Success"}],Yht=ca(),Kht=1,pfe=-1e3,mfe=12,Xht=30,Jht=3e3,Qht=2;function gfe(e,t){return _S(e.source,t.source)||e.index-t.index}function vfe(e,t){return _S(e.target,t.target)||e.index-t.index}function _S(e,t){return e.y0-t.y0}function yfe(e){return e.value}function ept(e){return e.index}function tpt(e){return e.nodes}function npt(e){return e.links}function bfe(e,t){const n=e.get(t);if(!n)throw new Error("missing: "+t);return n}function xfe({nodes:e}){for(const t of e){let n=t.y0,r=n;for(const i of t.sourceLinks)i.y0=n+i.width/2,n+=i.width;for(const i of t.targetLinks)i.y1=r+i.width/2,r+=i.width}}function rpt(){let e=0,t=0,n=1,r=1,i=24,o=8,a,s=ept,l=lfe,c,d,f=tpt,p=npt,v=6;function x(){const A={nodes:f.apply(null,arguments),links:p.apply(null,arguments)};return y(A),b(A),w(A),_(A),j(A),xfe(A),X(A),A}x.update=function(A){return xfe(A),A},x.nodeId=function(A){return arguments.length?(s=typeof A=="function"?A:xS(A),x):s},x.nodeAlign=function(A){return arguments.length?(l=typeof A=="function"?A:xS(A),x):l},x.nodeSort=function(A){return arguments.length?(c=A,x):c},x.nodeWidth=function(A){return arguments.length?(i=+A,x):i},x.nodePadding=function(A){return arguments.length?(o=a=+A,x):o},x.nodes=function(A){return arguments.length?(f=typeof A=="function"?A:xS(A),x):f},x.links=function(A){return arguments.length?(p=typeof A=="function"?A:xS(A),x):p},x.linkSort=function(A){return arguments.length?(d=A,x):d},x.size=function(A){return arguments.length?(e=t=0,n=+A[0],r=+A[1],x):[n-e,r-t]},x.extent=function(A){return arguments.length?(e=+A[0][0],n=+A[1][0],t=+A[0][1],r=+A[1][1],x):[[e,t],[n,r]]},x.iterations=function(A){return arguments.length?(v=+A,x):v};function y({nodes:A,links:Y}){for(const[H,ee]of A.entries())ee.index=H,ee.sourceLinks=[],ee.targetLinks=[];const F=new Map(A.map((H,ee)=>[s(H,ee,A),H]));for(const[H,ee]of Y.entries()){ee.index=H;let{source:ce,target:B}=ee;typeof ce!="object"&&(ce=ee.source=bfe(F,ce)),typeof B!="object"&&(B=ee.target=bfe(F,B)),ce.sourceLinks.push(ee),B.targetLinks.push(ee)}if(d!=null)for(const{sourceLinks:H,targetLinks:ee}of A)H.sort(d),ee.sort(d)}function b({nodes:A}){for(const Y of A)if(Y.fixedValue===void 0){let F=-1/0;Y.sourceLinks.length&&(F=Math.max(fL(Y.sourceLinks,yfe))),Y.targetLinks.length&&(F=Math.max(fL(Y.targetLinks,yfe))),F===-1/0&&(F=0),Y.value=F}else Y.value=Y.fixedValue}function w({nodes:A}){const Y=A.length;let F=new Set(A),H=new Set,ee=0;for(;F.size;){for(const ce of F){ce.depth=ee;for(const{target:B}of ce.sourceLinks)H.add(B)}if(++ee>Y)throw new Error("circular link");F=H,H=new Set}}function _({nodes:A}){const Y=A.length;let F=new Set(A),H=new Set,ee=0;for(;F.size;){for(const ce of F){ce.height=ee;for(const{source:B}of ce.targetLinks)H.add(B)}if(++ee>Y)throw new Error("circular link");F=H,H=new Set}}function S({nodes:A}){const Y=_ce(A,ae=>ae.depth)+1;let F=(n-e-i)/(Y-1);const H=F/Qht,ee=new Array(Y),ce=e+H,B=n-H;F=(B-ce-i)/(Y-1-2);for(const ae of A){let je=l.call(null,ae,Y);const me=Math.max(0,Math.min(Y-1,Math.floor(je)));ae.layer=me,me===1?ae.x0=e+H:me<1?ae.x0=e+me*H:me===Y-1?ae.x0=B+H:ae.x0=ce+(me-1)*F,ae.x1=ae.x0+Kht,ee[me]?ee[me].push(ae):ee[me]=[ae]}if(c)for(const ae of ee)ae.sort(c);return ee}function C(A){const Y=Yht.get(Cg)===Io.Pct,F=wce(A,H=>(r-t-(H.length-1)*a)/fL(H,ee=>Math.max(ee.value,Y?1:Jht)));for(let H=0;HF.length)-1)),C(Y);for(let F=0;F0))continue;let me=(ae/je-B.y0)*Y+mfe;B.y0+=me,B.y1+=me,B.id===We.SlotStart&&(B.y0=t+(r-t)/6,B.y1=B.y0+B.height),B.id===We.SlotEnd&&(B.y1=r-(r-t)/6,B.y0=B.y1-B.height),O(B)}c===void 0&&ce.sort(_S),$(ce,F)}}function E(A,Y,F){for(let H=A.length,ee=H-2;ee>=0;--ee){const ce=A[ee];for(const B of ce){let ae=0,je=0;for(const{target:ke,value:he}of B.sourceLinks){let ue=(he?Math.abs(he):1)*(ke.layer-B.layer);ae+=P(B,ke)*ue,je+=ue}if(!(je>0))continue;let me=(ae/je-B.y0)*Y-mfe;B.y0+=me,B.y1+=me,B.id===We.SlotStart&&(B.y0=t+(r-t)/6,B.y1=B.y0+B.height),B.id===We.SlotEnd&&(B.y1=r-(r-t)/6,B.y0=B.y1-B.height),O(B)}c===void 0&&ce.sort(_S),$(ce,F)}}function $(A,Y){const F=A.length>>1,H=A[F];M(A,H.y0-a,F-1,Y),D(A,H.y1+a,F+1,Y),M(A,r,A.length-1,Y),D(A,t,0,Y)}function D(A,Y,F,H){for(;F1e-6&&(ee.y0+=ce,ee.y1+=ce),Y=ee.y1+a}}function M(A,Y,F,H){for(;F>=0;--F){const ee=A[F],ce=(ee.y1-Y)*H;ce>1e-6&&(ee.y0-=ce,ee.y1-=ce),Y=ee.y0-a}}function O({sourceLinks:A,targetLinks:Y}){if(d===void 0){for(const{source:{sourceLinks:F}}of Y)F.sort(vfe);for(const{target:{targetLinks:F}}of A)F.sort(gfe)}}function te(A){if(d===void 0)for(const{sourceLinks:Y,targetLinks:F}of A)Y.sort(vfe),F.sort(gfe)}function q(A,Y){let F=A.y0-(A.sourceLinks.length-1)*a/2;for(const{target:H,width:ee}of A.sourceLinks){if(H===Y)break;F+=ee+a}for(const{source:H,width:ee,target:{id:ce}}of Y.targetLinks){if(ce.includes("Dropped")&&(F-=Xht),H===A)break;F-=ee}return F}function P(A,Y){let F=Y.y0-(Y.targetLinks.length-1)*a/2;for(const{source:H,width:ee}of Y.targetLinks){if(H===A)break;F+=ee+a}for(const{target:H,width:ee}of A.sourceLinks){if(H===Y)break;F-=ee}return F}function X(A){const Y=A.nodes.reduce((F,H)=>Math.max(F,H.y1),0);A.nodes.forEach(F=>{qht.includes(F.id)&&(F.y0=0,F.y1=Y,F.height=Y)})}return x}const ipt={center:Zht,justify:lfe,start:Vht,end:Hht},opt=e=>ipt[e],Tn={layout:"horizontal",align:"center",sort:"auto",colors:{scheme:"nivo"},nodeOpacity:.75,nodeHoverOpacity:1,nodeHoverOthersOpacity:.15,nodeThickness:12,nodeInnerPadding:0,nodeBorderWidth:1,nodeBorderColor:{from:"color",modifiers:[["darker",.5]]},nodeBorderRadius:0,linkOpacity:.25,linkHoverOpacity:.6,linkHoverOthersOpacity:.15,linkContract:0,linkBlendMode:"multiply",enableLinkGradient:!1,enableLabels:!0,label:"id",labelPosition:"inside",labelPadding:9,labelOrientation:"horizontal",labelTextColor:{from:"color",modifiers:[["darker",.8]]},isInteractive:!1,nodeTooltip:Uht,linkTooltip:Bht,legends:[],layers:["links","nodes","labels"],role:"img",animate:!1,motionConfig:"gentle"};function apt(e,t){for(var n=-1,r=e==null?0:e.length;++ne.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}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 kS(){return kS=Object.assign?Object.assign.bind():function(e){for(var t=1;t11))throw new Error("Invalid size '"+e.size+"' for diverging color scheme '"+e.scheme+"', must be between 3~11");var s=dc(eP[e.scheme][e.size||11]),l=function(f){return s(n(f))};return l.scale=s,l}if(Z0t(e.scheme)){if(e.size!==void 0&&(e.size<3||e.size>9))throw new Error("Invalid size '"+e.size+"' for sequential color scheme '"+e.scheme+"', must be between 3~9");var c=dc(eP[e.scheme][e.size||9]),d=function(f){return c(n(f))};return d.scale=c,d}}throw new Error("Invalid colors, when using an object, you should either pass a 'datum' or a 'scheme' property")}return function(){return e}},J0t=function(e,t){return m.useMemo(function(){return X0t(e,t)},[e,t])};const Q0t=e=>e.id,egt=({data:e,formatValue:t,layout:n,alignFunction:r,sortFunction:i,linkSortMode:o,nodeThickness:a,nodeSpacing:s,nodeInnerPadding:l,width:c,height:d,getColor:f,getLabel:p})=>{const v=rpt().nodeAlign(r).nodeSort(i).linkSort(o).nodeWidth(a).nodePadding(s).size(n==="horizontal"?[c,d]:[d,c]).nodeId(Q0t),x=z0t(e);return v(x),x.nodes.forEach(y=>{if(y.color=f(y),y.label=p(y),y.formattedValue=t(y.value),n==="horizontal")y.x=y.x0+l,y.y=y.y0,y.width=Math.max(y.x1-y.x0-l*2,0),y.height=Math.max(y.y1-y.y0,0);else{y.x=y.y0,y.y=y.x0+l,y.width=Math.max(y.y1-y.y0,0),y.height=Math.max(y.x1-y.x0-l*2,0);const b=y.x0,w=y.x1;y.x0=y.y0,y.x1=y.y1,y.y0=b,y.y1=w}}),x.links.forEach(y=>{y.formattedValue=t(y.value),y.color=y.source.color,y.pos0=y.y0,y.pos1=y.y1,y.thickness=y.width,delete y.y0,delete y.y1,delete y.width}),x},tgt=({data:e,valueFormat:t,layout:n,width:r,height:i,sort:o,align:a,colors:s,nodeThickness:l,nodeSpacing:c,nodeInnerPadding:d,nodeBorderColor:f,label:p,labelTextColor:v})=>{const[x,y]=m.useState(null),[b,w]=m.useState(null),_=m.useMemo(()=>{if(o!=="auto")return o==="input"?null:o==="ascending"?(q,P)=>q.value-P.value:o==="descending"?(q,P)=>P.value-q.value:o},[o]),S=o==="input"?null:void 0,C=m.useMemo(()=>typeof a=="function"?a:opt(a),[a]),j=J0t(s,"id"),T=Ofe(f),E=e_(p),$=Ofe(v),D=VL(t),{nodes:M,links:O}=m.useMemo(()=>egt({data:e,formatValue:D,layout:n,alignFunction:C,sortFunction:_,linkSortMode:S,nodeThickness:l,nodeSpacing:c,nodeInnerPadding:d,width:r,height:i,getColor:j,getLabel:E}),[e,D,n,C,_,S,l,c,d,r,i,j,E]),te=m.useMemo(()=>M.map(q=>({id:q.id,label:q.label,color:q.color})),[M]);return{nodes:M,links:O,legendData:te,getNodeBorderColor:T,currentNode:x,setCurrentNode:y,currentLink:b,setCurrentLink:w,getLabelTextColor:$}},ngt=({node:e,x:t,y:n,width:r,height:i,color:o,opacity:a,borderWidth:s,borderRadius:l,setCurrent:c,isInteractive:d,onClick:f,tooltip:p})=>u.jsx("rect",{x:t,y:n,width:r,height:i,fill:Ine}),rgt=({nodes:e,nodeOpacity:t,nodeHoverOpacity:n,nodeHoverOthersOpacity:r,borderWidth:i,getBorderColor:o,borderRadius:a,setCurrentNode:s,currentNode:l,currentLink:c,isCurrentNode:d,isInteractive:f,onClick:p,tooltip:v})=>u.jsx(u.Fragment,{children:e.map(x=>u.jsx(ngt,{node:x,x:x.x,y:x.y,width:x.width,height:x.height,color:x.color,opacity:1,borderWidth:i,borderColor:o(x),borderRadius:a,setCurrent:s,isInteractive:f,onClick:p,tooltip:v},x.id))}),igt=()=>{const e=jL().curve(mde);return(t,n)=>{const r=Math.max(1,t.thickness-n*2),i=Math.max(1,r/2),o=(t.target.x0-t.source.x1)*.12,a=[[t.source.x1,t.pos0-i],[t.source.x1+o,t.pos0-i],[t.target.x0-o,t.pos1-i],[t.target.x0,t.pos1-i],[t.target.x0,t.pos1+i],[t.target.x0-o,t.pos1+i],[t.source.x1+o,t.pos0+i],[t.source.x1,t.pos0+i],[t.source.x1,t.pos0-i]];return e(a)+"Z"}},ogt=()=>{const e=jL().curve(gde);return(t,n)=>{const r=Math.max(1,t.thickness-n*2)/2,i=(t.target.y0-t.source.y1)*.12,o=[[t.pos0+r,t.source.y1],[t.pos0+r,t.source.y1+i],[t.pos1+r,t.target.y0-i],[t.pos1+r,t.target.y0],[t.pos1-r,t.target.y0],[t.pos1-r,t.target.y0-i],[t.pos0-r,t.source.y1+i],[t.pos0-r,t.source.y1],[t.pos0+r,t.source.y1]];return e(o)+"Z"}},agt=({id:e,layout:t})=>{let n;return t==="horizontal"?n={x1:"0%",x2:"100%",y1:"0%",y2:"0%"}:n={x1:"0%",x2:"0%",y1:"0%",y2:"100%"},u.jsxs("linearGradient",{id:e,spreadMethod:"pad",...n,children:[u.jsx("stop",{stopColor:NN}),u.jsx("stop",{offset:"0.24",stopColor:Mne}),u.jsx("stop",{offset:"1",stopColor:NN})]})};function zfe(e,t){const[n,r]=m.useState(!1),i=m.useRef();return m.useEffect(()=>{[...dfe,We.SlotStart].includes(e)||(t?(i.current&&(clearTimeout(i.current),i.current=void 0),r(!0)):i.current||(i.current=setTimeout(()=>{r(!1),i.current=void 0},3e3)))},[e,r,t]),!!t||n}const sgt=({link:e,layout:t,path:n,color:r,opacity:i,enableGradient:o,setCurrent:a,tooltip:s,isInteractive:l,onClick:c})=>{const d=`${e.source.id}.${e.target.id}.${e.index}`;let f;return dfe.includes(e.source.id)?f=Ene:QL.includes(e.source.id)||QL.includes(e.target.id)?f=$ne:ffe.includes(e.target.id)?f=Hf:hfe.includes(e.target.id)?f=fd:e.target.id===We.Votes?f=hd:cfe.includes(e.target.id)&&(f=Nne),zfe(e.target.id,e.value)?u.jsxs(u.Fragment,{children:[o&&u.jsx(agt,{id:d,layout:t,startColor:e.startColor||e.source.color,endColor:e.endColor||e.target.color}),u.jsx("path",{fill:f??(o?`url("#${encodeURI(d)}")`:r),d:n})]}):null},lgt=({links:e,layout:t,linkOpacity:n,linkHoverOpacity:r,linkHoverOthersOpacity:i,linkContract:o,linkBlendMode:a,enableLinkGradient:s,setCurrentLink:l,currentLink:c,currentNode:d,isCurrentLink:f,isInteractive:p,onClick:v,tooltip:x})=>{const y=m.useMemo(()=>t==="horizontal"?igt():ogt(),[t]);return u.jsx(u.Fragment,{children:e.map(b=>u.jsx(sgt,{link:b,layout:t,path:y(b,o),color:b.color,opacity:1,blendMode:a,enableGradient:s,setCurrent:l,isInteractive:p,onClick:v,tooltip:x},`${b.source.id}.${b.target.id}.${b.index}`))})};function ugt({children:e,node:t,value:n}){return zfe(t,n)?e:null}const cgt=ca();function dgt(){switch(cgt.get(Cg)){case Io.Pct:return"%";case Io.Rate:return"/s";case Io.Count:return""}}const fgt=({nodes:e,layout:t,width:n,height:r,labelPosition:i,labelPadding:o,labelOrientation:a})=>{const s=a==="vertical"?-90:0,l=e.filter(c=>!c.hideLabel).map(c=>{let d,f,p;return t==="horizontal"?(f=c.y+c.height/2-5,c.alignLabelBottom&&(f=c.y1),ufe.includes(c.id)?(d=c.x0+(c.x1-c.x0)/2,f=f+10,p="middle"):c.labelPositionOverride==="right"?(d=c.x1+o,p=a==="vertical"?"middle":"start"):c.labelPositionOverride==="left"?(d=c.x-o,p=a==="vertical"?"middle":"end"):c.x{var v,x;const[d,f]=hgt(c.label,c.value),p=(v=c.label.split(":")[0])==null?void 0:v.trim();return u.jsx(ugt,{node:c.label,value:c.value,children:u.jsxs("text",{dominantBaseline:"central",textAnchor:c.textAnchor,transform:`translate(${c.x}, ${c.y}) rotate(${s})`,className:"sankey-label",children:[pgt(p).map((y,b)=>u.jsx("tspan",{x:"0",dy:b===0?"0em":"1em",style:{fill:d},children:y},y)),u.jsxs("tspan",{x:"0",dy:"1em",style:{fill:f},children:[(x=c.value)==null?void 0:x.toLocaleString(),dgt()]})]},c.id)},c.id)})})};function hgt(e,t){return t?QL.includes(e)?[Zf,Zf]:ffe.includes(e)?[Zf,Hf]:ufe.includes(e)?[wg,wg]:cfe.includes(e)||hfe.includes(e)?[Zf,fd]:e===We.Votes?[Zf,hd]:[Zf,Zf]:[wg,wg]}function pgt(e){if(e.length<17||!e.includes(" "))return[e];const t=Math.trunc(e.length/2),n=e.lastIndexOf(" ",t),r=e.indexOf(" ",t+1),i=t-n{const{margin:je,innerWidth:me,innerHeight:ke,outerWidth:he,outerHeight:ue}=qde(o,a,s),{nodes:re,links:ge,legendData:$e,getNodeBorderColor:pe,currentNode:ye,setCurrentNode:Se,currentLink:Ce,setCurrentLink:Ue,getLabelTextColor:Ge}=tgt({data:e,valueFormat:t,layout:n,width:me,height:ke,sort:r,align:i,colors:l,nodeThickness:c,nodeSpacing:d,nodeInnerPadding:f,nodeBorderColor:p,label:te,labelTextColor:q});let _t=()=>!1,St=()=>!1;if(Ce&&(_t=({id:bt})=>bt===Ce.source.id||bt===Ce.target.id,St=({source:bt,target:Qe})=>bt.id===Ce.source.id&&Qe.id===Ce.target.id),ye){let bt=[ye.id];ge.filter(({source:Qe,target:Ke})=>Qe.id===ye.id||Ke.id===ye.id).forEach(({source:Qe,target:Ke})=>{bt.push(Qe.id),bt.push(Ke.id)}),bt=_nt(bt),_t=({id:Qe})=>bt.includes(Qe),St=({source:Qe,target:Ke})=>Qe.id===ye.id||Ke.id===ye.id}const ut={links:ge,nodes:re,margin:je,width:o,height:a,outerWidth:he,outerHeight:ue},ct={links:null,nodes:null,labels:null,legends:null};return H.includes("links")&&(ct.links=u.jsx(lgt,{links:ge,layout:n,linkContract:j,linkOpacity:_,linkHoverOpacity:S,linkHoverOthersOpacity:C,linkBlendMode:T,enableLinkGradient:E,setCurrentLink:Ue,currentNode:ye,currentLink:Ce,isCurrentLink:St,isInteractive:A,onClick:Y,tooltip:X},"links")),H.includes("nodes")&&(ct.nodes=u.jsx(rgt,{nodes:re,nodeOpacity:v,nodeHoverOpacity:x,nodeHoverOthersOpacity:y,borderWidth:b,borderRadius:w,getBorderColor:pe,setCurrentNode:Se,currentNode:ye,currentLink:Ce,isCurrentNode:_t,isInteractive:A,onClick:Y,tooltip:P},"nodes")),H.includes("labels")&&$&&(ct.labels=u.jsx(fgt,{nodes:re,layout:n,width:me,height:ke,labelPosition:D,labelPadding:M,labelOrientation:O,getLabelTextColor:Ge},"labels")),H.includes("legends")&&(ct.legends=u.jsx(m.Fragment,{children:F.map((bt,Qe)=>u.jsx(sfe,{...bt,containerWidth:me,containerHeight:ke,data:$e},`legend${Qe}`))},"legends")),u.jsx(XL,{width:he,height:ue,margin:je,role:ee,ariaLabel:ce,ariaLabelledBy:B,ariaDescribedBy:ae,children:H.map((bt,Qe)=>typeof bt=="function"?u.jsx(m.Fragment,{children:m.createElement(bt,ut)},Qe):(ct==null?void 0:ct[bt])??null)})},ggt=({isInteractive:e=Tn.isInteractive,animate:t=Tn.animate,motionConfig:n=Tn.motionConfig,theme:r,renderWrapper:i,...o})=>u.jsx(HL,{animate:t,isInteractive:e,motionConfig:n,renderWrapper:i,theme:r,children:u.jsx(mgt,{isInteractive:e,...o})});function Dfe({displayType:e,durationNanos:t,totalIncoming:n}){return function(r){switch(e){case Io.Count:return r;case Io.Pct:{let i=Math.max(0,Math.round(r/n*1e4)/100);return!i&&r&&(i=.01),i}case Io.Rate:{if(!t)return r;const i=t/1e9;return Math.trunc(r/i)}}}}function vgt(e){return e.net_overrun}function ygt(e){return e.quic_overrun+e.quic_frag_drop+e.quic_abandoned+e.tpu_quic_invalid+e.tpu_udp_invalid}function bgt(e){return e.verify_overrun+e.verify_parse+e.verify_failed+e.verify_duplicate}function xgt(e){return e.dedup_duplicate}function _gt(e,t){return e.resolv_expired+e.resolv_lut_failed+e.resolv_no_ledger+e.resolv_ancient+t}function wgt(e){return e.pack_invalid+e.pack_already_executed+e.pack_invalid_bundle+e.pack_expired+e.pack_leader_slow+e.pack_retained+e.pack_wait_full}function Afe(e,t){const n=Math.min(e.in.resolv_retained,e.out.resolv_retained),r=e.in.resolv_retained-n,i=e.out.resolv_retained-n,o=e.in.quic+e.in.udp-vgt(e.out),a=o-ygt(e.out),s=e.in.block_engine+e.in.gossip+a-bgt(e.out),l=s-xgt(e.out),c=r+l-_gt(e.out,i),d=e.in.pack_retained+e.in.pack_cranked+c-wgt(e.out),f=d-e.out.bank_invalid-e.out.bank_nonce_already_advanced-e.out.bank_nonce_advance_failed-e.out.bank_nonce_wrong_blockhash;return[{source:We.IncQuic,target:We.SlotStart,value:t(e.in.quic)},{source:We.IncUdp,target:We.SlotStart,value:t(e.in.udp)},{source:We.SlotStart,target:We.NetOverrun,value:t(e.out.net_overrun)},{source:We.SlotStart,target:We.QUIC,value:t(o)},{source:We.QUIC,target:We.QUICOverrun,value:t(e.out.quic_overrun)},{source:We.QUIC,target:We.QUICInvalid,value:t(e.out.tpu_quic_invalid+e.out.tpu_udp_invalid)},{source:We.QUIC,target:We.QUICTooManyFrags,value:t(e.out.quic_frag_drop)},{source:We.QUIC,target:We.QUICAbandoned,value:t(e.out.quic_abandoned)},{source:We.QUIC,target:We.Verification,value:t(a)},{source:We.IncGossip,target:We.Verification,value:t(e.in.gossip)},{source:We.IncBlockEngine,target:We.Verification,value:t(e.in.block_engine)},{source:We.Verification,target:We.VerifyOverrun,value:t(e.out.verify_overrun)},{source:We.Verification,target:We.VerifyParse,value:t(e.out.verify_parse)},{source:We.Verification,target:We.VerifyFailed,value:t(e.out.verify_failed)},{source:We.Verification,target:We.VerifyDuplicate,value:t(e.out.verify_duplicate)},{source:We.Verification,target:We.Dedup,value:t(s)},{source:We.Dedup,target:We.DedupDeuplicate,value:t(e.out.dedup_duplicate)},{source:We.Dedup,target:We.Resolv,value:t(l)},{source:We.IncResolvRetained,target:We.Resolv,value:t(r)},{source:We.Resolv,target:We.ResolvRetained,value:t(i)},{source:We.Resolv,target:We.ResolvFailed,value:t(e.out.resolv_lut_failed)},{source:We.Resolv,target:We.ResolvExpired,value:t(e.out.resolv_expired+e.out.resolv_ancient)},{source:We.Resolv,target:We.ResolvNoLedger,value:t(e.out.resolv_no_ledger)},{source:We.Resolv,target:We.Pack,value:t(c)},{source:We.IncPackCranked,target:We.Pack,value:t(e.in.pack_cranked)},{source:We.IncPackRetained,target:We.Pack,value:t(e.in.pack_retained)},{source:We.Pack,target:We.PackRetained,value:t(e.out.pack_retained)},{source:We.Pack,target:We.PackInvalid,value:t(e.out.pack_invalid)},{source:We.Pack,target:We.PackInvalidBundle,value:t(e.out.pack_invalid_bundle)},{source:We.Pack,target:We.PackExpired,value:t(e.out.pack_expired)},{source:We.Pack,target:We.PackAlreadyExecuted,value:t(e.out.pack_already_executed)},{source:We.Pack,target:We.PackLeaderSlow,value:t(e.out.pack_leader_slow)},{source:We.Pack,target:We.PackWaitFull,value:t(e.out.pack_wait_full)},{source:We.Pack,target:We.Execle,value:t(d)},{source:We.Execle,target:We.BankInvalid,value:t(e.out.bank_invalid)},{source:We.Execle,target:We.BankNonceAlreadyAdvanced,value:t(e.out.bank_nonce_already_advanced)},{source:We.Execle,target:We.BankNonceAdvanceFailed,value:t(e.out.bank_nonce_advance_failed)},{source:We.Execle,target:We.BankNonceWrongBlockhash,value:t(e.out.bank_nonce_wrong_blockhash)},{source:We.Execle,target:We.End,value:t(f)},{source:We.End,target:We.SlotEnd,value:t(f)}]}function kgt(e,t){const n=rt.sum(Object.values(e.in)),r=Dfe({displayType:t,durationNanos:void 0,totalIncoming:n});return[...Afe(e,r),{source:We.SlotEnd,target:We.BlockFailure,value:r(e.out.block_fail)},{source:We.SlotEnd,target:We.BlockSuccess,value:r(e.out.block_success)}]}function Sgt(e,t,n,r,i,o,a){const s=rt.sum(Object.values(e.in)),l=Dfe({displayType:t,durationNanos:n,totalIncoming:s}),c=(r??0)+(i??0);return[...Afe(e,l),{source:We.SlotEnd,target:We.Votes,value:l(c)},{source:We.SlotEnd,target:We.NonVoteFailure,value:l(a??0)},{source:We.SlotEnd,target:We.NonVoteSuccess,value:l(o??0)}]}function Cgt(){const e=J(Cn);return u.jsx(jgt,{slot:e},e)}function jgt({slot:e}){var o,a,s,l,c,d;const t=J(Cg),n=J(Gze),r=tc(e),i=m.useMemo(()=>{var x,y,b,w,_,S;const f=n??((x=r.response)==null?void 0:x.waterfall);if(!f)return;const p=n?kgt(f,t):Sgt(f,t,(y=r.response)==null?void 0:y.publish.duration_nanos,(b=r.response)==null?void 0:b.publish.success_vote_transaction_cnt,(w=r.response)==null?void 0:w.publish.failed_vote_transaction_cnt,(_=r.response)==null?void 0:_.publish.success_nonvote_transaction_cnt,(S=r.response)==null?void 0:S.publish.failed_nonvote_transaction_cnt),v=p.flatMap(C=>[C.source,C.target]);return{nodes:Ght.filter(C=>v.includes(C.id)),links:p}},[t,n,(o=r.response)==null?void 0:o.publish.duration_nanos,(a=r.response)==null?void 0:a.publish.failed_nonvote_transaction_cnt,(s=r.response)==null?void 0:s.publish.failed_vote_transaction_cnt,(l=r.response)==null?void 0:l.publish.success_nonvote_transaction_cnt,(c=r.response)==null?void 0:c.publish.success_vote_transaction_cnt,(d=r.response)==null?void 0:d.waterfall]);return!i||!i.links.length?r.hasWaitedForData?u.jsx(W,{justify:"center",align:"center",height:"100%",children:u.jsx(Z,{children:"No waterfall avaliable for this slot"})}):u.jsx(W,{justify:"center",align:"center",height:"100%",children:u.jsx(Iy,{style:{height:50,width:50}})}):u.jsx($s,{children:({height:f,width:p})=>{const v=p<600;if(v){const x=f;f=p,p=x}return u.jsx(ggt,{height:f,width:p,data:i,margin:{top:10,right:n?100:v?145:130,bottom:35,left:85},align:"center",isInteractive:!1,nodeThickness:0,nodeSpacing:Tgt(f),nodeBorderWidth:0,sort:"input",nodeBorderRadius:0,linkOpacity:1,enableLinkGradient:!0,labelPosition:"outside",labelPadding:16,animate:!1,nodeTooltip:Ffe,linkTooltip:Ffe})}})}function Ffe(){return null}function Tgt(e){return e<275?32:e<300?36:e<325?40:e<350?48:52}const Igt="_container_k3j09_1",Egt={container:Igt};function Ngt(){const[e,t]=m.useState(!1),n=J(V3),r=e&&!n,{tileCounts:i,groupedLiveIdlePerTile:o,showLive:a,queryIdleData:s}=HM(),l=i.net?"net":"sock";return u.jsxs("div",{className:Egt.container,children:[u.jsx(Wa,{header:l,subHeader:"(in)",tileCount:i[l],liveIdlePerTile:o==null?void 0:o[l],queryIdlePerTile:a||s==null?void 0:s[l],statLabel:"Ingress",metricType:"net_in",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"QUIC",tileCount:i.quic,liveIdlePerTile:o==null?void 0:o.quic,queryIdlePerTile:a||s==null?void 0:s.quic,statLabel:"Conns",metricType:"quic",isExpanded:r,setIsExpanded:t}),"bundle"in i&&u.jsx(Wa,{header:"bundle",tileCount:i.bundle,liveIdlePerTile:o==null?void 0:o.bundle,queryIdlePerTile:a||s==null?void 0:s.bundle,...a?{statLabel:"RTT",metricType:"bundle_rtt_smoothed_millis"}:{statLabel:"Lat p90",metricType:"bundle_rx_delay_millis_p90"},isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"verify",tileCount:i.verify,liveIdlePerTile:o==null?void 0:o.verify,queryIdlePerTile:a||s==null?void 0:s.verify,statLabel:"Failed",metricType:"verify",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"dedup",tileCount:i.dedup,liveIdlePerTile:o==null?void 0:o.dedup,queryIdlePerTile:a||s==null?void 0:s.dedup,statLabel:"Dupes",metricType:"dedup",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:To.resolv,tileCount:i[To.resolv],liveIdlePerTile:o==null?void 0:o[To.resolv],queryIdlePerTile:a||s==null?void 0:s[To.resolv],statLabel:"Resolv",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"pack",tileCount:i.pack,liveIdlePerTile:o==null?void 0:o.pack,queryIdlePerTile:a||s==null?void 0:s.pack,statLabel:"Full",metricType:"pack",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:To.bank,tileCount:i[To.bank],liveIdlePerTile:o==null?void 0:o[To.bank],queryIdlePerTile:a||s==null?void 0:s[To.bank],statLabel:"TPS",metricType:"bank",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:To.poh,tileCount:i[To.poh],liveIdlePerTile:o==null?void 0:o[To.poh],queryIdlePerTile:a||s==null?void 0:s[To.poh],statLabel:"Hash",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"shred",tileCount:i.shred,liveIdlePerTile:o==null?void 0:o.shred,queryIdlePerTile:a||s==null?void 0:s.shred,statLabel:"Shreds",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:l,subHeader:"(out)",tileCount:i[l],liveIdlePerTile:o==null?void 0:o[l],queryIdlePerTile:a||s==null?void 0:s[l],statLabel:"Egress",metricType:"net_out",isExpanded:r,setIsExpanded:t})]})}const $gt="_container_k6h1w_1",Mgt="_toggle-group_k6h1w_46",Rgt="_toggle-group-item_k6h1w_53",t_={container:$gt,toggleGroup:Mgt,toggleGroupItem:Rgt};function Lgt(){const[e,t]=Vl(Cg);return u.jsx("div",{className:t_.container,children:u.jsxs(M7,{className:t_.toggleGroup,type:"single","aria-label":"Dropped Type",value:e,children:[u.jsx(B0,{className:t_.toggleGroupItem,value:Io.Count,"aria-label":Io.Count,onClick:()=>t(Io.Count),children:"Count"}),u.jsx(B0,{className:t_.toggleGroupItem,value:Io.Pct,"aria-label":Io.Pct,onClick:()=>t(Io.Pct),children:"Pct %"}),u.jsx(B0,{className:t_.toggleGroupItem,value:Io.Rate,"aria-label":Io.Rate,onClick:()=>t(Io.Rate),children:"Rate"})]})})}const Pgt="_slot-performance-container_6u4bp_1",Ogt="_sankey-container_6u4bp_5",zgt="_slot-sankey-container_6u4bp_11",tP={slotPerformanceContainer:Pgt,sankeyContainer:Ogt,slotSankeyContainer:zgt};function Ufe(){return u.jsx(so,{children:u.jsxs(W,{direction:"column",gap:"1",className:tP.slotPerformanceContainer,children:[u.jsx(W,{gap:"3",children:u.jsx(kd,{text:"TPU Waterfall"})}),u.jsx(Dgt,{}),u.jsx(Ngt,{})]})})}function Dgt(){return u.jsxs("div",{className:tP.sankeyContainer,children:[u.jsx(Lgt,{}),u.jsx("div",{className:tP.slotSankeyContainer,children:u.jsx(Cgt,{})})]})}const Agt="_chart_102uq_43",Fgt={chart:Agt},Ugt="_chart_1hpd4_1",Bgt="_focused_1hpd4_32",nP={chart:Ugt,focused:Bgt};function rP(){return{hooks:{init:[e=>{const t=e.root.querySelectorAll(".u-axis")[0];t&&t.addEventListener("mousedown",n=>{const r=n.clientX,i=e.axes[0].scale;if(i===void 0)return;const o=e.scales[i],{min:a,max:s}=o,l=((s??0)-(a??0))/(e.bbox.width/jn.pxRatio),c=f=>{const p=(f.clientX-r)*l;if(!e.data[0].length)return;const v=e.data[0][0]??0,x=e.data[0][e.data[0].length-1]??0;e.setScale(i,{min:Math.max(v,f.shiftKey?(a??0)-p:(a??0)+p),max:Math.min(x,(s??0)+p)})},d=()=>{document.removeEventListener("mousemove",c),document.removeEventListener("mousemove",d)};document.addEventListener("mousemove",c),document.addEventListener("mouseup",d)})}]}}}const Bfe="banks",Td="lamports",fh="computeUnits",Vt="banksXScale",Wgt="txnExecutionDuration",Wfe="txnExecutionDurationTooltip",Vfe=fe(),Hfe=fe(0),Zfe=fe(0),qfe=fe(!0),Gfe=fe(void 0),Yfe=fe(e=>{const t=e(Gfe);return t===void 0?e(s3)===ld.balanced:t},(e,t,n)=>{t(Gfe,n)}),Vgt=ca(),iP=1/9,oP=[{color:"42 126 223"},{color:"30 156 80"},{color:"30 156 80",opacity:.05},{color:"174 85 17",opacity:.05},{color:"244 5 5",opacity:.05},{color:"244 5 5",opacity:.1}],aP=e=>oP[e]??oP[oP.length-1];function Kfe({computeUnits:e,bankCount:t,tEnd:n,maxComputeUnits:r}){return Math.round((e-r)/t/iP+n)}function Hgt(e,t,n){const r=[];function i(o,a,s,l){const c=(o.x-a.x)*(s.y-l.y)-(o.y-a.y)*(s.x-l.x);if(c===0)return;const d=((o.x-s.x)*(s.y-l.y)-(o.y-s.y)*(s.x-l.x))/c,f=((o.x-s.x)*(o.y-a.y)-(o.y-s.y)*(o.x-a.x))/c;if(!(d<0||d>1||f<0||f>1))return{x:o.x+d*(a.x-o.x),y:o.y+d*(a.y-o.y)}}for(const o of e){const a=i(t,n,o[0],o[1]);a&&r.push(a)}if(r.length)return r.length!==2&&console.debug(r),r.sort((o,a)=>o.x-a.x)}function Zgt(e,t,n,r,i){const o=Number(n.target_end_timestamp_nanos-n.start_timestamp_nanos),a=e.min??0,s=e.max??o,l=t.max??r,c=t.min??0,d=[[{x:a,y:l},{x:s,y:l}],[{x:a,y:l},{x:a,y:c}],[{x:a,y:c},{x:s,y:c}],[{x:s,y:l},{x:s,y:c}]],f=[];for(let p=1;p<=i;p++){const v=Kfe({computeUnits:0,tEnd:o,maxComputeUnits:r,bankCount:p}),x=Kfe({computeUnits:r,tEnd:o,maxComputeUnits:r,bankCount:p}),y=Hgt(d,{x:v,y:0},{x,y:r});y&&f.push({line:y,bankCount:p})}return f}function Xfe(e){return[{x:e.left,y:e.top+e.height},{x:e.left+e.width,y:e.top+e.height},{x:e.left+e.width,y:e.top},{x:e.left,y:e.top}]}function bl(e,t){return Math.abs(e-t)<2}function qgt(e,t,n){const r=Xfe(e),i=[...t,...n];for(const a of r)((a.x>=t[0].x||bl(a.x,t[0].x))&&(a.x<=n[0].x||bl(a.x,n[0].x))&&(a.y>=t[0].y||bl(a.y,t[0].y))&&(a.y<=n[0].y||bl(a.y,n[0].y))||(a.x>=t[1].x||bl(a.x,t[1].x))&&(a.x<=n[1].x||bl(a.x,n[1].x))&&(a.y>=t[1].y||bl(a.y,t[1].y))&&(a.y<=n[1].y||bl(a.y,n[1].y)))&&i.push(a);const o={x:i.reduce((a,s)=>a+s.x,0)/i.length,y:i.reduce((a,s)=>a+s.y,0)/i.length};return i.sort((a,s)=>{const l=Math.atan2(a.y-o.y,a.x-o.x),c=Math.atan2(s.y-o.y,s.x-o.x);return l-c}),i}function Ggt(e,t,n,r,i){if(!i.opacity)return;const o=qgt(t,n,r);if(o.length>1){e.beginPath(),e.moveTo(o[0].x,o[0].y);for(let a=1;a{window.addEventListener("dppxchange",sP)},destroy:()=>{window.removeEventListener("dppxchange",sP)},drawSeries:[(r,i)=>{if(r.series[i].label!=="Active Bank")return;const o=e.current,a=t.current,s=n.current;if(o===null||a===null||s===null)return;const l=r.ctx;l.save();const c=!Vgt.get(Yfe),d=Number(o.target_end_timestamp_nanos-o.start_timestamp_nanos),f=Math.trunc(a+.05*d*iP),p=c?[]:Zgt(r.scales[Vt],r.scales[fh],o,f,s);p.unshift({line:[{x:r.scales[Vt].min??0,y:a},{x:r.scales[Vt].max??45e7,y:a}],bankCount:0});const v=[];sP(),l.font=Jfe;const x={x:-100,y:30};for(let y=0;yjn.pxRatio*50||bl(_,r.bbox.left)&&Math.abs(S-x.y)>jn.pxRatio*20){l.save();const E=Math.atan2(j-S,C-_);l.translate(_,S),l.rotate(E),l.fillStyle=l.strokeStyle;const $=`${w-1} Bank${w===2?"":"s"} Active`;l.measureText($).width<=r.bbox.left+r.bbox.width-_&&l.fillText($,4*jn.pxRatio,-8*jn.pxRatio),l.restore()}x.x=_,x.y=S}}if(v.length>0){v.unshift({line:[{x:r.bbox.left,y:bl(v[0].line[0].x,r.bbox.left)?v[0].line[0].y:r.bbox.top+r.bbox.height},{x:r.bbox.left,y:r.bbox.top}],bankCount:v[0].bankCount-1}),v.push({line:[{x:r.bbox.left+r.bbox.width,y:r.bbox.top+r.bbox.height},{x:r.bbox.left+r.bbox.width,y:bl(v[v.length-1].line[1].x,r.bbox.left+r.bbox.width)?v[v.length-1].line[1].y:r.bbox.top}],bankCount:v[v.length-1].bankCount+1});for(let y=1;yS||i===d.after&&n[d.offsetSize]>C)&&(i=S>C?d.before:d.after);var j=i===d.before?S:C,T=parseInt(c[d.maxSize]);(!T||j{const n=document.getElementById(Qfe);n&&(n_=n)},drawSeries:[(t,n)=>{if(t.series[n].label!=="Active Bank"||(n_.style.display="none",e!==ld.revenue))return;const r=t.scales[Vt],i=Math.round(t.valToPos(SS,Vt,!0));if(r.min!==void 0&&SSr.max)return;const o=t.ctx;if(o.save(),o.beginPath(),o.strokeStyle=Rne,o.lineWidth=3,o.setLineDash([5,5]),o.moveTo(i,t.bbox.top),o.lineTo(i,t.bbox.top+t.bbox.height),o.stroke(),o.restore(),n_){const a={left:Math.round(t.valToPos(SS,Vt,!1))+t.over.offsetLeft-lP/2,top:t.over.offsetTop-lP};ehe(n_,a,"center","bottom"),n_.style.display="block"}}]}}}const the=1;let r_=!1;function nhe(){return document.getElementById("scroll-container")??document.body}function i_({elId:e,showOnCursor:t,showPointer:n,closeTooltipElId:r,getClosestIdx:i}){let o,a,s,l,c=!1;function d(){const _=o.getBoundingClientRect();s=_.left,l=_.top}function f(){r_=!0,w.style.pointerEvents="auto",y(),setTimeout(()=>{var _;document.addEventListener("click",b),r&&((_=document.getElementById(r))==null||_.addEventListener("click",p))},0)}function p(){var _;r_=!1,w.style.pointerEvents="none",w.style.display="none",document.removeEventListener("click",b),r&&((_=document.getElementById(r))==null||_.removeEventListener("click",p))}const v=rt.throttle(p,100,{leading:!0,trailing:!0});function x(){n&&(document.body.style.cursor="pointer",document.body.addEventListener("click",f))}function y(){n&&(document.body.style.cursor="unset",document.body.removeEventListener("click",f))}function b(_){const S=document.getElementById(e);_.target&&(S!=null&&S.contains(_.target))||(p(),y())}let w;return{opts:(_,S)=>{i&&(S.cursor??(S.cursor={}),S.cursor.dataIdx=(C,j,T)=>j===the?i(C):T)},hooks:{init:_=>{const S=document.getElementById(e);S?w=S:(w=document.createElement("div"),w.id=e,document.body.appendChild(w)),w&&(w.style.display="none",w.style.pointerEvents="none",o=_.over,a=document.body,o.onmouseenter=()=>{c=!0},o.onmouseleave=()=>{c=!1,!r_&&(w.style.display="none",y(),r_=!1)},nhe().addEventListener("scroll",v))},destroy:()=>{o.onmouseenter=null,o.onmouseleave=null,y(),p(),nhe().removeEventListener("scroll",v)},setSize:()=>{d()},syncRect:()=>{d()},setCursor:_=>{var E;if(!c||r_)return;const{left:S,top:C}=_.cursor,j=(E=_.cursor.idxs)==null?void 0:E[i?the:0];if(S===void 0||C===void 0||j===void 0)return;const T=_.posToVal(S,_.series[0].scale??"x");if(j!==null&&t(_,T,j)){const $={left:S+s+5,top:C+l};w.style.display="block",w.style.pointerEvents="none",x(),ehe(w,$,"right","start",{bound:a})}else w.style.display="none",y()},setScale:()=>{y(),p()}}}}function n1t(e){function t(n,r,i){const o=r>=n.data[0][i]?i:i-1;return e({elapsedTime:r,activeBanks:n.data[1][o],computeUnits:n.data[2][o],fees:n.data[3][o],tips:n.data[4][o]}),!0}return i_({elId:"cu-chart-tooltip",showOnCursor:t})}function uP(e){const t=e.factor||.75,n=.1;let r,i,o,a,s,l,c;return{hooks:{ready(d){var y;const f=d.series[0].scale??"x",p=((y=d.series.find((b,w)=>w>0&&b.show!==!1))==null?void 0:y.scale)??"y";r=d.scales[f].min??0,i=d.scales[f].max??0,o=d.scales[p].min??0,a=d.scales[p].max??0,s=i-r,l=a-o;const v=d.over;let x=v.getBoundingClientRect();c=new ResizeObserver(()=>{x=v.getBoundingClientRect()}),c.observe(v),v.addEventListener("wheel",b=>{if(b.ctrlKey||b.metaKey||b.shiftKey){if(b.preventDefault(),b.ctrlKey||b.metaKey){let{left:w,top:_}=d.cursor;w??(w=0),_??(_=0);const S=w/x.width,C=1-_/x.height,j=d.posToVal(w,Vt),T=d.posToVal(_,"y"),E=(d.scales[f].max??0)-(d.scales[f].min??0),$=(d.scales[p].max??0)-(d.scales[p].min??0),D=b.deltaY<0?E*t:E/t;let M=j-S*D,O=M+D;[M,O]=v6(D,M,O,s,r??0,i??0);const te=b.deltaY<0?$*t:$/t;let q=T-C*te,P=q+te;[q,P]=v6(te,q,P,l,o??0,a??0),requestAnimationFrame(()=>d.batch(()=>{d.setScale(Vt,{min:M,max:O})}))}else if(b.shiftKey){const w=(d.scales[f].max??0)-(d.scales[f].min??0);let _=w*n;b.deltaY>=0&&(_*=-1);const[S,C]=v6(w,(d.scales[f].min??0)+_,(d.scales[f].max??0)+_,w,r??0,i??0);requestAnimationFrame(()=>d.setScale(Vt,{min:S,max:C}))}}})},destroy(d){c==null||c.disconnect()}}}}const r1t=ca();let cP=!1;function dP(e){const t=(e==null?void 0:e.minRange)??0;return{hooks:{setScale:(n,r)=>{const i=n.series[0].scale??"x";if(cP||r!==i)return;const o=n.scales[i];cP=!0;let a=o.min??0,s=o.max??0;if(s-a{i===(l.series[0].scale??"x")&&l.setScale(i,{min:a,max:s})}),cP=!1}}}}var dn=(e=>(e.DEFAULT="All",e.PRELOADING="Pre-Loading",e.VALIDATE="Validate",e.LOADING="Loading",e.EXECUTE="Execute",e.POST_EXECUTE="Post-Execute",e))(dn||{});const i1t={All:LN,"Pre-Loading":Pne,Validate:PN,Loading:zne,Execute:Ane,"Post-Execute":Une},va={All:LN,"Pre-Loading":One,Validate:PN,Loading:Dne,Execute:Fne,"Post-Execute":Bne};var Ci=(e=>(e[e.ERROR=0]="ERROR",e[e.MICROBLOCK=1]="MICROBLOCK",e[e.BUNDLE=2]="BUNDLE",e[e.LANDED=3]="LANDED",e[e.SIMPLE=4]="SIMPLE",e[e.FEES=5]="FEES",e[e.TIPS=6]="TIPS",e[e.CUS_CONSUMED=7]="CUS_CONSUMED",e[e.CUS_REQUESTED=8]="CUS_REQUESTED",e[e.INCOME_CUS=9]="INCOME_CUS",e))(Ci||{});const rhe="bank-",fP=2e6;function hP(e,t=!1){if(!e)return 0;const n=e.txn_mb_end_timestamps_nanos.map(i=>Number(i-e.start_timestamp_nanos));n.push(Number(e.target_end_timestamp_nanos-e.start_timestamp_nanos));const r=rt.max(n)??0;return t?r+fP:r}function pP(e,t,n){if(t<0)return{preLoading:0n,validating:0n,loading:0n,execute:0n,postExecute:0n};let r=e.txn_mb_start_timestamps_nanos[t],i=e.txn_mb_end_timestamps_nanos[t];const o=Vi?e.txn_start_timestamps_nanos:e.txn_preload_end_timestamps_nanos;if(e.txn_from_bundle[t]&&(n!=null&&n.length)){const x=n.indexOf(t)??-1;n[x-1]>0&&(r=o[t]);const y=x!==-1?n[x+1]:-1;y>0&&(i=o[y])}const a=e.txn_preload_end_timestamps_nanos[t],s=e.txn_start_timestamps_nanos[t],l=e.txn_load_end_timestamps_nanos[t];let c,d,f;Vi?(c=s-r,d=a-s,f=l-a):(c=a-r,f=s-a,d=l-s);let p,v;if(xi||!e.txn_from_bundle[t]||!(n!=null&&n.length))p=e.txn_end_timestamps_nanos[t]-e.txn_load_end_timestamps_nanos[t],v=i-e.txn_end_timestamps_nanos[t];else{const x=n.indexOf(t)??-1,y=x!==-1?n[x+1]:-1;y>0?(p=o[y]-e.txn_load_end_timestamps_nanos[t],v=e.txn_end_timestamps_nanos[y]-e.txn_end_timestamps_nanos[t]):(p=e.txn_end_timestamps_nanos[t]-e.txn_load_end_timestamps_nanos[t],v=i-e.txn_end_timestamps_nanos[t])}return{preLoading:c,validating:f,loading:d,execute:p,postExecute:v}}function CS(e,t){const n=e.txn_microblock_id[t],r=[];for(let i=0;iNumber(o-t.start_timestamp_nanos);if(Vi){if(e0){if(e{const d=c.series[0].scale??"x";r=c.scales[d].min??0,i=c.scales[d].max??0,n=i-r;function f(){const v=a.dx/s.dx,x=s.x/e.width,y=t*v;let b=o-x*y,w=b+y;[b,w]=v6(y,b,w,n,r,i),c.batch(()=>{c.setScale(d,{min:b,max:w})}),l=!1}function p(v){ohe(v,s,e),l||(l=!0,requestAnimationFrame(f))}c.over.addEventListener("touchstart",function(v){c.scales[d].max===void 0||c.scales[d].min===void 0||(e=c.over.getBoundingClientRect(),t=c.scales[d].max-c.scales[d].min,o=c.posToVal(a.x,d),ohe(v,a,e),document.addEventListener("touchmove",p,{passive:!0}))}),c.over.addEventListener("touchend",function(v){document.removeEventListener("touchmove",p)})}}}}function s1t(e){const t=[...e.txn_mb_start_timestamps_nanos.map((l,c)=>({timestampNanos:Number(l-e.start_timestamp_nanos),txn_idx:c,isTxnStart:!0})),...e.txn_mb_end_timestamps_nanos.map((l,c)=>({timestampNanos:Number(l-e.start_timestamp_nanos),txn_idx:c,isTxnStart:!1}))].sort((l,c)=>l.timestampNanos-c.timestampNanos),n=[];let r=0,i=0,o=0;const a=t.reduce((l,c,d)=>{const f=c.txn_idx,p=e.txn_landed[f]?c.isTxnStart?e.txn_compute_units_requested[f]:-e.txn_compute_units_requested[f]+e.txn_compute_units_consumed[f]:0,v=c.isTxnStart?0:Number(VN(e,f)),x=c.isTxnStart?0:Number(HN(e,f));n[e.txn_bank_idx[f]]=c.isTxnStart;const y=n.filter(C=>C).length,b=l[0].length-1,w=(l[2][b]||0)+p,_=(l[3][b]||0)+v,S=(l[4][b]||0)+x;return y>o&&(o=y),w>i&&(i=w),_>r&&(r=_),S>r&&(r=S),d>0&&t[d-1].timestampNanos===c.timestampNanos?(l[1][b]=y,l[2][b]=w,l[3][b]=_,l[4][b]=S):(l[0].push(c.timestampNanos),l[1].push(y),l[2].push(w),l[3].push(_),l[4].push(S)),l},[[-fP],[0],[0],[0],[0]]),s=hP(e,!0);return a.forEach(l=>{l.push(null)}),a[0][a[0].length-1]=s,{chartData:a,maxBankCount:o,maxComputeUnits:i,maxLamports:r}}const{stepped:gP}=jn.paths,vP=gP==null?void 0:gP({align:1}),jS=(e,t,n,r)=>(vP==null?void 0:vP(e,t,n,r))??null,l1t="cu-chart";function u1t({slotTransactions:e,maxComputeUnits:t,bankTileCount:n,onCreate:r}){const i=Ee(Vfe),o=Ee(Hfe),a=Ee(Zfe),s=m.useRef(e);s.current=e;const l=m.useRef(t);l.current=t;const c=m.useRef(n);c.current=n;const{chartData:d,maxBankCount:f,maxComputeUnits:p,maxLamports:v}=m.useMemo(()=>s1t(e),[e]),x=m.useCallback((b,w)=>!(b>0||w({width:0,height:0,class:nP.chart,drawOrder:["axes","series"],cursor:{sync:{key:Vt},points:{show:!1}},scales:{[Vt]:{time:!1},[fh]:{range:(b,w,_)=>{if(x(w,_))return[0,t+1e6];const S=Math.max(_-w,5e4);return[Math.max(w-S,0),Math.min(_+S,t+1e6)]}},[Bfe]:{range:[0,f+1]},[Td]:{range:[0,v*1.1]}},axes:[{border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{width:1/devicePixelRatio,stroke:$N},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},size:30,values:(b,w)=>w.map(_=>_/1e6+"ms"),space:100,scale:Vt},{scale:fh,border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{width:1/devicePixelRatio,stroke:$N},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},values:(b,w)=>w.map(_=>_/1e6+"M"),space:50,size(b,w,_,S){var $,D;const C=b.axes[_];if(S>1)return C._size;let j=(($=C.ticks)==null?void 0:$.size)??0+(C.gap??0);j+=5;const T=(w??[]).reduce((M,O)=>O.length>M.length?O:M,"");T!==""&&(b.ctx.font=((D=C.font)==null?void 0:D[0])??"Inter Tight",j+=b.ctx.measureText(T).width/devicePixelRatio);const E=Math.ceil(j);return o(E),E}},{scale:Td,stroke:sr,border:{show:!0,width:1/devicePixelRatio,stroke:sr},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},values:(b,w)=>w.map(_=>_/dd+" SOL"),side:1,space:50,size(b,w,_,S){var $,D;const C=b.axes[_];if(S>1)return C._size;let j=(($=C.ticks)==null?void 0:$.size)??0+(C.gap??0);j+=5;const T=(w??[]).reduce((M,O)=>O.length>M.length?O:M,"");T!==""&&(b.ctx.font=((D=C.font)==null?void 0:D[0])??"Inter Tight",j+=b.ctx.measureText(T).width/devicePixelRatio);const E=Math.ceil(j);return a(E),E}}],series:[{scale:Vt},{label:"Active Bank",stroke:"rgba(117, 77, 18, 1)",paths:jS,points:{show:!1},width:2/devicePixelRatio,scale:Bfe},{label:"Compute Units",stroke:pd,paths:jS,points:{show:!1},width:2/devicePixelRatio,scale:fh},{label:"Fees",stroke:kg,paths:jS,points:{show:!1},width:2/devicePixelRatio,scale:Td},{label:"Tips",stroke:qf,paths:jS,points:{show:!1},width:2/devicePixelRatio,scale:Td}],legend:{show:!1},plugins:[t1t(),Kgt({slotTransactionsRef:s,maxComputeUnitsRef:l,bankTileCountRef:c}),rP(),uP({factor:.75}),n1t(i),dP(),a1t(),mP()]}),[f,v,i,x,t,o,a]);return u.jsx("div",{style:{height:"100%"},children:u.jsx($s,{children:({height:b,width:w})=>(y.width=w,y.height=b,u.jsx(u.Fragment,{children:u.jsx(Pp,{id:l1t,options:y,data:d,onCreate:r})}))})})}const c1t="_tooltip_h8khk_1",d1t={tooltip:c1t};function o_({elId:e,children:t}){const n=J(jg);return u.jsx(lB,{container:n,id:e,className:d1t.tooltip,children:t})}const f1t="_tooltip_11ays_1",h1t="_active-banks_11ays_14",p1t="_compute-units_11ays_18",m1t="_elapsed-time_11ays_22",g1t="_fees_11ays_26",v1t="_tips_11ays_30",y1t="_label_11ays_34",qo={tooltip:f1t,activeBanks:h1t,computeUnits:p1t,elapsedTime:m1t,fees:g1t,tips:v1t,label:y1t};function b1t(){var t;const e=J(Vfe);return u.jsx(o_,{elId:"cu-chart-tooltip",children:e&&u.jsxs("div",{className:qo.tooltip,children:[u.jsx(Z,{className:Te(qo.activeBanks,qo.label),children:"Active\xA0banks"}),u.jsx(Z,{className:qo.activeBanks,children:e.activeBanks??"-"}),u.jsx(Z,{className:Te(qo.computeUnits,qo.label),children:"Compute\xA0units"}),u.jsxs(Z,{className:qo.computeUnits,children:[((t=e.computeUnits)==null?void 0:t.toLocaleString())??"-","\xA0CUs"]}),u.jsx(Z,{className:Te(qo.elapsedTime,qo.label),children:"Time\xA0elapsed"}),u.jsx(Z,{className:qo.elapsedTime,children:e.elapsedTime!=null?`${(e.elapsedTime/1e6).toLocaleString(void 0,{maximumFractionDigits:6})} ms`:"-"}),u.jsx(Z,{className:Te(qo.tips,qo.label),children:"Tips"}),u.jsx(Z,{className:qo.tips,children:BN(BigInt(e.tips||0),Bo)}),u.jsx(Z,{className:Te(qo.fees,qo.label),children:"Fees"}),u.jsx(Z,{className:qo.fees,children:BN(BigInt(e.fees||0),Bo)})]})})}const x1t="_button_1b3a4_1",yP={button:x1t};function _1t({onUplot:e}){const t=J(qfe);return u.jsxs(W,{gap:"3",align:"center",children:[u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsxs(W,{gap:"1px",children:[u.jsx(nl,{variant:"soft",onClick:()=>e(n=>{const r=n.scales[Vt].min??0,i=n.scales[Vt].max??0,o=i-r;if(o<=0)return;const a=o*.2;n.setScale(Vt,{min:r+a,max:i-a})}),className:yP.button,children:u.jsx(_Ue,{width:"18",height:"18"})}),u.jsx(nl,{variant:"soft",onClick:()=>e(n=>{const r=n.data[0][0],i=n.data[0].at(-1)??r,o=n.scales[Vt].min??0,a=n.scales[Vt].max??0,s=a-o;if(s<=0)return;const l=s*.2;n.setScale(Vt,{min:Math.max(o-l,r),max:Math.min(a+l,i)})}),disabled:t,className:yP.button,children:u.jsx(kUe,{width:"18",height:"18"})}),u.jsx(hs,{variant:"soft",onClick:()=>e(n=>n.setScale(Vt,{min:n.data[0][0],max:n.data[0].at(-1)??0})),disabled:t,className:yP.button,children:u.jsx(gUe,{width:"18",height:"18"})})]})]})}const w1t="_label_1q3ew_1",k1t={label:w1t};function S1t({checked:e,onCheckedChange:t,label:n,color:r}){return u.jsx(W,{align:"center",gap:"2",children:u.jsx(Z,{as:"label",className:k1t.label,style:{color:r},children:u.jsxs(W,{gap:"2",children:[u.jsx(K7,{checked:e,onCheckedChange:t,size:"1"}),n]})})})}function C1t({onUplot:e}){const[t,n]=Vl(Yfe),r=i=>{n(i),e(o=>{o.redraw(!1,!1)})};return u.jsx(S1t,{label:"Show Projections",checked:t,onCheckedChange:r,color:mN})}const ahe="500px";function j1t(){var a;const e=J(Cn),t=pl(e),n=m.useRef(),r=J(Nb)[To.bank],i=m.useCallback(s=>{n.current=s},[]),o=m.useCallback(s=>n.current&&s(n.current),[]);return!e||!((a=t.response)!=null&&a.transactions)?u.jsx(T1t,{}):u.jsxs(u.Fragment,{children:[u.jsx(so,{children:u.jsxs(W,{direction:"column",height:ahe,gap:"2",children:[u.jsxs(W,{gap:"3",children:[u.jsx(kd,{text:"Slot Progression"}),u.jsx(_1t,{onUplot:o}),u.jsx(C1t,{onUplot:o})]}),u.jsxs("div",{className:Fgt.chart,children:[u.jsx(u1t,{slotTransactions:t.response.transactions,maxComputeUnits:t.response.publish.max_compute_units??Ute,bankTileCount:r,onCreate:i}),u.jsx(Qgt,{})]})]})}),u.jsx(b1t,{})]})}function T1t(){return u.jsx(so,{style:{display:"flex",flexGrow:"1",height:ahe,justifyContent:"center",alignItems:"center"},children:u.jsx(Z,{children:"Loading Slot Progress..."})})}function she(e,t){return Math.round(e*(t=10**t))/t}const I1t=1,lhe=(e,t,n,r,i)=>she(t+e*(n+i),6);function E1t(e,t,n,r,i){let o=(1-t)/(e-1);(isNaN(o)||o===1/0)&&(o=0);const a=0,s=t/e,l=she(s,6),c=l,d=l;if(r==null)for(let f=0;f=n&&e<=i&&t>=r&&t<=o}const vc=class vc{constructor(t,n,r,i,o=0){$u(this,"x");$u(this,"y");$u(this,"w");$u(this,"h");$u(this,"l");$u(this,"o");$u(this,"q");this.x=t,this.y=n,this.w=r,this.h=i,this.l=o,this.o=[],this.q=null}split(){const t=this.w/2,n=this.h/2,r=this.l+1;this.q=[new vc(this.x+t,this.y,t,n,r),new vc(this.x,this.y,t,n,r),new vc(this.x,this.y+n,t,n,r),new vc(this.x+t,this.y+n,t,n,r)]}quads(t,n,r,i,o){if(!this.q)return;const a=this.x+this.w/2,s=this.y+this.h/2,l=na,f=n+i>s;l&&d&&o(this.q[0]),c&&l&&o(this.q[1]),c&&f&&o(this.q[2]),d&&f&&o(this.q[3])}add(t){if(this.q)this.quads(t.x,t.y,t.w,t.h,n=>n.add(t));else if(this.o.push(t),this.o.length>vc.MAX_OBJECTS&&this.lr.add(n));this.o.length=0}}get(t,n,r,i,o){for(const a of this.o)o(a);this.q&&this.quads(t,n,r,i,a=>a.get(t,n,r,i,o))}clear(){this.o.length=0,this.q=null}};$u(vc,"MAX_OBJECTS",10),$u(vc,"MAX_LEVELS",4);let bP=vc;function uhe(e,t,n=Math.E){return e===0||t===0?0:((e<=0||t<=0)&&(console.error(e,t),console.error("Logarithms are only defined for positive numbers.")),n===Math.E?Math.log(e)-Math.log(t):Math.log(e)/Math.log(n)-Math.log(t)/Math.log(n))}function $1t(e,t){if(Math.trunc(e)!==e){let n=0;for(;Math.trunc(e)!==e;)e*=10,n++;return e/(Math.pow(10,n)*t)}else return e/t}function xP(e){return`${rhe}${e}`}function M1t(e,t){if(t<0||e.txn_mb_start_timestamps_nanos[t]===void 0)return;const n=e.start_timestamp_nanos,r=Number(e.txn_mb_start_timestamps_nanos[t]-n),i=Number(e.txn_preload_end_timestamps_nanos[t]-n),o=Number(e.txn_start_timestamps_nanos[t]-n),a=Number(e.txn_load_end_timestamps_nanos[t]-n),s=Number(e.txn_end_timestamps_nanos[t]-n),l=Number(e.txn_mb_end_timestamps_nanos[t]-n);return{mbStartTs:r,preloadTs:i,txnStartTs:o,loadEndTs:a,txnEndTs:s,mbEndTs:l}}function TS(e,t,n,r){const i={};for(let s=0;s+s).sort((s,l)=>s-l),a=[[-fP],[null],[null]];for(let s=0;s!d(e,c)))a[1].push(null),a[2].push(null);else if(a[1].push(c),c===null)a[2].push(null);else{const d=e.txn_microblock_id[c];a[2][a[2].length-1]===d||a[2][a[2].length-1]===void 0?a[2].push(void 0):a[2].push(d)}}a[0].push(n);for(let s=1;srt.round(o,n);let i=Number(e);return t||(i=Math.abs(i)),Math.abs(i)<1e3?{value:r(i),unit:"ns"}:(i/=1e3,Math.abs(i)<1e3?{value:r(i),unit:"\xB5s"}:(i/=1e3,Math.abs(i)<1e5?{value:r(i),unit:"ms"}:(i/=1e3,Math.abs(i)<120?{value:r(i),unit:"s"}:(i/=60,Math.abs(i)<120?{value:r(i),unit:"m"}:(i/=60,{value:r(i),unit:"h"})))))}const Rs=fe(null,(e,t,n)=>{function r(o){return o.startsWith("bank-")}function i(o,a){const s=Number(a.replace(rhe,""));isNaN(s)||n(o,s)}t(y6,i,{isMatchingChartId:r})}),R1t="landed";function L1t(e,t){return e.txn_landed[t]}const che=fe([]),dhe={},[a_,_P]=function(){const e=fe({...dhe}),t=fe();return[fe(n=>n(e),(n,r,i)=>{if(r(e,i),Object.keys(i).length){const o=new Set;r(Rs,a=>{var s;if((s=a.data[1])!=null&&s.length)for(let l=0;ln(t))]}();function P1t({baseChartData:e,transactions:t,value:n,filterEnum:r,filterFunc:i,mergeMatchingPoints:o}){const a=[null];let s=null;for(let l=1;l{const c={...n(a_)};l===void 0?delete c[e]:c[e]=(f,p)=>t(f,p,l);const d=TS(o,a,s,Object.values(c));i.data.splice(1,1,d[1]),i.data.splice(2,1,d[2]),i.setData(i.data,!1),r(a_,c),i.redraw(!0,!0)})}function IS(e,t){function n(r,i,o){switch(o){case"All":return!0;case"Yes":return t(r,i);case"No":return!t(r,i)}}return fhe(e,n)}const O1t=IS("error",(e,t)=>e.txn_error_code[t]!==0),z1t=IS("bundle",(e,t)=>e.txn_from_bundle[t]),D1t=IS(R1t,L1t),A1t=IS("simple",(e,t)=>e.txn_is_simple_vote[t]),F1t=fhe("arrival",(e,t,{min:n,max:r})=>{const i=Number(e.txn_arrival_timestamps_nanos[t]-e.start_timestamp_nanos);return(n===void 0||i>=n)&&i<=r});let ES={};function U1t(e,t){Object.values(ES).forEach(n=>n(e,t))}function B1t(){ES={}}function s_(e,t,n){return fe(null,(r,i,o,a,s,l)=>{function c(d,f){const p=d.data.length,v=r(che),x=P1t({filterEnum:e,filterFunc:t,transactions:a,baseChartData:v[f],value:l,mergeMatchingPoints:n});d.data.splice(p,0,x),d.addSeries({...d.series[1],label:`${e}`},p),whe(d.series.filter(y=>y.show).length-1),d.setData(d.data,!1),r(NS)===void 0&&d.redraw(!0,!0)}ES[e]=c,c(o,s)})}const W1t=s_(Ci.FEES,(e,t)=>!!Number(e.txn_priority_fee[t]+e.txn_transaction_fee[t])),V1t=s_(Ci.TIPS,(e,t)=>!!Number(e.txn_tips[t])),H1t=s_(Ci.CUS_CONSUMED,(e,t)=>!!e.txn_compute_units_consumed[t]),Z1t=s_(Ci.CUS_REQUESTED,(e,t,n)=>!!e.txn_compute_units_requested[t]),q1t=s_(Ci.INCOME_CUS,(e,t)=>e.txn_compute_units_consumed[t]>0&&Number(md(e,t))/e.txn_compute_units_consumed[t]>0),l_=fe(null,(e,t,n,r)=>{const i=n.series.findIndex(o=>o.label===`${r}`);i!==-1&&(n.delSeries(i),n.data.splice(i,1),whe(n.data.length-1),n.setData(n.data,!1),e(NS)===void 0&&n.redraw(!0,!0),delete ES[r])}),wP=fe(1),NS=fe(),G1t=0,Id=1,hhe=2;function u_(e){return e===G1t}function $S(e){return e===Id}function MS(e){return e===hhe}function phe(e){return e>hhe}function mhe(e,t,n=2){const r=10n**BigInt(n),i=e*r/t;return Number(i)/Number(r)}function RS(e,t){return function(n){return n.current?e(n.current).reduce((r,i,o)=>i>r?i:r,t):t}}const Y1t=RS(e=>e.txn_priority_fee.map((t,n)=>t+e.txn_transaction_fee[n]),0n),K1t=RS(e=>e.txn_tips,0n),X1t=RS(e=>e.txn_compute_units_consumed,0),J1t=RS(e=>e.txn_compute_units_requested,0);function ghe(e,t){if(!e.txn_landed[t])return 0;const n=e.txn_compute_units_consumed[t];return n?Number(md(e,t))/n:0}function vhe(e){const t=e.txn_priority_fee.reduce((r,i,o)=>{if(!e)return r;const a=ghe(e,o);return r[a]??(r[a]=[]),r[a].push(o),r},{}),n=Object.keys(t).sort((r,i)=>Number(i)-Number(r));return{rankings:n.reduce((r,i,o)=>{const a=t[i];for(const s of a)r.set(s,o+1);return r},new Map),totalRanks:n.length}}function Q1t(e){if(!e.current)return new Map;const{rankings:t,totalRanks:n}=vhe(e.current);for(const[r,i]of t)t.set(r,(n-i+1)/n);return t}const evt=1,tvt=I1t;let yhe=0;const bhe=.5,nvt=1.3;let S1;function kP(e){S1=e}let C1="";function xhe(e){C1=e}let SP;function _he(e){SP=e}let Ed=0;const whe=e=>{Ed=e-1,ca().set(wP,Ed)};function rvt(e,t){let n=0n,r=0n,i=0,o=0,a=new Map;function s(){n=Y1t(e)}function l(){r=K1t(e)}function c(){i=X1t(e)}function d(){o=J1t(e)}function f(){a=Q1t(e)}Ed=1;const p={mode:1,fill:(P,X,A,Y)=>{var F,H,ee,ce;if(!e.current)return{fill:""};if(u_(X))return{fill:""};if($S(X))return{fill:i1t[!P||!e.current?dn.DEFAULT:ihe(P[0][A],e.current,Y,(F=t[Y])==null?void 0:F.bundleTxnIdx)],brightness:SP===P[Id][A]?nvt:void 0};if(MS(X))return{fill:""};if(Y===Ci.FEES){const B=P[Id][A]??-1,ae=e.current.txn_priority_fee[B]+e.current.txn_transaction_fee[B];if(!ae)return{fill:""};const je=mhe(ae,n,4);return{fill:`rgba(76, 204, 230, ${Math.max(Math.min(.8,je*4),.3)})`}}if(Y===Ci.TIPS){const B=P[Id][A]??-1,ae=(H=e.current)==null?void 0:H.txn_tips[B];if(!ae)return{fill:""};const je=mhe(ae,r,4);return{fill:`rgba(31, 216, 164, ${Math.max(Math.min(.8,je*4),.3)})`}}if(Y===Ci.CUS_REQUESTED){const B=P[Id][A]??-1,ae=(ee=e.current)==null?void 0:ee.txn_compute_units_requested[B];if(!ae)return{fill:""};const je=ae/o;return{fill:`rgba(255, 141, 204, ${Math.max(Math.min(.85,je),.2)})`}}if(Y===Ci.CUS_CONSUMED){const B=P[Id][A]??-1,ae=(ce=e.current)==null?void 0:ce.txn_compute_units_consumed[B];if(!ae)return{fill:""};const je=ae/i;return{fill:`rgba(209, 157, 255, ${Math.max(Math.min(.85,je),.2)})`}}if(Y===Ci.INCOME_CUS){const B=P[Id][A]??-1,ae=a.get(B)??0;return{fill:`rgba(158, 177, 255, ${Math.max(Math.min(.8,ae),.3)})`}}return{fill:""}},stroke:(P,X,A,Y)=>{var F,H,ee;if(u_(X)||$S(X))return"";if(MS(X)){const ce=P[Id][A]??-1,B=(F=e.current)==null?void 0:F.txn_error_code[ce];return S1?B===S1&&(!C1||((H=e.current)==null?void 0:H.txn_source_tpu[ce])===C1)?"rgba(162,5,8, .8)":B?"rgba(162,5,8, .1)":"rgba(19,173,79, .1)":C1?((ee=e.current)==null?void 0:ee.txn_source_tpu[ce])===C1&&(!S1||B===S1)?B?"rgba(162,5,8, .8)":"rgba(19,173,79, .8)":B?"rgba(162,5,8, .1)":"rgba(19,173,79, .1)":B?"rgba(162,5,8, .5)":"rgba(19,173,79, .5)"}return""}},{mode:v,fill:x,stroke:y}=p;function b(P,X,A,Y){E1t(X,evt,tvt,P,(F,H,ee)=>{const ce=A*H,B=A*ee;Y(F,ce,B)})}const w=[.6,1/0];1-w[0];function _(){(w[1]??1/0)*jn.pxRatio}_();const S=new Map,C=new Map;function j(P){let X;const A=SP!==void 0;A&&(P.filter=`brightness(${bhe})`),S.forEach(({path:Y,brightness:F,fill:H})=>{H&&(A&&F!==X&&(P.filter=`brightness(${F??bhe})`,X=F),P.fillStyle=H,P.fill(Y))}),P.filter="",C.forEach((Y,F)=>{F&&(P.strokeStyle=F,P.stroke(Y))}),S.clear(),C.clear()}function T(P,X,A,Y,F,H,ee,ce,B,ae,je,me,ke){var $e,pe,ye;if(!e.current)return;const he=je+1,ue=x(P,he,me,ke);let re=S.get(ue.fill+ue.brightness);const ge=P[Id][me];if(ge!=null){if(phe(he)){if(ke===Ci.FEES){const Se=e.current.txn_priority_fee[ge]+e.current.txn_transaction_fee[ge];if(Se!==void 0){let Ce=1/uhe(Number(n),Number(Se),1.7);Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Ue=B*Ce,Ge=B-Ue;B-=Ge,ee+=Ge}}if(ke===Ci.TIPS){const Se=($e=e.current)==null?void 0:$e.txn_tips[ge];if(Se!==void 0){let Ce=1/uhe(Number(r),Number(Se),1.7);Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Ue=B*Ce,Ge=B-Ue;B-=Ge,ee+=Ge}}if(ke===Ci.CUS_CONSUMED){const Se=(pe=e.current)==null?void 0:pe.txn_compute_units_consumed[ge];if(Se!==void 0){let Ce=Se/i;Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Ue=B*Ce,Ge=B-Ue;B-=Ge,ee+=Ge}}if(ke===Ci.CUS_REQUESTED){const Se=(ye=e.current)==null?void 0:ye.txn_compute_units_requested[ge];if(Se!==void 0){let Ce=Se/o;Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Ue=B*Ce,Ge=B-Ue;B-=Ge,ee+=Ge}}if(ke===Ci.INCOME_CUS){let Se=a.get(ge)??0;Se>.9&&(Se=.95),Se<.1&&(Se=.1);const Ce=B*Se,Ue=B-Ce;B-=Ue,ee+=Ue}}if(re==null&&S.set(ue.fill+ue.brightness,re={path:new Path2D,fill:ue.fill,brightness:ue.brightness}),A(re.path,H,ee,ce,B),ae){const Se=y(P,he,me,ke);let Ce=C.get(Se);Ce==null&&C.set(Se,Ce=new Path2D),A(Ce,H+ae/2,ee+ae/2,ce-ae,B-ae)}MS(he)||$.add({x:rt.round(H-Y),y:rt.round(ee-F),w:ce,h:B,sidx:je+(je>1?2:1),didx:me})}}function E(P,X,A,Y){return jn.orient(P,X,(F,H,ee,ce,B,ae,je,me,ke,he,ue,re,ge,$e)=>{const pe=rt.round((F.width||0)*jn.pxRatio);P.ctx.save(),$e(P.ctx,P.bbox.left,P.bbox.top,P.bbox.width,P.bbox.height),P.ctx.clip(),b(X-1,Ed,ue,(ye,Se,Ce)=>{(u_(X)||$S(X))&&Ce&&(yhe=Ce),u_(X)||$S(X)||(Se-=yhe);for(let Ue=0;Ue=P.bbox.left&&Ge<=P.bbox.left+P.bbox.width){const ut=P.scales[Vt].min!=null&&P.scales[Vt].max!=null?4e8/(P.scales[Vt].max-P.scales[Vt].min):void 0;T(P.data,P.ctx,$e,me,ke,Ge,rt.round(ke+Se)+10,phe(X)?Math.max(3,Math.min(St-Ge,ut??1)):St-Ge,rt.round(Ce)-20,pe,ye,Ue,ee[Ue]??0)}Ue=_t-1}}),P.ctx.lineWidth=pe,j(P.ctx),P.ctx.restore()}),null}let $;const D=Array(Ed).fill(null),M=Array(Ed).fill(0),O=Array(Ed).fill(0),te=jn.fmtDate("{YYYY}-{MM}-{DD} {HH}:{mm}:{ss}");let q=null;return{hooks:{init:P=>{q=P.root.querySelector(".u-series:first-child .u-value"),window.addEventListener("dppxchange",_),s(),l(),c(),d(),f()},destroy:P=>{window.removeEventListener("dppxchange",_)},drawClear:P=>{$=$||new bP(0,0,P.bbox.width,P.bbox.height),$.clear(),P.series.forEach(X=>{X._paths=null})},setCursor:P=>{{const X=P.posToVal(P.cursor.left??0,Vt);q&&(q.textContent=P.scales[Vt].time?te(new Date(X*1e3)):X.toFixed(2))}}},opts:(P,X)=>{jn.assign(X,{cursor:{sync:{key:Vt},y:!1,dataIdx:(A,Y,F,H)=>{var ce;if(u_(Y)||MS(Y))return F;const ee=rt.round(A.cursor.left*jn.pxRatio);if(ee>=0){const B=M[Y-1];D[Y-1]=null,$.get(ee,B,1,1,ae=>{N1t(ee,B,ae.x,ae.y,ae.x+ae.w,ae.y+ae.h)&&(D[Y-1]=ae)})}return(ce=D[Y-1])==null?void 0:ce.didx},points:{fill:"rgba(255,255,255,0.2)",bbox:(A,Y)=>{const F=D[Y-1],H={left:F?rt.round(F.x/devicePixelRatio):-10,top:F?rt.round(F.y/devicePixelRatio):-10,width:F?rt.round(F.w/devicePixelRatio):0,height:F?rt.round(F.h/devicePixelRatio):0},ee=rt.round((A.bbox.left+A.bbox.width)/devicePixelRatio)-H.left-10;return H.width>ee&&(H.width=ee),H}}},scales:{[Vt]:{range(A,Y,F){return[Y,F]}},y:{range:[0,1]}}}),X.axes&&jn.assign(X.axes[0],{splits:null,grid:{show:v!==2}}),X.axes&&jn.assign(X.axes[1],{splits:(A,Y)=>(b(null,Ed,A.bbox.height,(F,H,ee)=>{M[F]=rt.round(H+ee/2),O[F]=A.posToVal(M[F]/jn.pxRatio,"y")}),O),values:()=>Array(Ed).fill(null).map((A,Y)=>P.series[Y+1].label),gap:5,size:0,grid:{show:!1},ticks:{show:!1},side:3}),X.series.forEach((A,Y)=>{Y>0&&jn.assign(A,{paths:E,points:{show:!1}})})}}}const ivt="_group-label_1cg9k_1",ovt="_min-text-width_1cg9k_4",avt="_group_1cg9k_1",svt="_tooltip-open_1cg9k_15",lvt="_item_1cg9k_18",uvt="_item-color_1cg9k_65",j1={groupLabel:ivt,minTextWidth:ovt,group:avt,tooltipOpen:svt,item:lvt,itemColor:uvt},cvt="_slider_zs58s_1",dvt="_arrival-label_zs58s_68",fvt="_minimize-button_zs58s_77",hvt="_chart-control-tooltip_zs58s_83",c_={slider:cvt,arrivalLabel:dvt,minimizeButton:fvt,chartControlTooltip:hvt},LS=m.forwardRef(pvt);function pvt({label:e,options:t,value:n,onChange:r,isTooltipOpen:i,closeTooltip:o,optionColors:a,hasMinTextWidth:s},l){const c=m.useRef(new Map);return m.useImperativeHandle(l,()=>({focus:d=>{var f;(f=c.current.get(d))==null||f.focus()}}),[]),u.jsxs(W,{align:"center",children:[e&&u.jsx(Z,{className:Te(j1.groupLabel,{[j1.minTextWidth]:s}),children:e}),u.jsx(ci,{className:c_.chartControlTooltip,content:`Applied "${n}"`,open:!!i,side:"bottom",children:u.jsx(M7,{className:Te(j1.group,i&&j1.tooltipOpen),type:"single",value:n,"aria-label":e,onValueChange:d=>d&&r(d),children:t.map(d=>u.jsxs(B0,{ref:f=>{f?c.current.set(d,f):c.current.delete(d)},className:j1.item,value:d,"aria-label":d,onBlur:o,children:[(a==null?void 0:a[d])&&u.jsx("div",{className:j1.itemColor,style:{background:a[d]}}),d]},d))})})]})}const mvt="_label_1q3ew_1",CP={label:mvt};function d_({checked:e,onCheckedChange:t,label:n,color:r}){return u.jsx(W,{align:"center",gap:"2",children:u.jsx(Z,{as:"label",className:CP.label,style:{color:r},children:u.jsxs(W,{gap:"2",children:[u.jsx(K7,{checked:e,onCheckedChange:t,size:"1"}),n]})})})}const jP=fe(-1),TP=fe(dn.DEFAULT);var khe=1,gvt=.9,vvt=.8,yvt=.17,IP=.1,EP=.999,bvt=.9999,xvt=.99,_vt=/[\\\/_+.#"@\[\(\{&]/,wvt=/[\\\/_+.#"@\[\(\{&]/g,kvt=/[\s-]/,She=/[\s-]/g;function NP(e,t,n,r,i,o,a){if(o===t.length)return i===e.length?khe:xvt;var s=`${i},${o}`;if(a[s]!==void 0)return a[s];for(var l=r.charAt(o),c=n.indexOf(l,i),d=0,f,p,v,x;c>=0;)f=NP(e,t,n,r,c+1,o+1,a),f>d&&(c===i?f*=khe:_vt.test(e.charAt(c-1))?(f*=vvt,v=e.slice(i,c-1).match(wvt),v&&i>0&&(f*=Math.pow(EP,v.length))):kvt.test(e.charAt(c-1))?(f*=gvt,x=e.slice(i,c-1).match(She),x&&i>0&&(f*=Math.pow(EP,x.length))):(f*=yvt,i>0&&(f*=Math.pow(EP,c-i))),e.charAt(c)!==t.charAt(o)&&(f*=bvt)),(ff&&(f=p*IP)),f>d&&(d=f),c=n.indexOf(l,c+1);return a[s]=d,d}function Che(e){return e.toLowerCase().replace(She," ")}function Svt(e,t,n){return e=n&&n.length>0?`${e+" "+n.join(" ")}`:e,NP(e,t,Che(e),Che(t),0,0,{})}var Cvt=Symbol.for("react.lazy"),PS=mj[" use ".trim().toString()];function jvt(e){return typeof e=="object"&&e!==null&&"then"in e}function jhe(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===Cvt&&"_payload"in e&&jvt(e._payload)}function Tvt(e){const t=Ivt(e),n=m.forwardRef((r,i)=>{let{children:o,...a}=r;jhe(o)&&typeof PS=="function"&&(o=PS(o._payload));const s=m.Children.toArray(o),l=s.find(Nvt);if(l){const c=l.props.children,d=s.map(f=>f===l?m.Children.count(c)>1?m.Children.only(null):m.isValidElement(c)?c.props.children:null:f);return u.jsx(t,{...a,ref:i,children:m.isValidElement(c)?m.cloneElement(c,void 0,d):null})}return u.jsx(t,{...a,ref:i,children:o})});return n.displayName=`${e}.Slot`,n}function Ivt(e){const t=m.forwardRef((n,r)=>{let{children:i,...o}=n;if(jhe(i)&&typeof PS=="function"&&(i=PS(i._payload)),m.isValidElement(i)){const a=Mvt(i),s=$vt(o,i.props);return i.type!==m.Fragment&&(s.ref=r?zl(r,a):a),m.cloneElement(i,s)}return m.Children.count(i)>1?m.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Evt=Symbol("radix.slottable");function Nvt(e){return m.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Evt}function $vt(e,t){const n={...t};for(const r in t){const i=e[r],o=t[r];/^on[A-Z]/.test(r)?i&&o?n[r]=(...a)=>{const s=o(...a);return i(...a),s}:i&&(n[r]=i):r==="style"?n[r]={...i,...o}:r==="className"&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}function Mvt(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Rvt=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],hh=Rvt.reduce((e,t)=>{const n=Tvt(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),f_='[cmdk-group=""]',$P='[cmdk-group-items=""]',Lvt='[cmdk-group-heading=""]',The='[cmdk-item=""]',Ihe=`${The}:not([aria-disabled="true"])`,MP="cmdk-item-select",T1="data-value",Pvt=(e,t,n)=>Svt(e,t,n),Ehe=m.createContext(void 0),h_=()=>m.useContext(Ehe),Nhe=m.createContext(void 0),RP=()=>m.useContext(Nhe),$he=m.createContext(void 0),Mhe=m.forwardRef((e,t)=>{let n=I1(()=>{var B,ae;return{search:"",value:(ae=(B=e.value)!=null?B:e.defaultValue)!=null?ae:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=I1(()=>new Set),i=I1(()=>new Map),o=I1(()=>new Map),a=I1(()=>new Set),s=Rhe(e),{label:l,children:c,value:d,onValueChange:f,filter:p,shouldFilter:v,loop:x,disablePointerSelection:y=!1,vimBindings:b=!0,...w}=e,_=wo(),S=wo(),C=wo(),j=m.useRef(null),T=Zvt();Mm(()=>{if(d!==void 0){let B=d.trim();n.current.value=B,E.emit()}},[d]),Mm(()=>{T(6,q)},[]);let E=m.useMemo(()=>({subscribe:B=>(a.current.add(B),()=>a.current.delete(B)),snapshot:()=>n.current,setState:(B,ae,je)=>{var me,ke,he,ue;if(!Object.is(n.current[B],ae)){if(n.current[B]=ae,B==="search")te(),M(),T(1,O);else if(B==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let re=document.getElementById(C);re?re.focus():(me=document.getElementById(_))==null||me.focus()}if(T(7,()=>{var re;n.current.selectedItemId=(re=P())==null?void 0:re.id,E.emit()}),je||T(5,q),((ke=s.current)==null?void 0:ke.value)!==void 0){let re=ae??"";(ue=(he=s.current).onValueChange)==null||ue.call(he,re);return}}E.emit()}},emit:()=>{a.current.forEach(B=>B())}}),[]),$=m.useMemo(()=>({value:(B,ae,je)=>{var me;ae!==((me=o.current.get(B))==null?void 0:me.value)&&(o.current.set(B,{value:ae,keywords:je}),n.current.filtered.items.set(B,D(ae,je)),T(2,()=>{M(),E.emit()}))},item:(B,ae)=>(r.current.add(B),ae&&(i.current.has(ae)?i.current.get(ae).add(B):i.current.set(ae,new Set([B]))),T(3,()=>{te(),M(),n.current.value||O(),E.emit()}),()=>{o.current.delete(B),r.current.delete(B),n.current.filtered.items.delete(B);let je=P();T(4,()=>{te(),(je==null?void 0:je.getAttribute("id"))===B&&O(),E.emit()})}),group:B=>(i.current.has(B)||i.current.set(B,new Set),()=>{o.current.delete(B),i.current.delete(B)}),filter:()=>s.current.shouldFilter,label:l||e["aria-label"],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:_,inputId:C,labelId:S,listInnerRef:j}),[]);function D(B,ae){var je,me;let ke=(me=(je=s.current)==null?void 0:je.filter)!=null?me:Pvt;return B?ke(B,n.current.search,ae):0}function M(){if(!n.current.search||s.current.shouldFilter===!1)return;let B=n.current.filtered.items,ae=[];n.current.filtered.groups.forEach(me=>{let ke=i.current.get(me),he=0;ke.forEach(ue=>{let re=B.get(ue);he=Math.max(re,he)}),ae.push([me,he])});let je=j.current;X().sort((me,ke)=>{var he,ue;let re=me.getAttribute("id"),ge=ke.getAttribute("id");return((he=B.get(ge))!=null?he:0)-((ue=B.get(re))!=null?ue:0)}).forEach(me=>{let ke=me.closest($P);ke?ke.appendChild(me.parentElement===ke?me:me.closest(`${$P} > *`)):je.appendChild(me.parentElement===je?me:me.closest(`${$P} > *`))}),ae.sort((me,ke)=>ke[1]-me[1]).forEach(me=>{var ke;let he=(ke=j.current)==null?void 0:ke.querySelector(`${f_}[${T1}="${encodeURIComponent(me[0])}"]`);he==null||he.parentElement.appendChild(he)})}function O(){let B=X().find(je=>je.getAttribute("aria-disabled")!=="true"),ae=B==null?void 0:B.getAttribute(T1);E.setState("value",ae||void 0)}function te(){var B,ae,je,me;if(!n.current.search||s.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let ke=0;for(let he of r.current){let ue=(ae=(B=o.current.get(he))==null?void 0:B.value)!=null?ae:"",re=(me=(je=o.current.get(he))==null?void 0:je.keywords)!=null?me:[],ge=D(ue,re);n.current.filtered.items.set(he,ge),ge>0&&ke++}for(let[he,ue]of i.current)for(let re of ue)if(n.current.filtered.items.get(re)>0){n.current.filtered.groups.add(he);break}n.current.filtered.count=ke}function q(){var B,ae,je;let me=P();me&&(((B=me.parentElement)==null?void 0:B.firstChild)===me&&((je=(ae=me.closest(f_))==null?void 0:ae.querySelector(Lvt))==null||je.scrollIntoView({block:"nearest"})),me.scrollIntoView({block:"nearest"}))}function P(){var B;return(B=j.current)==null?void 0:B.querySelector(`${The}[aria-selected="true"]`)}function X(){var B;return Array.from(((B=j.current)==null?void 0:B.querySelectorAll(Ihe))||[])}function A(B){let ae=X()[B];ae&&E.setState("value",ae.getAttribute(T1))}function Y(B){var ae;let je=P(),me=X(),ke=me.findIndex(ue=>ue===je),he=me[ke+B];(ae=s.current)!=null&&ae.loop&&(he=ke+B<0?me[me.length-1]:ke+B===me.length?me[0]:me[ke+B]),he&&E.setState("value",he.getAttribute(T1))}function F(B){let ae=P(),je=ae==null?void 0:ae.closest(f_),me;for(;je&&!me;)je=B>0?Vvt(je,f_):Hvt(je,f_),me=je==null?void 0:je.querySelector(Ihe);me?E.setState("value",me.getAttribute(T1)):Y(B)}let H=()=>A(X().length-1),ee=B=>{B.preventDefault(),B.metaKey?H():B.altKey?F(1):Y(1)},ce=B=>{B.preventDefault(),B.metaKey?A(0):B.altKey?F(-1):Y(-1)};return m.createElement(hh.div,{ref:t,tabIndex:-1,...w,"cmdk-root":"",onKeyDown:B=>{var ae;(ae=w.onKeyDown)==null||ae.call(w,B);let je=B.nativeEvent.isComposing||B.keyCode===229;if(!(B.defaultPrevented||je))switch(B.key){case"n":case"j":{b&&B.ctrlKey&&ee(B);break}case"ArrowDown":{ee(B);break}case"p":case"k":{b&&B.ctrlKey&&ce(B);break}case"ArrowUp":{ce(B);break}case"Home":{B.preventDefault(),A(0);break}case"End":{B.preventDefault(),H();break}case"Enter":{B.preventDefault();let me=P();if(me){let ke=new Event(MP);me.dispatchEvent(ke)}}}}},m.createElement("label",{"cmdk-label":"",htmlFor:$.inputId,id:$.labelId,style:Gvt},l),OS(e,B=>m.createElement(Nhe.Provider,{value:E},m.createElement(Ehe.Provider,{value:$},B))))}),Ovt=m.forwardRef((e,t)=>{var n,r;let i=wo(),o=m.useRef(null),a=m.useContext($he),s=h_(),l=Rhe(e),c=(r=(n=l.current)==null?void 0:n.forceMount)!=null?r:a==null?void 0:a.forceMount;Mm(()=>{if(!c)return s.item(i,a==null?void 0:a.id)},[c]);let d=Lhe(i,o,[e.value,e.children,o],e.keywords),f=RP(),p=ph(T=>T.value&&T.value===d.current),v=ph(T=>c||s.filter()===!1?!0:T.search?T.filtered.items.get(i)>0:!0);m.useEffect(()=>{let T=o.current;if(!(!T||e.disabled))return T.addEventListener(MP,x),()=>T.removeEventListener(MP,x)},[v,e.onSelect,e.disabled]);function x(){var T,E;y(),(E=(T=l.current).onSelect)==null||E.call(T,d.current)}function y(){f.setState("value",d.current,!0)}if(!v)return null;let{disabled:b,value:w,onSelect:_,forceMount:S,keywords:C,...j}=e;return m.createElement(hh.div,{ref:zl(o,t),...j,id:i,"cmdk-item":"",role:"option","aria-disabled":!!b,"aria-selected":!!p,"data-disabled":!!b,"data-selected":!!p,onPointerMove:b||s.getDisablePointerSelection()?void 0:y,onClick:b?void 0:x},e.children)}),zvt=m.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...o}=e,a=wo(),s=m.useRef(null),l=m.useRef(null),c=wo(),d=h_(),f=ph(v=>i||d.filter()===!1?!0:v.search?v.filtered.groups.has(a):!0);Mm(()=>d.group(a),[]),Lhe(a,s,[e.value,e.heading,l]);let p=m.useMemo(()=>({id:a,forceMount:i}),[i]);return m.createElement(hh.div,{ref:zl(s,t),...o,"cmdk-group":"",role:"presentation",hidden:f?void 0:!0},n&&m.createElement("div",{ref:l,"cmdk-group-heading":"","aria-hidden":!0,id:c},n),OS(e,v=>m.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?c:void 0},m.createElement($he.Provider,{value:p},v))))}),Dvt=m.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=m.useRef(null),o=ph(a=>!a.search);return!n&&!o?null:m.createElement(hh.div,{ref:zl(i,t),...r,"cmdk-separator":"",role:"separator"})}),Avt=m.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,o=RP(),a=ph(c=>c.search),s=ph(c=>c.selectedItemId),l=h_();return m.useEffect(()=>{e.value!=null&&o.setState("search",e.value)},[e.value]),m.createElement(hh.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":l.listId,"aria-labelledby":l.labelId,"aria-activedescendant":s,id:l.inputId,type:"text",value:i?e.value:a,onChange:c=>{i||o.setState("search",c.target.value),n==null||n(c.target.value)}})}),Fvt=m.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...i}=e,o=m.useRef(null),a=m.useRef(null),s=ph(c=>c.selectedItemId),l=h_();return m.useEffect(()=>{if(a.current&&o.current){let c=a.current,d=o.current,f,p=new ResizeObserver(()=>{f=requestAnimationFrame(()=>{let v=c.offsetHeight;d.style.setProperty("--cmdk-list-height",v.toFixed(1)+"px")})});return p.observe(c),()=>{cancelAnimationFrame(f),p.unobserve(c)}}},[]),m.createElement(hh.div,{ref:zl(o,t),...i,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:l.listId},OS(e,c=>m.createElement("div",{ref:zl(a,l.listInnerRef),"cmdk-list-sizer":""},c)))}),Uvt=m.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:o,container:a,...s}=e;return m.createElement(AB,{open:n,onOpenChange:r},m.createElement(FB,{container:a},m.createElement(UB,{"cmdk-overlay":"",className:i}),m.createElement(BB,{"aria-label":e.label,"cmdk-dialog":"",className:o},m.createElement(Mhe,{ref:t,...s}))))}),Bvt=m.forwardRef((e,t)=>ph(n=>n.filtered.count===0)?m.createElement(hh.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Wvt=m.forwardRef((e,t)=>{let{progress:n,children:r,label:i="Loading...",...o}=e;return m.createElement(hh.div,{ref:t,...o,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},OS(e,a=>m.createElement("div",{"aria-hidden":!0},a)))}),gu=Object.assign(Mhe,{List:Fvt,Item:Ovt,Input:Avt,Group:zvt,Separator:Dvt,Dialog:Uvt,Empty:Bvt,Loading:Wvt});function Vvt(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function Hvt(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function Rhe(e){let t=m.useRef(e);return Mm(()=>{t.current=e}),t}var Mm=typeof window>"u"?m.useEffect:m.useLayoutEffect;function I1(e){let t=m.useRef();return t.current===void 0&&(t.current=e()),t}function ph(e){let t=RP(),n=()=>e(t.snapshot());return m.useSyncExternalStore(t.subscribe,n,n)}function Lhe(e,t,n,r=[]){let i=m.useRef(),o=h_();return Mm(()=>{var a;let s=(()=>{var c;for(let d of n){if(typeof d=="string")return d.trim();if(typeof d=="object"&&"current"in d)return d.current?(c=d.current.textContent)==null?void 0:c.trim():i.current}})(),l=r.map(c=>c.trim());o.value(e,s,l),(a=t.current)==null||a.setAttribute(T1,s),i.current=s}),i}var Zvt=()=>{let[e,t]=m.useState(),n=I1(()=>new Map);return Mm(()=>{n.current.forEach(r=>r()),n.current=new Map},[e]),(r,i)=>{n.current.set(r,i),t({})}};function qvt(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function OS({asChild:e,children:t},n){return e&&m.isValidElement(t)?m.cloneElement(qvt(t),{ref:t.ref},n(t.props.children)):n(t)}var Gvt={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const Yvt="_dropdownButton_1yasw_1",Kvt="_input-container_1yasw_6",Xvt="_sm_1yasw_20",Jvt="_content_1yasw_68",Qvt="_tooltip-open_1yasw_135",E1={dropdownButton:Yvt,inputContainer:Kvt,sm:Xvt,content:Jvt,tooltipOpen:Qvt},eyt="_text_1k6sv_1",tyt="_faded_1k6sv_7",nyt="_ellipsis_1k6sv_11",LP={text:eyt,faded:tyt,ellipsis:nyt};function Phe({textSegments:e,truncateLastSegment:t}){return u.jsx(W,{flexGrow:"1",minWidth:"0",maxWidth:"100%",wrap:"nowrap",className:LP.text,"aria-label":e.map(({text:n})=>n).join(""),children:e.map(({text:n,faded:r},i)=>n?u.jsx(Z,{className:Te({[LP.faded]:r,[LP.ellipsis]:i===e.length-1&&t}),children:n},i):null)})}const p_=8,ryt=2,Ohe=2;function iyt(e,{signature:t,optionValue:n,txnIdxCount:r}){const i=r>1,o=e.trim().toLowerCase(),a=n.toLowerCase(),s=v=>{i&&v.push({text:`${uk}(${r})`,faded:!0})};if(o.length===a.length||o.length>p_){const v=[{text:`${t.substring(0,p_)}...${t.substring(t.length-p_)}`}];return s(v),v}const l=a.indexOf(o),c=l+o.length,d=[{start:0,end:Math.min(p_,t.length)},{start:Math.max(0,Math.min(l-Ohe,t.length)),end:Math.min(t.length,Math.min(c+Ohe,t.length))},{start:Math.max(0,t.length-p_),end:t.length}].filter(v=>v.end>v.start).sort((v,x)=>v.start-x.start),f=[];for(const v of d){if(!f.length){f.push({...v});continue}const x=f[f.length-1],y=v.start-x.end;y<=0||y<=ryt?x.end=Math.max(x.end,v.end):f.push({...v})}const p=[];for(let v=0;v0&&p.push({text:"...",faded:!0});const y=Math.max(x.start,Math.min(l,x.end)),b=Math.max(x.start,Math.min(c,x.end));b>y?(x.startv)}function oyt(e){return function(t){return u.jsx(Phe,{textSegments:iyt(t,e)})}}function zhe(e,t){if(t=t.trim(),!t)return;if(t.includes(".")){const s=e.indexOf(t);return s<0?void 0:{startIdx:s,endIdx:s+t.length}}const n=[];let r="";for(let s=0;s="0"&&l<="9"&&(r+=l,n.push(s))}const i=r.indexOf(t);if(i<0)return;const o=n[i],a=n[i+t.length-1]+1;return{startIdx:o,endIdx:a}}function ayt(e,t,n){return function(r){const i=zhe(e,r),o=t>1,a=(i==null?void 0:i.startIdx)??-1,s=(i==null?void 0:i.endIdx)??-1,l=[{text:e.substring(0,a),faded:!0},{text:e.substring(a,s)},{text:e.substring(s),faded:!0},{text:o?`${uk}(${t})`:"",faded:!0},{text:n?`${uk}${n}`:""}];return u.jsx(Phe,{textSegments:l,truncateLastSegment:!0})}}const syt=["All","Success","Errors"],PP=["All","Yes","No"];var Mn=(e=>(e.TxnSignature="Txn Sig",e.Error="Error",e.Income="Income",e.Ip="IPv4",e.Tpu="TPU",e))(Mn||{});const lyt="errorState",OP="bundle",uyt="landed",cyt="vote",zP="focusBank",m_="search",Dhe="arrival",dyt={triggerControl:()=>{},registerControl:()=>()=>{},resetControl:()=>{},resetAllControls:()=>{}},N1=m.createContext(dyt);function zS(e,t,n){const{registerControl:r}=m.useContext(N1),i=m.useRef(t);i.current=t;const o=m.useRef(n);o.current=n;const[a,s]=m.useState(!1),l=m.useCallback(()=>s(!1),[]);return m.useEffect(()=>r(e,c=>{i.current(c),s(!0)},()=>{o.current(),s(!1)}),[e,r]),{isTooltipOpen:a,closeTooltip:l}}const fyt=30,hyt=20,Ahe=[Mn.TxnSignature,Mn.Ip],Fhe=[Mn.Income],Uhe=[Mn.TxnSignature,Mn.Error,Mn.Income,Mn.Ip,Mn.Tpu],pyt={[Mn.TxnSignature]:"2ZwHLf3Qw7ZE8s3PWW81ELCmGiVhaDS9LWMK4McGL9ySmqvTZSZf3S9EWks4TFbyJt7U6i5RPuLk7PgWVBdy9HY5",[Mn.Error]:"",[Mn.Income]:"Rank #",[Mn.Ip]:"192.0.2.1",[Mn.Tpu]:"udp"};function Bhe({transactions:e,size:t="lg"}){const n=m.useRef(null),[r,i]=m.useState(!1),[o,a]=m.useState(!1),[s,l]=m.useState(""),[c,d]=Bie(s,500),[f,p]=m.useState(),[v,x]=m.useState(Mn.TxnSignature),y=J(_P),b=J(JN),w=J(jg),_=Ee(Rs),S=m.useRef(null),C=m.useRef(null),j=m.useRef(!1),{triggerControl:T,resetControl:E}=m.useContext(N1),$=m.useCallback(ye=>{const Se=ye.mode===Mn.TxnSignature?e.txn_signature:ye.mode===Mn.Ip?e.txn_source_ipv4:void 0;return Se?Se.reduce((Ce,Ue,Ge)=>(Ue===ye.text&&Ce.push(Ge),Ce),[]):[]},[e.txn_signature,e.txn_source_ipv4]),D=m.useCallback(ye=>{var Ge,_t,St;const Se=e.txn_bank_idx[ye],Ce=document.getElementById(xP(Se)),Ue=(Ge=Ce==null?void 0:Ce.getElementsByTagName("canvas"))==null?void 0:Ge[0];if(Ce&&Ue){if(!Lze(Ue)){Ue.scrollIntoView({block:"nearest"});const ut=Ue.getBoundingClientRect(),ct=(_t=document.getElementById("transaction-bars-controls"))==null?void 0:_t.getBoundingClientRect();ct&&ct.top-epe<=0&&ut.top{if(Se!==ct){ut.redraw();return}const bt=ut.scales[Vt],Qe=bt.min??-1/0,Ke=bt.max??1/0,De=Ke-Qe,Dt=e.txn_from_bundle[ye]&&e.txn_microblock_id[ye-1]!==e.txn_microblock_id[ye],pn=e.txn_from_bundle[ye]&&e.txn_microblock_id[ye+1]!==e.txn_microblock_id[ye],Yn=Number((Dt||!e.txn_from_bundle[ye]?e.txn_mb_start_timestamps_nanos[ye]:e.txn_preload_end_timestamps_nanos[ye])-e.start_timestamp_nanos),hr=Number((pn||!e.txn_from_bundle[ye]?e.txn_mb_end_timestamps_nanos[ye]:e.txn_end_timestamps_nanos[ye])-e.start_timestamp_nanos),Kn=(hr-Yn)*fyt,kr=(hr-Yn)*hyt,On=hrKe,Mr=De>Kn,tr=De{if(On||Mr||tr){let Sr=Math.max(ut.data[0][0],Yn-Kn/2);const ri=Sr+Kn;ri>ut.data[0][ut.data[0].length-1]&&(Sr=ri-Kn),ut.setScale(Vt,{min:Sr,max:ri})}_he(ye)})})},[e,T,_]),M=m.useCallback(ye=>{const Se={current:0,total:ye.length-1,txnIdxs:ye};p(Se);const Ce=ye[Se.current];D(Ce)},[D]),O=m.useCallback(ye=>{var Ce;const Se=$(ye);Se.length&&(l(ye.text),x(ye.mode),M(Se),j.current=!0,(Ce=n.current)==null||Ce.focus())},[$,M]),te=m.useCallback(()=>{E(zP),E(Dhe),_he(void 0),p(void 0),a(!1)},[E]),q=m.useCallback(()=>{te(),l(""),d(""),_((ye,Se)=>{ye.setScale(Vt,{min:ye.data[0][0],max:ye.data[0][ye.data[0].length-1]})})},[te,d,_]),{isTooltipOpen:P,closeTooltip:X}=zS(m_,O,q);m.useEffect(()=>{y&&(f!=null&&f.txnIdxs.some(ye=>!y.has(ye)))&&q()},[y,q,f==null?void 0:f.txnIdxs]),m.useEffect(()=>{f===void 0&&Fhe.includes(v)&&x(Uhe[0])},[f,v]);const A=m.useCallback((ye,Se,Ce)=>ye.reduce((Ue,Ge,_t)=>{var ct;if(y&&!y.has(_t)||Ce!=null&&Ce(Ge))return Ue;const St=((ct=Ue[Ge])==null?void 0:ct.txnIdxs)??[];St.push(_t);const ut=Se(Ge,St);return Ue[Ge]=ut,Ue},{}),[y]),Y=m.useMemo(()=>A(e.txn_signature,(ye,Se)=>{const Ce=ye.toLowerCase();return{getLabelEl:oyt({signature:ye,optionValue:Ce,txnIdxCount:Se.length}),txnIdxs:Se,signatureLower:Ce,signature:ye}}),[A,e.txn_signature]),F=m.useMemo(()=>A(e.txn_error_code,(ye,Se)=>({txnIdxs:Se,label:lN[ye]}),ye=>ye===0),[A,e.txn_error_code]),H=m.useMemo(()=>{const ye=b.reduce((Se,Ce)=>{var Ge,_t;if(!Ce.gossip||!((Ge=Ce.info)!=null&&Ge.name))return Se;const Ue=Object.values(Ce.gossip.sockets);for(const St of Ue)Se.set(ZN(St),(_t=Ce.info)==null?void 0:_t.name);return Se},new Map);return A(e.txn_source_ipv4,(Se,Ce)=>{var Ue;return{getLabelEl:ayt(Se,Ce.length,ye.get(Se)),txnIdxs:Ce,label:`${Se} ${ye.get(Se)??""}`,queryValue:`${Se}${(Ue=ye.get(Se)??"")==null?void 0:Ue.toLowerCase()}`}})},[A,b,e.txn_source_ipv4]),ee=m.useMemo(()=>A(e.txn_source_tpu,(ye,Se)=>({txnIdxs:Se,label:ye})),[A,e.txn_source_tpu]),ce=m.useMemo(()=>e.txn_transaction_fee.reduce((ye,Se,Ce)=>(y&&!y.has(Ce)||ye.push({txnIdx:Ce,income:Number(md(e,Ce))}),ye),[]).sort(({income:ye},{income:Se})=>Se-ye),[y,e]),B=m.useCallback((ye,Se)=>{switch(l(ye),d(ye),i(!1),a(!0),v){case Mn.TxnSignature:{const Ce=Y[ye].txnIdxs;M(Ce);break}case Mn.Error:{if(Se!==void 0){const Ce=F[Number(Se)].txnIdxs;M(Ce)}break}case Mn.Ip:{const Ce=H[Se??ye];if(Ce){const Ue=Ce.txnIdxs;M(Ue)}break}case Mn.Tpu:{if(Se!==void 0){const Ce=ee[Se].txnIdxs;M(Ce)}break}case Mn.Income:break}},[d,v,Y,M,F,H,ee]),ae=ye=>()=>{p(Se=>{if(!Se)return;let{current:Ce,total:Ue,txnIdxs:Ge}=Se;ye==="prev"?Ce--:ye==="next"&&Ce++,Ce>Ue&&(Ce=0),Ce<0&&(Ce=Ue);const _t=Ge[Ce];return D(_t),{current:Ce,total:Ue,txnIdxs:Ge}})},je=ye=>()=>{switch(x(ye),q(),ye){case Mn.TxnSignature:case Mn.Ip:case Mn.Error:case Mn.Tpu:{pe.current=!0,i(!0),setTimeout(()=>{var Se;(Se=n.current)==null||Se.focus()},250);break}case Mn.Income:{const Se=ce.map(({txnIdx:Ue})=>Ue);p({current:0,total:Se.length,txnIdxs:Se});const Ce=Se[0];D(Ce);break}}},me=Ahe.includes(v),ke=me&&s!==c,he=r&&!me||!ke,ue=f&&f.total>0,re=s||Fhe.includes(v),ge=!Ahe.includes(v),$e=m.useRef(ge);$e.current=ge;const pe=m.useRef(!1);return u.jsxs(W,{children:[u.jsxs(GZ,{children:[u.jsx(YZ,{children:u.jsxs(hs,{variant:"surface",className:E1.dropdownButton,onFocusCapture:ye=>ye.preventDefault(),onFocus:ye=>{ye.preventDefault()},children:[v,u.jsx(W7,{})]})}),u.jsx(XZ,{onCloseAutoFocus:ye=>ye.preventDefault(),children:Uhe.map(ye=>u.jsx(JZ,{onSelect:je(ye),children:ye},ye))})]}),u.jsx(gu,{loop:!0,className:E1.root,shouldFilter:!1,ref:S,children:u.jsxs(u7,{open:r,onOpenChange:ye=>i(ye),children:[u.jsx(DV,{asChild:!0,children:u.jsx(W,{children:u.jsx(ci,{className:c_.chartControlTooltip,content:`Applied: ${v}`,open:P,side:"bottom",children:u.jsxs(W,{align:"center",className:Te(E1.inputContainer,"rt-TextFieldRoot","rt-variant-surface",{[E1.sm]:t==="sm",[E1.tooltipOpen]:P}),children:[u.jsx(gu.Input,{placeholder:pyt[v],onFocus:()=>{j.current?j.current=!1:i(!0)},onKeyDown:ye=>{ye.key==="Enter"&&i(!0)},value:s,onValueChange:ye=>{l(ye),te(),i(!0)},onBlur:X,readOnly:ge,ref:n}),(ue||re)&&u.jsxs(W,{align:"center",children:[ue&&u.jsxs(u.Fragment,{children:[u.jsxs(Z,{style:{paddingRight:"var(--space-2)",cursor:"default"},children:[f.current+1,"\xA0of\xA0",f.total+1]}),u.jsx(nl,{onClick:ae("prev"),variant:"ghost",onKeyDown:ye=>{ye.key==="Enter"&&ae("prev")()},children:u.jsx(YFe,{})}),u.jsx(nl,{onClick:ae("next"),variant:"ghost",onKeyDown:ye=>{ye.key==="Enter"&&ae("next")()},children:u.jsx(Hie,{})})]}),re&&u.jsx(nl,{onClick:q,variant:"ghost",onKeyDown:ye=>{ye.key==="Enter"&&q()},children:u.jsx(B$,{})})]})]})})})}),u.jsx(c7,{container:w,children:u.jsx(d7,{className:E1.content,onOpenAutoFocus:ye=>{pe.current?setTimeout(()=>{pe.current=!1},250):ye.preventDefault()},onInteractOutside:ye=>{(ye.target===n.current||pe.current)&&ye.preventDefault()},style:{outline:"unset"},children:u.jsxs(gu.List,{ref:C,style:{maxHeight:"min(300px, var(--radix-popover-content-available-height))"},children:[s.length>1&&ke&&u.jsx(gu.Loading,{children:u.jsx(Z,{children:"Loading..."})}),he&&u.jsxs(u.Fragment,{children:[v===Mn.TxnSignature&&u.jsx(myt,{optionMap:Y,inputValue:c,onSelect:B,showAllOptions:o}),v===Mn.Error&&u.jsx(Whe,{onSelect:B,optionMap:F}),v===Mn.Ip&&u.jsx(gyt,{onSelect:B,optionMap:H,inputValue:c,showAllOptions:o}),v===Mn.Tpu&&u.jsx(Whe,{onSelect:B,optionMap:ee})]})]})})})]})})]})}const myt=m.memo(function({optionMap:e,inputValue:t,onSelect:n,showAllOptions:r}){const i=m.useMemo(()=>Object.entries(e),[e]),o=t.toLowerCase();function a([,{signatureLower:c}]){return r||c.includes(o)}function s([,{signatureLower:c}]){return c===o?3:c.startsWith(o)||c.endsWith(o)?2:c.includes(o)?1:0}function l(c,d){return s(d)-s(c)}return u.jsxs(u.Fragment,{children:[!!i.length&&u.jsx(gu.Group,{heading:"Results",children:i.filter(a).sort(l).map(([,{getLabelEl:c,signatureLower:d,signature:f}],p)=>{if(!(p>100))return u.jsx(gu.Item,{value:d,onSelect:()=>{n(f)},children:c(r?"":t)},f)})}),u.jsx(gu.Empty,{children:"No results found."})]})}),gyt=m.memo(function({optionMap:e,inputValue:t,onSelect:n,showAllOptions:r}){const i=m.useMemo(()=>Object.entries(e),[e]),o=t.trim().toLowerCase();function a([,{label:c,queryValue:d}]){return r||!!zhe(c,o)||d.includes(o)}function s([,{label:c,txnIdxs:d}]){return c===o?1/0:d.length>1?3+d.length:c.startsWith(o)||c.endsWith(o)?2:c.includes(o)?1:0}function l(c,d){return s(d)-s(c)}return u.jsxs(u.Fragment,{children:[!!i.length&&u.jsx(gu.Group,{heading:"Results",children:i.filter(a).sort(l).map(([c,{getLabelEl:d,label:f}],p)=>{if(!(p>100))return u.jsx(gu.Item,{value:f,onSelect:()=>{n(f,c)},children:d(r?"":t)},f)})}),u.jsx(gu.Empty,{children:"No results found."})]})}),Whe=m.memo(function({onSelect:e,optionMap:t}){return m.useMemo(()=>Object.entries(t),[t]).map(([n,{label:r,txnIdxs:i}],o)=>u.jsx(gu.Item,{onSelect:()=>{e(r,n)},children:u.jsxs(Z,{children:[r," (",i.length,")"]})},n))});function DS(e,t,n){const r=m.useRef(null),i=m.useCallback(s=>{var l,c;t(s),(l=r.current)==null||l.focus(s),(c=document.getElementById(xP(0)))==null||c.scrollIntoView({behavior:"smooth",block:"nearest"})},[t]),{isTooltipOpen:o,closeTooltip:a}=zS(e,i,n);return{isTooltipOpen:o,closeTooltip:a,toggleGroupRef:r}}function vyt(e){const[t,n]=m.useState(!1);return u.jsxs(u.Fragment,{children:[u.jsx("div",{className:c_.minimizeButton,children:u.jsx(nl,{variant:"ghost",onClick:()=>n(r=>!r),children:t?u.jsx(F$,{}):u.jsx(U$,{})})}),!t&&u.jsx(yyt,{...e})]})}function yyt(e){const{transactions:t,maxTs:n}=e,r=Ee(a_),i=Ee(wP),o=Ee(NS),a=Ee(jP),s=Ee(TP);return Og(()=>{r(dhe),B1t(),i(1),o(void 0),kP(0),a(-1),s(dn.DEFAULT)}),Hn("(max-width: 500px)")?u.jsx(byt,{...e}):u.jsxs(W,{gap:"2",align:"center",wrap:"wrap",children:[u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Vhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Zhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(qhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Ghe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Yhe,{transactions:t}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Khe,{transactions:t}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Jhe,{transactions:t}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Hhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Bhe,{transactions:t})]})}function byt({transactions:e,maxTs:t}){return u.jsxs(W,{direction:"column",gap:"3",children:[u.jsx(Vhe,{transactions:e,maxTs:t}),u.jsx(Zhe,{transactions:e,maxTs:t,isMobileView:!0}),u.jsx(qhe,{transactions:e,maxTs:t,isMobileView:!0}),u.jsx(Ghe,{transactions:e,maxTs:t,isMobileView:!0}),u.jsx(Yhe,{transactions:e}),u.jsx(Khe,{transactions:e}),u.jsx("div",{style:{marginBottom:"8px"},children:u.jsx(Jhe,{transactions:e})}),u.jsx(Hhe,{transactions:e,maxTs:t}),u.jsx(Bhe,{transactions:e,size:"sm"})]})}function Vhe({transactions:e,maxTs:t}){const n=Ee(Rs),r=Ee(O1t),[i,o]=m.useState("All"),a=m.useCallback(d=>{if(!e)return;o(d);const f=d==="Success"?"No":d==="Errors"?"Yes":"All";n((p,v)=>r(p,e,v,t,f))},[r,t,e,n]),{isTooltipOpen:s,closeTooltip:l,toggleGroupRef:c}=DS(lyt,a,()=>a("All"));return u.jsxs(W,{gap:"2",children:[u.jsx(LS,{ref:c,options:syt,optionColors:{Success:MN,Errors:RN},value:i,onChange:d=>d&&a(d),isTooltipOpen:s,closeTooltip:l}),u.jsx(xyt,{transactions:e,isDisabled:i==="Success"})]})}function xyt({transactions:e,isDisabled:t}){const n=Ee(y6),r=J(_P),[i,o]=m.useState("0"),a=m.useMemo(()=>{if(r!=null&&r.size){const s=e.txn_error_code.filter((l,c)=>r.has(c));return rt.groupBy(s)}return rt.groupBy(e.txn_error_code)},[r,e.txn_error_code]);return m.useEffect(()=>{a[S1]||(o("0"),kP(0))},[a]),u.jsxs(Z7,{onValueChange:s=>{o(s),kP(Number(s)),n(l=>l.redraw())},size:"1",value:i,disabled:t,children:[u.jsx(q7,{placeholder:"Txn State",style:{height:"22px",width:"90px"}}),u.jsx(G7,{children:u.jsxs(Y7,{children:[u.jsx(My,{value:"0",children:"None"}),Object.keys(a).map(s=>s==="0"?null:u.jsxs(My,{value:`${s}`,children:[lN[s]," (",a[s].length,")"]},s))]})})]})}const DP="none";function Hhe({transactions:e,maxTs:t}){const n=Ee(y6),r=J(_P),[i,o]=m.useState(DP),a=m.useMemo(()=>{if(r!=null&&r.size){const s=e.txn_source_tpu.filter((l,c)=>r.has(c));return rt.groupBy(s)}return rt.groupBy(e.txn_source_tpu)},[r,e.txn_source_tpu]);return m.useEffect(()=>{a[C1]||(o(""),xhe(""))},[a]),u.jsxs(W,{gap:"2",align:"center",children:[u.jsx(Z,{className:CP.label,children:"TPU"}),u.jsxs(Z7,{onValueChange:s=>{o(s),xhe(s===DP?"":s),n(l=>l.redraw())},size:"1",value:i,children:[u.jsx(q7,{placeholder:"TPU",style:{height:"22px",width:"90px"}}),u.jsx(G7,{children:u.jsxs(Y7,{children:[u.jsx(My,{value:DP,children:"None"}),Object.keys(a).map(s=>u.jsxs(My,{value:s,children:[s," (",a[s].length,")"]},s))]})})]})]})}function Zhe({transactions:e,maxTs:t,isMobileView:n}){const[r,i]=m.useState("All"),o=Ee(Rs),a=Ee(z1t),s=m.useCallback(f=>{e&&(i(f),o((p,v)=>a(p,e,v,t,f)))},[a,t,e,o]),{isTooltipOpen:l,closeTooltip:c,toggleGroupRef:d}=DS(OP,s,()=>s("All"));return u.jsx(LS,{ref:d,label:"Bundle",options:PP,value:r,onChange:f=>f&&s(f),isTooltipOpen:l,closeTooltip:c,hasMinTextWidth:n})}function qhe({transactions:e,maxTs:t,isMobileView:n}){const r=Ee(Rs),i=Ee(D1t),[o,a]=m.useState("All"),s=m.useCallback(f=>{e&&(a(f),r((p,v)=>i(p,e,v,t,f)))},[i,t,e,r]),{isTooltipOpen:l,closeTooltip:c,toggleGroupRef:d}=DS(uyt,s,()=>s("All"));return u.jsx(LS,{ref:d,label:"Landed",options:PP,value:o,onChange:f=>f&&s(f),isTooltipOpen:l,closeTooltip:c,hasMinTextWidth:n})}function Ghe({transactions:e,maxTs:t,isMobileView:n}){const r=Ee(Rs),i=Ee(A1t),[o,a]=m.useState("All"),s=m.useCallback(f=>{e&&(a(f),r((p,v)=>i(p,e,v,t,f)))},[i,t,e,r]),{isTooltipOpen:l,closeTooltip:c,toggleGroupRef:d}=DS(cyt,s,()=>s("All"));return u.jsx(LS,{ref:d,label:"Vote",options:PP,value:o,onChange:f=>f&&s(f),isTooltipOpen:l,closeTooltip:c,hasMinTextWidth:n})}function Yhe({transactions:e}){return u.jsxs(W,{gap:"2",children:[u.jsx(_yt,{transactions:e}),u.jsx(wyt,{transactions:e}),u.jsx(Cyt,{transactions:e})]})}function _yt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Rs),i=Ee(W1t),o=Ee(l_),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.FEES)})};return u.jsx(d_,{label:"Fees",checked:t,onCheckedChange:a,color:kg})}function wyt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Rs),i=Ee(V1t),o=Ee(l_),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.TIPS)})};return u.jsx(d_,{label:"Tips",checked:t,onCheckedChange:a,color:qf})}function Khe({transactions:e}){return u.jsxs(W,{gap:"2",children:[u.jsx(Z,{className:CP.label,children:"CU"}),u.jsx(kyt,{transactions:e}),u.jsx(Syt,{transactions:e})]})}function kyt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Rs),i=Ee(H1t),o=Ee(l_),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.CUS_CONSUMED)})};return u.jsx(d_,{label:"Consumed",checked:t,onCheckedChange:a,color:pd})}function Syt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Rs),i=Ee(Z1t),o=Ee(l_),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.CUS_REQUESTED)})};return u.jsx(d_,{label:"Requested",checked:t,onCheckedChange:a,color:mk})}function Cyt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Rs),i=Ee(q1t),o=Ee(l_),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.INCOME_CUS)})};return u.jsx(d_,{label:"Income per CU",checked:t,onCheckedChange:a,color:wp})}const Rm=12,Xhe=100;function jyt({transactions:e,sliderMin:t,sliderMax:n,beforeZeroMulti:r,bboxWidth:i}){const o=m.useMemo(()=>{if(t>=n||!e.txn_arrival_timestamps_nanos.length)return;const a=n-t;function s(f){return f>=0?f:f/r}const l=e.txn_arrival_timestamps_nanos.reduce((f,p)=>{const v=(s(Number(p-e.start_timestamp_nanos))-t)/a,x=Math.trunc(v*Xhe);return f[x]+=1,f},new Array(Xhe).fill(0)),c=rt.max(l)??1,d=l.reduce((f,p,v)=>{const x=i*((v+1)/l.length),y=Rm-Rm*(p/c);return f+`${x},${y} `},"");return`0,${Rm}, ${d}, ${i},${Rm}`},[i,r,n,t,e.start_timestamp_nanos,e.txn_arrival_timestamps_nanos]);return u.jsx("svg",{height:`${Rm}px`,width:"100%",viewBox:`0 0 ${i} ${Rm}`,xmlns:"http://www.w3.org/2000/svg",style:{marginBottom:"-5px",borderRadius:"4px"},children:u.jsx("polyline",{points:o,fill:"rgba(186, 167, 255, 0.5)",stroke:"rgb(186, 167, 255)",strokeWidth:".5"})})}const AP=.3,Tyt=.025;function Jhe({transactions:e}){const t=m.useMemo(()=>hP(e),[e]),n=m.useMemo(()=>-Math.ceil(t*AP),[t]),[r,i]=m.useState([n,t]),o=Ee(Rs),a=Ee(F1t),[s,{width:l}]=Ss(),c=`${Math.ceil(AP/(1+AP)*100)}%`,d=m.useMemo(()=>{if(!e.txn_arrival_timestamps_nanos.length)return 0;const j=e.txn_arrival_timestamps_nanos.reduce((T,E)=>Ej<0?p*j:j,[p]),x=m.useCallback(j=>{if(!(j.length<2))return{min:v(j[0]),max:v(j[1])}},[v]),y=m.useCallback(j=>`${Math.round(v(j)/1e6).toLocaleString()} ms`,[v]),b=y(r[0]),w=y(r[1]),_=m.useCallback(j=>{o((T,E)=>a(T,e,E,t,x(j)))},[a,x,e,t,o]),S=Ba(j=>{requestAnimationFrame(()=>_(j))},100,{leading:!1,trailing:!0}),C=m.useCallback(j=>{i(j),_(j)},[_]);return m.useEffect(()=>{C([n,t])},[n,t,C]),zS(Dhe,C,()=>C([n,t])),u.jsxs(W,{align:"center",gap:"2",children:[u.jsx(Z,{className:c_.arrivalLabel,children:"Arrival"}),u.jsxs("div",{className:c_.slider,ref:s,style:{"--slot-start-pct":c,marginTop:`-${Rm+6}px`,"--min-value-label":`"${b}"`,"--max-value-label":`"${w}"`},children:[u.jsx(jyt,{transactions:e,sliderMin:n,sliderMax:t,beforeZeroMulti:p,bboxWidth:l}),u.jsx(nq,{style:{"--slider-track-size":"4px"},value:r,min:n,max:t,onValueChange:j=>{const T=j[0]!==r[0]?0:1;Math.abs(j[T]){const $=E.valToPos(j[T],Vt);E.setCursor({left:$,top:0})}),S(j)}})]})]})}function Iyt({transactionsRef:e,setTxnIdx:t,setTxnState:n,transactionsBundleStats:r}){function i(o,a,s){var d,f;let l=o.data[1][s];o.data[0][s]>a&&(l=o.data[1][s-1]),l==null&&o.data[1][s-1]!=null&&(l=o.data[1][s-1]);const c=((d=o.cursor.idxs)==null?void 0:d.length)&&o.cursor.idxs[1]===void 0;if(l==null||!e.current||c)return!1;{const p=ihe(a,e.current,l,(f=r[l])==null?void 0:f.bundleTxnIdx);return n(p),t(l),!0}}return i_({elId:"txn-bars-tooltip",closeTooltipElId:"txn-bars-tooltip-close",showOnCursor:i,showPointer:!0})}const AS=20;function Eyt({bankIdx:e,transactions:t,maxTs:n,isFirstChart:r,isLastChart:i,hide:o,isSelected:a,isFocused:s}){const l=r||i,c=J(Hfe)-AS,d=J(Zfe)-AS,f=Ee(jP),p=Ee(TP),v=m.useRef(null),x=m.useRef(t);x.current=t;const y=m.useMemo(()=>TS(t,e,n,Object.values(ca().get(a_))),[e,n,t]),b=m.useCallback(C=>{C.setData(TS(t,e,n,Object.values(ca().get(a_))),!1)},[e,n,t]),w=m.useMemo(()=>t.txn_from_bundle.map((C,j)=>{if(C)return CS(t,j)}),[t]),_=m.useMemo(()=>{if(y!=null&&y.length)return{width:0,height:0,class:nP.chart,drawOrder:["series","axes"],scales:{[Vt]:{time:!1}},axes:[{scale:Vt,stroke:sr,values:(C,j)=>l?j.map(T=>$1t(T,1e6)+"ms"):[],size:l?40:0,space:100,grid:{stroke:Lne},border:{show:!0,width:1/devicePixelRatio,stroke:sr},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},side:r?0:2},{border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:"rgba(0,0,0,0)"}],legend:{markers:{width:0},show:!1},padding:[0,AS,0,AS],series:[{scale:Vt},{label:`Bank ${e}`},{}],plugins:[rvt(x,w),Iyt({transactionsRef:x,setTxnIdx:f,setTxnState:p,transactionsBundleStats:w}),rP(),uP({factor:.75}),dP(),mP()],hooks:{ready:[C=>{requestAnimationFrame(()=>{U1t(C,e)})}]}}},[e,y==null?void 0:y.length,r,l,f,p,w]),S=J(wP);return!y||!_||o?null:u.jsx("div",{style:{flex:1,marginLeft:`${c}px`,marginRight:`${d}px`,display:o?"none":"block",height:a?`${Math.max(2,S)*90+40}px`:l?"170px":"130px"},ref:v,children:u.jsx($s,{children:({height:C,width:j})=>(_.width=j,_.height=C,u.jsx(u.Fragment,{children:u.jsx(Pp,{id:xP(e),className:Te(s&&nP.focused),options:_,data:y,onCreate:b})}))})})}const Nyt="_container_14qh6_1",$yt="_label_14qh6_10",Qhe={container:Nyt,label:$yt};function Myt({setSelected:e,bankIdx:t,isSelected:n}){return u.jsxs("div",{className:Qhe.container,children:[u.jsxs(Z,{className:Qhe.label,children:["Bank ",t]}),u.jsx(hs,{variant:"ghost",size:"1",onClick:()=>e(),children:n?u.jsx(lUe,{color:"grey"}):u.jsx(aUe,{color:"grey"})})]})}const Ryt=kb+Sb,epe=Ryt+Bte;function Lyt(){var d,f,p,v,x;const[e,t]=m.useState();zS(zP,y=>t(y),()=>t(void 0));const n=J(Cn),r=pl(n),i=m.useRef((d=r.response)==null?void 0:d.transactions);i.current=(f=r.response)==null?void 0:f.transactions;const o=J(Nb)[To.bank],a=Ee(che),s=m.useMemo(()=>{var y;return(y=r.response)!=null&&y.transactions?hP(r.response.transactions,!0):0},[(p=r.response)==null?void 0:p.transactions]);m.useMemo(()=>{var b;if(!((b=r.response)!=null&&b.transactions))return;const y=[];for(let w=0;w{var w;if((w=r.response)!=null&&w.transactions&&!(l!==void 0&&l!==b))return u.jsxs("div",{style:{position:"relative"},children:[(l===void 0||l===b)&&u.jsx(Myt,{bankIdx:b,setSelected:()=>c(_=>_===void 0?b:void 0),isSelected:l===b}),u.jsx(Eyt,{bankIdx:b,transactions:r.response.transactions,maxTs:s,isFirstChart:b===0&&o>1,isLastChart:b===o-1||l!==void 0,isSelected:l===b,hide:l!==void 0&&l!==b,isFocused:e===b},`${b}`)]},b)})]}):null}const Pyt="_state_1bdpv_11",Oyt="_cu-bars_1bdpv_24",zyt="_duration-container_1bdpv_30",Dyt="_value-text_1bdpv_38",Ayt="_unit_1bdpv_42",g_={state:Pyt,cuBars:Oyt,durationContainer:zyt,valueText:Dyt,unit:Ayt},Fyt="_separator_1pgc5_1",Uyt={separator:Fyt};function Lm({my:e,mb:t}){return u.jsx(ps,{size:"4",my:e??"1",mb:t,className:Uyt.separator})}function Byt(){var s,l;const e=J(Cn),t=pl(e),n=J(jP),r=J(TP),i=(s=t.response)==null?void 0:s.transactions,o=m.useMemo(()=>{if(i&&!(n<0)&&i.txn_from_bundle[n])return CS(i,n)},[i,n]),a=i!=null&&i.txn_arrival_timestamps_nanos[n]?kk(i.txn_arrival_timestamps_nanos[n]):void 0;return u.jsx(o_,{elId:"txn-bars-tooltip",children:(i==null?void 0:i.txn_bank_idx[n])!=null&&u.jsxs(W,{direction:"column",children:[u.jsxs(W,{justify:"between",children:[u.jsx(Z,{className:g_.state,style:{color:va[r]},children:r}),u.jsx(hs,{variant:"ghost",size:"1",id:"txn-bars-tooltip-close",children:u.jsx(nUe,{color:sr})})]}),u.jsx(Lm,{}),u.jsxs(W,{direction:"column",children:[u.jsx(qyt,{txnIdx:n,transactions:i}),u.jsx(FP,{label:"Bundle",value:i.txn_from_bundle[n],append:o?`(${o.order} of ${o.totalCount})`:void 0}),u.jsx(FP,{label:"Vote",value:i.txn_is_simple_vote[n]}),u.jsx(FP,{label:"Landed",value:i.txn_landed[n]}),u.jsx(Lm,{}),u.jsx(Wr,{label:"Fees",value:`${(i.txn_priority_fee[n]+i.txn_transaction_fee[n]).toLocaleString()}`,color:kg}),u.jsx(Wr,{label:"Tips",value:`${(l=i.txn_tips[n])==null?void 0:l.toLocaleString()}`,color:qf}),u.jsx(Lm,{}),u.jsx(Hyt,{transactions:i,txnIdx:n}),u.jsx(Lm,{}),u.jsx(Wr,{label:"Txn Index",value:`${n}`}),u.jsx(Wr,{label:"Microblock ID",value:`${i.txn_microblock_id[n]}`}),u.jsx(Wr,{label:"Bank ID",value:`${i.txn_bank_idx[n]}`}),u.jsx(Wr,{label:"Slot to Arrival",value:(Number(i.txn_arrival_timestamps_nanos[n]-i.start_timestamp_nanos)/1e6).toLocaleString(),unit:"ms"}),u.jsx(Wr,{label:"Arrival to Scheduled",value:(Number(i.txn_start_timestamps_nanos[n]-i.txn_arrival_timestamps_nanos[n])/1e6).toLocaleString(),unit:"ms"}),a&&u.jsx(Wr,{label:"Arrival Time",value:a.inNanos}),u.jsx(Wyt,{transactions:i,txnIdx:n}),u.jsx(Zyt,{transactions:i,txnIdx:n,bundleTxnIdx:o==null?void 0:o.bundleTxnIdx}),u.jsx(Lm,{}),u.jsx(Wr,{label:"Txn Sig",value:i.txn_signature[n],copyValue:i.txn_signature[n],truncateValue:!0})]})]})})}function Wyt({transactions:e,txnIdx:t}){const n=J(JN),r=e.txn_source_ipv4[t],i=m.useMemo(()=>{var a;const o=n.find(s=>s.gossip?Object.values(s.gossip.sockets).some(l=>ZN(l)===r):!1);return o?(a=o.info)!=null&&a.name?o.info.name:o.identity_pubkey:void 0},[r,n]);return u.jsxs(u.Fragment,{children:[u.jsx(Wr,{label:"IPv4 (tpu)",value:`${r} (${e.txn_source_tpu[t]})`}),i&&u.jsx(Wr,{label:"Validator",value:i,truncateValue:!0})]})}function Vyt({transactions:e,txnIdx:t}){var o;const{rankings:n,totalRanks:r}=m.useMemo(()=>vhe(e),[e]),i=n.has(t)?` (${n.get(t)} of ${r})`:"";return u.jsx(Wr,{label:"CU Income",value:`${(o=ghe(e,t))==null?void 0:o.toLocaleString(void 0,{maximumFractionDigits:Bo})}${i}`,color:wp})}function Hyt({transactions:e,txnIdx:t}){var r,i;const n=e.txn_compute_units_requested[t]?Math.trunc(e.txn_compute_units_consumed[t]/e.txn_compute_units_requested[t]*100):100;return u.jsxs(u.Fragment,{children:[u.jsx(Wr,{label:"CU Consumed",value:`${(r=e.txn_compute_units_consumed[t])==null?void 0:r.toLocaleString()}`,color:pd}),u.jsx(Wr,{label:"CU Requested",value:`${(i=e.txn_compute_units_requested[t])==null?void 0:i.toLocaleString()}`,color:mk}),u.jsx(Vyt,{transactions:e,txnIdx:t}),u.jsx(W,{children:u.jsxs("svg",{height:"8",fill:"none",className:g_.cuBars,xmlns:"http://www.w3.org/2000/svg",children:[u.jsx("rect",{height:"8",width:`${n}%`,opacity:.6,fill:pd}),u.jsx("rect",{height:"8",width:`${100-n}%`,x:`${n}%`,opacity:.2,fill:mk})]})})]})}function Zyt({transactions:e,txnIdx:t,bundleTxnIdx:n}){const r=m.useMemo(()=>pP(e,t,n),[n,e,t]),i=m.useMemo(()=>{if(!r)return;const a=rt.sum(rt.values(r).map(p=>Number(p))),s=Math.max(0,Number(r.preLoading)/a*100),l=Math.max(0,Number(r.validating)/a*100),c=Math.max(0,Number(r.loading)/a*100),d=Math.max(0,Number(r.execute)/a*100),f=Math.max(0,Number(r.postExecute)/a*100);return{preLoading:s,validating:l,loading:c,execute:d,postExecute:f}},[r]),o=m.useMemo(()=>{if(!r)return;const a=rt.sum(rt.values(r).map(b=>Number(b))),s=Ha(r.preLoading),l=Ha(r.validating),c=Ha(r.loading),d=Ha(r.execute),f=Ha(r.postExecute),p=Ha(a),v=e.txn_mb_start_timestamps_nanos[t],x=e.txn_mb_end_timestamps_nanos[t],y=n!=null&&n.length&&e.txn_from_bundle[t]?Ha(x-v):null;return{preLoading:s,validating:l,loading:c,execute:d,postExecute:f,total:p,bundleTotal:y}},[e,r,t,n]);if(!(!r||!i||!o))return u.jsxs(u.Fragment,{children:[u.jsx(Lm,{}),u.jsx(W,{children:u.jsxs("svg",{height:"36",className:g_.durationContainer,xmlns:"http://www.w3.org/2000/svg",children:[u.jsx("rect",{height:"8",width:`${i.preLoading}%`,fill:va[dn.PRELOADING]}),Vi?u.jsxs(u.Fragment,{children:[u.jsx("rect",{height:"8",width:`${i.loading}%`,fill:va[dn.LOADING],x:`${i.preLoading}%`,y:"20%"}),u.jsx("rect",{height:"8",width:`${i.validating}%`,fill:va[dn.VALIDATE],x:`${i.preLoading+i.loading}%`,y:"40%"})]}):u.jsxs(u.Fragment,{children:[u.jsx("rect",{height:"8",width:`${i.validating}%`,fill:va[dn.VALIDATE],x:`${i.preLoading}%`,y:"20%"}),u.jsx("rect",{height:"8",width:`${i.loading}%`,fill:va[dn.LOADING],x:`${i.preLoading+i.validating}%`,y:"40%"})]}),u.jsx("rect",{height:"8",width:`${i.execute}%`,fill:va[dn.EXECUTE],x:`${i.preLoading+i.validating+i.loading}%`,y:"60%"}),u.jsx("rect",{height:"8",width:`${i.postExecute}%`,fill:va[dn.POST_EXECUTE],x:`${i.preLoading+i.validating+i.loading+i.execute}%`,y:"80%"})]})}),u.jsx(Wr,{label:dn.PRELOADING,color:va[dn.PRELOADING],value:o.preLoading.value,unit:o.preLoading.unit}),Vi?u.jsxs(u.Fragment,{children:[u.jsx(Wr,{label:dn.LOADING,color:va[dn.LOADING],value:o.loading.value,unit:o.loading.unit}),u.jsx(Wr,{label:dn.VALIDATE,color:va[dn.VALIDATE],value:o.validating.value,unit:o.validating.unit})]}):u.jsxs(u.Fragment,{children:[u.jsx(Wr,{label:dn.VALIDATE,color:va[dn.VALIDATE],value:o.validating.value,unit:o.validating.unit}),u.jsx(Wr,{label:dn.LOADING,color:va[dn.LOADING],value:o.loading.value,unit:o.loading.unit})]}),u.jsx(Wr,{label:dn.EXECUTE,color:va[dn.EXECUTE],value:o.execute.value,unit:o.execute.unit}),u.jsx(Wr,{label:dn.POST_EXECUTE,color:va[dn.POST_EXECUTE],value:o.postExecute.value,unit:o.postExecute.unit}),u.jsx(Wr,{label:"Total",value:o.total.value,unit:o.total.unit}),o.bundleTotal&&u.jsx(Wr,{label:"Total (Bundle)",value:o.bundleTotal.value,unit:o.bundleTotal.unit})]})}function qyt({txnIdx:e,transactions:t}){const n=t.txn_error_code[e],r=n!==0;return u.jsx(Wr,{label:r?"Error":"Success",value:r?`${lN[n]}`:"Yes",color:r?RN:MN})}function Wr({label:e,value:t,color:n,unit:r,copyValue:i,truncateValue:o}){const a=typeof t=="number"?t.toLocaleString():t;return u.jsxs(W,{justify:"between",gap:"4",style:{"--color-override":n},children:[u.jsx(W,{minWidth:"105px",children:u.jsx(Z,{wrap:"nowrap",children:e})}),u.jsx(W,{minWidth:"0",maxWidth:"210px",align:"center",children:u.jsxs(Dg,{value:i,color:Xte,size:"14px",children:[u.jsx(Z,{className:g_.valueText,align:"right",truncate:o,children:a}),r&&u.jsx(Z,{className:g_.unit,children:r})]})})]})}function FP({value:e,append:t,...n}){let r=e?"Yes":"No";return t&&(r+=` ${t}`),u.jsx(Wr,{...n,value:r})}function Gyt(){var n;const e=J(Cn),t=pl(e);return!e||!((n=t.response)!=null&&n.transactions)?u.jsx(Yyt,{}):u.jsxs(u.Fragment,{children:[u.jsx(so,{id:"txn-bars-card",children:u.jsx(Lyt,{},e)}),u.jsx(Byt,{})]})}function Yyt(){return u.jsx(so,{style:{display:"flex",flexGrow:"1",height:"400px",justifyContent:"center",alignItems:"center"},children:u.jsx(Z,{children:"Loading Banks..."})})}const Kyt="_search-grid_gudx6_1",Xyt="_search-label_gudx6_5",Jyt="_search-field_gudx6_11",Qyt="_error-text_gudx6_15",ebt="_quick-search-card_gudx6_19",tbt="_quick-search-header_gudx6_26",nbt="_quick-search-slot_gudx6_37",rbt="_clickable_gudx6_40",ibt="_quick-search-metric_gudx6_51",hc={searchGrid:Kyt,searchLabel:Xyt,searchField:Jyt,errorText:Qyt,quickSearchCard:ebt,quickSearchHeader:tbt,quickSearchSlot:nbt,clickable:rbt,quickSearchMetric:ibt},obt=e=>m.createElement("svg",{width:18,height:18,viewBox:"0 0 18 18",fill:"#D86363",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.01469 6.00051C5.58562 6.03619 3 7.94365 3 12C3 12.5523 2.55228 13 2 13C1.44772 13 1 12.5523 1 12C1 6.90007 4.41438 4.05318 7.98531 4.00073C9.74494 3.97489 11.5153 4.63461 12.8432 6.00502C13.8812 7.07635 14.6101 8.5405 14.8821 10.3602L15.8896 8.9389C16.209 8.48833 16.8331 8.38198 17.2837 8.70137C17.7343 9.02075 17.8406 9.64492 17.5213 10.0955L15.0678 13.5568C14.7484 14.0073 14.1242 14.1137 13.6737 13.7943L10.2124 11.3408C9.76181 11.0214 9.65546 10.3973 9.97484 9.9467C10.2942 9.49613 10.9184 9.38978 11.369 9.70916L12.9263 10.8131C12.7275 9.27771 12.1449 8.15845 11.4068 7.39676C10.4847 6.44507 9.25506 5.9823 8.01469 6.00051ZM6.5 13C7.32843 13 8 12.3284 8 11.5C8 10.6716 7.32843 10 6.5 10C5.67157 10 5 10.6716 5 11.5C5 12.3284 5.67157 13 6.5 13Z"}));function abt(e=!1){const t=C6(),n=m.useCallback(()=>t({topic:"slot",key:"query_rankings",id:32,params:{mine:e}}),[e,t]);m.useEffect(()=>{n();const r=setInterval(n,5e3);return()=>clearInterval(r)},[n])}function tpe(e,t){const n=Pie();if(rx(n,1e3),!e)return;const r=Yf>=e,i=(r?Yf.diff(e):e.diff(Yf)).rescale(),o=kp(i,t);return r?`${o} ago`:o}function npe(e,t){var a;const n=Is(e),r=m.useMemo(()=>{var s;return((s=n.publish)==null?void 0:s.completed_time_nanos)??void 0},[(a=n.publish)==null?void 0:a.completed_time_nanos]),i=m.useMemo(()=>{if(r!==void 0)return tre(r)},[r]),o=tpe(i,t);return{slotTimestampNanos:r,slotDateTime:i,timeAgoText:o}}function rpe(){const e=Q0({from:$pe.fullPath});return m.useCallback(t=>{e({search:{slot:t},replace:!0})},[e])}const ipe=3,ope=226,ape=40,spe=20,sbt=2*spe+ipe*ope+(ipe-1)*ape;function lbt(){const e=J(gd.slot),t=rpe(),[n,r]=m.useState(e===void 0?"":String(e)),i=J(fi),o=J(gd.isValid),a=m.useCallback(()=>{t(n===""?void 0:Number(n))},[n,t]);return u.jsxs(qr,{height:"100%",maxWidth:`${sbt}px`,justify:"center",m:"auto",gap:`${ape}px`,p:`${spe}px`,columns:`repeat(auto-fit, ${ope}px)`,className:hc.searchGrid,children:[u.jsx(W,{direction:"column",gap:"8px",gridColumn:"1 / -1",asChild:!0,children:u.jsxs("form",{onSubmit:s=>{s.preventDefault(),a()},children:[u.jsx(C6e,{htmlFor:"searchSlotId",className:hc.searchLabel,children:"Search Slot ID"}),u.jsx(Q7,{id:"searchSlotId",className:hc.searchField,placeholder:`e.g. ${(i==null?void 0:i.start_slot)??0}`,type:"number",step:"1",value:n,onChange:s=>r(s.target.value),size:"3",color:o?"teal":"red",autoFocus:!0,children:u.jsx(M4,{side:"right",children:u.jsx(nl,{variant:"ghost",color:"gray",onClick:a,children:u.jsx(qie,{height:"16",width:"16"})})})}),!o&&u.jsx(hbt,{})]})}),u.jsx(ubt,{})]})}function UP(e){return`${Tb(e,4)} SOL`}function ubt(){abt(!0);const e=J(PG),{earliestQuickSlots:t,mostRecentQuickSlots:n}=J(Tre);return u.jsxs(u.Fragment,{children:[u.jsx($1,{icon:u.jsx(QFe,{}),label:"Earliest Slots",color:qne,slots:t}),u.jsx($1,{icon:u.jsx(Gie,{}),label:"Most Recent Slots",color:Gne,slots:n}),u.jsx($1,{icon:u.jsx(obt,{}),label:"Last Skipped Slots",color:Yne,slots:e==null?void 0:e.slots_largest_skipped}),u.jsx($1,{icon:u.jsx(iUe,{}),label:"Highest Fees",color:Kne,slots:e==null?void 0:e.slots_largest_fees,metricOptions:{metrics:e==null?void 0:e.vals_largest_fees,metricsFmt:UP}}),u.jsx($1,{icon:u.jsx(pUe,{}),label:"Highest Tips",color:Xne,slots:e==null?void 0:e.slots_largest_tips,metricOptions:{metrics:e==null?void 0:e.vals_largest_tips,metricsFmt:UP}}),u.jsx($1,{icon:u.jsx(yUe,{}),label:"Highest Rewards",color:Jne,slots:e==null?void 0:e.slots_largest_rewards,metricOptions:{metrics:e==null?void 0:e.vals_largest_rewards,metricsFmt:UP}})]})}function $1({icon:e,label:t,color:n,slots:r,metricOptions:i}){return u.jsxs(W,{direction:"column",className:hc.quickSearchCard,p:"20px",gap:"20px",children:[u.jsxs(W,{direction:"column",gap:"10px",className:hc.quickSearchHeader,style:{"--quick-search-color":n},children:[e,u.jsx(Z,{align:"left",children:t})]}),u.jsx(cbt,{slots:r,metricOptions:i})]})}function cbt({slots:e,metricOptions:t}){const n=rpe();return u.jsx(W,{direction:"column",gap:"5px",children:Array.from({length:GN}).map((r,i)=>{var a;const o=e==null?void 0:e[i];return u.jsxs(W,{justify:"between",children:[o===void 0?u.jsx(Z,{className:hc.quickSearchSlot,children:"--"}):u.jsx(Z,{className:Te(hc.quickSearchSlot,hc.clickable),onClick:()=>n(o),children:o}),u.jsx(Z,{className:hc.quickSearchMetric,children:u.jsx(dbt,{slot:o,metric:(a=t==null?void 0:t.metrics)==null?void 0:a[i],metricsFmt:t==null?void 0:t.metricsFmt})})]},i)})})}function dbt({slot:e,metric:t,metricsFmt:n}){return e===void 0?"--":n?t===void 0?"--":n(t)??"--":u.jsx(fbt,{slot:e})}function fbt({slot:e}){const{timeAgoText:t}=npe(e,{showOnlyTwoSignificantUnits:!0});return t}function hbt(){const e=J(gd.slot),t=J(gd.state),n=J(fi),r=m.useMemo(()=>{switch(t){case Kf.NotReady:return`Slot ${e} validity cannot be determined because epoch and leader slot data is not available yet.`;case Kf.OutsideEpoch:return`Slot ${e} is outside this epoch. Please try again with a different ID between ${n==null?void 0:n.start_slot} - ${n==null?void 0:n.end_slot}.`;case Kf.NotYou:return`Slot ${e} belongs to another validator. Please try again with a slot number processed by you.`;case Kf.BeforeFirstProcessed:return`Slot ${e} is in this epoch but its details are unavailable because it was processed before the restart.`;case Kf.Future:return`Slot ${e} is valid but in the future. To view details, check again after it has been processed.`;case Kf.Valid:return""}},[n==null?void 0:n.end_slot,n==null?void 0:n.start_slot,e,t]);return u.jsx(Z,{size:"3",className:hc.errorText,children:r})}const pbt="_slot-item-group_p1cnp_1",mbt="_disabled_p1cnp_8",gbt="_is-selected_p1cnp_13",vbt="_slot-item_p1cnp_1",ybt="_selected-slot_p1cnp_35",bbt="_skipped-slot_p1cnp_41",xbt="_fade_p1cnp_50",_bt="_fade-left_p1cnp_57",wbt="_fade-right_p1cnp_62",pc={slotItemGroup:pbt,disabled:mbt,isSelected:gbt,slotItem:vbt,selectedSlot:ybt,skippedSlot:bbt,fade:xbt,fadeLeft:_bt,fadeRight:wbt};function lpe({onMeasured:e,children:t}){const n=J(jg),[r,i]=Ss();return m.useEffect(()=>e(i),[i,e]),u.jsx(lB,{container:n,style:{position:"fixed",left:"-100000px",top:"-100000px",visibility:"hidden"},ref:r,"aria-hidden":"true",children:t})}/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. 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 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */var BP=function(e,t){return BP=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)r.hasOwnProperty(i)&&(n[i]=r[i])},BP(e,t)};function kbt(e,t){BP(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Sbt=100,Cbt=100,upe=50,WP=50,VP=50;function cpe(e){var t=e.className,n=e.counterClockwise,r=e.dashRatio,i=e.pathRadius,o=e.strokeWidth,a=e.style;return m.createElement("path",{className:t,style:Object.assign({},a,Tbt({pathRadius:i,dashRatio:r,counterClockwise:n})),d:jbt({pathRadius:i,counterClockwise:n}),strokeWidth:o,fillOpacity:0})}function jbt(e){var t=e.pathRadius,n=e.counterClockwise,r=t,i=n?1:0;return` + M `+WP+","+VP+` + m 0,-`+r+` + a `+r+","+r+" "+i+" 1 1 0,"+2*r+` + a `+r+","+r+" "+i+" 1 1 0,-"+2*r+` + `}function Tbt(e){var t=e.counterClockwise,n=e.dashRatio,r=e.pathRadius,i=Math.PI*2*r,o=(1-n)*i;return{strokeDasharray:i+"px "+i+"px",strokeDashoffset:(t?-o:o)+"px"}}var Ibt=function(e){kbt(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getBackgroundPadding=function(){return this.props.background?this.props.backgroundPadding:0},t.prototype.getPathRadius=function(){return upe-this.props.strokeWidth/2-this.getBackgroundPadding()},t.prototype.getPathRatio=function(){var n=this.props,r=n.value,i=n.minValue,o=n.maxValue,a=Math.min(Math.max(r,i),o);return(a-i)/(o-i)},t.prototype.render=function(){var n=this.props,r=n.circleRatio,i=n.className,o=n.classes,a=n.counterClockwise,s=n.styles,l=n.strokeWidth,c=n.text,d=this.getPathRadius(),f=this.getPathRatio();return m.createElement("svg",{className:o.root+" "+i,style:s.root,viewBox:"0 0 "+Sbt+" "+Cbt,"data-test-id":"CircularProgressbar"},this.props.background?m.createElement("circle",{className:o.background,style:s.background,cx:WP,cy:VP,r:upe}):null,m.createElement(cpe,{className:o.trail,counterClockwise:a,dashRatio:r,pathRadius:d,strokeWidth:l,style:s.trail}),m.createElement(cpe,{className:o.path,counterClockwise:a,dashRatio:f*r,pathRadius:d,strokeWidth:l,style:s.path}),c?m.createElement("text",{className:o.text,style:s.text,x:WP,y:VP},c):null)},t.defaultProps={background:!1,backgroundPadding:0,circleRatio:1,classes:{root:"CircularProgressbar",trail:"CircularProgressbar-trail",path:"CircularProgressbar-path",text:"CircularProgressbar-text",background:"CircularProgressbar-background"},counterClockwise:!1,className:"",maxValue:100,minValue:0,strokeWidth:8,styles:{root:{},trail:{},path:{},text:{},background:{}},text:""},t}(m.Component);function Ebt(e){var t=e.rotation,n=e.strokeLinecap,r=e.textColor,i=e.textSize,o=e.pathColor,a=e.pathTransition,s=e.pathTransitionDuration,l=e.trailColor,c=e.backgroundColor,d=t==null?void 0:"rotate("+t+"turn)",f=t==null?void 0:"center center";return{root:{},path:FS({stroke:o,strokeLinecap:n,transform:d,transformOrigin:f,transition:a,transitionDuration:s==null?void 0:s+"s"}),trail:FS({stroke:l,strokeLinecap:n,transform:d,transformOrigin:f}),text:FS({fill:r,fontSize:i}),background:FS({fill:c})}}function FS(e){return Object.keys(e).forEach(function(t){e[t]==null&&delete e[t]}),e}const Nbt="data:image/svg+xml,%3csvg%20width='12'%20height='13'%20viewBox='0%200%2012%2013'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6%200.675781C9.22656%200.675781%2011.8242%203.27344%2011.8242%206.5C11.8242%209.72656%209.22656%2012.3242%206%2012.3242C2.77344%2012.3242%200.175781%209.72656%200.175781%206.5C0.175781%203.27344%202.77344%200.675781%206%200.675781ZM6%2011.1758C8.57031%2011.1758%2010.6758%209.07031%2010.6758%206.5C10.6758%203.92969%208.57031%201.82422%206%201.82422C3.42969%201.82422%201.32422%203.92969%201.32422%206.5C1.32422%209.07031%203.42969%2011.1758%206%2011.1758ZM8.67969%203.92969L9.5%204.75L4.82422%209.42578L2.5%207.07422L3.32031%206.25391L4.82422%207.75781L8.67969%203.92969Z'%20fill='%231D863B'/%3e%3c/svg%3e",$bt="data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='%231D863B'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.82422%208.92578L10.0742%203.67578L9.25391%202.82812L4.82422%207.25781L2.74609%205.17969L1.92578%206L4.82422%208.92578ZM1.87109%201.89844C3.01953%200.75%204.39583%200.175781%206%200.175781C7.60417%200.175781%208.97135%200.75%2010.1016%201.89844C11.25%203.02865%2011.8242%204.39583%2011.8242%206C11.8242%207.60417%2011.25%208.98047%2010.1016%2010.1289C8.97135%2011.2591%207.60417%2011.8242%206%2011.8242C4.39583%2011.8242%203.01953%2011.2591%201.87109%2010.1289C0.740885%208.98047%200.175781%207.60417%200.175781%206C0.175781%204.39583%200.740885%203.02865%201.87109%201.89844Z'/%3e%3c/svg%3e",Mbt="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='8.5'%20cy='2.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='4.5'%20cy='6.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='2.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='6.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='10.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='14.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='2.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='6.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='10.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='14.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='12.5'%20cy='6.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3cline%20x1='8.35355'%20y1='1.64645'%20x2='13.3536'%20y2='6.64645'%20stroke='%231CE7C2'/%3e%3cline%20x1='3.64645'%20y1='6.64645'%20x2='8.64645'%20y2='1.64645'%20stroke='%231CE7C2'/%3e%3cline%20x1='12.4642'%20y1='6.8143'%20x2='14.4642'%20y2='11.8143'%20stroke='%231CE7C2'/%3e%3cline%20x1='10.5358'%20y1='11.8143'%20x2='12.5356'%20y2='6.81427'%20stroke='%231CE7C2'/%3e%3cline%20x1='2.53576'%20y1='11.8143'%20x2='4.53576'%20y2='6.8143'%20stroke='%231CE7C2'/%3e%3cline%20x1='4.46424'%20y1='6.81432'%20x2='6.46412'%20y2='11.8144'%20stroke='%231CE7C2'/%3e%3cline%20x1='2.5'%20y1='11'%20x2='2.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='6.5'%20y1='11'%20x2='6.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='10.5'%20y1='11'%20x2='10.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='14.5'%20y1='11'%20x2='14.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3c/svg%3e",Rbt="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='%23D86363'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8.01469%206.00051C5.58562%206.03619%203%207.94365%203%2012C3%2012.5523%202.55228%2013%202%2013C1.44772%2013%201%2012.5523%201%2012C1%206.90007%204.41438%204.05318%207.98531%204.00073C9.74494%203.97489%2011.5153%204.63461%2012.8432%206.00502C13.8812%207.07635%2014.6101%208.5405%2014.8821%2010.3602L15.8896%208.9389C16.209%208.48833%2016.8331%208.38198%2017.2837%208.70137C17.7343%209.02075%2017.8406%209.64492%2017.5213%2010.0955L15.0678%2013.5568C14.7484%2014.0073%2014.1242%2014.1137%2013.6737%2013.7943L10.2124%2011.3408C9.76181%2011.0214%209.65546%2010.3973%209.97484%209.9467C10.2942%209.49613%2010.9184%209.38978%2011.369%209.70916L12.9263%2010.8131C12.7275%209.27771%2012.1449%208.15845%2011.4068%207.39676C10.4847%206.44507%209.25506%205.9823%208.01469%206.00051ZM6.5%2013C7.32843%2013%208%2012.3284%208%2011.5C8%2010.6716%207.32843%2010%206.5%2010C5.67157%2010%205%2010.6716%205%2011.5C5%2012.3284%205.67157%2013%206.5%2013Z'/%3e%3c/svg%3e",Lbt="_small-icon_1vpxu_1",Pbt="_large-icon_1vpxu_6",US={smallIcon:Lbt,largeIcon:Pbt};function dpe({slot:e,isCurrent:t,size:n}){const r=J(nDe(e)),i=Te(US[`${n}Icon`]);return t?u.jsx(Obt,{size:n}):r==="incomplete"?u.jsx(fpe,{size:n}):r==="optimistically_confirmed"?u.jsx(ci,{content:"Slot was optimistically confirmed",children:u.jsx("img",{src:$bt,alt:"optimistically_confirmed",className:i})}):r==="rooted"||r==="finalized"?u.jsx(ci,{content:"Slot was rooted",children:u.jsx("img",{src:Mbt,alt:"rooted",className:i})}):u.jsx(ci,{content:"Slot was processed",children:u.jsx("img",{src:Nbt,alt:"processed",className:i})})}function fpe({size:e}){return u.jsx("div",{className:Te(US[`${e}Icon`])})}function Obt({size:e}){const t=m.useRef(performance.now()),n=J(Eg),[r,i]=m.useState(0);return Aie(()=>{if(r>=100)return;const o=performance.now()-t.current,a=Math.min(Math.floor(o/n*100),100);i(a)}),u.jsx(W,{className:Te(US[`${e}Icon`]),children:u.jsx(Ibt,{value:r,styles:Ebt({trailColor:Hne,pathColor:Zne,pathTransition:"none"}),strokeWidth:25,maxValue:100})})}function hpe({size:e}){return u.jsx(ci,{content:"Slot was skipped",children:u.jsx("img",{src:Rbt,alt:"skipped",className:Te(US[`${e}Icon`])})})}const zbt=kb+Sb,ppe=4;function mpe(e,t){return e*t+Math.max(0,e-1)*ppe}function Dbt(){const e=J(Cn),t=J(ao),[n,r]=m.useState(0),[i,o]=m.useState(0),[a,{width:s}]=Ss(),l=m.useRef(null),[c,d]=m.useState(0),f=m.useCallback(w=>{w&&requestAnimationFrame(()=>{var S;const _=s/2-(w.offsetLeft+w.offsetWidth/2);(S=l.current)==null||S.style.setProperty("--offset",`${_}px`),d(_)})},[s]),p=m.useMemo(()=>e===void 0||!t?-1:t.indexOf(_i(e)),[t,e]),v=m.useMemo(()=>{if(p<0||!t)return;const w=Math.max(1,Math.ceil(s/2/i)),_=rt.clamp(w,1,10),S=w+_,C=t.length,j=Math.max(0,p-S),T=Math.min(C-1,p+S),E=C-1-T;return{leftSpacerWidth:mpe(j,i),rightSpacerWidth:mpe(E,i),startItemGroupIdx:j,endItemGroupIdx:T}},[s,i,t,p]),{showFadeLeft:x,showFadeRight:y}=m.useMemo(()=>{var S;const w=c<0,_=(((S=l.current)==null?void 0:S.offsetWidth)??0)-s+c>0;return{showFadeLeft:w,showFadeRight:_}},[s,c]);if(!t||!v||e===void 0)return;const b=[];if(i&&n)for(let w=v.startItemGroupIdx;w<=v.endItemGroupIdx;w++){const _=[],S=t[w];for(let j=0;j<$n;j++){const T=S+j,E=T===e;_.push(u.jsx(HP,{slot:T,isSelected:E,onSelectedSlotRef:E?f:void 0},T))}const C=S<=e&&et(i.width),children:u.jsx(HP,{slot:e[e.length-1],isSelected:!0})}),u.jsx(lpe,{onMeasured:i=>n(i.width),children:u.jsx(gpe,{slot:r,children:new Array($n).fill(0).map((i,o)=>u.jsx(HP,{slot:r-o,isSelected:!0},o))})})]})}function gpe({slot:e,isSelected:t,children:n}){const r=e<(J(Xf)??-1),i=e>(J(XN)??1/0),o=r||i;return u.jsx(W,{className:Te(pc.slotItemGroup,{[pc.disabled]:o,[pc.isSelected]:t}),children:n})}function HP({slot:e,isSelected:t,onSelectedSlotRef:n}){var s;Is(e);const r=(s=J(u3))==null?void 0:s.includes(e),i=e<(J(Xf)??-1),o=e>=(J(XN)??1/0)+$n,a=i||o;return u.jsxs(sp,{to:"/slotDetails",search:{slot:e},className:Te(pc.slotItem,{[pc.selectedSlot]:t,[pc.skippedSlot]:r}),ref:n,disabled:a,children:[u.jsx(Z,{children:e}),r?u.jsx(hpe,{size:"large"}):u.jsx(dpe,{isCurrent:!1,slot:e,size:"large"})]},e)}const Fbt="_header_1s5d9_1",Ubt="_subheader_1s5d9_7",Bbt="_label_1s5d9_12",Wbt="_value_1s5d9_18",Vbt="_table-header_1s5d9_26",Hbt="_table-row-label_1s5d9_32",Zbt="_total_1s5d9_37",qbt="_table-cell-value_1s5d9_42",Gbt="_grid_1s5d9_52",Ybt="_name_1s5d9_67",Kbt="_lg_1s5d9_70",Xbt="_copy-button_1s5d9_79",Jbt="_time-popover_1s5d9_85",at={header:Fbt,subheader:Ubt,label:Bbt,value:Wbt,tableHeader:Vbt,tableRowLabel:Hbt,total:Zbt,tableCellValue:qbt,grid:Gbt,name:Ybt,lg:Kbt,copyButton:Xbt,timePopover:Jbt},vpe="20px",BS="15px",Qbt="15px",xl="5px",Nd="1",ype=2.5;function ZP({title:e,children:t,...n}){return u.jsxs(W,{direction:"column",flexBasis:"0",flexGrow:"1",gap:BS,...n,children:[u.jsxs(Mt,{children:[u.jsx(Z,{className:at.header,children:e}),u.jsx(Lm,{my:"0"})]}),t]})}function Oi({title:e,children:t,...n}){return u.jsxs(W,{direction:"column",...n,children:[u.jsx(Z,{className:at.subheader,mb:"5px",children:e}),t]})}const ext=Yu;function txt(){const e=J(Cn),t=pl(e),n=m.useMemo(()=>{var o;if((o=t==null?void 0:t.response)!=null&&o.transactions)return t.response.transactions.txn_compute_units_consumed.reduce((a,s,l)=>{var f,p,v,x;const c=!!((p=(f=t.response)==null?void 0:f.transactions)!=null&&p.txn_is_simple_vote[l]),d=(x=(v=t.response)==null?void 0:v.transactions)==null?void 0:x.txn_from_bundle[l];return c?a.vote+=s:d?a.bundle+=s:a.other+=s,a},{vote:0,bundle:0,other:0})},[t]);if(!n)return;const r=n.vote+n.bundle+n.other,i=Math.max(n.vote,n.bundle,n.other);return u.jsx(Oi,{title:"Consumed Compute Units",children:u.jsxs(qr,{columns:"repeat(5, auto) minmax(80px, 100%)",gapX:xl,gapY:Nd,children:[u.jsx(qP,{label:"Vote",cus:n.vote,totalCus:r,maxCus:i,pctColor:hd}),u.jsx(qP,{label:"Bundle",cus:n.bundle,totalCus:r,maxCus:i,pctColor:ext}),u.jsx(qP,{label:"Other",cus:n.other,totalCus:r,maxCus:i,pctColor:Hf})]})})}function qP({label:e,cus:t,totalCus:n,maxCus:r,pctColor:i}){const o=Math.round(n?t/n*100:0),a=Math.round(r?t/r*100:0);return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:at.label,children:e}),u.jsx(Z,{className:at.value,style:{color:i},align:"right",children:t.toLocaleString()}),u.jsx(Z,{className:at.value,children:"/"}),u.jsx(Z,{className:at.value,style:{color:pd},align:"right",children:n.toLocaleString()}),u.jsxs(Z,{className:at.value,align:"right",children:[o,"%"]}),u.jsx("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:u.jsx("rect",{height:"8",width:`${a}%`,opacity:.6,fill:i})})]})}function WS({value:e,total:t,valueColor:n,showBackground:r}){const i=Math.round(t?e/t*100:0);return u.jsx(u.Fragment,{children:u.jsxs("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[u.jsx("rect",{height:"8",width:`${i}%`,opacity:.6,fill:n}),r&&u.jsx("rect",{height:"8",width:`${100-i}%`,x:`${i}%`,opacity:.2,fill:n})]})})}function v_({label:e,value:t,total:n,valueColor:r,labelWidth:i,numeratorColor:o=!0,pctColor:a=!1}){const s=Math.round(n?t/n*100:0);return u.jsxs(u.Fragment,{children:[u.jsx(qk,{content:i?e:void 0,children:u.jsx(Z,{className:at.label,truncate:!0,style:{width:i},children:e})}),u.jsx(Z,{className:at.value,style:{color:o?r:void 0},align:"right",children:t.toLocaleString()}),u.jsx(Z,{className:at.value,children:"/"}),u.jsx(Z,{className:at.value,align:"right",children:n.toLocaleString()}),u.jsxs(Z,{className:at.value,style:{color:a?r:void 0},align:"right",children:[s,"%"]}),u.jsx(WS,{value:t,total:n,valueColor:r,showBackground:!0})]})}function nxt(){const e=J(Cn),t=tc(e).response;if(!t)return;const{limits:n}=t;if(n)return u.jsx(Oi,{title:"Protocol Limit Utilization",children:u.jsxs(qr,{columns:"repeat(5, auto) minmax(80px, 100%)",gapX:xl,gapY:Nd,children:[u.jsx(v_,{label:"Block cost",value:n.used_total_block_cost??0,total:n.max_total_block_cost??0,valueColor:pd}),u.jsx(v_,{label:"Vote cost",value:n.used_total_vote_cost??0,total:n.max_total_vote_cost??0,valueColor:hd}),u.jsx(v_,{label:"Bytes",value:n.used_total_bytes??0,total:n.max_total_bytes??0,valueColor:"#A35829"}),u.jsx(v_,{label:"Microblocks",value:n.used_total_microblocks??0,total:n.max_total_microblocks??0,valueColor:"#9EB1FF"})]})})}function rxt(){const e=J(Cn),t=tc(e).response;if(!t)return;const{limits:n}=t;if(n)return u.jsx(Oi,{title:"Top 5 Busy Accounts",children:u.jsx(qr,{columns:"repeat(5, auto) minmax(80px, 100%)",gapX:xl,gapY:Nd,children:n.used_account_write_costs.map(({account:r,cost:i})=>u.jsx(v_,{label:r,labelWidth:"80px",value:i,total:n.max_account_write_cost,valueColor:"#30A46C",numeratorColor:!1,pctColor:!0},r))})})}function Za({children:e,...t}){return u.jsx(Z,{...t,className:Te("mono-text",t.className),children:e})}const GP={preLoading:0,validating:0,loading:0,execute:0,postExecute:0,total:0};function YP(e){return Object.values(e).reduce((t,n)=>t+n,0)}function ixt(){var s;const e=J(Cn),t=(s=pl(e).response)==null?void 0:s.transactions,n=m.useMemo(()=>{if(!t)return;const l={...GP},c={...GP},d={...GP};for(let f=0;f{y.preLoading+=Number(b.preLoading),y.validating+=Number(b.validating),y.loading+=Number(b.loading),y.execute+=Number(b.execute),y.postExecute+=Number(b.postExecute)};t.txn_landed[f]?t.txn_error_code[f]===0?x(c,v):x(d,v):x(l,v)}return l.total=YP(l),c.total=YP(c),d.total=YP(d),{unlanded:l,landedSuccess:c,landedFailed:d,max:Math.max(l.total,c.total,d.total)}},[t]);if(!n)return;const{unlanded:r,landedSuccess:i,landedFailed:o,max:a}=n;return u.jsx(Oi,{title:"Cumulative Execution Time",children:u.jsxs(qr,{columns:"repeat(7, auto)",gapX:xl,gapY:Nd,children:[u.jsx("div",{}),u.jsx(Z,{className:at.tableHeader,style:{gridColumn:"span 2"},children:"Success+Landed"}),u.jsx(Z,{className:at.tableHeader,style:{gridColumn:"span 2"},children:"Failed+Landed"}),u.jsx(Z,{className:at.tableHeader,style:{gridColumn:"span 2"},children:"Unlanded"}),u.jsx(mh,{label:"Preloading",landedSuccess:i.preLoading,landedFailed:o.preLoading,unlanded:r.preLoading,max:a}),Vi?u.jsxs(u.Fragment,{children:[u.jsx(mh,{label:dn.LOADING,landedSuccess:i.loading,landedFailed:o.loading,unlanded:r.loading,max:a}),u.jsx(mh,{label:dn.VALIDATE,landedSuccess:i.validating,landedFailed:o.validating,unlanded:r.validating,max:a})]}):u.jsxs(u.Fragment,{children:[u.jsx(mh,{label:dn.VALIDATE,landedSuccess:i.validating,landedFailed:o.validating,unlanded:r.validating,max:a}),u.jsx(mh,{label:dn.LOADING,landedSuccess:i.loading,landedFailed:o.loading,unlanded:r.loading,max:a})]}),u.jsx(mh,{label:"Execute",landedSuccess:i.execute,landedFailed:o.execute,unlanded:r.execute,max:a}),u.jsx(mh,{label:"Post-Execute",landedSuccess:i.postExecute,landedFailed:o.postExecute,unlanded:r.postExecute,max:a}),u.jsx(mh,{label:"Total",landedSuccess:i.total,landedFailed:o.total,unlanded:r.total,max:a,isTotal:!0})]})})}function mh({label:e,landedSuccess:t,landedFailed:n,unlanded:r,max:i,isTotal:o}){const a=o?"#28684A":"#174933",s=o?"#8C333A":"#611623",l=o?"#12677E":"#004558",c=Ha(t),d=Ha(n),f=Ha(r);return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:Te(at.tableRowLabel,o&&at.total),children:e}),u.jsxs(Z,{className:Te(at.tableCellValue,o&&at.total),align:"right",children:[c.value,u.jsx(Za,{children:c.unit})]}),u.jsx(WS,{value:t,total:i,valueColor:a}),u.jsxs(Z,{className:Te(at.tableCellValue,o&&at.total),align:"right",children:[d.value,u.jsx(Za,{children:d.unit})]}),u.jsx(WS,{value:n,total:i,valueColor:s}),u.jsxs(Z,{className:Te(at.tableCellValue,o&&at.total),align:"right",children:[f.value,u.jsx(Za,{children:f.unit})]}),u.jsx(WS,{value:r,total:i,valueColor:l})]})}function oxt(){var i;const e=J(Cn),t=(i=pl(e).response)==null?void 0:i.transactions,n=m.useMemo(()=>{if(!t)return;const{vote:o,nonVote:a,bundle:s}={vote:{count:0,total:0,min:1/0,max:-1/0},nonVote:{count:0,total:0,min:1/0,max:-1/0},bundle:{count:0,total:0,min:1/0,max:-1/0}};for(let l=0;lNumber(p)));t.txn_is_simple_vote[l]?(o.total+=f,o.count++,o.min=Math.min(o.min,f),o.max=Math.max(o.max,f)):(a.total+=f,a.count++,a.min=Math.min(a.min,f),a.max=Math.max(a.max,f)),t.txn_from_bundle[l]&&(s.total+=f,s.count++,s.min=Math.min(s.min,f),s.max=Math.max(s.max,f))}return{vote:o.total/o.count,nonVote:a.total/a.count,bundle:s.total/s.count,voteMin:o.min,voteMax:o.max,nonVoteMin:a.min,nonVoteMax:a.max,bundleMin:s.min,bundleMax:s.max}},[t]);if(!n)return;const r=Math.max(n.voteMax,n.nonVoteMax,n.bundleMax);return u.jsx(Oi,{title:"Execution Time (min / avg / max)",children:u.jsxs(qr,{columns:"repeat(7, auto)",gapX:xl,gapY:Nd,children:[u.jsx(XP,{label:"Vote",value:n.vote,color:hd,max:r,minValue:n.voteMin,maxValue:n.voteMax}),u.jsx(XP,{label:"Non-vote",value:n.nonVote,color:Hf,max:r,minValue:n.nonVoteMin,maxValue:n.nonVoteMax}),u.jsx(XP,{label:"Bundle",value:n.bundle,color:"var(--purple-9)",max:r,minValue:n.bundleMin,maxValue:n.bundleMax})]})})}const bpe=4,VS=`${bpe}px`;function KP(e){return`clamp(0px, calc(${e}% - ${bpe/2}px), calc(100% - ${VS}))`}function XP({label:e,value:t,max:n,minValue:r,maxValue:i}){const o=isFinite(t)&&isFinite(r)&&isFinite(i),a=o?t/n*100:0,s=o?r/n*100:0,l=o?i/n*100:0,c=o?Ha(t):null,d=o?Ha(r):null,f=o?Ha(i):null;return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:at.label,children:e}),u.jsx(Z,{className:at.value,style:{color:"#6E56CF"},align:"right",children:d?u.jsxs(u.Fragment,{children:[d.value,u.jsx(Za,{children:d.unit})]}):"-"}),u.jsx(Z,{className:at.value,children:"/"}),u.jsx(Z,{className:at.value,style:{color:"#BAA7FF"},align:"right",children:c?u.jsxs(u.Fragment,{children:[c.value,u.jsx(Za,{children:c.unit})]}):"-"}),u.jsx(Z,{className:at.value,children:"/"}),u.jsx(Z,{className:at.value,style:{color:"#6E56CF"},align:"right",children:f?u.jsxs(u.Fragment,{children:[f.value,u.jsx(Za,{children:f.unit})]}):"-"}),u.jsxs("svg",{height:"13",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center",width:"100%"},children:[u.jsx("rect",{height:"10%",y:"45%",width:"100%",opacity:.6,fill:"#313131"}),u.jsx("rect",{height:"80%",y:"10%",x:KP(s),width:VS,fill:"#56468B"}),u.jsx("rect",{height:"80%",y:"10%",x:KP(l),width:VS,fill:"#56468B"}),u.jsx("rect",{height:"80%",y:"10%",x:KP(a),width:VS,fill:"#BAA7FF"})]})]})}function axt(){return u.jsxs(ZP,{title:"Compute",flexGrow:"2",children:[u.jsx(nxt,{}),u.jsx(txt,{}),u.jsx(rxt,{}),u.jsx(ixt,{}),u.jsx(oxt,{})]})}function Ls(e,t=Bo,n){if(!e)return"0";const r=Number(e)/dd;return r<1?r.toFixed(t):z$(r,n??{useSuffix:!0,significantDigits:4,trailingZeroes:!1,decimalsOnZero:!1})}const JP=1e8;function sxt(){const e=J(Cn),t=pl(e),n=m.useMemo(()=>{var f;const a=(f=t==null?void 0:t.response)==null?void 0:f.transactions;if(!a)return;const{tips:s,fees:l}=a.txn_transaction_fee.reduce((p,v,x)=>(p.fees+=Number(VN(a,x)),p.tips+=Number(HN(a,x)),p),{tips:0,fees:0}),c=s+l,d=s*.06;return{tips:s,fees:l,maxValue:c>JP?c+d:JP}},[t]);if(!n)return;const{tips:r,fees:i,maxValue:o}=n;return u.jsx(Oi,{title:"Fee Breakdown",children:u.jsxs(qr,{columns:"repeat(3, auto)",gapX:xl,gapY:Nd,children:[u.jsx(lxt,{label:"Tips",value:r,total:o,color:qf}),u.jsx(uxt,{label:"Fees",value:i,total:o,color:kg}),u.jsx(cxt,{tips:r,fees:i})]})})}function lxt({label:e,value:t,total:n,color:r}){const i=n>0?t/n*100:0,o=t*.06,a=n>0?o/n*100:0;return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:at.label,children:e}),u.jsx(Z,{className:at.value,style:{color:r},align:"right",children:`${Ls(t??0n,Bo,{decimals:Bo,trailingZeroes:!0})} SOL`}),u.jsxs(W,{children:[u.jsxs("svg",{height:"8",width:`${i+a}%`,fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[u.jsx("rect",{height:"8",width:`${100/106*100}%`,opacity:.6,fill:r}),u.jsx("rect",{height:"8",x:`${100/106*100}%`,width:`${6/106*100}%`,opacity:.6,fill:"#FFC53D"})]}),u.jsx(Z,{className:at.label,style:{marginLeft:xl},children:"Commission\xA0"}),u.jsxs(Z,{className:at.value,style:{color:"#FFC53D"},children:["-",`${Ls(o??0n,Bo,{decimals:Bo,trailingZeroes:!0})} SOL`]})]})]})}function uxt({label:e,value:t,total:n,color:r}){const i=n>0?t/n*100:0;return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:at.label,children:e}),u.jsx(Z,{className:at.value,style:{color:r},align:"right",children:`${Ls(t??0n,Bo,{decimals:Bo,trailingZeroes:!0})} SOL`}),u.jsx("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:u.jsx("rect",{height:"8",width:`${i}%`,opacity:.6,fill:r})})]})}function cxt({tips:e,fees:t}){const n=e+t,r=Math.max(JP,n),i=n/r*100,o=e/r*100,a=t/r*100;return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:at.label,children:"Income"}),u.jsx(Z,{className:at.value,style:{color:wp},align:"right",children:`${Ls(n,Bo,{decimals:Bo,trailingZeroes:!0})} SOL`}),u.jsxs("svg",{height:"10",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[u.jsx("rect",{height:"100%",width:`${o}%`,opacity:.6,fill:qf}),u.jsx("rect",{height:"100%",x:`${o}%`,width:`${a}%`,opacity:.6,fill:kg}),u.jsx("rect",{height:"100%",x:`${o}%`,width:1,opacity:.6,fill:"black"}),u.jsx("rect",{height:"9",width:`${i}%`,x:.5,y:.5,opacity:1,stroke:wp,strokeWidth:1})]})]})}const dxt="_container_1w2fb_1",fxt="_label_1w2fb_5",hxt="_clickable_1w2fb_12",QP={container:dxt,label:fxt,clickable:hxt},xpe=["#003362","#113B29","#3F2700","#202248","#33255B"],eO=5e3;function HS({data:e,showPct:t,sort:n,onItemClick:r}){const i=e.reduce((s,{value:l})=>s+l,0);let o=n?e.toSorted((s,l)=>l.value-s.value):e,a=0;if(o.length>eO){for(let s=eO;su.jsx(W,{width:`${l}px`,height:`${s}px`,children:o.map(({value:c,label:d},f)=>{const p=xpe[f%xpe.length],v=c/i,x=v*100,y=x>1?`${Math.round(x)}%`:`${x.toFixed(2)}%`,b=v*l>30;return u.jsx(ci,{content:u.jsxs(u.Fragment,{children:[u.jsx(Z,{weight:"bold",children:d}),u.jsx("br",{}),u.jsx(Z,{children:`Income: ${Ls(c,Fte)} SOL (${y})`})]}),side:"bottom",disableHoverableContent:!0,children:r?u.jsx(W,{asChild:!0,className:QP.clickable,minWidth:"0",align:"center",justify:"center",flexBasis:"0",style:{background:p,flexGrow:c},children:u.jsx("button",{"aria-label":`Filter by ${d} (${y})`,onClick:()=>r({label:d,value:c}),children:b&&u.jsx(_pe,{label:d,showPct:t,formattedPct:y})})}):u.jsx(W,{minWidth:"0",align:"center",justify:"center",flexBasis:"0",style:{background:p,flexGrow:c},children:b&&u.jsx(_pe,{label:d,showPct:t,formattedPct:y})})},d)})})})})}function _pe({label:e,showPct:t,formattedPct:n}){return u.jsxs(Z,{mx:"2",className:QP.label,truncate:!0,children:[e,t&&` ${n}`]})}function pxt({transactions:e}){const{triggerControl:t,resetAllControls:n}=m.useContext(N1),r=m.useMemo(()=>{const o=e.txn_signature.map((a,s)=>({value:Number(md(e,s)),label:a}));return Object.values(rt.groupBy(o,({label:a})=>a)).map(a=>({label:a[0].label,value:rt.sum(a.map(({value:s})=>s))}))},[e]),i=m.useCallback(({label:o})=>{n([m_]),t(m_,{mode:Mn.TxnSignature,text:o})},[n,t]);return u.jsx(Oi,{title:"Income Distribution by Txn",children:u.jsx(HS,{data:r,sort:!0,onItemClick:i})})}function mxt({transactions:e}){const{triggerControl:t,resetAllControls:n}=m.useContext(N1),r=m.useMemo(()=>{const o=e.txn_source_ipv4.map((a,s)=>({value:Number(md(e,s)),label:a}));return Object.values(rt.groupBy(o,({label:a})=>a)).map(a=>({label:a[0].label,value:rt.sum(a.map(({value:s})=>s))}))},[e]),i=m.useCallback(({label:o})=>{n([m_]),t(m_,{mode:Mn.Ip,text:o})},[n,t]);return u.jsx(Oi,{title:"Income Distribution by IP Address",children:u.jsx(HS,{data:r,sort:!0,onItemClick:i})})}const tO="Bundle";function gxt({transactions:e}){const{triggerControl:t,resetAllControls:n}=m.useContext(N1),r=Ee(Rs),i=m.useMemo(()=>{const a=e.txn_from_bundle.map((s,l)=>({value:Number(md(e,l)),label:s?tO:"Other"}));return Object.values(rt.groupBy(a,({label:s})=>s)).map(s=>({label:s[0].label,value:rt.sum(s.map(({value:l})=>l))})).sort((s,l)=>s.label===tO?-1:1)},[e]),o=m.useCallback(({label:a})=>{n([OP]),t(OP,a===tO?"Yes":"No"),r(s=>{s.setScale(Vt,{min:s.data[0][0],max:s.data[0][s.data[0].length-1]})})},[n,t,r]);return u.jsx(Oi,{title:"Income Distribution by Bundle",children:u.jsx(HS,{data:i,showPct:!0,onItemClick:o})})}function vxt(e,t=[1,10]){const n=e.length;if(n===0)return;e=e.toSorted((c,d)=>d-c);const r=new Array(n+1);r[0]=0;for(let c=0;crt.clamp(c,0,100)))).sort((c,d)=>c-d),a=c=>c<=0?0:c>=100?n:rt.clamp(Math.ceil(c/100*n),0,n),s={},l=[0,...o,100];for(let c=1;cNumber(md(e,i)),[]),n=vxt(t);if(n!==void 0)return Object.entries(n).map(([r,i])=>({value:i,label:r}))}function bxt({transactions:e}){const t=m.useMemo(()=>yxt(e),[e]);if(t)return u.jsx(Oi,{title:"Income Distribution by Percent Txns",children:u.jsx(HS,{data:t})})}function xxt(){var n;const e=J(Cn),t=(n=pl(e).response)==null?void 0:n.transactions;if(t)return u.jsxs(u.Fragment,{children:[u.jsx(bxt,{transactions:t}),u.jsx(gxt,{transactions:t}),u.jsx(pxt,{transactions:t}),u.jsx(mxt,{transactions:t})]})}function _xt(e,t){const n=parseInt(e.substring(1,3),16),r=parseInt(e.substring(3,5),16),i=parseInt(e.substring(5,7),16);return`rgba(${n}, ${r}, ${i}, ${t})`}const wxt=(ype+2)**2;function kxt(e,t,n,r){function i(a){const{left:s,top:l}=a.cursor;if(s==null||l==null)return null;const c=a.data[0],d=a.data[1];let f=null,p=1/0;for(let v=0;v({width:0,height:0,padding:[10,15,0,15],scales:{[ZS]:{time:!1,distr:n?3:void 0},[Td]:{time:!1,distr:3}},axes:[{scale:ZS,border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{show:!1},values:(f,p)=>p.map(v=>{if(r){const{scaledToX:x,negMin:y,posMax:b}=r;return Math.round(x(v,y,b)).toLocaleString()}return v&&Rie.format(v)}),size:20,gap:0,font:"8px Inter Tight"},{scale:Td,stroke:sr,grid:{show:!1},border:{show:!0,width:1/devicePixelRatio,stroke:sr},show:!1}],series:[{scale:ZS},{scale:Td,stroke:void 0,points:{show:!0,size:ype*2,fill:_xt(wp,.3),space:0}}],legend:{show:!1},hooks:{draw:[f=>{var p;f.ctx.save(),f.ctx.fillStyle=sr,f.ctx.font="18px Inter Tight",f.ctx.textAlign="left",f.ctx.fillText(`${(((p=f.scales[Td])==null?void 0:p.max)??0)/dd} SOL`,0,0),f.ctx.restore()}]},plugins:[kxt(s,ZS,Td,c)]}),[s,n,r]);return u.jsxs(u.Fragment,{children:[u.jsx(Mt,{flexGrow:"1",children:u.jsx($s,{children:({height:f,width:p})=>(d.width=p,d.height=f,u.jsx(Pp,{id:t,options:d,data:e}))})}),u.jsx(Sxt,{elId:s,data:l,xLabel:i,xColor:o,tooltipFormatX:a})]})}function Cxt(e){return e==null?void 0:e.txn_compute_units_consumed.map((t,n)=>({cu:t,i:n})).sort((t,n)=>t.cu-n.cu).reduce((t,{cu:n,i:r})=>{const i=Number(md(e,r));return!i||!n||(t[0].push(n),t[1].push(i)),t},[[],[]])}function jxt(e,t,n){return e<=0?.5*(e-t)/-t:.5+.5*(e/n)}function kpe(e,t,n){return e<=.5?t+e/.5*-t:(e-.5)/.5*n}function Txt(e){if(!e)return;const t=e.txn_arrival_timestamps_nanos.map((i,o)=>({tsNanos:i,i:o})).sort((i,o)=>Number(i.tsNanos-o.tsNanos)).reduce((i,{tsNanos:o,i:a})=>{const s=Number(o-e.start_timestamp_nanos)/1e6,l=Number(md(e,a));return l&&(i[0].push(s),i[1].push(l??0)),i},[[],[]]),n=t[0][0],r=t[0][t[0].length-1];return t[0]=t[0].map(i=>jxt(i,n,r)),{min:n,max:r,chartData:t}}function Ixt(){var a,s;const e=J(Cn),t=(a=pl(e).response)==null?void 0:a.transactions,n=pl(e),r=m.useMemo(()=>Cxt(t),[t]),i=m.useMemo(()=>Txt(t),[t]),o=m.useMemo(()=>{if(i)return{scaledToX:kpe,negMin:i.min,posMax:i.max}},[i]);if(!(!((s=n.response)!=null&&s.transactions)||!r||!i))return u.jsxs(W,{flexGrow:"1",minWidth:"300px",minHeight:"150px",gap:Qbt,children:[u.jsx(Oi,{title:"Compute Units vs Income",flexGrow:"1",children:u.jsx(wpe,{id:"cuIncomeScatterChart",data:r,xLogScale:!0,xLabel:"CU",xColor:pd,formatX:l=>Rie.format(l)})}),u.jsx(Oi,{title:"Arrival Time vs Income",flexGrow:"1",children:u.jsx(wpe,{id:"arrivalIncomeScatterChart",data:i.chartData,xScaleOptions:o,xLabel:"Arrival",formatX:l=>`${Math.round(kpe(l,i.min,i.max)).toLocaleString()}ms`})})]})}function Ext(){return u.jsxs(ZP,{title:"Fees",flexGrow:"2",children:[u.jsx(sxt,{}),u.jsx(xxt,{}),u.jsx(Ixt,{})]})}function Nxt(e){function t(n,r,i){return e(i),!0}return i_({elId:Wfe,showOnCursor:t})}const M1=new Map,Spe=e=>{const t=M1.get(e);if(!t||t.pendingSync!==null)return;const n=Math.max(0,...t.naturalSizes.values());n!==t.maxSize&&(t.maxSize=n,t.pendingSync=requestAnimationFrame(()=>{for(const r of t.charts.values())r.redraw(!1,!0);t.pendingSync=null}))};function $xt(e,t,n=1){return{opts:(r,i)=>{var s;const o=(s=i.axes)==null?void 0:s[n];if(!o)return;const a=o.size;o.size=(l,c,d,f)=>{const p=typeof a=="function"?a(l,c,d,f):a??Jae(l.axes[d]),v=M1.get(t);return v?(v.naturalSizes.set(e,p),Math.max(p,v.maxSize)):p}},hooks:{ready:r=>{const i=M1.get(t);i?i.charts.set(e,r):M1.set(t,{charts:new Map([[e,r]]),naturalSizes:new Map,maxSize:0,pendingSync:null})},destroy:r=>{const i=M1.get(t);i&&i.charts.get(e)===r&&(i.charts.delete(e),i.naturalSizes.delete(e),i.charts.size===0?(i.pendingSync!==null&&cancelAnimationFrame(i.pendingSync),M1.delete(t)):Spe(t))},draw:r=>Spe(t)}}}function Mxt({data:e,formatBucketRange:t}){return u.jsx(o_,{elId:Wfe,children:e&&u.jsxs(qr,{columns:"auto auto",gapX:"2",children:[u.jsx($d,{label:"Duration",value:t(e.bucketIdx)}),u.jsx($d,{label:"Avg CUs",value:e.cuYVal?Math.round(e.cuYVal).toLocaleString():"0",color:pd}),u.jsx($d,{label:"Count",value:e.countYVal?e.countYVal.toLocaleString():"0"})]})})}const qS=20,Cpe=Array.from({length:qS},(e,t)=>t),Rxt=(e,t)=>Math.trunc(e/t*qS),nO=(e,t)=>e/qS*t,GS="8px Inter Tight",Lxt="#3C2E69",rO=1,Pxt=((Yme=(hC=jn.paths)==null?void 0:hC.bars)==null?void 0:Yme.call(hC,{size:[.8]}))??(()=>({stroke:new Path2D,fill:new Path2D})),jpe={cuData:[[],[]],countData:[[],[]],maxDuration:0},iO=(e,t)=>{const{value:n,unit:r}=Ha(e,!1,t);return`${n} ${r}`};function Oxt(){var c;const e=J(Cn),t=(c=pl(e).response)==null?void 0:c.transactions,[n,r]=m.useState(),{cuData:i,countData:o,maxDuration:a}=m.useMemo(()=>{if(!t)return jpe;const d=t.txn_landed.map((y,b)=>({duration:Number(t.txn_mb_end_timestamps_nanos[b]-t.txn_mb_start_timestamps_nanos[b]),cu:t.txn_compute_units_consumed[b]})).filter(({duration:y})=>y>0);if(d.length===0)return jpe;const f=Eb(d.map(({duration:y})=>y))+1,p=Array.from({length:qS},()=>({count:0,cus:0}));for(const{duration:y,cu:b}of d){const w=Rxt(y,f);p[w].count++,p[w].cus+=b}const v=p.map(({count:y})=>y),x=p.map(({count:y,cus:b})=>y?b/y:0);return{countData:[Cpe,v],cuData:[Cpe,x],maxDuration:f}},[t]),s=m.useCallback(d=>`${iO(nO(d,a),2)} - ${iO(nO(d+1,a),2)}`,[a]),l=m.useMemo(()=>n!==void 0?{bucketIdx:n,cuYVal:i[rO][n],countYVal:o[rO][n]}:void 0,[o,i,n]);if(t)return u.jsxs(u.Fragment,{children:[u.jsx(Oi,{title:"CUs vs Txn Execution Duration",minWidth:"200px",minHeight:"100px",flexGrow:"1",children:u.jsx(Tpe,{data:i,id:"txnExecutionDurationCu",maxDuration:a,setTooltipDataIdx:r})}),u.jsx(Oi,{title:"Transaction Count vs Txn Execution Duration",minWidth:"200px",minHeight:"100px",flexGrow:"1",children:u.jsx(Tpe,{data:o,id:"txnExecutionDurationCount",log:!0,maxDuration:a,setTooltipDataIdx:r})}),u.jsx(Mxt,{data:l,formatBucketRange:s})]})}function Tpe({data:e,log:t,id:n,maxDuration:r,setTooltipDataIdx:i}){const o=m.useMemo(()=>t?[e[0],e[rO].map(l=>Math.log((l??0)+1))]:e,[e,t]),a=Math.max(0,e[0].length-1),s=m.useMemo(()=>({width:0,height:0,cursor:{sync:{key:Wgt}},scales:{duration:{time:!1},y:{auto:!0,range:(l,c,d)=>t?[0,Math.max(d,Math.log(3))]:[0,Math.max(d,2)]}},series:[{scale:"duration"},{label:"Count",points:{show:!1},fill:Lxt,paths:Pxt}],axes:[{scale:"duration",splits:[0,a],values:(l,c)=>c.map(d=>iO(nO(d,r))),label:"Txn Execution Duration",stroke:sr,grid:{show:!1},size:10,gap:0,font:GS,labelFont:GS,labelGap:0,labelSize:10},{stroke:sr,splits:(l,c,d,f)=>[d,(d+f)/2,f],values:(l,c)=>(t?c.map(d=>Math.round(Math.exp(d)-1)):c.map(Math.round)).map(d=>d.toLocaleString()),gap:0,font:GS,size(l,c,d,f){var b,w;const p=l.axes[d];if(f>1)return Jae(p);const v=(((b=p.ticks)==null?void 0:b.size)??0)+(p.gap??0),x=(c??[]).reduce((_,S)=>S.length>_.length?S:_,"");if(x==="")return Math.ceil(v);l.ctx.font=((w=p.font)==null?void 0:w[0])??GS;const y=l.ctx.measureText(x).width/devicePixelRatio;return Math.ceil(v+y)}}],legend:{show:!1},plugins:[Nxt(i),dP({minRange:0}),$xt(n,"txnExecutionDurationYAxis")]}),[a,i,n,t,r]);return u.jsx(Mt,{flexGrow:"1",children:u.jsx($s,{children:({height:l,width:c})=>(s.width=c,s.height=l,u.jsx(Pp,{id:n,options:s,data:o}))})})}function zxt(){var a;const e=J(Eg),t=J(Cn),n=J(ao),r=(a=tc(t).response)==null?void 0:a.scheduler_stats,i=m.useMemo(()=>{if(t===void 0||!n)return;const s=_i(t),l=n.indexOf(s)-1;if(!(l<0))return n[l]+$n-1},[n,t]);if(t===void 0)return;const o=i?fn.fromMillis(e*(t-i)).rescale():void 0;return u.jsx(Oi,{title:"Scheduler",children:u.jsxs(W,{direction:"column",gap:Nd,children:[u.jsxs(W,{gap:xl,children:[u.jsx(Z,{className:at.label,children:"Time Since Last Leader Group"}),u.jsx(Z,{className:at.value,children:kp(o)})]}),Vi&&u.jsxs(W,{gap:xl,children:[u.jsx(Z,{className:at.label,children:"End slot reason"}),u.jsx(Z,{className:at.value,children:r==null?void 0:r.end_slot_reason})]})]})})}function Dxt(){const e=J(Nb),{queryIdleData:t}=HM();return u.jsx(Oi,{title:"CPU Utilization",children:u.jsxs(W,{direction:"column",gap:"5px",children:[u.jsx(Wa,{header:"pack",tileCount:e.pack,queryIdlePerTile:t==null?void 0:t.pack,statLabel:"Full",metricType:"pack",isDark:!0,isNarrow:!0}),u.jsx(Wa,{header:To.bank,tileCount:e[To.bank],queryIdlePerTile:t==null?void 0:t[To.bank],statLabel:"TPS",metricType:"bank",isDark:!0,isNarrow:!0})]})})}function Axt(e){function t(n,r,i){return e(i),!0}return i_({elId:"pack-buffer-chart-tooltip",showOnCursor:t})}function Fxt({data:e}){return u.jsx(o_,{elId:"pack-buffer-chart-tooltip",children:e&&u.jsxs(qr,{columns:"auto auto",gapX:"2",children:[u.jsx($d,{label:"Regular",value:e.regular.toLocaleString(),color:Hf}),u.jsx($d,{label:"Votes",value:e.votes.toLocaleString(),color:hd}),u.jsx($d,{label:"Conflicting",value:e.conflicting.toLocaleString(),color:gk}),u.jsx($d,{label:"Bundles",value:e.bundles.toLocaleString(),color:qf})]})})}const oO="packX",R1="packTxnsY";function Uxt(){var l;const e=J(Cn),t=tc(e).response,[n,r]=m.useState(),i=t==null?void 0:t.scheduler_counts,o=m.useMemo(()=>{var f;const c=(f=t==null?void 0:t.transactions)==null?void 0:f.start_timestamp_nanos;if(!i||!c)return;const d=[[],[],[],[],[]];for(let p=0;p({width:0,height:0,padding:[0,0,0,0],drawOrder:["axes","series"],cursor:{},scales:{[oO]:{time:!1},[R1]:{}},axes:[{scale:oO,border:{show:!0,width:1/devicePixelRatio},stroke:sr,grid:{width:1/devicePixelRatio},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},values:(c,d)=>d.map(f=>f/1e6+"ms"),space:100,size:20,font:"8px Inter Tight"},{scale:R1,border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{width:1/devicePixelRatio},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},space:50,font:"8px Inter Tight",size(c,d,f,p){var b,w;const v=c.axes[f];if(p>1)return v._size;let x=((b=v.ticks)==null?void 0:b.size)??0+(v.gap??0);x+=5;const y=(d??[]).reduce((_,S)=>S.length>_.length?S:_,"");return y!==""&&(c.ctx.font=((w=v.font)==null?void 0:w[0])??"Inter Tight",x+=c.ctx.measureText(y).width/devicePixelRatio),Math.ceil(x)}}],series:[{scale:oO},{label:"Regular",stroke:Hf,points:{show:!1},width:2/devicePixelRatio,scale:R1},{label:"Votes",stroke:hd,points:{show:!1},width:2/devicePixelRatio,scale:R1},{label:"Conflicting",stroke:gk,points:{show:!1},width:2/devicePixelRatio,scale:R1},{label:"Bundles",stroke:qf,points:{show:!1},width:2/devicePixelRatio,scale:R1}],legend:{show:!1},plugins:[rP(),uP({factor:.75}),Axt(r),mP()]}),[]);if(!o)return;const s=n!==void 0?i==null?void 0:i[n]:void 0;return u.jsxs(Oi,{title:"Pack Txns Buffer Utilization",flexGrow:"1",minWidth:"150px",minHeight:"150px",children:[u.jsx(Mt,{height:"100%",children:u.jsx($s,{children:({height:c,width:d})=>(a.width=d,a.height=c,u.jsx(u.Fragment,{children:u.jsx(Pp,{id:"packBufferChart",options:a,data:o})}))})}),u.jsx(Fxt,{data:s})]})}function Bxt(){var n;const e=J(Cn),t=(n=Is(e).publish)==null?void 0:n.duration_nanos;return u.jsx(Oi,{title:"Slot Duration",children:u.jsxs(W,{gap:xl,children:[u.jsx(Z,{className:at.label,children:"Actual"}),t!=null&&u.jsx(Z,{className:at.value,children:`${(t/1e6).toFixed(2)}ms`})]})})}const Wxt=["success","fail_cu_limit","fail_fast_path","fail_byte_limit","fail_alloc_limit","fail_write_cost","fail_slow_path","fail_defer_skip"];function Vxt(){var l,c,d;const e=J(Cn),t=(l=tc(e).response)==null?void 0:l.scheduler_stats;if(!t)return;const{slot_schedule_counts:n,end_slot_schedule_counts:r,pending_smallest_bytes:i,pending_smallest_cost:o,pending_vote_smallest_bytes:a,pending_vote_smallest_cost:s}=t;return u.jsxs(u.Fragment,{children:[u.jsx(Oi,{title:"Txn Schedule Outcomes",children:u.jsxs(qr,{columns:"repeat(3, 1fr)",gapX:xl,gapY:Nd,children:[u.jsx(Z,{className:at.label,children:"Outcome"}),u.jsx(Z,{className:at.tableHeader,align:"right",children:"Txn Count"}),u.jsx(Z,{className:at.tableHeader,align:"right",children:"Txn Count (End)"}),n.map((f,p)=>{const v=Wxt[p];return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:at.label,children:v}),u.jsx(Z,{className:at.value,align:"right",children:f.toLocaleString()}),u.jsx(Z,{className:at.value,align:"right",children:r[p].toLocaleString()})]},v)})]})}),u.jsx(Oi,{title:"Smallest Pending Txn",children:u.jsxs(qr,{columns:"repeat(3, 1fr)",gapX:xl,gapY:Nd,children:[u.jsx("div",{}),u.jsx(Z,{className:at.tableHeader,align:"right",children:"CU Cost"}),u.jsx(Z,{className:at.tableHeader,align:"right",children:"Size"}),u.jsx(Z,{className:at.label,children:"Non-vote"}),u.jsx(Z,{className:at.value,align:"right",children:(o==null?void 0:o.toLocaleString())??0}),u.jsx(Z,{className:at.value,align:"right",children:i!=null?(c=Sp(i))==null?void 0:c.toString():0}),u.jsx(Z,{className:at.label,children:"Vote"}),u.jsx(Z,{className:at.value,align:"right",children:(s==null?void 0:s.toLocaleString())??0}),u.jsx(Z,{className:at.value,align:"right",children:a!=null?(d=Sp(a))==null?void 0:d.toString():0})]})})]})}function Hxt(){return u.jsx(ZP,{title:"Performance",flexGrow:"3",children:u.jsxs(W,{direction:{sm:"row",initial:"column"},gapX:vpe,gapY:BS,flexGrow:"1",children:[u.jsxs(W,{direction:"column",gap:BS,flexBasis:"0",flexGrow:"1",children:[u.jsx(zxt,{}),u.jsx(Vxt,{}),u.jsx(Uxt,{})]}),u.jsxs(W,{direction:"column",gap:BS,flexBasis:"0",flexGrow:"1",children:[u.jsx(Bxt,{}),u.jsx(Oxt,{}),u.jsx(Dxt,{})]})]})})}const Zxt="_container_id19r_1",qxt="_label_id19r_6",Gxt="_value_id19r_10",Yxt="_popover-trigger_id19r_15",Kxt="_popover-underline-overlay_id19r_23",Xxt="_popover-text-underline_id19r_27",_l={container:Zxt,label:qxt,value:Gxt,popoverTrigger:Yxt,popoverUnderlineOverlay:Kxt,popoverTextUnderline:Xxt},Jxt=Intl.DateTimeFormat().resolvedOptions().timeZone;function aO({nanoTs:e,lines:t,textClassName:n,triggerClassName:r}){const i=m.useMemo(()=>tre(e),[e]),o=tpe(i),a=m.useMemo(()=>{const s=kk(e,{timezone:"local",showTimezoneName:!1}),l=kk(e,{timezone:"utc",showTimezoneName:!1});return{local:s.inNanos,utc:l.inNanos,ts:e.toString()}},[e]);return u.jsx(zg,{content:u.jsxs(qr,{columns:"max-content max-content",gapX:"10px",gapY:"5px",rows:"4",className:_l.container,children:[u.jsx(Z,{className:_l.label,children:Jxt}),u.jsx(Za,{className:_l.value,children:a.local}),u.jsx(Z,{className:_l.label,children:"UTC"}),u.jsx(Za,{className:_l.value,children:a.utc}),u.jsx(Z,{className:_l.label,children:"Relative"}),u.jsx(Za,{className:_l.value,children:o}),u.jsx(Z,{className:_l.label,children:"Timestamp"}),u.jsx(Za,{className:_l.value,children:a.ts})]}),align:"start",children:u.jsx(hs,{variant:"ghost",className:Te(_l.popoverTrigger,r),children:u.jsxs(W,{minWidth:"0",position:"relative",children:[u.jsx(W,{direction:"column",minWidth:"0",width:"100%",children:t.map((s,l)=>u.jsx(Z,{truncate:!0,className:n,children:s},l))}),u.jsx(W,{direction:"column","aria-hidden":"true",className:_l.popoverUnderlineOverlay,children:t.map((s,l)=>u.jsx(Z,{truncate:!0,className:Te(n,_l.popoverTextUnderline),children:s},l))})]})})})}const gh="5px";function Qxt(){var c,d,f,p;const e=J(Cn),{countryCode:t,countryFlag:n,cityName:r}=ma(e??0),i=J(fi),o=Is(e).publish,a=Hn("(min-width: 1420px)"),s=Hn("(min-width: 600px)"),l=m.useMemo(()=>a?"minmax(300px, max-content) minmax(228px, max-content) minmax(200px, max-content) minmax(150px, max-content) minmax(160px, max-content)":s?"minmax(0px, max-content) 1fr":"1",[a,s]);return e===void 0?null:u.jsxs(qr,{className:at.grid,align:a?"center":"start",justify:"between",columns:l,gapX:a?"12px":"30px",gapY:gh,children:[u.jsx(e_t,{slot:e,isLgScreen:a}),u.jsxs(W,{direction:"column",gap:gh,children:[u.jsx(vh,{label:"City",value:r&&t?`${r}, ${t}`:"Unknown",icon:n,vertical:!a}),u.jsx(vh,{label:"Epoch",value:i==null?void 0:i.epoch,vertical:!a})]}),a?u.jsxs(W,{direction:"column",gapX:gh,gapY:gh,children:[u.jsx(Epe,{slotCompletedTimeNanos:o==null?void 0:o.completed_time_nanos}),u.jsx(Npe,{slot:e})]}):u.jsxs(u.Fragment,{children:[u.jsx(Epe,{slotCompletedTimeNanos:o==null?void 0:o.completed_time_nanos,vertical:!0}),u.jsx(Npe,{slot:e,vertical:!0})]}),u.jsxs(W,{direction:"column",gap:gh,children:[u.jsx(vh,{label:"Votes",value:(c=o==null?void 0:o.success_vote_transaction_cnt)==null?void 0:c.toLocaleString()}),u.jsx(vh,{label:"Vote Failures",value:(d=o==null?void 0:o.failed_vote_transaction_cnt)==null?void 0:d.toLocaleString()})]}),u.jsxs(W,{direction:"column",gap:gh,children:[u.jsx(vh,{label:"Non-votes",value:(f=o==null?void 0:o.success_nonvote_transaction_cnt)==null?void 0:f.toLocaleString()}),u.jsx(vh,{label:"Non-vote Failures",value:(p=o==null?void 0:o.failed_nonvote_transaction_cnt)==null?void 0:p.toLocaleString()})]})]})}function vh({label:e,value:t,popoverDropdown:n,icon:r,vertical:i=!1,allowCopy:o=!1}){return u.jsxs(W,{gapX:"2",direction:i?"column":"row",children:[u.jsx(Za,{className:at.label,children:e}),n===void 0?u.jsx(Dg,{className:at.copyButton,size:14,value:o?t==null?void 0:t.toString():void 0,hideIconUntilHover:!0,children:u.jsxs(Za,{truncate:!0,className:at.value,children:[t,r&&` ${r}`]})}):n]})}function e_t({slot:e,isLgScreen:t}){var a,s;const{peer:n,isLeader:r,name:i,pubkey:o}=ma(e??0);return t?u.jsxs(W,{gapX:"10px",align:"center",children:[u.jsx(ks,{url:(a=n==null?void 0:n.info)==null?void 0:a.icon_url,size:42,isYou:r}),u.jsxs(W,{direction:"column",gapY:"1px",minWidth:"0",children:[u.jsx(qk,{content:i,children:u.jsx(Z,{truncate:!0,className:Te(at.name,at.lg),children:i})}),u.jsx(Ipe,{slot:e,pubkey:o})]})]}):u.jsxs(W,{direction:"column",children:[u.jsxs(W,{gapX:gh,align:"center",children:[u.jsx(ks,{url:(s=n==null?void 0:n.info)==null?void 0:s.icon_url,size:15,isYou:r}),u.jsx(qk,{content:i,children:u.jsx(Z,{truncate:!0,className:at.name,children:i})})]}),u.jsx(Ipe,{slot:e,pubkey:o})]})}function Ipe({slot:e,pubkey:t}){return u.jsxs(W,{gapX:gh,align:"center",children:[u.jsx(Dg,{className:at.copyButton,size:14,value:t,hideIconUntilHover:!0,children:u.jsx(Za,{truncate:!0,className:at.value,children:t})}),u.jsx(Px,{slot:e,size:"large"})]})}function Epe({vertical:e=!1,slotCompletedTimeNanos:t}){const n=m.useMemo(()=>{if(t!=null)return kk(t)},[t]);return u.jsx(vh,{label:"Slot Time",popoverDropdown:t&&n?u.jsx(aO,{nanoTs:t,lines:[n.inMillis],textClassName:Te("mono-text",at.value),triggerClassName:at.timePopover}):void 0,vertical:e})}function Npe({slot:e,vertical:t=!1}){var r;const n=(r=tc(e).response)==null?void 0:r.scheduler_stats;return u.jsx(vh,{label:"Block Hash",value:xi?"Not available for Frankendancer":n==null?void 0:n.block_hash,vertical:t,allowCopy:!xi&&(n==null?void 0:n.block_hash)!=null})}function t_t(){var t;const e=J(Cn);return(t=tc(e).response)!=null&&t.limits?u.jsxs(u.Fragment,{children:[u.jsx(Qxt,{}),u.jsx(so,{children:u.jsxs(W,{gap:vpe,wrap:"wrap",flexBasis:"0",children:[u.jsx(axt,{}),u.jsx(Ext,{}),u.jsx(Hxt,{})]})})]}):u.jsx(n_t,{})}function n_t(){return u.jsx(so,{style:{display:"flex",flexGrow:"1",height:"550px",justifyContent:"center",alignItems:"center"},children:u.jsx(Z,{children:"Loading Slot Statistics..."})})}function r_t({children:e}){const t=m.useRef(new Map),n=m.useRef(new Map),r=m.useMemo(()=>({registerControl:(i,o,a)=>(t.current.set(i,o),n.current.set(i,a),()=>{t.current.delete(i),n.current.delete(i)}),triggerControl:(i,o)=>{var a;(a=t.current.get(i))==null||a(o)},resetControl:i=>{var o;(o=n.current.get(i))==null||o()},resetAllControls:i=>{for(const[o,a]of n.current)i!=null&&i.includes(o)||a()}}),[]);return u.jsx(N1.Provider,{value:r,children:e})}function i_t(){const e=J(Cn),[t,n]=m.useState(!1),r=J(gd.state)===Kf.NotReady;return m.useEffect(()=>{if(r&&!t){const i=setTimeout(()=>n(!0),2500);return()=>clearTimeout(i)}},[r,n,t]),r&&!t?null:e===void 0?u.jsx(lbt,{}):u.jsx(o_t,{})}function o_t(){if(J(Cn)!==void 0)return u.jsxs(W,{direction:"column",gap:"2",flexGrow:"1",children:[u.jsx(Dbt,{}),u.jsxs(r_t,{children:[u.jsx(t_t,{}),u.jsx(Ufe,{}),u.jsx(j1t,{}),u.jsx(Gyt,{})]})]})}const a_t=ca(),s_t=kt({slot:oe().optional().catch(void 0)}),$pe=lp("/slotDetails")({validateSearch:s_t,component:i_t,beforeLoad:({search:{slot:e}})=>a_t.set(gd.slot,e)}),l_t="_card_ybszl_1",u_t="_name-text_ybszl_8",c_t="_pubkey-text_ybszl_14",d_t="_narrow-screen_ybszl_21",f_t="_two-away_ybszl_27",h_t="_one-away_ybszl_33",p_t="_time-till_ybszl_38",mc={card:l_t,nameText:u_t,pubkeyText:c_t,narrowScreen:d_t,twoAway:f_t,oneAway:h_t,timeTill:p_t},m_t="_my-slots_kxi8u_1",g_t="_scroll_kxi8u_7",YS={mySlots:m_t,scroll:g_t};var Pm=(e=>(e.Past="Past",e.Now="Now",e.Upcoming="Upcoming",e))(Pm||{});function v_t(e,t){return et?Pm.Upcoming:Pm.Now}function y_t({currentLeaderSlot:e,searchLeaderSlots:t,slotOverride:n,curCardCount:r=0,cardCount:i=1}){const o=t.toReversed();if(n===void 0){if(o.length<=i)return o[r];{const a=o.findIndex(l=>lMath.abs(c-n)),s=Math.min(...a),l=Math.max(a.indexOf(s)-3,0);return o[r+l]}}function b_t({cardCount:e,currentLeaderSlot:t,epoch:n,searchLeaderSlots:r,slotOverride:i,topSlot:o}){const a=[],s=[],l=[];if(t===void 0)return{upcoming:a,now:s,past:l};for(let c=0;cn.end_slot))continue;const f=v_t(d,t);f===Pm.Upcoming&&a.push(d),f===Pm.Now&&s.push(d),f===Pm.Past&&l.push(d)}return{upcoming:a,now:s,past:l}}function Mpe(e){const{year:t,...n}=jt.DATETIME_MED_WITH_SECONDS;return e.toLocaleString({...n,timeZoneName:"short"})}function x_t({slot:e}){var c,d;const t=J(eu),{pubkey:n,peer:r,isLeader:i,name:o}=ma(e),a=t!==void 0&&e===t+$n,s=t!==void 0&&e===t+$n*2,l=Hn("(min-width: 1250px)");return u.jsx("div",{className:Te(mc.card,{[mc.oneAway]:a,[mc.twoAway]:s,[YS.mySlots]:i}),children:l?u.jsx(__t,{iconUrl:(c=r==null?void 0:r.info)==null?void 0:c.icon_url,isLeader:i,name:o,pubkey:n,slot:e}):u.jsx(w_t,{iconUrl:(d=r==null?void 0:r.info)==null?void 0:d.icon_url,isLeader:i,name:o,pubkey:n,slot:e})})}function __t({iconUrl:e,isLeader:t,name:n,pubkey:r,slot:i}){return u.jsxs(W,{gap:"2",align:"center",children:[u.jsxs(W,{gap:"2",minWidth:"300px",width:"505px",align:"center",pr:"20px",children:[u.jsx(ks,{url:e,size:24,isYou:t}),u.jsx(Z,{className:mc.nameText,children:n})]}),u.jsx(Z,{className:mc.pubkeyText,children:r}),u.jsx(W,{justify:"center",minWidth:"190px",children:u.jsx(Z,{children:i})}),u.jsx(Rpe,{slot:i})]})}function w_t({iconUrl:e,isLeader:t,name:n,pubkey:r,slot:i}){return u.jsxs(W,{direction:"column",children:[u.jsxs(W,{gap:"2",align:"center",children:[u.jsx(ks,{url:e,size:16,isYou:t}),u.jsx(Z,{className:mc.nameText,children:n}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(Z,{className:Te(mc.pubkeyText,mc.narrowScreen),children:r})]}),u.jsxs(W,{justify:"between",children:[u.jsx(Z,{children:i}),u.jsx(Rpe,{slot:i,isNarrowScreen:!0})]})]})}function Rpe({slot:e,isNarrowScreen:t}){const n=J(oo),r=J(Eg),i=n?fn.fromMillis(r*(e-n)).rescale():void 0,[o,a]=m.useReducer(Lpe,i,s=>Lpe(void 0,s));if(rx(()=>a(i),1e3),o!==void 0)return u.jsx(W,{className:Te(mc.timeTill,{[mc.narrowScreen]:t}),children:u.jsx(aO,{nanoTs:o.predictedTsNanos,lines:[`${o.dtText} (${o.timeTillText})`]})})}function Lpe(e,t){if(t!==void 0)return{timeTillText:kp(t),dtText:S_t(t),predictedTsNanos:k_t(t)}}function k_t(e){const t=Yf.plus(e);return BigInt(Math.trunc(t.toSeconds()))*1000000000n}function S_t(e){const t=Yf.plus(e);return Mpe(t)}const C_t="_card_zlaiw_1",j_t="_late-vote_zlaiw_7",T_t="_skipped_zlaiw_12",sO={card:C_t,lateVote:j_t,skipped:T_t},I_t="_grid_1feao_1",E_t="_firedancer-grid_1feao_16",N_t="_header-text_1feao_24",$_t="_vote-latency-header_1feao_30",M_t="_votes-header_1feao_33",R_t="_non-votes-header_1feao_36",L_t="_fees-header_1feao_39",P_t="_tips-header_1feao_42",O_t="_compute-units-header_1feao_45",z_t="_compute-units-pct_1feao_50",D_t="_row-text_1feao_55",A_t="_active_1feao_62",F_t="_slot-text_1feao_68",Xr={grid:I_t,firedancerGrid:E_t,headerText:N_t,voteLatencyHeader:$_t,votesHeader:M_t,nonVotesHeader:R_t,feesHeader:L_t,tipsHeader:P_t,computeUnitsHeader:O_t,computeUnitsPct:z_t,rowText:D_t,active:A_t,slotText:F_t},[U_t,B_t,W_t,V_t]=function(){const e=Co({}),t=fe(0);return[fe(null,(n,r,i,o)=>{const a=n(t);a&&o(a),r(e,s=>{s[i]=o})}),fe(null,(n,r,i)=>{r(e,o=>{delete o[i]})}),fe(null,(n,r,i,o)=>{for(const[a,s]of Object.entries(n(e)))Number(a)!==i&&s(o);r(t,o)}),fe(null,(n,r)=>{r(e,{}),r(t,0)})]}(),H_t="_slot-text_j49it_1",Z_t={slotText:H_t};function q_t({slot:e,isLeader:t,className:n}){const r=Te(n,Z_t.slotText);return t?u.jsx(Z,{className:r,children:u.jsx(sp,{to:"/slotDetails",search:{slot:e},children:e})}):u.jsx(Z,{className:r,children:e})}function L1({slot:e,currentSlot:t}){const n=m.useRef(null),r=Ee(U_t),i=Ee(B_t),o=Ee(W_t);return m.useEffect(()=>(r(e,a=>{var s;(s=n.current)==null||s.scrollTo(a,0)}),()=>i(e)),[i,r,e]),u.jsxs(W,{minWidth:"0",flexGrow:"1",children:[u.jsx(G_t,{slot:e,currentSlot:t}),u.jsxs("div",{className:Te(Xr.grid,{[Xr.firedancerGrid]:Vi}),ref:n,onScroll:a=>{o(e,a.currentTarget.scrollLeft)},children:[Vi&&u.jsx(Z,{className:Te(Xr.headerText,Xr.voteLatencyHeader),align:"right",children:"Vote\xA0Latency"}),u.jsx(Z,{className:Te(Xr.headerText,Xr.votesHeader),align:"right",children:"Votes"}),u.jsx(Z,{className:Te(Xr.headerText,Xr.nonVotesHeader),align:"right",children:"Non-votes"}),u.jsx(Z,{className:Te(Xr.headerText,Xr.feesHeader),align:"right",children:"Fees"}),u.jsx(Z,{className:Te(Xr.headerText,Xr.tipsHeader),align:"right",children:"Tips"}),u.jsx(Z,{className:Te(Xr.headerText,Xr.durationHeader),align:"right",children:"Duration"}),u.jsx(Z,{className:Te(Xr.headerText,Xr.computeUnitsHeader),align:"right",children:"Compute\xA0Units"}),new Array(4).fill(0).map((a,s)=>{const l=e+3-s;return u.jsx(K_t,{slot:l,active:l===t},l)})]})]})}function G_t({slot:e,currentSlot:t}){return u.jsxs(W,{direction:"column",children:[u.jsx(Z,{className:Te(Xr.headerText,Xr.slotText),children:"Slot"}),new Array(4).fill(0).map((n,r)=>{const i=e+3-r,o=i===t;return u.jsx(Y_t,{slot:i,isCurrent:o},i)})]})}function Y_t({slot:e,isCurrent:t}){var o;const n=Is(e),r=OM(e),i=J(cp)===r;return u.jsxs(W,{className:Te(Xr.rowText,Xr.slotText,t&&Xr.active),align:"center",gap:"2",children:[u.jsx(q_t,{slot:e,isLeader:i}),u.jsx(dpe,{slot:e,isCurrent:t,size:"small"}),(o=n.publish)!=null&&o.skipped?u.jsx(hpe,{size:"small"}):u.jsx(fpe,{size:"small"})]})}function Ppe(e,t){const n=jb(e.success_vote_transaction_cnt??0),r=jb(e.success_nonvote_transaction_cnt??0),i=jb(e.failed_vote_transaction_cnt??0),o=jb(e.failed_nonvote_transaction_cnt??0),a=Ls((e.transaction_fee??0n)+(e.priority_fee??0n),Bo,{decimals:Bo,trailingZeroes:!0}),s=e.transaction_fee!=null?(Number(e.transaction_fee)/dd).toString():"0",l=e.priority_fee!=null?(Number(e.priority_fee)/dd).toString():"0",c=Ls(e.tips??0n,Bo,{decimals:Bo,trailingZeroes:!0}),d=e.tips!=null?(Number(e.tips)/dd).toString():"0",f=e.duration_nanos!==null?`${Math.trunc(e.duration_nanos/1e6)} ms`:"-",p=jb((e==null?void 0:e.compute_units)??0),v=e.compute_units!=null?e.compute_units/(e.max_compute_units??Ute)*100:0,x=e.vote_latency!=null?{text:rre(e.slot,e.vote_latency,t).toLocaleString()}:e.skipped?{text:""}:e.level==="rooted"?{text:"\u2715",color:"#FF3C3C"}:{text:"-"};return{voteTxns:(n+i).toLocaleString(),nonVoteTxns:(r+o).toLocaleString(),totalFees:a,transactionFeeFull:s,priorityFeeFull:l,tips:c,tipsFull:d,durationText:f,computeUnits:p,computeUnitsPct:v,voteLatency:x}}function K_t({slot:e,active:t}){var b;const n=J(Xf),r=J(oo),i=J(Ik),o=Is(e),[a,s]=m.useState(()=>{if(o.publish)return Ppe(o.publish,i)});m.useEffect(()=>{o.publish&&s(Ppe(o.publish,i))},[o.publish,i,e]);const l=e>(r??1/0),c=e===r,d=m.useRef(),[f,p]=m.useState(!1);ox(c)&&!c&&!f&&(clearTimeout(d.current),d.current=setTimeout(()=>{p(!1)},50),p(!0)),Og(()=>{clearTimeout(d.current)});const v=e<(n??0),x=(w,_)=>l||c||v?"-":!a&&!o.hasWaitedForData&&!f?"Loading...":a?(typeof w=="number"&&(w=Math.round(w)),`${w}`):"-",y=Te(Xr.rowText,{[Xr.active]:t});return u.jsxs(u.Fragment,{children:[Vi&&u.jsx(Z,{className:y,align:"right",style:{color:(b=a==null?void 0:a.voteLatency)==null?void 0:b.color},children:x(a==null?void 0:a.voteLatency.text)}),u.jsx(Z,{className:y,align:"right",children:x(a==null?void 0:a.voteTxns)}),u.jsx(Z,{className:y,align:"right",children:x(a==null?void 0:a.nonVoteTxns)}),u.jsx(ci,{content:u.jsxs(qr,{columns:"auto auto",rows:"2",gapX:"3",children:[u.jsx(Z,{children:"Transaction"}),u.jsx(Z,{children:"Priority"}),u.jsxs(Z,{children:[a==null?void 0:a.transactionFeeFull," SOL"]}),u.jsxs(Z,{children:[a==null?void 0:a.priorityFeeFull," SOL"]})]}),children:u.jsx(Z,{className:y,align:"right",children:x(a==null?void 0:a.totalFees)})}),u.jsx(ci,{content:`${a==null?void 0:a.tipsFull} SOL`,children:u.jsx(Z,{className:y,align:"right",children:x(a==null?void 0:a.tips)})}),u.jsx(Z,{className:y,align:"right",children:x(a==null?void 0:a.durationText)}),(a==null?void 0:a.computeUnits)!==void 0?u.jsx(Z,{className:y,align:"right",style:{padding:0},children:u.jsxs(u.Fragment,{children:[x(a==null?void 0:a.computeUnits.toLocaleString()),u.jsx("span",{className:Xr.computeUnitsPct,children:(a==null?void 0:a.computeUnitsPct)!==void 0?`${uk}(${x(a==null?void 0:a.computeUnitsPct)}%)`:null})]})}):u.jsx(Z,{className:y,align:"right",children:x()})]})}const X_t="_my-slots_476vd_1",J_t="_summary-container_476vd_8",Q_t="_name_476vd_13",e2t="_you_476vd_22",t2t="_mobile_476vd_26",n2t="_primary-text_476vd_32",r2t="_secondary-text_476vd_40",i2t="_divider_476vd_47",o2t="_firedancer_476vd_55",a2t="_frankendancer_476vd_59",s2t="_agave_476vd_63",l2t="_jito_476vd_67",u2t="_paladin_476vd_71",c2t="_bam_476vd_75",d2t="_sig_476vd_79",f2t="_rakurai_476vd_83",h2t="_harmonic_476vd_89",p2t="_major-minor-version-text_476vd_93",m2t="_remaining-version-text_476vd_97",g2t="_time-ago_476vd_102",v2t="_right-aligned_476vd_105",Go={mySlots:X_t,summaryContainer:J_t,name:Q_t,you:e2t,mobile:t2t,primaryText:n2t,secondaryText:r2t,divider:i2t,firedancer:o2t,frankendancer:a2t,agave:s2t,jito:l2t,paladin:u2t,bam:c2t,sig:d2t,rakurai:f2t,harmonic:h2t,majorMinorVersionText:p2t,remainingVersionText:m2t,timeAgo:g2t,rightAligned:v2t},y2t="_arrow-dropdown_mvcj2_1",b2t={arrowDropdown:y2t};function x2t({align:e,children:t}){const[n,r]=m.useState(!1);return u.jsx(zg,{align:e,content:t,isOpen:n,onOpenChange:r,children:u.jsx(hs,{variant:"ghost",size:"1",className:b2t.arrowDropdown,children:n?u.jsx(U$,{}):u.jsx(F$,{})})})}function Ope({slot:e,showTime:t}){var a;const{pubkey:n,peer:r,isLeader:i,name:o}=ma(e);return u.jsxs(W,{direction:"column",className:Go.summaryContainer,gap:"2",mr:"2",children:[u.jsxs(W,{gap:"1",children:[u.jsx(ks,{url:(a=r==null?void 0:r.info)==null?void 0:a.icon_url,size:30,isYou:i}),u.jsx(Z,{className:Te(Go.name,{[Go.you]:i}),children:o})]}),u.jsx(Z,{className:Go.primaryText,children:n}),u.jsx(Fpe,{slot:e,peer:r,showTime:t})]})}function zpe({slot:e,showTime:t}){var a;const{pubkey:n,peer:r,isLeader:i,name:o}=ma(e);return u.jsxs(W,{direction:"column",gap:"1",children:[u.jsxs(W,{gap:"1",children:[u.jsx(ks,{url:(a=r==null?void 0:r.info)==null?void 0:a.icon_url,size:16,isYou:i}),u.jsx(Z,{className:Te(Go.name,Go.mobile),children:o}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(Z,{className:Go.primaryText,children:n})]}),u.jsx(Fpe,{slot:e,peer:r,showTime:t,full:!0})]})}function Dpe({slot:e,showTime:t}){var a;const{pubkey:n,peer:r,isLeader:i,name:o}=ma(e);return u.jsxs(W,{gap:"1",children:[u.jsx(ks,{url:(a=r==null?void 0:r.info)==null?void 0:a.icon_url,size:16,isYou:i}),u.jsx(Z,{className:Go.primaryText,children:o}),u.jsx(x2t,{align:"start",children:u.jsxs(W,{p:"1",direction:"column",gap:"2",className:Go.mobile,children:[u.jsx(Z,{children:n}),u.jsx(_2t,{slot:e,peer:r,showTime:t})]})})]})}function Ape(e){var p;const t=J(Ig),{client:n,version:r,countryCode:i,countryFlag:o,cityName:a}=zM(e),s=e?nre(e):void 0,l=t?t.activeStake+t.delinquentStake:0n,c=l>0n?Number(s)/Number(l)*100:void 0,d=s!==void 0?`${BN(s)}${c!==void 0?` \u2022 ${z$(c,{significantDigits:4,trailingZeroes:!1})}%`:""}`:void 0,f=ZN(((p=e==null?void 0:e.gossip)==null?void 0:p.sockets.tvu)??"");return!Cb(n)&&!Cb(d)&&!f?null:{client:n,version:r,countryCode:i,countryFlag:o,cityName:a,stakeText:d??"",ipText:f||"Offline"}}function Fpe({slot:e,peer:t,showTime:n,full:r}){const i=Ape(t);if(!i)return null;const{client:o,version:a,countryCode:s,countryFlag:l,cityName:c,stakeText:d,ipText:f}=i;return u.jsxs(W,{gap:"4",minWidth:"0",justify:"between",className:Go.secondaryText,children:[u.jsxs(W,{direction:"column",minWidth:"0",children:[u.jsx(ci,{content:`${o??"Unknown"}${a!=null?` v${a}`:""}`,children:u.jsxs(W,{gap:"1",children:[u.jsx(W,{width:"26px",align:"center",flexShrink:"0",children:u.jsx(Px,{slot:e,size:"medium"})}),u.jsx(Bpe,{client:o,version:a})]})}),c&&s&&u.jsx(ci,{content:`${c}, ${s}`,children:u.jsxs(W,{gap:"1",children:[u.jsx(W,{width:"26px",align:"center",flexShrink:"0",children:u.jsx(Z,{children:l})}),u.jsx(Upe,{cityName:c,countryCode:s})]})})]}),u.jsxs(W,{gap:"4",children:[u.jsxs(W,{direction:"column",width:"180px",align:r?"end":"start",children:[u.jsx(Z,{children:d}),u.jsx(Z,{children:f})]}),u.jsx(W,{width:"165px",justify:r?"end":"start",children:n&&u.jsx(Wpe,{slot:e,align:r?"right":"left",multiline:!0})})]})]})}function _2t({slot:e,peer:t,showTime:n}){const r=Ape(t);if(!r)return null;const{client:i,version:o,countryCode:a,countryFlag:s,cityName:l,stakeText:c,ipText:d}=r;return u.jsxs(W,{gap:"2",minWidth:"0",justify:"between",direction:"column",children:[u.jsxs(W,{gap:"1",children:[u.jsx(Px,{slot:e,size:"small"}),u.jsx(Bpe,{client:i,version:o})]}),l&&a&&u.jsxs(W,{gap:"1",children:[u.jsx(Z,{children:s}),u.jsx(Upe,{cityName:l,countryCode:a})]}),u.jsx(Z,{children:c}),u.jsx(Z,{children:d}),n&&u.jsx(Mt,{children:u.jsx(Wpe,{slot:e,align:"left"})})]})}function Upe({cityName:e,countryCode:t}){return u.jsxs(W,{minWidth:"0",children:[u.jsx(Z,{truncate:!0,children:e}),u.jsxs(Z,{children:["\xA0",t]})]})}function Bpe({client:e,version:t}){const n=(e??"Unknown").split(" "),r=n[0],i=n[1],o=Go[r.toLowerCase()],a=t==null?void 0:t.match(/^(\d+\.\d+)(\..+)$/),s=a?a[1]:t??"",l=a?a[2]:"";return u.jsxs(W,{minWidth:"0",children:[u.jsxs(Z,{truncate:!0,children:[u.jsx(Z,{className:o,children:r}),i&&u.jsxs(Z,{className:Go[i.toLowerCase()],children:["\xA0",i]}),t&&u.jsx(Z,{children:"\xA0"})]}),t&&u.jsxs(Z,{className:Te(Go.majorMinorVersionText,o),children:["v",s]}),l&&u.jsx(Z,{truncate:!0,className:Te(Go.remainingVersionText,o),children:l})]})}function Wpe({slot:e,align:t,multiline:n=!1}){const{slotTimestampNanos:r,slotDateTime:i,timeAgoText:o}=npe(e);if(r===void 0)return;const a=i?Mpe(i):"",s=o?n?[a,o]:[`${a} (${o})`]:[a];return u.jsx(aO,{nanoTs:r,lines:s,textClassName:Te(Go.timeAgo,{[Go.rightAligned]:t==="right"})})}const Vpe="(min-width: 900px)",lO="(min-width: 600px)";function w2t({slot:e}){var f,p,v,x;const{isLeader:t}=ma(e),n=J(jre),r=Is(e),i=Is(e+1),o=Is(e+2),a=Is(e+3),s=[0,1,2,3].some(y=>n.has(e+y)),l=((f=r.publish)==null?void 0:f.skipped)||((p=i.publish)==null?void 0:p.skipped)||((v=o.publish)==null?void 0:v.skipped)||((x=a.publish)==null?void 0:x.skipped),c=Hn(Vpe),d=Hn(lO);return u.jsx("div",{className:Te(sO.card,{[YS.mySlots]:t,[sO.lateVote]:s,[sO.skipped]:l}),children:c?u.jsxs(W,{gap:"1",align:"start",justify:"between",children:[u.jsx(Ope,{slot:e,showTime:!0}),u.jsx(L1,{slot:e})]}):d?u.jsxs(W,{direction:"column",gap:"1",children:[u.jsx(zpe,{slot:e,showTime:!0}),u.jsx(L1,{slot:e})]}):u.jsxs(W,{direction:"column",gap:"1",children:[u.jsx(Dpe,{slot:e,showTime:!0}),u.jsx(L1,{slot:e})]})})}const k2t="_card_wweyx_1",S2t={card:k2t};function C2t({slot:e}){const t=J(oo),{isLeader:n}=ma(e),r=Hn(Vpe),i=Hn(lO);return u.jsx("div",{className:Te(S2t.card,{[YS.mySlots]:n}),children:r?u.jsxs(W,{gap:"1",align:"start",justify:"between",children:[u.jsx(Ope,{slot:e}),u.jsx(L1,{slot:e,currentSlot:t})]}):i?u.jsxs(W,{direction:"column",gap:"1",children:[u.jsx(zpe,{slot:e}),u.jsx(L1,{slot:e,currentSlot:t})]}):u.jsxs(W,{direction:"column",gap:"1",children:[u.jsx(Dpe,{slot:e}),u.jsx(L1,{slot:e,currentSlot:t})]})})}var j2t=Object.defineProperty,T2t=(e,t,n)=>t in e?j2t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,KS=(e,t,n)=>T2t(e,typeof t!="symbol"?t+"":t,n),uO=new Map,cO=new WeakMap,Hpe=0,I2t=void 0;function E2t(e){return e?(cO.has(e)||(Hpe+=1,cO.set(e,Hpe.toString())),cO.get(e)):"0"}function N2t(e){return Object.keys(e).sort().filter(t=>e[t]!==void 0).map(t=>`${t}_${t==="root"?E2t(e.root):e[t]}`).toString()}function $2t(e){const t=N2t(e);let n=uO.get(t);if(!n){const r=new Map;let i;const o=new IntersectionObserver(a=>{a.forEach(s=>{var l;const c=s.isIntersecting&&i.some(d=>s.intersectionRatio>=d);e.trackVisibility&&typeof s.isVisible>"u"&&(s.isVisible=c),(l=r.get(s.target))==null||l.forEach(d=>{d(c,s)})})},e);i=o.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),n={id:t,observer:o,elements:r},uO.set(t,n)}return n}function M2t(e,t,n={},r=I2t){if(typeof window.IntersectionObserver>"u"&&r!==void 0){const l=e.getBoundingClientRect();return t(r,{isIntersecting:r,target:e,intersectionRatio:typeof n.threshold=="number"?n.threshold:0,time:0,boundingClientRect:l,intersectionRect:l,rootBounds:l}),()=>{}}const{id:i,observer:o,elements:a}=$2t(n),s=a.get(e)||[];return a.has(e)||a.set(e,s),s.push(t),o.observe(e),function(){s.splice(s.indexOf(t),1),s.length===0&&(a.delete(e),o.unobserve(e)),a.size===0&&(o.disconnect(),uO.delete(i))}}function R2t(e){return typeof e.children!="function"}var Zpe=class extends m.Component{constructor(e){super(e),KS(this,"node",null),KS(this,"_unobserveCb",null),KS(this,"handleNode",t=>{this.node&&(this.unobserve(),!t&&!this.props.triggerOnce&&!this.props.skip&&this.setState({inView:!!this.props.initialInView,entry:void 0})),this.node=t||null,this.observeNode()}),KS(this,"handleChange",(t,n)=>{t&&this.props.triggerOnce&&this.unobserve(),R2t(this.props)||this.setState({inView:t,entry:n}),this.props.onChange&&this.props.onChange(t,n)}),this.state={inView:!!e.initialInView,entry:void 0}}componentDidMount(){this.unobserve(),this.observeNode()}componentDidUpdate(e){(e.rootMargin!==this.props.rootMargin||e.root!==this.props.root||e.threshold!==this.props.threshold||e.skip!==this.props.skip||e.trackVisibility!==this.props.trackVisibility||e.delay!==this.props.delay)&&(this.unobserve(),this.observeNode())}componentWillUnmount(){this.unobserve()}observeNode(){if(!this.node||this.props.skip)return;const{threshold:e,root:t,rootMargin:n,trackVisibility:r,delay:i,fallbackInView:o}=this.props;this._unobserveCb=M2t(this.node,this.handleChange,{threshold:e,root:t,rootMargin:n,trackVisibility:r,delay:i},o)}unobserve(){this._unobserveCb&&(this._unobserveCb(),this._unobserveCb=null)}render(){const{children:e}=this.props;if(typeof e=="function"){const{inView:v,entry:x}=this.state;return e({inView:v,entry:x,ref:this.handleNode})}const{as:t,triggerOnce:n,threshold:r,root:i,rootMargin:o,onChange:a,skip:s,trackVisibility:l,delay:c,initialInView:d,fallbackInView:f,...p}=this.props;return m.createElement(t||"div",{ref:this.handleNode,...p},e)}};function dO({slot:e,lastCardSlot:t,setCardCount:n,children:r}){return e!==t?r:u.jsxs(u.Fragment,{children:[u.jsx(Zpe,{onChange:i=>{i||n("decrease")},children:r}),u.jsx(Zpe,{onChange:i=>{i&&n("increase")}})]})}const L2t="_preload_1uziq_1",P2t={preload:L2t};function O2t({slot:e}){var a,s;Is(e);const t=OM(e),n=Hk(t),[r,i]=Vl($ie((a=n==null?void 0:n.info)==null?void 0:a.icon_url)),o=!r&&((s=n==null?void 0:n.info)!=null&&s.icon_url)?n.info.icon_url:void 0;return u.jsx("div",{className:P2t.preload,children:u.jsx("img",{src:o,onError:()=>i()})})}const XS=$n*5;function z2t({topCardSlotLeader:e,bottomCardSlotLeader:t,searchLeaderSlots:n}){if(n){const r=[],i=n.indexOf(t),o=n.indexOf(e);if(i>0)for(let a=1;a<=XS&&i-a>=0;a++){const s=n[i-a];for(let l=0;l<$n;l++)r.push(s+l)}if(o>0)for(let a=1;a<=XS&&o+a0)for(let a=r;a>r-XS;a--)o.push(a);if(i>0)for(let a=i;au.jsx(O2t,{slot:i},i))})}const A2t=10,F2t=2,U2t=1;function B2t(e,t){switch(t){case"increase":return e+F2t;case"decrease":return Math.max(1,e-U2t)}}function W2t(){const e=J(eu),t=J(An),n=J(Aa),r=J(fi),[i,o]=m.useReducer(B2t,A2t),a=t??(e??0)+Ate*$n,{upcoming:s,now:l,past:c}=m.useMemo(()=>b_t({cardCount:i,currentLeaderSlot:e,epoch:r,searchLeaderSlots:n,slotOverride:t,topSlot:a}),[i,e,r,n,t,a]);if(e===void 0)return;if((n==null?void 0:n.length)===0)return u.jsx(W,{justify:"center",align:"center",style:{color:mN,fontSize:"24px",letterSpacing:"-0.96px",minHeight:"300px"},children:u.jsx(Z,{children:"No slots found."})});const d=s[0]??l[0]??c[0]??-1,f=c[c.length-1]??l[l.length-1]??s[s.length-1]??-1;return u.jsxs(u.Fragment,{children:[!!s.length&&u.jsx(fO,{sectionName:"Upcoming",children:s.map(p=>u.jsx(dO,{slot:p,lastCardSlot:f,setCardCount:o,children:u.jsx(x_t,{slot:p},p)},p))}),!!l.length&&u.jsx(fO,{sectionName:"Now",children:l.map(p=>u.jsx(dO,{slot:p,lastCardSlot:f,setCardCount:o,children:u.jsx(C2t,{slot:p},p)},p))}),!!c.length&&u.jsx(fO,{sectionName:"Past",children:c.map(p=>u.jsx(dO,{slot:p,lastCardSlot:f,setCardCount:o,children:u.jsx(w2t,{slot:p})},p))}),u.jsx(D2t,{topCardSlotLeader:d,bottomCardSlotLeader:f})]})}function fO({children:e,sectionName:t}){const n=Hn(lO);return u.jsxs(W,{gap:"2",align:"stretch",children:[n&&u.jsxs(W,{direction:"column",gap:"2",align:"center",children:[u.jsx("div",{style:{width:"1px",flex:1,background:zN,height:"10px"}}),u.jsx(Z,{style:{transform:"rotate(180deg)",writingMode:"vertical-rl",color:Kte},size:"2",children:t}),u.jsx("div",{style:{width:"1px",flex:1,background:zN,height:"10px"}})]}),u.jsx(W,{direction:"column",flexGrow:"1",gap:"2",minWidth:"0",children:e})]})}const V2t="_container_1hof6_1",H2t="_button_1hof6_5",qpe={container:V2t,button:H2t};function Z2t(){const[e,t]=Vl(An),n=J(eu);if(e===void 0||n===void 0)return null;const r=e<=n+Ate*$n;return u.jsx("div",{className:qpe.container,children:u.jsxs(hs,{className:qpe.button,style:{bottom:r?void 0:"8px"},onClick:()=>t(void 0),children:[u.jsx(Z,{children:"Skip to Realtime"}),r?u.jsx(Vie,{}):u.jsx(Wie,{})]})})}const q2t="_label_14v9a_1",G2t="_value_14v9a_5",Gpe={label:q2t,value:G2t};function Y2t(){const{progressSinceLastLeader:e,nextSlotText:t,nextLeaderSlot:n}=Ox({showNowIfCurrent:!0}),r=n!==void 0?` (${n})`:"";return u.jsxs(W,{align:"center",gap:"2",children:[u.jsxs(Z,{className:Gpe.label,children:["Next leader slot",r]}),u.jsx(a1,{width:"60px",height:"8px",value:e}),u.jsx(Z,{className:Gpe.value,children:t})]})}const K2t="_container_bc437_1",X2t="_search-box_bc437_18",J2t="_label_bc437_29",Q2t="_search-button_bc437_33",ewt="_disabled_bc437_56",twt="_my-slots_bc437_64",nwt="_late-vote-slots_bc437_84",rwt="_skipped-slots_bc437_102",iwt="_skip-rate-label_bc437_130",owt="_skip-rate-value_bc437_135",Eo={container:K2t,searchBox:X2t,label:J2t,searchButton:Q2t,disabled:ewt,mySlots:twt,lateVoteSlots:nwt,skippedSlots:rwt,skipRateLabel:iwt,skipRateValue:owt};function JS(){const{searchType:e}=y_.useSearch(),t=Q0({from:y_.fullPath}),n=m.useCallback(r=>{t({search:{searchType:r},replace:!0})},[t]);return{searchType:e,setSearchType:n}}function awt(){const{searchText:e}=y_.useSearch(),t=Q0({from:y_.fullPath}),n=m.useCallback(r=>{t({search:{searchText:r,searchType:zi.text},replace:!0})},[t]);return{searchText:e,setSearchText:n}}function swt(){const e=Ee(Fze),t=Ee(An),{searchType:n}=JS(),{searchText:r,setSearchText:i}=awt(),[o,a]=m.useState(r),s=Tp(c=>{e(c),i(c)},1e3);m.useEffect(()=>{!s.isPending()&&o!==r&&a(r)},[s,o,r]);const l=()=>{i(""),t(void 0),e("")};return ix(()=>{n===zi.text&&e(r)}),u.jsxs(W,{className:Eo.container,gap:"2",wrap:"wrap",children:[u.jsx(Mt,{className:Eo.searchBox,children:u.jsxs(Q7,{placeholder:"Name, Client Id, Pubkey, or Slot (use , for multiple)",variant:"soft",color:"gray",onChange:c=>{a(c.currentTarget.value),s(c.currentTarget.value)},value:o,children:[u.jsx(M4,{children:u.jsx(qie,{height:"16",width:"16",style:{color:ON}})}),o&&u.jsx(M4,{children:u.jsx(nl,{size:"1",variant:"ghost",children:u.jsx(B$,{height:"14",width:"14",style:{color:ON},onClick:l})})})]})}),u.jsx(uwt,{resetSearchText:l}),Vi&&u.jsx(dwt,{resetSearchText:l}),u.jsx(cwt,{resetSearchText:l}),u.jsx(lwt,{}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(Y2t,{})]})}function lwt(){const e=J(Sre),t=m.useMemo(()=>e?`${(e.skip_rate*100).toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:2})}%`:"-",[e]);return u.jsxs(W,{justify:"center",align:"center",gap:"1",children:[u.jsx(Z,{className:Eo.skipRateLabel,children:"Skip Rate"}),u.jsx(Z,{className:e!=null&&e.skip_rate?Eo.skipRateValue:Eo.skipRateLabel,children:t})]})}function uwt({resetSearchText:e}){const t=J(ao),n=Ee(Aa),r=Ee(An),{searchType:i,setSearchType:o}=JS(),a=((t==null?void 0:t.length)??0)*4,s=m.useCallback(()=>{n(t)},[n,t]);m.useEffect(()=>{i===zi.mySlots&&n(t)},[t,n]);const l=()=>{e(),r(void 0),i===zi.mySlots?o(zi.text):(o(zi.mySlots),s())},c=i===zi.mySlots,d=!(t!=null&&t.length);return u.jsx(ci,{content:"Number of slots this validator is leader in the current epoch. Toggle to filter",children:u.jsx("div",{children:u.jsx(Z0,{children:u.jsxs(N7,{className:Te(Eo.searchButton,Eo.mySlots,d&&Eo.disabled),onClick:l,"aria-label":"Toggle my slots",pressed:c,disabled:d,children:[u.jsx(Z,{className:Eo.label,children:"My Slots"}),u.jsx(Z,{children:a})]})})})})}function cwt({resetSearchText:e}){const t=J(u3),n=Ee(Aa),r=Ee(An),{searchType:i,setSearchType:o}=JS(),a=(t==null?void 0:t.length)??0,s=m.useCallback(()=>{const f=t==null?void 0:t.map(p=>p-p%4);n([...new Set(f)])},[n,t]);m.useEffect(()=>{i===zi.skippedSlots&&s()},[s]);const l=()=>{e(),r(void 0),i===zi.skippedSlots?o(zi.text):t!=null&&t.length&&(o(zi.skippedSlots),s())},c=i===zi.skippedSlots,d=!(t!=null&&t.length);return u.jsx(ci,{content:"Number of slots this validator has skipped in the current epoch since it was last restarted. Toggle to filter",children:u.jsx("div",{children:u.jsx(Z0,{children:u.jsxs(N7,{className:Te(Eo.searchButton,Eo.skippedSlots,d&&Eo.disabled),onClick:l,"aria-label":"Toggle skipped slots",pressed:c,disabled:!c&&d,children:[u.jsx(Z,{className:Eo.label,children:"My Skipped Slots"}),u.jsx(Z,{children:a})]})})})})}function dwt({resetSearchText:e}){const t=J(jre),n=Ee(Aa),r=Ee(An),{searchType:i,setSearchType:o}=JS(),a=t.size,s=m.useMemo(()=>Array.from(new Set([...t].map(p=>_i(p)))),[t]),l=m.useCallback(()=>{n(s)},[n,s]);m.useEffect(()=>{i===zi.lateVoteSlots&&n(s)},[s,n]);const c=()=>{e(),r(void 0),i===zi.lateVoteSlots?o(zi.text):(o(zi.lateVoteSlots),l())},d=i===zi.lateVoteSlots,f=!t.size;return u.jsx(ci,{content:"Number of slots this validator has voted late in the current epoch. Toggle to filter",children:u.jsx("div",{children:u.jsx(Z0,{children:u.jsxs(N7,{className:Te(Eo.searchButton,Eo.lateVoteSlots,f&&Eo.disabled),onClick:c,"aria-label":"Toggle late vote slots",pressed:d,disabled:f,children:[u.jsx(Z,{className:Eo.label,children:"My Late Votes"}),u.jsx(Z,{children:a})]})})})})}var Ype={exports:{}};/*! Hammer.JS - v2.0.7 - 2016-04-22 +* http://hammerjs.github.io/ +* +* Copyright (c) 2016 Jorik Tangelder; +* Licensed under the MIT license */(function(e){(function(t,n,r,i){var o=["","webkit","Moz","MS","ms","o"],a=n.createElement("div"),s="function",l=Math.round,c=Math.abs,d=Date.now;function f(L,G,ie){return setTimeout(S(L,ie),G)}function p(L,G,ie){return Array.isArray(L)?(v(L,ie[G],ie),!0):!1}function v(L,G,ie){var Ie;if(L)if(L.forEach)L.forEach(G,ie);else if(L.length!==i)for(Ie=0;Ie\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",Kt=t.console&&(t.console.warn||t.console.log);return Kt&&Kt.call(t.console,Ie,vt),L.apply(this,arguments)}}var y;typeof Object.assign!="function"?y=function(L){if(L===i||L===null)throw new TypeError("Cannot convert undefined or null to object");for(var G=Object(L),ie=1;ie-1}function M(L){return L.trim().split(/\s+/g)}function O(L,G,ie){if(L.indexOf&&!ie)return L.indexOf(G);for(var Ie=0;IeDi[G]}),Ie}function P(L,G){for(var ie,Ie,ze=G[0].toUpperCase()+G.slice(1),vt=0;vt1&&!ie.firstMultiple?ie.firstMultiple=pn(G):ze===1&&(ie.firstMultiple=!1);var vt=ie.firstInput,Kt=ie.firstMultiple,In=Kt?Kt.center:vt.center,Di=G.center=Yn(Ie);G.timeStamp=d(),G.deltaTime=G.timeStamp-vt.timeStamp,G.angle=On(In,Di),G.distance=kr(In,Di),De(ie,G),G.offsetDirection=Kn(G.deltaX,G.deltaY);var Ti=hr(G.deltaTime,G.deltaX,G.deltaY);G.overallVelocityX=Ti.x,G.overallVelocityY=Ti.y,G.overallVelocity=c(Ti.x)>c(Ti.y)?Ti.x:Ti.y,G.scale=Kt?tr(Kt.pointers,Ie):1,G.rotation=Kt?Mr(Kt.pointers,Ie):0,G.maxPointers=ie.prevInput?G.pointers.length>ie.prevInput.maxPointers?G.pointers.length:ie.prevInput.maxPointers:G.pointers.length,Dt(ie,G);var Ji=L.element;$(G.srcEvent.target,Ji)&&(Ji=G.srcEvent.target),G.target=Ji}function De(L,G){var ie=G.center,Ie=L.offsetDelta||{},ze=L.prevDelta||{},vt=L.prevInput||{};(G.eventType===he||vt.eventType===re)&&(ze=L.prevDelta={x:vt.deltaX||0,y:vt.deltaY||0},Ie=L.offsetDelta={x:ie.x,y:ie.y}),G.deltaX=ze.x+(ie.x-Ie.x),G.deltaY=ze.y+(ie.y-Ie.y)}function Dt(L,G){var ie=L.lastInterval||G,Ie=G.timeStamp-ie.timeStamp,ze,vt,Kt,In;if(G.eventType!=ge&&(Ie>ke||ie.velocity===i)){var Di=G.deltaX-ie.deltaX,Ti=G.deltaY-ie.deltaY,Ji=hr(Ie,Di,Ti);vt=Ji.x,Kt=Ji.y,ze=c(Ji.x)>c(Ji.y)?Ji.x:Ji.y,In=Kn(Di,Ti),L.lastInterval=G}else ze=ie.velocity,vt=ie.velocityX,Kt=ie.velocityY,In=ie.direction;G.velocity=ze,G.velocityX=vt,G.velocityY=Kt,G.direction=In}function pn(L){for(var G=[],ie=0;ie=c(G)?L<0?pe:ye:G<0?Se:Ce}function kr(L,G,ie){ie||(ie=St);var Ie=G[ie[0]]-L[ie[0]],ze=G[ie[1]]-L[ie[1]];return Math.sqrt(Ie*Ie+ze*ze)}function On(L,G,ie){ie||(ie=St);var Ie=G[ie[0]]-L[ie[0]],ze=G[ie[1]]-L[ie[1]];return Math.atan2(ze,Ie)*180/Math.PI}function Mr(L,G){return On(G[1],G[0],ut)+On(L[1],L[0],ut)}function tr(L,G){return kr(G[0],G[1],ut)/kr(L[0],L[1],ut)}var Sr={mousedown:he,mousemove:ue,mouseup:re},ri="mousedown",uo="mousemove mouseup";function Ki(){this.evEl=ri,this.evWin=uo,this.pressed=!1,ct.apply(this,arguments)}_(Ki,ct,{handler:function(L){var G=Sr[L.type];G&he&&L.button===0&&(this.pressed=!0),G&ue&&L.which!==1&&(G=re),this.pressed&&(G&re&&(this.pressed=!1),this.callback(this.manager,G,{pointers:[L],changedPointers:[L],pointerType:je,srcEvent:L}))}});var No={pointerdown:he,pointermove:ue,pointerup:re,pointercancel:ge,pointerout:ge},Ps={2:B,3:ae,4:je,5:me},zn="pointerdown",co="pointermove pointerup pointercancel";t.MSPointerEvent&&!t.PointerEvent&&(zn="MSPointerDown",co="MSPointerMove MSPointerUp MSPointerCancel");function xa(){this.evEl=zn,this.evWin=co,ct.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}_(xa,ct,{handler:function(L){var G=this.store,ie=!1,Ie=L.type.toLowerCase().replace("ms",""),ze=No[Ie],vt=Ps[L.pointerType]||L.pointerType,Kt=vt==B,In=O(G,L.pointerId,"pointerId");ze&he&&(L.button===0||Kt)?In<0&&(G.push(L),In=G.length-1):ze&(re|ge)&&(ie=!0),!(In<0)&&(G[In]=L,this.callback(this.manager,ze,{pointers:G,changedPointers:[L],pointerType:vt,srcEvent:L}),ie&&G.splice(In,1))}});var yc={touchstart:he,touchmove:ue,touchend:re,touchcancel:ge},bc="touchstart",xc="touchstart touchmove touchend touchcancel";function qa(){this.evTarget=bc,this.evWin=xc,this.started=!1,ct.apply(this,arguments)}_(qa,ct,{handler:function(L){var G=yc[L.type];if(G===he&&(this.started=!0),!!this.started){var ie=kl.call(this,L,G);G&(re|ge)&&ie[0].length-ie[1].length===0&&(this.started=!1),this.callback(this.manager,G,{pointers:ie[0],changedPointers:ie[1],pointerType:B,srcEvent:L})}}});function kl(L,G){var ie=te(L.touches),Ie=te(L.changedTouches);return G&(re|ge)&&(ie=q(ie.concat(Ie),"identifier")),[ie,Ie]}var pi={touchstart:he,touchmove:ue,touchend:re,touchcancel:ge},Un="touchstart touchmove touchend touchcancel";function Rr(){this.evTarget=Un,this.targetIds={},ct.apply(this,arguments)}_(Rr,ct,{handler:function(L){var G=pi[L.type],ie=$o.call(this,L,G);ie&&this.callback(this.manager,G,{pointers:ie[0],changedPointers:ie[1],pointerType:B,srcEvent:L})}});function $o(L,G){var ie=te(L.touches),Ie=this.targetIds;if(G&(he|ue)&&ie.length===1)return Ie[ie[0].identifier]=!0,[ie,ie];var ze,vt,Kt=te(L.changedTouches),In=[],Di=this.target;if(vt=ie.filter(function(Ti){return $(Ti.target,Di)}),G===he)for(ze=0;ze-1&&Ie.splice(vt,1)};setTimeout(ze,fo)}}function Yt(L){for(var G=L.srcEvent.clientX,ie=L.srcEvent.clientY,Ie=0;Ie-1&&this.requireFail.splice(G,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(L){return!!this.simultaneous[L.id]},emit:function(L){var G=this,ie=this.state;function Ie(ze){G.manager.emit(ze,L)}ie=ji&&Ie(G.options.event+Pd(ie))},tryEmit:function(L){if(this.canEmit())return this.emit(L);this.state=go},canEmit:function(){for(var L=0;LG.threshold&&ze&G.direction},attrTest:function(L){return Xi.prototype.attrTest.call(this,L)&&(this.state&Vr||!(this.state&Vr)&&this.directionTest(L))},emit:function(L){this.pX=L.deltaX,this.pY=L.deltaY;var G=Od(L.direction);G&&(L.additionalEvent=this.options.event+G),this._super.emit.call(this,L)}});function _c(){Xi.apply(this,arguments)}_(_c,Xi,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Ko]},attrTest:function(L){return this._super.attrTest.call(this,L)&&(Math.abs(L.scale-1)>this.options.threshold||this.state&Vr)},emit:function(L){if(L.scale!==1){var G=L.scale<1?"in":"out";L.additionalEvent=this.options.event+G}this._super.emit.call(this,L)}});function xu(){Xo.apply(this,arguments),this._timer=null,this._input=null}_(xu,Xo,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Ga]},process:function(L){var G=this.options,ie=L.pointers.length===G.pointers,Ie=L.distanceG.time;if(this._input=L,!Ie||!ie||L.eventType&(re|ge)&&!ze)this.reset();else if(L.eventType&he)this.reset(),this._timer=f(function(){this.state=gi,this.tryEmit()},G.time,this);else if(L.eventType&re)return gi;return go},reset:function(){clearTimeout(this._timer)},emit:function(L){this.state===gi&&(L&&L.eventType&re?this.manager.emit(this.options.event+"up",L):(this._input.timeStamp=d(),this.manager.emit(this.options.event,this._input)))}});function wc(){Xi.apply(this,arguments)}_(wc,Xi,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Ko]},attrTest:function(L){return this._super.attrTest.call(this,L)&&(Math.abs(L.rotation)>this.options.threshold||this.state&Vr)}});function kc(){Xi.apply(this,arguments)}_(kc,Xi,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Ue|Ge,pointers:1},getTouchAction:function(){return oi.prototype.getTouchAction.call(this)},attrTest:function(L){var G=this.options.direction,ie;return G&(Ue|Ge)?ie=L.overallVelocity:G&Ue?ie=L.overallVelocityX:G&Ge&&(ie=L.overallVelocityY),this._super.attrTest.call(this,L)&&G&L.offsetDirection&&L.distance>this.options.threshold&&L.maxPointers==this.options.pointers&&c(ie)>this.options.velocity&&L.eventType&re},emit:function(L){var G=Od(L.offsetDirection);G&&this.manager.emit(this.options.event+G,L),this.manager.emit(this.options.event,L)}});function Sl(){Xo.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}_(Sl,Xo,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[Ya]},process:function(L){var G=this.options,ie=L.pointers.length===G.pointers,Ie=L.distance0?-1:1)}const pwt=function(){let e=0,t=null;return fe(null,(n,r,i)=>{t&&clearTimeout(t),i*e<0&&(e=0);const o=n(oo);if(o===void 0)return;const a=n(An),s=a&&a=s){const l=e%100;r(Bze,hwt(e/s)),e=l}t=setTimeout(()=>e=0,100)})}();function mwt(){const e=Ee(pwt),t=Ee(V_t),n=m.useRef(null),r=i=>{i.altKey||i.ctrlKey||i.metaKey||i.shiftKey||!i.deltaY||e(i.deltaY)};return Og(()=>t()),m.useEffect(()=>{if(!n.current)return;const i=new Kpe(n.current);return i.get("pan").set({direction:Kpe.DIRECTION_VERTICAL}),i.on("panup pandown",o=>{var a;o.pointerType.includes("touch")&&e(-(((a=o.changedPointers[0])==null?void 0:a.movementY)??0)*5)}),()=>{i.destroy()}},[e]),u.jsxs(BZ,{overflow:"hidden",flexShrink:"1",onWheel:r,maxWidth:"100%",className:YS.scroll,ref:n,children:[u.jsx(swt,{}),u.jsx(Z2t,{}),u.jsx(W,{direction:"column",gap:"4",children:u.jsx(W2t,{})})]})}const gwt=fe(e=>e(eu)!=null&&!!e(xre));function vwt(){const e=J(gwt),t=Ee(An),n=Ee(Tg);ix(()=>{t(void 0),n(void 0)});const r=i=>{i.button===1&&t(void 0)};if(e)return u.jsx(W,{direction:"column",gap:"4",width:"100%",maxHeight:`calc(100vh - ${kb+Sb+12}px)`,onMouseDown:r,children:u.jsx(mwt,{})})}const Xpe=xs(["mySlots","skippedSlots","lateVoteSlots","text"]),zi=Xpe.enum,ywt={searchType:zi.text,searchText:""},bwt=kt({searchType:Xpe.default(zi.text).catch(zi.text),searchText:Et().default("").catch("")}),y_=lp("/leaderSchedule")({component:vwt,validateSearch:bwt,search:{middlewares:[K8e(ywt),Y8e(["searchType","searchText"])]},beforeLoad:({search:e})=>{if(e.searchText.includes(";"))throw cT({to:"/leaderSchedule",search:{...e,searchText:e.searchText.replaceAll(";",",")}})}});function P1({inBytes:e,value:t}){const n=Bg(t)??0;let r="-";if(n!==void 0)if(e){const{value:i,unit:o}=Ib(n);r=`${i.toLocaleString()} ${o}`}else r=Math.trunc(n).toLocaleString();return u.jsx(ni,{align:"right",children:r})}const QS=["ContactInfoV1","Vote","LowestSlot","SnapshotHashes","AccountsHashes","EpochSlots","VersionV1","VersionV2","NodeInstance","DuplicateShred","IncrementalSnapshotHashes","ContactInfoV2","RestartLastVotedForkSlots","RestartHeaviestFork"],xwt=["pull_request","pull_response","push","ping","pong","prune"],hO="30px",gc="10px",pO="160px",Jpe="10px",Qpe=`repeat(auto-fill, minmax(${pO}, 1fr)`,eme="44px",eC="200px",tC="320px",_wt="_header-text_n52ov_1",wwt="_storage-stats-container_n52ov_6",kwt="_root_n52ov_11",Md={headerText:_wt,storageStatsContainer:wwt,root:kwt};function Swt({storage:e}){const t=m.useMemo(()=>{if(e!=null&&e.count)return e.count.map((n,r)=>{var i,o,a;return{type:QS[r],activeEntries:(i=e.count)==null?void 0:i[r],egressCount:(o=e.count_tx)==null?void 0:o[r],egressBytes:(a=e.bytes_tx)==null?void 0:a[r]}}).sort((n,r)=>r.activeEntries-n.activeEntries)},[e]);if(t)return u.jsxs(W,{className:Md.storageStatsContainer,direction:"column",gap:gc,minWidth:tC,height:"100%",minHeight:"250px",children:[u.jsx(Z,{className:Md.headerText,children:"Storage Stats"}),u.jsxs(q0,{variant:"surface",className:Md.root,size:"1",children:[u.jsx(rp,{children:u.jsxs(la,{children:[u.jsx(Wi,{children:"Entry Type"}),u.jsx(Wi,{align:"right",children:"Total Entries"}),u.jsx(Wi,{align:"right",children:"Egress /s"}),u.jsx(Wi,{align:"right",children:"Egress Throughput /s"})]})}),u.jsx(G0,{children:t==null?void 0:t.map(n=>u.jsxs(la,{children:[u.jsx($4,{children:n.type}),u.jsx(ni,{align:"right",children:n.activeEntries.toLocaleString()}),u.jsx(P1,{value:n.egressCount??0}),u.jsx(P1,{value:n.egressBytes??0,inBytes:!0})]},n.type))})]})]})}function nC(){return nC=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var jwt={nivo:["#e8c1a0","#f47560","#f1e15b","#e8a838","#61cdbb","#97e3d5"],category10:f5,accent:h5,dark2:p5,paired:m5,pastel1:g5,pastel2:v5,set1:y5,set2:b5,set3:Yx,tableau10:x5},Twt={brown_blueGreen:tm,purpleRed_green:nm,pink_yellowGreen:rm,purple_orange:im,red_blue:om,red_grey:am,red_yellow_blue:sm,red_yellow_green:lm,spectral:um},Iwt={brown_blueGreen:_5,purpleRed_green:w5,pink_yellowGreen:k5,purple_orange:S5,red_blue:C5,red_grey:j5,red_yellow_blue:T5,red_yellow_green:I5,spectral:E5},Ewt={blues:wm,greens:km,greys:Sm,oranges:Tm,purples:Cm,reds:jm,blue_green:cm,blue_purple:dm,green_blue:fm,orange_red:hm,purple_blue_green:pm,purple_blue:mm,purple_red:gm,red_purple:vm,yellow_green_blue:ym,yellow_green:bm,yellow_orange_brown:xm,yellow_orange_red:_m},Nwt={blues:B5,greens:W5,greys:V5,oranges:q5,purples:H5,reds:Z5,turbo:nS,viridis:iS,inferno:aS,magma:oS,plasma:sS,cividis:G5,warm:K5,cool:X5,cubehelixDefault:Y5,blue_green:N5,blue_purple:$5,green_blue:M5,orange_red:R5,purple_blue_green:L5,purple_blue:P5,purple_red:O5,red_purple:z5,yellow_green_blue:D5,yellow_green:A5,yellow_orange_brown:F5,yellow_orange_red:U5};nC({},jwt,Twt,Ewt);var $wt={rainbow:Q5,sinebow:tS};nC({},Iwt,Nwt,$wt);var Mwt=function(e,t){if(typeof e=="function")return e;if(Fx(e)){if(function(l){return l.theme!==void 0}(e)){if(t===void 0)throw new Error("Unable to use color from theme as no theme was provided");var n=yl(t,e.theme);if(n===void 0)throw new Error("Color from theme is undefined at path: '"+e.theme+"'");return function(){return n}}if(function(l){return l.from!==void 0}(e)){var r=function(l){return yl(l,e.from)};if(Array.isArray(e.modifiers)){for(var i,o=[],a=function(){var l=i.value,c=l[0],d=l[1];if(c==="brighter")o.push(function(f){return f.brighter(d)});else if(c==="darker")o.push(function(f){return f.darker(d)});else{if(c!=="opacity")throw new Error("Invalid color modifier: '"+c+"', must be one of: 'brighter', 'darker', 'opacity'");o.push(function(f){return f.opacity=d,f})}},s=Cwt(e.modifiers);!(i=s()).done;)a();return o.length===0?r:function(l){return o.reduce(function(c,d){return d(c)},qp(r(l))).toString()}}return r}throw new Error("Invalid color spec, you should either specify 'theme' or 'from' when using a config object")}return function(){return e}},rC=function(e,t){return m.useMemo(function(){return Mwt(e,t)},[e,t])};xe.oneOfType([xe.string,xe.func,xe.shape({theme:xe.string.isRequired}),xe.shape({from:xe.string.isRequired,modifiers:xe.arrayOf(xe.array)})]);function $r(){return $r=Object.assign?Object.assign.bind():function(e){for(var t=1;t=t})},Owt={startAngle:{enter:function(e){return $r({},e,{endAngle:e.startAngle})},update:function(e){return e},leave:function(e){return $r({},e,{startAngle:e.endAngle})}},middleAngle:{enter:function(e){var t=e.startAngle+(e.endAngle-e.startAngle)/2;return $r({},e,{startAngle:t,endAngle:t})},update:function(e){return e},leave:function(e){var t=e.startAngle+(e.endAngle-e.startAngle)/2;return $r({},e,{startAngle:t,endAngle:t})}},endAngle:{enter:function(e){return $r({},e,{startAngle:e.endAngle})},update:function(e){return e},leave:function(e){return $r({},e,{endAngle:e.startAngle})}},innerRadius:{enter:function(e){return $r({},e,{outerRadius:e.innerRadius})},update:function(e){return e},leave:function(e){return $r({},e,{innerRadius:e.outerRadius})}},centerRadius:{enter:function(e){var t=e.innerRadius+(e.outerRadius-e.innerRadius)/2;return $r({},e,{innerRadius:t,outerRadius:t})},update:function(e){return e},leave:function(e){var t=e.innerRadius+(e.outerRadius-e.innerRadius)/2;return $r({},e,{innerRadius:t,outerRadius:t})}},outerRadius:{enter:function(e){return $r({},e,{innerRadius:e.outerRadius})},update:function(e){return e},leave:function(e){return $r({},e,{outerRadius:e.innerRadius})}},pushIn:{enter:function(e){return $r({},e,{innerRadius:e.innerRadius-e.outerRadius+e.innerRadius,outerRadius:e.innerRadius})},update:function(e){return e},leave:function(e){return $r({},e,{innerRadius:e.outerRadius,outerRadius:e.outerRadius+e.outerRadius-e.innerRadius})}},pushOut:{enter:function(e){return $r({},e,{innerRadius:e.outerRadius,outerRadius:e.outerRadius+e.outerRadius-e.innerRadius})},update:function(e){return e},leave:function(e){return $r({},e,{innerRadius:e.innerRadius-e.outerRadius+e.innerRadius,outerRadius:e.innerRadius})}}},rme=function(e,t){return m.useMemo(function(){var n=Owt[e];return{enter:function(r){return $r({progress:0},n.enter(r.arc),t?t.enter(r):{})},update:function(r){return $r({progress:1},n.update(r.arc),t?t.update(r):{})},leave:function(r){return $r({progress:0},n.leave(r.arc),t?t.leave(r):{})}}},[e,t])},zwt=function(e,t){var n=mht(e)-Math.PI/2,r=e.innerRadius+(e.outerRadius-e.innerRadius)*t;return k1(n,r)},Dwt=function(e){return function(t,n,r,i){return tx([t,n,r,i],function(o,a,s,l){var c=zwt({startAngle:o,endAngle:a,innerRadius:s,outerRadius:l},e);return"translate("+c.x+","+c.y+")"})}},Awt=function(e,t,n,r){t===void 0&&(t=.5),n===void 0&&(n="innerRadius");var i=w1(),o=i.animate,a=i.config,s=rme(n,r);return{transition:R$(e,{keys:function(l){return l.id},initial:s.update,from:s.enter,enter:s.update,update:s.update,leave:s.leave,config:a,immediate:!o}),interpolate:Dwt(t)}},Fwt=function(e){var t=e.center,n=e.data,r=e.transitionMode,i=e.label,o=e.radiusOffset,a=e.skipAngle,s=e.textColor,l=e.component,c=l===void 0?Lwt:l,d=e_(i),f=Ms(),p=rC(s,f),v=m.useMemo(function(){return n.filter(function(_){return Math.abs(qL(_.arc.endAngle-_.arc.startAngle))>=a})},[n,a]),x=Awt(v,o,r),y=x.transition,b=x.interpolate,w=c;return u.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:y(function(_,S){return m.createElement(w,{key:S.id,datum:S,label:d(S),style:$r({},_,{transform:b(_.startAngle,_.endAngle,_.innerRadius,_.outerRadius),textColor:p(S)})})})})},Uwt=function(e){var t=e.label,n=e.style,r=Ms();return u.jsxs(iu.g,{opacity:n.opacity,children:[u.jsx(iu.path,{fill:"none",stroke:n.linkColor,strokeWidth:n.thickness,d:n.path}),u.jsx(iu.text,{transform:n.textPosition,textAnchor:n.textAnchor,dominantBaseline:"central",style:$r({},r.labels.text,{fill:n.textColor}),children:t})]})},Bwt=function(e){var t=nme(e.startAngle+(e.endAngle-e.startAngle)/2-Math.PI/2);return t1.5*Math.PI?"start":"end"},ime=function(e,t,n,r){var i,o,a=nme(e.startAngle+(e.endAngle-e.startAngle)/2-Math.PI/2),s=k1(a,e.outerRadius+t),l=k1(a,e.outerRadius+t+n);return a1.5*Math.PI?(i="after",o={x:l.x+r,y:l.y}):(i="before",o={x:l.x-r,y:l.y}),{side:i,points:[s,l,o]}},Wwt=jL().x(function(e){return e.x}).y(function(e){return e.y}),Vwt=function(e,t,n,r,i,o,a){return tx([e,t,n,r,i,o,a],function(s,l,c,d,f,p,v){var x=ime({startAngle:s,endAngle:l,outerRadius:d},f,p,v).points;return Wwt(x)})},Hwt=function(e,t,n,r){return tx([e,t,n,r],function(i,o,a,s){return Bwt({startAngle:i,endAngle:o})})},Zwt=function(e,t,n,r,i,o,a,s){return tx([e,t,n,r,i,o,a,s],function(l,c,d,f,p,v,x,y){var b=ime({startAngle:l,endAngle:c,outerRadius:f},p,v,x),w=b.points,_=b.side,S=w[2];return _==="before"?S.x-=y:S.x+=y,"translate("+S.x+","+S.y+")"})},qwt=function(e){var t=e.data,n=e.offset,r=n===void 0?0:n,i=e.diagonalLength,o=e.straightLength,a=e.skipAngle,s=a===void 0?0:a,l=e.textOffset,c=e.linkColor,d=e.textColor,f=w1(),p=f.animate,v=f.config,x=Ms(),y=rC(c,x),b=rC(d,x),w=function(S,C){return m.useMemo(function(){return Pwt(S,C)},[S,C])}(t,s),_=function(S){var C=S.offset,j=S.diagonalLength,T=S.straightLength,E=S.textOffset,$=S.getLinkColor,D=S.getTextColor;return m.useMemo(function(){return{enter:function(M){return{startAngle:M.arc.startAngle,endAngle:M.arc.endAngle,innerRadius:M.arc.innerRadius,outerRadius:M.arc.outerRadius,offset:C,diagonalLength:0,straightLength:0,textOffset:E,linkColor:$(M),textColor:D(M),opacity:0}},update:function(M){return{startAngle:M.arc.startAngle,endAngle:M.arc.endAngle,innerRadius:M.arc.innerRadius,outerRadius:M.arc.outerRadius,offset:C,diagonalLength:j,straightLength:T,textOffset:E,linkColor:$(M),textColor:D(M),opacity:1}},leave:function(M){return{startAngle:M.arc.startAngle,endAngle:M.arc.endAngle,innerRadius:M.arc.innerRadius,outerRadius:M.arc.outerRadius,offset:C,diagonalLength:0,straightLength:0,textOffset:E,linkColor:$(M),textColor:D(M),opacity:0}}}},[j,T,E,$,D,C])}({offset:r,diagonalLength:i,straightLength:o,textOffset:l,getLinkColor:y,getTextColor:b});return{transition:R$(w,{keys:function(S){return S.id},initial:_.update,from:_.enter,enter:_.update,update:_.update,leave:_.leave,config:v,immediate:!p}),interpolateLink:Vwt,interpolateTextAnchor:Hwt,interpolateTextPosition:Zwt}},Gwt=function(e){var t=e.center,n=e.data,r=e.label,i=e.skipAngle,o=e.offset,a=e.diagonalLength,s=e.straightLength,l=e.strokeWidth,c=e.textOffset,d=e.textColor,f=e.linkColor,p=e.component,v=p===void 0?Uwt:p,x=e_(r),y=qwt({data:n,skipAngle:i,offset:o,diagonalLength:a,straightLength:s,textOffset:c,linkColor:f,textColor:d}),b=y.transition,w=y.interpolateLink,_=y.interpolateTextAnchor,S=y.interpolateTextPosition,C=v;return u.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:b(function(j,T){return m.createElement(C,{key:T.id,datum:T,label:x(T),style:$r({},j,{thickness:l,path:w(j.startAngle,j.endAngle,j.innerRadius,j.outerRadius,j.offset,j.diagonalLength,j.straightLength),textAnchor:_(j.startAngle,j.endAngle,j.innerRadius,j.outerRadius),textPosition:S(j.startAngle,j.endAngle,j.innerRadius,j.outerRadius,j.offset,j.diagonalLength,j.straightLength,j.textOffset)})})})})},Ywt=function(e){var t=e.datum,n=e.style,r=e.onClick,i=e.onMouseEnter,o=e.onMouseMove,a=e.onMouseLeave,s=m.useCallback(function(f){return r==null?void 0:r(t,f)},[r,t]),l=m.useCallback(function(f){return i==null?void 0:i(t,f)},[i,t]),c=m.useCallback(function(f){return o==null?void 0:o(t,f)},[o,t]),d=m.useCallback(function(f){return a==null?void 0:a(t,f)},[a,t]);return u.jsx(iu.path,{d:n.path,opacity:n.opacity,fill:t.fill||n.color,stroke:n.borderColor,strokeWidth:n.borderWidth,onClick:r?s:void 0,onMouseEnter:i?l:void 0,onMouseMove:o?c:void 0,onMouseLeave:a?d:void 0})},Kwt=function(e,t,n,r,i){return tx([e,t,n,r],function(o,a,s,l){return i({startAngle:o,endAngle:a,innerRadius:Math.max(0,s),outerRadius:Math.max(0,l)})})},Xwt=function(e,t,n){t===void 0&&(t="innerRadius");var r=w1(),i=r.animate,o=r.config,a=rme(t,n);return{transition:R$(e,{keys:function(s){return s.id},initial:a.update,from:a.enter,enter:a.update,update:a.update,leave:a.leave,config:o,immediate:!i}),interpolate:Kwt}},Jwt=function(e){var t=e.center,n=e.data,r=e.arcGenerator,i=e.borderWidth,o=e.borderColor,a=e.onClick,s=e.onMouseEnter,l=e.onMouseMove,c=e.onMouseLeave,d=e.transitionMode,f=e.component,p=f===void 0?Ywt:f,v=Ms(),x=rC(o,v),y=Xwt(n,d,{enter:function(S){return{opacity:0,color:S.color,borderColor:x(S)}},update:function(S){return{opacity:1,color:S.color,borderColor:x(S)}},leave:function(S){return{opacity:0,color:S.color,borderColor:x(S)}}}),b=y.transition,w=y.interpolate,_=p;return u.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:b(function(S,C){return m.createElement(_,{key:C.id,datum:C,style:$r({},S,{borderWidth:i,path:w(S.startAngle,S.endAngle,S.innerRadius,S.outerRadius,r)}),onClick:a,onMouseEnter:s,onMouseMove:l,onMouseLeave:c})})})},Qwt=function(e,t,n,r,i,o){o===void 0&&(o=!0);var a=[],s=k1(jd(r),n);a.push([s.x,s.y]);var l=k1(jd(i),n);a.push([l.x,l.y]);for(var c=Math.round(Math.min(r,i));c<=Math.round(Math.max(r,i));c++)if(c%90==0){var d=k1(jd(c),n);a.push([d.x,d.y])}a=a.map(function(b){var w=b[0],_=b[1];return[e+w,t+_]}),o&&a.push([e,t]);var f=a.map(function(b){return b[0]}),p=a.map(function(b){return b[1]}),v=Math.min.apply(Math,f),x=Math.max.apply(Math,f),y=Math.min.apply(Math,p);return{points:a,x:v,y,width:x-v,height:Math.max.apply(Math,p)-y}},e4t=function(e){var t=e===void 0?{}:e,n=t.cornerRadius,r=n===void 0?0:n,i=t.padAngle,o=i===void 0?0:i;return m.useMemo(function(){return nct().innerRadius(function(a){return a.innerRadius}).outerRadius(function(a){return a.outerRadius}).cornerRadius(r).padAngle(o)},[r,o])};function iC(){return iC=Object.assign?Object.assign.bind():function(e){for(var t=1;t11))throw new Error("Invalid size '"+e.size+"' for diverging color scheme '"+e.scheme+"', must be between 3~11");var s=dc(mO[e.scheme][e.size||11]),l=function(f){return s(n(f))};return l.scale=s,l}if(l4t(e.scheme)){if(e.size!==void 0&&(e.size<3||e.size>9))throw new Error("Invalid size '"+e.size+"' for sequential color scheme '"+e.scheme+"', must be between 3~9");var c=dc(mO[e.scheme][e.size||9]),d=function(f){return c(n(f))};return d.scale=c,d}}throw new Error("Invalid colors, when using an object, you should either pass a 'datum' or a 'scheme' property")}return function(){return e}},d4t=function(e,t){return m.useMemo(function(){return c4t(e,t)},[e,t])};function Om(){return Om=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(i[n]=e[n]);return i}var f4t=function(e){var t=e.width,n=e.height,r=e.legends,i=e.data,o=e.toggleSerie;return u.jsx(u.Fragment,{children:r.map(function(a,s){var l;return u.jsx(sfe,Om({},a,{containerWidth:t,containerHeight:n,data:(l=a.data)!=null?l:i,toggleSerie:a.toggleSerie?o:void 0}),s)})})},Ct={id:"id",value:"value",sortByValue:!1,innerRadius:0,padAngle:0,cornerRadius:0,layers:["arcs","arcLinkLabels","arcLabels","legends"],startAngle:0,endAngle:360,fit:!0,activeInnerRadiusOffset:0,activeOuterRadiusOffset:0,borderWidth:0,borderColor:{from:"color",modifiers:[["darker",1]]},enableArcLabels:!0,arcLabel:"formattedValue",arcLabelsSkipAngle:0,arcLabelsRadiusOffset:.5,arcLabelsTextColor:{theme:"labels.text.fill"},enableArcLinkLabels:!0,arcLinkLabel:"id",arcLinkLabelsSkipAngle:0,arcLinkLabelsOffset:0,arcLinkLabelsDiagonalLength:16,arcLinkLabelsStraightLength:24,arcLinkLabelsThickness:1,arcLinkLabelsTextOffset:6,arcLinkLabelsTextColor:{theme:"labels.text.fill"},arcLinkLabelsColor:{theme:"axis.ticks.line.stroke"},colors:{scheme:"nivo"},defs:[],fill:[],isInteractive:!0,animate:!0,motionConfig:"gentle",transitionMode:"innerRadius",tooltip:function(e){var t=e.datum;return u.jsx(VR,{id:t.id,value:t.formattedValue,enableChip:!0,color:t.color})},legends:[],role:"img"},h4t=["points"],p4t=function(e){var t=e.data,n=e.id,r=n===void 0?Ct.id:n,i=e.value,o=i===void 0?Ct.value:i,a=e.valueFormat,s=e.colors,l=s===void 0?Ct.colors:s,c=e_(r),d=e_(o),f=VL(a),p=d4t(l,"id");return m.useMemo(function(){return t.map(function(v){var x,y=c(v),b=d(v),w={id:y,label:(x=v.label)!=null?x:y,hidden:!1,value:b,formattedValue:f(b),data:v};return Om({},w,{color:p(w)})})},[t,c,d,f,p])},m4t=function(e){var t=e.data,n=e.startAngle,r=e.endAngle,i=e.innerRadius,o=e.outerRadius,a=e.padAngle,s=e.sortByValue,l=e.activeId,c=e.activeInnerRadiusOffset,d=e.activeOuterRadiusOffset,f=e.hiddenIds,p=e.forwardLegendData,v=m.useMemo(function(){var w=sct().value(function(_){return _.value}).startAngle(jd(n)).endAngle(jd(r)).padAngle(jd(a));return s||w.sortValues(null),w},[n,r,a,s]),x=m.useMemo(function(){var w=t.filter(function(_){return!f.includes(_.id)});return{dataWithArc:v(w).map(function(_){var S=Math.abs(_.endAngle-_.startAngle);return Om({},_.data,{arc:{index:_.index,startAngle:_.startAngle,endAngle:_.endAngle,innerRadius:l===_.data.id?i-c:i,outerRadius:l===_.data.id?o+d:o,thickness:o-i,padAngle:_.padAngle,angle:S,angleDeg:qL(S)}})}),legendData:t.map(function(_){return{id:_.id,label:_.label,color:_.color,hidden:f.includes(_.id),data:_}})}},[v,t,f,l,i,c,o,d]),y=x.legendData,b=m.useRef(p);return m.useEffect(function(){typeof b.current=="function"&&b.current(y)},[b,y]),x},g4t=function(e){var t=e.activeId,n=e.onActiveIdChange,r=e.defaultActiveId,i=t!==void 0,o=m.useState(i||r===void 0?null:r),a=o[0],s=o[1];return{activeId:i?t:a,setActiveId:m.useCallback(function(l){n&&n(l),i||s(l)},[i,n,s])}},v4t=function(e){var t=e.data,n=e.width,r=e.height,i=e.innerRadius,o=i===void 0?Ct.innerRadius:i,a=e.startAngle,s=a===void 0?Ct.startAngle:a,l=e.endAngle,c=l===void 0?Ct.endAngle:l,d=e.padAngle,f=d===void 0?Ct.padAngle:d,p=e.sortByValue,v=p===void 0?Ct.sortByValue:p,x=e.cornerRadius,y=x===void 0?Ct.cornerRadius:x,b=e.fit,w=b===void 0?Ct.fit:b,_=e.activeInnerRadiusOffset,S=_===void 0?Ct.activeInnerRadiusOffset:_,C=e.activeOuterRadiusOffset,j=C===void 0?Ct.activeOuterRadiusOffset:C,T=e.activeId,E=e.onActiveIdChange,$=e.defaultActiveId,D=e.forwardLegendData,M=g4t({activeId:T,onActiveIdChange:E,defaultActiveId:$}),O=M.activeId,te=M.setActiveId,q=m.useState([]),P=q[0],X=q[1],A=m.useMemo(function(){var H,ee=Math.min(n,r)/2,ce=ee*Math.min(o,1),B=n/2,ae=r/2;if(w){var je=Qwt(B,ae,ee,s-90,c-90),me=je.points,ke=lme(je,h4t),he=Math.min(n/ke.width,r/ke.height),ue={width:ke.width*he,height:ke.height*he};ue.x=(n-ue.width)/2,ue.y=(r-ue.height)/2,B=(B-ke.x)/ke.width*ke.width*he+ue.x,ae=(ae-ke.y)/ke.height*ke.height*he+ue.y,H={box:ke,ratio:he,points:me},ee*=he,ce*=he}return{centerX:B,centerY:ae,radius:ee,innerRadius:ce,debug:H}},[n,r,o,s,c,w]),Y=m4t({data:t,startAngle:s,endAngle:c,innerRadius:A.innerRadius,outerRadius:A.radius,padAngle:f,sortByValue:v,activeId:O,activeInnerRadiusOffset:S,activeOuterRadiusOffset:j,hiddenIds:P,forwardLegendData:D}),F=m.useCallback(function(H){X(function(ee){return ee.indexOf(H)>-1?ee.filter(function(ce){return ce!==H}):[].concat(ee,[H])})},[]);return Om({arcGenerator:e4t({cornerRadius:y,padAngle:jd(f)}),activeId:O,setActiveId:te,toggleSerie:F},Y,A)},y4t=function(e){var t=e.dataWithArc,n=e.arcGenerator,r=e.centerX,i=e.centerY,o=e.radius,a=e.innerRadius;return m.useMemo(function(){return{dataWithArc:t,arcGenerator:n,centerX:r,centerY:i,radius:o,innerRadius:a}},[t,n,r,i,o,a])},b4t=function(e){var t=e.center,n=e.data,r=e.arcGenerator,i=e.borderWidth,o=e.borderColor,a=e.isInteractive,s=e.onClick,l=e.onMouseEnter,c=e.onMouseMove,d=e.onMouseLeave,f=e.setActiveId,p=e.tooltip,v=e.transitionMode,x=Mnt(),y=x.showTooltipFromEvent,b=x.hideTooltip,w=m.useMemo(function(){if(a)return function(j,T){s==null||s(j,T)}},[a,s]),_=m.useMemo(function(){if(a)return function(j,T){y(m.createElement(p,{datum:j}),T),f(j.id),l==null||l(j,T)}},[a,y,f,l,p]),S=m.useMemo(function(){if(a)return function(j,T){y(m.createElement(p,{datum:j}),T),c==null||c(j,T)}},[a,y,c,p]),C=m.useMemo(function(){if(a)return function(j,T){b(),f(null),d==null||d(j,T)}},[a,b,f,d]);return u.jsx(Jwt,{center:t,data:n,arcGenerator:r,borderWidth:i,borderColor:o,transitionMode:v,onClick:w,onMouseEnter:_,onMouseMove:S,onMouseLeave:C})},x4t=["isInteractive","animate","motionConfig","theme","renderWrapper"],_4t=function(e){var t=e.data,n=e.id,r=n===void 0?Ct.id:n,i=e.value,o=i===void 0?Ct.value:i,a=e.valueFormat,s=e.sortByValue,l=s===void 0?Ct.sortByValue:s,c=e.layers,d=c===void 0?Ct.layers:c,f=e.startAngle,p=f===void 0?Ct.startAngle:f,v=e.endAngle,x=v===void 0?Ct.endAngle:v,y=e.padAngle,b=y===void 0?Ct.padAngle:y,w=e.fit,_=w===void 0?Ct.fit:w,S=e.innerRadius,C=S===void 0?Ct.innerRadius:S,j=e.cornerRadius,T=j===void 0?Ct.cornerRadius:j,E=e.activeInnerRadiusOffset,$=E===void 0?Ct.activeInnerRadiusOffset:E,D=e.activeOuterRadiusOffset,M=D===void 0?Ct.activeOuterRadiusOffset:D,O=e.width,te=e.height,q=e.margin,P=e.colors,X=P===void 0?Ct.colors:P,A=e.borderWidth,Y=A===void 0?Ct.borderWidth:A,F=e.borderColor,H=F===void 0?Ct.borderColor:F,ee=e.enableArcLabels,ce=ee===void 0?Ct.enableArcLabels:ee,B=e.arcLabel,ae=B===void 0?Ct.arcLabel:B,je=e.arcLabelsSkipAngle,me=je===void 0?Ct.arcLabelsSkipAngle:je,ke=e.arcLabelsTextColor,he=ke===void 0?Ct.arcLabelsTextColor:ke,ue=e.arcLabelsRadiusOffset,re=ue===void 0?Ct.arcLabelsRadiusOffset:ue,ge=e.arcLabelsComponent,$e=e.enableArcLinkLabels,pe=$e===void 0?Ct.enableArcLinkLabels:$e,ye=e.arcLinkLabel,Se=ye===void 0?Ct.arcLinkLabel:ye,Ce=e.arcLinkLabelsSkipAngle,Ue=Ce===void 0?Ct.arcLinkLabelsSkipAngle:Ce,Ge=e.arcLinkLabelsOffset,_t=Ge===void 0?Ct.arcLinkLabelsOffset:Ge,St=e.arcLinkLabelsDiagonalLength,ut=St===void 0?Ct.arcLinkLabelsDiagonalLength:St,ct=e.arcLinkLabelsStraightLength,bt=ct===void 0?Ct.arcLinkLabelsStraightLength:ct,Qe=e.arcLinkLabelsThickness,Ke=Qe===void 0?Ct.arcLinkLabelsThickness:Qe,De=e.arcLinkLabelsTextOffset,Dt=De===void 0?Ct.arcLinkLabelsTextOffset:De,pn=e.arcLinkLabelsTextColor,Yn=pn===void 0?Ct.arcLinkLabelsTextColor:pn,hr=e.arcLinkLabelsColor,Kn=hr===void 0?Ct.arcLinkLabelsColor:hr,kr=e.arcLinkLabelComponent,On=e.defs,Mr=On===void 0?Ct.defs:On,tr=e.fill,Sr=tr===void 0?Ct.fill:tr,ri=e.isInteractive,uo=ri===void 0?Ct.isInteractive:ri,Ki=e.onClick,No=e.onMouseEnter,Ps=e.onMouseMove,zn=e.onMouseLeave,co=e.tooltip,xa=co===void 0?Ct.tooltip:co,yc=e.activeId,bc=e.onActiveIdChange,xc=e.defaultActiveId,qa=e.transitionMode,kl=qa===void 0?Ct.transitionMode:qa,pi=e.legends,Un=pi===void 0?Ct.legends:pi,Rr=e.forwardLegendData,$o=e.role,fo=$o===void 0?Ct.role:$o,Lr=qde(O,te,q),ho=Lr.outerWidth,_a=Lr.outerHeight,it=Lr.margin,Yt=Lr.innerWidth,nr=Lr.innerHeight,ht=p4t({data:t,id:r,value:o,valueFormat:a,colors:X}),ii=v4t({data:ht,width:Yt,height:nr,fit:_,innerRadius:C,startAngle:p,endAngle:x,padAngle:b,sortByValue:l,cornerRadius:T,activeInnerRadiusOffset:$,activeOuterRadiusOffset:M,activeId:yc,onActiveIdChange:bc,defaultActiveId:xc,forwardLegendData:Rr}),Ga=ii.dataWithArc,Ya=ii.legendData,Ko=ii.arcGenerator,mi=ii.centerX,Bn=ii.centerY,pr=ii.radius,Cr=ii.innerRadius,Ka=ii.setActiveId,po=ii.toggleSerie,mo=Sht(Mr,Ga,Sr),Vr={arcs:null,arcLinkLabels:null,arcLabels:null,legends:null};d.includes("arcs")&&(Vr.arcs=u.jsx(b4t,{center:[mi,Bn],data:Ga,arcGenerator:Ko,borderWidth:Y,borderColor:H,isInteractive:uo,onClick:Ki,onMouseEnter:No,onMouseMove:Ps,onMouseLeave:zn,setActiveId:Ka,tooltip:xa,transitionMode:kl},"arcs")),pe&&d.includes("arcLinkLabels")&&(Vr.arcLinkLabels=u.jsx(Gwt,{center:[mi,Bn],data:Ga,label:Se,skipAngle:Ue,offset:_t,diagonalLength:ut,straightLength:bt,strokeWidth:Ke,textOffset:Dt,textColor:Yn,linkColor:Kn,component:kr},"arcLinkLabels")),ce&&d.includes("arcLabels")&&(Vr.arcLabels=u.jsx(Fwt,{center:[mi,Bn],data:Ga,label:ae,radiusOffset:re,skipAngle:me,textColor:he,transitionMode:kl,component:ge},"arcLabels")),Un.length>0&&d.includes("legends")&&(Vr.legends=u.jsx(f4t,{width:Yt,height:nr,data:Ya,legends:Un,toggleSerie:po},"legends"));var wa=y4t({dataWithArc:Ga,arcGenerator:Ko,centerX:mi,centerY:Bn,radius:pr,innerRadius:Cr});return u.jsx(XL,{width:ho,height:_a,margin:it,defs:mo,role:fo,children:d.map(function(ji,gi){return Vr[ji]!==void 0?Vr[ji]:typeof ji=="function"?u.jsx(m.Fragment,{children:m.createElement(ji,wa)},gi):null})})},ume=function(e){var t=e.isInteractive,n=t===void 0?Ct.isInteractive:t,r=e.animate,i=r===void 0?Ct.animate:r,o=e.motionConfig,a=o===void 0?Ct.motionConfig:o,s=e.theme,l=e.renderWrapper,c=lme(e,x4t);return u.jsx(HL,{animate:i,isInteractive:n,motionConfig:a,renderWrapper:l,theme:s,children:u.jsx(_4t,Om({isInteractive:n},c))})};const w4t="_label_1nl74_1",k4t="_value_1nl74_6",cme={label:w4t,value:k4t};function yh(e){return u.jsx(Ey,{children:u.jsx(S4t,{...e})})}function S4t({value:e,label:t,valueColor:n}){const r=typeof e=="string"?e:e.toLocaleString();return u.jsxs(W,{direction:"column",minWidth:"0",gap:"10px",children:[u.jsx(Z,{className:cme.label,children:t}),u.jsx(Z,{className:cme.value,style:n?{color:n}:void 0,children:r})]})}const C4t="_header-text_uidb2_1",j4t="_tooltip_uidb2_8",oC={headerText:C4t,tooltip:j4t};function T4t({storage:e}){var a;const t=m.useMemo(()=>{if(e!=null&&e.count)return e.count.map((s,l)=>{var c,d,f;return{type:QS[l],activeEntries:(c=e.count)==null?void 0:c[l],egressCount:(d=e.count_tx)==null?void 0:d[l],egressBytes:(f=e.bytes_tx)==null?void 0:f[l]}})},[e]),n=m.useMemo(()=>{const s=rt.sum(e.count),l=e.capacity-s;return`${Math.round(s/l*100)}%`},[e.capacity,e.count]),r=koe(e.expired_count,1e4),i=m.useRef([]);m.useMemo(()=>{i.current.push({ts:performance.now(),value:e.expired_count})},[e.expired_count]),rx(()=>{const s=performance.now();for(;i.current.length>1&&s-i.current[0].ts>6e4;)i.current.shift()},1e3);const o=e.expired_count-(((a=i.current[0])==null?void 0:a.value)??0);if(t)return u.jsxs(W,{direction:"column",gap:gc,children:[u.jsx(Z,{className:oC.headerText,children:"Storage Stats"}),u.jsxs(W,{gap:eme,wrap:"wrap",children:[u.jsxs(qr,{columns:Qpe,minWidth:pO,gap:Jpe,flexGrow:"1",flexBasis:"0",children:[u.jsx(yh,{label:"Expired (/s)",value:`${Math.trunc(r.valuePerSecond??0)}`}),u.jsx(yh,{label:"Expired (Last Min)",value:`${o.toLocaleString()}`}),u.jsx(yh,{label:"Total Evicted",value:e.evicted_count}),u.jsx(yh,{label:"Capacity Used",value:n})]}),u.jsx(Mt,{minWidth:eC,minHeight:eC,flexGrow:"1",flexBasis:"0",children:u.jsx(E4t,{storage:e,usedCapacity:n})})]})]})}const dme=["#48295C","#562800","#132D21"],I4t=e=>dme[e%dme.length];function E4t({storage:e,usedCapacity:t}){const n=m.useMemo(()=>{const r=rt.sum(e.count);return[{id:"unused",label:"Unused",value:e.capacity-r,color:"#222"},...e.count.map((i,o)=>({id:QS[o]+o,label:QS[o],value:i})).sort((i,o)=>o.value-i.value).map((i,o)=>({...i,color:I4t(o)}))]},[e]);return u.jsx($s,{children:({height:r,width:i})=>u.jsx(ume,{height:r,width:i,data:n,colors:o=>o.data.color,arcLabelsSkipAngle:10,arcLinkLabelsSkipAngle:10,arcLabelsTextColor:"#9F9F9F",enableArcLinkLabels:!1,layers:["arcs","arcLabels",N4t(t)],tooltip:$4t,animate:!1,innerRadius:.7,arcLabel:o=>o.data.label})})}function N4t(e){return function({dataWithArc:t,centerX:n,centerY:r}){return u.jsx("text",{y:r-6,textAnchor:"middle",dominantBaseline:"central",style:{fontSize:"28px",fill:"#9F9F9F"},children:u.jsx("tspan",{x:n,dy:5,children:e})})}}function $4t(e){const t=e.datum.value;return u.jsx("div",{className:oC.tooltip,children:u.jsxs(Z,{style:{whiteSpace:"nowrap"},children:[e.datum.label,":\xA0",t]})})}function M4t({messages:e}){const t=m.useMemo(()=>e.num_bytes_rx.map((n,r)=>{var i,o,a,s;return{type:xwt[r],ingressBytes:(i=e.num_bytes_rx)==null?void 0:i[r],egressBytes:(o=e.num_bytes_tx)==null?void 0:o[r],ingressMessages:(a=e.num_messages_rx)==null?void 0:a[r],egressMessages:(s=e.num_messages_tx)==null?void 0:s[r]}}),[e]);if(t)return u.jsxs(W,{direction:"column",gap:gc,minWidth:tC,children:[u.jsx(Z,{className:Md.headerText,children:"Message Stats"}),u.jsxs(q0,{variant:"surface",className:Md.root,size:"1",children:[u.jsx(rp,{children:u.jsxs(la,{children:[u.jsx(Wi,{children:"Message Type"}),u.jsx(Wi,{align:"right",children:"Ingress /s"}),u.jsx(Wi,{align:"right",children:"Egress /s"}),u.jsx(Wi,{align:"right",children:"Ingress Throughput /s"}),u.jsx(Wi,{align:"right",children:"Egress Throughput /s"})]})}),u.jsx(G0,{children:t==null?void 0:t.map((n,r)=>u.jsxs(la,{children:[u.jsx($4,{children:n.type}),u.jsx(P1,{value:n.ingressMessages??0}),u.jsx(P1,{value:n.egressMessages??0}),u.jsx(P1,{value:n.ingressBytes??0,inBytes:!0}),u.jsx(P1,{value:n.egressBytes??0,inBytes:!0})]},n.type))})]})]})}const fme={id:"Stake",direction:-1};function R4t(){const e=C6(),t=J(NG),n=J($G),r=m.useRef(new Map),[i,o]=m.useState([]),[a,s]=m.useState(fme);m.useEffect(()=>{var f;if(!t)return;const d=Object.entries(t);if(!i.length&&((f=d[0])!=null&&f[1])){const p=Object.keys(d[0][1]);o(p),s(fme)}for(const[p,v]of d)r.current.set(p,v)},[i,t]),m.useEffect(()=>{if(n)for(const d of n.changes){const f=r.current.get(d.row_index.toString());f&&(f[d.column_name]=d.new_value)}},[n]);const l=m.useCallback((d,f)=>{if(f{(i==null?void 0:i.indexOf(d))!==void 0&&s(f=>{let p=-1;f.id===d&&(p=-f.direction);const v=i.filter(b=>b!==d),x=new Array(v.length).fill(0),y={col:[d,...v],dir:[p,...x]};return e({topic:"gossip",key:"query_sort",id:32,params:y}),{id:d,direction:p}})},[i,e]);return{query:l,sort:c,colIds:i,rowsCacheRef:r,colSorting:a}}const L4t="_header-text_1ozln_1",P4t="_peer-table_1ozln_6",O4t="_header-cell_1ozln_22",z4t="_header-separator_1ozln_26",aC={headerText:L4t,peerTable:P4t,headerCell:O4t,headerSeparator:z4t},D4t=1e3,gO=0,sC=e=>{if(typeof e=="number"){const t=Ib(e);return`${t.value} ${t.unit}`}return e},A4t={Stake:{width:80,align:"right",format:e=>typeof e=="number"?Math.abs(Math.trunc(e/dd)).toLocaleString():e},Pubkey:{width:200},Name:{width:160},Country:{width:80},"IP Addr":{width:80},"Ingress Pull":{width:80,align:"right",format:sC},"Ingress Push":{width:80,align:"right",format:sC},"Egress Pull":{width:80,align:"right",format:sC},"Egress Push":{width:80,align:"right",format:sC}},lC={width:150};function b_(e){return A4t[e]??lC}function F4t(){const e=J(EG)??D4t,{query:t,sort:n,colIds:r,rowsCacheRef:i,colSorting:o}=R4t(),[a,s]=m.useState(()=>({row:-1,colId:""})),[l,c]=m.useState(!1),[d,f]=m.useState(Object.fromEntries(r.map(b=>[b,b_(b).width??lC.width])));m.useEffect(()=>{f(Object.fromEntries(r.map(b=>[b,b_(b).width??lC.width])))},[r]);const p=m.useCallback(({startIndex:b,endIndex:w})=>{const _=Math.max(0,b-gO),S=Math.min(w+gO,e>0?e-1:w+gO);t(_,S)},[t,e]),v=m.useMemo(()=>U4t(r,d),[r,d]),x=m.useRef(a);x.current=a,MFe("c",b=>{var w,_;if(b.ctrlKey){const S=(_=(w=i.current)==null?void 0:w.get(x.current.row.toString()))==null?void 0:_[x.current.colId];S&&(WN(S.toString()),c(!0),setTimeout(()=>{c(!1)},500))}});const y=m.useCallback((b,w)=>{f(_=>({..._,[b]:Math.max(w,b_(b).width??lC.width)}))},[]);return u.jsxs(W,{direction:"column",gap:gc,flexGrow:"1",children:[u.jsx(Z,{className:aC.headerText,children:"Peers"}),u.jsx(Mt,{flexGrow:"1",minHeight:"300px",asChild:!0,children:u.jsx(mKe,{className:Te("rt-TableRoot","rt-r-size-1","rt-variant-surface",aC.peerTable),totalCount:e,increaseViewportBy:200,rangeChanged:p,components:v,itemContent:b=>{var _;const w=(_=i.current)==null?void 0:_.get(b.toString());return w?r.map(S=>{const C=b_(S),j=C.align,T=C.format,E=w==null?void 0:w[S],$=a.row===b&&a.colId===S;return u.jsx(ni,{align:j,onClick:()=>s({row:b,colId:S}),style:{outline:$?`1px dashed var(--gray-${l?11:10})`:"none",outlineOffset:-2},children:u.jsx(Z,{truncate:!0,as:"div",children:T?T(E):E})},S)}):r!=null&&r.length?u.jsx(u.Fragment,{children:r.map(S=>u.jsx(ni,{children:"\xA0"},S))}):u.jsx(u.Fragment,{children:u.jsx(ni,{children:"&nsbsp;"})})},fixedHeaderContent:()=>u.jsx(la,{children:r.map(b=>{const{align:w}=b_(b),_=o.id===b?o.direction:void 0,S=C=>{C.preventDefault();const j=C.clientX,T=d[b],E=D=>y(b,T+(D.clientX-j)),$=()=>{window.removeEventListener("pointermove",E),window.removeEventListener("pointerup",$)};window.addEventListener("pointermove",E),window.addEventListener("pointerup",$)};return u.jsx(Wi,{align:w,p:"0",children:u.jsxs(W,{align:"center",height:"100%",children:[u.jsx(Z0,{children:u.jsx(Mt,{flexGrow:"1",className:aC.headerCell,asChild:!0,children:u.jsx("button",{onClick:()=>n(b),children:u.jsxs(W,{align:"center",gap:"1",justify:w==="right"?"end":"start",children:[w==="right"&&u.jsx(hme,{direction:_}),u.jsx(Z,{truncate:!0,title:b,as:"div",children:b}),w!=="right"&&u.jsx(hme,{direction:_})]})})})}),u.jsx("div",{style:{paddingLeft:"8px",paddingRight:"2px",cursor:"col-resize"},onPointerDown:S,children:u.jsx(ps,{orientation:"vertical",size:"2",className:aC.headerSeparator})})]})},b)})})})})]})}function hme({direction:e}){return u.jsxs(u.Fragment,{children:[e===-1&&u.jsx(F$,{height:12,width:12}),e===1&&u.jsx(U$,{height:12,width:12})]})}function U4t(e,t){return{Table:n=>u.jsxs("table",{...n,className:"rt-TableRootTable",style:{...n.style,overflow:"inherit",tableLayout:"fixed"},children:[u.jsx("colgroup",{children:e.map(r=>u.jsx("col",{style:{width:t[r]}},r))}),n.children]}),TableHead:n=>u.jsx(rp,{...n,style:{...n.style,background:"#0e131c"}}),TableRow:n=>u.jsx(la,{...n})}}function pme({activeStake:e,delinquentStake:t}){const n=m.useMemo(()=>[{id:"non-delinquent",label:"Non-delinquent",value:Number(e),color:_ne,textColor:pk},{id:"delinquent",label:"Delinquent",value:Number(t),color:fd,textColor:fd}],[e,t]);return u.jsx($s,{children:({height:r,width:i})=>u.jsx(ume,{height:r,width:i,data:n,colors:{datum:"data.color"},enableArcLabels:!1,enableArcLinkLabels:!1,layers:["arcs",B4t],tooltip:W4t,animate:!1,innerRadius:.7})})}const B4t=({dataWithArc:e,centerX:t,centerY:n})=>{const r=rt.sum(e.map(({value:i})=>i));return u.jsx("text",{y:n-6,textAnchor:"middle",dominantBaseline:"central",style:{fontSize:"12px",fill:"red"},children:e.map(({value:i,data:o,id:a},s)=>u.jsxs("tspan",{x:t,dy:`${s}em`,style:{fill:o.textColor},children:[(i/r*100).toFixed(2),"%"]},a))})};function W4t(e){const t=e.datum.value,n=Ls(BigInt(t));return u.jsx("div",{className:oC.tooltip,children:u.jsxs(Z,{children:[e.datum.label,":\xA0",n]})})}function V4t(){{const e=J(Ig);if(!e)return null;const t=Ls(e.activeStake),n=Ls(e.delinquentStake);return u.jsxs(W,{direction:"column",gap:gc,children:[u.jsx(Z,{className:oC.headerText,children:"Validator Stats"}),u.jsxs(W,{gap:eme,wrap:"wrap",children:[u.jsxs(qr,{columns:Qpe,minWidth:pO,gap:Jpe,flexGrow:"1",flexBasis:"0",children:[u.jsx(yh,{label:"Total Validators",value:e.validatorCount.toLocaleString(),valueColor:vN}),u.jsx(yh,{label:"Non-delinquent Stake",value:t,valueColor:pk}),u.jsx(yh,{label:"RPC Nodes",value:e.rpcCount.toLocaleString(),valueColor:Yu}),u.jsx(yh,{label:"Delinquent Stake",value:n,valueColor:fd})]}),u.jsx(Mt,{minWidth:eC,minHeight:eC,flexGrow:"1",flexBasis:"0",children:u.jsx(pme,{activeStake:e.activeStake,delinquentStake:e.delinquentStake})})]})]})}}const vO=2;function mme({colors:e,maxValue:t,history:n,capacity:r}){const i=m.useRef(),o=m.useRef(t);o.current=t;const a=m.useMemo(()=>{var y;if(!i.current||!n.length)return;const{height:s,width:l}=i.current;if(s<0||l<0)return;const c=r??n.length,d=c>1?l/(c-1):0,f=c-n.length,p=Math.max(o.current,Math.max(...n.flatMap(b=>b.filter(Cb))),1),v=n[n.length-1].length,x=Array.from({length:v}).map(()=>new Array);for(let b=0;bb.map(({x:w,y:_})=>`${w},${_}`).join(" "))},[n,r]);return u.jsx(Mt,{flexGrow:"1",minHeight:"80px",children:u.jsx($s,{children:({height:s,width:l})=>{if(i.current={height:s,width:l},!!a&&(a==null?void 0:a.length)===e.length)return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:l,height:s,style:{background:"#222222"},children:a.map((c,d)=>u.jsx("polyline",{points:c,stroke:e[d],strokeWidth:vO,fill:"none",strokeLinecap:"round",strokeOpacity:.8},e[d]))})}})})}const H4t=100,Z4t=3e4,yO="#197CAE",bO="var(--amber-8)",gme="#CBD4D6",vme=[yO,bO],yme=Math.ceil(Z4t/H4t);function q4t(){const{value:e,history:t}=J(IG);return u.jsxs(qr,{columns:{initial:"1",sm:"2",lg:"4"},gapY:"3",gapX:"7",children:[u.jsx(Y4t,{health:e,history:t}),u.jsx(G4t,{health:e,history:t}),u.jsx(K4t,{health:e,history:t}),u.jsx(X4t,{health:e,history:t})]})}function bme({title:e,children:t}){return u.jsxs(W,{direction:"column",gap:gc,children:[u.jsx(Z,{style:{color:"var(--primary-text-color)",fontSize:"18px"},children:e}),u.jsx(Ey,{style:{flex:1},children:t})]})}function xme({value:e,label:t,valueColor:n,pct:r}){return u.jsxs(W,{direction:"column",children:[u.jsxs(W,{gap:"2",children:[u.jsx(Z,{style:{color:"var(--gray-11)"},children:t}),u.jsxs(Z,{style:{color:"var(--gray-10)"},children:[D$.format(r*100),"%"]})]}),u.jsx(Z,{style:{color:n},size:"8",children:Math.round(e).toLocaleString()})]})}function xO({value:e,label:t,valueColor:n,pct:r,size:i}){return u.jsxs(W,{direction:"column",children:[u.jsx(Z,{style:{color:"var(--gray-11)"},children:t}),u.jsx(Z,{style:{color:n},size:i==="lg"?"8":"6",children:Math.round(e).toLocaleString()}),r!==void 0&&u.jsxs(Z,{style:{color:"var(--gray-10)"},size:"2",children:[D$.format(r*100),"%"]})]})}function uC(e,t){const n=m.useRef(t);return n.current=t,m.useMemo(()=>e.map(r=>n.current(r.value)),[e])}function G4t({health:e,history:t}){const n=e.num_push_entries_rx_success+e.num_push_entries_rx_failure,r=e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure,i=e.num_push_entries_rx_success,o=e.num_pull_response_entries_rx_success,a=i+o,s=Math.max(n,r,a),l=rt.clamp(i/n,0,1),c=rt.clamp(o/r,0,1),d=[gme,...vme],f=uC(t,p=>[p.num_push_entries_rx_success+p.num_pull_response_entries_rx_success,p.num_push_entries_rx_success,p.num_pull_response_entries_rx_success]);return u.jsx(bme,{title:"Entries Success /s",children:u.jsxs(W,{gap:"6",children:[u.jsxs(W,{direction:"column",gap:"3",children:[u.jsx(xO,{label:"Total",value:a,valueColor:gme,size:"lg"}),u.jsxs(W,{gap:"3",children:[u.jsx(xO,{label:"Push",value:i,valueColor:yO,pct:l}),u.jsx(xO,{label:"Pull",value:o,valueColor:bO,pct:c})]})]}),u.jsx(mme,{colors:d,maxValue:s,history:f,capacity:yme})]})})}function _O({title:e,valueA:t,valueB:n,totalA:r,totalB:i,labelA:o,labelB:a,history:s}){const l=t/r,c=n/i,d=Math.max(r,i);return u.jsx(bme,{title:e,children:u.jsxs(W,{gap:"6",height:"100%",children:[u.jsxs(W,{direction:"column",gap:"3",minWidth:"120px",children:[u.jsx(xme,{label:o,value:t,valueColor:yO,pct:rt.clamp(l,0,1)}),u.jsx(xme,{label:a,value:n,valueColor:bO,pct:rt.clamp(c,0,1)})]}),u.jsx(mme,{colors:vme,maxValue:d,history:s,capacity:yme})]})})}function Y4t({health:e,history:t}){const n=e.num_push_messages_rx_success+e.num_push_messages_rx_failure,r=e.num_pull_response_messages_rx_success+e.num_pull_response_messages_rx_failure,i=e.num_push_messages_rx_failure,o=e.num_pull_response_messages_rx_failure,a=uC(t,s=>[s.num_push_messages_rx_failure,s.num_pull_response_messages_rx_failure]);return u.jsx(_O,{title:"Message Failures /s",valueA:i,valueB:o,totalA:n,totalB:r,labelA:"Push",labelB:"Pull",history:a})}function K4t({health:e,history:t}){const n=e.num_push_entries_rx_success+e.num_push_entries_rx_failure,r=e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure,i=e.num_push_entries_rx_duplicate,o=e.num_pull_response_entries_rx_duplicate,a=uC(t,s=>[s.num_push_entries_rx_duplicate,s.num_pull_response_entries_rx_duplicate]);return u.jsx(_O,{title:"Entry Duplicates /s",valueA:i,valueB:o,totalA:n,totalB:r,labelA:"Push",labelB:"Pull",history:a})}function X4t({health:e,history:t}){const n=e.num_push_entries_rx_success+e.num_push_entries_rx_failure,r=e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure,i=e.num_push_entries_rx_failure-e.num_push_entries_rx_duplicate,o=e.num_pull_response_entries_rx_failure-e.num_pull_response_entries_rx_duplicate,a=uC(t,s=>[s.num_push_entries_rx_failure-s.num_push_entries_rx_duplicate,s.num_pull_response_entries_rx_failure-s.num_pull_response_entries_rx_duplicate]);return u.jsx(_O,{title:"Entry Failures /s",valueA:i,valueB:o,totalA:n,totalB:r,labelA:"Push",labelB:"Pull",history:a})}function J4t(e){var t=0,n=e.children,r=n&&n.length;if(!r)t=1;else for(;--r>=0;)t+=n[r].value;e.value=t}function Q4t(){return this.eachAfter(J4t)}function e3t(e,t){let n=-1;for(const r of this)e.call(t,r,++n,this);return this}function t3t(e,t){for(var n=this,r=[n],i,o,a=-1;n=r.pop();)if(e.call(t,n,++a,this),i=n.children)for(o=i.length-1;o>=0;--o)r.push(i[o]);return this}function n3t(e,t){for(var n=this,r=[n],i=[],o,a,s,l=-1;n=r.pop();)if(i.push(n),o=n.children)for(a=0,s=o.length;a=0;)n+=r[i].value;t.value=n})}function o3t(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function a3t(e){for(var t=this,n=s3t(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var i=r.length;e!==n;)r.splice(i,0,e),e=e.parent;return r}function s3t(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;for(e=n.pop(),t=r.pop();e===t;)i=e,e=n.pop(),t=r.pop();return i}function l3t(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function u3t(){return Array.from(this)}function c3t(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function d3t(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*f3t(){var e=this,t,n=[e],r,i,o;do for(t=n.reverse(),n=[];e=t.pop();)if(yield e,r=e.children)for(i=0,o=r.length;i=0;--s)i.push(o=a[s]=new cC(a[s])),o.parent=r,o.depth=r.depth+1;return n.eachBefore(v3t)}function h3t(){return wO(this).eachBefore(g3t)}function p3t(e){return e.children}function m3t(e){return Array.isArray(e)?e[1]:null}function g3t(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function v3t(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function cC(e){this.data=e,this.depth=this.height=0,this.parent=null}cC.prototype=wO.prototype={constructor:cC,count:Q4t,each:e3t,eachAfter:n3t,eachBefore:t3t,find:r3t,sum:i3t,sort:o3t,path:a3t,ancestors:l3t,descendants:u3t,leaves:c3t,links:d3t,copy:h3t,[Symbol.iterator]:f3t};function y3t(e){if(typeof e!="function")throw new Error;return e}function x_(){return 0}function __(e){return function(){return e}}function b3t(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function x3t(e,t,n,r,i){for(var o=e.children,a,s=-1,l=o.length,c=e.value&&(r-t)/e.value;++s_&&(_=c),T=b*b*j,S=Math.max(_/T,T/w),S>C){b-=c;break}C=S}a.push(l={value:b,dice:v1?r:1)},n}(w3t);function S3t(){var e=_me,t=!1,n=1,r=1,i=[0],o=x_,a=x_,s=x_,l=x_,c=x_;function d(p){return p.x0=p.y0=0,p.x1=n,p.y1=r,p.eachBefore(f),i=[0],t&&p.eachBefore(b3t),p}function f(p){var v=i[p.depth],x=p.x0+v,y=p.y0+v,b=p.x1-v,w=p.y1-v;b{let s=0,l=0;const c=[];for(;l{var p;const l=n[s];if(!l)return;const c=rt.sum(l.vote.map(v=>v.delinquent?0:Number(v.activated_stake))),d=ire(l.info),f=((p=l.info)==null?void 0:p.name)??void 0;return{stake:c,iconUrl:d,name:f}},[n]),o=J(yre);if(!r)return;const a=Ib(e.total_throughput);return u.jsxs(W,{direction:"column",gap:gc,minHeight:"300px",minWidth:"300px",flexGrow:"1",children:[u.jsxs(W,{justify:"between",children:[u.jsx(Z,{className:Rd.headerText,children:t}),u.jsxs("span",{children:[u.jsx(Z,{className:Rd.totalText,children:"Total"}),u.jsxs(Z,{className:Rd.throughputText,children:["\xA0",`${a.value} ${a.unit}`,"/s"]})]})]}),u.jsx(Mt,{flexGrow:"1",children:u.jsx($s,{children:({height:s,width:l})=>u.jsx(P3t,{sortedData:r,width:l,height:s,getPeerValues:i,totalActivePeersStake:o})})})]})}function P3t({sortedData:e,width:t,height:n,totalActivePeersStake:r,getPeerValues:i}){const[o,a]=m.useState(),[s,l]=m.useState(!1),c=m.useRef(),d=m.useCallback(y=>{a(b=>(y!==b&&l(!1),y))},[]),f=m.useCallback(y=>{WN(y),l(!0),clearTimeout(c.current),c.current=setTimeout(()=>l(!1),1e3)},[l]);Og(()=>{clearTimeout(c.current)});const p=m.useMemo(()=>RLe||s?"ID copied to clipboard":"Click to copy ID",[s]),v=m.useMemo(()=>{const y=wO(e).sum(w=>w.value??0),b=S3t();return b.tile(L3t),b.size([t,n]),b.round(!0),b.paddingInner(2),b(y).leaves()},[t,n,e]),x=m.useMemo(()=>{let y=[];const b=Math.ceil(e.children.length/wme.length);for(let w=0;wd(void 0),children:v.map((y,b)=>{const w=`${y.data.id}-${y.x0}-${y.x1}-${y.y0}-${y.y1}`,_=o===w;return u.jsx(O3t,{leaf:y,color:x[b],totalActivePeersStake:r,getPeerValues:i,tooltipText:_?p:void 0,openTooltip:()=>d(w),copyId:()=>f(y.data.id)},y.data.id)})})}function O3t({leaf:e,color:t,totalActivePeersStake:n,getPeerValues:r,tooltipText:i,openTooltip:o,copyId:a}){const s=e.x1-e.x0,l=e.y1-e.y0;return u.jsx(ci,{open:!!i,className:Rd.tooltip,content:i,disableHoverableContent:!0,side:"bottom",onOpenChange:c=>{c&&o()},children:u.jsx(Mt,{onClick:a,onMouseEnter:()=>{o()},className:Rd.leaf,position:"absolute",width:`${s}px`,height:`${l}px`,style:{transform:`translate(${e.x0}px, ${e.y0}px)`,"--leaf-color":t},children:u.jsx(z3t,{width:s,height:l,leaf:e,totalActivePeersStake:n,getPeerValues:r})})})}function z3t({width:e,height:t,leaf:n,totalActivePeersStake:r,getPeerValues:i}){const o=n.data.id,a=i(o),s=(a==null?void 0:a.name)||"Private",l=e>=20&&t>=20,c=e>=100&&t>=100?14:e>=55&&t>=55?12:e>=32&&t>=32?8:4,d=e>=30&&t>=38,f=t>=150,p=t>=60,v=e>=82;return u.jsxs(W,{className:Rd.leafContent,height:"100%",direction:"column",align:"center",justify:"center",overflow:"hidden",p:l?"8px":"0",gap:"4px",children:[l&&u.jsx(ks,{url:a==null?void 0:a.iconUrl,size:c}),d&&u.jsx(Z,{className:Te(Rd.name,{[Rd.large]:f}),truncate:!0,align:"center",children:s}),p&&u.jsxs(W,{className:Rd.stats,align:"center",justify:"center",gap:"5px",children:[u.jsx(D3t,{value:n.value}),v&&(a==null?void 0:a.stake)!==void 0&&u.jsx(A3t,{stake:a.stake,totalActivePeersStake:r})]})]})}function D3t({value:e}){const t=Ib(e??0);return u.jsxs(Z,{truncate:!0,children:[t.value," ",t.unit]})}function A3t({stake:e,totalActivePeersStake:t}){const n=m.useMemo(()=>{if(e===0)return"0";const r=100*e/Number(t);return r<.01?"<.01":r.toFixed(2)},[e,t]);return u.jsxs(W,{align:"center",justify:"center",gap:"3px",children:[u.jsx(fUe,{width:8,height:8}),u.jsxs(Z,{truncate:!0,children:[n,"%"]})]})}function F3t(){const e=J(TG),[t]=Bie(e,5e3,{leading:!0,maxWait:5e3}),n=e==null?void 0:e.storage;if(!xi&&!(!n||!t))return u.jsxs(W,{gap:"30px",direction:"column",align:"stretch",justify:"center",height:"100%",children:[u.jsxs(W,{gapX:"30px",gapY:hO,wrap:"wrap",children:[u.jsx(kme,{networkTraffic:t.ingress,label:"Ingress"}),u.jsx(kme,{networkTraffic:t.egress,label:"Egress"})]}),u.jsxs(W,{gap:"30px",wrap:"wrap",children:[u.jsxs(W,{direction:"column",flexGrow:"1",flexBasis:"0",gap:hO,minWidth:tC,children:[u.jsx(T4t,{storage:n}),u.jsx(Swt,{storage:n})]}),u.jsxs(W,{direction:"column",flexGrow:"1",flexBasis:"0",gap:hO,minWidth:tC,children:[u.jsx(V4t,{}),u.jsx(M4t,{messages:e.messages})]})]}),u.jsx(q4t,{}),u.jsx(F4t,{})]})}const U3t=lp("/gossip")({component:F3t,beforeLoad:({context:e,location:t})=>{if(xi)throw cT({to:"/"})}}),B3t=lp("/about")({component:W3t});function W3t(){return u.jsx("div",{className:"p-2",children:u.jsx("h3",{children:"About"})})}const dC=600,Sme=Co(new Array(dC).fill(void 0)),kO=(e,t)=>e.length?"M"+e.map(({x:n,y:r})=>`L ${n} ${t-r}`).join(" ").slice(1)+`L ${e[e.length-1].x} ${t} L ${e[0].x} ${t}, L ${e[0].x} ${e[0].y}`:"";function V3t(){const e=J(Sme),t=m.useRef(),n=Math.max(...e.map(i=>(i==null?void 0:i.total)??0)),r=m.useMemo(()=>{if(!t.current||!e.length)return;const{height:i,width:o}=t.current,a=e.length,s=(o+2)/a,l=(i-10)/(n||1),c=e.map((f,p)=>{if(f!==void 0)return{x:p*s,voteY:f.vote*l,nonvoteFailedY:(f.nonvote_failed+f.vote)*l,nonvoteY:(f.nonvote_success+f.nonvote_failed+f.vote)*l}}).filter(Cb),d=i-n*l;return{votePath:kO(c.map(f=>({x:f.x,y:f.voteY})),i),failedPath:kO(c.map(f=>({x:f.x,y:f.nonvoteFailedY})),i),nonvotePath:kO(c.map(f=>({x:f.x,y:f.nonvoteY})),i),totalTpsY:isNaN(d)?void 0:d}},[n,e]);return u.jsx(u.Fragment,{children:u.jsx($s,{children:({height:i,width:o})=>(t.current={height:i,width:o},r?u.jsx(u.Fragment,{children:u.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:o,height:i,fill:"none",children:[u.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:r.nonvotePath,fill:Sne}),u.jsx("path",{d:r.failedPath,fill:jne}),u.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",fill:Cne,d:r.votePath}),r.totalTpsY&&u.jsxs(u.Fragment,{children:[u.jsx("line",{x1:"0",y1:r.totalTpsY,x2:o,y2:r.totalTpsY,strokeDasharray:"4",stroke:"rgba(255, 255, 255, 0.30)"}),u.jsx("text",{x:"0",y:r.totalTpsY-3,fill:gN,fontSize:"8",fontFamily:"Inter Tight",children:n.toLocaleString()})]})]})}):null)})})}const H3t="_axis-text_juf3d_1",Cme={axisText:H3t},Z3t="_container_muoex_1",q3t="_label_muoex_6",G3t="_value_muoex_12",Y3t="_small_muoex_17",K3t="_medium_muoex_21",X3t="_large_muoex_25",J3t="_append-value_muoex_31",dr={container:Z3t,label:q3t,value:G3t,small:Y3t,medium:K3t,large:X3t,appendValue:J3t};function ya({label:e,value:t,valueColor:n,valueSize:r,animateInteger:i=!1,appendValue:o,appendValueColor:a,className:s}){const l=m.useMemo(()=>Te(dr.value,{[dr.small]:r==="small",[dr.medium]:r==="medium",[dr.large]:r==="large"}),[r]);return u.jsxs(W,{direction:"column",align:"start",className:Te(dr.container,s),style:{"--value-color":n},children:[u.jsx(Z,{className:dr.label,children:e}),u.jsxs(W,{align:"baseline",gap:"1",width:"100%",children:[typeof t=="number"&&i?u.jsx(Mx,{value:t,className:l}):u.jsx(Z,{className:l,children:t}),o&&u.jsx(Z,{className:dr.appendValue,style:{"--append-value-color":a},children:o})]})]})}const Q3t="_vote-tps_kqvrt_1",ekt={voteTps:Q3t};function tkt(){const e=J(OT);return u.jsxs(W,{direction:"column",gap:"2",minWidth:"100px",children:[u.jsx(ya,{label:"Total TPS",value:(e==null?void 0:e.total.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:Yu,valueSize:"medium"}),u.jsxs(W,{gap:"4",wrap:"wrap",children:[u.jsx(ya,{label:"Non-vote TPS Success",value:(e==null?void 0:e.nonvote_success.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:Hf,valueSize:"small"}),u.jsx(ya,{label:"Non-vote TPS Fail",value:(e==null?void 0:e.nonvote_failed.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:fd,valueSize:"small"}),u.jsx(ya,{label:"Vote TPS",value:(e==null?void 0:e.vote.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:hd,valueSize:"small",className:ekt.voteTps})]})]})}function nkt({className:e}){return u.jsx(so,{className:e,children:u.jsxs(W,{direction:"column",height:"100%",gap:"2",children:[u.jsx(kd,{text:"Transactions"}),u.jsxs(W,{gap:"4",flexGrow:"1",children:[u.jsx(tkt,{}),u.jsxs(W,{direction:"column",flexGrow:"1",children:[u.jsx(Mt,{flexGrow:"1",minWidth:"180px",overflow:"hidden",children:u.jsx(V3t,{})}),u.jsxs(W,{justify:"between",children:[u.jsx(Z,{className:Cme.axisText,children:"~ 1min ago"}),u.jsx(Z,{className:Cme.axisText,children:"Now"})]})]})]})]})})}const rkt="_stat-row_1ia1g_1",jme={statRow:rkt};function ikt(){const e=J(Ig);if(!e)return null;const t=Ls(e.activeStake),n=Ls(e.delinquentStake);return u.jsxs(W,{gap:"2",flexGrow:"1",children:[u.jsxs(W,{direction:"column",gap:"2",minWidth:"0",children:[u.jsxs("div",{className:jme.statRow,children:[u.jsx(ya,{label:"Total Validators",value:e.validatorCount.toString(),valueColor:vN,valueSize:"medium"}),u.jsx(ya,{label:"Non-delinquent Stake",value:t,valueColor:pk,appendValue:"SOL",valueSize:"medium"})]}),u.jsxs("div",{className:jme.statRow,children:[u.jsx(ya,{label:"RPC Nodes",value:e.rpcCount.toString(),valueColor:Yu,valueSize:"small"}),u.jsx(ya,{label:"Delinquent Stake",value:n,valueColor:fd,appendValue:"SOL",valueSize:"small"})]})]}),u.jsx(Mt,{style:{minWidth:"200px"},children:u.jsx(pme,{activeStake:e.activeStake,delinquentStake:e.delinquentStake})})]})}function okt(){return J(Ig)?u.jsx(so,{children:u.jsxs(W,{direction:"column",height:"100%",gap:"2",children:[u.jsx(kd,{text:"Validators"}),u.jsx(ikt,{})]})}):null}const akt="_stat-row_11bim_1",Tme={statRow:akt};function skt(){return u.jsx(so,{children:u.jsxs(W,{direction:"column",height:"100%",gap:"2",align:"start",children:[u.jsx(kd,{text:"Status"}),u.jsxs("div",{className:Tme.statRow,children:[u.jsx(lkt,{}),u.jsx(ckt,{})]}),u.jsxs("div",{className:Tme.statRow,children:[u.jsx(dkt,{}),u.jsx(ukt,{})]})]})})}function lkt(){const e=J(oo);return u.jsx(Mt,{children:u.jsx(ya,{label:"Slot",value:e??"",valueColor:Yu,valueSize:"medium",animateInteger:!0})})}function ukt(){const{nextLeaderSlot:e}=Ox({showNowIfCurrent:!0});return u.jsx(ya,{label:"Next leader slot",value:(e==null?void 0:e.toString())??"\u221E",valueColor:Gte,valueSize:e===void 0?"large":"small"})}function ckt(){const{progressSinceLastLeader:e,nextSlotText:t}=Ox({showNowIfCurrent:!0});return u.jsxs(W,{direction:"column",children:[u.jsx(ya,{label:"Time until leader",value:t,valueColor:Yu,valueSize:"medium"}),u.jsx(a1,{value:e})]})}function dkt(){const e=J(DT),t=J(RG),n=m.useMemo(()=>e==="voting"?pN:e==="non-voting"?Yte:e==="delinquent"?fd:gN,[e]),r=m.useMemo(()=>t==null||e==="delinquent"?void 0:`${t>150?"> 150":t} behind`,[t,e]);return u.jsx(ya,{label:"Vote Status",value:e??"Unknown",valueColor:n,valueSize:"small",appendValue:r,appendValueColor:wne})}const fkt="_stat-row_kmlhn_1",hkt="_progress_kmlhn_13",SO={statRow:fkt,progress:hkt};function pkt(){return u.jsx(so,{children:u.jsxs(W,{direction:"column",height:"100%",gap:"2",align:"start",children:[u.jsx(kd,{text:"Epoch"}),u.jsx("div",{className:SO.statRow,children:u.jsx(mkt,{})}),u.jsx("div",{className:SO.statRow,children:u.jsx(gkt,{})})]})})}function mkt(){var t;const e=J(fi);return u.jsx(Mt,{children:u.jsx(ya,{label:"Current Epoch",value:((t=e==null?void 0:e.epoch)==null?void 0:t.toString())??"",valueColor:Yu,valueSize:"medium"})})}function gkt(){const e=J(oo),t=J(fi),n=J(Eg),r=m.useMemo(()=>{if(t===void 0||e===void 0)return"";const o=(t.end_slot-e)*n,a=fn.fromMillis(o).rescale();return kp(a)},[t,e,n]),i=m.useMemo(()=>{if(t===void 0||e===void 0)return 0;const o=e-t.start_slot,a=t.end_slot-t.start_slot,s=o/a*100;return s<0||s>100?0:s},[t,e]);return u.jsxs(W,{direction:"column",children:[u.jsx(ya,{label:"Time to Next Epoch",value:r,valueColor:Yu,valueSize:"medium"}),u.jsx(a1,{className:SO.progress,value:i})]})}function vkt(){if(!xi)return u.jsx(so,{style:{padding:"10px 13px 10px 10px"},children:u.jsxs(W,{direction:"column",gap:"4",children:[u.jsxs(W,{gapX:"15px",gapY:"2",align:"center",wrap:"wrap",children:[u.jsx(kd,{text:"Shreds"}),u.jsx(Ese,{})]}),u.jsx(hse,{height:"400px",chartId:"overview-shreds-chart",isOnStartupScreen:!1})]})})}const ykt="_chart_7b67t_1",bkt="_table_7b67t_7",xkt="_row_7b67t_7",_kt="_total-row_7b67t_8",w_={chart:ykt,table:bkt,row:xkt,totalRow:_kt},Ime=18;function wkt(){const e=J(zT),t=J(_G),n=J(wG);if(e)return u.jsxs(W,{wrap:"wrap",gap:"4",children:[u.jsx(Eme,{metrics:e.ingress,history:t.history,type:"Ingress"}),u.jsx(Eme,{metrics:e.egress,history:n.history,type:"Egress"})]})}function Eme({metrics:e,history:t,type:n}){return u.jsx(so,{style:{flexGrow:1},children:u.jsxs(W,{direction:"column",height:"100%",gap:gc,children:[u.jsxs(Z,{className:Md.headerText,children:["Network ",n]}),u.jsxs(q0,{variant:"ghost",className:Te(Md.root,w_.table),size:"1",style:{"--bar-height":`${Ime}px`},children:[u.jsx(rp,{children:u.jsxs(la,{children:[u.jsx(Wi,{width:"60px",children:"Protocol"}),u.jsx(Wi,{align:"right",width:"80px",children:"Current"}),u.jsx(Wi,{minWidth:{xl:"250px",lg:"160px",md:"100px",initial:"60px"},children:"Utilization"}),u.jsx(Wi,{align:"right",width:{xl:"240px",lg:"200px",md:"100px",initial:"200px"},children:"History (1m)"})]})}),u.jsxs(G0,{children:[e.map((r,i)=>{const o=H$[i];if(!(xi&&(o==="gossip"||o==="repair")))return u.jsx($me,{label:o,value:r,maxValue:aoe[n][o],history:t,mapHistory:a=>a[i]??0},i)}),u.jsx($me,{label:"Total",value:rt.sum(e),maxValue:aoe[n].Total,history:t,mapHistory:rt.sum,className:w_.totalRow})]})]})]})})}const kkt=1e8;function Nme(e,t){return Math.min(1,e/t)}const Skt={halfLifeMs:1e3};function $me({label:e,value:t,maxValue:n=kkt,history:r,mapHistory:i,className:o}){const a=Bg(t,Skt),s=Ib(a),l=Nme(a,n),c=m.useRef(i);c.current=i;const d=m.useMemo(()=>r.map(f=>({ts:f.ts,value:Nme(c.current(f.values),n)})),[r,n]);return u.jsxs(la,{className:Te(w_.row,o),children:[u.jsx($4,{children:e}),u.jsxs(ni,{align:"right",children:[s.value," ",s.unit]}),u.jsx(ni,{className:w_.chart,children:u.jsx(W,{align:"center",children:u.jsx(Y$,{value:a,max:n,barWidth:2})})}),u.jsx(ni,{className:w_.chart,children:u.jsx(cx,{value:l,history:d,background:vk,windowMs:6e4,height:Ime,updateIntervalMs:500,tickMs:1e3})})]})}const Ckt="_group-header_1lbrc_1",jkt="_header_1lbrc_6",Tkt="_wrap_1lbrc_9",Ikt="_table_1lbrc_15",Ekt="_data-row_1lbrc_19",Nkt="_green_1lbrc_20",$kt="_red_1lbrc_24",Mkt="_pct-gradient_1lbrc_43",Rkt="_no-padding_1lbrc_51",Lkt="_increment-text_1lbrc_56",Pkt="_low-increment_1lbrc_61",Okt="_mid-increment_1lbrc_64",zkt="_high-increment_1lbrc_67",Dkt="_light-border-bottom_1lbrc_79",Akt="_right-border_1lbrc_83",fr={groupHeader:Ckt,header:jkt,wrap:Tkt,table:Ikt,dataRow:Ekt,green:Nkt,red:$kt,pctGradient:Mkt,noPadding:Rkt,incrementText:Lkt,lowIncrement:Pkt,midIncrement:Okt,highIncrement:zkt,lightBorderBottom:Dkt,rightBorder:Akt},Fkt="_table-description-dialog_1shm8_1",Ukt="_table_1shm8_1",Bkt="_th_1shm8_8",Wkt="_tr_1shm8_14",Vkt="_name_1shm8_22",Hkt="_close-button_1shm8_28",bh={tableDescriptionDialog:Fkt,table:Ukt,th:Bkt,tr:Wkt,name:Vkt,closeButton:Hkt},CO=[{name:"",pinned:!0,metrics:[{uniqueName:"Name",description:"The name and index of each tile. A tile represents a sandboxed process or individual thread that communicates with other tiles using message passing queues.",headerColWidth:70}]},{name:"Liveness",metrics:[{uniqueName:"CPU",description:"The CPU index on which the tile was last recorded executing.",headerColWidth:50,headerColAlign:"right"},{uniqueName:"Heartbeat",description:"Liveness indicator based on a periodic heartbeat timestamp written by tiles to a chunk of shared memory.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"Backp",description:"If a tile is backpressured, at least one outgoing message queue is at-capacity which can prevent the tile from moving forward with useful work.",headerColWidth:60,headerColAlign:"right"},{uniqueName:"Backp Count",description:"The number of cumulative | immediate (10ms) times a CPU transitioned into a backpressured state.",headerColWidth:120,headerColAlign:"right"}]},{name:"Utilization",metrics:[{uniqueName:"Utilization",description:"Visualized the percentage of the tile's CPU time spent doing useful work. Time spent in a context switch is not included.",headerColWidth:150},{uniqueName:"History (1m)",description:"A historical, low-pass-filtered view of CPU utilization.",headerColWidth:150}]},{name:"System",metrics:[{uniqueName:"% Hkeep",description:"The percentage of CPU time spent on housekeeping tasks, which are meant to be infrequent and generally more expensive than tasks on the critical path.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"% Wait",description:"The percentage of CPU time spent waiting for useful work to do.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"% Backp",description:"The percentage of CPU time during which the tile was backpressured, excluding housekeeping time.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"% Work",description:"The percentage of CPU time spent performing useful work, excluding housekeeping and backpressured time.",headerColWidth:70,headerColAlign:"right"}]},{name:"Scheduler",metrics:[{uniqueName:"% Wait (scheduler)",columnName:"% Wait",description:"The percentage of CPU time spent waiting in the runqueue before being dispatched.",headerColWidth:70,headerColAlign:"right",wrap:!0},{uniqueName:"% User (scheduler)",columnName:"% User",description:"The percentage of CPU time spent executing in user mode.",headerColWidth:70,headerColAlign:"right",wrap:!0},{uniqueName:"% System (scheduler)",columnName:"% System",description:"The percentage of CPU time spent executing in kernel mode.",headerColWidth:70,headerColAlign:"right",wrap:!0},{uniqueName:"% Idle (scheduler)",columnName:"% Idle",description:"The percentage of CPU time unaccounted for by the other 3 regimes.",headerColWidth:70,headerColAlign:"right",wrap:!0}]},{name:"Exceptions",metrics:[{uniqueName:"Minflt",description:"The number of cumulative minor page faults. Minor page faults occur for pages in RAM not indexed by the page table.",headerColWidth:60,headerColAlign:"right"},{uniqueName:"Majflt",description:"The number of cumulative major page faults. Major page faults occur for pages that are neither in RAM nor the page table.",headerColWidth:60,headerColAlign:"right"},{uniqueName:"Nivcsw",description:"The number of cumulative | immediate (10ms) involuntary context switches.",headerColWidth:150,headerColAlign:"right"},{uniqueName:"Nvcsw",description:"The number of cumulative | immediate (10ms) voluntary context switches.",headerColWidth:150,headerColAlign:"right"}]}],Mme=CO.filter(({pinned:e})=>e),Zkt=CO.filter(({pinned:e})=>!e),Rme=Mme.reduce((e,t)=>{for(const n of t.metrics)e+=n.headerColWidth;return e},1);function qkt(){return u.jsxs(WZ,{children:[u.jsx(VZ,{children:u.jsx(W,{children:u.jsx(ci,{content:"Click to view column definitions.",children:u.jsx(Zie,{color:"var(--gray-11)",cursor:"pointer"})})})}),u.jsxs(HZ,{maxHeight:"85dvh",maxWidth:`min(80dvw, calc(0.8 * ${Zte}))`,size:"1",className:bh.tableDescriptionDialog,children:[u.jsx(ZZ,{size:"2",className:bh.title,mb:"0px",children:"Column Definitions"}),u.jsxs(q0,{size:"1",className:bh.table,children:[u.jsx("colgroup",{children:u.jsx("col",{style:{width:"110px"}})}),u.jsx(rp,{children:u.jsxs(la,{children:[u.jsx(Wi,{className:bh.th,children:"Column"}),u.jsx(Wi,{className:bh.th,children:"Definition"})]})}),u.jsx(G0,{children:CO.map(e=>e.metrics.map(t=>u.jsxs(la,{className:bh.tr,children:[u.jsx(ni,{className:bh.name,children:t.uniqueName}),u.jsx(ni,{children:t.description})]},t.uniqueName)))})]}),u.jsx(W,{justify:"end",children:u.jsx(qZ,{children:u.jsx(hs,{className:bh.closeButton,children:"Close"})})})]})]})}const Lme=18,Gkt=m.memo(function(){return u.jsx(so,{children:u.jsxs(W,{direction:"column",gap:gc,width:"100%",children:[u.jsxs(W,{align:"center",gap:"2",children:[u.jsx(Z,{className:Md.headerText,children:"Tiles"}),u.jsx(qkt,{})]}),u.jsx(Ykt,{})]})})});function Ykt(){return u.jsxs(W,{children:[u.jsx(Pme,{isPinned:!0}),u.jsx(Pme,{isPinned:!1})]})}function Pme({isPinned:e}){const t=J(rg),n=J(CG),r=e?Mme:Zkt,i=m.useMemo(()=>({"--bar-height":`${Lme}px`,minWidth:e?`${Rme}px`:"0px",flexBasis:e?`${Rme}px`:void 0}),[e]);if(!(!t||!n))return u.jsxs(q0,{variant:"ghost",className:Te(Md.root,fr.table),size:"1",style:i,children:[u.jsx("colgroup",{children:r.map(o=>o.metrics.map(a=>u.jsx("col",{style:{width:a.headerColWidth}},a.uniqueName)))}),u.jsxs(rp,{className:fr.header,children:[u.jsx(la,{children:r.map((o,a)=>u.jsx(Wi,{colSpan:o.metrics.length,className:Te(fr.groupHeader,{[fr.rightBorder]:e||a!==r.length-1}),children:o.name},o.name))}),u.jsx(la,{className:fr.lightBorderBottom,children:r.map((o,a)=>o.metrics.map((s,l)=>u.jsx(Wi,{align:s.headerColAlign,className:Te({[fr.wrap]:!!s.wrap,[fr.rightBorder]:e||a!==r.length-1&&l===o.metrics.length-1}),children:s.columnName??s.uniqueName},s.uniqueName)))})]}),u.jsx(G0,{children:t.map((o,a)=>u.jsx(Kkt,{tile:o,liveTileMetrics:n,idx:a,isPinned:e},`${o.kind}${o.kind_id}`))})]})}function Kkt({tile:e,liveTileMetrics:t,idx:n,isPinned:r}){const i=A$(t,(s,l)=>s?l?Object.keys(l).every(c=>{var d,f;return rt.isEqual((d=s[c])==null?void 0:d[n],(f=l[c])==null?void 0:f[n])}):!0:!1),o=t.alive[n]??(i==null?void 0:i.alive[n]);if(o===2)return;const a=t.timers[n]||(i==null?void 0:i.timers[n]);if(a)return r?u.jsx(la,{className:fr.dataRow,children:u.jsxs(ni,{className:fr.rightBorder,children:[e.kind,":",e.kind_id]})}):u.jsx(Xkt,{alive:o,timers:a,liveTileMetrics:t,prevLiveTileMetricsIdx:i,idx:n})}function Xkt({alive:e,timers:t,liveTileMetrics:n,prevLiveTileMetricsIdx:r,idx:i}){const o=A$(n.sched_timers[i]),a=n.sched_timers[i]||o||[],[s,l,c,d]=a.map(D=>D===-1?0:D),f=n.nivcsw[i]??(r==null?void 0:r.nivcsw[i]),p=n.nvcsw[i]??(r==null?void 0:r.nvcsw[i]),v=n.in_backp[i]??(r==null?void 0:r.in_backp[i]),x=n.backp_msgs[i]??(r==null?void 0:r.backp_msgs[i]),y=n.last_cpu[i]??(r==null?void 0:r.last_cpu[i]),b=n.minflt[i]??(r==null?void 0:r.minflt[i]),w=n.majflt[i]??(r==null?void 0:r.majflt[i]),_=ox(f),S=ox(p),C=ox(x);for(let D=0;D1})}),u.jsx(xh,{pct:T}),u.jsx(xh,{pct:E,className:Te({[fr.red]:E>0})}),u.jsx(xh,{pct:$,className:Te(fr.pctGradient,fr.rightBorder),style:{"--pct":`${$}%`}}),u.jsx(xh,{pct:s}),u.jsx(xh,{pct:c}),u.jsx(xh,{pct:d}),u.jsx(xh,{pct:l,className:fr.rightBorder}),u.jsx(ni,{align:"right",children:(b==null?void 0:b.toLocaleString())??"-"}),u.jsx(ni,{align:"right",children:(w==null?void 0:w.toLocaleString())??"-"}),u.jsxs(ni,{align:"right",children:[(f==null?void 0:f.toLocaleString())??"-"," |",u.jsx(Ome,{value:f!=null&&_!=null?f-_:0})]}),u.jsxs(ni,{align:"right",children:[(p==null?void 0:p.toLocaleString())??"-"," |",u.jsx(Ome,{value:p!=null&&S!=null?p-S:0})]})]})}function Ome({value:e}){const t=e.toLocaleString();return u.jsxs(Z,{className:Te(fr.incrementText,{[fr.lowIncrement]:1<=e&&e<=10,[fr.midIncrement]:11<=e&&e<=100,[fr.highIncrement]:e>=101}),children:["+",t]})}function xh({pct:e,...t}){return u.jsx(ni,{align:"right",...t,children:e==null?"--":`${e.toFixed(2)}%`})}const zme=300,Jkt=m.memo(function({idx:e}){const t=J(l3),n=J(jG),r=t!=null&&t[e]&&t[e]>=0?1-Math.max(0,t[e]):-1,i=A$(r,(c,d)=>!(d!=null&&c!=null&&d>=0&&c>=0&&d!==c)),o=m.useRef({count:0,sum:0}),[a,s]=m.useState(r);m.useEffect(()=>{r>=0&&(o.current.count++,o.current.sum+=r)},[r]),rx(()=>{o.current.count!==0&&(s(o.current.sum/o.current.count),o.current={count:0,sum:0})},zme);const l=m.useMemo(()=>n.history.map(c=>{const d=c.values[e]??0;return{ts:c.ts,value:d>=0?1-Math.max(0,d):0}}),[n.history,e]);return u.jsxs(u.Fragment,{children:[u.jsx(ni,{className:fr.noPadding,children:u.jsx(W,{align:"center",children:u.jsx(Y$,{value:r>=0?r:i??0,max:1,barWidth:2})})}),u.jsx(ni,{className:Te(fr.noPadding,fr.rightBorder),children:u.jsx(cx,{value:a,history:l,background:vk,windowMs:6e4,height:Lme,updateIntervalMs:zme,tickMs:1e3})})]})}),Qkt="_slot-label-card_1pson_1",e6t="_slot-label-name_1pson_13",t6t="_slot-label-dt_1pson_16",n6t="_dt-sign_1pson_19",r6t="_slot-bar_1pson_24",i6t="_dim_1pson_29",o6t="_slot-bar-track_1pson_34",a6t="_next-leader-container_1pson_38",s6t="_next-leader-timer-label_1pson_44",l6t="_next-leader-timer-container_1pson_50",wl={slotLabelCard:Qkt,slotLabelName:e6t,slotLabelDt:t6t,dtSign:n6t,slotBar:r6t,dim:i6t,slotBarTrack:o6t,nextLeaderContainer:a6t,nextLeaderTimerLabel:s6t,nextLeaderTimerContainer:l6t};function Dme(e){return m.useMemo(()=>{const t=new Map,n=r=>{var i;r.slot!=null&&(t.has(r.slot)?(i=t.get(r.slot))==null||i.push(r):t.set(r.slot,[r]))};for(const r of e)n(r);return t},[e])}const jO=2,O1=`${jO}px`,zm="5px",Ame=2,Fme=34,k_=Fme-Fme%2,u6t="#A09000",c6t="#0ABF9E",d6t="#4AA7C1",f6t="#08A24D",h6t="#AC4902",p6t="#3F7BF4",m6t="#AF49F2",g6t="#2497EE",v6t="#A09000",y6t="#0ABF9E",b6t="#4AA7C1",x6t="#08A24D",_6t="#AC4902",w6t="#3F7BF4",k6t="#AF49F2",S6t="#2497EE";function C6t(){if(!J(ol))return u.jsx(so,{children:u.jsxs(W,{direction:"column",height:"100%",gap:gc,children:[u.jsx(Z,{style:{color:"var(--primary-text-color)",fontSize:"18px"},children:"Slots"}),u.jsx(T6t,{})]})})}function j6t(e,t){if(!(t==null||e==null))return e-t}function _h(e,t,n,r,i){return{label:e,slot:t,slotDt:j6t(t,n),labelColor:r,barColor:i}}const Ume=14,S_=m.createContext({barWidth:Ume,shrinkSlotsLabel:!1,useLabelGrid:!1});function T6t(){const[e,t]=m.useState(Ume),n=J(vG),r=J(pG),i=J(PT),o=J(yG),a=J(Gy),s=J(dp),l=J(mG),c=J(Rb),d=Hn("(max-width: 1300px)"),f=Hn("(max-width: 1000px)"),{storageSlotBar:p,rootSlotBar:v,voteSlotBar:x,repairSlotBar:y,turbineSlotBar:b,replaySlotBar:w,optimisticallyConfirmedBar:_,nextLeaderSlotBar:S}=m.useMemo(()=>{const $=_h("Storage",n,s,u6t,v6t),D=_h("Root",r,s,c6t,y6t),M=_h("Voted",i,s,d6t,b6t),O=_h("Repair",o,s,h6t,_6t),te=_h("Turbine",a,s,p6t,w6t),q=_h("Processed",s,s,f6t,x6t),P=_h("Confirmed",l,s,m6t,k6t),X=_h("Next Leader",c,s,g6t,S6t);return{storageSlotBar:$,rootSlotBar:D,voteSlotBar:M,repairSlotBar:O,turbineSlotBar:te,replaySlotBar:q,optimisticallyConfirmedBar:P,nextLeaderSlotBar:X}},[c,l,o,s,r,n,a,i]),C=m.useMemo(()=>({barWidth:e,shrinkSlotsLabel:d,useLabelGrid:f}),[e,d,f]);if(!s)return;const j=Eb([x.slot,y.slot,b.slot,w.slot,_.slot]),T=r!=null||n!=null?Math.max(k_,Eb([s,a])-Eb([r,n])):k_,E=Math.max(T/8,k_/2+(k_-T));return u.jsxs(S_.Provider,{value:C,children:[f&&u.jsx($6t,{storageSlotBar:p,rootSlotBar:v,voteSlotBar:x,repairSlotBar:y,turbineSlotBar:b,confirmedSlotBar:_,replaySlotBar:w,nextLeaderSlotBar:S}),u.jsxs(W,{gap:O1,children:[u.jsx(I6t,{storageSlotBar:p,rootSlotBar:v,repairSlotBar:y}),u.jsxs(qr,{columns:`${T}fr ${E}fr`,gapX:O1,flexGrow:"1",children:[u.jsx(E6t,{voteSlotBar:x,repairSlotBar:y,turbineSlotBar:b,replaySlotBar:w,confirmedSlotBar:_,minSlot:r??s-32,maxSlot:j,setBarWidth:t}),u.jsx(N6t,{nextLeaderSlotBar:S,minSlot:j})]})]})]})}const Bme=20;function I6t({storageSlotBar:e,rootSlotBar:t,repairSlotBar:n}){const{barWidth:r,useLabelGrid:i}=m.useContext(S_),[o,a]=Ss(),s=m.useMemo(()=>[e,t],[t,e]),l=m.useMemo(()=>[...s,n],[n,s]),c=Dme(l),d=m.useMemo(()=>{if(!r)return 0;const _=a.width-(r*3-jO*2),S=Math.max(Ame,r/2);return Math.min(20,Math.trunc(_/S))},[r,a.width]),f=Eb([e.slot,t.slot]),p=Pze([e.slot,t.slot,n.slot])-1,v=f-p,x=v<7?r:void 0,y=v>Bme,b=y?Bme:v,w=f-b;return u.jsxs(W,{direction:"column",gap:zm,minWidth:i?"30px":void 0,children:[!i&&u.jsx(W,{gap:zm,justify:"end",children:s.map(_=>u.jsx(vu,{slotBarInfo:_},_.label))}),u.jsxs(W,{style:{opacity:.6},className:wl.slotBarTrack,align:"stretch",justify:"end",gap:O1,ref:o,children:[u.jsx(Vme,{count:d}),Array.from({length:b}).map((_,S)=>{const C=w+S+1,j=y&&S===0?c.get(n.slot??0):c.get(C);return j?u.jsx(TO,{colors:j.map(({barColor:T})=>T),barWidth:x},C):u.jsx(fC,{barWidth:x},C)})]})]})}function E6t({voteSlotBar:e,repairSlotBar:t,turbineSlotBar:n,replaySlotBar:r,confirmedSlotBar:i,maxSlot:o,minSlot:a,setBarWidth:s}){const[l,{width:c}]=Ss(),{useLabelGrid:d}=m.useContext(S_),f=m.useMemo(()=>[e,i,r,t,n],[i,t,r,n,e]),p=Dme(f),v=rt.clamp(o-a,k_,100),x=m.useRef(v);return x.current=v,m.useEffect(()=>{if(c){const y=Math.trunc((c-jO*(v-1))/v);s(y)}},[v,s,c]),u.jsxs(W,{direction:"column",gap:zm,ref:l,minWidth:"100px",children:[!d&&u.jsx(W,{gap:zm,justify:"end",children:f.map(y=>u.jsx(vu,{slotBarInfo:y},y.label))}),u.jsx(W,{style:{opacity:.6},className:wl.slotBarTrack,align:"stretch",justify:"end",gap:O1,children:Array.from({length:v}).map((y,b)=>{const w=a+b+1,_=p.get(w);return _?u.jsx(TO,{colors:_.map(({barColor:S})=>S)},w):u.jsx(fC,{},w)})})]})}function N6t({nextLeaderSlotBar:e,minSlot:t}){const{barWidth:n,useLabelGrid:r}=m.useContext(S_),[i,o]=Ss(),a=m.useMemo(()=>{if(!n)return 0;const l=o.width-n,c=Math.max(Ame,n/2);return Math.trunc(l/c)},[n,o.width]),s=e.slot!=null?Math.min(a,e.slot-t):a;return u.jsxs(W,{direction:"column",gap:zm,minWidth:"0",className:wl.nextLeaderContainer,justify:"between",children:[!r&&u.jsxs(W,{justify:"end",gap:zm,children:[u.jsx(Wme,{}),u.jsx(vu,{slotBarInfo:e},e.label)]}),u.jsxs(W,{style:{opacity:.6},className:wl.slotBarTrack,align:"stretch",justify:"end",gap:O1,ref:i,children:[u.jsx(Vme,{count:s}),e.slot&&u.jsx(TO,{colors:[e.barColor],barWidth:n/2})]})]})}function Wme(){const{progressSinceLastLeader:e,nextSlotText:t}=Ox({showNowIfCurrent:!1});return u.jsxs(W,{direction:"column",flexGrow:"1",p:"5px",align:"stretch",justify:"between",minWidth:"70px",className:wl.nextLeaderTimerContainer,children:[u.jsxs(Z,{align:"center",wrap:"nowrap",children:[u.jsx(Z,{style:{color:"#919191"},className:wl.nextLeaderTimerLabel,children:"Time Until Leader"}),u.jsxs(Z,{style:{color:"#BCBCBC"},children:["\xA0",t]})]}),u.jsx("div",{children:u.jsx(a1,{value:e,height:"2px",duration:"500ms"})})]})}const vu=m.memo(function({slotBarInfo:e}){const{shrinkSlotsLabel:t}=m.useContext(S_),{slot:n,slotDt:r,labelColor:i,label:o}=e;if(n==null||r==null)return;const a=`${o}${t?"":" Slot"}`,s=`${Math.abs(r)}`;return u.jsxs(W,{direction:"column",align:"stretch",className:wl.slotLabelCard,minWidth:"50px",children:[u.jsxs(W,{gap:"5px",justify:"between",align:"stretch",style:{color:i},children:[u.jsx(Z,{className:wl.slotLabelName,weight:"bold",wrap:"nowrap",truncate:!0,dir:"rtl",children:a}),e.label==="Processed"?u.jsx(Z,{style:{fontSize:"10px",lineHeight:"14px"},children:"\u{1F4CD}"}):u.jsxs(Z,{truncate:!0,className:wl.slotLabelDt,weight:"bold",children:[e.label!=="Next Leader"&&u.jsx(Za,{className:wl.dtSign,children:r===0?" ":r>0?"+":"-"}),u.jsx(Z,{truncate:!0,children:s})]})]}),u.jsx(Mx,{value:n,containerRowJustify:"center"})]})});function TO({colors:e,barWidth:t}){const n=t?void 0:"1";return u.jsx(qr,{rows:"repeat(auto-fill, 1fr)",gap:O1,flexGrow:n,children:e.map(r=>u.jsx(fC,{barWidth:t,color:r},r))})}const fC=m.memo(function({isDim:e,color:t,barWidth:n}){const r=n?void 0:"1";return u.jsx(Mt,{width:`${n}px`,flexGrow:r,className:Te(wl.slotBar,{[wl.dim]:e}),style:{"--bar-color":t}})}),Vme=function({count:e}){return Array.from({length:e}).map((t,n)=>u.jsx(fC,{isDim:!0},n))};function $6t({storageSlotBar:e,rootSlotBar:t,voteSlotBar:n,repairSlotBar:r,turbineSlotBar:i,replaySlotBar:o,confirmedSlotBar:a,nextLeaderSlotBar:s}){return u.jsxs(qr,{columns:{xs:"4",initial:"2"},gap:zm,children:[u.jsx(vu,{slotBarInfo:e}),u.jsx(vu,{slotBarInfo:t}),u.jsx(vu,{slotBarInfo:n}),u.jsx(vu,{slotBarInfo:a}),u.jsx(vu,{slotBarInfo:o}),u.jsx(vu,{slotBarInfo:r}),u.jsx(vu,{slotBarInfo:i}),u.jsx(vu,{slotBarInfo:s}),u.jsx(Mt,{gridColumn:{xs:"span 4",initial:"span 2"},children:u.jsx(Wme,{})})]})}const M6t="_stat-row_1xsdi_1",R6t="_storage-stat-container_1xsdi_10",IO={statRow:M6t,storageStatContainer:R6t},L6t="_trailing_10pox_1",P6t={trailing:L6t};function O6t(e,t,n){const r=t.indexOf("."),i=n.indexOf("."),o=r!==-1?r:t.length,a=i!==-1?i:n.length,s=e-o,l=a+s;return l<0||l>=n.length||t[e]!==n[l]}function EO({value:e,changedColor:t,unchangedColor:n,className:r}){const i=m.useRef(void 0);m.useEffect(()=>{i.current=e},[e]);const o=i.current,a=e.split(""),s=o===void 0?0:a.findIndex((l,c)=>O6t(c,e,o));return u.jsx(Z,{className:r,children:a.map((l,c)=>{const d=s!==-1&&c>=s;return u.jsx("span",{style:{color:d?t:n},children:l},c)})})}const NO={Unknown:{changed:fk,unchanged:hk},Good:{changed:mne,unchanged:gne},Average:{changed:vne,unchanged:yne},Bad:{changed:bne,unchanged:xne}};function z6t(){const e=J(c3),{percentage:t,hits:n,misses:r,status:i}=m.useMemo(()=>{if(!e)return{percentage:"-",hits:"-",misses:"-",status:"Unknown"};const{hits:o,lookups:a}=e,s=a===0?0:o/a*100,l=a===0?"Unknown":s<99.95?"Bad":s<99.999?"Average":"Good";return{percentage:(Math.trunc(s*100)/100).toFixed(2),hits:o.toLocaleString(),misses:(a-o).toLocaleString(),status:l}},[e]);return u.jsxs(W,{className:Te(dr.container),direction:"column",align:"start",gap:"1",children:[u.jsxs(Z,{className:dr.label,children:[u.jsx(Z,{children:"Hit Rate"})," ",u.jsx(Z,{className:P6t.trailing,children:"Trailing 1m"})," ",u.jsx(Z,{style:{color:NO[i].unchanged},children:i})]}),u.jsxs(W,{gap:"2",align:"center",children:[u.jsxs(W,{align:"baseline",gap:"1",minWidth:"70px",children:[u.jsx(EO,{value:t,changedColor:NO[i].changed,unchangedColor:NO[i].unchanged,className:Te(dr.value,dr.small)}),u.jsx(Z,{className:dr.appendValue,children:"%"})]}),u.jsxs(W,{align:"baseline",gap:"1",children:[u.jsx(EO,{value:n,changedColor:fk,unchangedColor:hk,className:Te(dr.value,dr.small)}),u.jsx(Z,{className:dr.appendValue,children:"Hits"})]}),u.jsxs(W,{align:"baseline",gap:"1",children:[u.jsx(EO,{value:r,changedColor:fk,unchangedColor:hk,className:Te(dr.value,dr.small)}),u.jsx(Z,{className:dr.appendValue,children:"Misses"})]})]})]})}function D6t(){const e=J(c3),{progress:t,numerator:n,denominator:r}=m.useMemo(()=>{if(!e)return{progress:0,numerator:{value:"-",unit:"B"},denominator:{value:"-",unit:"B"}};const{size_bytes:i,free_bytes:o}=e,a=i-o,s=Da(a,2),l=Da(i,2),c=i?rt.clamp(a/i*100,0,100):0,d=Sg.findIndex(f=>f.unit===s.unit);return Sg.findIndex(f=>f.unit===l.unit)===d+1?{numerator:Da(a,3,l.unit),denominator:l,progress:c}:{numerator:s,denominator:l,progress:c}},[e]);return u.jsxs(W,{direction:"column",className:IO.storageStatContainer,children:[u.jsxs(W,{className:dr.container,direction:"column",align:"start",children:[u.jsx(Z,{className:dr.label,children:"Storage"}),u.jsxs(W,{align:"baseline",gap:"1",children:[u.jsx(Z,{className:Te(dr.value,dr.small),style:{color:Yu},children:n.value}),n.unit!==r.unit&&u.jsx(Z,{className:dr.appendValue,children:n.unit}),u.jsx(Z,{className:Te(dr.value,dr.small),children:"/"}),u.jsx(Z,{className:Te(dr.value,dr.small),children:r.value}),u.jsx(Z,{className:dr.appendValue,children:r.unit})]})]}),u.jsx(a1,{value:t})]})}function A6t(){return u.jsx(so,{children:u.jsxs(W,{direction:"column",height:"100%",gap:"2",align:"start",children:[u.jsx(kd,{text:"Program Cache"}),u.jsxs("div",{className:IO.statRow,children:[u.jsx(z6t,{}),u.jsx(D6t,{})]}),u.jsx("div",{className:IO.statRow,children:u.jsx(F6t,{})})]})})}function F6t(){const e=J(c3);return u.jsxs(u.Fragment,{children:[u.jsx($O,{label:"Insertions",numTimes:e==null?void 0:e.insertions,bytes:e==null?void 0:e.insertion_bytes}),u.jsx($O,{label:"Evictions",numTimes:e==null?void 0:e.evictions,bytes:e==null?void 0:e.eviction_bytes}),u.jsx($O,{label:"Spills",numTimes:e==null?void 0:e.spills,bytes:e==null?void 0:e.spill_bytes})]})}function $O({label:e,numTimes:t,bytes:n}){const{value:r,appendValue:i}=m.useMemo(()=>{const o=n!==void 0?Da(n):void 0;return{value:t!==void 0?t.toLocaleString():"-",appendValue:o?` (${o.value} ${o.unit})`:void 0}},[n,t]);return u.jsx(ya,{label:e,value:r,valueColor:kne,valueSize:"small",appendValue:i})}const U6t="_cards_hn4o1_1",B6t="_txns-card_hn4o1_5",W6t="_frankendancer_hn4o1_18",MO={cards:U6t,txnsCard:B6t,frankendancer:W6t};function V6t(){return u.jsxs(W,{direction:"column",gap:"4",flexGrow:"1",children:[u.jsx(C6t,{}),u.jsxs(qr,{className:Te(MO.cards,{[MO.frankendancer]:xi}),gap:"4",children:[u.jsx(pkt,{}),u.jsx(skt,{}),u.jsx(okt,{}),!xi&&u.jsx(A6t,{}),u.jsx(nkt,{className:MO.txnsCard})]}),u.jsx(vkt,{}),u.jsx(Ufe,{}),u.jsx(wkt,{}),u.jsx(Gkt,{})]})}const H6t=lp("/")({component:V6t}),Z6t=$pe.update({id:"/slotDetails",path:"/slotDetails",getParentRoute:()=>s1}),q6t=y_.update({id:"/leaderSchedule",path:"/leaderSchedule",getParentRoute:()=>s1}),G6t=U3t.update({id:"/gossip",path:"/gossip",getParentRoute:()=>s1}),Y6t=B3t.update({id:"/about",path:"/about",getParentRoute:()=>s1}),K6t=H6t.update({id:"/",path:"/",getParentRoute:()=>s1}),X6t={IndexRoute:K6t,AboutRoute:Y6t,GossipRoute:G6t,LeaderScheduleRoute:q6t,SlotDetailsRoute:Z6t},J6t=s1._addFileChildren(X6t)._addFileTypes(),Q6t=ca();function e5t(){const e=J(MG),t=Ee(Sme);m.useEffect(()=>{if(!e)return;const i=[...new Array(dC).fill(void 0),...e.flatMap(([o,a,s,l])=>[{total:o,vote:a,nonvote_success:s,nonvote_failed:l},{total:o,vote:a,nonvote_success:s,nonvote_failed:l},{total:o,vote:a,nonvote_success:s,nonvote_failed:l},{total:o,vote:a,nonvote_success:s,nonvote_failed:l}])];t(i.slice(i.length-dC))},[t,e]);const n=()=>{if(!e)return;const i=Q6t.get(OT);i!==void 0&&t(o=>{o.push(i),o.length>dC&&o.shift()})},r=m.useRef(n);r.current=n,m.useEffect(()=>{let i;function o(){r.current(),i=setTimeout(o,100)}return o(),()=>clearTimeout(i)},[])}function t5t(){const e=C6();Qu(()=>{e({topic:"summary",key:"ping",id:1})},2e3)}XNe.discriminatedUnion("topic",[z$e,A$e,Z$e,X$e,sMe,cMe,pMe]);function n5t(e,t){return e.key===t}const r5t=400,i5t=100,o5t=130,a5t=100,s5t=100,l5t=25,u5t=300,c5t=1e3,d5t=`${window.location.protocol.startsWith("https")?"wss":"ws"}://${window.location.hostname}:${window.location.port}/websocket`,f5t=!0;function h5t(){const e=Ee(TR),t=p5t(),n=Ee(_G),r=Ee(wG),i=Ee(jG),o=Ee(IG),a=m.useCallback(d=>{n5t(d,"gossipHealth")&&o({value:d.value,history:d.history})},[o]),s=m.useCallback(({key:d,values:f,history:p})=>{switch(d){case"ingress":n({values:f,history:p});break;case"egress":r({values:f,history:p});break}},[n,r]),l=m.useCallback(({key:d,values:f,history:p})=>{switch(d){case"tileTimers":i({values:f,history:p});break}},[i]),c=m.useCallback(d=>{switch(d.type){case"connected":e(ac.Connected);break;case"connecting":e(ac.Connecting);break;case"disconnected":e(ac.Disconnected);break;case"kvb":for(const f of d.items)t(f);break;case"kv":t(d);break;case"ema":break;case"emaHistoryArray":for(const f of d.items)s(f);break;case"historyArray":for(const f of d.items)l(f);break;case"emaHistoryObject":for(const f of d.items)a(f);break}},[e,t,s,l,a]);Iqe(c)}function p5t(){const e=Ee(uG),t=Ee(qy),n=Ee(cG),r=Ee(cp),i=Ee(rg),o=Ee(fG),a=Ee(hG),s=Ee(s3),[l,c]=Vl(dG),[d,f]=m.useReducer(()=>{const it=l!==void 0?Yf.diff(jt.fromMillis(Math.floor(Number(l.startupTimeNanos)/1e6))):void 0,Yt=it!==void 0?it.as("minutes"):void 0;return Yt!==void 0&&Yt>5?1e3*60:1e3},1e3);Qu(f,1e3);const p=Ee(xG),v=Ba(it=>p(it),d),x=Ee(OT),y=Ba(it=>{x(it)},r5t),b=Ee(zT),w=Ba(it=>{b(it)},a5t),_=Ee(CG),S=Ba(it=>{_(it)},o5t),C=Ee(SG),j=Ba(it=>{C(it)},i5t),T=Ee(cre),E=Ee(kG),$=Ba(it=>{E(it),T(it==null?void 0:it.waterfall)},s5t),D=Ee(l3),M=Ba(it=>{D(it)},l5t),O=Ee(Hl),te=Ee(Zu),q=Ee(QN),P=Ee(MG),X=Ee(DT),A=Ee(RG),Y=Ee(Sre),F=Ee(u3),H=Ee(aDe),ee=Ee(PG),[ce,B]=Vl(fi),ae=Ee(rDe),je=Ee(TG),me=Ba(it=>{je(it)},u5t),ke=Ee(EG),he=Ba(it=>{ke(it)},c5t),ue=Ee(NG),re=Ee($G),ge=Ee(fDe),$e=Ee(pDe),pe=Ee(LG),ye=Ee(dp),Se=Ee(gG),Ce=Ee(SDe),Ue=Ee(CDe),Ge=Ee(TDe),_t=Ee(IDe),St=Ee(EDe),ut=Ee(NDe),ct=m.useCallback(it=>{ae(it.publish.slot,it.publish.level),it.publish.skipped?Ce([it.publish.slot]):Ue(it.publish.slot),it.publish.level==="rooted"&&(zze(it.publish)?Ge(it.publish.slot,it.publish.vote_latency):_t(it.publish.slot)),it.publish.mine&&(it.publish.skipped?F(Yt=>[...(Yt??[]).filter(nr=>nr!==it.publish.slot),it.publish.slot].sort()):F(Yt=>Yt!=null&&Yt.some(nr=>nr===it.publish.slot)?Yt==null?void 0:Yt.filter(nr=>nr!==it.publish.slot):Yt))},[Ge,Ce,_t,Ue,F,ae]),bt=Ee(Gy),Qe=Ee(nZe),Ke=m.useCallback(it=>{bt(it),it!=null&&Qe([it])},[Qe,bt]),De=Ee(yG),Dt=Ee(oZe),pn=m.useCallback(it=>{De(it),it!=null&&Dt([it])},[Dt,De]),Yn=Ee(_7e),hr=Ee(vG),Kn=Ee(PT),kr=Ee(pG),On=Ee(mG),Mr=Ee(bG),tr=Ee(xx.addShredEvents),Sr=Ee(c3),ri=m.useRef(new Map),uo=m.useRef(new Map),Ki=Tp(()=>{ge([...ri.current.values()]),$e([...uo.current.values()]),ri.current.clear(),uo.current.clear()},1e3,{maxWait:1e3}),No=m.useCallback(it=>{if(it.add)for(const Yt of it.add)ri.current.set(Yt.identity_pubkey,Yt),uo.current.delete(Yt.identity_pubkey);if(it.update)for(const Yt of it.update)ri.current.set(Yt.identity_pubkey,Yt);if(it.remove)for(const Yt of it.remove)ri.current.delete(Yt.identity_pubkey),uo.current.set(Yt.identity_pubkey,Yt);Ki()},[Ki]),Ps=Ee(vDe),zn=m.useRef({toAdd:new Set,toRemove:new Set}),co=Tp(()=>{Ps([...zn.current.toAdd],[...zn.current.toRemove]),zn.current.toAdd.clear(),zn.current.toRemove.clear()},1e3,{maxWait:1e3}),xa=m.useCallback((it,Yt)=>{if(it)for(const nr of Yt)zn.current.toAdd.add(nr),zn.current.toRemove.delete(nr);else for(const nr of Yt)zn.current.toAdd.delete(nr),zn.current.toRemove.add(nr);co()},[co]),yc=m.useCallback(it=>{const{topic:Yt,key:nr,value:ht}=it;switch(Yt){case"summary":switch(nr){case"version":{e(ht);break}case"cluster":{t(ht);break}case"commit_hash":{n(ht);break}case"identity_key":{r(ht);break}case"vote_balance":{a(ht);break}case"startup_time_nanos":{c({startupTimeNanos:ht});break}case"tiles":{i(ht);break}case"schedule_strategy":{s(ht);break}case"identity_balance":{o(ht);break}case"estimated_slot_duration_nanos":{v(ht);break}case"estimated_tps":{y(ht);break}case"live_tile_primary_metric":{j(ht);break}case"live_txn_waterfall":{$(ht);break}case"live_tile_timers":{M(ht);break}case"boot_progress":{O(ht);break}case"startup_progress":{te(ht);break}case"tps_history":{P(ht);break}case"vote_state":{X(ht);break}case"vote_distance":{A(ht);break}case"skip_rate":{Y(ht);break}case"completed_slot":{ye(ht);break}case"turbine_slot":{Ke(ht);break}case"repair_slot":{pn(ht);break}case"reset_slot":{Yn(ht);break}case"storage_slot":{hr(ht);break}case"vote_slot":{Kn(ht);break}case"root_slot":{kr(ht);break}case"optimistically_confirmed_slot":{On(ht);break}case"slot_caught_up":Mr(ht);break;case"catch_up_history":{Qe(ht.turbine),Dt(ht.repair);break}case"server_time_nanos":{Se(ht);break}case"live_network_metrics":{w(ht);break}case"live_tile_metrics":S(ht);break;case"live_program_cache":Sr(ht);break}break;case"epoch":switch(nr){case"new":B(ht);break}break;case"gossip":switch(nr){case"network_stats":{me(ht);break}case"peers_size_update":{he(ht);break}case"query_scroll":case"query_sort":{ue(ht);break}case"view_update":{re(ht);break}}break;case"peers":No(ht);break;case"slot":switch(nr){case"skipped_history":{F(ht.sort());break}case"skipped_history_cluster":{Ce(ht);break}case"update":case"query":case"query_detailed":case"query_transactions":{ht&&(H(ht),ct(ht));break}case"query_rankings":{ee(ht);break}case"live_shreds":{tr(ht);break}case"late_votes_history":{ut(ht);break}}break;case"block_engine":{switch(nr){case"update":{pe(ht);break}}break}case"wait_for_supermajority":{switch(nr){case"stakes":{q(ht);break}case"peer_add":{xa(!0,ht);break}case"peer_remove":{xa(!1,ht);break}}break}}},[tr,pn,Dt,Ce,No,xa,Ke,Qe,ct,pe,O,t,n,ye,v,y,me,he,w,j,S,$,M,B,re,ue,o,r,ut,Sr,On,Yn,kr,s,Se,Y,F,Mr,ee,H,te,c,hr,q,i,P,e,a,A,Kn,X]),bc=Ee(oDe),xc=Ee(sDe),qa=Ee(jDe),kl=Ee(Qze);Qu(()=>{bc(),xc(),ce&&F(it=>it==null?void 0:it.filter(Yt=>Yt>=ce.start_slot&&Yt<=ce.end_slot))},5e3),m.useEffect(()=>{ce&&(qa(ce.start_slot,ce.end_slot),kl(ce.epoch))},[qa,kl,ce]),m.useEffect(()=>{ce&&St({startSlot:ce.start_slot,endSlot:ce.end_slot})},[St,ce]);const pi=J(ol),Un=J(TR)===ac.Disconnected,Rr=Ee(xx.deleteSlots);m.useEffect(()=>{Un&&Rr(Un,pi)},[Rr,Un,pi]);const $o=Ee(rZe),fo=Ee(aZe);m.useEffect(()=>{pi||($o(),fo())},[pi,fo,$o]),Qu(()=>{Rr(Un,pi)},pi?1e3:x6/4);const Lr=Ee(bDe),ho=Ee(xDe),_a=J(Gu);return m.useEffect(()=>{Un&&(co.cancel(),zn.current.toAdd.clear(),zn.current.toRemove.clear(),ho())},[co,Un,ho]),Qu(Lr,_a===wn.waiting_for_supermajority?1e3:null),yc}function m5t(){return h5t(),e5t(),t5t(),null}function g5t(e){return new e}function v5t(e){return new Worker("/assets/wsWorker-CTAVpIxr.js",{name:e==null?void 0:e.name})}function y5t(e){return(t,...n)=>{console[e](`(${jt.now().toISO({includeOffset:!1})??""}) [${t}]`,...n)}}const b5t=y5t("error");let yu=null;const Hme=new Cse().setMaxListeners(1e3);let C_=[],Dm=null,Am=null;function Zme(){Dm=null,Am=null;const e=C_;C_=[];for(const t of e)try{Hme.emit(UM,t)}catch(n){b5t("useWsWorker","Error processing worker message:",t.type,n)}}function qme(){Dm!==null&&(cancelAnimationFrame(Dm),Dm=null),Am!==null&&(clearTimeout(Am),Am=null)}function Gme(){Dm!==null||Am!==null||C_.length&&(document.visibilityState==="visible"?Dm=requestAnimationFrame(Zme):Am=window.setTimeout(Zme,0))}function x5t(){(Dm!==null||Am!==null)&&(qme(),Gme())}document.addEventListener("visibilitychange",x5t);function _5t(e){C_.push(e.data),Gme()}function w5t(e,t){yu||e.trim()&&(yu=g5t(v5t),yu.onmessage=_5t,yu.postMessage({type:"connect",websocketUrl:e,compress:t}))}function k5t(){qme(),C_=[],yu&&(yu.postMessage({type:"disconnect"}),yu.terminate(),yu=null)}function S5t({websocketUrl:e,compress:t}){return m.useEffect(()=>(w5t(e,t),()=>k5t()),[e,t]),{sendMessage:m.useCallback(n=>{yu==null||yu.postMessage({type:"send",value:n})},[]),emitter:Hme}}function C5t({children:e}){const{sendMessage:t,emitter:n}=S5t({websocketUrl:d5t,compress:f5t}),r=m.useMemo(()=>({...jse,sendMessage:t,emitter:n}),[t,n]);return u.jsxs(BM.Provider,{value:r,children:[u.jsx(m5t,{}),e]})}const j5t=L9e({routeTree:J6t});y7e(),Vi?(Kme=document.getElementById("favicon"))==null||Kme.setAttribute("href",toe):(Xme=document.getElementById("favicon"))==null||Xme.setAttribute("href",noe);function T5t(){const e=Ee(jg),t=m.useCallback(n=>{e(n),Object.entries(Sze).forEach(([r,i])=>{n.style.setProperty(`--${rt.kebabCase(r)}`,i)})},[e]);return ix(()=>{"fonts"in document&&new FontFace("NotoFlagsOnly","url(assets/NotoFlagsOnly.woff2)",{weight:"normal",style:"normal",display:"swap"}).load().then(n=>{document.fonts.add(n)}).catch(console.error)}),u.jsx($f,{id:"app",appearance:"dark",ref:t,scaling:"90%",children:u.jsx(C5t,{children:u.jsx(z9e,{router:j5t})})})}gj.createRoot(document.getElementById("root")).render(u.jsx(Pe.StrictMode,{children:u.jsx(T5t,{})})); diff --git a/src/disco/gui/dist_stable/assets/index-ColMY7Rf.css b/src/discoh/guih/dist/assets/index-qV0ZL8w9.css similarity index 99% rename from src/disco/gui/dist_stable/assets/index-ColMY7Rf.css rename to src/discoh/guih/dist/assets/index-qV0ZL8w9.css index 0ecc67734e3..02624b14be7 100644 --- a/src/disco/gui/dist_stable/assets/index-ColMY7Rf.css +++ b/src/discoh/guih/dist/assets/index-qV0ZL8w9.css @@ -1 +1 @@ -@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2) format("woff2"),url(/assets/inter-tight-latin-400-normal-BLrFJfvD.woff) format("woff")}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/roboto-mono-latin-400-normal-GekRknry.woff2) format("woff2"),url(/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff) format("woff")}:root,.light,.light-theme{--gray-1: #fcfcfc;--gray-2: #f9f9f9;--gray-3: #f0f0f0;--gray-4: #e8e8e8;--gray-5: #e0e0e0;--gray-6: #d9d9d9;--gray-7: #cecece;--gray-8: #bbbbbb;--gray-9: #8d8d8d;--gray-10: #838383;--gray-11: #646464;--gray-12: #202020;--gray-a1: #00000003;--gray-a2: #00000006;--gray-a3: #0000000f;--gray-a4: #00000017;--gray-a5: #0000001f;--gray-a6: #00000026;--gray-a7: #00000031;--gray-a8: #00000044;--gray-a9: #00000072;--gray-a10: #0000007c;--gray-a11: #0000009b;--gray-a12: #000000df;--mauve-1: #fdfcfd;--mauve-2: #faf9fb;--mauve-3: #f2eff3;--mauve-4: #eae7ec;--mauve-5: #e3dfe6;--mauve-6: #dbd8e0;--mauve-7: #d0cdd7;--mauve-8: #bcbac7;--mauve-9: #8e8c99;--mauve-10: #84828e;--mauve-11: #65636d;--mauve-12: #211f26;--mauve-a1: #55005503;--mauve-a2: #2b005506;--mauve-a3: #30004010;--mauve-a4: #20003618;--mauve-a5: #20003820;--mauve-a6: #14003527;--mauve-a7: #10003332;--mauve-a8: #08003145;--mauve-a9: #05001d73;--mauve-a10: #0500197d;--mauve-a11: #0400119c;--mauve-a12: #020008e0;--slate-1: #fcfcfd;--slate-2: #f9f9fb;--slate-3: #f0f0f3;--slate-4: #e8e8ec;--slate-5: #e0e1e6;--slate-6: #d9d9e0;--slate-7: #cdced6;--slate-8: #b9bbc6;--slate-9: #8b8d98;--slate-10: #80838d;--slate-11: #60646c;--slate-12: #1c2024;--slate-a1: #00005503;--slate-a2: #00005506;--slate-a3: #0000330f;--slate-a4: #00002d17;--slate-a5: #0009321f;--slate-a6: #00002f26;--slate-a7: #00062e32;--slate-a8: #00083046;--slate-a9: #00051d74;--slate-a10: #00071b7f;--slate-a11: #0007149f;--slate-a12: #000509e3;--sage-1: #fbfdfc;--sage-2: #f7f9f8;--sage-3: #eef1f0;--sage-4: #e6e9e8;--sage-5: #dfe2e0;--sage-6: #d7dad9;--sage-7: #cbcfcd;--sage-8: #b8bcba;--sage-9: #868e8b;--sage-10: #7c8481;--sage-11: #5f6563;--sage-12: #1a211e;--sage-a1: #00804004;--sage-a2: #00402008;--sage-a3: #002d1e11;--sage-a4: #001f1519;--sage-a5: #00180820;--sage-a6: #00140d28;--sage-a7: #00140a34;--sage-a8: #000f0847;--sage-a9: #00110b79;--sage-a10: #00100a83;--sage-a11: #000a07a0;--sage-a12: #000805e5;--olive-1: #fcfdfc;--olive-2: #f8faf8;--olive-3: #eff1ef;--olive-4: #e7e9e7;--olive-5: #dfe2df;--olive-6: #d7dad7;--olive-7: #cccfcc;--olive-8: #b9bcb8;--olive-9: #898e87;--olive-10: #7f847d;--olive-11: #60655f;--olive-12: #1d211c;--olive-a1: #00550003;--olive-a2: #00490007;--olive-a3: #00200010;--olive-a4: #00160018;--olive-a5: #00180020;--olive-a6: #00140028;--olive-a7: #000f0033;--olive-a8: #040f0047;--olive-a9: #050f0078;--olive-a10: #040e0082;--olive-a11: #020a00a0;--olive-a12: #010600e3;--sand-1: #fdfdfc;--sand-2: #f9f9f8;--sand-3: #f1f0ef;--sand-4: #e9e8e6;--sand-5: #e2e1de;--sand-6: #dad9d6;--sand-7: #cfceca;--sand-8: #bcbbb5;--sand-9: #8d8d86;--sand-10: #82827c;--sand-11: #63635e;--sand-12: #21201c;--sand-a1: #55550003;--sand-a2: #25250007;--sand-a3: #20100010;--sand-a4: #1f150019;--sand-a5: #1f180021;--sand-a6: #19130029;--sand-a7: #19140035;--sand-a8: #1915014a;--sand-a9: #0f0f0079;--sand-a10: #0c0c0083;--sand-a11: #080800a1;--sand-a12: #060500e3;--amber-1: #fefdfb;--amber-2: #fefbe9;--amber-3: #fff7c2;--amber-4: #ffee9c;--amber-5: #fbe577;--amber-6: #f3d673;--amber-7: #e9c162;--amber-8: #e2a336;--amber-9: #ffc53d;--amber-10: #ffba18;--amber-11: #ab6400;--amber-12: #4f3422;--amber-a1: #c0800004;--amber-a2: #f4d10016;--amber-a3: #ffde003d;--amber-a4: #ffd40063;--amber-a5: #f8cf0088;--amber-a6: #eab5008c;--amber-a7: #dc9b009d;--amber-a8: #da8a00c9;--amber-a9: #ffb300c2;--amber-a10: #ffb300e7;--amber-a11: #ab6400;--amber-a12: #341500dd;--blue-1: #fbfdff;--blue-2: #f4faff;--blue-3: #e6f4fe;--blue-4: #d5efff;--blue-5: #c2e5ff;--blue-6: #acd8fc;--blue-7: #8ec8f6;--blue-8: #5eb1ef;--blue-9: #0090ff;--blue-10: #0588f0;--blue-11: #0d74ce;--blue-12: #113264;--blue-a1: #0080ff04;--blue-a2: #008cff0b;--blue-a3: #008ff519;--blue-a4: #009eff2a;--blue-a5: #0093ff3d;--blue-a6: #0088f653;--blue-a7: #0083eb71;--blue-a8: #0084e6a1;--blue-a9: #0090ff;--blue-a10: #0086f0fa;--blue-a11: #006dcbf2;--blue-a12: #002359ee;--bronze-1: #fdfcfc;--bronze-2: #fdf7f5;--bronze-3: #f6edea;--bronze-4: #efe4df;--bronze-5: #e7d9d3;--bronze-6: #dfcdc5;--bronze-7: #d3bcb3;--bronze-8: #c2a499;--bronze-9: #a18072;--bronze-10: #957468;--bronze-11: #7d5e54;--bronze-12: #43302b;--bronze-a1: #55000003;--bronze-a2: #cc33000a;--bronze-a3: #92250015;--bronze-a4: #80280020;--bronze-a5: #7423002c;--bronze-a6: #7324003a;--bronze-a7: #6c1f004c;--bronze-a8: #671c0066;--bronze-a9: #551a008d;--bronze-a10: #4c150097;--bronze-a11: #3d0f00ab;--bronze-a12: #1d0600d4;--brown-1: #fefdfc;--brown-2: #fcf9f6;--brown-3: #f6eee7;--brown-4: #f0e4d9;--brown-5: #ebdaca;--brown-6: #e4cdb7;--brown-7: #dcbc9f;--brown-8: #cea37e;--brown-9: #ad7f58;--brown-10: #a07553;--brown-11: #815e46;--brown-12: #3e332e;--brown-a1: #aa550003;--brown-a2: #aa550009;--brown-a3: #a04b0018;--brown-a4: #9b4a0026;--brown-a5: #9f4d0035;--brown-a6: #a04e0048;--brown-a7: #a34e0060;--brown-a8: #9f4a0081;--brown-a9: #823c00a7;--brown-a10: #723300ac;--brown-a11: #522100b9;--brown-a12: #140600d1;--crimson-1: #fffcfd;--crimson-2: #fef7f9;--crimson-3: #ffe9f0;--crimson-4: #fedce7;--crimson-5: #facedd;--crimson-6: #f3bed1;--crimson-7: #eaacc3;--crimson-8: #e093b2;--crimson-9: #e93d82;--crimson-10: #df3478;--crimson-11: #cb1d63;--crimson-12: #621639;--crimson-a1: #ff005503;--crimson-a2: #e0004008;--crimson-a3: #ff005216;--crimson-a4: #f8005123;--crimson-a5: #e5004f31;--crimson-a6: #d0004b41;--crimson-a7: #bf004753;--crimson-a8: #b6004a6c;--crimson-a9: #e2005bc2;--crimson-a10: #d70056cb;--crimson-a11: #c4004fe2;--crimson-a12: #530026e9;--cyan-1: #fafdfe;--cyan-2: #f2fafb;--cyan-3: #def7f9;--cyan-4: #caf1f6;--cyan-5: #b5e9f0;--cyan-6: #9ddde7;--cyan-7: #7dcedc;--cyan-8: #3db9cf;--cyan-9: #00a2c7;--cyan-10: #0797b9;--cyan-11: #107d98;--cyan-12: #0d3c48;--cyan-a1: #0099cc05;--cyan-a2: #009db10d;--cyan-a3: #00c2d121;--cyan-a4: #00bcd435;--cyan-a5: #01b4cc4a;--cyan-a6: #00a7c162;--cyan-a7: #009fbb82;--cyan-a8: #00a3c0c2;--cyan-a9: #00a2c7;--cyan-a10: #0094b7f8;--cyan-a11: #007491ef;--cyan-a12: #00323ef2;--gold-1: #fdfdfc;--gold-2: #faf9f2;--gold-3: #f2f0e7;--gold-4: #eae6db;--gold-5: #e1dccf;--gold-6: #d8d0bf;--gold-7: #cbc0aa;--gold-8: #b9a88d;--gold-9: #978365;--gold-10: #8c7a5e;--gold-11: #71624b;--gold-12: #3b352b;--gold-a1: #55550003;--gold-a2: #9d8a000d;--gold-a3: #75600018;--gold-a4: #6b4e0024;--gold-a5: #60460030;--gold-a6: #64440040;--gold-a7: #63420055;--gold-a8: #633d0072;--gold-a9: #5332009a;--gold-a10: #492d00a1;--gold-a11: #362100b4;--gold-a12: #130c00d4;--grass-1: #fbfefb;--grass-2: #f5fbf5;--grass-3: #e9f6e9;--grass-4: #daf1db;--grass-5: #c9e8ca;--grass-6: #b2ddb5;--grass-7: #94ce9a;--grass-8: #65ba74;--grass-9: #46a758;--grass-10: #3e9b4f;--grass-11: #2a7e3b;--grass-12: #203c25;--grass-a1: #00c00004;--grass-a2: #0099000a;--grass-a3: #00970016;--grass-a4: #009f0725;--grass-a5: #00930536;--grass-a6: #008f0a4d;--grass-a7: #018b0f6b;--grass-a8: #008d199a;--grass-a9: #008619b9;--grass-a10: #007b17c1;--grass-a11: #006514d5;--grass-a12: #002006df;--green-1: #fbfefc;--green-2: #f4fbf6;--green-3: #e6f6eb;--green-4: #d6f1df;--green-5: #c4e8d1;--green-6: #adddc0;--green-7: #8eceaa;--green-8: #5bb98b;--green-9: #30a46c;--green-10: #2b9a66;--green-11: #218358;--green-12: #193b2d;--green-a1: #00c04004;--green-a2: #00a32f0b;--green-a3: #00a43319;--green-a4: #00a83829;--green-a5: #019c393b;--green-a6: #00963c52;--green-a7: #00914071;--green-a8: #00924ba4;--green-a9: #008f4acf;--green-a10: #008647d4;--green-a11: #00713fde;--green-a12: #002616e6;--indigo-1: #fdfdfe;--indigo-2: #f7f9ff;--indigo-3: #edf2fe;--indigo-4: #e1e9ff;--indigo-5: #d2deff;--indigo-6: #c1d0ff;--indigo-7: #abbdf9;--indigo-8: #8da4ef;--indigo-9: #3e63dd;--indigo-10: #3358d4;--indigo-11: #3a5bc7;--indigo-12: #1f2d5c;--indigo-a1: #00008002;--indigo-a2: #0040ff08;--indigo-a3: #0047f112;--indigo-a4: #0044ff1e;--indigo-a5: #0044ff2d;--indigo-a6: #003eff3e;--indigo-a7: #0037ed54;--indigo-a8: #0034dc72;--indigo-a9: #0031d2c1;--indigo-a10: #002ec9cc;--indigo-a11: #002bb7c5;--indigo-a12: #001046e0;--iris-1: #fdfdff;--iris-2: #f8f8ff;--iris-3: #f0f1fe;--iris-4: #e6e7ff;--iris-5: #dadcff;--iris-6: #cbcdff;--iris-7: #b8baf8;--iris-8: #9b9ef0;--iris-9: #5b5bd6;--iris-10: #5151cd;--iris-11: #5753c6;--iris-12: #272962;--iris-a1: #0000ff02;--iris-a2: #0000ff07;--iris-a3: #0011ee0f;--iris-a4: #000bff19;--iris-a5: #000eff25;--iris-a6: #000aff34;--iris-a7: #0008e647;--iris-a8: #0008d964;--iris-a9: #0000c0a4;--iris-a10: #0000b6ae;--iris-a11: #0600abac;--iris-a12: #000246d8;--jade-1: #fbfefd;--jade-2: #f4fbf7;--jade-3: #e6f7ed;--jade-4: #d6f1e3;--jade-5: #c3e9d7;--jade-6: #acdec8;--jade-7: #8bceb6;--jade-8: #56ba9f;--jade-9: #29a383;--jade-10: #26997b;--jade-11: #208368;--jade-12: #1d3b31;--jade-a1: #00c08004;--jade-a2: #00a3460b;--jade-a3: #00ae4819;--jade-a4: #00a85129;--jade-a5: #00a2553c;--jade-a6: #009a5753;--jade-a7: #00945f74;--jade-a8: #00976ea9;--jade-a9: #00916bd6;--jade-a10: #008764d9;--jade-a11: #007152df;--jade-a12: #002217e2;--lime-1: #fcfdfa;--lime-2: #f8faf3;--lime-3: #eef6d6;--lime-4: #e2f0bd;--lime-5: #d3e7a6;--lime-6: #c2da91;--lime-7: #abc978;--lime-8: #8db654;--lime-9: #bdee63;--lime-10: #b0e64c;--lime-11: #5c7c2f;--lime-12: #37401c;--lime-a1: #66990005;--lime-a2: #6b95000c;--lime-a3: #96c80029;--lime-a4: #8fc60042;--lime-a5: #81bb0059;--lime-a6: #72aa006e;--lime-a7: #61990087;--lime-a8: #559200ab;--lime-a9: #93e4009c;--lime-a10: #8fdc00b3;--lime-a11: #375f00d0;--lime-a12: #1e2900e3;--mint-1: #f9fefd;--mint-2: #f2fbf9;--mint-3: #ddf9f2;--mint-4: #c8f4e9;--mint-5: #b3ecde;--mint-6: #9ce0d0;--mint-7: #7ecfbd;--mint-8: #4cbba5;--mint-9: #86ead4;--mint-10: #7de0cb;--mint-11: #027864;--mint-12: #16433c;--mint-a1: #00d5aa06;--mint-a2: #00b18a0d;--mint-a3: #00d29e22;--mint-a4: #00cc9937;--mint-a5: #00c0914c;--mint-a6: #00b08663;--mint-a7: #00a17d81;--mint-a8: #009e7fb3;--mint-a9: #00d3a579;--mint-a10: #00c39982;--mint-a11: #007763fd;--mint-a12: #00312ae9;--orange-1: #fefcfb;--orange-2: #fff7ed;--orange-3: #ffefd6;--orange-4: #ffdfb5;--orange-5: #ffd19a;--orange-6: #ffc182;--orange-7: #f5ae73;--orange-8: #ec9455;--orange-9: #f76b15;--orange-10: #ef5f00;--orange-11: #cc4e00;--orange-12: #582d1d;--orange-a1: #c0400004;--orange-a2: #ff8e0012;--orange-a3: #ff9c0029;--orange-a4: #ff91014a;--orange-a5: #ff8b0065;--orange-a6: #ff81007d;--orange-a7: #ed6c008c;--orange-a8: #e35f00aa;--orange-a9: #f65e00ea;--orange-a10: #ef5f00;--orange-a11: #cc4e00;--orange-a12: #431200e2;--pink-1: #fffcfe;--pink-2: #fef7fb;--pink-3: #fee9f5;--pink-4: #fbdcef;--pink-5: #f6cee7;--pink-6: #efbfdd;--pink-7: #e7acd0;--pink-8: #dd93c2;--pink-9: #d6409f;--pink-10: #cf3897;--pink-11: #c2298a;--pink-12: #651249;--pink-a1: #ff00aa03;--pink-a2: #e0008008;--pink-a3: #f4008c16;--pink-a4: #e2008b23;--pink-a5: #d1008331;--pink-a6: #c0007840;--pink-a7: #b6006f53;--pink-a8: #af006f6c;--pink-a9: #c8007fbf;--pink-a10: #c2007ac7;--pink-a11: #b60074d6;--pink-a12: #59003bed;--plum-1: #fefcff;--plum-2: #fdf7fd;--plum-3: #fbebfb;--plum-4: #f7def8;--plum-5: #f2d1f3;--plum-6: #e9c2ec;--plum-7: #deade3;--plum-8: #cf91d8;--plum-9: #ab4aba;--plum-10: #a144af;--plum-11: #953ea3;--plum-12: #53195d;--plum-a1: #aa00ff03;--plum-a2: #c000c008;--plum-a3: #cc00cc14;--plum-a4: #c200c921;--plum-a5: #b700bd2e;--plum-a6: #a400b03d;--plum-a7: #9900a852;--plum-a8: #9000a56e;--plum-a9: #89009eb5;--plum-a10: #7f0092bb;--plum-a11: #730086c1;--plum-a12: #40004be6;--purple-1: #fefcfe;--purple-2: #fbf7fe;--purple-3: #f7edfe;--purple-4: #f2e2fc;--purple-5: #ead5f9;--purple-6: #e0c4f4;--purple-7: #d1afec;--purple-8: #be93e4;--purple-9: #8e4ec6;--purple-10: #8347b9;--purple-11: #8145b5;--purple-12: #402060;--purple-a1: #aa00aa03;--purple-a2: #8000e008;--purple-a3: #8e00f112;--purple-a4: #8d00e51d;--purple-a5: #8000db2a;--purple-a6: #7a01d03b;--purple-a7: #6d00c350;--purple-a8: #6600c06c;--purple-a9: #5c00adb1;--purple-a10: #53009eb8;--purple-a11: #52009aba;--purple-a12: #250049df;--red-1: #fffcfc;--red-2: #fff7f7;--red-3: #feebec;--red-4: #ffdbdc;--red-5: #ffcdce;--red-6: #fdbdbe;--red-7: #f4a9aa;--red-8: #eb8e90;--red-9: #e5484d;--red-10: #dc3e42;--red-11: #ce2c31;--red-12: #641723;--red-a1: #ff000003;--red-a2: #ff000008;--red-a3: #f3000d14;--red-a4: #ff000824;--red-a5: #ff000632;--red-a6: #f8000442;--red-a7: #df000356;--red-a8: #d2000571;--red-a9: #db0007b7;--red-a10: #d10005c1;--red-a11: #c40006d3;--red-a12: #55000de8;--ruby-1: #fffcfd;--ruby-2: #fff7f8;--ruby-3: #feeaed;--ruby-4: #ffdce1;--ruby-5: #ffced6;--ruby-6: #f8bfc8;--ruby-7: #efacb8;--ruby-8: #e592a3;--ruby-9: #e54666;--ruby-10: #dc3b5d;--ruby-11: #ca244d;--ruby-12: #64172b;--ruby-a1: #ff005503;--ruby-a2: #ff002008;--ruby-a3: #f3002515;--ruby-a4: #ff002523;--ruby-a5: #ff002a31;--ruby-a6: #e4002440;--ruby-a7: #ce002553;--ruby-a8: #c300286d;--ruby-a9: #db002cb9;--ruby-a10: #d2002cc4;--ruby-a11: #c10030db;--ruby-a12: #550016e8;--sky-1: #f9feff;--sky-2: #f1fafd;--sky-3: #e1f6fd;--sky-4: #d1f0fa;--sky-5: #bee7f5;--sky-6: #a9daed;--sky-7: #8dcae3;--sky-8: #60b3d7;--sky-9: #7ce2fe;--sky-10: #74daf8;--sky-11: #00749e;--sky-12: #1d3e56;--sky-a1: #00d5ff06;--sky-a2: #00a4db0e;--sky-a3: #00b3ee1e;--sky-a4: #00ace42e;--sky-a5: #00a1d841;--sky-a6: #0092ca56;--sky-a7: #0089c172;--sky-a8: #0085bf9f;--sky-a9: #00c7fe83;--sky-a10: #00bcf38b;--sky-a11: #00749e;--sky-a12: #002540e2;--teal-1: #fafefd;--teal-2: #f3fbf9;--teal-3: #e0f8f3;--teal-4: #ccf3ea;--teal-5: #b8eae0;--teal-6: #a1ded2;--teal-7: #83cdc1;--teal-8: #53b9ab;--teal-9: #12a594;--teal-10: #0d9b8a;--teal-11: #008573;--teal-12: #0d3d38;--teal-a1: #00cc9905;--teal-a2: #00aa800c;--teal-a3: #00c69d1f;--teal-a4: #00c39633;--teal-a5: #00b49047;--teal-a6: #00a6855e;--teal-a7: #0099807c;--teal-a8: #009783ac;--teal-a9: #009e8ced;--teal-a10: #009684f2;--teal-a11: #008573;--teal-a12: #00332df2;--tomato-1: #fffcfc;--tomato-2: #fff8f7;--tomato-3: #feebe7;--tomato-4: #ffdcd3;--tomato-5: #ffcdc2;--tomato-6: #fdbdaf;--tomato-7: #f5a898;--tomato-8: #ec8e7b;--tomato-9: #e54d2e;--tomato-10: #dd4425;--tomato-11: #d13415;--tomato-12: #5c271f;--tomato-a1: #ff000003;--tomato-a2: #ff200008;--tomato-a3: #f52b0018;--tomato-a4: #ff35002c;--tomato-a5: #ff2e003d;--tomato-a6: #f92d0050;--tomato-a7: #e7280067;--tomato-a8: #db250084;--tomato-a9: #df2600d1;--tomato-a10: #d72400da;--tomato-a11: #cd2200ea;--tomato-a12: #460900e0;--violet-1: #fdfcfe;--violet-2: #faf8ff;--violet-3: #f4f0fe;--violet-4: #ebe4ff;--violet-5: #e1d9ff;--violet-6: #d4cafe;--violet-7: #c2b5f5;--violet-8: #aa99ec;--violet-9: #6e56cf;--violet-10: #654dc4;--violet-11: #6550b9;--violet-12: #2f265f;--violet-a1: #5500aa03;--violet-a2: #4900ff07;--violet-a3: #4400ee0f;--violet-a4: #4300ff1b;--violet-a5: #3600ff26;--violet-a6: #3100fb35;--violet-a7: #2d01dd4a;--violet-a8: #2b00d066;--violet-a9: #2400b7a9;--violet-a10: #2300abb2;--violet-a11: #1f0099af;--violet-a12: #0b0043d9;--yellow-1: #fdfdf9;--yellow-2: #fefce9;--yellow-3: #fffab8;--yellow-4: #fff394;--yellow-5: #ffe770;--yellow-6: #f3d768;--yellow-7: #e4c767;--yellow-8: #d5ae39;--yellow-9: #ffe629;--yellow-10: #ffdc00;--yellow-11: #9e6c00;--yellow-12: #473b1f;--yellow-a1: #aaaa0006;--yellow-a2: #f4dd0016;--yellow-a3: #ffee0047;--yellow-a4: #ffe3016b;--yellow-a5: #ffd5008f;--yellow-a6: #ebbc0097;--yellow-a7: #d2a10098;--yellow-a8: #c99700c6;--yellow-a9: #ffe100d6;--yellow-a10: #ffdc00;--yellow-a11: #9e6c00;--yellow-a12: #2e2000e0;--gray-surface: #ffffffcc;--gray-indicator: var(--gray-9);--gray-track: var(--gray-9);--mauve-surface: #ffffffcc;--mauve-indicator: var(--mauve-9);--mauve-track: var(--mauve-9);--slate-surface: #ffffffcc;--slate-indicator: var(--slate-9);--slate-track: var(--slate-9);--sage-surface: #ffffffcc;--sage-indicator: var(--sage-9);--sage-track: var(--sage-9);--olive-surface: #ffffffcc;--olive-indicator: var(--olive-9);--olive-track: var(--olive-9);--sand-surface: #ffffffcc;--sand-indicator: var(--sand-9);--sand-track: var(--sand-9);--amber-surface: #fefae4cc;--amber-indicator: var(--amber-9);--amber-track: var(--amber-9);--blue-surface: #f1f9ffcc;--blue-indicator: var(--blue-9);--blue-track: var(--blue-9);--bronze-surface: #fdf5f3cc;--bronze-indicator: var(--bronze-9);--bronze-track: var(--bronze-9);--brown-surface: #fbf8f4cc;--brown-indicator: var(--brown-9);--brown-track: var(--brown-9);--crimson-surface: #fef5f8cc;--crimson-indicator: var(--crimson-9);--crimson-track: var(--crimson-9);--cyan-surface: #eff9facc;--cyan-indicator: var(--cyan-9);--cyan-track: var(--cyan-9);--gold-surface: #f9f8efcc;--gold-indicator: var(--gold-9);--gold-track: var(--gold-9);--grass-surface: #f3faf3cc;--grass-indicator: var(--grass-9);--grass-track: var(--grass-9);--green-surface: #f1faf4cc;--green-indicator: var(--green-9);--green-track: var(--green-9);--indigo-surface: #f5f8ffcc;--indigo-indicator: var(--indigo-9);--indigo-track: var(--indigo-9);--iris-surface: #f6f6ffcc;--iris-indicator: var(--iris-9);--iris-track: var(--iris-9);--jade-surface: #f1faf5cc;--jade-indicator: var(--jade-9);--jade-track: var(--jade-9);--lime-surface: #f6f9f0cc;--lime-indicator: var(--lime-9);--lime-track: var(--lime-9);--mint-surface: #effaf8cc;--mint-indicator: var(--mint-9);--mint-track: var(--mint-9);--orange-surface: #fff5e9cc;--orange-indicator: var(--orange-9);--orange-track: var(--orange-9);--pink-surface: #fef5facc;--pink-indicator: var(--pink-9);--pink-track: var(--pink-9);--plum-surface: #fdf5fdcc;--plum-indicator: var(--plum-9);--plum-track: var(--plum-9);--purple-surface: #faf5fecc;--purple-indicator: var(--purple-9);--purple-track: var(--purple-9);--red-surface: #fff5f5cc;--red-indicator: var(--red-9);--red-track: var(--red-9);--ruby-surface: #fff5f6cc;--ruby-indicator: var(--ruby-9);--ruby-track: var(--ruby-9);--sky-surface: #eef9fdcc;--sky-indicator: var(--sky-9);--sky-track: var(--sky-9);--teal-surface: #f0faf8cc;--teal-indicator: var(--teal-9);--teal-track: var(--teal-9);--tomato-surface: #fff6f5cc;--tomato-indicator: var(--tomato-9);--tomato-track: var(--tomato-9);--violet-surface: #f9f6ffcc;--violet-indicator: var(--violet-9);--violet-track: var(--violet-9);--yellow-surface: #fefbe4cc;--yellow-indicator: var(--yellow-10);--yellow-track: var(--yellow-10)}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){:root,.light,.light-theme{--gray-1: color(display-p3 .988 .988 .988);--gray-2: color(display-p3 .975 .975 .975);--gray-3: color(display-p3 .939 .939 .939);--gray-4: color(display-p3 .908 .908 .908);--gray-5: color(display-p3 .88 .88 .88);--gray-6: color(display-p3 .849 .849 .849);--gray-7: color(display-p3 .807 .807 .807);--gray-8: color(display-p3 .732 .732 .732);--gray-9: color(display-p3 .553 .553 .553);--gray-10: color(display-p3 .512 .512 .512);--gray-11: color(display-p3 .392 .392 .392);--gray-12: color(display-p3 .125 .125 .125);--gray-a1: color(display-p3 0 0 0 / .012);--gray-a2: color(display-p3 0 0 0 / .024);--gray-a3: color(display-p3 0 0 0 / .063);--gray-a4: color(display-p3 0 0 0 / .09);--gray-a5: color(display-p3 0 0 0 / .122);--gray-a6: color(display-p3 0 0 0 / .153);--gray-a7: color(display-p3 0 0 0 / .192);--gray-a8: color(display-p3 0 0 0 / .267);--gray-a9: color(display-p3 0 0 0 / .447);--gray-a10: color(display-p3 0 0 0 / .486);--gray-a11: color(display-p3 0 0 0 / .608);--gray-a12: color(display-p3 0 0 0 / .875);--mauve-1: color(display-p3 .991 .988 .992);--mauve-2: color(display-p3 .98 .976 .984);--mauve-3: color(display-p3 .946 .938 .952);--mauve-4: color(display-p3 .915 .906 .925);--mauve-5: color(display-p3 .886 .876 .901);--mauve-6: color(display-p3 .856 .846 .875);--mauve-7: color(display-p3 .814 .804 .84);--mauve-8: color(display-p3 .735 .728 .777);--mauve-9: color(display-p3 .555 .549 .596);--mauve-10: color(display-p3 .514 .508 .552);--mauve-11: color(display-p3 .395 .388 .424);--mauve-12: color(display-p3 .128 .122 .147);--mauve-a1: color(display-p3 .349 .024 .349 / .012);--mauve-a2: color(display-p3 .184 .024 .349 / .024);--mauve-a3: color(display-p3 .129 .008 .255 / .063);--mauve-a4: color(display-p3 .094 .012 .216 / .095);--mauve-a5: color(display-p3 .098 .008 .224 / .126);--mauve-a6: color(display-p3 .055 .004 .18 / .153);--mauve-a7: color(display-p3 .067 .008 .184 / .197);--mauve-a8: color(display-p3 .02 .004 .176 / .271);--mauve-a9: color(display-p3 .02 .004 .106 / .451);--mauve-a10: color(display-p3 .012 .004 .09 / .491);--mauve-a11: color(display-p3 .016 0 .059 / .612);--mauve-a12: color(display-p3 .008 0 .027 / .879);--slate-1: color(display-p3 .988 .988 .992);--slate-2: color(display-p3 .976 .976 .984);--slate-3: color(display-p3 .94 .941 .953);--slate-4: color(display-p3 .908 .909 .925);--slate-5: color(display-p3 .88 .881 .901);--slate-6: color(display-p3 .85 .852 .876);--slate-7: color(display-p3 .805 .808 .838);--slate-8: color(display-p3 .727 .733 .773);--slate-9: color(display-p3 .547 .553 .592);--slate-10: color(display-p3 .503 .512 .549);--slate-11: color(display-p3 .379 .392 .421);--slate-12: color(display-p3 .113 .125 .14);--slate-a1: color(display-p3 .024 .024 .349 / .012);--slate-a2: color(display-p3 .024 .024 .349 / .024);--slate-a3: color(display-p3 .004 .004 .204 / .059);--slate-a4: color(display-p3 .012 .012 .184 / .091);--slate-a5: color(display-p3 .004 .039 .2 / .122);--slate-a6: color(display-p3 .008 .008 .165 / .15);--slate-a7: color(display-p3 .008 .027 .184 / .197);--slate-a8: color(display-p3 .004 .031 .176 / .275);--slate-a9: color(display-p3 .004 .02 .106 / .455);--slate-a10: color(display-p3 .004 .027 .098 / .499);--slate-a11: color(display-p3 0 .02 .063 / .62);--slate-a12: color(display-p3 0 .012 .031 / .887);--sage-1: color(display-p3 .986 .992 .988);--sage-2: color(display-p3 .97 .977 .974);--sage-3: color(display-p3 .935 .944 .94);--sage-4: color(display-p3 .904 .913 .909);--sage-5: color(display-p3 .875 .885 .88);--sage-6: color(display-p3 .844 .854 .849);--sage-7: color(display-p3 .8 .811 .806);--sage-8: color(display-p3 .725 .738 .732);--sage-9: color(display-p3 .531 .556 .546);--sage-10: color(display-p3 .492 .515 .506);--sage-11: color(display-p3 .377 .395 .389);--sage-12: color(display-p3 .107 .129 .118);--sage-a1: color(display-p3 .024 .514 .267 / .016);--sage-a2: color(display-p3 .02 .267 .145 / .032);--sage-a3: color(display-p3 .008 .184 .125 / .067);--sage-a4: color(display-p3 .012 .094 .051 / .095);--sage-a5: color(display-p3 .008 .098 .035 / .126);--sage-a6: color(display-p3 .004 .078 .027 / .157);--sage-a7: color(display-p3 0 .059 .039 / .2);--sage-a8: color(display-p3 .004 .047 .031 / .275);--sage-a9: color(display-p3 .004 .059 .035 / .471);--sage-a10: color(display-p3 0 .047 .031 / .51);--sage-a11: color(display-p3 0 .031 .02 / .624);--sage-a12: color(display-p3 0 .027 .012 / .895);--olive-1: color(display-p3 .989 .992 .989);--olive-2: color(display-p3 .974 .98 .973);--olive-3: color(display-p3 .939 .945 .937);--olive-4: color(display-p3 .907 .914 .905);--olive-5: color(display-p3 .878 .885 .875);--olive-6: color(display-p3 .846 .855 .843);--olive-7: color(display-p3 .803 .812 .8);--olive-8: color(display-p3 .727 .738 .723);--olive-9: color(display-p3 .541 .556 .532);--olive-10: color(display-p3 .5 .515 .491);--olive-11: color(display-p3 .38 .395 .374);--olive-12: color(display-p3 .117 .129 .111);--olive-a1: color(display-p3 .024 .349 .024 / .012);--olive-a2: color(display-p3 .024 .302 .024 / .028);--olive-a3: color(display-p3 .008 .129 .008 / .063);--olive-a4: color(display-p3 .012 .094 .012 / .095);--olive-a5: color(display-p3 .035 .098 .008 / .126);--olive-a6: color(display-p3 .027 .078 .004 / .157);--olive-a7: color(display-p3 .02 .059 0 / .2);--olive-a8: color(display-p3 .02 .059 .004 / .279);--olive-a9: color(display-p3 .02 .051 .004 / .467);--olive-a10: color(display-p3 .024 .047 0 / .51);--olive-a11: color(display-p3 .012 .039 0 / .628);--olive-a12: color(display-p3 .008 .024 0 / .891);--sand-1: color(display-p3 .992 .992 .989);--sand-2: color(display-p3 .977 .977 .973);--sand-3: color(display-p3 .943 .942 .936);--sand-4: color(display-p3 .913 .912 .903);--sand-5: color(display-p3 .885 .883 .873);--sand-6: color(display-p3 .854 .852 .839);--sand-7: color(display-p3 .813 .81 .794);--sand-8: color(display-p3 .738 .734 .713);--sand-9: color(display-p3 .553 .553 .528);--sand-10: color(display-p3 .511 .511 .488);--sand-11: color(display-p3 .388 .388 .37);--sand-12: color(display-p3 .129 .126 .111);--sand-a1: color(display-p3 .349 .349 .024 / .012);--sand-a2: color(display-p3 .161 .161 .024 / .028);--sand-a3: color(display-p3 .067 .067 .008 / .063);--sand-a4: color(display-p3 .129 .129 .012 / .099);--sand-a5: color(display-p3 .098 .067 .008 / .126);--sand-a6: color(display-p3 .102 .075 .004 / .161);--sand-a7: color(display-p3 .098 .098 .004 / .208);--sand-a8: color(display-p3 .086 .075 .004 / .287);--sand-a9: color(display-p3 .051 .051 .004 / .471);--sand-a10: color(display-p3 .047 .047 0 / .514);--sand-a11: color(display-p3 .031 .031 0 / .632);--sand-a12: color(display-p3 .024 .02 0 / .891);--amber-1: color(display-p3 .995 .992 .985);--amber-2: color(display-p3 .994 .986 .921);--amber-3: color(display-p3 .994 .969 .782);--amber-4: color(display-p3 .989 .937 .65);--amber-5: color(display-p3 .97 .902 .527);--amber-6: color(display-p3 .936 .844 .506);--amber-7: color(display-p3 .89 .762 .443);--amber-8: color(display-p3 .85 .65 .3);--amber-9: color(display-p3 1 .77 .26);--amber-10: color(display-p3 .959 .741 .274);--amber-11: color(display-p3 .64 .4 0);--amber-12: color(display-p3 .294 .208 .145);--amber-a1: color(display-p3 .757 .514 .024 / .016);--amber-a2: color(display-p3 .902 .804 .008 / .079);--amber-a3: color(display-p3 .965 .859 .004 / .22);--amber-a4: color(display-p3 .969 .82 .004 / .35);--amber-a5: color(display-p3 .933 .796 .004 / .475);--amber-a6: color(display-p3 .875 .682 .004 / .495);--amber-a7: color(display-p3 .804 .573 0 / .557);--amber-a8: color(display-p3 .788 .502 0 / .699);--amber-a9: color(display-p3 1 .686 0 / .742);--amber-a10: color(display-p3 .945 .643 0 / .726);--amber-a11: color(display-p3 .64 .4 0);--amber-a12: color(display-p3 .294 .208 .145);--blue-1: color(display-p3 .986 .992 .999);--blue-2: color(display-p3 .96 .979 .998);--blue-3: color(display-p3 .912 .956 .991);--blue-4: color(display-p3 .853 .932 1);--blue-5: color(display-p3 .788 .894 .998);--blue-6: color(display-p3 .709 .843 .976);--blue-7: color(display-p3 .606 .777 .947);--blue-8: color(display-p3 .451 .688 .917);--blue-9: color(display-p3 .247 .556 .969);--blue-10: color(display-p3 .234 .523 .912);--blue-11: color(display-p3 .15 .44 .84);--blue-12: color(display-p3 .102 .193 .379);--blue-a1: color(display-p3 .024 .514 1 / .016);--blue-a2: color(display-p3 .024 .514 .906 / .04);--blue-a3: color(display-p3 .012 .506 .914 / .087);--blue-a4: color(display-p3 .008 .545 1 / .146);--blue-a5: color(display-p3 .004 .502 .984 / .212);--blue-a6: color(display-p3 .004 .463 .922 / .291);--blue-a7: color(display-p3 .004 .431 .863 / .393);--blue-a8: color(display-p3 0 .427 .851 / .55);--blue-a9: color(display-p3 0 .412 .961 / .753);--blue-a10: color(display-p3 0 .376 .886 / .765);--blue-a11: color(display-p3 .15 .44 .84);--blue-a12: color(display-p3 .102 .193 .379);--bronze-1: color(display-p3 .991 .988 .988);--bronze-2: color(display-p3 .989 .97 .961);--bronze-3: color(display-p3 .958 .932 .919);--bronze-4: color(display-p3 .929 .894 .877);--bronze-5: color(display-p3 .898 .853 .832);--bronze-6: color(display-p3 .861 .805 .778);--bronze-7: color(display-p3 .812 .739 .706);--bronze-8: color(display-p3 .741 .647 .606);--bronze-9: color(display-p3 .611 .507 .455);--bronze-10: color(display-p3 .563 .461 .414);--bronze-11: color(display-p3 .471 .373 .336);--bronze-12: color(display-p3 .251 .191 .172);--bronze-a1: color(display-p3 .349 .024 .024 / .012);--bronze-a2: color(display-p3 .71 .22 .024 / .04);--bronze-a3: color(display-p3 .482 .2 .008 / .083);--bronze-a4: color(display-p3 .424 .133 .004 / .122);--bronze-a5: color(display-p3 .4 .145 .004 / .169);--bronze-a6: color(display-p3 .388 .125 .004 / .224);--bronze-a7: color(display-p3 .365 .11 .004 / .295);--bronze-a8: color(display-p3 .341 .102 .004 / .393);--bronze-a9: color(display-p3 .29 .094 0 / .546);--bronze-a10: color(display-p3 .255 .082 0 / .585);--bronze-a11: color(display-p3 .471 .373 .336);--bronze-a12: color(display-p3 .251 .191 .172);--brown-1: color(display-p3 .995 .992 .989);--brown-2: color(display-p3 .987 .976 .964);--brown-3: color(display-p3 .959 .936 .909);--brown-4: color(display-p3 .934 .897 .855);--brown-5: color(display-p3 .909 .856 .798);--brown-6: color(display-p3 .88 .808 .73);--brown-7: color(display-p3 .841 .742 .639);--brown-8: color(display-p3 .782 .647 .514);--brown-9: color(display-p3 .651 .505 .368);--brown-10: color(display-p3 .601 .465 .344);--brown-11: color(display-p3 .485 .374 .288);--brown-12: color(display-p3 .236 .202 .183);--brown-a1: color(display-p3 .675 .349 .024 / .012);--brown-a2: color(display-p3 .675 .349 .024 / .036);--brown-a3: color(display-p3 .573 .314 .012 / .091);--brown-a4: color(display-p3 .545 .302 .008 / .146);--brown-a5: color(display-p3 .561 .29 .004 / .204);--brown-a6: color(display-p3 .553 .294 .004 / .271);--brown-a7: color(display-p3 .557 .286 .004 / .361);--brown-a8: color(display-p3 .549 .275 .004 / .487);--brown-a9: color(display-p3 .447 .22 0 / .632);--brown-a10: color(display-p3 .388 .188 0 / .655);--brown-a11: color(display-p3 .485 .374 .288);--brown-a12: color(display-p3 .236 .202 .183);--crimson-1: color(display-p3 .998 .989 .992);--crimson-2: color(display-p3 .991 .969 .976);--crimson-3: color(display-p3 .987 .917 .941);--crimson-4: color(display-p3 .975 .866 .904);--crimson-5: color(display-p3 .953 .813 .864);--crimson-6: color(display-p3 .921 .755 .817);--crimson-7: color(display-p3 .88 .683 .761);--crimson-8: color(display-p3 .834 .592 .694);--crimson-9: color(display-p3 .843 .298 .507);--crimson-10: color(display-p3 .807 .266 .468);--crimson-11: color(display-p3 .731 .195 .388);--crimson-12: color(display-p3 .352 .111 .221);--crimson-a1: color(display-p3 .675 .024 .349 / .012);--crimson-a2: color(display-p3 .757 .02 .267 / .032);--crimson-a3: color(display-p3 .859 .008 .294 / .083);--crimson-a4: color(display-p3 .827 .008 .298 / .134);--crimson-a5: color(display-p3 .753 .008 .275 / .189);--crimson-a6: color(display-p3 .682 .004 .247 / .244);--crimson-a7: color(display-p3 .62 .004 .251 / .318);--crimson-a8: color(display-p3 .6 .004 .251 / .408);--crimson-a9: color(display-p3 .776 0 .298 / .702);--crimson-a10: color(display-p3 .737 0 .275 / .734);--crimson-a11: color(display-p3 .731 .195 .388);--crimson-a12: color(display-p3 .352 .111 .221);--cyan-1: color(display-p3 .982 .992 .996);--cyan-2: color(display-p3 .955 .981 .984);--cyan-3: color(display-p3 .888 .965 .975);--cyan-4: color(display-p3 .821 .941 .959);--cyan-5: color(display-p3 .751 .907 .935);--cyan-6: color(display-p3 .671 .862 .9);--cyan-7: color(display-p3 .564 .8 .854);--cyan-8: color(display-p3 .388 .715 .798);--cyan-9: color(display-p3 .282 .627 .765);--cyan-10: color(display-p3 .264 .583 .71);--cyan-11: color(display-p3 .08 .48 .63);--cyan-12: color(display-p3 .108 .232 .277);--cyan-a1: color(display-p3 .02 .608 .804 / .02);--cyan-a2: color(display-p3 .02 .557 .647 / .044);--cyan-a3: color(display-p3 .004 .694 .796 / .114);--cyan-a4: color(display-p3 .004 .678 .784 / .181);--cyan-a5: color(display-p3 .004 .624 .733 / .248);--cyan-a6: color(display-p3 .004 .584 .706 / .33);--cyan-a7: color(display-p3 .004 .541 .667 / .436);--cyan-a8: color(display-p3 0 .533 .667 / .612);--cyan-a9: color(display-p3 0 .482 .675 / .718);--cyan-a10: color(display-p3 0 .435 .608 / .738);--cyan-a11: color(display-p3 .08 .48 .63);--cyan-a12: color(display-p3 .108 .232 .277);--gold-1: color(display-p3 .992 .992 .989);--gold-2: color(display-p3 .98 .976 .953);--gold-3: color(display-p3 .947 .94 .909);--gold-4: color(display-p3 .914 .904 .865);--gold-5: color(display-p3 .88 .865 .816);--gold-6: color(display-p3 .84 .818 .756);--gold-7: color(display-p3 .788 .753 .677);--gold-8: color(display-p3 .715 .66 .565);--gold-9: color(display-p3 .579 .517 .41);--gold-10: color(display-p3 .538 .479 .38);--gold-11: color(display-p3 .433 .386 .305);--gold-12: color(display-p3 .227 .209 .173);--gold-a1: color(display-p3 .349 .349 .024 / .012);--gold-a2: color(display-p3 .592 .514 .024 / .048);--gold-a3: color(display-p3 .4 .357 .012 / .091);--gold-a4: color(display-p3 .357 .298 .008 / .134);--gold-a5: color(display-p3 .345 .282 .004 / .185);--gold-a6: color(display-p3 .341 .263 .004 / .244);--gold-a7: color(display-p3 .345 .235 .004 / .322);--gold-a8: color(display-p3 .345 .22 .004 / .436);--gold-a9: color(display-p3 .286 .18 0 / .589);--gold-a10: color(display-p3 .255 .161 0 / .62);--gold-a11: color(display-p3 .433 .386 .305);--gold-a12: color(display-p3 .227 .209 .173);--grass-1: color(display-p3 .986 .996 .985);--grass-2: color(display-p3 .966 .983 .964);--grass-3: color(display-p3 .923 .965 .917);--grass-4: color(display-p3 .872 .94 .865);--grass-5: color(display-p3 .811 .908 .802);--grass-6: color(display-p3 .733 .864 .724);--grass-7: color(display-p3 .628 .803 .622);--grass-8: color(display-p3 .477 .72 .482);--grass-9: color(display-p3 .38 .647 .378);--grass-10: color(display-p3 .344 .598 .342);--grass-11: color(display-p3 .263 .488 .261);--grass-12: color(display-p3 .151 .233 .153);--grass-a1: color(display-p3 .024 .757 .024 / .016);--grass-a2: color(display-p3 .024 .565 .024 / .036);--grass-a3: color(display-p3 .059 .576 .008 / .083);--grass-a4: color(display-p3 .035 .565 .008 / .134);--grass-a5: color(display-p3 .047 .545 .008 / .197);--grass-a6: color(display-p3 .031 .502 .004 / .275);--grass-a7: color(display-p3 .012 .482 .004 / .377);--grass-a8: color(display-p3 0 .467 .008 / .522);--grass-a9: color(display-p3 .008 .435 0 / .624);--grass-a10: color(display-p3 .008 .388 0 / .659);--grass-a11: color(display-p3 .263 .488 .261);--grass-a12: color(display-p3 .151 .233 .153);--green-1: color(display-p3 .986 .996 .989);--green-2: color(display-p3 .963 .983 .967);--green-3: color(display-p3 .913 .964 .925);--green-4: color(display-p3 .859 .94 .879);--green-5: color(display-p3 .796 .907 .826);--green-6: color(display-p3 .718 .863 .761);--green-7: color(display-p3 .61 .801 .675);--green-8: color(display-p3 .451 .715 .559);--green-9: color(display-p3 .332 .634 .442);--green-10: color(display-p3 .308 .595 .417);--green-11: color(display-p3 .19 .5 .32);--green-12: color(display-p3 .132 .228 .18);--green-a1: color(display-p3 .024 .757 .267 / .016);--green-a2: color(display-p3 .024 .565 .129 / .036);--green-a3: color(display-p3 .012 .596 .145 / .087);--green-a4: color(display-p3 .008 .588 .145 / .142);--green-a5: color(display-p3 .004 .541 .157 / .204);--green-a6: color(display-p3 .004 .518 .157 / .283);--green-a7: color(display-p3 .004 .486 .165 / .389);--green-a8: color(display-p3 0 .478 .2 / .55);--green-a9: color(display-p3 0 .455 .165 / .667);--green-a10: color(display-p3 0 .416 .153 / .691);--green-a11: color(display-p3 .19 .5 .32);--green-a12: color(display-p3 .132 .228 .18);--indigo-1: color(display-p3 .992 .992 .996);--indigo-2: color(display-p3 .971 .977 .998);--indigo-3: color(display-p3 .933 .948 .992);--indigo-4: color(display-p3 .885 .914 1);--indigo-5: color(display-p3 .831 .87 1);--indigo-6: color(display-p3 .767 .814 .995);--indigo-7: color(display-p3 .685 .74 .957);--indigo-8: color(display-p3 .569 .639 .916);--indigo-9: color(display-p3 .276 .384 .837);--indigo-10: color(display-p3 .234 .343 .801);--indigo-11: color(display-p3 .256 .354 .755);--indigo-12: color(display-p3 .133 .175 .348);--indigo-a1: color(display-p3 .02 .02 .51 / .008);--indigo-a2: color(display-p3 .024 .161 .863 / .028);--indigo-a3: color(display-p3 .008 .239 .886 / .067);--indigo-a4: color(display-p3 .004 .247 1 / .114);--indigo-a5: color(display-p3 .004 .235 1 / .169);--indigo-a6: color(display-p3 .004 .208 .984 / .232);--indigo-a7: color(display-p3 .004 .176 .863 / .314);--indigo-a8: color(display-p3 .004 .165 .812 / .432);--indigo-a9: color(display-p3 0 .153 .773 / .726);--indigo-a10: color(display-p3 0 .137 .737 / .765);--indigo-a11: color(display-p3 .256 .354 .755);--indigo-a12: color(display-p3 .133 .175 .348);--iris-1: color(display-p3 .992 .992 .999);--iris-2: color(display-p3 .972 .973 .998);--iris-3: color(display-p3 .943 .945 .992);--iris-4: color(display-p3 .902 .906 1);--iris-5: color(display-p3 .857 .861 1);--iris-6: color(display-p3 .799 .805 .987);--iris-7: color(display-p3 .721 .727 .955);--iris-8: color(display-p3 .61 .619 .918);--iris-9: color(display-p3 .357 .357 .81);--iris-10: color(display-p3 .318 .318 .774);--iris-11: color(display-p3 .337 .326 .748);--iris-12: color(display-p3 .154 .161 .371);--iris-a1: color(display-p3 .02 .02 1 / .008);--iris-a2: color(display-p3 .024 .024 .863 / .028);--iris-a3: color(display-p3 .004 .071 .871 / .059);--iris-a4: color(display-p3 .012 .051 1 / .099);--iris-a5: color(display-p3 .008 .035 1 / .142);--iris-a6: color(display-p3 0 .02 .941 / .2);--iris-a7: color(display-p3 .004 .02 .847 / .279);--iris-a8: color(display-p3 .004 .024 .788 / .389);--iris-a9: color(display-p3 0 0 .706 / .644);--iris-a10: color(display-p3 0 0 .667 / .683);--iris-a11: color(display-p3 .337 .326 .748);--iris-a12: color(display-p3 .154 .161 .371);--jade-1: color(display-p3 .986 .996 .992);--jade-2: color(display-p3 .962 .983 .969);--jade-3: color(display-p3 .912 .965 .932);--jade-4: color(display-p3 .858 .941 .893);--jade-5: color(display-p3 .795 .909 .847);--jade-6: color(display-p3 .715 .864 .791);--jade-7: color(display-p3 .603 .802 .718);--jade-8: color(display-p3 .44 .72 .629);--jade-9: color(display-p3 .319 .63 .521);--jade-10: color(display-p3 .299 .592 .488);--jade-11: color(display-p3 .15 .5 .37);--jade-12: color(display-p3 .142 .229 .194);--jade-a1: color(display-p3 .024 .757 .514 / .016);--jade-a2: color(display-p3 .024 .612 .22 / .04);--jade-a3: color(display-p3 .012 .596 .235 / .087);--jade-a4: color(display-p3 .008 .588 .255 / .142);--jade-a5: color(display-p3 .004 .561 .251 / .204);--jade-a6: color(display-p3 .004 .525 .278 / .287);--jade-a7: color(display-p3 .004 .506 .29 / .397);--jade-a8: color(display-p3 0 .506 .337 / .561);--jade-a9: color(display-p3 0 .459 .298 / .683);--jade-a10: color(display-p3 0 .42 .271 / .702);--jade-a11: color(display-p3 .15 .5 .37);--jade-a12: color(display-p3 .142 .229 .194);--lime-1: color(display-p3 .989 .992 .981);--lime-2: color(display-p3 .975 .98 .954);--lime-3: color(display-p3 .939 .965 .851);--lime-4: color(display-p3 .896 .94 .76);--lime-5: color(display-p3 .843 .903 .678);--lime-6: color(display-p3 .778 .852 .599);--lime-7: color(display-p3 .694 .784 .508);--lime-8: color(display-p3 .585 .707 .378);--lime-9: color(display-p3 .78 .928 .466);--lime-10: color(display-p3 .734 .896 .397);--lime-11: color(display-p3 .386 .482 .227);--lime-12: color(display-p3 .222 .25 .128);--lime-a1: color(display-p3 .412 .608 .02 / .02);--lime-a2: color(display-p3 .514 .592 .024 / .048);--lime-a3: color(display-p3 .584 .765 .008 / .15);--lime-a4: color(display-p3 .561 .757 .004 / .24);--lime-a5: color(display-p3 .514 .698 .004 / .322);--lime-a6: color(display-p3 .443 .627 0 / .4);--lime-a7: color(display-p3 .376 .561 .004 / .491);--lime-a8: color(display-p3 .333 .529 0 / .624);--lime-a9: color(display-p3 .588 .867 0 / .534);--lime-a10: color(display-p3 .561 .827 0 / .604);--lime-a11: color(display-p3 .386 .482 .227);--lime-a12: color(display-p3 .222 .25 .128);--mint-1: color(display-p3 .98 .995 .992);--mint-2: color(display-p3 .957 .985 .977);--mint-3: color(display-p3 .888 .972 .95);--mint-4: color(display-p3 .819 .951 .916);--mint-5: color(display-p3 .747 .918 .873);--mint-6: color(display-p3 .668 .87 .818);--mint-7: color(display-p3 .567 .805 .744);--mint-8: color(display-p3 .42 .724 .649);--mint-9: color(display-p3 .62 .908 .834);--mint-10: color(display-p3 .585 .871 .797);--mint-11: color(display-p3 .203 .463 .397);--mint-12: color(display-p3 .136 .259 .236);--mint-a1: color(display-p3 .02 .804 .608 / .02);--mint-a2: color(display-p3 .02 .647 .467 / .044);--mint-a3: color(display-p3 .004 .761 .553 / .114);--mint-a4: color(display-p3 .004 .741 .545 / .181);--mint-a5: color(display-p3 .004 .678 .51 / .255);--mint-a6: color(display-p3 .004 .616 .463 / .334);--mint-a7: color(display-p3 .004 .549 .412 / .432);--mint-a8: color(display-p3 0 .529 .392 / .581);--mint-a9: color(display-p3 .004 .765 .569 / .381);--mint-a10: color(display-p3 .004 .69 .51 / .416);--mint-a11: color(display-p3 .203 .463 .397);--mint-a12: color(display-p3 .136 .259 .236);--orange-1: color(display-p3 .995 .988 .985);--orange-2: color(display-p3 .994 .968 .934);--orange-3: color(display-p3 .989 .938 .85);--orange-4: color(display-p3 1 .874 .687);--orange-5: color(display-p3 1 .821 .583);--orange-6: color(display-p3 .975 .767 .545);--orange-7: color(display-p3 .919 .693 .486);--orange-8: color(display-p3 .877 .597 .379);--orange-9: color(display-p3 .9 .45 .2);--orange-10: color(display-p3 .87 .409 .164);--orange-11: color(display-p3 .76 .34 0);--orange-12: color(display-p3 .323 .185 .127);--orange-a1: color(display-p3 .757 .267 .024 / .016);--orange-a2: color(display-p3 .886 .533 .008 / .067);--orange-a3: color(display-p3 .922 .584 .008 / .15);--orange-a4: color(display-p3 1 .604 .004 / .314);--orange-a5: color(display-p3 1 .569 .004 / .416);--orange-a6: color(display-p3 .949 .494 .004 / .455);--orange-a7: color(display-p3 .839 .408 0 / .514);--orange-a8: color(display-p3 .804 .349 0 / .62);--orange-a9: color(display-p3 .878 .314 0 / .8);--orange-a10: color(display-p3 .843 .29 0 / .836);--orange-a11: color(display-p3 .76 .34 0);--orange-a12: color(display-p3 .323 .185 .127);--pink-1: color(display-p3 .998 .989 .996);--pink-2: color(display-p3 .992 .97 .985);--pink-3: color(display-p3 .981 .917 .96);--pink-4: color(display-p3 .963 .867 .932);--pink-5: color(display-p3 .939 .815 .899);--pink-6: color(display-p3 .907 .756 .859);--pink-7: color(display-p3 .869 .683 .81);--pink-8: color(display-p3 .825 .59 .751);--pink-9: color(display-p3 .775 .297 .61);--pink-10: color(display-p3 .748 .27 .581);--pink-11: color(display-p3 .698 .219 .528);--pink-12: color(display-p3 .363 .101 .279);--pink-a1: color(display-p3 .675 .024 .675 / .012);--pink-a2: color(display-p3 .757 .02 .51 / .032);--pink-a3: color(display-p3 .765 .008 .529 / .083);--pink-a4: color(display-p3 .737 .008 .506 / .134);--pink-a5: color(display-p3 .663 .004 .451 / .185);--pink-a6: color(display-p3 .616 .004 .424 / .244);--pink-a7: color(display-p3 .596 .004 .412 / .318);--pink-a8: color(display-p3 .573 .004 .404 / .412);--pink-a9: color(display-p3 .682 0 .447 / .702);--pink-a10: color(display-p3 .655 0 .424 / .73);--pink-a11: color(display-p3 .698 .219 .528);--pink-a12: color(display-p3 .363 .101 .279);--plum-1: color(display-p3 .995 .988 .999);--plum-2: color(display-p3 .988 .971 .99);--plum-3: color(display-p3 .973 .923 .98);--plum-4: color(display-p3 .953 .875 .966);--plum-5: color(display-p3 .926 .825 .945);--plum-6: color(display-p3 .89 .765 .916);--plum-7: color(display-p3 .84 .686 .877);--plum-8: color(display-p3 .775 .58 .832);--plum-9: color(display-p3 .624 .313 .708);--plum-10: color(display-p3 .587 .29 .667);--plum-11: color(display-p3 .543 .263 .619);--plum-12: color(display-p3 .299 .114 .352);--plum-a1: color(display-p3 .675 .024 1 / .012);--plum-a2: color(display-p3 .58 .024 .58 / .028);--plum-a3: color(display-p3 .655 .008 .753 / .079);--plum-a4: color(display-p3 .627 .008 .722 / .126);--plum-a5: color(display-p3 .58 .004 .69 / .177);--plum-a6: color(display-p3 .537 .004 .655 / .236);--plum-a7: color(display-p3 .49 .004 .616 / .314);--plum-a8: color(display-p3 .471 .004 .6 / .42);--plum-a9: color(display-p3 .451 0 .576 / .687);--plum-a10: color(display-p3 .42 0 .529 / .71);--plum-a11: color(display-p3 .543 .263 .619);--plum-a12: color(display-p3 .299 .114 .352);--purple-1: color(display-p3 .995 .988 .996);--purple-2: color(display-p3 .983 .971 .993);--purple-3: color(display-p3 .963 .931 .989);--purple-4: color(display-p3 .937 .888 .981);--purple-5: color(display-p3 .904 .837 .966);--purple-6: color(display-p3 .86 .774 .942);--purple-7: color(display-p3 .799 .69 .91);--purple-8: color(display-p3 .719 .583 .874);--purple-9: color(display-p3 .523 .318 .751);--purple-10: color(display-p3 .483 .289 .7);--purple-11: color(display-p3 .473 .281 .687);--purple-12: color(display-p3 .234 .132 .363);--purple-a1: color(display-p3 .675 .024 .675 / .012);--purple-a2: color(display-p3 .443 .024 .722 / .028);--purple-a3: color(display-p3 .506 .008 .835 / .071);--purple-a4: color(display-p3 .451 .004 .831 / .114);--purple-a5: color(display-p3 .431 .004 .788 / .165);--purple-a6: color(display-p3 .384 .004 .745 / .228);--purple-a7: color(display-p3 .357 .004 .71 / .31);--purple-a8: color(display-p3 .322 .004 .702 / .416);--purple-a9: color(display-p3 .298 0 .639 / .683);--purple-a10: color(display-p3 .271 0 .58 / .71);--purple-a11: color(display-p3 .473 .281 .687);--purple-a12: color(display-p3 .234 .132 .363);--red-1: color(display-p3 .998 .989 .988);--red-2: color(display-p3 .995 .971 .971);--red-3: color(display-p3 .985 .925 .925);--red-4: color(display-p3 .999 .866 .866);--red-5: color(display-p3 .984 .812 .811);--red-6: color(display-p3 .955 .751 .749);--red-7: color(display-p3 .915 .675 .672);--red-8: color(display-p3 .872 .575 .572);--red-9: color(display-p3 .83 .329 .324);--red-10: color(display-p3 .798 .294 .285);--red-11: color(display-p3 .744 .234 .222);--red-12: color(display-p3 .36 .115 .143);--red-a1: color(display-p3 .675 .024 .024 / .012);--red-a2: color(display-p3 .863 .024 .024 / .028);--red-a3: color(display-p3 .792 .008 .008 / .075);--red-a4: color(display-p3 1 .008 .008 / .134);--red-a5: color(display-p3 .918 .008 .008 / .189);--red-a6: color(display-p3 .831 .02 .004 / .251);--red-a7: color(display-p3 .741 .016 .004 / .33);--red-a8: color(display-p3 .698 .012 .004 / .428);--red-a9: color(display-p3 .749 .008 0 / .675);--red-a10: color(display-p3 .714 .012 0 / .714);--red-a11: color(display-p3 .744 .234 .222);--red-a12: color(display-p3 .36 .115 .143);--ruby-1: color(display-p3 .998 .989 .992);--ruby-2: color(display-p3 .995 .971 .974);--ruby-3: color(display-p3 .983 .92 .928);--ruby-4: color(display-p3 .987 .869 .885);--ruby-5: color(display-p3 .968 .817 .839);--ruby-6: color(display-p3 .937 .758 .786);--ruby-7: color(display-p3 .897 .685 .721);--ruby-8: color(display-p3 .851 .588 .639);--ruby-9: color(display-p3 .83 .323 .408);--ruby-10: color(display-p3 .795 .286 .375);--ruby-11: color(display-p3 .728 .211 .311);--ruby-12: color(display-p3 .36 .115 .171);--ruby-a1: color(display-p3 .675 .024 .349 / .012);--ruby-a2: color(display-p3 .863 .024 .024 / .028);--ruby-a3: color(display-p3 .804 .008 .11 / .079);--ruby-a4: color(display-p3 .91 .008 .125 / .13);--ruby-a5: color(display-p3 .831 .004 .133 / .185);--ruby-a6: color(display-p3 .745 .004 .118 / .244);--ruby-a7: color(display-p3 .678 .004 .114 / .314);--ruby-a8: color(display-p3 .639 .004 .125 / .412);--ruby-a9: color(display-p3 .753 0 .129 / .679);--ruby-a10: color(display-p3 .714 0 .125 / .714);--ruby-a11: color(display-p3 .728 .211 .311);--ruby-a12: color(display-p3 .36 .115 .171);--sky-1: color(display-p3 .98 .995 .999);--sky-2: color(display-p3 .953 .98 .99);--sky-3: color(display-p3 .899 .963 .989);--sky-4: color(display-p3 .842 .937 .977);--sky-5: color(display-p3 .777 .9 .954);--sky-6: color(display-p3 .701 .851 .921);--sky-7: color(display-p3 .604 .785 .879);--sky-8: color(display-p3 .457 .696 .829);--sky-9: color(display-p3 .585 .877 .983);--sky-10: color(display-p3 .555 .845 .959);--sky-11: color(display-p3 .193 .448 .605);--sky-12: color(display-p3 .145 .241 .329);--sky-a1: color(display-p3 .02 .804 1 / .02);--sky-a2: color(display-p3 .024 .592 .757 / .048);--sky-a3: color(display-p3 .004 .655 .886 / .102);--sky-a4: color(display-p3 .004 .604 .851 / .157);--sky-a5: color(display-p3 .004 .565 .792 / .224);--sky-a6: color(display-p3 .004 .502 .737 / .299);--sky-a7: color(display-p3 .004 .459 .694 / .397);--sky-a8: color(display-p3 0 .435 .682 / .542);--sky-a9: color(display-p3 .004 .71 .965 / .416);--sky-a10: color(display-p3 .004 .647 .914 / .444);--sky-a11: color(display-p3 .193 .448 .605);--sky-a12: color(display-p3 .145 .241 .329);--teal-1: color(display-p3 .983 .996 .992);--teal-2: color(display-p3 .958 .983 .976);--teal-3: color(display-p3 .895 .971 .952);--teal-4: color(display-p3 .831 .949 .92);--teal-5: color(display-p3 .761 .914 .878);--teal-6: color(display-p3 .682 .864 .825);--teal-7: color(display-p3 .581 .798 .756);--teal-8: color(display-p3 .433 .716 .671);--teal-9: color(display-p3 .297 .637 .581);--teal-10: color(display-p3 .275 .599 .542);--teal-11: color(display-p3 .08 .5 .43);--teal-12: color(display-p3 .11 .235 .219);--teal-a1: color(display-p3 .024 .757 .514 / .016);--teal-a2: color(display-p3 .02 .647 .467 / .044);--teal-a3: color(display-p3 .004 .741 .557 / .106);--teal-a4: color(display-p3 .004 .702 .537 / .169);--teal-a5: color(display-p3 .004 .643 .494 / .24);--teal-a6: color(display-p3 .004 .569 .447 / .318);--teal-a7: color(display-p3 .004 .518 .424 / .42);--teal-a8: color(display-p3 0 .506 .424 / .569);--teal-a9: color(display-p3 0 .482 .404 / .702);--teal-a10: color(display-p3 0 .451 .369 / .726);--teal-a11: color(display-p3 .08 .5 .43);--teal-a12: color(display-p3 .11 .235 .219);--tomato-1: color(display-p3 .998 .989 .988);--tomato-2: color(display-p3 .994 .974 .969);--tomato-3: color(display-p3 .985 .924 .909);--tomato-4: color(display-p3 .996 .868 .835);--tomato-5: color(display-p3 .98 .812 .77);--tomato-6: color(display-p3 .953 .75 .698);--tomato-7: color(display-p3 .917 .673 .611);--tomato-8: color(display-p3 .875 .575 .502);--tomato-9: color(display-p3 .831 .345 .231);--tomato-10: color(display-p3 .802 .313 .2);--tomato-11: color(display-p3 .755 .259 .152);--tomato-12: color(display-p3 .335 .165 .132);--tomato-a1: color(display-p3 .675 .024 .024 / .012);--tomato-a2: color(display-p3 .757 .145 .02 / .032);--tomato-a3: color(display-p3 .831 .184 .012 / .091);--tomato-a4: color(display-p3 .976 .192 .004 / .165);--tomato-a5: color(display-p3 .918 .192 .004 / .232);--tomato-a6: color(display-p3 .847 .173 .004 / .302);--tomato-a7: color(display-p3 .788 .165 .004 / .389);--tomato-a8: color(display-p3 .749 .153 .004 / .499);--tomato-a9: color(display-p3 .78 .149 0 / .769);--tomato-a10: color(display-p3 .757 .141 0 / .8);--tomato-a11: color(display-p3 .755 .259 .152);--tomato-a12: color(display-p3 .335 .165 .132);--violet-1: color(display-p3 .991 .988 .995);--violet-2: color(display-p3 .978 .974 .998);--violet-3: color(display-p3 .953 .943 .993);--violet-4: color(display-p3 .916 .897 1);--violet-5: color(display-p3 .876 .851 1);--violet-6: color(display-p3 .825 .793 .981);--violet-7: color(display-p3 .752 .712 .943);--violet-8: color(display-p3 .654 .602 .902);--violet-9: color(display-p3 .417 .341 .784);--violet-10: color(display-p3 .381 .306 .741);--violet-11: color(display-p3 .383 .317 .702);--violet-12: color(display-p3 .179 .15 .359);--violet-a1: color(display-p3 .349 .024 .675 / .012);--violet-a2: color(display-p3 .161 .024 .863 / .028);--violet-a3: color(display-p3 .204 .004 .871 / .059);--violet-a4: color(display-p3 .196 .004 1 / .102);--violet-a5: color(display-p3 .165 .008 1 / .15);--violet-a6: color(display-p3 .153 .004 .906 / .208);--violet-a7: color(display-p3 .141 .004 .796 / .287);--violet-a8: color(display-p3 .133 .004 .753 / .397);--violet-a9: color(display-p3 .114 0 .675 / .659);--violet-a10: color(display-p3 .11 0 .627 / .695);--violet-a11: color(display-p3 .383 .317 .702);--violet-a12: color(display-p3 .179 .15 .359);--yellow-1: color(display-p3 .992 .992 .978);--yellow-2: color(display-p3 .995 .99 .922);--yellow-3: color(display-p3 .997 .982 .749);--yellow-4: color(display-p3 .992 .953 .627);--yellow-5: color(display-p3 .984 .91 .51);--yellow-6: color(display-p3 .934 .847 .474);--yellow-7: color(display-p3 .876 .785 .46);--yellow-8: color(display-p3 .811 .689 .313);--yellow-9: color(display-p3 1 .92 .22);--yellow-10: color(display-p3 .977 .868 .291);--yellow-11: color(display-p3 .6 .44 0);--yellow-12: color(display-p3 .271 .233 .137);--yellow-a1: color(display-p3 .675 .675 .024 / .024);--yellow-a2: color(display-p3 .953 .855 .008 / .079);--yellow-a3: color(display-p3 .988 .925 .004 / .251);--yellow-a4: color(display-p3 .98 .875 .004 / .373);--yellow-a5: color(display-p3 .969 .816 .004 / .491);--yellow-a6: color(display-p3 .875 .71 0 / .526);--yellow-a7: color(display-p3 .769 .604 0 / .542);--yellow-a8: color(display-p3 .725 .549 0 / .687);--yellow-a9: color(display-p3 1 .898 0 / .781);--yellow-a10: color(display-p3 .969 .812 0 / .71);--yellow-a11: color(display-p3 .6 .44 0);--yellow-a12: color(display-p3 .271 .233 .137);--gray-surface: color(display-p3 1 1 1 / .8);--mauve-surface: color(display-p3 1 1 1 / .8);--slate-surface: color(display-p3 1 1 1 / .8);--sage-surface: color(display-p3 1 1 1 / .8);--olive-surface: color(display-p3 1 1 1 / .8);--sand-surface: color(display-p3 1 1 1 / .8);--amber-surface: color(display-p3 .9922 .9843 .902 / .8);--blue-surface: color(display-p3 .9529 .9765 .9961 / .8);--bronze-surface: color(display-p3 .9843 .9608 .9529 / .8);--brown-surface: color(display-p3 .9843 .9725 .9569 / .8);--crimson-surface: color(display-p3 .9922 .9608 .9725 / .8);--cyan-surface: color(display-p3 .9412 .9765 .9804 / .8);--gold-surface: color(display-p3 .9765 .9725 .9412 / .8);--grass-surface: color(display-p3 .9569 .9804 .9569 / .8);--green-surface: color(display-p3 .9569 .9804 .9608 / .8);--indigo-surface: color(display-p3 .9647 .9725 .9961 / .8);--iris-surface: color(display-p3 .9647 .9647 .9961 / .8);--jade-surface: color(display-p3 .9529 .9804 .9608 / .8);--lime-surface: color(display-p3 .9725 .9765 .9412 / .8);--mint-surface: color(display-p3 .9451 .9804 .9725 / .8);--orange-surface: color(display-p3 .9961 .9608 .9176 / .8);--pink-surface: color(display-p3 .9922 .9608 .9804 / .8);--plum-surface: color(display-p3 .9843 .9647 .9843 / .8);--purple-surface: color(display-p3 .9804 .9647 .9922 / .8);--red-surface: color(display-p3 .9961 .9647 .9647 / .8);--ruby-surface: color(display-p3 .9961 .9647 .9647 / .8);--sky-surface: color(display-p3 .9412 .9765 .9843 / .8);--teal-surface: color(display-p3 .9451 .9804 .9725 / .8);--tomato-surface: color(display-p3 .9922 .9647 .9608 / .8);--violet-surface: color(display-p3 .9725 .9647 .9961 / .8);--yellow-surface: color(display-p3 .9961 .9922 .902 / .8)}}}.dark,.dark-theme{--gray-1: #111111;--gray-2: #191919;--gray-3: #222222;--gray-4: #2a2a2a;--gray-5: #313131;--gray-6: #3a3a3a;--gray-7: #484848;--gray-8: #606060;--gray-9: #6e6e6e;--gray-10: #7b7b7b;--gray-11: #b4b4b4;--gray-12: #eeeeee;--gray-a1: #00000000;--gray-a2: #ffffff09;--gray-a3: #ffffff12;--gray-a4: #ffffff1b;--gray-a5: #ffffff22;--gray-a6: #ffffff2c;--gray-a7: #ffffff3b;--gray-a8: #ffffff55;--gray-a9: #ffffff64;--gray-a10: #ffffff72;--gray-a11: #ffffffaf;--gray-a12: #ffffffed;--mauve-1: #121113;--mauve-2: #1a191b;--mauve-3: #232225;--mauve-4: #2b292d;--mauve-5: #323035;--mauve-6: #3c393f;--mauve-7: #49474e;--mauve-8: #625f69;--mauve-9: #6f6d78;--mauve-10: #7c7a85;--mauve-11: #b5b2bc;--mauve-12: #eeeef0;--mauve-a1: #00000000;--mauve-a2: #f5f4f609;--mauve-a3: #ebeaf814;--mauve-a4: #eee5f81d;--mauve-a5: #efe6fe25;--mauve-a6: #f1e6fd30;--mauve-a7: #eee9ff40;--mauve-a8: #eee7ff5d;--mauve-a9: #eae6fd6e;--mauve-a10: #ece9fd7c;--mauve-a11: #f5f1ffb7;--mauve-a12: #fdfdffef;--slate-1: #111113;--slate-2: #18191b;--slate-3: #212225;--slate-4: #272a2d;--slate-5: #2e3135;--slate-6: #363a3f;--slate-7: #43484e;--slate-8: #5a6169;--slate-9: #696e77;--slate-10: #777b84;--slate-11: #b0b4ba;--slate-12: #edeef0;--slate-a1: #00000000;--slate-a2: #d8f4f609;--slate-a3: #ddeaf814;--slate-a4: #d3edf81d;--slate-a5: #d9edfe25;--slate-a6: #d6ebfd30;--slate-a7: #d9edff40;--slate-a8: #d9edff5d;--slate-a9: #dfebfd6d;--slate-a10: #e5edfd7b;--slate-a11: #f1f7feb5;--slate-a12: #fcfdffef;--sage-1: #101211;--sage-2: #171918;--sage-3: #202221;--sage-4: #272a29;--sage-5: #2e3130;--sage-6: #373b39;--sage-7: #444947;--sage-8: #5b625f;--sage-9: #63706b;--sage-10: #717d79;--sage-11: #adb5b2;--sage-12: #eceeed;--sage-a1: #00000000;--sage-a2: #f0f2f108;--sage-a3: #f3f5f412;--sage-a4: #f2fefd1a;--sage-a5: #f1fbfa22;--sage-a6: #edfbf42d;--sage-a7: #edfcf73c;--sage-a8: #ebfdf657;--sage-a9: #dffdf266;--sage-a10: #e5fdf674;--sage-a11: #f4fefbb0;--sage-a12: #fdfffeed;--olive-1: #111210;--olive-2: #181917;--olive-3: #212220;--olive-4: #282a27;--olive-5: #2f312e;--olive-6: #383a36;--olive-7: #454843;--olive-8: #5c625b;--olive-9: #687066;--olive-10: #767d74;--olive-11: #afb5ad;--olive-12: #eceeec;--olive-a1: #00000000;--olive-a2: #f1f2f008;--olive-a3: #f4f5f312;--olive-a4: #f3fef21a;--olive-a5: #f2fbf122;--olive-a6: #f4faed2c;--olive-a7: #f2fced3b;--olive-a8: #edfdeb57;--olive-a9: #ebfde766;--olive-a10: #f0fdec74;--olive-a11: #f6fef4b0;--olive-a12: #fdfffded;--sand-1: #111110;--sand-2: #191918;--sand-3: #222221;--sand-4: #2a2a28;--sand-5: #31312e;--sand-6: #3b3a37;--sand-7: #494844;--sand-8: #62605b;--sand-9: #6f6d66;--sand-10: #7c7b74;--sand-11: #b5b3ad;--sand-12: #eeeeec;--sand-a1: #00000000;--sand-a2: #f4f4f309;--sand-a3: #f6f6f513;--sand-a4: #fefef31b;--sand-a5: #fbfbeb23;--sand-a6: #fffaed2d;--sand-a7: #fffbed3c;--sand-a8: #fff9eb57;--sand-a9: #fffae965;--sand-a10: #fffdee73;--sand-a11: #fffcf4b0;--sand-a12: #fffffded;--amber-1: #16120c;--amber-2: #1d180f;--amber-3: #302008;--amber-4: #3f2700;--amber-5: #4d3000;--amber-6: #5c3d05;--amber-7: #714f19;--amber-8: #8f6424;--amber-9: #ffc53d;--amber-10: #ffd60a;--amber-11: #ffca16;--amber-12: #ffe7b3;--amber-a1: #e63c0006;--amber-a2: #fd9b000d;--amber-a3: #fa820022;--amber-a4: #fc820032;--amber-a5: #fd8b0041;--amber-a6: #fd9b0051;--amber-a7: #ffab2567;--amber-a8: #ffae3587;--amber-a9: #ffc53d;--amber-a10: #ffd60a;--amber-a11: #ffca16;--amber-a12: #ffe7b3;--blue-1: #0d1520;--blue-2: #111927;--blue-3: #0d2847;--blue-4: #003362;--blue-5: #004074;--blue-6: #104d87;--blue-7: #205d9e;--blue-8: #2870bd;--blue-9: #0090ff;--blue-10: #3b9eff;--blue-11: #70b8ff;--blue-12: #c2e6ff;--blue-a1: #004df211;--blue-a2: #1166fb18;--blue-a3: #0077ff3a;--blue-a4: #0075ff57;--blue-a5: #0081fd6b;--blue-a6: #0f89fd7f;--blue-a7: #2a91fe98;--blue-a8: #3094feb9;--blue-a9: #0090ff;--blue-a10: #3b9eff;--blue-a11: #70b8ff;--blue-a12: #c2e6ff;--bronze-1: #141110;--bronze-2: #1c1917;--bronze-3: #262220;--bronze-4: #302a27;--bronze-5: #3b3330;--bronze-6: #493e3a;--bronze-7: #5a4c47;--bronze-8: #6f5f58;--bronze-9: #a18072;--bronze-10: #ae8c7e;--bronze-11: #d4b3a5;--bronze-12: #ede0d9;--bronze-a1: #d1110004;--bronze-a2: #fbbc910c;--bronze-a3: #faceb817;--bronze-a4: #facdb622;--bronze-a5: #ffd2c12d;--bronze-a6: #ffd1c03c;--bronze-a7: #fdd0c04f;--bronze-a8: #ffd6c565;--bronze-a9: #fec7b09b;--bronze-a10: #fecab5a9;--bronze-a11: #ffd7c6d1;--bronze-a12: #fff1e9ec;--brown-1: #12110f;--brown-2: #1c1816;--brown-3: #28211d;--brown-4: #322922;--brown-5: #3e3128;--brown-6: #4d3c2f;--brown-7: #614a39;--brown-8: #7c5f46;--brown-9: #ad7f58;--brown-10: #b88c67;--brown-11: #dbb594;--brown-12: #f2e1ca;--brown-a1: #91110002;--brown-a2: #fba67c0c;--brown-a3: #fcb58c19;--brown-a4: #fbbb8a24;--brown-a5: #fcb88931;--brown-a6: #fdba8741;--brown-a7: #ffbb8856;--brown-a8: #ffbe8773;--brown-a9: #feb87da8;--brown-a10: #ffc18cb3;--brown-a11: #fed1aad9;--brown-a12: #feecd4f2;--crimson-1: #191114;--crimson-2: #201318;--crimson-3: #381525;--crimson-4: #4d122f;--crimson-5: #5c1839;--crimson-6: #6d2545;--crimson-7: #873356;--crimson-8: #b0436e;--crimson-9: #e93d82;--crimson-10: #ee518a;--crimson-11: #ff92ad;--crimson-12: #fdd3e8;--crimson-a1: #f4126709;--crimson-a2: #f22f7a11;--crimson-a3: #fe2a8b2a;--crimson-a4: #fd158741;--crimson-a5: #fd278f51;--crimson-a6: #fe459763;--crimson-a7: #fd559b7f;--crimson-a8: #fe5b9bab;--crimson-a9: #fe418de8;--crimson-a10: #ff5693ed;--crimson-a11: #ff92ad;--crimson-a12: #ffd5eafd;--cyan-1: #0b161a;--cyan-2: #101b20;--cyan-3: #082c36;--cyan-4: #003848;--cyan-5: #004558;--cyan-6: #045468;--cyan-7: #12677e;--cyan-8: #11809c;--cyan-9: #00a2c7;--cyan-10: #23afd0;--cyan-11: #4ccce6;--cyan-12: #b6ecf7;--cyan-a1: #0091f70a;--cyan-a2: #02a7f211;--cyan-a3: #00befd28;--cyan-a4: #00baff3b;--cyan-a5: #00befd4d;--cyan-a6: #00c7fd5e;--cyan-a7: #14cdff75;--cyan-a8: #11cfff95;--cyan-a9: #00cfffc3;--cyan-a10: #28d6ffcd;--cyan-a11: #52e1fee5;--cyan-a12: #bbf3fef7;--gold-1: #121211;--gold-2: #1b1a17;--gold-3: #24231f;--gold-4: #2d2b26;--gold-5: #38352e;--gold-6: #444039;--gold-7: #544f46;--gold-8: #696256;--gold-9: #978365;--gold-10: #a39073;--gold-11: #cbb99f;--gold-12: #e8e2d9;--gold-a1: #91911102;--gold-a2: #f9e29d0b;--gold-a3: #f8ecbb15;--gold-a4: #ffeec41e;--gold-a5: #feecc22a;--gold-a6: #feebcb37;--gold-a7: #ffedcd48;--gold-a8: #fdeaca5f;--gold-a9: #ffdba690;--gold-a10: #fedfb09d;--gold-a11: #fee7c6c8;--gold-a12: #fef7ede7;--grass-1: #0e1511;--grass-2: #141a15;--grass-3: #1b2a1e;--grass-4: #1d3a24;--grass-5: #25482d;--grass-6: #2d5736;--grass-7: #366740;--grass-8: #3e7949;--grass-9: #46a758;--grass-10: #53b365;--grass-11: #71d083;--grass-12: #c2f0c2;--grass-a1: #00de1205;--grass-a2: #5ef7780a;--grass-a3: #70fe8c1b;--grass-a4: #57ff802c;--grass-a5: #68ff8b3b;--grass-a6: #71ff8f4b;--grass-a7: #77fd925d;--grass-a8: #77fd9070;--grass-a9: #65ff82a1;--grass-a10: #72ff8dae;--grass-a11: #89ff9fcd;--grass-a12: #ceffceef;--green-1: #0e1512;--green-2: #121b17;--green-3: #132d21;--green-4: #113b29;--green-5: #174933;--green-6: #20573e;--green-7: #28684a;--green-8: #2f7c57;--green-9: #30a46c;--green-10: #33b074;--green-11: #3dd68c;--green-12: #b1f1cb;--green-a1: #00de4505;--green-a2: #29f99d0b;--green-a3: #22ff991e;--green-a4: #11ff992d;--green-a5: #2bffa23c;--green-a6: #44ffaa4b;--green-a7: #50fdac5e;--green-a8: #54ffad73;--green-a9: #44ffa49e;--green-a10: #43fea4ab;--green-a11: #46fea5d4;--green-a12: #bbffd7f0;--indigo-1: #11131f;--indigo-2: #141726;--indigo-3: #182449;--indigo-4: #1d2e62;--indigo-5: #253974;--indigo-6: #304384;--indigo-7: #3a4f97;--indigo-8: #435db1;--indigo-9: #3e63dd;--indigo-10: #5472e4;--indigo-11: #9eb1ff;--indigo-12: #d6e1ff;--indigo-a1: #1133ff0f;--indigo-a2: #3354fa17;--indigo-a3: #2f62ff3c;--indigo-a4: #3566ff57;--indigo-a5: #4171fd6b;--indigo-a6: #5178fd7c;--indigo-a7: #5a7fff90;--indigo-a8: #5b81feac;--indigo-a9: #4671ffdb;--indigo-a10: #5c7efee3;--indigo-a11: #9eb1ff;--indigo-a12: #d6e1ff;--iris-1: #13131e;--iris-2: #171625;--iris-3: #202248;--iris-4: #262a65;--iris-5: #303374;--iris-6: #3d3e82;--iris-7: #4a4a95;--iris-8: #5958b1;--iris-9: #5b5bd6;--iris-10: #6e6ade;--iris-11: #b1a9ff;--iris-12: #e0dffe;--iris-a1: #3636fe0e;--iris-a2: #564bf916;--iris-a3: #525bff3b;--iris-a4: #4d58ff5a;--iris-a5: #5b62fd6b;--iris-a6: #6d6ffd7a;--iris-a7: #7777fe8e;--iris-a8: #7b7afeac;--iris-a9: #6a6afed4;--iris-a10: #7d79ffdc;--iris-a11: #b1a9ff;--iris-a12: #e1e0fffe;--jade-1: #0d1512;--jade-2: #121c18;--jade-3: #0f2e22;--jade-4: #0b3b2c;--jade-5: #114837;--jade-6: #1b5745;--jade-7: #246854;--jade-8: #2a7e68;--jade-9: #29a383;--jade-10: #27b08b;--jade-11: #1fd8a4;--jade-12: #adf0d4;--jade-a1: #00de4505;--jade-a2: #27fba60c;--jade-a3: #02f99920;--jade-a4: #00ffaa2d;--jade-a5: #11ffb63b;--jade-a6: #34ffc24b;--jade-a7: #45fdc75e;--jade-a8: #48ffcf75;--jade-a9: #38feca9d;--jade-a10: #31fec7ab;--jade-a11: #21fec0d6;--jade-a12: #b8ffe1ef;--lime-1: #11130c;--lime-2: #151a10;--lime-3: #1f2917;--lime-4: #29371d;--lime-5: #334423;--lime-6: #3d522a;--lime-7: #496231;--lime-8: #577538;--lime-9: #bdee63;--lime-10: #d4ff70;--lime-11: #bde56c;--lime-12: #e3f7ba;--lime-a1: #11bb0003;--lime-a2: #78f7000a;--lime-a3: #9bfd4c1a;--lime-a4: #a7fe5c29;--lime-a5: #affe6537;--lime-a6: #b2fe6d46;--lime-a7: #b6ff6f57;--lime-a8: #b6fd6d6c;--lime-a9: #caff69ed;--lime-a10: #d4ff70;--lime-a11: #d1fe77e4;--lime-a12: #e9febff7;--mint-1: #0e1515;--mint-2: #0f1b1b;--mint-3: #092c2b;--mint-4: #003a38;--mint-5: #004744;--mint-6: #105650;--mint-7: #1e685f;--mint-8: #277f70;--mint-9: #86ead4;--mint-10: #a8f5e5;--mint-11: #58d5ba;--mint-12: #c4f5e1;--mint-a1: #00dede05;--mint-a2: #00f9f90b;--mint-a3: #00fff61d;--mint-a4: #00fff42c;--mint-a5: #00fff23a;--mint-a6: #0effeb4a;--mint-a7: #34fde55e;--mint-a8: #41ffdf76;--mint-a9: #92ffe7e9;--mint-a10: #aefeedf5;--mint-a11: #67ffded2;--mint-a12: #cbfee9f5;--orange-1: #17120e;--orange-2: #1e160f;--orange-3: #331e0b;--orange-4: #462100;--orange-5: #562800;--orange-6: #66350c;--orange-7: #7e451d;--orange-8: #a35829;--orange-9: #f76b15;--orange-10: #ff801f;--orange-11: #ffa057;--orange-12: #ffe0c2;--orange-a1: #ec360007;--orange-a2: #fe6d000e;--orange-a3: #fb6a0025;--orange-a4: #ff590039;--orange-a5: #ff61004a;--orange-a6: #fd75045c;--orange-a7: #ff832c75;--orange-a8: #fe84389d;--orange-a9: #fe6d15f7;--orange-a10: #ff801f;--orange-a11: #ffa057;--orange-a12: #ffe0c2;--pink-1: #191117;--pink-2: #21121d;--pink-3: #37172f;--pink-4: #4b143d;--pink-5: #591c47;--pink-6: #692955;--pink-7: #833869;--pink-8: #a84885;--pink-9: #d6409f;--pink-10: #de51a8;--pink-11: #ff8dcc;--pink-12: #fdd1ea;--pink-a1: #f412bc09;--pink-a2: #f420bb12;--pink-a3: #fe37cc29;--pink-a4: #fc1ec43f;--pink-a5: #fd35c24e;--pink-a6: #fd51c75f;--pink-a7: #fd62c87b;--pink-a8: #ff68c8a2;--pink-a9: #fe49bcd4;--pink-a10: #ff5cc0dc;--pink-a11: #ff8dcc;--pink-a12: #ffd3ecfd;--plum-1: #181118;--plum-2: #201320;--plum-3: #351a35;--plum-4: #451d47;--plum-5: #512454;--plum-6: #5e3061;--plum-7: #734079;--plum-8: #92549c;--plum-9: #ab4aba;--plum-10: #b658c4;--plum-11: #e796f3;--plum-12: #f4d4f4;--plum-a1: #f112f108;--plum-a2: #f22ff211;--plum-a3: #fd4cfd27;--plum-a4: #f646ff3a;--plum-a5: #f455ff48;--plum-a6: #f66dff56;--plum-a7: #f07cfd70;--plum-a8: #ee84ff95;--plum-a9: #e961feb6;--plum-a10: #ed70ffc0;--plum-a11: #f19cfef3;--plum-a12: #feddfef4;--purple-1: #18111b;--purple-2: #1e1523;--purple-3: #301c3b;--purple-4: #3d224e;--purple-5: #48295c;--purple-6: #54346b;--purple-7: #664282;--purple-8: #8457aa;--purple-9: #8e4ec6;--purple-10: #9a5cd0;--purple-11: #d19dff;--purple-12: #ecd9fa;--purple-a1: #b412f90b;--purple-a2: #b744f714;--purple-a3: #c150ff2d;--purple-a4: #bb53fd42;--purple-a5: #be5cfd51;--purple-a6: #c16dfd61;--purple-a7: #c378fd7a;--purple-a8: #c47effa4;--purple-a9: #b661ffc2;--purple-a10: #bc6fffcd;--purple-a11: #d19dff;--purple-a12: #f1ddfffa;--red-1: #191111;--red-2: #201314;--red-3: #3b1219;--red-4: #500f1c;--red-5: #611623;--red-6: #72232d;--red-7: #8c333a;--red-8: #b54548;--red-9: #e5484d;--red-10: #ec5d5e;--red-11: #ff9592;--red-12: #ffd1d9;--red-a1: #f4121209;--red-a2: #f22f3e11;--red-a3: #ff173f2d;--red-a4: #fe0a3b44;--red-a5: #ff204756;--red-a6: #ff3e5668;--red-a7: #ff536184;--red-a8: #ff5d61b0;--red-a9: #fe4e54e4;--red-a10: #ff6465eb;--red-a11: #ff9592;--red-a12: #ffd1d9;--ruby-1: #191113;--ruby-2: #1e1517;--ruby-3: #3a141e;--ruby-4: #4e1325;--ruby-5: #5e1a2e;--ruby-6: #6f2539;--ruby-7: #883447;--ruby-8: #b3445a;--ruby-9: #e54666;--ruby-10: #ec5a72;--ruby-11: #ff949d;--ruby-12: #fed2e1;--ruby-a1: #f4124a09;--ruby-a2: #fe5a7f0e;--ruby-a3: #ff235d2c;--ruby-a4: #fd195e42;--ruby-a5: #fe2d6b53;--ruby-a6: #ff447665;--ruby-a7: #ff577d80;--ruby-a8: #ff5c7cae;--ruby-a9: #fe4c70e4;--ruby-a10: #ff617beb;--ruby-a11: #ff949d;--ruby-a12: #ffd3e2fe;--sky-1: #0d141f;--sky-2: #111a27;--sky-3: #112840;--sky-4: #113555;--sky-5: #154467;--sky-6: #1b537b;--sky-7: #1f6692;--sky-8: #197cae;--sky-9: #7ce2fe;--sky-10: #a8eeff;--sky-11: #75c7f0;--sky-12: #c2f3ff;--sky-a1: #0044ff0f;--sky-a2: #1171fb18;--sky-a3: #1184fc33;--sky-a4: #128fff49;--sky-a5: #1c9dfd5d;--sky-a6: #28a5ff72;--sky-a7: #2badfe8b;--sky-a8: #1db2fea9;--sky-a9: #7ce3fffe;--sky-a10: #a8eeff;--sky-a11: #7cd3ffef;--sky-a12: #c2f3ff;--teal-1: #0d1514;--teal-2: #111c1b;--teal-3: #0d2d2a;--teal-4: #023b37;--teal-5: #084843;--teal-6: #145750;--teal-7: #1c6961;--teal-8: #207e73;--teal-9: #12a594;--teal-10: #0eb39e;--teal-11: #0bd8b6;--teal-12: #adf0dd;--teal-a1: #00deab05;--teal-a2: #12fbe60c;--teal-a3: #00ffe61e;--teal-a4: #00ffe92d;--teal-a5: #00ffea3b;--teal-a6: #1cffe84b;--teal-a7: #2efde85f;--teal-a8: #32ffe775;--teal-a9: #13ffe49f;--teal-a10: #0dffe0ae;--teal-a11: #0afed5d6;--teal-a12: #b8ffebef;--tomato-1: #181111;--tomato-2: #1f1513;--tomato-3: #391714;--tomato-4: #4e1511;--tomato-5: #5e1c16;--tomato-6: #6e2920;--tomato-7: #853a2d;--tomato-8: #ac4d39;--tomato-9: #e54d2e;--tomato-10: #ec6142;--tomato-11: #ff977d;--tomato-12: #fbd3cb;--tomato-a1: #f1121208;--tomato-a2: #ff55330f;--tomato-a3: #ff35232b;--tomato-a4: #fd201142;--tomato-a5: #fe332153;--tomato-a6: #ff4f3864;--tomato-a7: #fd644a7d;--tomato-a8: #fe6d4ea7;--tomato-a9: #fe5431e4;--tomato-a10: #ff6847eb;--tomato-a11: #ff977d;--tomato-a12: #ffd6cefb;--violet-1: #14121f;--violet-2: #1b1525;--violet-3: #291f43;--violet-4: #33255b;--violet-5: #3c2e69;--violet-6: #473876;--violet-7: #56468b;--violet-8: #6958ad;--violet-9: #6e56cf;--violet-10: #7d66d9;--violet-11: #baa7ff;--violet-12: #e2ddfe;--violet-a1: #4422ff0f;--violet-a2: #853ff916;--violet-a3: #8354fe36;--violet-a4: #7d51fd50;--violet-a5: #845ffd5f;--violet-a6: #8f6cfd6d;--violet-a7: #9879ff83;--violet-a8: #977dfea8;--violet-a9: #8668ffcc;--violet-a10: #9176fed7;--violet-a11: #baa7ff;--violet-a12: #e3defffe;--yellow-1: #14120b;--yellow-2: #1b180f;--yellow-3: #2d2305;--yellow-4: #362b00;--yellow-5: #433500;--yellow-6: #524202;--yellow-7: #665417;--yellow-8: #836a21;--yellow-9: #ffe629;--yellow-10: #ffff57;--yellow-11: #f5e147;--yellow-12: #f6eeb4;--yellow-a1: #d1510004;--yellow-a2: #f9b4000b;--yellow-a3: #ffaa001e;--yellow-a4: #fdb70028;--yellow-a5: #febb0036;--yellow-a6: #fec40046;--yellow-a7: #fdcb225c;--yellow-a8: #fdca327b;--yellow-a9: #ffe629;--yellow-a10: #ffff57;--yellow-a11: #fee949f5;--yellow-a12: #fef6baf6;--gray-surface: #21212180;--gray-indicator: var(--gray-9);--gray-track: var(--gray-9);--mauve-surface: #22212380;--mauve-indicator: var(--mauve-9);--mauve-track: var(--mauve-9);--slate-surface: #1f212380;--slate-indicator: var(--slate-9);--slate-track: var(--slate-9);--sage-surface: #1e201f80;--sage-indicator: var(--sage-9);--sage-track: var(--sage-9);--olive-surface: #1f201e80;--olive-indicator: var(--olive-9);--olive-track: var(--olive-9);--sand-surface: #21212080;--sand-indicator: var(--sand-9);--sand-track: var(--sand-9);--amber-surface: #271f1380;--amber-indicator: var(--amber-9);--amber-track: var(--amber-9);--blue-surface: #11213d80;--blue-indicator: var(--blue-9);--blue-track: var(--blue-9);--bronze-surface: #27211d80;--bronze-indicator: var(--bronze-9);--bronze-track: var(--bronze-9);--brown-surface: #271f1b80;--brown-indicator: var(--brown-9);--brown-track: var(--brown-9);--crimson-surface: #2f151f80;--crimson-indicator: var(--crimson-9);--crimson-track: var(--crimson-9);--cyan-surface: #11252d80;--cyan-indicator: var(--cyan-9);--cyan-track: var(--cyan-9);--gold-surface: #25231d80;--gold-indicator: var(--gold-9);--gold-track: var(--gold-9);--grass-surface: #19231b80;--grass-indicator: var(--grass-9);--grass-track: var(--grass-9);--green-surface: #15251d80;--green-indicator: var(--green-9);--green-track: var(--green-9);--indigo-surface: #171d3b80;--indigo-indicator: var(--indigo-9);--indigo-track: var(--indigo-9);--iris-surface: #1d1b3980;--iris-indicator: var(--iris-9);--iris-track: var(--iris-9);--jade-surface: #13271f80;--jade-indicator: var(--jade-9);--jade-track: var(--jade-9);--lime-surface: #1b211580;--lime-indicator: var(--lime-9);--lime-track: var(--lime-9);--mint-surface: #15272780;--mint-indicator: var(--mint-9);--mint-track: var(--mint-9);--orange-surface: #271d1380;--orange-indicator: var(--orange-9);--orange-track: var(--orange-9);--pink-surface: #31132980;--pink-indicator: var(--pink-9);--pink-track: var(--pink-9);--plum-surface: #2f152f80;--plum-indicator: var(--plum-9);--plum-track: var(--plum-9);--purple-surface: #2b173580;--purple-indicator: var(--purple-9);--purple-track: var(--purple-9);--red-surface: #2f151780;--red-indicator: var(--red-9);--red-track: var(--red-9);--ruby-surface: #2b191d80;--ruby-indicator: var(--ruby-9);--ruby-track: var(--ruby-9);--sky-surface: #13233b80;--sky-indicator: var(--sky-9);--sky-track: var(--sky-9);--teal-surface: #13272580;--teal-indicator: var(--teal-9);--teal-track: var(--teal-9);--tomato-surface: #2d191580;--tomato-indicator: var(--tomato-9);--tomato-track: var(--tomato-9);--violet-surface: #25193980;--violet-indicator: var(--violet-9);--violet-track: var(--violet-9);--yellow-surface: #231f1380;--yellow-indicator: var(--yellow-9);--yellow-track: var(--yellow-9)}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){.dark,.dark-theme{--gray-1: color(display-p3 .067 .067 .067);--gray-2: color(display-p3 .098 .098 .098);--gray-3: color(display-p3 .135 .135 .135);--gray-4: color(display-p3 .163 .163 .163);--gray-5: color(display-p3 .192 .192 .192);--gray-6: color(display-p3 .228 .228 .228);--gray-7: color(display-p3 .283 .283 .283);--gray-8: color(display-p3 .375 .375 .375);--gray-9: color(display-p3 .431 .431 .431);--gray-10: color(display-p3 .484 .484 .484);--gray-11: color(display-p3 .706 .706 .706);--gray-12: color(display-p3 .933 .933 .933);--gray-a1: color(display-p3 0 0 0 / 0);--gray-a2: color(display-p3 1 1 1 / .034);--gray-a3: color(display-p3 1 1 1 / .071);--gray-a4: color(display-p3 1 1 1 / .105);--gray-a5: color(display-p3 1 1 1 / .134);--gray-a6: color(display-p3 1 1 1 / .172);--gray-a7: color(display-p3 1 1 1 / .231);--gray-a8: color(display-p3 1 1 1 / .332);--gray-a9: color(display-p3 1 1 1 / .391);--gray-a10: color(display-p3 1 1 1 / .445);--gray-a11: color(display-p3 1 1 1 / .685);--gray-a12: color(display-p3 1 1 1 / .929);--mauve-1: color(display-p3 .07 .067 .074);--mauve-2: color(display-p3 .101 .098 .105);--mauve-3: color(display-p3 .138 .134 .144);--mauve-4: color(display-p3 .167 .161 .175);--mauve-5: color(display-p3 .196 .189 .206);--mauve-6: color(display-p3 .232 .225 .245);--mauve-7: color(display-p3 .286 .277 .302);--mauve-8: color(display-p3 .383 .373 .408);--mauve-9: color(display-p3 .434 .428 .467);--mauve-10: color(display-p3 .487 .48 .519);--mauve-11: color(display-p3 .707 .7 .735);--mauve-12: color(display-p3 .933 .933 .94);--mauve-a1: color(display-p3 0 0 0 / 0);--mauve-a2: color(display-p3 .996 .992 1 / .034);--mauve-a3: color(display-p3 .937 .933 .992 / .077);--mauve-a4: color(display-p3 .957 .918 .996 / .111);--mauve-a5: color(display-p3 .937 .906 .996 / .145);--mauve-a6: color(display-p3 .953 .925 .996 / .183);--mauve-a7: color(display-p3 .945 .929 1 / .246);--mauve-a8: color(display-p3 .937 .918 1 / .361);--mauve-a9: color(display-p3 .933 .918 1 / .424);--mauve-a10: color(display-p3 .941 .925 1 / .479);--mauve-a11: color(display-p3 .965 .961 1 / .712);--mauve-a12: color(display-p3 .992 .992 1 / .937);--slate-1: color(display-p3 .067 .067 .074);--slate-2: color(display-p3 .095 .098 .105);--slate-3: color(display-p3 .13 .135 .145);--slate-4: color(display-p3 .156 .163 .176);--slate-5: color(display-p3 .183 .191 .206);--slate-6: color(display-p3 .215 .226 .244);--slate-7: color(display-p3 .265 .28 .302);--slate-8: color(display-p3 .357 .381 .409);--slate-9: color(display-p3 .415 .431 .463);--slate-10: color(display-p3 .469 .483 .514);--slate-11: color(display-p3 .692 .704 .728);--slate-12: color(display-p3 .93 .933 .94);--slate-a1: color(display-p3 0 0 0 / 0);--slate-a2: color(display-p3 .875 .992 1 / .034);--slate-a3: color(display-p3 .882 .933 .992 / .077);--slate-a4: color(display-p3 .882 .953 .996 / .111);--slate-a5: color(display-p3 .878 .929 .996 / .145);--slate-a6: color(display-p3 .882 .949 .996 / .183);--slate-a7: color(display-p3 .882 .929 1 / .246);--slate-a8: color(display-p3 .871 .937 1 / .361);--slate-a9: color(display-p3 .898 .937 1 / .42);--slate-a10: color(display-p3 .918 .945 1 / .475);--slate-a11: color(display-p3 .949 .969 .996 / .708);--slate-a12: color(display-p3 .988 .992 1 / .937);--sage-1: color(display-p3 .064 .07 .067);--sage-2: color(display-p3 .092 .098 .094);--sage-3: color(display-p3 .128 .135 .131);--sage-4: color(display-p3 .155 .164 .159);--sage-5: color(display-p3 .183 .193 .188);--sage-6: color(display-p3 .218 .23 .224);--sage-7: color(display-p3 .269 .285 .277);--sage-8: color(display-p3 .362 .382 .373);--sage-9: color(display-p3 .398 .438 .421);--sage-10: color(display-p3 .453 .49 .474);--sage-11: color(display-p3 .685 .709 .697);--sage-12: color(display-p3 .927 .933 .93);--sage-a1: color(display-p3 0 0 0 / 0);--sage-a2: color(display-p3 .976 .988 .984 / .03);--sage-a3: color(display-p3 .992 .945 .941 / .072);--sage-a4: color(display-p3 .988 .996 .992 / .102);--sage-a5: color(display-p3 .992 1 .996 / .131);--sage-a6: color(display-p3 .973 1 .976 / .173);--sage-a7: color(display-p3 .957 1 .976 / .233);--sage-a8: color(display-p3 .957 1 .984 / .334);--sage-a9: color(display-p3 .902 1 .957 / .397);--sage-a10: color(display-p3 .929 1 .973 / .452);--sage-a11: color(display-p3 .969 1 .988 / .688);--sage-a12: color(display-p3 .992 1 .996 / .929);--olive-1: color(display-p3 .067 .07 .063);--olive-2: color(display-p3 .095 .098 .091);--olive-3: color(display-p3 .131 .135 .126);--olive-4: color(display-p3 .158 .163 .153);--olive-5: color(display-p3 .186 .192 .18);--olive-6: color(display-p3 .221 .229 .215);--olive-7: color(display-p3 .273 .284 .266);--olive-8: color(display-p3 .365 .382 .359);--olive-9: color(display-p3 .414 .438 .404);--olive-10: color(display-p3 .467 .49 .458);--olive-11: color(display-p3 .69 .709 .682);--olive-12: color(display-p3 .927 .933 .926);--olive-a1: color(display-p3 0 0 0 / 0);--olive-a2: color(display-p3 .984 .988 .976 / .03);--olive-a3: color(display-p3 .992 .996 .988 / .068);--olive-a4: color(display-p3 .953 .996 .949 / .102);--olive-a5: color(display-p3 .969 1 .965 / .131);--olive-a6: color(display-p3 .973 1 .969 / .169);--olive-a7: color(display-p3 .98 1 .961 / .228);--olive-a8: color(display-p3 .961 1 .957 / .334);--olive-a9: color(display-p3 .949 1 .922 / .397);--olive-a10: color(display-p3 .953 1 .941 / .452);--olive-a11: color(display-p3 .976 1 .965 / .688);--olive-a12: color(display-p3 .992 1 .992 / .929);--sand-1: color(display-p3 .067 .067 .063);--sand-2: color(display-p3 .098 .098 .094);--sand-3: color(display-p3 .135 .135 .129);--sand-4: color(display-p3 .164 .163 .156);--sand-5: color(display-p3 .193 .192 .183);--sand-6: color(display-p3 .23 .229 .217);--sand-7: color(display-p3 .285 .282 .267);--sand-8: color(display-p3 .384 .378 .357);--sand-9: color(display-p3 .434 .428 .403);--sand-10: color(display-p3 .487 .481 .456);--sand-11: color(display-p3 .707 .703 .68);--sand-12: color(display-p3 .933 .933 .926);--sand-a1: color(display-p3 0 0 0 / 0);--sand-a2: color(display-p3 .992 .992 .988 / .034);--sand-a3: color(display-p3 .996 .996 .992 / .072);--sand-a4: color(display-p3 .992 .992 .953 / .106);--sand-a5: color(display-p3 1 1 .965 / .135);--sand-a6: color(display-p3 1 .976 .929 / .177);--sand-a7: color(display-p3 1 .984 .929 / .236);--sand-a8: color(display-p3 1 .976 .925 / .341);--sand-a9: color(display-p3 1 .98 .925 / .395);--sand-a10: color(display-p3 1 .992 .933 / .45);--sand-a11: color(display-p3 1 .996 .961 / .685);--sand-a12: color(display-p3 1 1 .992 / .929);--amber-1: color(display-p3 .082 .07 .05);--amber-2: color(display-p3 .111 .094 .064);--amber-3: color(display-p3 .178 .128 .049);--amber-4: color(display-p3 .239 .156 0);--amber-5: color(display-p3 .29 .193 0);--amber-6: color(display-p3 .344 .245 .076);--amber-7: color(display-p3 .422 .314 .141);--amber-8: color(display-p3 .535 .399 .189);--amber-9: color(display-p3 1 .77 .26);--amber-10: color(display-p3 1 .87 .15);--amber-11: color(display-p3 1 .8 .29);--amber-12: color(display-p3 .984 .909 .726);--amber-a1: color(display-p3 .992 .298 0 / .017);--amber-a2: color(display-p3 .988 .651 0 / .047);--amber-a3: color(display-p3 1 .6 0 / .118);--amber-a4: color(display-p3 1 .557 0 / .185);--amber-a5: color(display-p3 1 .592 0 / .24);--amber-a6: color(display-p3 1 .659 .094 / .299);--amber-a7: color(display-p3 1 .714 .263 / .383);--amber-a8: color(display-p3 .996 .729 .306 / .5);--amber-a9: color(display-p3 1 .769 .259);--amber-a10: color(display-p3 1 .871 .149);--amber-a11: color(display-p3 1 .8 .29);--amber-a12: color(display-p3 .984 .909 .726);--blue-1: color(display-p3 .057 .081 .122);--blue-2: color(display-p3 .072 .098 .147);--blue-3: color(display-p3 .078 .154 .27);--blue-4: color(display-p3 .033 .197 .37);--blue-5: color(display-p3 .08 .245 .441);--blue-6: color(display-p3 .14 .298 .511);--blue-7: color(display-p3 .195 .361 .6);--blue-8: color(display-p3 .239 .434 .72);--blue-9: color(display-p3 .247 .556 .969);--blue-10: color(display-p3 .344 .612 .973);--blue-11: color(display-p3 .49 .72 1);--blue-12: color(display-p3 .788 .898 .99);--blue-a1: color(display-p3 0 .333 1 / .059);--blue-a2: color(display-p3 .114 .435 .988 / .085);--blue-a3: color(display-p3 .122 .463 1 / .219);--blue-a4: color(display-p3 0 .467 1 / .324);--blue-a5: color(display-p3 .098 .51 1 / .4);--blue-a6: color(display-p3 .224 .557 1 / .475);--blue-a7: color(display-p3 .294 .584 1 / .572);--blue-a8: color(display-p3 .314 .592 1 / .702);--blue-a9: color(display-p3 .251 .573 .996 / .967);--blue-a10: color(display-p3 .357 .631 1 / .971);--blue-a11: color(display-p3 .49 .72 1);--blue-a12: color(display-p3 .788 .898 .99);--bronze-1: color(display-p3 .076 .067 .063);--bronze-2: color(display-p3 .106 .097 .093);--bronze-3: color(display-p3 .147 .132 .125);--bronze-4: color(display-p3 .185 .166 .156);--bronze-5: color(display-p3 .227 .202 .19);--bronze-6: color(display-p3 .278 .246 .23);--bronze-7: color(display-p3 .343 .302 .281);--bronze-8: color(display-p3 .426 .374 .347);--bronze-9: color(display-p3 .611 .507 .455);--bronze-10: color(display-p3 .66 .556 .504);--bronze-11: color(display-p3 .81 .707 .655);--bronze-12: color(display-p3 .921 .88 .854);--bronze-a1: color(display-p3 .941 .067 0 / .009);--bronze-a2: color(display-p3 .98 .8 .706 / .043);--bronze-a3: color(display-p3 .988 .851 .761 / .085);--bronze-a4: color(display-p3 .996 .839 .78 / .127);--bronze-a5: color(display-p3 .996 .863 .773 / .173);--bronze-a6: color(display-p3 1 .863 .796 / .227);--bronze-a7: color(display-p3 1 .867 .8 / .295);--bronze-a8: color(display-p3 1 .859 .788 / .387);--bronze-a9: color(display-p3 1 .82 .733 / .585);--bronze-a10: color(display-p3 1 .839 .761 / .635);--bronze-a11: color(display-p3 .81 .707 .655);--bronze-a12: color(display-p3 .921 .88 .854);--brown-1: color(display-p3 .071 .067 .059);--brown-2: color(display-p3 .107 .095 .087);--brown-3: color(display-p3 .151 .13 .115);--brown-4: color(display-p3 .191 .161 .138);--brown-5: color(display-p3 .235 .194 .162);--brown-6: color(display-p3 .291 .237 .192);--brown-7: color(display-p3 .365 .295 .232);--brown-8: color(display-p3 .469 .377 .287);--brown-9: color(display-p3 .651 .505 .368);--brown-10: color(display-p3 .697 .557 .423);--brown-11: color(display-p3 .835 .715 .597);--brown-12: color(display-p3 .938 .885 .802);--brown-a1: color(display-p3 .855 .071 0 / .005);--brown-a2: color(display-p3 .98 .706 .525 / .043);--brown-a3: color(display-p3 .996 .745 .576 / .093);--brown-a4: color(display-p3 1 .765 .592 / .135);--brown-a5: color(display-p3 1 .761 .588 / .181);--brown-a6: color(display-p3 1 .773 .592 / .24);--brown-a7: color(display-p3 .996 .776 .58 / .32);--brown-a8: color(display-p3 1 .78 .573 / .433);--brown-a9: color(display-p3 1 .769 .549 / .627);--brown-a10: color(display-p3 1 .792 .596 / .677);--brown-a11: color(display-p3 .835 .715 .597);--brown-a12: color(display-p3 .938 .885 .802);--crimson-1: color(display-p3 .093 .068 .078);--crimson-2: color(display-p3 .117 .078 .095);--crimson-3: color(display-p3 .203 .091 .143);--crimson-4: color(display-p3 .277 .087 .182);--crimson-5: color(display-p3 .332 .115 .22);--crimson-6: color(display-p3 .394 .162 .268);--crimson-7: color(display-p3 .489 .222 .336);--crimson-8: color(display-p3 .638 .289 .429);--crimson-9: color(display-p3 .843 .298 .507);--crimson-10: color(display-p3 .864 .364 .539);--crimson-11: color(display-p3 1 .56 .66);--crimson-12: color(display-p3 .966 .834 .906);--crimson-a1: color(display-p3 .984 .071 .463 / .03);--crimson-a2: color(display-p3 .996 .282 .569 / .055);--crimson-a3: color(display-p3 .996 .227 .573 / .148);--crimson-a4: color(display-p3 1 .157 .569 / .227);--crimson-a5: color(display-p3 1 .231 .604 / .286);--crimson-a6: color(display-p3 1 .337 .643 / .349);--crimson-a7: color(display-p3 1 .416 .663 / .454);--crimson-a8: color(display-p3 .996 .427 .651 / .614);--crimson-a9: color(display-p3 1 .345 .596 / .832);--crimson-a10: color(display-p3 1 .42 .62 / .853);--crimson-a11: color(display-p3 1 .56 .66);--crimson-a12: color(display-p3 .966 .834 .906);--cyan-1: color(display-p3 .053 .085 .098);--cyan-2: color(display-p3 .072 .105 .122);--cyan-3: color(display-p3 .073 .168 .209);--cyan-4: color(display-p3 .063 .216 .277);--cyan-5: color(display-p3 .091 .267 .336);--cyan-6: color(display-p3 .137 .324 .4);--cyan-7: color(display-p3 .186 .398 .484);--cyan-8: color(display-p3 .23 .496 .6);--cyan-9: color(display-p3 .282 .627 .765);--cyan-10: color(display-p3 .331 .675 .801);--cyan-11: color(display-p3 .446 .79 .887);--cyan-12: color(display-p3 .757 .919 .962);--cyan-a1: color(display-p3 0 .647 .992 / .034);--cyan-a2: color(display-p3 .133 .733 1 / .059);--cyan-a3: color(display-p3 .122 .741 .996 / .152);--cyan-a4: color(display-p3 .051 .725 1 / .227);--cyan-a5: color(display-p3 .149 .757 1 / .29);--cyan-a6: color(display-p3 .267 .792 1 / .358);--cyan-a7: color(display-p3 .333 .808 1 / .446);--cyan-a8: color(display-p3 .357 .816 1 / .572);--cyan-a9: color(display-p3 .357 .82 1 / .748);--cyan-a10: color(display-p3 .4 .839 1 / .786);--cyan-a11: color(display-p3 .446 .79 .887);--cyan-a12: color(display-p3 .757 .919 .962);--gold-1: color(display-p3 .071 .071 .067);--gold-2: color(display-p3 .104 .101 .09);--gold-3: color(display-p3 .141 .136 .122);--gold-4: color(display-p3 .177 .17 .152);--gold-5: color(display-p3 .217 .207 .185);--gold-6: color(display-p3 .265 .252 .225);--gold-7: color(display-p3 .327 .31 .277);--gold-8: color(display-p3 .407 .384 .342);--gold-9: color(display-p3 .579 .517 .41);--gold-10: color(display-p3 .628 .566 .463);--gold-11: color(display-p3 .784 .728 .635);--gold-12: color(display-p3 .906 .887 .855);--gold-a1: color(display-p3 .855 .855 .071 / .005);--gold-a2: color(display-p3 .98 .89 .616 / .043);--gold-a3: color(display-p3 1 .949 .753 / .08);--gold-a4: color(display-p3 1 .933 .8 / .118);--gold-a5: color(display-p3 1 .949 .804 / .16);--gold-a6: color(display-p3 1 .925 .8 / .215);--gold-a7: color(display-p3 1 .945 .831 / .278);--gold-a8: color(display-p3 1 .937 .82 / .366);--gold-a9: color(display-p3 .996 .882 .69 / .551);--gold-a10: color(display-p3 1 .894 .725 / .601);--gold-a11: color(display-p3 .784 .728 .635);--gold-a12: color(display-p3 .906 .887 .855);--grass-1: color(display-p3 .062 .083 .067);--grass-2: color(display-p3 .083 .103 .085);--grass-3: color(display-p3 .118 .163 .122);--grass-4: color(display-p3 .142 .225 .15);--grass-5: color(display-p3 .178 .279 .186);--grass-6: color(display-p3 .217 .337 .224);--grass-7: color(display-p3 .258 .4 .264);--grass-8: color(display-p3 .302 .47 .305);--grass-9: color(display-p3 .38 .647 .378);--grass-10: color(display-p3 .426 .694 .426);--grass-11: color(display-p3 .535 .807 .542);--grass-12: color(display-p3 .797 .936 .776);--grass-a1: color(display-p3 0 .992 .071 / .017);--grass-a2: color(display-p3 .482 .996 .584 / .038);--grass-a3: color(display-p3 .549 .992 .588 / .106);--grass-a4: color(display-p3 .51 .996 .557 / .169);--grass-a5: color(display-p3 .553 1 .588 / .227);--grass-a6: color(display-p3 .584 1 .608 / .29);--grass-a7: color(display-p3 .604 1 .616 / .358);--grass-a8: color(display-p3 .608 1 .62 / .433);--grass-a9: color(display-p3 .573 1 .569 / .622);--grass-a10: color(display-p3 .6 .996 .6 / .673);--grass-a11: color(display-p3 .535 .807 .542);--grass-a12: color(display-p3 .797 .936 .776);--green-1: color(display-p3 .062 .083 .071);--green-2: color(display-p3 .079 .106 .09);--green-3: color(display-p3 .1 .173 .133);--green-4: color(display-p3 .115 .229 .166);--green-5: color(display-p3 .147 .282 .206);--green-6: color(display-p3 .185 .338 .25);--green-7: color(display-p3 .227 .403 .298);--green-8: color(display-p3 .27 .479 .351);--green-9: color(display-p3 .332 .634 .442);--green-10: color(display-p3 .357 .682 .474);--green-11: color(display-p3 .434 .828 .573);--green-12: color(display-p3 .747 .938 .807);--green-a1: color(display-p3 0 .992 .298 / .017);--green-a2: color(display-p3 .341 .98 .616 / .043);--green-a3: color(display-p3 .376 .996 .655 / .114);--green-a4: color(display-p3 .341 .996 .635 / .173);--green-a5: color(display-p3 .408 1 .678 / .232);--green-a6: color(display-p3 .475 1 .706 / .29);--green-a7: color(display-p3 .514 1 .706 / .362);--green-a8: color(display-p3 .529 1 .718 / .442);--green-a9: color(display-p3 .502 .996 .682 / .61);--green-a10: color(display-p3 .506 1 .682 / .66);--green-a11: color(display-p3 .434 .828 .573);--green-a12: color(display-p3 .747 .938 .807);--indigo-1: color(display-p3 .068 .074 .118);--indigo-2: color(display-p3 .081 .089 .144);--indigo-3: color(display-p3 .105 .141 .275);--indigo-4: color(display-p3 .129 .18 .369);--indigo-5: color(display-p3 .163 .22 .439);--indigo-6: color(display-p3 .203 .262 .5);--indigo-7: color(display-p3 .245 .309 .575);--indigo-8: color(display-p3 .285 .362 .674);--indigo-9: color(display-p3 .276 .384 .837);--indigo-10: color(display-p3 .354 .445 .866);--indigo-11: color(display-p3 .63 .69 1);--indigo-12: color(display-p3 .848 .881 .99);--indigo-a1: color(display-p3 .071 .212 .996 / .055);--indigo-a2: color(display-p3 .251 .345 .988 / .085);--indigo-a3: color(display-p3 .243 .404 1 / .223);--indigo-a4: color(display-p3 .263 .42 1 / .324);--indigo-a5: color(display-p3 .314 .451 1 / .4);--indigo-a6: color(display-p3 .361 .49 1 / .467);--indigo-a7: color(display-p3 .388 .51 1 / .547);--indigo-a8: color(display-p3 .404 .518 1 / .652);--indigo-a9: color(display-p3 .318 .451 1 / .824);--indigo-a10: color(display-p3 .404 .506 1 / .858);--indigo-a11: color(display-p3 .63 .69 1);--indigo-a12: color(display-p3 .848 .881 .99);--iris-1: color(display-p3 .075 .075 .114);--iris-2: color(display-p3 .089 .086 .14);--iris-3: color(display-p3 .128 .134 .272);--iris-4: color(display-p3 .153 .165 .382);--iris-5: color(display-p3 .192 .201 .44);--iris-6: color(display-p3 .239 .241 .491);--iris-7: color(display-p3 .291 .289 .565);--iris-8: color(display-p3 .35 .345 .673);--iris-9: color(display-p3 .357 .357 .81);--iris-10: color(display-p3 .428 .416 .843);--iris-11: color(display-p3 .685 .662 1);--iris-12: color(display-p3 .878 .875 .986);--iris-a1: color(display-p3 .224 .224 .992 / .051);--iris-a2: color(display-p3 .361 .314 1 / .08);--iris-a3: color(display-p3 .357 .373 1 / .219);--iris-a4: color(display-p3 .325 .361 1 / .337);--iris-a5: color(display-p3 .38 .4 1 / .4);--iris-a6: color(display-p3 .447 .447 1 / .454);--iris-a7: color(display-p3 .486 .486 1 / .534);--iris-a8: color(display-p3 .502 .494 1 / .652);--iris-a9: color(display-p3 .431 .431 1 / .799);--iris-a10: color(display-p3 .502 .486 1 / .832);--iris-a11: color(display-p3 .685 .662 1);--iris-a12: color(display-p3 .878 .875 .986);--jade-1: color(display-p3 .059 .083 .071);--jade-2: color(display-p3 .078 .11 .094);--jade-3: color(display-p3 .091 .176 .138);--jade-4: color(display-p3 .102 .228 .177);--jade-5: color(display-p3 .133 .279 .221);--jade-6: color(display-p3 .174 .334 .273);--jade-7: color(display-p3 .219 .402 .335);--jade-8: color(display-p3 .263 .488 .411);--jade-9: color(display-p3 .319 .63 .521);--jade-10: color(display-p3 .338 .68 .555);--jade-11: color(display-p3 .4 .835 .656);--jade-12: color(display-p3 .734 .934 .838);--jade-a1: color(display-p3 0 .992 .298 / .017);--jade-a2: color(display-p3 .318 .988 .651 / .047);--jade-a3: color(display-p3 .267 1 .667 / .118);--jade-a4: color(display-p3 .275 .996 .702 / .173);--jade-a5: color(display-p3 .361 1 .741 / .227);--jade-a6: color(display-p3 .439 1 .796 / .286);--jade-a7: color(display-p3 .49 1 .804 / .362);--jade-a8: color(display-p3 .506 1 .835 / .45);--jade-a9: color(display-p3 .478 .996 .816 / .606);--jade-a10: color(display-p3 .478 1 .816 / .656);--jade-a11: color(display-p3 .4 .835 .656);--jade-a12: color(display-p3 .734 .934 .838);--lime-1: color(display-p3 .067 .073 .048);--lime-2: color(display-p3 .086 .1 .067);--lime-3: color(display-p3 .13 .16 .099);--lime-4: color(display-p3 .172 .214 .126);--lime-5: color(display-p3 .213 .266 .153);--lime-6: color(display-p3 .257 .321 .182);--lime-7: color(display-p3 .307 .383 .215);--lime-8: color(display-p3 .365 .456 .25);--lime-9: color(display-p3 .78 .928 .466);--lime-10: color(display-p3 .865 .995 .519);--lime-11: color(display-p3 .771 .893 .485);--lime-12: color(display-p3 .905 .966 .753);--lime-a1: color(display-p3 .067 .941 0 / .009);--lime-a2: color(display-p3 .584 .996 .071 / .038);--lime-a3: color(display-p3 .69 1 .38 / .101);--lime-a4: color(display-p3 .729 1 .435 / .16);--lime-a5: color(display-p3 .745 1 .471 / .215);--lime-a6: color(display-p3 .769 1 .482 / .274);--lime-a7: color(display-p3 .769 1 .506 / .341);--lime-a8: color(display-p3 .784 1 .51 / .416);--lime-a9: color(display-p3 .839 1 .502 / .925);--lime-a10: color(display-p3 .871 1 .522 / .996);--lime-a11: color(display-p3 .771 .893 .485);--lime-a12: color(display-p3 .905 .966 .753);--mint-1: color(display-p3 .059 .082 .081);--mint-2: color(display-p3 .068 .104 .105);--mint-3: color(display-p3 .077 .17 .168);--mint-4: color(display-p3 .068 .224 .22);--mint-5: color(display-p3 .104 .275 .264);--mint-6: color(display-p3 .154 .332 .313);--mint-7: color(display-p3 .207 .403 .373);--mint-8: color(display-p3 .258 .49 .441);--mint-9: color(display-p3 .62 .908 .834);--mint-10: color(display-p3 .725 .954 .898);--mint-11: color(display-p3 .482 .825 .733);--mint-12: color(display-p3 .807 .955 .887);--mint-a1: color(display-p3 0 .992 .992 / .017);--mint-a2: color(display-p3 .071 .98 .98 / .043);--mint-a3: color(display-p3 .176 .996 .996 / .11);--mint-a4: color(display-p3 .071 .996 .973 / .169);--mint-a5: color(display-p3 .243 1 .949 / .223);--mint-a6: color(display-p3 .369 1 .933 / .286);--mint-a7: color(display-p3 .459 1 .914 / .362);--mint-a8: color(display-p3 .49 1 .89 / .454);--mint-a9: color(display-p3 .678 .996 .914 / .904);--mint-a10: color(display-p3 .761 1 .941 / .95);--mint-a11: color(display-p3 .482 .825 .733);--mint-a12: color(display-p3 .807 .955 .887);--orange-1: color(display-p3 .088 .07 .057);--orange-2: color(display-p3 .113 .089 .061);--orange-3: color(display-p3 .189 .12 .056);--orange-4: color(display-p3 .262 .132 0);--orange-5: color(display-p3 .315 .168 .016);--orange-6: color(display-p3 .376 .219 .088);--orange-7: color(display-p3 .465 .283 .147);--orange-8: color(display-p3 .601 .359 .201);--orange-9: color(display-p3 .9 .45 .2);--orange-10: color(display-p3 .98 .51 .23);--orange-11: color(display-p3 1 .63 .38);--orange-12: color(display-p3 .98 .883 .775);--orange-a1: color(display-p3 .961 .247 0 / .022);--orange-a2: color(display-p3 .992 .529 0 / .051);--orange-a3: color(display-p3 .996 .486 0 / .131);--orange-a4: color(display-p3 .996 .384 0 / .211);--orange-a5: color(display-p3 1 .455 0 / .265);--orange-a6: color(display-p3 1 .529 .129 / .332);--orange-a7: color(display-p3 1 .569 .251 / .429);--orange-a8: color(display-p3 1 .584 .302 / .572);--orange-a9: color(display-p3 1 .494 .216 / .895);--orange-a10: color(display-p3 1 .522 .235 / .979);--orange-a11: color(display-p3 1 .63 .38);--orange-a12: color(display-p3 .98 .883 .775);--pink-1: color(display-p3 .093 .068 .089);--pink-2: color(display-p3 .121 .073 .11);--pink-3: color(display-p3 .198 .098 .179);--pink-4: color(display-p3 .271 .095 .231);--pink-5: color(display-p3 .32 .127 .273);--pink-6: color(display-p3 .382 .177 .326);--pink-7: color(display-p3 .477 .238 .405);--pink-8: color(display-p3 .612 .304 .51);--pink-9: color(display-p3 .775 .297 .61);--pink-10: color(display-p3 .808 .356 .645);--pink-11: color(display-p3 1 .535 .78);--pink-12: color(display-p3 .964 .826 .912);--pink-a1: color(display-p3 .984 .071 .855 / .03);--pink-a2: color(display-p3 1 .2 .8 / .059);--pink-a3: color(display-p3 1 .294 .886 / .139);--pink-a4: color(display-p3 1 .192 .82 / .219);--pink-a5: color(display-p3 1 .282 .827 / .274);--pink-a6: color(display-p3 1 .396 .835 / .337);--pink-a7: color(display-p3 1 .459 .831 / .442);--pink-a8: color(display-p3 1 .478 .827 / .585);--pink-a9: color(display-p3 1 .373 .784 / .761);--pink-a10: color(display-p3 1 .435 .792 / .795);--pink-a11: color(display-p3 1 .535 .78);--pink-a12: color(display-p3 .964 .826 .912);--plum-1: color(display-p3 .09 .068 .092);--plum-2: color(display-p3 .118 .077 .121);--plum-3: color(display-p3 .192 .105 .202);--plum-4: color(display-p3 .25 .121 .271);--plum-5: color(display-p3 .293 .152 .319);--plum-6: color(display-p3 .343 .198 .372);--plum-7: color(display-p3 .424 .262 .461);--plum-8: color(display-p3 .54 .341 .595);--plum-9: color(display-p3 .624 .313 .708);--plum-10: color(display-p3 .666 .365 .748);--plum-11: color(display-p3 .86 .602 .933);--plum-12: color(display-p3 .936 .836 .949);--plum-a1: color(display-p3 .973 .071 .973 / .026);--plum-a2: color(display-p3 .933 .267 1 / .059);--plum-a3: color(display-p3 .918 .333 .996 / .148);--plum-a4: color(display-p3 .91 .318 1 / .219);--plum-a5: color(display-p3 .914 .388 1 / .269);--plum-a6: color(display-p3 .906 .463 1 / .328);--plum-a7: color(display-p3 .906 .529 1 / .425);--plum-a8: color(display-p3 .906 .553 1 / .568);--plum-a9: color(display-p3 .875 .427 1 / .69);--plum-a10: color(display-p3 .886 .471 .996 / .732);--plum-a11: color(display-p3 .86 .602 .933);--plum-a12: color(display-p3 .936 .836 .949);--purple-1: color(display-p3 .09 .068 .103);--purple-2: color(display-p3 .113 .082 .134);--purple-3: color(display-p3 .175 .112 .224);--purple-4: color(display-p3 .224 .137 .297);--purple-5: color(display-p3 .264 .167 .349);--purple-6: color(display-p3 .311 .208 .406);--purple-7: color(display-p3 .381 .266 .496);--purple-8: color(display-p3 .49 .349 .649);--purple-9: color(display-p3 .523 .318 .751);--purple-10: color(display-p3 .57 .373 .791);--purple-11: color(display-p3 .8 .62 1);--purple-12: color(display-p3 .913 .854 .971);--purple-a1: color(display-p3 .686 .071 .996 / .038);--purple-a2: color(display-p3 .722 .286 .996 / .072);--purple-a3: color(display-p3 .718 .349 .996 / .169);--purple-a4: color(display-p3 .702 .353 1 / .248);--purple-a5: color(display-p3 .718 .404 1 / .303);--purple-a6: color(display-p3 .733 .455 1 / .366);--purple-a7: color(display-p3 .753 .506 1 / .458);--purple-a8: color(display-p3 .749 .522 1 / .622);--purple-a9: color(display-p3 .686 .408 1 / .736);--purple-a10: color(display-p3 .71 .459 1 / .778);--purple-a11: color(display-p3 .8 .62 1);--purple-a12: color(display-p3 .913 .854 .971);--red-1: color(display-p3 .093 .068 .067);--red-2: color(display-p3 .118 .077 .079);--red-3: color(display-p3 .211 .081 .099);--red-4: color(display-p3 .287 .079 .113);--red-5: color(display-p3 .348 .11 .142);--red-6: color(display-p3 .414 .16 .183);--red-7: color(display-p3 .508 .224 .236);--red-8: color(display-p3 .659 .298 .297);--red-9: color(display-p3 .83 .329 .324);--red-10: color(display-p3 .861 .403 .387);--red-11: color(display-p3 1 .57 .55);--red-12: color(display-p3 .971 .826 .852);--red-a1: color(display-p3 .984 .071 .071 / .03);--red-a2: color(display-p3 .996 .282 .282 / .055);--red-a3: color(display-p3 1 .169 .271 / .156);--red-a4: color(display-p3 1 .118 .267 / .236);--red-a5: color(display-p3 1 .212 .314 / .303);--red-a6: color(display-p3 1 .318 .38 / .374);--red-a7: color(display-p3 1 .4 .424 / .475);--red-a8: color(display-p3 1 .431 .431 / .635);--red-a9: color(display-p3 1 .388 .384 / .82);--red-a10: color(display-p3 1 .463 .447 / .853);--red-a11: color(display-p3 1 .57 .55);--red-a12: color(display-p3 .971 .826 .852);--ruby-1: color(display-p3 .093 .068 .074);--ruby-2: color(display-p3 .113 .083 .089);--ruby-3: color(display-p3 .208 .088 .117);--ruby-4: color(display-p3 .279 .092 .147);--ruby-5: color(display-p3 .337 .12 .18);--ruby-6: color(display-p3 .401 .166 .223);--ruby-7: color(display-p3 .495 .224 .281);--ruby-8: color(display-p3 .652 .295 .359);--ruby-9: color(display-p3 .83 .323 .408);--ruby-10: color(display-p3 .857 .392 .455);--ruby-11: color(display-p3 1 .57 .59);--ruby-12: color(display-p3 .968 .83 .88);--ruby-a1: color(display-p3 .984 .071 .329 / .03);--ruby-a2: color(display-p3 .992 .376 .529 / .051);--ruby-a3: color(display-p3 .996 .196 .404 / .152);--ruby-a4: color(display-p3 1 .173 .416 / .227);--ruby-a5: color(display-p3 1 .259 .459 / .29);--ruby-a6: color(display-p3 1 .341 .506 / .358);--ruby-a7: color(display-p3 1 .412 .541 / .458);--ruby-a8: color(display-p3 1 .431 .537 / .627);--ruby-a9: color(display-p3 1 .376 .482 / .82);--ruby-a10: color(display-p3 1 .447 .522 / .849);--ruby-a11: color(display-p3 1 .57 .59);--ruby-a12: color(display-p3 .968 .83 .88);--sky-1: color(display-p3 .056 .078 .116);--sky-2: color(display-p3 .075 .101 .149);--sky-3: color(display-p3 .089 .154 .244);--sky-4: color(display-p3 .106 .207 .323);--sky-5: color(display-p3 .135 .261 .394);--sky-6: color(display-p3 .17 .322 .469);--sky-7: color(display-p3 .205 .394 .557);--sky-8: color(display-p3 .232 .48 .665);--sky-9: color(display-p3 .585 .877 .983);--sky-10: color(display-p3 .718 .925 .991);--sky-11: color(display-p3 .536 .772 .924);--sky-12: color(display-p3 .799 .947 .993);--sky-a1: color(display-p3 0 .282 .996 / .055);--sky-a2: color(display-p3 .157 .467 .992 / .089);--sky-a3: color(display-p3 .192 .522 .996 / .19);--sky-a4: color(display-p3 .212 .584 1 / .274);--sky-a5: color(display-p3 .259 .631 1 / .349);--sky-a6: color(display-p3 .302 .655 1 / .433);--sky-a7: color(display-p3 .329 .686 1 / .526);--sky-a8: color(display-p3 .325 .71 1 / .643);--sky-a9: color(display-p3 .592 .894 1 / .984);--sky-a10: color(display-p3 .722 .933 1 / .992);--sky-a11: color(display-p3 .536 .772 .924);--sky-a12: color(display-p3 .799 .947 .993);--teal-1: color(display-p3 .059 .083 .079);--teal-2: color(display-p3 .075 .11 .107);--teal-3: color(display-p3 .087 .175 .165);--teal-4: color(display-p3 .087 .227 .214);--teal-5: color(display-p3 .12 .277 .261);--teal-6: color(display-p3 .162 .335 .314);--teal-7: color(display-p3 .205 .406 .379);--teal-8: color(display-p3 .245 .489 .453);--teal-9: color(display-p3 .297 .637 .581);--teal-10: color(display-p3 .319 .69 .62);--teal-11: color(display-p3 .388 .835 .719);--teal-12: color(display-p3 .734 .934 .87);--teal-a1: color(display-p3 0 .992 .761 / .017);--teal-a2: color(display-p3 .235 .988 .902 / .047);--teal-a3: color(display-p3 .235 1 .898 / .118);--teal-a4: color(display-p3 .18 .996 .929 / .173);--teal-a5: color(display-p3 .31 1 .933 / .227);--teal-a6: color(display-p3 .396 1 .933 / .286);--teal-a7: color(display-p3 .443 1 .925 / .366);--teal-a8: color(display-p3 .459 1 .925 / .454);--teal-a9: color(display-p3 .443 .996 .906 / .61);--teal-a10: color(display-p3 .439 .996 .89 / .669);--teal-a11: color(display-p3 .388 .835 .719);--teal-a12: color(display-p3 .734 .934 .87);--tomato-1: color(display-p3 .09 .068 .067);--tomato-2: color(display-p3 .115 .084 .076);--tomato-3: color(display-p3 .205 .097 .083);--tomato-4: color(display-p3 .282 .099 .077);--tomato-5: color(display-p3 .339 .129 .101);--tomato-6: color(display-p3 .398 .179 .141);--tomato-7: color(display-p3 .487 .245 .194);--tomato-8: color(display-p3 .629 .322 .248);--tomato-9: color(display-p3 .831 .345 .231);--tomato-10: color(display-p3 .862 .415 .298);--tomato-11: color(display-p3 1 .585 .455);--tomato-12: color(display-p3 .959 .833 .802);--tomato-a1: color(display-p3 .973 .071 .071 / .026);--tomato-a2: color(display-p3 .992 .376 .224 / .051);--tomato-a3: color(display-p3 .996 .282 .176 / .148);--tomato-a4: color(display-p3 1 .204 .118 / .232);--tomato-a5: color(display-p3 1 .286 .192 / .29);--tomato-a6: color(display-p3 1 .392 .278 / .353);--tomato-a7: color(display-p3 1 .459 .349 / .45);--tomato-a8: color(display-p3 1 .49 .369 / .601);--tomato-a9: color(display-p3 1 .408 .267 / .82);--tomato-a10: color(display-p3 1 .478 .341 / .853);--tomato-a11: color(display-p3 1 .585 .455);--tomato-a12: color(display-p3 .959 .833 .802);--violet-1: color(display-p3 .077 .071 .118);--violet-2: color(display-p3 .101 .084 .141);--violet-3: color(display-p3 .154 .123 .256);--violet-4: color(display-p3 .191 .148 .345);--violet-5: color(display-p3 .226 .182 .396);--violet-6: color(display-p3 .269 .223 .449);--violet-7: color(display-p3 .326 .277 .53);--violet-8: color(display-p3 .399 .346 .656);--violet-9: color(display-p3 .417 .341 .784);--violet-10: color(display-p3 .477 .402 .823);--violet-11: color(display-p3 .72 .65 1);--violet-12: color(display-p3 .883 .867 .986);--violet-a1: color(display-p3 .282 .141 .996 / .055);--violet-a2: color(display-p3 .51 .263 1 / .08);--violet-a3: color(display-p3 .494 .337 .996 / .202);--violet-a4: color(display-p3 .49 .345 1 / .299);--violet-a5: color(display-p3 .525 .392 1 / .353);--violet-a6: color(display-p3 .569 .455 1 / .408);--violet-a7: color(display-p3 .588 .494 1 / .496);--violet-a8: color(display-p3 .596 .51 1 / .631);--violet-a9: color(display-p3 .522 .424 1 / .769);--violet-a10: color(display-p3 .576 .482 1 / .811);--violet-a11: color(display-p3 .72 .65 1);--violet-a12: color(display-p3 .883 .867 .986);--yellow-1: color(display-p3 .078 .069 .047);--yellow-2: color(display-p3 .103 .094 .063);--yellow-3: color(display-p3 .168 .137 .039);--yellow-4: color(display-p3 .209 .169 0);--yellow-5: color(display-p3 .255 .209 0);--yellow-6: color(display-p3 .31 .261 .07);--yellow-7: color(display-p3 .389 .331 .135);--yellow-8: color(display-p3 .497 .42 .182);--yellow-9: color(display-p3 1 .92 .22);--yellow-10: color(display-p3 1 1 .456);--yellow-11: color(display-p3 .948 .885 .392);--yellow-12: color(display-p3 .959 .934 .731);--yellow-a1: color(display-p3 .973 .369 0 / .013);--yellow-a2: color(display-p3 .996 .792 0 / .038);--yellow-a3: color(display-p3 .996 .71 0 / .11);--yellow-a4: color(display-p3 .996 .741 0 / .152);--yellow-a5: color(display-p3 .996 .765 0 / .202);--yellow-a6: color(display-p3 .996 .816 .082 / .261);--yellow-a7: color(display-p3 1 .831 .263 / .345);--yellow-a8: color(display-p3 1 .831 .314 / .463);--yellow-a9: color(display-p3 1 .922 .22);--yellow-a10: color(display-p3 1 1 .455);--yellow-a11: color(display-p3 .948 .885 .392);--yellow-a12: color(display-p3 .959 .934 .731);--gray-surface: color(display-p3 .1255 .1255 .1255 / .5);--mauve-surface: color(display-p3 .1333 .1255 .1333 / .5);--slate-surface: color(display-p3 .1176 .1255 .1333 / .5);--sage-surface: color(display-p3 .1176 .1255 .1176 / .5);--olive-surface: color(display-p3 .1176 .1255 .1176 / .5);--sand-surface: color(display-p3 .1255 .1255 .1255 / .5);--amber-surface: color(display-p3 .1412 .1176 .0784 / .5);--blue-surface: color(display-p3 .0706 .1255 .2196 / .5);--bronze-surface: color(display-p3 .1412 .1255 .1176 / .5);--brown-surface: color(display-p3 .1412 .1176 .102 / .5);--crimson-surface: color(display-p3 .1647 .0863 .1176 / .5);--cyan-surface: color(display-p3 .0784 .1412 .1725 / .5);--gold-surface: color(display-p3 .1412 .1333 .1098 / .5);--grass-surface: color(display-p3 .102 .1333 .102 / .5);--green-surface: color(display-p3 .0941 .1412 .1098 / .5);--indigo-surface: color(display-p3 .0941 .1098 .2196 / .5);--iris-surface: color(display-p3 .1098 .102 .2118 / .5);--jade-surface: color(display-p3 .0863 .149 .1176 / .5);--lime-surface: color(display-p3 .1098 .1255 .0784 / .5);--mint-surface: color(display-p3 .0941 .149 .1412 / .5);--orange-surface: color(display-p3 .1412 .1098 .0706 / .5);--pink-surface: color(display-p3 .1725 .0784 .149 / .5);--plum-surface: color(display-p3 .1647 .0863 .1725 / .5);--purple-surface: color(display-p3 .149 .0941 .1961 / .5);--red-surface: color(display-p3 .1647 .0863 .0863 / .5);--ruby-surface: color(display-p3 .1569 .0941 .1098 / .5);--sky-surface: color(display-p3 .0863 .1333 .2196 / .5);--teal-surface: color(display-p3 .0863 .149 .1412 / .5);--tomato-surface: color(display-p3 .1569 .0941 .0784 / .5);--violet-surface: color(display-p3 .1333 .102 .2118 / .5);--yellow-surface: color(display-p3 .1333 .1176 .0706 / .5)}}}:root{--gray-contrast: white;--mauve-contrast: white;--slate-contrast: white;--sage-contrast: white;--olive-contrast: white;--sand-contrast: white;--amber-contrast: #21201c;--blue-contrast: white;--bronze-contrast: white;--brown-contrast: white;--crimson-contrast: white;--cyan-contrast: white;--gold-contrast: white;--grass-contrast: white;--green-contrast: white;--indigo-contrast: white;--iris-contrast: white;--jade-contrast: white;--lime-contrast: #1d211c;--mint-contrast: #1a211e;--orange-contrast: white;--pink-contrast: white;--plum-contrast: white;--purple-contrast: white;--red-contrast: white;--ruby-contrast: white;--sky-contrast: #1c2024;--teal-contrast: white;--tomato-contrast: white;--violet-contrast: white;--yellow-contrast: #21201c;--black-a1: rgba(0, 0, 0, .05);--black-a2: rgba(0, 0, 0, .1);--black-a3: rgba(0, 0, 0, .15);--black-a4: rgba(0, 0, 0, .2);--black-a5: rgba(0, 0, 0, .3);--black-a6: rgba(0, 0, 0, .4);--black-a7: rgba(0, 0, 0, .5);--black-a8: rgba(0, 0, 0, .6);--black-a9: rgba(0, 0, 0, .7);--black-a10: rgba(0, 0, 0, .8);--black-a11: rgba(0, 0, 0, .9);--black-a12: rgba(0, 0, 0, .95);--white-a1: rgba(255, 255, 255, .05);--white-a2: rgba(255, 255, 255, .1);--white-a3: rgba(255, 255, 255, .15);--white-a4: rgba(255, 255, 255, .2);--white-a5: rgba(255, 255, 255, .3);--white-a6: rgba(255, 255, 255, .4);--white-a7: rgba(255, 255, 255, .5);--white-a8: rgba(255, 255, 255, .6);--white-a9: rgba(255, 255, 255, .7);--white-a10: rgba(255, 255, 255, .8);--white-a11: rgba(255, 255, 255, .9);--white-a12: rgba(255, 255, 255, .95)}@supports (color: color-mix(in oklab,white,black)){.dark,.dark-theme{--amber-track: color-mix(in oklab, var(--amber-8), var(--amber-9) 75%);--lime-track: color-mix(in oklab, var(--lime-8), var(--lime-9) 65%);--mint-track: color-mix(in oklab, var(--mint-8), var(--mint-9) 65%);--sky-track: color-mix(in oklab, var(--sky-8), var(--sky-9) 65%);--yellow-track: color-mix(in oklab, var(--yellow-8), var(--yellow-9) 65%)}}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){:root{--black-a1: color(display-p3 0 0 0 / .05);--black-a2: color(display-p3 0 0 0 / .1);--black-a3: color(display-p3 0 0 0 / .15);--black-a4: color(display-p3 0 0 0 / .2);--black-a5: color(display-p3 0 0 0 / .3);--black-a6: color(display-p3 0 0 0 / .4);--black-a7: color(display-p3 0 0 0 / .5);--black-a8: color(display-p3 0 0 0 / .6);--black-a9: color(display-p3 0 0 0 / .7);--black-a10: color(display-p3 0 0 0 / .8);--black-a11: color(display-p3 0 0 0 / .9);--black-a12: color(display-p3 0 0 0 / .95);--white-a1: color(display-p3 1 1 1 / .05);--white-a2: color(display-p3 1 1 1 / .1);--white-a3: color(display-p3 1 1 1 / .15);--white-a4: color(display-p3 1 1 1 / .2);--white-a5: color(display-p3 1 1 1 / .3);--white-a6: color(display-p3 1 1 1 / .4);--white-a7: color(display-p3 1 1 1 / .5);--white-a8: color(display-p3 1 1 1 / .6);--white-a9: color(display-p3 1 1 1 / .7);--white-a10: color(display-p3 1 1 1 / .8);--white-a11: color(display-p3 1 1 1 / .9);--white-a12: color(display-p3 1 1 1 / .95)}}}:where(.radix-themes){--color-background: white;--color-overlay: var(--black-a6);--color-panel-solid: white;--color-panel-translucent: rgba(255, 255, 255, .7);--color-surface: rgba(255, 255, 255, .85);--color-transparent: rgb(0 0 0 / 0);--shadow-1: inset 0 0 0 1px var(--gray-a5), inset 0 1.5px 2px 0 var(--gray-a2), inset 0 1.5px 2px 0 var(--black-a2);--shadow-2: 0 0 0 1px var(--gray-a3), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--shadow-3: 0 0 0 1px var(--gray-a3), 0 2px 3px -2px var(--gray-a3), 0 3px 12px -4px var(--black-a2), 0 4px 16px -8px var(--black-a2);--shadow-4: 0 0 0 1px var(--gray-a3), 0 8px 40px var(--black-a1), 0 12px 32px -16px var(--gray-a3);--shadow-5: 0 0 0 1px var(--gray-a3), 0 12px 60px var(--black-a3), 0 12px 32px -16px var(--gray-a5);--shadow-6: 0 0 0 1px var(--gray-a3), 0 12px 60px var(--black-a3), 0 16px 64px var(--gray-a2), 0 16px 36px -20px var(--gray-a7);--base-button-classic-after-inset: 2px;--base-button-classic-box-shadow-top: inset 0 0 0 1px var(--gray-a4), inset 0 -2px 1px var(--gray-a3);--base-button-classic-box-shadow-bottom: inset 0 4px 2px -2px var(--white-a9), inset 0 2px 1px -1px var(--white-a9);--base-button-classic-disabled-box-shadow: var(--base-button-classic-box-shadow-top), var(--base-button-classic-box-shadow-bottom);--base-button-classic-active-filter: brightness(.92) saturate(1.1);--base-button-classic-high-contrast-hover-filter: contrast(.88) saturate(1.1) brightness(1.1);--base-button-classic-high-contrast-active-filter: contrast(.82) saturate(1.2) brightness(1.16);--base-button-solid-active-filter: brightness(.92) saturate(1.1);--base-button-solid-high-contrast-hover-filter: contrast(.88) saturate(1.1) brightness(1.1);--base-button-solid-high-contrast-active-filter: contrast(.82) saturate(1.2) brightness(1.16);--kbd-box-shadow: inset 0 -.05em .5em var(--gray-a2), inset 0 .05em var(--white-a12), inset 0 .25em .5em var(--gray-a2), inset 0 -.05em var(--gray-a6), 0 0 0 .05em var(--gray-a5), 0 .08em .17em var(--gray-a7);--progress-indicator-after-linear-gradient: var(--white-a5), var(--white-a9), var(--white-a5);--segmented-control-indicator-background-color: var(--color-background);--select-trigger-classic-box-shadow: inset 0 0 0 1px var(--gray-a5), inset 0 2px 1px var(--white-a11), inset 0 -2px 1px var(--gray-a4) ;--slider-range-high-contrast-background-image: linear-gradient(var(--black-a8), var(--black-a8));--slider-disabled-blend-mode: multiply;--switch-disabled-blend-mode: multiply;--switch-high-contrast-checked-color-overlay: var(--black-a8);--switch-high-contrast-checked-active-before-filter: contrast(.82) saturate(1.2) brightness(1.16);--switch-surface-checked-active-filter: brightness(.92) saturate(1.1);--base-card-surface-box-shadow: 0 0 0 1px var(--gray-a5);--base-card-surface-hover-box-shadow: 0 0 0 1px var(--gray-a7);--base-card-surface-active-box-shadow: 0 0 0 1px var(--gray-a6);--base-card-classic-box-shadow-inner: 0 0 0 1px var(--base-card-classic-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--base-card-classic-box-shadow-outer: 0 0 0 0 var(--base-card-classic-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a1), 0 1px 1px -1px var(--gray-a2), 0 2px 1px -2px var(--black-a1), 0 1px 3px -1px var(--black-a1);--base-card-classic-hover-box-shadow-inner: 0 0 0 1px var(--base-card-classic-hover-border-color), 0 1px 1px 1px var(--black-a1), 0 2px 1px -1px var(--gray-a3), 0 2px 3px -2px var(--black-a1), 0 3px 12px -4px var(--gray-a3), 0 4px 16px -8px var(--black-a1);--base-card-classic-hover-box-shadow-outer: 0 0 0 0 var(--base-card-classic-hover-border-color), 0 1px 1px 0 var(--black-a1), 0 2px 1px -2px var(--gray-a3), 0 2px 3px -3px var(--black-a1), 0 3px 12px -5px var(--gray-a3), 0 4px 16px -9px var(--black-a1);--base-card-classic-active-box-shadow-inner: 0 0 0 1px var(--base-card-classic-active-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a4), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--base-card-classic-active-box-shadow-outer: 0 0 0 0 var(--base-card-classic-active-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a1), 0 1px 1px -1px var(--gray-a4), 0 2px 1px -2px var(--black-a1), 0 1px 3px -1px var(--black-a1);--base-card-classic-border-color: var(--gray-a3);--base-card-classic-hover-border-color: var(--gray-a3);--base-card-classic-active-border-color: var(--gray-a4)}:is(.dark,.dark-theme),:is(.dark,.dark-theme) :where(.radix-themes:not(.light,.light-theme)){--color-background: var(--gray-1);--color-overlay: var(--black-a8);--color-panel-solid: var(--gray-2);--color-panel-translucent: var(--gray-a2);--color-surface: rgba(0, 0, 0, .25);--shadow-1: inset 0 -1px 1px 0 var(--gray-a3), inset 0 0 0 1px var(--gray-a3), inset 0 3px 4px 0 var(--black-a5), inset 0 0 0 1px var(--gray-a4);--shadow-2: 0 0 0 1px var(--gray-a6), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--shadow-3: 0 0 0 1px var(--gray-a6), 0 2px 3px -2px var(--black-a3), 0 3px 8px -2px var(--black-a6), 0 4px 12px -4px var(--black-a7);--shadow-4: 0 0 0 1px var(--gray-a6), 0 8px 40px var(--black-a3), 0 12px 32px -16px var(--black-a5);--shadow-5: 0 0 0 1px var(--gray-a6), 0 12px 60px var(--black-a5), 0 12px 32px -16px var(--black-a7);--shadow-6: 0 0 0 1px var(--gray-a6), 0 12px 60px var(--black-a4), 0 16px 64px var(--black-a6), 0 16px 36px -20px var(--black-a11);--base-button-classic-after-inset: 1px;--base-button-classic-box-shadow-top: inset 0 0 0 1px var(--white-a2), inset 0 4px 2px -2px var(--white-a3), inset 0 1px 1px var(--white-a6), inset 0 -1px 1px var(--black-a6);--base-button-classic-box-shadow-bottom: 0 0 transparent;--base-button-classic-disabled-box-shadow: inset 0 0 0 1px var(--gray-a5), inset 0 4px 2px -2px var(--gray-a2), inset 0 1px 1px var(--gray-a5), inset 0 -1px 1px var(--black-a3), inset 0 0 0 1px var(--gray-a2);--base-button-classic-active-filter: brightness(1.08);--base-button-classic-high-contrast-hover-filter: contrast(.88) saturate(1.3) brightness(1.14);--base-button-classic-high-contrast-active-filter: brightness(.95) saturate(1.2);--base-button-solid-active-filter: brightness(1.08);--base-button-solid-high-contrast-hover-filter: contrast(.88) saturate(1.3) brightness(1.18);--base-button-solid-high-contrast-active-filter: brightness(.95) saturate(1.2);--kbd-box-shadow: inset 0 -.05em .5em var(--gray-a3), inset 0 .05em var(--gray-a11), inset 0 .25em .5em var(--gray-a2), inset 0 -.1em var(--black-a11), 0 0 0 .075em var(--gray-a7), 0 .08em .17em var(--black-a12);--progress-indicator-after-linear-gradient: var(--white-a3), var(--white-a6), var(--white-a3);--segmented-control-indicator-background-color: var(--gray-a3);--select-trigger-classic-box-shadow: inset 0 0 0 1px var(--white-a4), inset 0 1px 1px var(--white-a4), inset 0 -1px 1px var(--black-a9) ;--slider-range-high-contrast-background-image: none;--slider-disabled-blend-mode: screen;--switch-disabled-blend-mode: screen;--switch-high-contrast-checked-color-overlay: transparent;--switch-high-contrast-checked-active-before-filter: brightness(1.08);--switch-surface-checked-active-filter: brightness(1.08);--base-card-classic-box-shadow-inner: 0 0 0 1px var(--base-card-classic-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--base-card-classic-box-shadow-outer: 0 0 0 0 var(--base-card-classic-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a3), 0 1px 1px -1px var(--black-a6), 0 2px 1px -2px var(--black-a6), 0 1px 3px -1px var(--black-a5);--base-card-classic-hover-box-shadow-inner: 0 0 0 1px var(--base-card-classic-hover-border-color), 0 0 1px 1px var(--gray-a4), 0 0 1px -1px var(--gray-a4), 0 0 3px -2px var(--gray-a3), 0 0 12px -2px var(--gray-a3), 0 0 16px -8px var(--gray-a7);--base-card-classic-hover-box-shadow-outer: 0 0 0 0 var(--base-card-classic-hover-border-color), 0 0 1px 0 var(--gray-a4), 0 0 1px -2px var(--gray-a4), 0 0 3px -3px var(--gray-a3), 0 0 12px -3px var(--gray-a3), 0 0 16px -9px var(--gray-a7);--base-card-classic-active-box-shadow-inner: 0 0 0 1px var(--base-card-classic-active-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--base-card-classic-active-box-shadow-outer: 0 0 0 0 var(--base-card-classic-active-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a3), 0 1px 1px -1px var(--black-a6), 0 2px 1px -2px var(--black-a6), 0 1px 3px -1px var(--black-a5);--base-card-classic-border-color: var(--gray-a6);--base-card-classic-hover-border-color: var(--gray-a6);--base-card-classic-active-border-color: var(--gray-a6)}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){.radix-themes{--color-transparent: color(display-p3 0 0 0 / 0)}}}.radix-themes:where(.light,.light-theme),:root:where(:has(.radix-themes[data-is-root-theme=true]:where(.light,.light-theme))){color-scheme:light}.radix-themes:where(.dark,.dark-theme),:root:where(:has(.radix-themes[data-is-root-theme=true]:where(.dark,.dark-theme))){color-scheme:dark}.radix-themes,[data-accent-color]:where(:not([data-accent-color=""],[data-accent-color=gray])){--focus-1: var(--accent-1);--focus-2: var(--accent-2);--focus-3: var(--accent-3);--focus-4: var(--accent-4);--focus-5: var(--accent-5);--focus-6: var(--accent-6);--focus-7: var(--accent-7);--focus-8: var(--accent-8);--focus-9: var(--accent-9);--focus-10: var(--accent-10);--focus-11: var(--accent-11);--focus-12: var(--accent-12);--focus-a1: var(--accent-a1);--focus-a2: var(--accent-a2);--focus-a3: var(--accent-a3);--focus-a4: var(--accent-a4);--focus-a5: var(--accent-a5);--focus-a6: var(--accent-a6);--focus-a7: var(--accent-a7);--focus-a8: var(--accent-a8);--focus-a9: var(--accent-a9);--focus-a10: var(--accent-a10);--focus-a11: var(--accent-a11);--focus-a12: var(--accent-a12)}.radix-themes ::selection{background-color:var(--focus-a5)}.radix-themes:where([data-has-background=true]){background-color:var(--color-background)}.radix-themes:where([data-panel-background=solid]){--color-panel: var(--color-panel-solid);--backdrop-filter-panel: none}.radix-themes:where([data-panel-background=translucent]){--color-panel: var(--color-panel-translucent);--backdrop-filter-panel: blur(64px)}[data-accent-color=amber]{--accent-1: var(--amber-1);--accent-2: var(--amber-2);--accent-3: var(--amber-3);--accent-4: var(--amber-4);--accent-5: var(--amber-5);--accent-6: var(--amber-6);--accent-7: var(--amber-7);--accent-8: var(--amber-8);--accent-9: var(--amber-9);--accent-10: var(--amber-10);--accent-11: var(--amber-11);--accent-12: var(--amber-12);--accent-a1: var(--amber-a1);--accent-a2: var(--amber-a2);--accent-a3: var(--amber-a3);--accent-a4: var(--amber-a4);--accent-a5: var(--amber-a5);--accent-a6: var(--amber-a6);--accent-a7: var(--amber-a7);--accent-a8: var(--amber-a8);--accent-a9: var(--amber-a9);--accent-a10: var(--amber-a10);--accent-a11: var(--amber-a11);--accent-a12: var(--amber-a12);--accent-contrast: var(--amber-contrast);--accent-surface: var(--amber-surface);--accent-indicator: var(--amber-indicator);--accent-track: var(--amber-track)}[data-accent-color=blue]{--accent-1: var(--blue-1);--accent-2: var(--blue-2);--accent-3: var(--blue-3);--accent-4: var(--blue-4);--accent-5: var(--blue-5);--accent-6: var(--blue-6);--accent-7: var(--blue-7);--accent-8: var(--blue-8);--accent-9: var(--blue-9);--accent-10: var(--blue-10);--accent-11: var(--blue-11);--accent-12: var(--blue-12);--accent-a1: var(--blue-a1);--accent-a2: var(--blue-a2);--accent-a3: var(--blue-a3);--accent-a4: var(--blue-a4);--accent-a5: var(--blue-a5);--accent-a6: var(--blue-a6);--accent-a7: var(--blue-a7);--accent-a8: var(--blue-a8);--accent-a9: var(--blue-a9);--accent-a10: var(--blue-a10);--accent-a11: var(--blue-a11);--accent-a12: var(--blue-a12);--accent-contrast: var(--blue-contrast);--accent-surface: var(--blue-surface);--accent-indicator: var(--blue-indicator);--accent-track: var(--blue-track)}[data-accent-color=bronze]{--accent-1: var(--bronze-1);--accent-2: var(--bronze-2);--accent-3: var(--bronze-3);--accent-4: var(--bronze-4);--accent-5: var(--bronze-5);--accent-6: var(--bronze-6);--accent-7: var(--bronze-7);--accent-8: var(--bronze-8);--accent-9: var(--bronze-9);--accent-10: var(--bronze-10);--accent-11: var(--bronze-11);--accent-12: var(--bronze-12);--accent-a1: var(--bronze-a1);--accent-a2: var(--bronze-a2);--accent-a3: var(--bronze-a3);--accent-a4: var(--bronze-a4);--accent-a5: var(--bronze-a5);--accent-a6: var(--bronze-a6);--accent-a7: var(--bronze-a7);--accent-a8: var(--bronze-a8);--accent-a9: var(--bronze-a9);--accent-a10: var(--bronze-a10);--accent-a11: var(--bronze-a11);--accent-a12: var(--bronze-a12);--accent-contrast: var(--bronze-contrast);--accent-surface: var(--bronze-surface);--accent-indicator: var(--bronze-indicator);--accent-track: var(--bronze-track)}[data-accent-color=brown]{--accent-1: var(--brown-1);--accent-2: var(--brown-2);--accent-3: var(--brown-3);--accent-4: var(--brown-4);--accent-5: var(--brown-5);--accent-6: var(--brown-6);--accent-7: var(--brown-7);--accent-8: var(--brown-8);--accent-9: var(--brown-9);--accent-10: var(--brown-10);--accent-11: var(--brown-11);--accent-12: var(--brown-12);--accent-a1: var(--brown-a1);--accent-a2: var(--brown-a2);--accent-a3: var(--brown-a3);--accent-a4: var(--brown-a4);--accent-a5: var(--brown-a5);--accent-a6: var(--brown-a6);--accent-a7: var(--brown-a7);--accent-a8: var(--brown-a8);--accent-a9: var(--brown-a9);--accent-a10: var(--brown-a10);--accent-a11: var(--brown-a11);--accent-a12: var(--brown-a12);--accent-contrast: var(--brown-contrast);--accent-surface: var(--brown-surface);--accent-indicator: var(--brown-indicator);--accent-track: var(--brown-track)}[data-accent-color=crimson]{--accent-1: var(--crimson-1);--accent-2: var(--crimson-2);--accent-3: var(--crimson-3);--accent-4: var(--crimson-4);--accent-5: var(--crimson-5);--accent-6: var(--crimson-6);--accent-7: var(--crimson-7);--accent-8: var(--crimson-8);--accent-9: var(--crimson-9);--accent-10: var(--crimson-10);--accent-11: var(--crimson-11);--accent-12: var(--crimson-12);--accent-a1: var(--crimson-a1);--accent-a2: var(--crimson-a2);--accent-a3: var(--crimson-a3);--accent-a4: var(--crimson-a4);--accent-a5: var(--crimson-a5);--accent-a6: var(--crimson-a6);--accent-a7: var(--crimson-a7);--accent-a8: var(--crimson-a8);--accent-a9: var(--crimson-a9);--accent-a10: var(--crimson-a10);--accent-a11: var(--crimson-a11);--accent-a12: var(--crimson-a12);--accent-contrast: var(--crimson-contrast);--accent-surface: var(--crimson-surface);--accent-indicator: var(--crimson-indicator);--accent-track: var(--crimson-track)}[data-accent-color=cyan]{--accent-1: var(--cyan-1);--accent-2: var(--cyan-2);--accent-3: var(--cyan-3);--accent-4: var(--cyan-4);--accent-5: var(--cyan-5);--accent-6: var(--cyan-6);--accent-7: var(--cyan-7);--accent-8: var(--cyan-8);--accent-9: var(--cyan-9);--accent-10: var(--cyan-10);--accent-11: var(--cyan-11);--accent-12: var(--cyan-12);--accent-a1: var(--cyan-a1);--accent-a2: var(--cyan-a2);--accent-a3: var(--cyan-a3);--accent-a4: var(--cyan-a4);--accent-a5: var(--cyan-a5);--accent-a6: var(--cyan-a6);--accent-a7: var(--cyan-a7);--accent-a8: var(--cyan-a8);--accent-a9: var(--cyan-a9);--accent-a10: var(--cyan-a10);--accent-a11: var(--cyan-a11);--accent-a12: var(--cyan-a12);--accent-contrast: var(--cyan-contrast);--accent-surface: var(--cyan-surface);--accent-indicator: var(--cyan-indicator);--accent-track: var(--cyan-track)}[data-accent-color=gold]{--accent-1: var(--gold-1);--accent-2: var(--gold-2);--accent-3: var(--gold-3);--accent-4: var(--gold-4);--accent-5: var(--gold-5);--accent-6: var(--gold-6);--accent-7: var(--gold-7);--accent-8: var(--gold-8);--accent-9: var(--gold-9);--accent-10: var(--gold-10);--accent-11: var(--gold-11);--accent-12: var(--gold-12);--accent-a1: var(--gold-a1);--accent-a2: var(--gold-a2);--accent-a3: var(--gold-a3);--accent-a4: var(--gold-a4);--accent-a5: var(--gold-a5);--accent-a6: var(--gold-a6);--accent-a7: var(--gold-a7);--accent-a8: var(--gold-a8);--accent-a9: var(--gold-a9);--accent-a10: var(--gold-a10);--accent-a11: var(--gold-a11);--accent-a12: var(--gold-a12);--accent-contrast: var(--gold-contrast);--accent-surface: var(--gold-surface);--accent-indicator: var(--gold-indicator);--accent-track: var(--gold-track)}[data-accent-color=grass]{--accent-1: var(--grass-1);--accent-2: var(--grass-2);--accent-3: var(--grass-3);--accent-4: var(--grass-4);--accent-5: var(--grass-5);--accent-6: var(--grass-6);--accent-7: var(--grass-7);--accent-8: var(--grass-8);--accent-9: var(--grass-9);--accent-10: var(--grass-10);--accent-11: var(--grass-11);--accent-12: var(--grass-12);--accent-a1: var(--grass-a1);--accent-a2: var(--grass-a2);--accent-a3: var(--grass-a3);--accent-a4: var(--grass-a4);--accent-a5: var(--grass-a5);--accent-a6: var(--grass-a6);--accent-a7: var(--grass-a7);--accent-a8: var(--grass-a8);--accent-a9: var(--grass-a9);--accent-a10: var(--grass-a10);--accent-a11: var(--grass-a11);--accent-a12: var(--grass-a12);--accent-contrast: var(--grass-contrast);--accent-surface: var(--grass-surface);--accent-indicator: var(--grass-indicator);--accent-track: var(--grass-track)}[data-accent-color=gray]{--accent-1: var(--gray-1);--accent-2: var(--gray-2);--accent-3: var(--gray-3);--accent-4: var(--gray-4);--accent-5: var(--gray-5);--accent-6: var(--gray-6);--accent-7: var(--gray-7);--accent-8: var(--gray-8);--accent-9: var(--gray-9);--accent-10: var(--gray-10);--accent-11: var(--gray-11);--accent-12: var(--gray-12);--accent-a1: var(--gray-a1);--accent-a2: var(--gray-a2);--accent-a3: var(--gray-a3);--accent-a4: var(--gray-a4);--accent-a5: var(--gray-a5);--accent-a6: var(--gray-a6);--accent-a7: var(--gray-a7);--accent-a8: var(--gray-a8);--accent-a9: var(--gray-a9);--accent-a10: var(--gray-a10);--accent-a11: var(--gray-a11);--accent-a12: var(--gray-a12);--accent-contrast: var(--gray-contrast);--accent-surface: var(--gray-surface);--accent-indicator: var(--gray-indicator);--accent-track: var(--gray-track)}[data-accent-color=green]{--accent-1: var(--green-1);--accent-2: var(--green-2);--accent-3: var(--green-3);--accent-4: var(--green-4);--accent-5: var(--green-5);--accent-6: var(--green-6);--accent-7: var(--green-7);--accent-8: var(--green-8);--accent-9: var(--green-9);--accent-10: var(--green-10);--accent-11: var(--green-11);--accent-12: var(--green-12);--accent-a1: var(--green-a1);--accent-a2: var(--green-a2);--accent-a3: var(--green-a3);--accent-a4: var(--green-a4);--accent-a5: var(--green-a5);--accent-a6: var(--green-a6);--accent-a7: var(--green-a7);--accent-a8: var(--green-a8);--accent-a9: var(--green-a9);--accent-a10: var(--green-a10);--accent-a11: var(--green-a11);--accent-a12: var(--green-a12);--accent-contrast: var(--green-contrast);--accent-surface: var(--green-surface);--accent-indicator: var(--green-indicator);--accent-track: var(--green-track)}[data-accent-color=indigo]{--accent-1: var(--indigo-1);--accent-2: var(--indigo-2);--accent-3: var(--indigo-3);--accent-4: var(--indigo-4);--accent-5: var(--indigo-5);--accent-6: var(--indigo-6);--accent-7: var(--indigo-7);--accent-8: var(--indigo-8);--accent-9: var(--indigo-9);--accent-10: var(--indigo-10);--accent-11: var(--indigo-11);--accent-12: var(--indigo-12);--accent-a1: var(--indigo-a1);--accent-a2: var(--indigo-a2);--accent-a3: var(--indigo-a3);--accent-a4: var(--indigo-a4);--accent-a5: var(--indigo-a5);--accent-a6: var(--indigo-a6);--accent-a7: var(--indigo-a7);--accent-a8: var(--indigo-a8);--accent-a9: var(--indigo-a9);--accent-a10: var(--indigo-a10);--accent-a11: var(--indigo-a11);--accent-a12: var(--indigo-a12);--accent-contrast: var(--indigo-contrast);--accent-surface: var(--indigo-surface);--accent-indicator: var(--indigo-indicator);--accent-track: var(--indigo-track)}[data-accent-color=iris]{--accent-1: var(--iris-1);--accent-2: var(--iris-2);--accent-3: var(--iris-3);--accent-4: var(--iris-4);--accent-5: var(--iris-5);--accent-6: var(--iris-6);--accent-7: var(--iris-7);--accent-8: var(--iris-8);--accent-9: var(--iris-9);--accent-10: var(--iris-10);--accent-11: var(--iris-11);--accent-12: var(--iris-12);--accent-a1: var(--iris-a1);--accent-a2: var(--iris-a2);--accent-a3: var(--iris-a3);--accent-a4: var(--iris-a4);--accent-a5: var(--iris-a5);--accent-a6: var(--iris-a6);--accent-a7: var(--iris-a7);--accent-a8: var(--iris-a8);--accent-a9: var(--iris-a9);--accent-a10: var(--iris-a10);--accent-a11: var(--iris-a11);--accent-a12: var(--iris-a12);--accent-contrast: var(--iris-contrast);--accent-surface: var(--iris-surface);--accent-indicator: var(--iris-indicator);--accent-track: var(--iris-track)}[data-accent-color=jade]{--accent-1: var(--jade-1);--accent-2: var(--jade-2);--accent-3: var(--jade-3);--accent-4: var(--jade-4);--accent-5: var(--jade-5);--accent-6: var(--jade-6);--accent-7: var(--jade-7);--accent-8: var(--jade-8);--accent-9: var(--jade-9);--accent-10: var(--jade-10);--accent-11: var(--jade-11);--accent-12: var(--jade-12);--accent-a1: var(--jade-a1);--accent-a2: var(--jade-a2);--accent-a3: var(--jade-a3);--accent-a4: var(--jade-a4);--accent-a5: var(--jade-a5);--accent-a6: var(--jade-a6);--accent-a7: var(--jade-a7);--accent-a8: var(--jade-a8);--accent-a9: var(--jade-a9);--accent-a10: var(--jade-a10);--accent-a11: var(--jade-a11);--accent-a12: var(--jade-a12);--accent-contrast: var(--jade-contrast);--accent-surface: var(--jade-surface);--accent-indicator: var(--jade-indicator);--accent-track: var(--jade-track)}[data-accent-color=lime]{--accent-1: var(--lime-1);--accent-2: var(--lime-2);--accent-3: var(--lime-3);--accent-4: var(--lime-4);--accent-5: var(--lime-5);--accent-6: var(--lime-6);--accent-7: var(--lime-7);--accent-8: var(--lime-8);--accent-9: var(--lime-9);--accent-10: var(--lime-10);--accent-11: var(--lime-11);--accent-12: var(--lime-12);--accent-a1: var(--lime-a1);--accent-a2: var(--lime-a2);--accent-a3: var(--lime-a3);--accent-a4: var(--lime-a4);--accent-a5: var(--lime-a5);--accent-a6: var(--lime-a6);--accent-a7: var(--lime-a7);--accent-a8: var(--lime-a8);--accent-a9: var(--lime-a9);--accent-a10: var(--lime-a10);--accent-a11: var(--lime-a11);--accent-a12: var(--lime-a12);--accent-contrast: var(--lime-contrast);--accent-surface: var(--lime-surface);--accent-indicator: var(--lime-indicator);--accent-track: var(--lime-track)}[data-accent-color=mint]{--accent-1: var(--mint-1);--accent-2: var(--mint-2);--accent-3: var(--mint-3);--accent-4: var(--mint-4);--accent-5: var(--mint-5);--accent-6: var(--mint-6);--accent-7: var(--mint-7);--accent-8: var(--mint-8);--accent-9: var(--mint-9);--accent-10: var(--mint-10);--accent-11: var(--mint-11);--accent-12: var(--mint-12);--accent-a1: var(--mint-a1);--accent-a2: var(--mint-a2);--accent-a3: var(--mint-a3);--accent-a4: var(--mint-a4);--accent-a5: var(--mint-a5);--accent-a6: var(--mint-a6);--accent-a7: var(--mint-a7);--accent-a8: var(--mint-a8);--accent-a9: var(--mint-a9);--accent-a10: var(--mint-a10);--accent-a11: var(--mint-a11);--accent-a12: var(--mint-a12);--accent-contrast: var(--mint-contrast);--accent-surface: var(--mint-surface);--accent-indicator: var(--mint-indicator);--accent-track: var(--mint-track)}[data-accent-color=orange]{--accent-1: var(--orange-1);--accent-2: var(--orange-2);--accent-3: var(--orange-3);--accent-4: var(--orange-4);--accent-5: var(--orange-5);--accent-6: var(--orange-6);--accent-7: var(--orange-7);--accent-8: var(--orange-8);--accent-9: var(--orange-9);--accent-10: var(--orange-10);--accent-11: var(--orange-11);--accent-12: var(--orange-12);--accent-a1: var(--orange-a1);--accent-a2: var(--orange-a2);--accent-a3: var(--orange-a3);--accent-a4: var(--orange-a4);--accent-a5: var(--orange-a5);--accent-a6: var(--orange-a6);--accent-a7: var(--orange-a7);--accent-a8: var(--orange-a8);--accent-a9: var(--orange-a9);--accent-a10: var(--orange-a10);--accent-a11: var(--orange-a11);--accent-a12: var(--orange-a12);--accent-contrast: var(--orange-contrast);--accent-surface: var(--orange-surface);--accent-indicator: var(--orange-indicator);--accent-track: var(--orange-track)}[data-accent-color=pink]{--accent-1: var(--pink-1);--accent-2: var(--pink-2);--accent-3: var(--pink-3);--accent-4: var(--pink-4);--accent-5: var(--pink-5);--accent-6: var(--pink-6);--accent-7: var(--pink-7);--accent-8: var(--pink-8);--accent-9: var(--pink-9);--accent-10: var(--pink-10);--accent-11: var(--pink-11);--accent-12: var(--pink-12);--accent-a1: var(--pink-a1);--accent-a2: var(--pink-a2);--accent-a3: var(--pink-a3);--accent-a4: var(--pink-a4);--accent-a5: var(--pink-a5);--accent-a6: var(--pink-a6);--accent-a7: var(--pink-a7);--accent-a8: var(--pink-a8);--accent-a9: var(--pink-a9);--accent-a10: var(--pink-a10);--accent-a11: var(--pink-a11);--accent-a12: var(--pink-a12);--accent-contrast: var(--pink-contrast);--accent-surface: var(--pink-surface);--accent-indicator: var(--pink-indicator);--accent-track: var(--pink-track)}[data-accent-color=plum]{--accent-1: var(--plum-1);--accent-2: var(--plum-2);--accent-3: var(--plum-3);--accent-4: var(--plum-4);--accent-5: var(--plum-5);--accent-6: var(--plum-6);--accent-7: var(--plum-7);--accent-8: var(--plum-8);--accent-9: var(--plum-9);--accent-10: var(--plum-10);--accent-11: var(--plum-11);--accent-12: var(--plum-12);--accent-a1: var(--plum-a1);--accent-a2: var(--plum-a2);--accent-a3: var(--plum-a3);--accent-a4: var(--plum-a4);--accent-a5: var(--plum-a5);--accent-a6: var(--plum-a6);--accent-a7: var(--plum-a7);--accent-a8: var(--plum-a8);--accent-a9: var(--plum-a9);--accent-a10: var(--plum-a10);--accent-a11: var(--plum-a11);--accent-a12: var(--plum-a12);--accent-contrast: var(--plum-contrast);--accent-surface: var(--plum-surface);--accent-indicator: var(--plum-indicator);--accent-track: var(--plum-track)}[data-accent-color=purple]{--accent-1: var(--purple-1);--accent-2: var(--purple-2);--accent-3: var(--purple-3);--accent-4: var(--purple-4);--accent-5: var(--purple-5);--accent-6: var(--purple-6);--accent-7: var(--purple-7);--accent-8: var(--purple-8);--accent-9: var(--purple-9);--accent-10: var(--purple-10);--accent-11: var(--purple-11);--accent-12: var(--purple-12);--accent-a1: var(--purple-a1);--accent-a2: var(--purple-a2);--accent-a3: var(--purple-a3);--accent-a4: var(--purple-a4);--accent-a5: var(--purple-a5);--accent-a6: var(--purple-a6);--accent-a7: var(--purple-a7);--accent-a8: var(--purple-a8);--accent-a9: var(--purple-a9);--accent-a10: var(--purple-a10);--accent-a11: var(--purple-a11);--accent-a12: var(--purple-a12);--accent-contrast: var(--purple-contrast);--accent-surface: var(--purple-surface);--accent-indicator: var(--purple-indicator);--accent-track: var(--purple-track)}[data-accent-color=red]{--accent-1: var(--red-1);--accent-2: var(--red-2);--accent-3: var(--red-3);--accent-4: var(--red-4);--accent-5: var(--red-5);--accent-6: var(--red-6);--accent-7: var(--red-7);--accent-8: var(--red-8);--accent-9: var(--red-9);--accent-10: var(--red-10);--accent-11: var(--red-11);--accent-12: var(--red-12);--accent-a1: var(--red-a1);--accent-a2: var(--red-a2);--accent-a3: var(--red-a3);--accent-a4: var(--red-a4);--accent-a5: var(--red-a5);--accent-a6: var(--red-a6);--accent-a7: var(--red-a7);--accent-a8: var(--red-a8);--accent-a9: var(--red-a9);--accent-a10: var(--red-a10);--accent-a11: var(--red-a11);--accent-a12: var(--red-a12);--accent-contrast: var(--red-contrast);--accent-surface: var(--red-surface);--accent-indicator: var(--red-indicator);--accent-track: var(--red-track)}[data-accent-color=ruby]{--accent-1: var(--ruby-1);--accent-2: var(--ruby-2);--accent-3: var(--ruby-3);--accent-4: var(--ruby-4);--accent-5: var(--ruby-5);--accent-6: var(--ruby-6);--accent-7: var(--ruby-7);--accent-8: var(--ruby-8);--accent-9: var(--ruby-9);--accent-10: var(--ruby-10);--accent-11: var(--ruby-11);--accent-12: var(--ruby-12);--accent-a1: var(--ruby-a1);--accent-a2: var(--ruby-a2);--accent-a3: var(--ruby-a3);--accent-a4: var(--ruby-a4);--accent-a5: var(--ruby-a5);--accent-a6: var(--ruby-a6);--accent-a7: var(--ruby-a7);--accent-a8: var(--ruby-a8);--accent-a9: var(--ruby-a9);--accent-a10: var(--ruby-a10);--accent-a11: var(--ruby-a11);--accent-a12: var(--ruby-a12);--accent-contrast: var(--ruby-contrast);--accent-surface: var(--ruby-surface);--accent-indicator: var(--ruby-indicator);--accent-track: var(--ruby-track)}[data-accent-color=sky]{--accent-1: var(--sky-1);--accent-2: var(--sky-2);--accent-3: var(--sky-3);--accent-4: var(--sky-4);--accent-5: var(--sky-5);--accent-6: var(--sky-6);--accent-7: var(--sky-7);--accent-8: var(--sky-8);--accent-9: var(--sky-9);--accent-10: var(--sky-10);--accent-11: var(--sky-11);--accent-12: var(--sky-12);--accent-a1: var(--sky-a1);--accent-a2: var(--sky-a2);--accent-a3: var(--sky-a3);--accent-a4: var(--sky-a4);--accent-a5: var(--sky-a5);--accent-a6: var(--sky-a6);--accent-a7: var(--sky-a7);--accent-a8: var(--sky-a8);--accent-a9: var(--sky-a9);--accent-a10: var(--sky-a10);--accent-a11: var(--sky-a11);--accent-a12: var(--sky-a12);--accent-contrast: var(--sky-contrast);--accent-surface: var(--sky-surface);--accent-indicator: var(--sky-indicator);--accent-track: var(--sky-track)}[data-accent-color=teal]{--accent-1: var(--teal-1);--accent-2: var(--teal-2);--accent-3: var(--teal-3);--accent-4: var(--teal-4);--accent-5: var(--teal-5);--accent-6: var(--teal-6);--accent-7: var(--teal-7);--accent-8: var(--teal-8);--accent-9: var(--teal-9);--accent-10: var(--teal-10);--accent-11: var(--teal-11);--accent-12: var(--teal-12);--accent-a1: var(--teal-a1);--accent-a2: var(--teal-a2);--accent-a3: var(--teal-a3);--accent-a4: var(--teal-a4);--accent-a5: var(--teal-a5);--accent-a6: var(--teal-a6);--accent-a7: var(--teal-a7);--accent-a8: var(--teal-a8);--accent-a9: var(--teal-a9);--accent-a10: var(--teal-a10);--accent-a11: var(--teal-a11);--accent-a12: var(--teal-a12);--accent-contrast: var(--teal-contrast);--accent-surface: var(--teal-surface);--accent-indicator: var(--teal-indicator);--accent-track: var(--teal-track)}[data-accent-color=tomato]{--accent-1: var(--tomato-1);--accent-2: var(--tomato-2);--accent-3: var(--tomato-3);--accent-4: var(--tomato-4);--accent-5: var(--tomato-5);--accent-6: var(--tomato-6);--accent-7: var(--tomato-7);--accent-8: var(--tomato-8);--accent-9: var(--tomato-9);--accent-10: var(--tomato-10);--accent-11: var(--tomato-11);--accent-12: var(--tomato-12);--accent-a1: var(--tomato-a1);--accent-a2: var(--tomato-a2);--accent-a3: var(--tomato-a3);--accent-a4: var(--tomato-a4);--accent-a5: var(--tomato-a5);--accent-a6: var(--tomato-a6);--accent-a7: var(--tomato-a7);--accent-a8: var(--tomato-a8);--accent-a9: var(--tomato-a9);--accent-a10: var(--tomato-a10);--accent-a11: var(--tomato-a11);--accent-a12: var(--tomato-a12);--accent-contrast: var(--tomato-contrast);--accent-surface: var(--tomato-surface);--accent-indicator: var(--tomato-indicator);--accent-track: var(--tomato-track)}[data-accent-color=violet]{--accent-1: var(--violet-1);--accent-2: var(--violet-2);--accent-3: var(--violet-3);--accent-4: var(--violet-4);--accent-5: var(--violet-5);--accent-6: var(--violet-6);--accent-7: var(--violet-7);--accent-8: var(--violet-8);--accent-9: var(--violet-9);--accent-10: var(--violet-10);--accent-11: var(--violet-11);--accent-12: var(--violet-12);--accent-a1: var(--violet-a1);--accent-a2: var(--violet-a2);--accent-a3: var(--violet-a3);--accent-a4: var(--violet-a4);--accent-a5: var(--violet-a5);--accent-a6: var(--violet-a6);--accent-a7: var(--violet-a7);--accent-a8: var(--violet-a8);--accent-a9: var(--violet-a9);--accent-a10: var(--violet-a10);--accent-a11: var(--violet-a11);--accent-a12: var(--violet-a12);--accent-contrast: var(--violet-contrast);--accent-surface: var(--violet-surface);--accent-indicator: var(--violet-indicator);--accent-track: var(--violet-track)}[data-accent-color=yellow]{--accent-1: var(--yellow-1);--accent-2: var(--yellow-2);--accent-3: var(--yellow-3);--accent-4: var(--yellow-4);--accent-5: var(--yellow-5);--accent-6: var(--yellow-6);--accent-7: var(--yellow-7);--accent-8: var(--yellow-8);--accent-9: var(--yellow-9);--accent-10: var(--yellow-10);--accent-11: var(--yellow-11);--accent-12: var(--yellow-12);--accent-a1: var(--yellow-a1);--accent-a2: var(--yellow-a2);--accent-a3: var(--yellow-a3);--accent-a4: var(--yellow-a4);--accent-a5: var(--yellow-a5);--accent-a6: var(--yellow-a6);--accent-a7: var(--yellow-a7);--accent-a8: var(--yellow-a8);--accent-a9: var(--yellow-a9);--accent-a10: var(--yellow-a10);--accent-a11: var(--yellow-a11);--accent-a12: var(--yellow-a12);--accent-contrast: var(--yellow-contrast);--accent-surface: var(--yellow-surface);--accent-indicator: var(--yellow-indicator);--accent-track: var(--yellow-track)}.radix-themes:where([data-gray-color=mauve]){--gray-1: var(--mauve-1);--gray-2: var(--mauve-2);--gray-3: var(--mauve-3);--gray-4: var(--mauve-4);--gray-5: var(--mauve-5);--gray-6: var(--mauve-6);--gray-7: var(--mauve-7);--gray-8: var(--mauve-8);--gray-9: var(--mauve-9);--gray-10: var(--mauve-10);--gray-11: var(--mauve-11);--gray-12: var(--mauve-12);--gray-a1: var(--mauve-a1);--gray-a2: var(--mauve-a2);--gray-a3: var(--mauve-a3);--gray-a4: var(--mauve-a4);--gray-a5: var(--mauve-a5);--gray-a6: var(--mauve-a6);--gray-a7: var(--mauve-a7);--gray-a8: var(--mauve-a8);--gray-a9: var(--mauve-a9);--gray-a10: var(--mauve-a10);--gray-a11: var(--mauve-a11);--gray-a12: var(--mauve-a12);--gray-contrast: var(--mauve-contrast);--gray-surface: var(--mauve-surface);--gray-indicator: var(--mauve-indicator);--gray-track: var(--mauve-track)}.radix-themes:where([data-gray-color=olive]){--gray-1: var(--olive-1);--gray-2: var(--olive-2);--gray-3: var(--olive-3);--gray-4: var(--olive-4);--gray-5: var(--olive-5);--gray-6: var(--olive-6);--gray-7: var(--olive-7);--gray-8: var(--olive-8);--gray-9: var(--olive-9);--gray-10: var(--olive-10);--gray-11: var(--olive-11);--gray-12: var(--olive-12);--gray-a1: var(--olive-a1);--gray-a2: var(--olive-a2);--gray-a3: var(--olive-a3);--gray-a4: var(--olive-a4);--gray-a5: var(--olive-a5);--gray-a6: var(--olive-a6);--gray-a7: var(--olive-a7);--gray-a8: var(--olive-a8);--gray-a9: var(--olive-a9);--gray-a10: var(--olive-a10);--gray-a11: var(--olive-a11);--gray-a12: var(--olive-a12);--gray-contrast: var(--olive-contrast);--gray-surface: var(--olive-surface);--gray-indicator: var(--olive-indicator);--gray-track: var(--olive-track)}.radix-themes:where([data-gray-color=sage]){--gray-1: var(--sage-1);--gray-2: var(--sage-2);--gray-3: var(--sage-3);--gray-4: var(--sage-4);--gray-5: var(--sage-5);--gray-6: var(--sage-6);--gray-7: var(--sage-7);--gray-8: var(--sage-8);--gray-9: var(--sage-9);--gray-10: var(--sage-10);--gray-11: var(--sage-11);--gray-12: var(--sage-12);--gray-a1: var(--sage-a1);--gray-a2: var(--sage-a2);--gray-a3: var(--sage-a3);--gray-a4: var(--sage-a4);--gray-a5: var(--sage-a5);--gray-a6: var(--sage-a6);--gray-a7: var(--sage-a7);--gray-a8: var(--sage-a8);--gray-a9: var(--sage-a9);--gray-a10: var(--sage-a10);--gray-a11: var(--sage-a11);--gray-a12: var(--sage-a12);--gray-contrast: var(--sage-contrast);--gray-surface: var(--sage-surface);--gray-indicator: var(--sage-indicator);--gray-track: var(--sage-track)}.radix-themes:where([data-gray-color=sand]){--gray-1: var(--sand-1);--gray-2: var(--sand-2);--gray-3: var(--sand-3);--gray-4: var(--sand-4);--gray-5: var(--sand-5);--gray-6: var(--sand-6);--gray-7: var(--sand-7);--gray-8: var(--sand-8);--gray-9: var(--sand-9);--gray-10: var(--sand-10);--gray-11: var(--sand-11);--gray-12: var(--sand-12);--gray-a1: var(--sand-a1);--gray-a2: var(--sand-a2);--gray-a3: var(--sand-a3);--gray-a4: var(--sand-a4);--gray-a5: var(--sand-a5);--gray-a6: var(--sand-a6);--gray-a7: var(--sand-a7);--gray-a8: var(--sand-a8);--gray-a9: var(--sand-a9);--gray-a10: var(--sand-a10);--gray-a11: var(--sand-a11);--gray-a12: var(--sand-a12);--gray-contrast: var(--sand-contrast);--gray-surface: var(--sand-surface);--gray-indicator: var(--sand-indicator);--gray-track: var(--sand-track)}.radix-themes:where([data-gray-color=slate]){--gray-1: var(--slate-1);--gray-2: var(--slate-2);--gray-3: var(--slate-3);--gray-4: var(--slate-4);--gray-5: var(--slate-5);--gray-6: var(--slate-6);--gray-7: var(--slate-7);--gray-8: var(--slate-8);--gray-9: var(--slate-9);--gray-10: var(--slate-10);--gray-11: var(--slate-11);--gray-12: var(--slate-12);--gray-a1: var(--slate-a1);--gray-a2: var(--slate-a2);--gray-a3: var(--slate-a3);--gray-a4: var(--slate-a4);--gray-a5: var(--slate-a5);--gray-a6: var(--slate-a6);--gray-a7: var(--slate-a7);--gray-a8: var(--slate-a8);--gray-a9: var(--slate-a9);--gray-a10: var(--slate-a10);--gray-a11: var(--slate-a11);--gray-a12: var(--slate-a12);--gray-contrast: var(--slate-contrast);--gray-surface: var(--slate-surface);--gray-indicator: var(--slate-indicator);--gray-track: var(--slate-track)}.radix-themes{--cursor-button: default;--cursor-checkbox: default;--cursor-disabled: not-allowed;--cursor-link: pointer;--cursor-menu-item: default;--cursor-radio: default;--cursor-slider-thumb: default;--cursor-slider-thumb-active: default;--cursor-switch: default;--space-1: calc(4px * var(--scaling));--space-2: calc(8px * var(--scaling));--space-3: calc(12px * var(--scaling));--space-4: calc(16px * var(--scaling));--space-5: calc(24px * var(--scaling));--space-6: calc(32px * var(--scaling));--space-7: calc(40px * var(--scaling));--space-8: calc(48px * var(--scaling));--space-9: calc(64px * var(--scaling));--font-size-1: calc(12px * var(--scaling));--font-size-2: calc(14px * var(--scaling));--font-size-3: calc(16px * var(--scaling));--font-size-4: calc(18px * var(--scaling));--font-size-5: calc(20px * var(--scaling));--font-size-6: calc(24px * var(--scaling));--font-size-7: calc(28px * var(--scaling));--font-size-8: calc(35px * var(--scaling));--font-size-9: calc(60px * var(--scaling));--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--line-height-1: calc(16px * var(--scaling));--line-height-2: calc(20px * var(--scaling));--line-height-3: calc(24px * var(--scaling));--line-height-4: calc(26px * var(--scaling));--line-height-5: calc(28px * var(--scaling));--line-height-6: calc(30px * var(--scaling));--line-height-7: calc(36px * var(--scaling));--line-height-8: calc(40px * var(--scaling));--line-height-9: calc(60px * var(--scaling));--letter-spacing-1: .0025em;--letter-spacing-2: 0em;--letter-spacing-3: 0em;--letter-spacing-4: -.0025em;--letter-spacing-5: -.005em;--letter-spacing-6: -.00625em;--letter-spacing-7: -.0075em;--letter-spacing-8: -.01em;--letter-spacing-9: -.025em;--default-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI (Custom)", Roboto, "Helvetica Neue", "Open Sans (Custom)", system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--default-font-size: var(--font-size-3);--default-font-style: normal;--default-font-weight: var(--font-weight-regular);--default-line-height: 1.5;--default-letter-spacing: 0em;--default-leading-trim-start: .42em;--default-leading-trim-end: .36em;--heading-font-family: var(--default-font-family);--heading-font-size-adjust: 1;--heading-font-style: normal;--heading-leading-trim-start: var(--default-leading-trim-start);--heading-leading-trim-end: var(--default-leading-trim-end);--heading-letter-spacing: 0em;--heading-line-height-1: calc(16px * var(--scaling));--heading-line-height-2: calc(18px * var(--scaling));--heading-line-height-3: calc(22px * var(--scaling));--heading-line-height-4: calc(24px * var(--scaling));--heading-line-height-5: calc(26px * var(--scaling));--heading-line-height-6: calc(30px * var(--scaling));--heading-line-height-7: calc(36px * var(--scaling));--heading-line-height-8: calc(40px * var(--scaling));--heading-line-height-9: calc(60px * var(--scaling));--code-font-family: "Menlo", "Consolas (Custom)", "Bitstream Vera Sans Mono", monospace, "Apple Color Emoji", "Segoe UI Emoji";--code-font-size-adjust: .95;--code-font-style: normal;--code-font-weight: inherit;--code-letter-spacing: -.007em;--code-padding-top: .1em;--code-padding-bottom: .1em;--code-padding-left: .25em;--code-padding-right: .25em;--strong-font-family: var(--default-font-family);--strong-font-size-adjust: 1;--strong-font-style: inherit;--strong-font-weight: var(--font-weight-bold);--strong-letter-spacing: 0em;--em-font-family: "Times New Roman", "Times", serif;--em-font-size-adjust: 1.18;--em-font-style: italic;--em-font-weight: inherit;--em-letter-spacing: -.025em;--quote-font-family: "Times New Roman", "Times", serif;--quote-font-size-adjust: 1.18;--quote-font-style: italic;--quote-font-weight: inherit;--quote-letter-spacing: -.025em;--tab-active-letter-spacing: -.01em;--tab-active-word-spacing: 0em;--tab-inactive-letter-spacing: 0em;--tab-inactive-word-spacing: 0em;overflow-wrap:break-word;font-family:var(--default-font-family);font-size:var(--default-font-size);font-weight:var(--default-font-weight);font-style:var(--default-font-style);line-height:var(--default-line-height);letter-spacing:var(--default-letter-spacing);-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--container-1: 448px;--container-2: 688px;--container-3: 880px;--container-4: 1136px;--scrollarea-scrollbar-horizontal-margin-top: var(--space-1);--scrollarea-scrollbar-horizontal-margin-bottom: var(--space-1);--scrollarea-scrollbar-horizontal-margin-left: var(--space-1);--scrollarea-scrollbar-horizontal-margin-right: var(--space-1);--scrollarea-scrollbar-vertical-margin-top: var(--space-1);--scrollarea-scrollbar-vertical-margin-bottom: var(--space-1);--scrollarea-scrollbar-vertical-margin-left: var(--space-1);--scrollarea-scrollbar-vertical-margin-right: var(--space-1);--segmented-control-transition-duration: .1s;--spinner-animation-duration: .8s;--spinner-opacity: .65;color:var(--gray-12)}.radix-themes:where([data-scaling="90%"]){--scaling: .9}.radix-themes:where([data-scaling="95%"]){--scaling: .95}.radix-themes:where([data-scaling="100%"]){--scaling: 1}.radix-themes:where([data-scaling="105%"]){--scaling: 1.05}.radix-themes:where([data-scaling="110%"]){--scaling: 1.1}[data-radius]{--radius-1: calc(3px * var(--scaling) * var(--radius-factor));--radius-2: calc(4px * var(--scaling) * var(--radius-factor));--radius-3: calc(6px * var(--scaling) * var(--radius-factor));--radius-4: calc(8px * var(--scaling) * var(--radius-factor));--radius-5: calc(12px * var(--scaling) * var(--radius-factor));--radius-6: calc(16px * var(--scaling) * var(--radius-factor))}[data-radius=none]{--radius-factor: 0;--radius-full: 0px;--radius-thumb: .5px}[data-radius=small]{--radius-factor: .75;--radius-full: 0px;--radius-thumb: .5px}[data-radius=medium]{--radius-factor: 1;--radius-full: 0px;--radius-thumb: 9999px}[data-radius=large]{--radius-factor: 1.5;--radius-full: 0px;--radius-thumb: 9999px}[data-radius=full]{--radius-factor: 1.5;--radius-full: 9999px;--radius-thumb: 9999px}@supports (color: color-mix(in oklab,white,black)){:where(.radix-themes){--shadow-1: inset 0 0 0 1px var(--gray-a5), inset 0 1.5px 2px 0 var(--gray-a2), inset 0 1.5px 2px 0 var(--black-a2);--shadow-2: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--shadow-3: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 2px 3px -2px var(--gray-a3), 0 3px 12px -4px var(--black-a2), 0 4px 16px -8px var(--black-a2);--shadow-4: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 8px 40px var(--black-a1), 0 12px 32px -16px var(--gray-a3);--shadow-5: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 12px 60px var(--black-a3), 0 12px 32px -16px var(--gray-a5);--shadow-6: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 12px 60px var(--black-a3), 0 16px 64px var(--gray-a2), 0 16px 36px -20px var(--gray-a7);--base-card-surface-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a5), var(--gray-5) 25%);--base-card-surface-hover-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a7), var(--gray-7) 25%);--base-card-surface-active-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%);--base-card-classic-border-color: color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%);--base-card-classic-hover-border-color: color-mix(in oklab, var(--gray-a4), var(--gray-4) 25%);--base-card-classic-active-border-color: color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%)}}@supports (color: color-mix(in oklab,white,black)){:is(.dark,.dark-theme),:is(.dark,.dark-theme) :where(.radix-themes:not(.light,.light-theme)){--shadow-1: inset 0 -1px 1px 0 var(--gray-a3), inset 0 0 0 1px var(--gray-a3), inset 0 3px 4px 0 var(--black-a5), inset 0 0 0 1px var(--gray-a4);--shadow-2: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--shadow-3: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 2px 3px -2px var(--black-a3), 0 3px 8px -2px var(--black-a6), 0 4px 12px -4px var(--black-a7);--shadow-4: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 8px 40px var(--black-a3), 0 12px 32px -16px var(--black-a5);--shadow-5: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 12px 60px var(--black-a5), 0 12px 32px -16px var(--black-a7);--shadow-6: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 12px 60px var(--black-a4), 0 16px 64px var(--black-a6), 0 16px 36px -20px var(--black-a11);--base-card-classic-border-color: color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%);--base-card-classic-hover-border-color: color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%);--base-card-classic-active-border-color: color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%)}}@font-face{font-family:"Segoe UI (Custom)";font-weight:300;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semilight"),local("Segoe UI")}@font-face{font-family:"Segoe UI (Custom)";font-weight:300;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semilight Italic"),local("Segoe UI Italic")}@font-face{font-family:"Segoe UI (Custom)";font-weight:400;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI")}@font-face{font-family:"Segoe UI (Custom)";font-weight:400;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Italic")}@font-face{font-family:"Segoe UI (Custom)";font-weight:500;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semibold"),local("Segoe UI")}@font-face{font-family:"Segoe UI (Custom)";font-weight:500;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semibold Italic"),local("Segoe UI Italic")}@font-face{font-family:"Segoe UI (Custom)";font-weight:700;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Bold")}@font-face{font-family:"Segoe UI (Custom)";font-weight:700;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Bold Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:300;descent-override:35%;src:local("Open Sans Light"),local("Open Sans Regular")}@font-face{font-family:"Open Sans (Custom)";font-weight:300;font-style:italic;descent-override:35%;src:local("Open Sans Light Italic"),local("Open Sans Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:400;descent-override:35%;src:local("Open Sans Regular")}@font-face{font-family:"Open Sans (Custom)";font-weight:400;font-style:italic;descent-override:35%;src:local("Open Sans Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:500;descent-override:35%;src:local("Open Sans Medium"),local("Open Sans Regular")}@font-face{font-family:"Open Sans (Custom)";font-weight:500;font-style:italic;descent-override:35%;src:local("Open Sans Medium Italic"),local("Open Sans Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:700;descent-override:35%;src:local("Open Sans Bold")}@font-face{font-family:"Open Sans (Custom)";font-weight:700;font-style:italic;descent-override:35%;src:local("Open Sans Bold Italic")}@font-face{font-family:"Consolas (Custom)";font-weight:400;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas")}@font-face{font-family:"Consolas (Custom)";font-weight:400;font-style:italic;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas Italic")}@font-face{font-family:"Consolas (Custom)";font-weight:700;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas Bold")}@font-face{font-family:"Consolas (Custom)";font-weight:700;font-style:italic;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas Bold Italic")}.rt-reset:where(body,blockquote,dl,dd,figure,p){margin:0}.rt-reset:where(address,b,cite,code,dfn,em,i,kbd,q,samp,small,strong,var){font:unset}.rt-reset:where(h1,h2,h3,h4,h5,h6){font:unset;margin:0}.rt-reset:where(a){all:unset;-webkit-tap-highlight-color:transparent}.rt-reset:where(button,select,[type=button],[type=image],[type=reset],[type=submit],[type=checkbox],[type=color],[type=radio],[type=range]){all:unset;display:inline-block;font-weight:400;font-style:normal;text-indent:initial;-webkit-tap-highlight-color:transparent}.rt-reset:where(label){-webkit-tap-highlight-color:transparent}.rt-reset:where(select){font-weight:400;font-style:normal;text-align:start}.rt-reset:where(textarea,input:not([type=button],[type=image],[type=reset],[type=submit],[type=checkbox],[type=color],[type=radio],[type=range])){all:unset;display:block;width:-webkit-fill-available;width:-moz-available;width:stretch;font-weight:400;font-style:normal;text-align:start;text-indent:initial;-webkit-tap-highlight-color:transparent;cursor:text;white-space:pre-wrap}.rt-reset:where(:focus){outline:none}.rt-reset::placeholder{color:unset;opacity:unset;-webkit-user-select:none;user-select:none}.rt-reset:where(table){all:unset;display:table;text-indent:initial}.rt-reset:where(caption){text-align:inherit}.rt-reset:where(td){padding:0}.rt-reset:where(th){font-weight:unset;text-align:inherit;padding:0}.rt-reset:where(abbr,acronym){text-decoration:none}.rt-reset:where(canvas,object,picture,summary){display:block}.rt-reset:where(del,s){text-decoration:unset}.rt-reset:where(fieldset,hr){all:unset;display:block}.rt-reset:where(legend){padding:0;border:none;cursor:default}.rt-reset:where(li){display:block;text-align:unset}.rt-reset:where(ol,ul){list-style:none;margin:0;padding:0}.rt-reset:where(iframe){display:block;border:none;width:-webkit-fill-available;width:-moz-available;width:stretch}.rt-reset:where(ins,u){text-decoration:none}.rt-reset:where(img){display:block;max-width:100%}.rt-reset:where(svg){display:block;max-width:100%;flex-shrink:0}.rt-reset:where(mark){all:unset}.rt-reset:where(pre){font:unset;margin:unset}.rt-reset:where(q):before,.rt-reset:where(q):after{content:""}.rt-reset:where(sub,sup){font:unset;vertical-align:unset}.rt-reset:where(details) ::marker,.rt-reset:where(summary)::marker{content:none}.rt-reset:where(video){display:block;width:-webkit-fill-available;width:-moz-available;width:stretch}.rt-reset:where(:any-link){cursor:var(--cursor-link)}.rt-reset:where(button){cursor:var(--cursor-button)}.rt-reset:where(:disabled,[data-disabled]){cursor:var(--cursor-disabled)}.rt-reset:where(input[type=checkbox]){cursor:var(--cursor-checkbox)}.rt-reset:where(input[type=radio]){cursor:var(--cursor-radio)}.rt-reset,.rt-reset:before,.rt-reset:after{box-sizing:border-box}@keyframes rt-fade-in{0%{opacity:0}to{opacity:1}}@keyframes rt-fade-out{0%{opacity:1}to{opacity:0}}@keyframes rt-slide-from-top{0%{transform:translateY(4px) scale(.97)}to{transform:translateY(0) scale(1)}}@keyframes rt-slide-to-top{0%{transform:translateY(0) scale(1)}to{transform:translateY(4px) scale(.97)}}@keyframes rt-slide-from-bottom{0%{transform:translateY(-4px) scale(.97)}to{transform:translateY(0) scale(1)}}@keyframes rt-slide-to-bottom{0%{transform:translateY(0) scale(1)}to{transform:translateY(-4px) scale(.97)}}@keyframes rt-slide-from-left{0%{transform:translate(4px) scale(.97)}to{transform:translate(0) scale(1)}}@keyframes rt-slide-to-left{0%{transform:translate(0) scale(1)}to{transform:translate(4px) scale(.97)}}@keyframes rt-slide-from-right{0%{transform:translate(-4px) scale(.97)}to{transform:translate(0) scale(1)}}@keyframes rt-slide-to-right{0%{transform:translate(0) scale(1)}to{transform:translate(-4px) scale(.97)}}@media (prefers-reduced-motion: no-preference){.rt-PopperContent{animation-timing-function:cubic-bezier(.16,1,.3,1)}.rt-PopperContent:where([data-state=open]){animation-duration:.16s}.rt-PopperContent:where([data-state=open]):where([data-side=top]){animation-name:rt-slide-from-top,rt-fade-in}.rt-PopperContent:where([data-state=open]):where([data-side=bottom]){animation-name:rt-slide-from-bottom,rt-fade-in}.rt-PopperContent:where([data-state=open]):where([data-side=left]){animation-name:rt-slide-from-left,rt-fade-in}.rt-PopperContent:where([data-state=open]):where([data-side=right]){animation-name:rt-slide-from-right,rt-fade-in}.rt-PopperContent:where([data-state=closed]){animation-duration:.1s}.rt-PopperContent:where([data-state=closed]):where([data-side=top]){animation-name:rt-slide-to-top,rt-fade-out}.rt-PopperContent:where([data-state=closed]):where([data-side=bottom]){animation-name:rt-slide-to-bottom,rt-fade-out}.rt-PopperContent:where([data-state=closed]):where([data-side=left]){animation-name:rt-slide-to-left,rt-fade-out}.rt-PopperContent:where([data-state=closed]):where([data-side=right]){animation-name:rt-slide-to-right,rt-fade-out}}.rt-Box{box-sizing:border-box;display:block}.rt-Flex{box-sizing:border-box;display:flex;justify-content:flex-start}.rt-Grid{box-sizing:border-box;display:grid;align-items:stretch;justify-content:flex-start;grid-template-columns:minmax(0,1fr);grid-template-rows:none}.rt-Section{box-sizing:border-box;flex-shrink:0}.rt-Section:where(.rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}@media (min-width: 520px){.rt-Section:where(.xs\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.xs\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.xs\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.xs\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 768px){.rt-Section:where(.sm\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.sm\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.sm\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.sm\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 1024px){.rt-Section:where(.md\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.md\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.md\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.md\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 1280px){.rt-Section:where(.lg\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.lg\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.lg\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.lg\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 1640px){.rt-Section:where(.xl\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.xl\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.xl\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.xl\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}.rt-Container{display:flex;box-sizing:border-box;flex-direction:column;align-items:center;flex-shrink:0;flex-grow:1}.rt-ContainerInner{width:100%}:where(.rt-Container.rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}@media (min-width: 520px){:where(.rt-Container.xs\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.xs\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.xs\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.xs\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 768px){:where(.rt-Container.sm\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.sm\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.sm\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.sm\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 1024px){:where(.rt-Container.md\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.md\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.md\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.md\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 1280px){:where(.rt-Container.lg\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.lg\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.lg\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.lg\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 1640px){:where(.rt-Container.xl\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.xl\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.xl\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.xl\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}.rt-Skeleton{--skeleton-radius: var(--skeleton-radius-override);--skeleton-height: var(--skeleton-height-override);border-radius:var(--radius-1);animation:rt-skeleton-pulse 1s infinite alternate-reverse!important;background-image:none!important;background-clip:border-box!important;border:none!important;box-shadow:none!important;-webkit-box-decoration-break:clone!important;box-decoration-break:clone!important;color:transparent!important;outline:none!important;pointer-events:none!important;-webkit-user-select:none!important;user-select:none!important;cursor:default!important}.rt-Skeleton:where([data-inline-skeleton]){line-height:0;font-family:Arial,sans-serif!important}:where(.rt-Skeleton:empty){display:block;height:var(--space-3)}.rt-Skeleton>*,.rt-Skeleton:after,.rt-Skeleton:before{visibility:hidden!important}@keyframes rt-skeleton-pulse{0%{background-color:var(--gray-a3)}to{background-color:var(--gray-a4)}}.rt-Text{line-height:var(--line-height, var(--default-line-height));letter-spacing:var(--letter-spacing, inherit)}:where(.rt-Text){margin:0}.rt-Text:where([data-accent-color]){color:var(--accent-a11)}.rt-Text:where([data-accent-color].rt-high-contrast),:where([data-accent-color]:not(.radix-themes)) .rt-Text:where(.rt-high-contrast){color:var(--accent-12)}@media (pointer: coarse){.rt-Text:where(label){-webkit-tap-highlight-color:transparent}.rt-Text:where(label):where(:active){outline:.75em solid var(--gray-a4);outline-offset:-.6em}}.rt-Text:where(.rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}@media (min-width: 520px){.rt-Text:where(.xs\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.xs\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.xs\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.xs\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.xs\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.xs\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.xs\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.xs\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 768px){.rt-Text:where(.sm\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.sm\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.sm\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.sm\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.sm\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.sm\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.sm\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.sm\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-Text:where(.md\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.md\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.md\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.md\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.md\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.md\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.md\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.md\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.md\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-Text:where(.lg\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.lg\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.lg\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.lg\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.lg\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.lg\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.lg\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.lg\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-Text:where(.xl\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.xl\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.xl\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.xl\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.xl\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.xl\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.xl\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.xl\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}.rt-BaseDialogOverlay{position:fixed;inset:0}.rt-BaseDialogOverlay:before{position:fixed;content:"";inset:0;background-color:var(--color-overlay)}.rt-BaseDialogScroll{display:flex;overflow:auto;position:absolute;inset:0}.rt-BaseDialogScrollPadding{flex-grow:1;margin:auto;padding-top:var(--space-6);padding-bottom:max(var(--space-6),6vh);padding-left:var(--space-4);padding-right:var(--space-4)}.rt-BaseDialogScrollPadding:where(.rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.rt-r-align-center){margin-top:auto}@media (min-width: 520px){.rt-BaseDialogScrollPadding:where(.xs\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.xs\:rt-r-align-center){margin-top:auto}}@media (min-width: 768px){.rt-BaseDialogScrollPadding:where(.sm\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.sm\:rt-r-align-center){margin-top:auto}}@media (min-width: 1024px){.rt-BaseDialogScrollPadding:where(.md\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.md\:rt-r-align-center){margin-top:auto}}@media (min-width: 1280px){.rt-BaseDialogScrollPadding:where(.lg\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.lg\:rt-r-align-center){margin-top:auto}}@media (min-width: 1640px){.rt-BaseDialogScrollPadding:where(.xl\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.xl\:rt-r-align-center){margin-top:auto}}.rt-BaseDialogContent{margin:auto;width:100%;z-index:1;position:relative;overflow:auto;--inset-padding-top: var(--dialog-content-padding);--inset-padding-right: var(--dialog-content-padding);--inset-padding-bottom: var(--dialog-content-padding);--inset-padding-left: var(--dialog-content-padding);padding:var(--dialog-content-padding);box-sizing:border-box;background-color:var(--color-panel-solid);box-shadow:var(--shadow-6);outline:none}.rt-BaseDialogContent:where(.rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}@media (min-width: 520px){.rt-BaseDialogContent:where(.xs\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xs\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xs\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.xs\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 768px){.rt-BaseDialogContent:where(.sm\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.sm\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.sm\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.sm\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1024px){.rt-BaseDialogContent:where(.md\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.md\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.md\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.md\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1280px){.rt-BaseDialogContent:where(.lg\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.lg\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.lg\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.lg\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1640px){.rt-BaseDialogContent:where(.xl\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xl\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xl\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.xl\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (prefers-reduced-motion: no-preference){@keyframes rt-dialog-overlay-no-op{0%{opacity:1}to{opacity:1}}@keyframes rt-dialog-content-show{0%{opacity:0;transform:translateY(5px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes rt-dialog-content-hide{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(5px) scale(.99)}}.rt-BaseDialogOverlay:where([data-state=closed]){animation:rt-dialog-overlay-no-op .16s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogOverlay:where([data-state=open]):before{animation:rt-fade-in .2s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogOverlay:where([data-state=closed]):before{opacity:0;animation:rt-fade-out .16s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogContent:where([data-state=open]){animation:rt-dialog-content-show .2s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogContent:where([data-state=closed]){opacity:0;animation:rt-dialog-content-hide .1s cubic-bezier(.16,1,.3,1)}}.rt-AvatarRoot{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;-webkit-user-select:none;user-select:none;width:var(--avatar-size);height:var(--avatar-size);flex-shrink:0}.rt-AvatarImage{width:100%;height:100%;object-fit:cover;border-radius:inherit}.rt-AvatarFallback{font-family:var(--default-font-family);font-weight:var(--font-weight-medium);font-style:normal;z-index:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;line-height:1;border-radius:inherit;text-transform:uppercase}.rt-AvatarFallback:where(.rt-one-letter){font-size:var(--avatar-fallback-one-letter-font-size)}.rt-AvatarFallback:where(.rt-two-letters){font-size:var(--avatar-fallback-two-letters-font-size, var(--avatar-fallback-one-letter-font-size))}.rt-AvatarRoot:where(.rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}@media (min-width: 520px){.rt-AvatarRoot:where(.xs\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.xs\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.xs\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.xs\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.xs\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.xs\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xs\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xs\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.xs\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 768px){.rt-AvatarRoot:where(.sm\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.sm\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.sm\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.sm\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.sm\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.sm\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.sm\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.sm\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.sm\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-AvatarRoot:where(.md\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.md\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.md\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.md\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.md\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.md\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.md\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.md\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.md\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-AvatarRoot:where(.lg\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.lg\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.lg\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.lg\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.lg\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.lg\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.lg\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.lg\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.lg\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-AvatarRoot:where(.xl\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.xl\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.xl\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.xl\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.xl\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.xl\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xl\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xl\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.xl\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}.rt-AvatarRoot:where(.rt-variant-solid) :where(.rt-AvatarFallback){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-AvatarRoot:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-AvatarFallback){background-color:var(--accent-12);color:var(--accent-1)}.rt-AvatarRoot:where(.rt-variant-soft) :where(.rt-AvatarFallback){background-color:var(--accent-a3);color:var(--accent-a11)}.rt-AvatarRoot:where(.rt-variant-soft):where(.rt-high-contrast) :where(.rt-AvatarFallback){color:var(--accent-12)}.rt-Badge{display:inline-flex;align-items:center;white-space:nowrap;font-family:var(--default-font-family);font-weight:var(--font-weight-medium);font-style:normal;flex-shrink:0;line-height:1;height:-moz-fit-content;height:fit-content}.rt-Badge:where(.rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}@media (min-width: 520px){.rt-Badge:where(.xs\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.xs\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.xs\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 768px){.rt-Badge:where(.sm\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.sm\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.sm\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 1024px){.rt-Badge:where(.md\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.md\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.md\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 1280px){.rt-Badge:where(.lg\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.lg\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.lg\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 1640px){.rt-Badge:where(.xl\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.xl\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.xl\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}.rt-Badge:where(.rt-variant-solid){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-Badge:where(.rt-variant-solid)::selection{background-color:var(--accent-7);color:var(--accent-12)}.rt-Badge:where(.rt-variant-solid):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--accent-1)}.rt-Badge:where(.rt-variant-solid):where(.rt-high-contrast)::selection{background-color:var(--accent-a11);color:var(--accent-1)}.rt-Badge:where(.rt-variant-surface){background-color:var(--accent-surface);box-shadow:inset 0 0 0 1px var(--accent-a6);color:var(--accent-a11)}.rt-Badge:where(.rt-variant-surface):where(.rt-high-contrast){color:var(--accent-12)}.rt-Badge:where(.rt-variant-soft){background-color:var(--accent-a3);color:var(--accent-a11)}.rt-Badge:where(.rt-variant-soft):where(.rt-high-contrast){color:var(--accent-12)}.rt-Badge:where(.rt-variant-outline){box-shadow:inset 0 0 0 1px var(--accent-a8);color:var(--accent-a11)}.rt-Badge:where(.rt-variant-outline):where(.rt-high-contrast){box-shadow:inset 0 0 0 1px var(--accent-a7),inset 0 0 0 1px var(--gray-a11);color:var(--accent-12)}.rt-Blockquote{box-sizing:border-box;border-left:max(var(--space-1),.25em) solid var(--accent-a6);padding-left:min(var(--space-5),max(var(--space-3),.5em))}.rt-BaseButton{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;-webkit-user-select:none;user-select:none;vertical-align:top;font-family:var(--default-font-family);font-style:normal;text-align:center}.rt-BaseButton:where([data-disabled]){--spinner-opacity: 1}.rt-BaseButton:where(.rt-loading){position:relative}.rt-BaseButton:where(:not(.rt-variant-ghost)){height:var(--base-button-height)}.rt-BaseButton:where(.rt-variant-ghost){box-sizing:content-box;height:-moz-fit-content;height:fit-content}.rt-BaseButton:where(.rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}@media (min-width: 520px){.rt-BaseButton:where(.xs\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.xs\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.xs\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.xs\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 768px){.rt-BaseButton:where(.sm\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.sm\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.sm\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.sm\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 1024px){.rt-BaseButton:where(.md\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.md\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.md\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.md\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 1280px){.rt-BaseButton:where(.lg\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.lg\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.lg\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.lg\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 1640px){.rt-BaseButton:where(.xl\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.xl\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.xl\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.xl\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}.rt-BaseButton:where(.rt-variant-classic){background-color:var(--accent-9);color:var(--accent-contrast);position:relative;z-index:0;background-image:linear-gradient(to bottom,transparent 50%,var(--gray-a4)),linear-gradient(to bottom,transparent 50%,var(--accent-9) 80%);box-shadow:var(--base-button-classic-box-shadow-top),inset 0 0 0 1px var(--accent-9),var(--base-button-classic-box-shadow-bottom)}.rt-BaseButton:where(.rt-variant-classic):after{content:"";position:absolute;border-radius:inherit;pointer-events:none;inset:0;z-index:-1;border:var(--base-button-classic-after-inset) solid transparent;background-clip:content-box;background-color:inherit;background-image:linear-gradient(var(--black-a1),transparent,var(--white-a2));box-shadow:inset 0 2px 3px -1px var(--white-a4)}.rt-BaseButton:where(.rt-variant-classic):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--gray-1);background-image:linear-gradient(to bottom,transparent 50%,var(--gray-a4)),linear-gradient(to bottom,transparent 50%,var(--accent-12) 80%);box-shadow:var(--base-button-classic-box-shadow-top),inset 0 0 0 1px var(--accent-12),var(--base-button-classic-box-shadow-bottom)}.rt-BaseButton:where(.rt-variant-classic):where(.rt-high-contrast):after{background-image:linear-gradient(var(--black-a3),transparent,var(--white-a2))}@media (pointer: coarse){.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open])){outline:.5em solid var(--accent-a4);outline-offset:0}}.rt-BaseButton:where(.rt-variant-classic):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:2px}@media (hover: hover){.rt-BaseButton:where(.rt-variant-classic):where(:hover):after{background-color:var(--accent-10);background-image:linear-gradient(var(--black-a2) -15%,transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where(:hover):where(.rt-high-contrast){filter:var(--base-button-classic-high-contrast-hover-filter)}.rt-BaseButton:where(.rt-variant-classic):where(:hover):where(.rt-high-contrast):after{background-color:var(--accent-12);background-image:linear-gradient(var(--black-a5),transparent,var(--white-a2))}}.rt-BaseButton:where(.rt-variant-classic):where([data-state=open]):after{background-color:var(--accent-10);background-image:linear-gradient(var(--black-a2) -15%,transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where([data-state=open]):where(.rt-high-contrast){filter:var(--base-button-classic-high-contrast-hover-filter)}.rt-BaseButton:where(.rt-variant-classic):where([data-state=open]):where(.rt-high-contrast):after{background-color:var(--accent-12);background-image:linear-gradient(var(--black-a5),transparent,var(--white-a2))}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])){background-color:var(--accent-9);background-image:linear-gradient(var(--black-a1),transparent);padding-top:var(--base-button-classic-active-padding-top);box-shadow:inset 0 4px 2px -2px var(--gray-a4),inset 0 1px 1px var(--gray-a7),inset 0 0 0 1px var(--gray-a5),inset 0 0 0 1px var(--accent-9),inset 0 3px 2px var(--gray-a3),inset 0 0 0 1px var(--white-a7),inset 0 -2px 1px var(--white-a5)}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])):after{box-shadow:none;background-color:inherit;background-image:linear-gradient(var(--black-a2),transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])):where(.rt-high-contrast){background-color:var(--accent-12);filter:var(--base-button-classic-high-contrast-active-filter);box-shadow:var(--base-button__classic-active__shadow-front-layer),inset 0 0 0 1px var(--accent-12),var(--base-button__classic-active__shadow-bottom-layer)}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])):where(.rt-high-contrast):after{background-image:linear-gradient(var(--black-a5),transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-2);background-image:none;box-shadow:var(--base-button-classic-disabled-box-shadow);outline:none;filter:none}.rt-BaseButton:where(.rt-variant-classic):where([data-disabled]):after{box-shadow:none;background-color:var(--gray-a2);background-image:linear-gradient(var(--black-a1) -20%,transparent,var(--white-a1))}.rt-BaseButton:where(.rt-variant-solid){background-color:var(--accent-9);color:var(--accent-contrast)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-solid):where(:hover){background-color:var(--accent-10)}}.rt-BaseButton:where(.rt-variant-solid):where([data-state=open]){background-color:var(--accent-10)}.rt-BaseButton:where(.rt-variant-solid):where(:active:not([data-state=open])){background-color:var(--accent-10);filter:var(--base-button-solid-active-filter)}@media (pointer: coarse){.rt-BaseButton:where(.rt-variant-solid):where(:active:not([data-state=open])){outline:.5em solid var(--accent-a4);outline-offset:0}}.rt-BaseButton:where(.rt-variant-solid):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:2px}.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--gray-1)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast):where(:hover){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-hover-filter)}}.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast):where([data-state=open]){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-hover-filter)}.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast):where(:active:not([data-state=open])){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-active-filter)}.rt-BaseButton:where(.rt-variant-solid):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-a3);outline:none;filter:none}.rt-BaseButton:where(.rt-variant-soft,.rt-variant-ghost){color:var(--accent-a11)}.rt-BaseButton:where(.rt-variant-soft,.rt-variant-ghost):where(.rt-high-contrast){color:var(--accent-12)}.rt-BaseButton:where(.rt-variant-soft,.rt-variant-ghost):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-a3)}.rt-BaseButton:where(.rt-variant-soft){background-color:var(--accent-a3)}.rt-BaseButton:where(.rt-variant-soft):where(:focus-visible){outline:2px solid var(--accent-8);outline-offset:-1px}@media (hover: hover){.rt-BaseButton:where(.rt-variant-soft):where(:hover){background-color:var(--accent-a4)}}.rt-BaseButton:where(.rt-variant-soft):where([data-state=open]){background-color:var(--accent-a4)}.rt-BaseButton:where(.rt-variant-soft):where(:active:not([data-state=open])){background-color:var(--accent-a5)}.rt-BaseButton:where(.rt-variant-soft):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-a3)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-ghost):where(:hover){background-color:var(--accent-a3)}}.rt-BaseButton:where(.rt-variant-ghost):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-BaseButton:where(.rt-variant-ghost):where([data-state=open]){background-color:var(--accent-a3)}.rt-BaseButton:where(.rt-variant-ghost):where(:active:not([data-state=open])){background-color:var(--accent-a4)}.rt-BaseButton:where(.rt-variant-ghost):where([data-disabled]){color:var(--gray-a8);background-color:transparent}.rt-BaseButton:where(.rt-variant-outline){box-shadow:inset 0 0 0 1px var(--accent-a8);color:var(--accent-a11)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-outline):where(:hover){background-color:var(--accent-a2)}}.rt-BaseButton:where(.rt-variant-outline):where([data-state=open]){background-color:var(--accent-a2)}.rt-BaseButton:where(.rt-variant-outline):where(:active:not([data-state=open])){background-color:var(--accent-a3)}.rt-BaseButton:where(.rt-variant-outline):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-BaseButton:where(.rt-variant-outline):where(.rt-high-contrast){box-shadow:inset 0 0 0 1px var(--accent-a7),inset 0 0 0 1px var(--gray-a11);color:var(--accent-12)}.rt-BaseButton:where(.rt-variant-outline):where([data-disabled]){color:var(--gray-a8);box-shadow:inset 0 0 0 1px var(--gray-a7);background-color:transparent}.rt-BaseButton:where(.rt-variant-surface){background-color:var(--accent-surface);box-shadow:inset 0 0 0 1px var(--accent-a7);color:var(--accent-a11)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-surface):where(:hover){box-shadow:inset 0 0 0 1px var(--accent-a8)}}.rt-BaseButton:where(.rt-variant-surface):where([data-state=open]){box-shadow:inset 0 0 0 1px var(--accent-a8)}.rt-BaseButton:where(.rt-variant-surface):where(:active:not([data-state=open])){background-color:var(--accent-a3);box-shadow:inset 0 0 0 1px var(--accent-a8)}.rt-BaseButton:where(.rt-variant-surface):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-BaseButton:where(.rt-variant-surface):where(.rt-high-contrast){color:var(--accent-12)}.rt-BaseButton:where(.rt-variant-surface):where([data-disabled]){color:var(--gray-a8);box-shadow:inset 0 0 0 1px var(--gray-a6);background-color:var(--gray-a2)}.rt-Button:where(:not(.rt-variant-ghost)) :where(svg){opacity:.9}.rt-Button:where(.rt-variant-ghost){padding:var(--button-ghost-padding-y) var(--button-ghost-padding-x);--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--button-ghost-padding-y));--margin-right-override: calc(var(--margin-right) - var(--button-ghost-padding-x));--margin-bottom-override: calc(var(--margin-bottom) - var(--button-ghost-padding-y));--margin-left-override: calc(var(--margin-left) - var(--button-ghost-padding-x));margin:var(--margin-top-override) var(--margin-right-override) var(--margin-bottom-override) var(--margin-left-override)}:where(.rt-Button:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-Button:where(.rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}@media (min-width: 520px){.rt-Button:where(.xs\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.xs\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.xs\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xs\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.xs\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.xs\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xs\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.xs\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.xs\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.xs\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.xs\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.xs\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 768px){.rt-Button:where(.sm\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.sm\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.sm\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.sm\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.sm\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.sm\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.sm\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.sm\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.sm\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.sm\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.sm\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.sm\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 1024px){.rt-Button:where(.md\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.md\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.md\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.md\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.md\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.md\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.md\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.md\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.md\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.md\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.md\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.md\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 1280px){.rt-Button:where(.lg\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.lg\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.lg\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.lg\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.lg\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.lg\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.lg\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.lg\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.lg\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.lg\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.lg\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.lg\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 1640px){.rt-Button:where(.xl\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.xl\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.xl\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xl\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.xl\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.xl\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xl\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.xl\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.xl\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.xl\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.xl\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.xl\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}.rt-Button:where(:not(.rt-variant-ghost)){font-weight:var(--font-weight-medium)}.rt-CalloutRoot{box-sizing:border-box;display:grid;align-items:flex-start;justify-content:flex-start;text-align:left;color:var(--accent-a11)}.rt-CalloutRoot:where(.rt-high-contrast){color:var(--accent-12)}.rt-CalloutIcon{display:flex;align-items:center;grid-column-start:-2;height:var(--callout-icon-height)}.rt-CalloutRoot>:where(:not(.rt-CalloutIcon)){grid-column-start:-1}.rt-CalloutRoot:where(.rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}@media (min-width: 520px){.rt-CalloutRoot:where(.xs\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xs\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xs\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 768px){.rt-CalloutRoot:where(.sm\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.sm\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.sm\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 1024px){.rt-CalloutRoot:where(.md\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.md\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.md\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 1280px){.rt-CalloutRoot:where(.lg\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.lg\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.lg\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 1640px){.rt-CalloutRoot:where(.xl\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xl\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xl\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}.rt-CalloutRoot:where(.rt-variant-soft){background-color:var(--accent-a3)}.rt-CalloutRoot:where(.rt-variant-surface){box-shadow:inset 0 0 0 1px var(--accent-a6);background-color:var(--accent-a2)}.rt-CalloutRoot:where(.rt-variant-outline){box-shadow:inset 0 0 0 1px var(--accent-a7)}.rt-BaseCard{display:block;position:relative;overflow:hidden;border-radius:var(--base-card-border-radius);font-family:var(--default-font-family);font-weight:var(--font-weight-normal);font-style:normal;text-align:start;--inset-border-width: var(--base-card-border-width);--inset-border-radius: var(--base-card-border-radius);padding-top:var(--base-card-padding-top);padding-right:var(--base-card-padding-right);padding-bottom:var(--base-card-padding-bottom);padding-left:var(--base-card-padding-left);box-sizing:border-box;--inset-padding-top: calc(var(--base-card-padding-top) - var(--base-card-border-width));--inset-padding-right: calc(var(--base-card-padding-right) - var(--base-card-border-width));--inset-padding-bottom: calc(var(--base-card-padding-bottom) - var(--base-card-border-width));--inset-padding-left: calc(var(--base-card-padding-left) - var(--base-card-border-width));contain:paint}.rt-BaseCard:before,.rt-BaseCard:after{content:"";position:absolute;pointer-events:none;transition:inherit;border-radius:calc(var(--base-card-border-radius) - var(--base-card-border-width));inset:var(--base-card-border-width)}.rt-BaseCard:before{z-index:-1}.rt-Card{--base-card-padding-top: var(--card-padding);--base-card-padding-right: var(--card-padding);--base-card-padding-bottom: var(--card-padding);--base-card-padding-left: var(--card-padding);--base-card-border-radius: var(--card-border-radius);--base-card-border-width: var(--card-border-width)}.rt-Card:where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-Card:where(:focus-visible):after{outline:inherit}.rt-Card:where(:focus-visible):where(:active:not([data-state=open])):before{background-image:linear-gradient(var(--focus-a2),var(--focus-a2))}.rt-Card:where(.rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}@media (min-width: 520px){.rt-Card:where(.xs\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.xs\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.xs\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.xs\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.xs\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 768px){.rt-Card:where(.sm\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.sm\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.sm\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.sm\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.sm\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 1024px){.rt-Card:where(.md\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.md\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.md\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.md\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.md\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 1280px){.rt-Card:where(.lg\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.lg\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.lg\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.lg\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.lg\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 1640px){.rt-Card:where(.xl\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.xl\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.xl\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.xl\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.xl\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}.rt-Card:where(.rt-variant-surface){--card-border-width: 1px;--card-background-color: var(--color-panel)}.rt-Card:where(.rt-variant-surface):before{background-color:var(--card-background-color);-webkit-backdrop-filter:var(--backdrop-filter-panel);backdrop-filter:var(--backdrop-filter-panel)}.rt-Card:where(.rt-variant-surface):after{box-shadow:var(--base-card-surface-box-shadow)}@media (hover: hover){.rt-Card:where(.rt-variant-surface):where(:any-link,button,label):where(:hover):after{box-shadow:var(--base-card-surface-hover-box-shadow)}}.rt-Card:where(.rt-variant-surface):where(:any-link,button,label):where([data-state=open]):after{box-shadow:var(--base-card-surface-hover-box-shadow)}.rt-Card:where(.rt-variant-surface):where(:any-link,button,label):where(:active:not([data-state=open])):after{box-shadow:var(--base-card-surface-active-box-shadow)}.rt-Card:where(.rt-variant-classic){--card-border-width: 1px;--card-background-color: var(--color-panel);transition:box-shadow .12s;box-shadow:var(--base-card-classic-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):before{background-color:var(--card-background-color);-webkit-backdrop-filter:var(--backdrop-filter-panel);backdrop-filter:var(--backdrop-filter-panel)}.rt-Card:where(.rt-variant-classic):after{box-shadow:var(--base-card-classic-box-shadow-inner)}@media (hover: hover){.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:hover){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:hover):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where([data-state=open]){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where([data-state=open]):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:active:not([data-state=open])){transition-duration:40ms;box-shadow:var(--base-card-classic-active-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:active:not([data-state=open])):after{box-shadow:var(--base-card-classic-active-box-shadow-inner)}.rt-Card:where(.rt-variant-ghost){--card-border-width: 0px;--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--card-padding));--margin-right-override: calc(var(--margin-right) - var(--card-padding));--margin-bottom-override: calc(var(--margin-bottom) - var(--card-padding));--margin-left-override: calc(var(--margin-left) - var(--card-padding));margin-top:var(--margin-top-override);margin-right:var(--margin-right-override);margin-bottom:var(--margin-bottom-override);margin-left:var(--margin-left-override)}:where(.rt-Card:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}@media (hover: hover){.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:hover){background-color:var(--gray-a3)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:hover):where(:focus-visible){background-color:var(--focus-a2)}}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where([data-state=open]){background-color:var(--gray-a3)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where([data-state=open]):where(:focus-visible){background-color:var(--focus-a2)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:active:not([data-state=open])){background-color:var(--gray-a4)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:active:not([data-state=open])):where(:focus-visible){background-color:var(--focus-a2)}@media (pointer: coarse){.rt-Card:where(:any-link,button,label):where(:active:not(:focus-visible,[data-state=open])):before{background-image:linear-gradient(var(--gray-a4),var(--gray-a4))}}.rt-BaseCheckboxRoot{position:relative;display:inline-flex;align-items:center;justify-content:center;vertical-align:top;flex-shrink:0;cursor:var(--cursor-checkbox);height:var(--skeleton-height, var(--line-height, var(--checkbox-size)));--skeleton-height-override: var(--checkbox-size);border-radius:var(--skeleton-radius);--skeleton-radius-override: var(--checkbox-border-radius)}.rt-BaseCheckboxRoot:before{content:"";display:block;height:var(--checkbox-size);width:var(--checkbox-size);border-radius:var(--checkbox-border-radius)}.rt-BaseCheckboxIndicator{position:absolute;width:var(--checkbox-indicator-size);height:var(--checkbox-indicator-size);transform:translate(-50%,-50%);top:50%;left:50%}.rt-BaseCheckboxRoot:where(.rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}@media (min-width: 520px){.rt-BaseCheckboxRoot:where(.xs\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.xs\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.xs\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 768px){.rt-BaseCheckboxRoot:where(.sm\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.sm\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.sm\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 1024px){.rt-BaseCheckboxRoot:where(.md\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.md\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.md\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 1280px){.rt-BaseCheckboxRoot:where(.lg\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.lg\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.lg\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 1640px){.rt-BaseCheckboxRoot:where(.xl\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.xl\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.xl\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a7)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]):before{background-color:var(--accent-indicator)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]) :where(.rt-BaseCheckboxIndicator){color:var(--accent-contrast)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast):before{background-color:var(--accent-12)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast) :where(.rt-BaseCheckboxIndicator){color:var(--accent-1)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where(:disabled):before{box-shadow:inset 0 0 0 1px var(--gray-a6);background-color:transparent}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where(:disabled) :where(.rt-BaseCheckboxIndicator){color:var(--gray-a8)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a3),var(--shadow-1)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]):before{background-color:var(--accent-indicator);background-image:linear-gradient(to bottom,var(--white-a3),transparent,var(--black-a1));box-shadow:inset 0 .5px .5px var(--white-a4),inset 0 -.5px .5px var(--black-a4)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]) :where(.rt-BaseCheckboxIndicator){color:var(--accent-contrast)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast):before{background-color:var(--accent-12)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast) :where(.rt-BaseCheckboxIndicator){color:var(--accent-1)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where(:disabled):before{box-shadow:var(--shadow-1);background-color:transparent;background-image:none}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where(:disabled) :where(.rt-BaseCheckboxIndicator){color:var(--gray-a8)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):before{background-color:var(--accent-a5)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where([data-state=checked],[data-state=indeterminate]) :where(.rt-BaseCheckboxIndicator){color:var(--accent-a11)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast) :where(.rt-BaseCheckboxIndicator){color:var(--accent-12)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where(:disabled):before{background-color:transparent}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where(:disabled) :where(.rt-BaseCheckboxIndicator){color:var(--gray-a8)}.rt-CheckboxCardsRoot{line-height:var(--line-height);letter-spacing:var(--letter-spacing);cursor:default}.rt-CheckboxCardsItem:where(:has(:focus-visible)){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-CheckboxCardsItem:where(:has(:focus-visible)):after{outline:inherit}.rt-CheckboxCardsItem>*{pointer-events:none}.rt-CheckboxCardsItem>:where(svg){flex-shrink:0}.rt-CheckboxCardCheckbox{position:absolute;right:var(--checkbox-cards-item-padding-left)}.rt-CheckboxCardsItem{--checkbox-cards-item-padding-right: calc(var(--checkbox-cards-item-padding-left) * 2 + var(--checkbox-cards-item-checkbox-size));--base-card-padding-top: var(--checkbox-cards-item-padding-top);--base-card-padding-right: var(--checkbox-cards-item-padding-right);--base-card-padding-bottom: var(--checkbox-cards-item-padding-bottom);--base-card-padding-left: var(--checkbox-cards-item-padding-left);--base-card-border-radius: var(--checkbox-cards-item-border-radius);--base-card-border-width: var(--checkbox-cards-item-border-width);display:flex;align-items:center;gap:var(--space-2);cursor:var(--cursor-button);-webkit-tap-highlight-color:transparent}.rt-CheckboxCardsRoot:where(.rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}@media (min-width: 520px){.rt-CheckboxCardsRoot:where(.xs\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.xs\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 768px){.rt-CheckboxCardsRoot:where(.sm\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.sm\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1024px){.rt-CheckboxCardsRoot:where(.md\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.md\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.md\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1280px){.rt-CheckboxCardsRoot:where(.lg\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.lg\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1640px){.rt-CheckboxCardsRoot:where(.xl\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.xl\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem{--checkbox-cards-item-border-width: 1px;--checkbox-cards-item-background-color: var(--color-surface)}:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem:before{background-color:var(--checkbox-cards-item-background-color)}:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem:after{box-shadow:var(--base-card-surface-box-shadow)}@media (hover: hover){:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem:where(:not(:has(:disabled)):hover):after{box-shadow:var(--base-card-surface-hover-box-shadow)}}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem{--checkbox-cards-item-border-width: 1px;--checkbox-cards-item-background-color: var(--color-surface);transition:box-shadow .12s;box-shadow:var(--base-card-classic-box-shadow-outer)}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:before{background-color:var(--checkbox-cards-item-background-color)}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:after{box-shadow:var(--base-card-classic-box-shadow-inner)}@media (hover: hover){:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:where(:not(:has(:disabled)):hover){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:where(:not(:has(:disabled)):hover):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}}@media (pointer: coarse){.rt-CheckboxCardsItem:where(:active:not(:focus-visible)):before{background-image:linear-gradient(var(--gray-a4),var(--gray-a4))}}.rt-CheckboxCardsItem:where(:has(:disabled)){cursor:var(--cursor-disabled);color:var(--gray-a9)}.rt-CheckboxCardsItem:where(:has(:disabled)):before{background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-CheckboxCardsItem:where(:has(:disabled))::selection{background-color:var(--gray-a5)}.rt-CheckboxGroupRoot{display:flex;flex-direction:column;gap:var(--space-1)}.rt-CheckboxGroupItem{display:flex;gap:.5em;width:-moz-fit-content;width:fit-content}.rt-CheckboxGroupItemCheckbox:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-CheckboxGroupItemCheckbox:where(:disabled){cursor:var(--cursor-disabled)}.rt-CheckboxGroupItemCheckbox:where(:disabled):before{background-color:var(--gray-a3)}.rt-CheckboxGroupItemInner{min-width:0}.rt-CheckboxRoot:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-CheckboxRoot:where(:disabled){cursor:var(--cursor-disabled)}.rt-CheckboxRoot:where(:disabled):before{background-color:var(--gray-a3)}.rt-Code{--code-variant-font-size-adjust: calc(var(--code-font-size-adjust) * .95);font-family:var(--code-font-family);font-size:calc(var(--code-variant-font-size-adjust) * 1em);font-style:var(--code-font-style);font-weight:var(--code-font-weight);line-height:1.25;letter-spacing:calc(var(--code-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)));border-radius:calc((.5px + .2em) * var(--radius-factor));box-sizing:border-box;padding-top:var(--code-padding-top);padding-left:var(--code-padding-left);padding-bottom:var(--code-padding-bottom);padding-right:var(--code-padding-right);height:-moz-fit-content;height:fit-content}.rt-Code :where(.rt-Code){font-size:inherit}.rt-Code:where(.rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}@media (min-width: 520px){.rt-Code:where(.xs\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.xs\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.xs\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.xs\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.xs\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.xs\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.xs\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.xs\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.xs\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 768px){.rt-Code:where(.sm\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.sm\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.sm\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.sm\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.sm\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.sm\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.sm\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.sm\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.sm\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-Code:where(.md\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.md\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.md\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.md\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.md\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.md\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.md\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.md\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.md\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-Code:where(.lg\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.lg\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.lg\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.lg\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.lg\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.lg\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.lg\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.lg\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.lg\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-Code:where(.xl\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.xl\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.xl\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.xl\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.xl\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.xl\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.xl\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.xl\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.xl\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}.rt-Code:where(.rt-variant-ghost){--code-variant-font-size-adjust: var(--code-font-size-adjust);padding:0}.rt-Code:where(.rt-variant-ghost):where([data-accent-color]){color:var(--accent-a11)}.rt-Code:where(.rt-variant-ghost):where([data-accent-color].rt-high-contrast),:where([data-accent-color]:not(.radix-themes)) .rt-Code:where(.rt-variant-ghost):where(.rt-high-contrast){color:var(--accent-12)}.rt-Code:where(.rt-variant-solid){background-color:var(--accent-a9);color:var(--accent-contrast)}.rt-Code:where(.rt-variant-solid)::selection{background-color:var(--accent-7);color:var(--accent-12)}.rt-Code:where(.rt-variant-solid):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--accent-1)}.rt-Code:where(.rt-variant-solid):where(.rt-high-contrast)::selection{background-color:var(--accent-a11);color:var(--accent-1)}:where(.rt-Link) .rt-Code:where(.rt-variant-solid),.rt-Code:where(.rt-variant-solid):where(:any-link,button){isolation:isolate}@media (hover: hover){:where(.rt-Link) .rt-Code:where(.rt-variant-solid):where(:hover),.rt-Code:where(.rt-variant-solid):where(:any-link,button):where(:hover){background-color:var(--accent-10)}:where(.rt-Link) .rt-Code:where(.rt-variant-solid):where(.rt-high-contrast:hover),.rt-Code:where(.rt-variant-solid):where(:any-link,button):where(.rt-high-contrast:hover){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-hover-filter)}}.rt-Code:where(.rt-variant-soft){background-color:var(--accent-a3);color:var(--accent-a11)}.rt-Code:where(.rt-variant-soft):where(.rt-high-contrast){color:var(--accent-12)}:where(.rt-Link) .rt-Code:where(.rt-variant-soft),.rt-Code:where(.rt-variant-soft):where(:any-link,button){isolation:isolate}@media (hover: hover){:where(.rt-Link) .rt-Code:where(.rt-variant-soft):where(:hover),.rt-Code:where(.rt-variant-soft):where(:any-link,button):where(:hover){background-color:var(--accent-a4)}}.rt-Code:where(.rt-variant-outline){box-shadow:inset 0 0 0 max(1px,.033em) var(--accent-a8);color:var(--accent-a11)}.rt-Code:where(.rt-variant-outline):where(.rt-high-contrast){box-shadow:inset 0 0 0 max(1px,.033em) var(--accent-a7),inset 0 0 0 max(1px,.033em) var(--gray-a11);color:var(--accent-12)}:where(.rt-Link) .rt-Code:where(.rt-variant-outline),.rt-Code:where(.rt-variant-outline):where(:any-link,button){isolation:isolate}@media (hover: hover){:where(.rt-Link) .rt-Code:where(.rt-variant-outline):where(:hover),.rt-Code:where(.rt-variant-outline):where(:any-link,button):where(:hover){background-color:var(--accent-a2)}}.rt-BaseMenuContent{--scrollarea-scrollbar-vertical-margin-top: var(--base-menu-content-padding);--scrollarea-scrollbar-vertical-margin-bottom: var(--base-menu-content-padding);--scrollarea-scrollbar-horizontal-margin-left: var(--base-menu-content-padding);--scrollarea-scrollbar-horizontal-margin-right: var(--base-menu-content-padding);display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;background-color:var(--base-menu-bg);--base-menu-bg: var(--color-panel-solid);box-shadow:var(--shadow-5)}.rt-BaseMenuViewport{flex:1 1 0%;display:flex;flex-direction:column;overflow:auto;padding:var(--base-menu-content-padding);box-sizing:border-box}:where(.rt-BaseMenuContent:has(.rt-ScrollAreaScrollbar[data-orientation=vertical])) .rt-BaseMenuViewport{padding-right:var(--space-3)}.rt-BaseMenuItem{display:flex;align-items:center;gap:var(--space-2);height:var(--base-menu-item-height);padding-left:var(--base-menu-item-padding-left);padding-right:var(--base-menu-item-padding-right);box-sizing:border-box;position:relative;outline:none;scroll-margin:var(--base-menu-content-padding) 0;-webkit-user-select:none;user-select:none;cursor:var(--cursor-menu-item)}.rt-BaseMenuShortcut{display:flex;align-items:center;margin-left:auto;padding-left:var(--space-4);color:var(--gray-a11)}.rt-BaseMenuSubTriggerIcon{color:var(--gray-12);margin-right:calc(-2px * var(--scaling))}.rt-BaseMenuItemIndicator{position:absolute;left:0;width:var(--base-menu-item-padding-left);display:inline-flex;align-items:center;justify-content:center}.rt-BaseMenuSeparator{height:1px;margin-top:var(--space-2);margin-bottom:var(--space-2);margin-left:var(--base-menu-item-padding-left);margin-right:var(--base-menu-item-padding-right);background-color:var(--gray-a6)}.rt-BaseMenuLabel{display:flex;align-items:center;height:var(--base-menu-item-height);padding-left:var(--base-menu-item-padding-left);padding-right:var(--base-menu-item-padding-right);box-sizing:border-box;color:var(--gray-a10);-webkit-user-select:none;user-select:none;cursor:default}:where(.rt-BaseMenuItem)+.rt-BaseMenuLabel{margin-top:var(--space-2)}.rt-BaseMenuArrow{fill:var(--base-menu-bg)}.rt-BaseMenuContent:where(.rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}@media (min-width: 520px){.rt-BaseMenuContent:where(.xs\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.xs\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.xs\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 768px){.rt-BaseMenuContent:where(.sm\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.sm\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.sm\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 1024px){.rt-BaseMenuContent:where(.md\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.md\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.md\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.md\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.md\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.md\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.md\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.md\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.md\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.md\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.md\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.md\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 1280px){.rt-BaseMenuContent:where(.lg\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.lg\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.lg\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 1640px){.rt-BaseMenuContent:where(.xl\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.xl\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.xl\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}.rt-BaseMenuItem:where([data-accent-color]){color:var(--accent-a11)}.rt-BaseMenuItem:where([data-disabled]){color:var(--gray-a8);cursor:default}.rt-BaseMenuItem:where([data-disabled],[data-highlighted]) :where(.rt-BaseMenuShortcut),.rt-BaseMenuSubTrigger:where([data-state=open]) :where(.rt-BaseMenuShortcut){color:inherit}.rt-BaseMenuContent:where(.rt-variant-solid) :where(.rt-BaseMenuSubTrigger[data-state=open]){background-color:var(--gray-a3)}.rt-BaseMenuContent:where(.rt-variant-solid) :where(.rt-BaseMenuItem[data-highlighted]){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-BaseMenuContent:where(.rt-variant-solid) :where(.rt-BaseMenuItem[data-highlighted]) :where(.rt-BaseMenuSubTriggerIcon){color:var(--accent-contrast)}.rt-BaseMenuContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-BaseMenuItem[data-highlighted]){background-color:var(--accent-12);color:var(--accent-1)}.rt-BaseMenuContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-BaseMenuItem[data-highlighted]) :where(.rt-BaseMenuSubTriggerIcon){color:var(--accent-1)}.rt-BaseMenuContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-BaseMenuItem[data-highlighted]):where([data-accent-color]){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-BaseMenuContent:where(.rt-variant-soft) :where(.rt-BaseMenuSubTrigger[data-state=open]){background-color:var(--accent-a3)}.rt-BaseMenuContent:where(.rt-variant-soft) :where(.rt-BaseMenuItem[data-highlighted]){background-color:var(--accent-a4)}.rt-ContextMenuContent{max-height:var(--radix-context-menu-content-available-height);transform-origin:var(--radix-context-menu-content-transform-origin)}.rt-DataListRoot{overflow-wrap:anywhere;font-family:var(--default-font-family);font-weight:var(--font-weight-normal);font-style:normal;text-align:start;--data-list-leading-trim-start: calc(var(--default-leading-trim-start) - var(--line-height) / 2);--data-list-leading-trim-end: calc(var(--default-leading-trim-end) - var(--line-height) / 2)}.rt-DataListLabel{display:flex;color:var(--gray-a11)}.rt-DataListLabel:where(.rt-high-contrast){color:var(--gray-12)}.rt-DataListLabel:where([data-accent-color]){color:var(--accent-a11)}.rt-DataListLabel:where([data-accent-color]):where(.rt-high-contrast){color:var(--accent-12)}.rt-DataListValue{display:flex;margin:0;min-width:0px;margin-top:var(--data-list-value-margin-top);margin-bottom:var(--data-list-value-margin-bottom)}.rt-DataListItem{--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}:where(.rt-DataListItem:first-child) .rt-DataListValue{margin-top:var(--data-list-first-item-value-margin-top)}:where(.rt-DataListItem:last-child) .rt-DataListValue{margin-bottom:var(--data-list-last-item-value-margin-bottom)}.rt-DataListRoot:where(.rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.rt-r-size-3){gap:calc(var(--space-4) * 1.25)}@media (min-width: 520px){.rt-DataListRoot:where(.xs\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.xs\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.xs\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 768px){.rt-DataListRoot:where(.sm\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.sm\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.sm\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 1024px){.rt-DataListRoot:where(.md\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.md\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.md\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 1280px){.rt-DataListRoot:where(.lg\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.lg\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.lg\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 1640px){.rt-DataListRoot:where(.xl\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.xl\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.xl\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}.rt-DataListRoot:where(.rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}@media (min-width: 520px){.rt-DataListRoot:where(.xs\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.xs\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.xs\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.xs\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.xs\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.xs\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 768px){.rt-DataListRoot:where(.sm\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.sm\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.sm\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.sm\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.sm\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.sm\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 1024px){.rt-DataListRoot:where(.md\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.md\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.md\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.md\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.md\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.md\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 1280px){.rt-DataListRoot:where(.lg\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.lg\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.lg\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.lg\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.lg\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.lg\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 1640px){.rt-DataListRoot:where(.xl\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.xl\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.xl\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.xl\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.xl\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.xl\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}.rt-DataListLabel:before,.rt-DataListValue:before{content:"‍"}.rt-DataListItem:where(.rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}@media (min-width: 520px){.rt-DataListItem:where(.xs\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xs\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xs\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.xs\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xs\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 768px){.rt-DataListItem:where(.sm\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.sm\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.sm\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.sm\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.sm\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 1024px){.rt-DataListItem:where(.md\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.md\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.md\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.md\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.md\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 1280px){.rt-DataListItem:where(.lg\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.lg\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.lg\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.lg\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.lg\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 1640px){.rt-DataListItem:where(.xl\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xl\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xl\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.xl\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xl\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}.rt-DataListItem:where(:first-child){margin-top:var(--leading-trim-start)}.rt-DataListItem:where(:last-child){margin-bottom:var(--leading-trim-end)}.rt-DataListRoot:where(.rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}@media (min-width: 520px){.rt-DataListRoot:where(.xs\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.xs\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.xs\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.xs\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 768px){.rt-DataListRoot:where(.sm\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.sm\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.sm\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.sm\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 1024px){.rt-DataListRoot:where(.md\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.md\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.md\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.md\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 1280px){.rt-DataListRoot:where(.lg\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.lg\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.lg\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.lg\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 1640px){.rt-DataListRoot:where(.xl\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.xl\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.xl\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.xl\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}.rt-DropdownMenuContent{max-height:var(--radix-dropdown-menu-content-available-height);transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.rt-Em{box-sizing:border-box;font-family:var(--em-font-family);font-size:calc(var(--em-font-size-adjust) * 1em);font-style:var(--em-font-style);font-weight:var(--em-font-weight);line-height:1.25;letter-spacing:calc(var(--em-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)));color:inherit}.rt-Em :where(.rt-Em){font-size:inherit}.rt-Heading{--leading-trim-start: var(--heading-leading-trim-start);--leading-trim-end: var(--heading-leading-trim-end);font-family:var(--heading-font-family);font-style:var(--heading-font-style);font-weight:var(--font-weight-bold);line-height:var(--line-height)}:where(.rt-Heading){margin:0}.rt-Heading:where([data-accent-color]){color:var(--accent-a11)}.rt-Heading:where([data-accent-color].rt-high-contrast),:where([data-accent-color]:not(.radix-themes)) .rt-Heading:where(.rt-high-contrast){color:var(--accent-12)}.rt-Heading:where(.rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}@media (min-width: 520px){.rt-Heading:where(.xs\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 768px){.rt-Heading:where(.sm\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 1024px){.rt-Heading:where(.md\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 1280px){.rt-Heading:where(.lg\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 1640px){.rt-Heading:where(.xl\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}.rt-HoverCardContent{background-color:var(--color-panel-solid);box-shadow:var(--shadow-4);overflow:auto;position:relative;--inset-padding-top: var(--hover-card-content-padding);--inset-padding-right: var(--hover-card-content-padding);--inset-padding-bottom: var(--hover-card-content-padding);--inset-padding-left: var(--hover-card-content-padding);padding:var(--hover-card-content-padding);box-sizing:border-box;transform-origin:var(--radix-hover-card-content-transform-origin)}.rt-HoverCardContent:where(.rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}@media (min-width: 520px){.rt-HoverCardContent:where(.xs\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xs\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xs\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 768px){.rt-HoverCardContent:where(.sm\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.sm\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.sm\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 1024px){.rt-HoverCardContent:where(.md\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.md\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.md\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 1280px){.rt-HoverCardContent:where(.lg\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.lg\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.lg\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 1640px){.rt-HoverCardContent:where(.xl\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xl\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xl\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}.rt-IconButton:where(:not(.rt-variant-ghost)){height:var(--base-button-height);width:var(--base-button-height)}.rt-IconButton:where(.rt-variant-ghost){padding:var(--icon-button-ghost-padding);--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--icon-button-ghost-padding));--margin-right-override: calc(var(--margin-right) - var(--icon-button-ghost-padding));--margin-bottom-override: calc(var(--margin-bottom) - var(--icon-button-ghost-padding));--margin-left-override: calc(var(--margin-left) - var(--icon-button-ghost-padding));margin:var(--margin-top-override) var(--margin-right-override) var(--margin-bottom-override) var(--margin-left-override)}:where(.rt-IconButton:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}@media (min-width: 520px){.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 768px){.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 1024px){.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 1280px){.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 1640px){.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}.rt-Inset{box-sizing:border-box;--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;overflow:hidden;margin-top:var(--margin-top-override);margin-right:var(--margin-right-override);margin-bottom:var(--margin-bottom-override);margin-left:var(--margin-left-override)}:where(.rt-Inset)>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-Inset:where(.rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}@media (min-width: 520px){.rt-Inset:where(.xs\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.xs\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.xs\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.xs\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xs\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.xs\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xs\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.xs\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.xs\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 768px){.rt-Inset:where(.sm\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.sm\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.sm\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.sm\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.sm\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.sm\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.sm\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.sm\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.sm\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 1024px){.rt-Inset:where(.md\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.md\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.md\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.md\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.md\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.md\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.md\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.md\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.md\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 1280px){.rt-Inset:where(.lg\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.lg\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.lg\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.lg\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.lg\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.lg\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.lg\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.lg\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.lg\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 1640px){.rt-Inset:where(.xl\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.xl\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.xl\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.xl\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xl\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.xl\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xl\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.xl\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.xl\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}.rt-Kbd{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--default-font-family);font-weight:400;vertical-align:text-top;white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative;top:-.03em;font-size:.75em;min-width:1.75em;line-height:1.7em;box-sizing:border-box;padding-left:.5em;padding-right:.5em;padding-bottom:.05em;word-spacing:-.1em;border-radius:calc(var(--radius-factor) * .35em);letter-spacing:var(--letter-spacing, var(--default-letter-spacing));height:-moz-fit-content;height:fit-content;color:var(--gray-12);background-color:var(--gray-1);box-shadow:var(--kbd-box-shadow);transition:box-shadow .12s,background-color .12s}@media (hover: hover){.rt-Kbd:where(:any-link,button):where(:hover){transition-duration:40ms,40ms;background-color:var(--color-background);box-shadow:var(--kbd-box-shadow),0 0 0 .05em var(--gray-a5)}}.rt-Kbd:where(:any-link,button):where([data-state=open]){transition-duration:40ms,40ms;background-color:var(--color-background);box-shadow:var(--kbd-box-shadow),0 0 0 .05em var(--gray-a5)}.rt-Kbd:where(:any-link,button):where(:active:not([data-state=open])){padding-top:.05em;padding-bottom:0;transition-duration:40ms,40ms;background-color:var(--gray-2);box-shadow:inset 0 .05em var(--black-a3),0 0 0 .05em var(--gray-a7)}.rt-Kbd:where(:any-link,button):where(:focus-visible){outline:2px solid var(--focus-8)}.rt-Kbd:where(.rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}@media (min-width: 520px){.rt-Kbd:where(.xs\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.xs\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.xs\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.xs\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.xs\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.xs\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.xs\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.xs\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.xs\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 768px){.rt-Kbd:where(.sm\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.sm\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.sm\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.sm\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.sm\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.sm\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.sm\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.sm\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.sm\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-Kbd:where(.md\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.md\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.md\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.md\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.md\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.md\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.md\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.md\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.md\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-Kbd:where(.lg\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.lg\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.lg\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.lg\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.lg\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.lg\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.lg\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.lg\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.lg\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-Kbd:where(.xl\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.xl\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.xl\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.xl\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.xl\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.xl\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.xl\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.xl\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.xl\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}.rt-Link:where(:any-link,button){cursor:var(--cursor-link);text-decoration-line:none;text-decoration-style:solid;text-decoration-thickness:min(2px,max(1px,.05em));text-underline-offset:calc(.025em + 2px);text-decoration-color:var(--accent-a5)}.rt-Link:where(:disabled,[data-disabled]){cursor:var(--cursor-disabled)}:where([data-accent-color]:not(.radix-themes,.rt-high-contrast)) .rt-Link:where([data-accent-color=""]){color:var(--accent-12)}@supports (color: color-mix(in oklab,white,black)){.rt-Link:where(:any-link,button){text-decoration-color:color-mix(in oklab,var(--accent-a5),var(--gray-a6))}}@media (pointer: coarse){.rt-Link:where(:any-link,button):where(:active:not(:focus-visible,[data-state=open])){outline:.75em solid var(--accent-a4);outline-offset:-.6em}}@media (hover: hover){.rt-Link:where(:any-link,button):where(.rt-underline-auto):where(:hover){text-decoration-line:underline}}.rt-Link:where(:any-link,button):where(.rt-underline-auto):where(.rt-high-contrast),:where([data-accent-color]:not(.radix-themes,.rt-high-contrast)) .rt-Link:where(:any-link,button):where(.rt-underline-auto):where([data-accent-color=""]){text-decoration-line:underline;text-decoration-color:var(--accent-a6)}@supports (color: color-mix(in oklab,white,black)){.rt-Link:where(:any-link,button):where(.rt-underline-auto):where(.rt-high-contrast),:where([data-accent-color]:not(.radix-themes,.rt-high-contrast)) .rt-Link:where(:any-link,button):where(.rt-underline-auto):where([data-accent-color=""]){text-decoration-color:color-mix(in oklab,var(--accent-a6),var(--gray-a6))}}@media (hover: hover){.rt-Link:where(:any-link,button):where(.rt-underline-hover):where(:hover){text-decoration-line:underline}}.rt-Link:where(:any-link,button):where(.rt-underline-always){text-decoration-line:underline}.rt-Link:where(:focus-visible){text-decoration-line:none;border-radius:calc(.07em * var(--radius-factor));outline-color:var(--focus-8);outline-width:2px;outline-style:solid;outline-offset:2px}.rt-Link:where(:has(.rt-Code:not(.rt-variant-ghost):only-child)){text-decoration-color:transparent}.rt-PopoverContent{background-color:var(--color-panel-solid);box-shadow:var(--shadow-5);min-width:var(--radix-popover-trigger-width);outline:0;overflow:auto;position:relative;--inset-padding-top: var(--popover-content-padding);--inset-padding-right: var(--popover-content-padding);--inset-padding-bottom: var(--popover-content-padding);--inset-padding-left: var(--popover-content-padding);padding:var(--popover-content-padding);box-sizing:border-box;transform-origin:var(--radix-popover-content-transform-origin)}.rt-PopoverContent:where(.rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}@media (min-width: 520px){.rt-PopoverContent:where(.xs\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xs\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xs\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.xs\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 768px){.rt-PopoverContent:where(.sm\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.sm\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.sm\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.sm\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1024px){.rt-PopoverContent:where(.md\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.md\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.md\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.md\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1280px){.rt-PopoverContent:where(.lg\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.lg\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.lg\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.lg\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1640px){.rt-PopoverContent:where(.xl\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xl\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xl\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.xl\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}.rt-ProgressRoot{--progress-value: 0;--progress-max: 100;--progress-duration: 5s;pointer-events:none;position:relative;overflow:hidden;flex-grow:1;height:var(--progress-height);border-radius:max(calc(var(--radius-factor) * var(--progress-height) / 3),calc(var(--radius-factor) * var(--radius-thumb)))}.rt-ProgressRoot:after{position:absolute;inset:0;content:"";border-radius:inherit}.rt-ProgressIndicator{display:block;height:100%;width:100%;transform:scaleX(calc(var(--progress-value) / var(--progress-max)));transform-origin:left center;transition:transform .12s}.rt-ProgressIndicator:where([data-state=indeterminate]){animation-name:rt-progress-indicator-indeterminate-grow,var(--progress-indicator-indeterminate-animation-start),var(--progress-indicator-indeterminate-animation-repeat);animation-delay:0s,calc(var(--progress-duration) + 5s),calc(var(--progress-duration) + 7.5s);animation-duration:var(--progress-duration),2.5s,5s;animation-iteration-count:1,1,infinite;animation-fill-mode:both,none,none;animation-direction:normal,normal,alternate}.rt-ProgressIndicator:where([data-state=indeterminate]):after{position:absolute;inset:0;content:"";width:400%;animation-name:rt-progress-indicator-indeterminate-shine-from-left;animation-delay:calc(var(--progress-duration) + 5s);animation-duration:5s;animation-fill-mode:backwards;animation-iteration-count:infinite;background-image:linear-gradient(to right,transparent 25%,var(--progress-indicator-after-linear-gradient),transparent 75%)}@keyframes rt-progress-indicator-indeterminate-grow{0%{transform:scaleX(.01)}20%{transform:scaleX(.1)}30%{transform:scaleX(.6)}40%,50%{transform:scaleX(.9)}to{transform:scaleX(1)}}@keyframes rt-progress-indicator-indeterminate-shine-from-left{0%{transform:translate(-100%)}to{transform:translate(0)}}.rt-ProgressRoot:where(.rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.rt-r-size-3){--progress-height: var(--space-2)}@media (min-width: 520px){.rt-ProgressRoot:where(.xs\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.xs\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.xs\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 768px){.rt-ProgressRoot:where(.sm\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.sm\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.sm\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 1024px){.rt-ProgressRoot:where(.md\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.md\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.md\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 1280px){.rt-ProgressRoot:where(.lg\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.lg\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.lg\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 1640px){.rt-ProgressRoot:where(.xl\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.xl\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.xl\:rt-r-size-3){--progress-height: var(--space-2)}}.rt-ProgressRoot:where(.rt-variant-surface){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-surface-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-surface-indeterminate-pulse;background-color:var(--gray-a3)}.rt-ProgressRoot:where(.rt-variant-surface):after{box-shadow:inset 0 0 0 1px var(--gray-a4)}.rt-ProgressRoot:where(.rt-variant-surface) :where(.rt-ProgressIndicator){background-color:var(--accent-track)}@keyframes rt-progress-indicator-surface-indeterminate-fade{to{background-color:var(--accent-7)}}@keyframes rt-progress-indicator-surface-indeterminate-pulse{0%{background-color:var(--accent-7)}to{background-color:var(--accent-track)}}.rt-ProgressRoot:where(.rt-variant-classic){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-classic-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-classic-indeterminate-pulse;background-color:var(--gray-a3)}.rt-ProgressRoot:where(.rt-variant-classic):after{box-shadow:var(--shadow-1)}.rt-ProgressRoot:where(.rt-variant-classic) :where(.rt-ProgressIndicator){background-color:var(--accent-track)}@keyframes rt-progress-indicator-classic-indeterminate-fade{to{background-color:var(--accent-7)}}@keyframes rt-progress-indicator-classic-indeterminate-pulse{0%{background-color:var(--accent-7)}to{background-color:var(--accent-track)}}.rt-ProgressRoot:where(.rt-variant-soft){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-soft-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-soft-indeterminate-pulse;background-color:var(--gray-a4);background-image:linear-gradient(var(--white-a1),var(--white-a1))}.rt-ProgressRoot:where(.rt-variant-soft) :where(.rt-ProgressIndicator){background-image:linear-gradient(var(--accent-a5),var(--accent-a5));background-color:var(--accent-8)}.rt-ProgressRoot:where(.rt-variant-soft) :where(.rt-ProgressIndicator):after{opacity:.75}@keyframes rt-progress-indicator-soft-indeterminate-fade{to{background-color:var(--accent-5)}}@keyframes rt-progress-indicator-soft-indeterminate-pulse{0%{background-color:var(--accent-5)}to{background-color:var(--accent-7)}}.rt-ProgressRoot:where(.rt-high-contrast){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-high-contrast-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-high-contrast-indeterminate-pulse}.rt-ProgressRoot:where(.rt-high-contrast) :where(.rt-ProgressIndicator){background-color:var(--accent-12)}.rt-ProgressRoot:where(.rt-high-contrast) :where(.rt-ProgressIndicator):after{opacity:.75}@keyframes rt-progress-indicator-high-contrast-indeterminate-fade{to{opacity:.8}}@keyframes rt-progress-indicator-high-contrast-indeterminate-pulse{0%{opacity:.8}to{opacity:1}}.rt-Quote{box-sizing:border-box;font-family:var(--quote-font-family);font-size:calc(var(--quote-font-size-adjust) * 1em);font-style:var(--quote-font-style);font-weight:var(--quote-font-weight);line-height:1.25;letter-spacing:calc(var(--quote-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)));color:inherit}.rt-Quote :where(.rt-Quote){font-size:inherit}.rt-RadioCardsRoot{line-height:var(--line-height);letter-spacing:var(--letter-spacing);cursor:default}.rt-RadioCardsItem{--base-card-padding-top: var(--radio-cards-item-padding-y);--base-card-padding-right: var(--radio-cards-item-padding-x);--base-card-padding-bottom: var(--radio-cards-item-padding-y);--base-card-padding-left: var(--radio-cards-item-padding-x);--base-card-border-radius: var(--radio-cards-item-border-radius);--base-card-border-width: var(--radio-cards-item-border-width);display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.rt-RadioCardsItem>*{pointer-events:none}.rt-RadioCardsItem>:where(svg){flex-shrink:0}.rt-RadioCardsItem:after{outline-offset:-1px}.rt-RadioCardsRoot:where(.rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}@media (min-width: 520px){.rt-RadioCardsRoot:where(.xs\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xs\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 768px){.rt-RadioCardsRoot:where(.sm\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.sm\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 1024px){.rt-RadioCardsRoot:where(.md\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.md\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.md\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 1280px){.rt-RadioCardsRoot:where(.lg\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.lg\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 1640px){.rt-RadioCardsRoot:where(.xl\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xl\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem{--radio-cards-item-border-width: 1px;--radio-cards-item-background-color: var(--color-surface)}:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem:before{background-color:var(--radio-cards-item-background-color)}:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem:after{box-shadow:var(--base-card-surface-box-shadow)}@media (hover: hover){:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem:where(:not(:disabled):not([data-state=checked]):hover):after{box-shadow:var(--base-card-surface-hover-box-shadow)}}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem{--radio-cards-item-border-width: 1px;--radio-cards-item-background-color: var(--color-surface);transition:box-shadow .12s;box-shadow:var(--base-card-classic-box-shadow-outer)}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:before{background-color:var(--radio-cards-item-background-color)}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:after{box-shadow:var(--base-card-classic-box-shadow-inner)}@media (hover: hover){:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:where(:not(:disabled):not([data-state=checked]):hover){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:where(:not(:disabled):not([data-state=checked]):hover):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}}.rt-RadioCardsItem:where([data-state=checked]):after{outline:2px solid var(--accent-indicator)}:where(.rt-RadioCardsRoot.rt-high-contrast) .rt-RadioCardsItem:where([data-state=checked]):after{outline-color:var(--accent-12)}.rt-RadioCardsItem:where(:focus-visible):after{outline:2px solid var(--focus-8)}.rt-RadioCardsItem:where(:focus-visible):where([data-state=checked]):before{background-image:linear-gradient(var(--focus-a3),var(--focus-a3))}.rt-RadioCardsItem:where(:focus-visible):where([data-state=checked]):after{outline-color:var(--focus-10)}.rt-RadioCardsItem:where(:disabled){cursor:var(--cursor-disabled);color:var(--gray-a9)}.rt-RadioCardsItem:where(:disabled)::selection{background-color:var(--gray-a5)}.rt-RadioCardsItem:where(:disabled):before{background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-RadioCardsItem:where(:disabled):after{outline-color:var(--gray-8)}.rt-RadioGroupRoot{display:flex;flex-direction:column;gap:var(--space-1)}.rt-RadioGroupItem{display:flex;gap:.5em;width:-moz-fit-content;width:fit-content}.rt-RadioGroupItemInner{min-width:0}.rt-BaseRadioRoot{position:relative;display:inline-flex;align-items:center;justify-content:center;vertical-align:top;flex-shrink:0;cursor:var(--cursor-radio);height:var(--skeleton-height, var(--line-height, var(--radio-size)));--skeleton-height-override: var(--radio-size);border-radius:var(--skeleton-radius);--skeleton-radius-override: 100%}.rt-BaseRadioRoot:where(:disabled,[data-disabled]){cursor:var(--cursor-disabled)}.rt-BaseRadioRoot:before{content:"";display:block;height:var(--radio-size);width:var(--radio-size);border-radius:100%}.rt-BaseRadioRoot:after{pointer-events:none;position:absolute;height:var(--radio-size);width:var(--radio-size);border-radius:100%;transform:scale(.4)}.rt-BaseRadioRoot:where(:checked,[data-state=checked]):after{content:""}.rt-BaseRadioRoot:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-BaseRadioRoot:where(.rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}@media (min-width: 520px){.rt-BaseRadioRoot:where(.xs\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.xs\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.xs\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 768px){.rt-BaseRadioRoot:where(.sm\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.sm\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.sm\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1024px){.rt-BaseRadioRoot:where(.md\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.md\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.md\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1280px){.rt-BaseRadioRoot:where(.lg\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.lg\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.lg\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1640px){.rt-BaseRadioRoot:where(.xl\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.xl\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.xl\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:not(:checked),[data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a7)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:checked,[data-state=checked]):before{background-color:var(--accent-indicator)}.rt-BaseRadioRoot:where(.rt-variant-surface):after{background-color:var(--accent-contrast)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(.rt-high-contrast):where(:checked,[data-state=checked]):before{background-color:var(--accent-12)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(.rt-high-contrast):after{background-color:var(--accent-1)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:disabled,[data-disabled]):before{box-shadow:inset 0 0 0 1px var(--gray-a6);background-color:var(--gray-a3)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:disabled,[data-disabled]):after{background-color:var(--gray-a8)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:not(:checked),[data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-7),var(--shadow-1)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:checked,[data-state=checked]):before{background-color:var(--accent-indicator);background-image:linear-gradient(to bottom,var(--white-a3),transparent,var(--black-a3));box-shadow:inset 0 .5px .5px var(--white-a4),inset 0 -.5px .5px var(--black-a4)}.rt-BaseRadioRoot:where(.rt-variant-classic):after{background-color:var(--accent-contrast)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(.rt-high-contrast):where(:checked,[data-state=checked]):before{background-color:var(--accent-12)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(.rt-high-contrast):after{background-color:var(--accent-1)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:disabled,[data-disabled]):before{box-shadow:var(--shadow-1);background-color:var(--gray-a3);background-image:none}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:disabled,[data-disabled]):after{background-color:var(--gray-a8)}.rt-BaseRadioRoot:where(.rt-variant-soft):before{background-color:var(--accent-a4)}.rt-BaseRadioRoot:where(.rt-variant-soft):after{background-color:var(--accent-a11)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(.rt-high-contrast):after{background-color:var(--accent-12)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(:focus-visible):before{outline-color:var(--accent-a8)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(:disabled,[data-disabled]):before{background-color:var(--gray-a3)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(:disabled,[data-disabled]):after{background-color:var(--gray-a8)}.rt-ScrollAreaRoot{display:flex;flex-direction:column;overflow:hidden;width:100%;height:100%}.rt-ScrollAreaViewport{display:flex;flex-direction:column;width:100%;height:100%}.rt-ScrollAreaViewport:where(:focus-visible)+:where(.rt-ScrollAreaViewportFocusRing){position:absolute;inset:0;pointer-events:none;outline:2px solid var(--focus-8);outline-offset:-2px}.rt-ScrollAreaViewport:where(:has(.rt-ScrollAreaScrollbar[data-orientation=horizontal])){overscroll-behavior-x:contain}.rt-ScrollAreaViewport>*{display:block!important;width:-moz-fit-content;width:fit-content;flex-grow:1}.rt-ScrollAreaScrollbar{display:flex;-webkit-user-select:none;user-select:none;touch-action:none;background-color:var(--gray-a3);border-radius:var(--scrollarea-scrollbar-border-radius);animation-duration:.12s;animation-timing-function:ease-out}.rt-ScrollAreaScrollbar:where([data-orientation=vertical]){flex-direction:column;width:var(--scrollarea-scrollbar-size);margin-top:var(--scrollarea-scrollbar-vertical-margin-top);margin-bottom:var(--scrollarea-scrollbar-vertical-margin-bottom);margin-left:var(--scrollarea-scrollbar-vertical-margin-left);margin-right:var(--scrollarea-scrollbar-vertical-margin-right)}.rt-ScrollAreaScrollbar:where([data-orientation=horizontal]){flex-direction:row;height:var(--scrollarea-scrollbar-size);margin-top:var(--scrollarea-scrollbar-horizontal-margin-top);margin-bottom:var(--scrollarea-scrollbar-horizontal-margin-bottom);margin-left:var(--scrollarea-scrollbar-horizontal-margin-left);margin-right:var(--scrollarea-scrollbar-horizontal-margin-right)}.rt-ScrollAreaThumb{position:relative;background-color:var(--gray-a8);border-radius:inherit;transition:background-color .1s}.rt-ScrollAreaThumb:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;min-width:var(--space-4);min-height:var(--space-4)}.rt-ScrollAreaScrollbar:where(.rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}@media (min-width: 520px){.rt-ScrollAreaScrollbar:where(.xs\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xs\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xs\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 768px){.rt-ScrollAreaScrollbar:where(.sm\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.sm\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.sm\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 1024px){.rt-ScrollAreaScrollbar:where(.md\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.md\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.md\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 1280px){.rt-ScrollAreaScrollbar:where(.lg\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.lg\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.lg\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 1640px){.rt-ScrollAreaScrollbar:where(.xl\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xl\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xl\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}.rt-ScrollAreaScrollbar:where([data-state=visible]){animation-name:rt-fade-in}.rt-ScrollAreaScrollbar:where([data-state=hidden]){animation-name:rt-fade-out}@media (hover: hover){.rt-ScrollAreaThumb:where(:hover){background-color:var(--gray-a9)}}.rt-SegmentedControlRoot{display:inline-grid;vertical-align:top;grid-auto-flow:column;grid-auto-columns:1fr;align-items:stretch;color:var(--gray-12);background-color:var(--color-surface);background-image:linear-gradient(var(--gray-a3),var(--gray-a3));position:relative;min-width:max-content;font-family:var(--default-font-family);font-style:normal;text-align:center;isolation:isolate;border-radius:var(--segmented-control-border-radius)}.rt-SegmentedControlRoot:where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-3)}.rt-SegmentedControlItem{display:flex;align-items:stretch;-webkit-user-select:none;user-select:none}.rt-SegmentedControlItem:where(:first-child){border-top-left-radius:inherit;border-bottom-left-radius:inherit}.rt-SegmentedControlItem:where(:nth-last-child(2)){border-top-right-radius:inherit;border-bottom-right-radius:inherit}.rt-SegmentedControlItem:where(:focus-visible){border-radius:inherit;outline:2px solid var(--focus-8);outline-offset:-1px}.rt-SegmentedControlItemLabel :where(svg){flex-shrink:0}@media (hover: hover){:where(.rt-SegmentedControlItem[data-state=off]:not([disabled]):hover) .rt-SegmentedControlItemLabel{background-color:var(--gray-a2)}}.rt-SegmentedControlItemLabelInactive{position:absolute;transition:opacity calc(.8 * var(--segmented-control-transition-duration));font-weight:var(--font-weight-regular);letter-spacing:var(--tab-inactive-letter-spacing);word-spacing:var(--tab-inactive-word-spacing);opacity:1;transition-timing-function:ease-out}:where(.rt-SegmentedControlItem[data-state=on]) .rt-SegmentedControlItemLabelInactive{opacity:0;transition-timing-function:ease-in}.rt-SegmentedControlItemLabelActive{transition:opacity calc(.8 * var(--segmented-control-transition-duration));font-weight:var(--font-weight-medium);letter-spacing:var(--tab-active-letter-spacing);word-spacing:var(--tab-active-word-spacing);opacity:0;transition-timing-function:ease-in}:where(.rt-SegmentedControlItem[data-state=on]) .rt-SegmentedControlItemLabelActive{opacity:1;transition-timing-function:ease-out}.rt-SegmentedControlItemSeparator{z-index:-1;margin:3px -.5px;width:1px;background-color:var(--gray-a4);transition:opacity calc(.8 * var(--segmented-control-transition-duration));transition-timing-function:ease-out}:where(.rt-SegmentedControlItem:first-child) .rt-SegmentedControlItemSeparator,:where(.rt-SegmentedControlItem:where([data-state=on],:focus-visible)) .rt-SegmentedControlItemSeparator,:where(.rt-SegmentedControlItem:where([data-state=on],:focus-visible))+* .rt-SegmentedControlItemSeparator{opacity:0;transition-timing-function:ease-in}:where(.rt-SegmentedControlRoot:has(:focus-visible)) .rt-SegmentedControlItemSeparator{transition-duration:0ms}.rt-SegmentedControlIndicator{display:none;position:absolute;z-index:-1;top:0;left:0;height:100%;pointer-events:none;transition-property:transform;transition-timing-function:cubic-bezier(.445,.05,.55,.95);transition-duration:var(--segmented-control-transition-duration)}.rt-SegmentedControlIndicator:before{inset:1px;position:absolute;border-radius:max(.5px,calc(var(--segmented-control-border-radius) - 1px));background-color:var(--segmented-control-indicator-background-color);content:""}:where(.rt-SegmentedControlItem[data-state=on])~.rt-SegmentedControlIndicator{display:block}:where(.rt-SegmentedControlItem[disabled])~.rt-SegmentedControlIndicator{--segmented-control-indicator-background-color: var(--gray-a3)}:where(.rt-SegmentedControlItem[disabled])~.rt-SegmentedControlIndicator:before{inset:0;box-shadow:none}.rt-SegmentedControlIndicator:where(:nth-child(2)){width:100%}.rt-SegmentedControlIndicator:where(:nth-child(3)){width:50%}.rt-SegmentedControlIndicator:where(:nth-child(4)){width:calc(100% / 3)}.rt-SegmentedControlIndicator:where(:nth-child(5)){width:25%}.rt-SegmentedControlIndicator:where(:nth-child(6)){width:20%}.rt-SegmentedControlIndicator:where(:nth-child(7)){width:calc(100% / 6)}.rt-SegmentedControlIndicator:where(:nth-child(8)){width:calc(100% / 7)}.rt-SegmentedControlIndicator:where(:nth-child(9)){width:12.5%}.rt-SegmentedControlIndicator:where(:nth-child(10)){width:calc(100% / 9)}.rt-SegmentedControlIndicator:where(:nth-child(11)){width:10%}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(1))~.rt-SegmentedControlIndicator{transform:translate(0)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(2))~.rt-SegmentedControlIndicator{transform:translate(100%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(3))~.rt-SegmentedControlIndicator{transform:translate(200%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(4))~.rt-SegmentedControlIndicator{transform:translate(300%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(5))~.rt-SegmentedControlIndicator{transform:translate(400%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(6))~.rt-SegmentedControlIndicator{transform:translate(500%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(7))~.rt-SegmentedControlIndicator{transform:translate(600%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(8))~.rt-SegmentedControlIndicator{transform:translate(700%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(9))~.rt-SegmentedControlIndicator{transform:translate(800%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(10))~.rt-SegmentedControlIndicator{transform:translate(900%)}.rt-SegmentedControlItemLabel{box-sizing:border-box;display:flex;flex-grow:1;align-items:center;justify-content:center;border-radius:inherit}.rt-SegmentedControlRoot:where(.rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}@media (min-width: 520px){.rt-SegmentedControlRoot:where(.xs\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 768px){.rt-SegmentedControlRoot:where(.sm\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 1024px){.rt-SegmentedControlRoot:where(.md\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 1280px){.rt-SegmentedControlRoot:where(.lg\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 1640px){.rt-SegmentedControlRoot:where(.xl\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}.rt-SegmentedControlRoot:where(.rt-variant-surface) :where(.rt-SegmentedControlItem:not([disabled]))~:where(.rt-SegmentedControlIndicator):before{box-shadow:0 0 0 1px var(--gray-a4)}.rt-SegmentedControlRoot:where(.rt-variant-classic) :where(.rt-SegmentedControlItem:not([disabled]))~:where(.rt-SegmentedControlIndicator):before{box-shadow:var(--shadow-2)}.rt-SelectTrigger{display:inline-flex;align-items:center;justify-content:space-between;flex-shrink:0;-webkit-user-select:none;user-select:none;vertical-align:top;line-height:var(--height);font-family:var(--default-font-family);font-weight:var(--font-weight-regular);font-style:normal;text-align:start;color:var(--gray-12)}.rt-SelectTrigger:where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-SelectTriggerInner{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-SelectIcon{flex-shrink:0}:where(.rt-SelectTrigger:not(.rt-variant-ghost)) .rt-SelectIcon{opacity:.9}.rt-SelectContent:where([data-side]){min-width:var(--radix-select-trigger-width);max-height:var(--radix-select-content-available-height);transform-origin:var(--radix-select-content-transform-origin)}.rt-SelectViewport{box-sizing:border-box;padding:var(--select-content-padding)}:where(.rt-SelectContent:has(.rt-ScrollAreaScrollbar[data-orientation=vertical])) .rt-SelectViewport{padding-right:var(--space-3)}.rt-SelectItem{display:flex;align-items:center;height:var(--select-item-height);padding-left:var(--select-item-indicator-width);padding-right:var(--select-item-indicator-width);position:relative;box-sizing:border-box;outline:none;scroll-margin:var(--select-content-padding) 0;-webkit-user-select:none;user-select:none;cursor:var(--cursor-menu-item)}.rt-SelectItemIndicator{position:absolute;left:0;width:var(--select-item-indicator-width);display:inline-flex;align-items:center;justify-content:center}.rt-SelectSeparator{height:1px;margin-top:var(--space-2);margin-bottom:var(--space-2);margin-left:var(--select-item-indicator-width);margin-right:var(--select-separator-margin-right);background-color:var(--gray-a6)}.rt-SelectLabel{display:flex;align-items:center;height:var(--select-item-height);padding-left:var(--select-item-indicator-width);padding-right:var(--select-item-indicator-width);color:var(--gray-a10);-webkit-user-select:none;user-select:none;cursor:default}:where(.rt-SelectItem)+.rt-SelectLabel{margin-top:var(--space-2)}.rt-SelectTrigger:where(:not(.rt-variant-ghost)){box-sizing:border-box;height:var(--select-trigger-height)}.rt-SelectTrigger:where(.rt-variant-ghost){box-sizing:content-box;height:-moz-fit-content;height:fit-content;padding:var(--select-trigger-ghost-padding-y) var(--select-trigger-ghost-padding-x);--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--select-trigger-ghost-padding-y));--margin-right-override: calc(var(--margin-right) - var(--select-trigger-ghost-padding-x));--margin-bottom-override: calc(var(--margin-bottom) - var(--select-trigger-ghost-padding-y));--margin-left-override: calc(var(--margin-left) - var(--select-trigger-ghost-padding-x));margin:var(--margin-top-override) var(--margin-right-override) var(--margin-bottom-override) var(--margin-left-override)}:where(.rt-SelectTrigger:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-SelectTrigger:where(.rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}@media (min-width: 520px){.rt-SelectTrigger:where(.xs\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.xs\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.xs\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xs\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.xs\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.xs\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xs\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.xs\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.xs\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.xs\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 768px){.rt-SelectTrigger:where(.sm\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.sm\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.sm\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.sm\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.sm\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.sm\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.sm\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.sm\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.sm\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.sm\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 1024px){.rt-SelectTrigger:where(.md\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.md\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.md\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.md\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.md\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.md\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.md\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.md\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.md\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.md\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 1280px){.rt-SelectTrigger:where(.lg\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.lg\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.lg\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.lg\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.lg\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.lg\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.lg\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.lg\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.lg\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.lg\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 1640px){.rt-SelectTrigger:where(.xl\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.xl\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.xl\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xl\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.xl\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.xl\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xl\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.xl\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.xl\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.xl\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}.rt-SelectContent:where(.rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.rt-r-size-2,.rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.rt-r-size-2,.rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.rt-r-size-2,.rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}@media (min-width: 520px){.rt-SelectContent:where(.xs\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.xs\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.xs\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.xs\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.xs\:rt-r-size-2,.xs\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.xs\:rt-r-size-2,.xs\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.xs\:rt-r-size-2,.xs\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.xs\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.xs\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.xs\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.xs\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 768px){.rt-SelectContent:where(.sm\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.sm\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.sm\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.sm\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.sm\:rt-r-size-2,.sm\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.sm\:rt-r-size-2,.sm\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.sm\:rt-r-size-2,.sm\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.sm\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.sm\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.sm\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.sm\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 1024px){.rt-SelectContent:where(.md\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.md\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.md\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.md\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.md\:rt-r-size-2,.md\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.md\:rt-r-size-2,.md\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.md\:rt-r-size-2,.md\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.md\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.md\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.md\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.md\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 1280px){.rt-SelectContent:where(.lg\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.lg\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.lg\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.lg\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.lg\:rt-r-size-2,.lg\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.lg\:rt-r-size-2,.lg\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.lg\:rt-r-size-2,.lg\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.lg\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.lg\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.lg\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.lg\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 1640px){.rt-SelectContent:where(.xl\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.xl\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.xl\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.xl\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.xl\:rt-r-size-2,.xl\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.xl\:rt-r-size-2,.xl\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.xl\:rt-r-size-2,.xl\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.xl\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.xl\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.xl\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.xl\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}.rt-SelectTrigger:where(.rt-variant-surface){color:var(--gray-12);background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a7)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-surface):where(:hover){box-shadow:inset 0 0 0 1px var(--gray-a8)}}.rt-SelectTrigger:where(.rt-variant-surface):where([data-state=open]){box-shadow:inset 0 0 0 1px var(--gray-a8)}.rt-SelectTrigger:where(.rt-variant-surface):where(:disabled){color:var(--gray-a11);background-color:var(--gray-a2);box-shadow:inset 0 0 0 1px var(--gray-a6)}.rt-SelectTrigger:where(.rt-variant-surface):where([data-placeholder]) :where(.rt-SelectTriggerInner){color:var(--gray-a10)}.rt-SelectTrigger:where(.rt-variant-classic){color:var(--gray-12);background-image:linear-gradient(var(--gray-2),var(--gray-1));box-shadow:var(--select-trigger-classic-box-shadow);position:relative;z-index:0}.rt-SelectTrigger:where(.rt-variant-classic):before{content:"";position:absolute;z-index:-1;inset:0;border:2px solid transparent;background-clip:content-box;border-radius:inherit;pointer-events:none;background-image:linear-gradient(var(--black-a1) -20%,transparent,var(--white-a1) 130%),linear-gradient(var(--color-surface),transparent)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-classic):where(:hover){box-shadow:inset 0 0 0 1px var(--gray-a3),var(--select-trigger-classic-box-shadow)}.rt-SelectTrigger:where(.rt-variant-classic):where(:hover):before{background-image:linear-gradient(var(--black-a1) -15%,transparent,var(--white-a1) 120%),linear-gradient(var(--gray-2),var(--gray-1))}}.rt-SelectTrigger:where(.rt-variant-classic):where([data-state=open]){box-shadow:inset 0 0 0 1px var(--gray-a3),var(--select-trigger-classic-box-shadow)}.rt-SelectTrigger:where(.rt-variant-classic):where([data-state=open]):before{background-image:linear-gradient(var(--black-a1) -15%,transparent,var(--white-a1) 120%),linear-gradient(var(--gray-2),var(--gray-1))}.rt-SelectTrigger:where(.rt-variant-classic):where(:disabled){color:var(--gray-a11);background-color:var(--gray-2);background-image:none;box-shadow:var(--base-button-classic-disabled-box-shadow)}.rt-SelectTrigger:where(.rt-variant-classic):where(:disabled):before{background-color:var(--gray-a2);background-image:linear-gradient(var(--black-a1) -20%,transparent,var(--white-a1))}.rt-SelectTrigger:where(.rt-variant-classic):where([data-placeholder]) :where(.rt-SelectTriggerInner){color:var(--gray-a10)}.rt-SelectTrigger:where(.rt-variant-soft),.rt-SelectTrigger:where(.rt-variant-ghost){color:var(--accent-12)}.rt-SelectTrigger:where(.rt-variant-soft):where([data-placeholder]) :where(.rt-SelectTriggerInner),.rt-SelectTrigger:where(.rt-variant-ghost):where([data-placeholder]) :where(.rt-SelectTriggerInner){color:var(--accent-12);opacity:.6}.rt-SelectTrigger:where(.rt-variant-soft){background-color:var(--accent-a3)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-soft):where(:hover){background-color:var(--accent-a4)}}.rt-SelectTrigger:where(.rt-variant-soft):where([data-state=open]){background-color:var(--accent-a4)}.rt-SelectTrigger:where(.rt-variant-soft):where(:focus-visible){outline-color:var(--accent-8)}.rt-SelectTrigger:where(.rt-variant-soft):where(:disabled){color:var(--gray-a11);background-color:var(--gray-a3)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-ghost):where(:hover){background-color:var(--accent-a3)}}.rt-SelectTrigger:where(.rt-variant-ghost):where([data-state=open]){background-color:var(--accent-a3)}.rt-SelectTrigger:where(.rt-variant-ghost):where(:disabled){color:var(--gray-a11);background-color:transparent}.rt-SelectTrigger:where(:disabled) :where(.rt-SelectIcon){color:var(--gray-a9)}.rt-SelectContent{box-shadow:var(--shadow-5);--scrollarea-scrollbar-vertical-margin-top: var(--select-content-padding);--scrollarea-scrollbar-vertical-margin-bottom: var(--select-content-padding);--scrollarea-scrollbar-horizontal-margin-left: var(--select-content-padding);--scrollarea-scrollbar-horizontal-margin-right: var(--select-content-padding);overflow:hidden;background-color:var(--color-panel-solid)}.rt-SelectItem:where([data-disabled]){color:var(--gray-a8);cursor:default}.rt-SelectContent:where(.rt-variant-solid) :where(.rt-SelectItem[data-highlighted]){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-SelectContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-SelectItem[data-highlighted]){background-color:var(--accent-12);color:var(--accent-1)}.rt-SelectContent:where(.rt-variant-soft) :where(.rt-SelectItem[data-highlighted]){background-color:var(--accent-a4)}.rt-Separator{display:block;background-color:var(--accent-a6)}.rt-Separator:where(.rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.rt-r-orientation-vertical){width:1px;height:var(--separator-size)}@media (min-width: 520px){.rt-Separator:where(.xs\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.xs\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 768px){.rt-Separator:where(.sm\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.sm\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 1024px){.rt-Separator:where(.md\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.md\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 1280px){.rt-Separator:where(.lg\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.lg\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 1640px){.rt-Separator:where(.xl\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.xl\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}.rt-Separator:where(.rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.rt-r-size-4){--separator-size: 100%}@media (min-width: 520px){.rt-Separator:where(.xs\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.xs\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.xs\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.xs\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 768px){.rt-Separator:where(.sm\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.sm\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.sm\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.sm\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 1024px){.rt-Separator:where(.md\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.md\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.md\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.md\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 1280px){.rt-Separator:where(.lg\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.lg\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.lg\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.lg\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 1640px){.rt-Separator:where(.xl\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.xl\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.xl\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.xl\:rt-r-size-4){--separator-size: 100%}}.rt-SliderRoot{--slider-thumb-size: calc(var(--slider-track-size) + var(--space-1));position:relative;display:flex;align-items:center;flex-grow:1;border-radius:max(calc(var(--radius-factor) * var(--slider-track-size) / 3),calc(var(--radius-factor) * var(--radius-thumb)));-webkit-user-select:none;user-select:none;touch-action:none}.rt-SliderRoot:where([data-orientation=horizontal]){width:-webkit-fill-available;width:-moz-available;width:stretch;height:var(--slider-track-size)}.rt-SliderRoot:where([data-orientation=vertical]){height:-webkit-fill-available;height:-moz-available;height:stretch;flex-direction:column;width:var(--slider-track-size)}.rt-SliderTrack{overflow:hidden;position:relative;flex-grow:1;border-radius:inherit}.rt-SliderTrack:where([data-orientation=horizontal]){height:var(--slider-track-size)}.rt-SliderTrack:where([data-orientation=vertical]){width:var(--slider-track-size)}.rt-SliderRange{position:absolute;border-radius:inherit}.rt-SliderRange:where([data-orientation=horizontal]){height:100%}.rt-SliderRange:where([data-orientation=vertical]){width:100%}.rt-SliderThumb{display:block;width:var(--slider-thumb-size);height:var(--slider-thumb-size);outline:0}.rt-SliderThumb:before{content:"";position:absolute;z-index:-1;width:calc(var(--slider-thumb-size) * 3);height:calc(var(--slider-thumb-size) * 3);top:50%;left:50%;transform:translate(-50%,-50%)}.rt-SliderThumb:after{content:"";position:absolute;inset:calc(-.25 * var(--slider-track-size));background-color:#fff;border-radius:max(var(--radius-1),var(--radius-thumb));box-shadow:var(--slider-thumb-box-shadow);cursor:var(--cursor-slider-thumb)}.rt-SliderThumb:where(:focus-visible):after{box-shadow:var(--slider-thumb-box-shadow),0 0 0 3px var(--accent-3),0 0 0 5px var(--focus-8)}.rt-SliderThumb:where(:active){cursor:var(--cursor-slider-thumb-active)}.rt-SliderRoot:where(.rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}@media (min-width: 520px){.rt-SliderRoot:where(.xs\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.xs\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.xs\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 768px){.rt-SliderRoot:where(.sm\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.sm\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.sm\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 1024px){.rt-SliderRoot:where(.md\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.md\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.md\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 1280px){.rt-SliderRoot:where(.lg\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.lg\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.lg\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 1640px){.rt-SliderRoot:where(.xl\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.xl\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.xl\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderTrack){background-color:var(--gray-a3);box-shadow:inset 0 0 0 1px var(--gray-a5)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderTrack):where([data-disabled]){box-shadow:inset 0 0 0 1px var(--gray-a4)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderRange){background-color:var(--accent-track);background-image:var(--slider-range-high-contrast-background-image);box-shadow:inset 0 0 0 1px var(--gray-a5)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderThumb){--slider-thumb-box-shadow: 0 0 0 1px var(--black-a4)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderThumb):where([data-disabled]):after{background-color:var(--gray-1);box-shadow:0 0 0 1px var(--gray-6)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderTrack){background-color:var(--gray-a3);position:relative}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderTrack):before{content:"";inset:0;position:absolute;border-radius:inherit;box-shadow:var(--shadow-1)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderTrack):where([data-disabled]):before{opacity:.5}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderRange){background-color:var(--accent-track);background-image:var(--slider-range-high-contrast-background-image);box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--accent-a4),inset 0 0 0 1px var(--black-a1),inset 0 1.5px 2px 0 var(--black-a2)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderRange):where(.rt-high-contrast){box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--black-a2),inset 0 1.5px 2px 0 var(--black-a2)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderThumb){--slider-thumb-box-shadow: 0 0 0 1px var(--black-a3), 0 1px 3px var(--black-a1), 0 2px 4px -1px var(--black-a1)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderThumb):where([data-disabled]):after{background-color:var(--gray-1);box-shadow:0 0 0 1px var(--gray-6)}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderTrack){background-color:var(--gray-a4);background-image:linear-gradient(var(--white-a1),var(--white-a1))}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderTrack):where([data-disabled]){background-color:var(--gray-a4);background-image:none}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderRange){background-image:linear-gradient(var(--accent-a5),var(--accent-a5)),var(--slider-range-high-contrast-background-image);background-color:var(--accent-6)}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderThumb){--slider-thumb-box-shadow: 0 0 0 1px var(--black-a3), 0 0 0 1px var(--gray-a2), 0 0 0 1px var(--accent-a2), 0 1px 2px var(--gray-a4), 0 1px 3px -.5px var(--gray-a3)}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderThumb):where([data-disabled]):after{background-color:var(--gray-1);box-shadow:0 0 0 1px var(--gray-5)}.rt-SliderRoot:where(:not(.rt-high-contrast)){--slider-range-high-contrast-background-image: none}.rt-SliderRoot:where([data-disabled]){cursor:var(--cursor-disabled);mix-blend-mode:var(--slider-disabled-blend-mode)}.rt-SliderRange:where([data-disabled]){background-color:transparent;background-image:none;box-shadow:none}.rt-SliderThumb:where([data-disabled]),.rt-SliderThumb:where([data-disabled]):after{cursor:var(--cursor-disabled)}.rt-Spinner{display:block;position:relative;opacity:var(--spinner-opacity)}.rt-SpinnerLeaf{position:absolute;top:0;left:43.75%;width:12.5%;height:100%;animation:rt-spinner-leaf-fade var(--spinner-animation-duration) linear infinite}.rt-SpinnerLeaf:before{content:"";display:block;width:100%;height:30%;border-radius:var(--radius-1);background-color:currentColor}.rt-SpinnerLeaf:where(:nth-child(1)){transform:rotate(0);animation-delay:calc(-8 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(2)){transform:rotate(45deg);animation-delay:calc(-7 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(3)){transform:rotate(90deg);animation-delay:calc(-6 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(4)){transform:rotate(135deg);animation-delay:calc(-5 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(5)){transform:rotate(180deg);animation-delay:calc(-4 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(6)){transform:rotate(225deg);animation-delay:calc(-3 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(7)){transform:rotate(270deg);animation-delay:calc(-2 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(8)){transform:rotate(315deg);animation-delay:calc(-1 / 8 * var(--spinner-animation-duration))}@keyframes rt-spinner-leaf-fade{0%{opacity:1}to{opacity:.25}}.rt-Spinner:where(.rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}@media (min-width: 520px){.rt-Spinner:where(.xs\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.xs\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.xs\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 768px){.rt-Spinner:where(.sm\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.sm\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.sm\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 1024px){.rt-Spinner:where(.md\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.md\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.md\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 1280px){.rt-Spinner:where(.lg\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.lg\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.lg\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 1640px){.rt-Spinner:where(.xl\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.xl\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.xl\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}.rt-Strong{font-family:var(--strong-font-family);font-size:calc(var(--strong-font-size-adjust) * 1em);font-style:var(--strong-font-style);font-weight:var(--strong-font-weight);letter-spacing:calc(var(--strong-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)))}.rt-Strong :where(.rt-Strong){font-size:inherit}.rt-SwitchRoot{position:relative;display:inline-flex;align-items:center;vertical-align:top;flex-shrink:0;height:var(--skeleton-height, var(--line-height, var(--switch-height)));--skeleton-height-override: var(--switch-height);border-radius:var(--skeleton-radius);--skeleton-radius-override: var(--switch-border-radius);--switch-width: calc(var(--switch-height) * 1.75);--switch-thumb-inset: 1px;--switch-thumb-size: calc(var(--switch-height) - var(--switch-thumb-inset) * 2);--switch-thumb-translate-x: calc(var(--switch-width) - var(--switch-height))}.rt-SwitchRoot:before{content:"";display:block;width:var(--switch-width);height:var(--switch-height);border-radius:var(--switch-border-radius);transition:background-position,background-color,box-shadow,filter;transition-timing-function:linear,ease-in-out,ease-in-out,ease-in-out;background-repeat:no-repeat;background-size:calc(var(--switch-width) * 2 + var(--switch-height)) 100%;cursor:var(--cursor-switch)}.rt-SwitchRoot:where([data-state=unchecked]):before{transition-duration:.12s,.14s,.14s,.14s;background-position-x:100%}.rt-SwitchRoot:where([data-state=checked]):before{transition-duration:.16s,.14s,.14s,.14s;background-position:0%}.rt-SwitchRoot:where(:active):before{transition-duration:30ms}.rt-SwitchRoot:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-SwitchRoot:where([data-disabled]):before{cursor:var(--cursor-disabled)}.rt-SwitchThumb{background-color:#fff;position:absolute;left:var(--switch-thumb-inset);width:var(--switch-thumb-size);height:var(--switch-thumb-size);border-radius:calc(var(--switch-border-radius) - var(--switch-thumb-inset));transition:transform .14s cubic-bezier(.45,.05,.55,.95),box-shadow .14s ease-in-out}.rt-SwitchThumb:where([data-state=checked]){transform:translate(var(--switch-thumb-translate-x))}.rt-SwitchRoot:where(.rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}@media (min-width: 520px){.rt-SwitchRoot:where(.xs\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.xs\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.xs\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 768px){.rt-SwitchRoot:where(.sm\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.sm\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.sm\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 1024px){.rt-SwitchRoot:where(.md\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.md\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.md\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 1280px){.rt-SwitchRoot:where(.lg\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.lg\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.lg\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 1640px){.rt-SwitchRoot:where(.xl\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.xl\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.xl\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}.rt-SwitchRoot:where(.rt-variant-surface):before{background-color:var(--gray-a3);background-image:linear-gradient(to right,var(--accent-track) 40%,transparent 60%);box-shadow:inset 0 0 0 1px var(--gray-a5)}.rt-SwitchRoot:where(.rt-variant-surface):where(:active):before{background-color:var(--gray-a4)}.rt-SwitchRoot:where(.rt-variant-surface):where([data-state=checked]:active):before{filter:var(--switch-surface-checked-active-filter)}.rt-SwitchRoot:where(.rt-variant-surface):where(.rt-high-contrast):before{background-image:linear-gradient(to right,var(--switch-high-contrast-checked-color-overlay) 40%,transparent 60%),linear-gradient(to right,var(--accent-track) 40%,transparent 60%)}.rt-SwitchRoot:where(.rt-variant-surface):where(.rt-high-contrast):where([data-state=checked]:active):before{filter:var(--switch-high-contrast-checked-active-before-filter)}.rt-SwitchRoot:where(.rt-variant-surface):where([data-disabled]){mix-blend-mode:var(--switch-disabled-blend-mode)}.rt-SwitchRoot:where(.rt-variant-surface):where([data-disabled]):before{filter:none;background-image:none;background-color:var(--gray-a3);box-shadow:inset 0 0 0 1px var(--gray-a3)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-state=unchecked]){box-shadow:0 0 1px 1px var(--black-a2),0 1px 1px var(--black-a1),0 2px 4px -1px var(--black-a1)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-state=checked]){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a1),0 0 0 1px var(--accent-a4),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-state=checked]):where(.rt-high-contrast){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a2),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-disabled]){background-color:var(--gray-2);box-shadow:0 0 0 1px var(--gray-a2),0 1px 3px var(--black-a1);transition:none}.rt-SwitchRoot:where(.rt-variant-classic):before{background-image:linear-gradient(to right,var(--accent-track) 40%,transparent 60%);background-color:var(--gray-a4);box-shadow:var(--shadow-1)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-state=unchecked]:active):before{background-color:var(--gray-a5)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-state=checked]):before{box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--accent-a4),inset 0 0 0 1px var(--black-a1),inset 0 1.5px 2px 0 var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-state=checked]:active):before{filter:var(--switch-surface-checked-active-filter)}.rt-SwitchRoot:where(.rt-variant-classic):where(.rt-high-contrast):before{box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--black-a2),inset 0 1.5px 2px 0 var(--black-a2);background-image:linear-gradient(to right,var(--switch-high-contrast-checked-color-overlay) 40%,transparent 60%),linear-gradient(to right,var(--accent-track) 40%,transparent 60%)}.rt-SwitchRoot:where(.rt-variant-classic):where(.rt-high-contrast):where([data-state=checked]:active):before{filter:var(--switch-high-contrast-checked-active-before-filter)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-disabled]){mix-blend-mode:var(--switch-disabled-blend-mode)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-disabled]):before{filter:none;background-image:none;background-color:var(--gray-a5);box-shadow:var(--shadow-1);opacity:.5}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-state=unchecked]){box-shadow:0 1px 3px var(--black-a3),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-state=checked]){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a1),0 0 0 1px var(--accent-a4),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-state=checked]):where(.rt-high-contrast){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a2),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-disabled]){background-color:var(--gray-2);box-shadow:0 0 0 1px var(--gray-a2),0 1px 3px var(--black-a1);transition:none}.rt-SwitchRoot:where(.rt-variant-soft):before{background-image:linear-gradient(to right,var(--accent-a4) 40%,transparent 60%),linear-gradient(to right,var(--accent-a4) 40%,transparent 60%),linear-gradient(to right,var(--accent-a4) 40%,var(--white-a1) 60%),linear-gradient(to right,var(--gray-a2) 40%,var(--gray-a3) 60%)}.rt-SwitchRoot:where(.rt-variant-soft):where([data-state=unchecked]):before{background-color:var(--gray-a3)}.rt-SwitchRoot:where(.rt-variant-soft):where(:active):before{background-color:var(--gray-a4)}.rt-SwitchRoot:where(.rt-variant-soft):where(.rt-high-contrast):before{background-image:linear-gradient(to right,var(--switch-high-contrast-checked-color-overlay) 40%,transparent 60%),linear-gradient(to right,var(--accent-a6) 40%,transparent 60%),linear-gradient(to right,var(--accent-a6) 40%,transparent 60%),linear-gradient(to right,var(--accent-a6) 40%,var(--white-a1) 60%),linear-gradient(to right,var(--accent-a3) 40%,var(--gray-a3) 60%)}.rt-SwitchRoot:where(.rt-variant-soft):where(.rt-high-contrast):where([data-state=checked]:active):before{filter:var(--switch-high-contrast-checked-active-before-filter)}.rt-SwitchRoot:where(.rt-variant-soft):where([data-disabled]){mix-blend-mode:var(--switch-disabled-blend-mode)}.rt-SwitchRoot:where(.rt-variant-soft):where([data-disabled]):before{filter:none;background-image:none;background-color:var(--gray-a4)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb){filter:saturate(.45)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb):where([data-state=unchecked]){box-shadow:0 0 0 1px var(--black-a1),0 1px 3px var(--black-a1),0 1px 3px var(--black-a1),0 2px 4px -1px var(--black-a1)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb):where([data-state=checked]){box-shadow:0 0 0 1px var(--black-a1),0 1px 3px var(--black-a2),0 1px 3px var(--accent-a3),0 2px 4px -1px var(--accent-a3)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb):where([data-disabled]){filter:none;background-color:var(--gray-2);box-shadow:0 0 0 1px var(--gray-a2),0 1px 3px var(--black-a1);transition:none}.rt-BaseTabList::-webkit-scrollbar{display:none}.rt-BaseTabListTrigger{display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;-webkit-user-select:none;user-select:none;box-sizing:border-box;height:var(--tab-height);padding-left:var(--tab-padding-x);padding-right:var(--tab-padding-x);color:var(--gray-a11)}.rt-BaseTabListTriggerInner,.rt-BaseTabListTriggerInnerHidden{display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:var(--tab-inner-padding-y) var(--tab-inner-padding-x);border-radius:var(--tab-inner-border-radius)}.rt-BaseTabListTriggerInner{position:absolute}:where(.rt-BaseTabListTrigger[data-state=inactive],.rt-TabNavLink:not([data-active])) .rt-BaseTabListTriggerInner{letter-spacing:var(--tab-inactive-letter-spacing);word-spacing:var(--tab-inactive-word-spacing)}:where(.rt-BaseTabListTrigger[data-state=active],.rt-TabNavLink[data-active]) .rt-BaseTabListTriggerInner{font-weight:var(--font-weight-medium);letter-spacing:var(--tab-active-letter-spacing);word-spacing:var(--tab-active-word-spacing)}.rt-BaseTabListTriggerInnerHidden{visibility:hidden;font-weight:var(--font-weight-medium);letter-spacing:var(--tab-active-letter-spacing);word-spacing:var(--tab-active-word-spacing)}.rt-BaseTabList:where(.rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}@media (min-width: 520px){.rt-BaseTabList:where(.xs\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 768px){.rt-BaseTabList:where(.sm\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 1024px){.rt-BaseTabList:where(.md\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.md\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 1280px){.rt-BaseTabList:where(.lg\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 1640px){.rt-BaseTabList:where(.xl\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}.rt-BaseTabList{box-shadow:inset 0 -1px 0 0 var(--gray-a5);display:flex;justify-content:flex-start;overflow-x:auto;white-space:nowrap;font-family:var(--default-font-family);font-style:normal;scrollbar-width:none}@media (hover: hover){.rt-BaseTabListTrigger:where(:hover){color:var(--gray-12)}.rt-BaseTabListTrigger:where(:hover) :where(.rt-BaseTabListTriggerInner){background-color:var(--gray-a3)}.rt-BaseTabListTrigger:where(:focus-visible:hover) :where(.rt-BaseTabListTriggerInner){background-color:var(--accent-a3)}}.rt-BaseTabListTrigger:where([data-state=active],[data-active]){color:var(--gray-12)}.rt-BaseTabListTrigger:where(:focus-visible) :where(.rt-BaseTabListTriggerInner){outline:2px solid var(--focus-8);outline-offset:-2px}.rt-BaseTabListTrigger:where([data-state=active],[data-active]):before{box-sizing:border-box;content:"";height:2px;position:absolute;bottom:0;left:0;right:0;background-color:var(--accent-indicator)}:where(.rt-BaseTabList.rt-high-contrast) .rt-BaseTabListTrigger:where([data-state=active],[data-active]):before{background-color:var(--accent-12)}.rt-TabNavItem{display:flex}.rt-TableRootTable{--table-row-background-color: transparent;--table-row-box-shadow: inset 0 -1px var(--gray-a5);width:100%;text-align:left;vertical-align:top;border-collapse:collapse;border-radius:calc(var(--table-border-radius) - 1px);border-spacing:0;box-sizing:border-box;height:0}.rt-TableHeader,.rt-TableBody{vertical-align:inherit}.rt-TableRow{vertical-align:inherit;color:var(--gray-12)}.rt-TableCell{background-color:var(--table-row-background-color);box-shadow:var(--table-row-box-shadow);box-sizing:border-box;vertical-align:inherit;padding:var(--table-cell-padding);height:var(--table-cell-min-height)}.rt-Inset :where(.rt-TableCell:first-child){padding-left:var(--inset-padding-left, var(--table-cell-padding))}.rt-Inset :where(.rt-TableCell:last-child){padding-right:var(--inset-padding-right, var(--table-cell-padding))}.rt-TableColumnHeaderCell{font-weight:700}.rt-TableRowHeaderCell{font-weight:400}.rt-TableRoot:where(.rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}@media (min-width: 520px){.rt-TableRoot:where(.xs\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.xs\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xs\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.xs\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xs\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.xs\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 768px){.rt-TableRoot:where(.sm\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.sm\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.sm\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.sm\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.sm\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.sm\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 1024px){.rt-TableRoot:where(.md\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.md\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.md\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.md\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.md\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.md\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 1280px){.rt-TableRoot:where(.lg\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.lg\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.lg\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.lg\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.lg\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.lg\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 1640px){.rt-TableRoot:where(.xl\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.xl\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xl\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.xl\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xl\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.xl\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}.rt-TableRoot:where(.rt-variant-surface){box-sizing:border-box;border:1px solid var(--gray-a5);border-radius:var(--table-border-radius);background-color:var(--color-panel);-webkit-backdrop-filter:var(--backdrop-filter-panel);backdrop-filter:var(--backdrop-filter-panel);background-clip:padding-box;position:relative}@supports (box-shadow: 0 0 0 1px color-mix(in oklab,white,black)){.rt-TableRoot:where(.rt-variant-surface){border-color:color-mix(in oklab,var(--gray-a5),var(--gray-6))}}.rt-TableRoot:where(.rt-variant-surface) :where(.rt-TableRootTable){overflow:hidden}.rt-TableRoot:where(.rt-variant-surface) :where(.rt-TableRootTable) :where(.rt-TableHeader){--table-row-background-color: var(--gray-a2)}.rt-TableRoot:where(.rt-variant-surface) :where(.rt-TableRootTable) :where(.rt-TableBody) :where(.rt-TableRow:last-child){--table-row-box-shadow: none}.rt-TableRoot:where(.rt-variant-ghost){--scrollarea-scrollbar-horizontal-margin-left: 0;--scrollarea-scrollbar-horizontal-margin-right: 0}.rt-TabsContent{position:relative;outline:0}.rt-TabsContent:where(:focus-visible){outline:2px solid var(--focus-8)}.rt-TextAreaRoot:where(:focus-within){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-TextAreaInput::-webkit-scrollbar{width:var(--space-3);height:var(--space-3)}.rt-TextAreaInput::-webkit-scrollbar-track,.rt-TextAreaInput::-webkit-scrollbar-thumb{background-clip:content-box;border:var(--space-1) solid transparent;border-radius:var(--space-3)}.rt-TextAreaInput::-webkit-scrollbar-track{background-color:var(--gray-a3)}.rt-TextAreaInput::-webkit-scrollbar-thumb{background-color:var(--gray-a8)}@media (hover: hover){:where(.rt-TextAreaInput:not(:disabled))::-webkit-scrollbar-thumb:hover{background-color:var(--gray-a9)}}.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]){-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--gray-12)}.rt-TextAreaRoot{padding:var(--text-area-border-width);display:flex;flex-direction:column;box-sizing:border-box;font-family:var(--default-font-family);font-weight:var(--font-weight-regular);font-style:normal;text-align:start;overflow:hidden}.rt-TextAreaInput{padding:var(--text-area-padding-y) var(--text-area-padding-x);border-radius:inherit;resize:none;display:block;width:100%;flex-grow:1;cursor:auto}.rt-TextAreaRoot:where(.rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}@media (min-width: 520px){.rt-TextAreaRoot:where(.xs\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xs\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.xs\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xs\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.xs\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.xs\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 768px){.rt-TextAreaRoot:where(.sm\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.sm\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.sm\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.sm\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.sm\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.sm\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 1024px){.rt-TextAreaRoot:where(.md\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.md\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.md\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.md\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.md\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.md\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 1280px){.rt-TextAreaRoot:where(.lg\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.lg\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.lg\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.lg\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.lg\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.lg\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 1640px){.rt-TextAreaRoot:where(.xl\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xl\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.xl\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xl\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.xl\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.xl\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}.rt-TextAreaRoot:where(.rt-variant-surface){--text-area-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:inset 0 0 0 var(--text-area-border-width) var(--gray-a7);color:var(--gray-12)}.rt-TextAreaRoot:where(.rt-variant-surface) :where(.rt-TextAreaInput)::placeholder{color:var(--gray-a10)}.rt-TextAreaRoot:where(.rt-variant-surface):where(:has(.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextAreaRoot:where(.rt-variant-surface):where(:has(.rt-TextAreaInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2));box-shadow:inset 0 0 0 var(--text-area-border-width) var(--gray-a6)}.rt-TextAreaRoot:where(.rt-variant-classic){--text-area-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:var(--shadow-1);color:var(--gray-12)}.rt-TextAreaRoot:where(.rt-variant-classic) :where(.rt-TextAreaInput)::placeholder{color:var(--gray-a10)}.rt-TextAreaRoot:where(.rt-variant-classic):where(:has(.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextAreaRoot:where(.rt-variant-classic):where(:has(.rt-TextAreaInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-TextAreaRoot:where(.rt-variant-soft){--text-area-border-width: 0px;background-color:var(--accent-a3);color:var(--accent-12)}.rt-TextAreaRoot:where(.rt-variant-soft) :where(.rt-TextAreaInput)::selection{background-color:var(--accent-a5)}.rt-TextAreaRoot:where(.rt-variant-soft) :where(.rt-TextAreaInput)::placeholder{color:var(--accent-12);opacity:.65}.rt-TextAreaRoot:where(.rt-variant-soft):where(:focus-within){outline-color:var(--accent-8)}.rt-TextAreaRoot:where(.rt-variant-soft):where(:has(.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){box-shadow:inset 0 0 0 1px var(--accent-a5),inset 0 0 0 1px var(--gray-a4)}.rt-TextAreaRoot:where(.rt-variant-soft):where(:has(.rt-TextAreaInput:where(:disabled,:read-only))){background-color:var(--gray-a3)}.rt-TextAreaInput:where(:disabled,:read-only){cursor:text;color:var(--gray-a11);-webkit-text-fill-color:var(--gray-a11)}.rt-TextAreaInput:where(:disabled,:read-only)::placeholder{opacity:.5}.rt-TextAreaInput:where(:disabled,:read-only):where(:placeholder-shown){cursor:var(--cursor-disabled)}.rt-TextAreaInput:where(:disabled,:read-only)::selection{background-color:var(--gray-a5)}.rt-TextAreaRoot:where(:focus-within:has(.rt-TextAreaInput:where(:disabled,:read-only))){outline-color:var(--gray-8)}@supports selector(:has(*)){.rt-TextFieldRoot:where(:has(.rt-TextFieldInput:focus)){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}@supports not selector(:has(*)){.rt-TextFieldRoot:where(:focus-within){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}.rt-TextFieldRoot::selection{background-color:var(--text-field-selection-color)}.rt-TextFieldInput{width:100%;display:flex;align-items:center;text-align:inherit;border-radius:calc(var(--text-field-border-radius) - var(--text-field-border-width));text-indent:var(--text-field-padding)}.rt-TextFieldInput:where([type=number]){-moz-appearance:textfield}.rt-TextFieldInput::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.rt-TextFieldInput::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.rt-TextFieldInput::selection{background-color:var(--text-field-selection-color)}.rt-TextFieldInput::-webkit-calendar-picker-indicator{box-sizing:content-box;width:var(--text-field-native-icon-size);height:var(--text-field-native-icon-size);padding:var(--space-1);margin-left:0;margin-right:calc(var(--space-1) * -1);border-radius:calc(var(--text-field-border-radius) - 2px)}.rt-TextFieldInput:where(:not([type=time]))::-webkit-calendar-picker-indicator{margin-left:var(--space-1)}.rt-TextFieldInput::-webkit-calendar-picker-indicator:where(:hover){background-color:var(--gray-a3)}.rt-TextFieldInput::-webkit-calendar-picker-indicator:where(:focus-visible){outline:2px solid var(--text-field-focus-color)}.rt-TextFieldInput::-webkit-datetime-edit-ampm-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-day-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-hour-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-millisecond-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-minute-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-month-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-second-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-week-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-year-field:where(:focus){background-color:var(--text-field-selection-color);color:inherit;outline:none}@supports selector(:has(*)){.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]){-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--gray-12)}}.rt-TextFieldSlot{box-sizing:border-box;flex-shrink:0;display:flex;align-items:center;cursor:text}.rt-TextFieldSlot:where(:not([data-side=right])){order:-1;margin-left:calc(var(--text-field-border-width) * -1);margin-right:0}.rt-TextFieldSlot:where([data-side=right]),:where(.rt-TextFieldSlot:not([data-side=right]))~.rt-TextFieldSlot:where(:not([data-side=left])){order:0;margin-left:0;margin-right:calc(var(--text-field-border-width) * -1)}.rt-TextFieldRoot{box-sizing:border-box;height:var(--text-field-height);padding:var(--text-field-border-width);border-radius:var(--text-field-border-radius);display:flex;align-items:stretch;font-family:var(--default-font-family);font-weight:var(--font-weight-regular);font-style:normal;text-align:start}.rt-TextFieldInput:where([type=date],[type=datetime-local],[type=time],[type=week],[type=month]){text-indent:0;padding-left:var(--text-field-padding);padding-right:var(--text-field-padding)}.rt-TextFieldInput:where(:has(~.rt-TextFieldSlot:not([data-side=right]))){text-indent:0;padding-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.rt-TextFieldInput:where(:has(~.rt-TextFieldSlot[data-side=right],~.rt-TextFieldSlot:not([data-side=right])~.rt-TextFieldSlot:not([data-side=left]))){padding-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.rt-TextFieldRoot:where(.rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}@media (min-width: 520px){.rt-TextFieldRoot:where(.xs\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.xs\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.xs\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.xs\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.xs\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.xs\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.xs\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.xs\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 768px){.rt-TextFieldRoot:where(.sm\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.sm\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.sm\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.sm\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.sm\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.sm\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.sm\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.sm\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 1024px){.rt-TextFieldRoot:where(.md\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.md\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.md\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.md\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.md\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.md\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.md\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.md\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.md\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.md\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.md\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.md\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 1280px){.rt-TextFieldRoot:where(.lg\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.lg\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.lg\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.lg\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.lg\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.lg\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.lg\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.lg\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 1640px){.rt-TextFieldRoot:where(.xl\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.xl\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.xl\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.xl\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.xl\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.xl\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.xl\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.xl\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}.rt-TextFieldRoot:where(.rt-variant-surface){--text-field-selection-color: var(--focus-a5);--text-field-focus-color: var(--focus-8);--text-field-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:inset 0 0 0 var(--text-field-border-width) var(--gray-a7);color:var(--gray-12)}.rt-TextFieldRoot:where(.rt-variant-surface) :where(.rt-TextFieldInput)::placeholder{color:var(--gray-a10)}.rt-TextFieldRoot:where(.rt-variant-surface) :where(.rt-TextFieldSlot){color:var(--gray-a11)}.rt-TextFieldRoot:where(.rt-variant-surface) :where(.rt-TextFieldSlot):where([data-accent-color]){color:var(--accent-a11)}.rt-TextFieldRoot:where(.rt-variant-surface):where(:has(.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextFieldRoot:where(.rt-variant-surface):where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2));box-shadow:inset 0 0 0 var(--text-field-border-width) var(--gray-a6)}.rt-TextFieldRoot:where(.rt-variant-classic){--text-field-selection-color: var(--focus-a5);--text-field-focus-color: var(--focus-8);--text-field-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:var(--shadow-1);color:var(--gray-12)}.rt-TextFieldRoot:where(.rt-variant-classic) :where(.rt-TextFieldInput)::placeholder{color:var(--gray-a10)}.rt-TextFieldRoot:where(.rt-variant-classic) :where(.rt-TextFieldSlot){color:var(--gray-a11)}.rt-TextFieldRoot:where(.rt-variant-classic) :where(.rt-TextFieldSlot):where([data-accent-color]){color:var(--accent-a11)}.rt-TextFieldRoot:where(.rt-variant-classic):where(:has(.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextFieldRoot:where(.rt-variant-classic):where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-TextFieldRoot:where(.rt-variant-soft){--text-field-selection-color: var(--accent-a5);--text-field-focus-color: var(--accent-8);--text-field-border-width: 0px;background-color:var(--accent-a3);color:var(--accent-12)}.rt-TextFieldRoot:where(.rt-variant-soft) :where(.rt-TextFieldInput)::placeholder{color:var(--accent-12);opacity:.6}.rt-TextFieldRoot:where(.rt-variant-soft) :where(.rt-TextFieldSlot){color:var(--accent-12)}.rt-TextFieldRoot:where(.rt-variant-soft) :where(.rt-TextFieldSlot):where([data-accent-color]){color:var(--accent-a11)}.rt-TextFieldRoot:where(.rt-variant-soft):where(:has(.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){box-shadow:inset 0 0 0 1px var(--accent-a5),inset 0 0 0 1px var(--gray-a4)}.rt-TextFieldRoot:where(.rt-variant-soft):where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){background-color:var(--gray-a3)}.rt-TextFieldInput:where(:disabled,:read-only){cursor:text;color:var(--gray-a11);-webkit-text-fill-color:var(--gray-a11)}.rt-TextFieldInput:where(:disabled,:read-only)::placeholder{opacity:.5}.rt-TextFieldInput:where(:disabled,:read-only):where(:placeholder-shown){cursor:var(--cursor-disabled)}.rt-TextFieldInput:where(:disabled,:read-only):where(:placeholder-shown)~:where(.rt-TextFieldSlot){cursor:var(--cursor-disabled)}.rt-TextFieldRoot:where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){--text-field-selection-color: var(--gray-a5);--text-field-focus-color: var(--gray-8)}.rt-ThemePanelShortcut:where(:focus-visible){outline-style:solid;outline-width:2px;outline-offset:2px;outline-color:var(--accent-9)}.rt-ThemePanelSwatch,.rt-ThemePanelRadioCard{position:relative}.rt-ThemePanelSwatchInput,.rt-ThemePanelRadioCardInput{-webkit-appearance:none;appearance:none;margin:0;outline:none;outline-width:2px;position:absolute;inset:0;border-radius:inherit;width:100%;height:100%}.rt-ThemePanelSwatch{width:var(--space-5);height:var(--space-5);border-radius:100%}.rt-ThemePanelSwatchInput{outline-offset:2px}.rt-ThemePanelSwatchInput:where(:checked){outline-style:solid;outline-color:var(--gray-12)}.rt-ThemePanelSwatchInput:where(:focus-visible){outline-style:solid;outline-color:var(--accent-9)}.rt-ThemePanelRadioCard{border-radius:var(--radius-1);box-shadow:0 0 0 1px var(--gray-7)}.rt-ThemePanelRadioCardInput{outline-offset:-1px}.rt-ThemePanelRadioCardInput:where(:checked){outline-style:solid;outline-color:var(--gray-12)}.rt-ThemePanelRadioCardInput:where(:focus-visible){background-color:var(--accent-a3);outline-style:solid;outline-color:var(--accent-9)}.rt-TooltipContent{box-sizing:border-box;padding:var(--space-1) var(--space-2);background-color:var(--gray-12);border-radius:var(--radius-2);transform-origin:var(--radix-tooltip-content-transform-origin);animation-duration:.14s;animation-timing-function:cubic-bezier(.16,1,.3,1)}@media (prefers-reduced-motion: no-preference){.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=top]){animation-name:rt-slide-from-top,rt-fade-in}.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=bottom]){animation-name:rt-slide-from-bottom,rt-fade-in}.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=left]){animation-name:rt-slide-from-left,rt-fade-in}.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=right]){animation-name:rt-slide-from-right,rt-fade-in}}.rt-TooltipText{color:var(--gray-1);-webkit-user-select:none;user-select:none;cursor:default}.rt-TooltipArrow{fill:var(--gray-12)}.radix-themes:where([data-is-root-theme=true]){position:relative;z-index:0;min-height:100vh}@supports (min-height: 100dvh){.radix-themes:where([data-is-root-theme=true]){min-height:100dvh}}.rt-r-ai-start{align-items:flex-start}.rt-r-ai-center{align-items:center}.rt-r-ai-end{align-items:flex-end}.rt-r-ai-baseline{align-items:baseline}.rt-r-ai-stretch{align-items:stretch}@media (min-width: 520px){.xs\:rt-r-ai-start{align-items:flex-start}.xs\:rt-r-ai-center{align-items:center}.xs\:rt-r-ai-end{align-items:flex-end}.xs\:rt-r-ai-baseline{align-items:baseline}.xs\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 768px){.sm\:rt-r-ai-start{align-items:flex-start}.sm\:rt-r-ai-center{align-items:center}.sm\:rt-r-ai-end{align-items:flex-end}.sm\:rt-r-ai-baseline{align-items:baseline}.sm\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 1024px){.md\:rt-r-ai-start{align-items:flex-start}.md\:rt-r-ai-center{align-items:center}.md\:rt-r-ai-end{align-items:flex-end}.md\:rt-r-ai-baseline{align-items:baseline}.md\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 1280px){.lg\:rt-r-ai-start{align-items:flex-start}.lg\:rt-r-ai-center{align-items:center}.lg\:rt-r-ai-end{align-items:flex-end}.lg\:rt-r-ai-baseline{align-items:baseline}.lg\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 1640px){.xl\:rt-r-ai-start{align-items:flex-start}.xl\:rt-r-ai-center{align-items:center}.xl\:rt-r-ai-end{align-items:flex-end}.xl\:rt-r-ai-baseline{align-items:baseline}.xl\:rt-r-ai-stretch{align-items:stretch}}.rt-r-as-start{align-self:flex-start}.rt-r-as-center{align-self:center}.rt-r-as-end{align-self:flex-end}.rt-r-as-baseline{align-self:baseline}.rt-r-as-stretch{align-self:stretch}@media (min-width: 520px){.xs\:rt-r-as-start{align-self:flex-start}.xs\:rt-r-as-center{align-self:center}.xs\:rt-r-as-end{align-self:flex-end}.xs\:rt-r-as-baseline{align-self:baseline}.xs\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 768px){.sm\:rt-r-as-start{align-self:flex-start}.sm\:rt-r-as-center{align-self:center}.sm\:rt-r-as-end{align-self:flex-end}.sm\:rt-r-as-baseline{align-self:baseline}.sm\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 1024px){.md\:rt-r-as-start{align-self:flex-start}.md\:rt-r-as-center{align-self:center}.md\:rt-r-as-end{align-self:flex-end}.md\:rt-r-as-baseline{align-self:baseline}.md\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 1280px){.lg\:rt-r-as-start{align-self:flex-start}.lg\:rt-r-as-center{align-self:center}.lg\:rt-r-as-end{align-self:flex-end}.lg\:rt-r-as-baseline{align-self:baseline}.lg\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 1640px){.xl\:rt-r-as-start{align-self:flex-start}.xl\:rt-r-as-center{align-self:center}.xl\:rt-r-as-end{align-self:flex-end}.xl\:rt-r-as-baseline{align-self:baseline}.xl\:rt-r-as-stretch{align-self:stretch}}.rt-r-display-block{display:block}.rt-r-display-inline{display:inline}.rt-r-display-inline-block{display:inline-block}.rt-r-display-flex{display:flex}.rt-r-display-inline-flex{display:inline-flex}.rt-r-display-grid{display:grid}.rt-r-display-inline-grid{display:inline-grid}.rt-r-display-none{display:none}.rt-r-display-contents{display:contents}@media (min-width: 520px){.xs\:rt-r-display-block{display:block}.xs\:rt-r-display-inline{display:inline}.xs\:rt-r-display-inline-block{display:inline-block}.xs\:rt-r-display-flex{display:flex}.xs\:rt-r-display-inline-flex{display:inline-flex}.xs\:rt-r-display-grid{display:grid}.xs\:rt-r-display-inline-grid{display:inline-grid}.xs\:rt-r-display-none{display:none}.xs\:rt-r-display-contents{display:contents}}@media (min-width: 768px){.sm\:rt-r-display-block{display:block}.sm\:rt-r-display-inline{display:inline}.sm\:rt-r-display-inline-block{display:inline-block}.sm\:rt-r-display-flex{display:flex}.sm\:rt-r-display-inline-flex{display:inline-flex}.sm\:rt-r-display-grid{display:grid}.sm\:rt-r-display-inline-grid{display:inline-grid}.sm\:rt-r-display-none{display:none}.sm\:rt-r-display-contents{display:contents}}@media (min-width: 1024px){.md\:rt-r-display-block{display:block}.md\:rt-r-display-inline{display:inline}.md\:rt-r-display-inline-block{display:inline-block}.md\:rt-r-display-flex{display:flex}.md\:rt-r-display-inline-flex{display:inline-flex}.md\:rt-r-display-grid{display:grid}.md\:rt-r-display-inline-grid{display:inline-grid}.md\:rt-r-display-none{display:none}.md\:rt-r-display-contents{display:contents}}@media (min-width: 1280px){.lg\:rt-r-display-block{display:block}.lg\:rt-r-display-inline{display:inline}.lg\:rt-r-display-inline-block{display:inline-block}.lg\:rt-r-display-flex{display:flex}.lg\:rt-r-display-inline-flex{display:inline-flex}.lg\:rt-r-display-grid{display:grid}.lg\:rt-r-display-inline-grid{display:inline-grid}.lg\:rt-r-display-none{display:none}.lg\:rt-r-display-contents{display:contents}}@media (min-width: 1640px){.xl\:rt-r-display-block{display:block}.xl\:rt-r-display-inline{display:inline}.xl\:rt-r-display-inline-block{display:inline-block}.xl\:rt-r-display-flex{display:flex}.xl\:rt-r-display-inline-flex{display:inline-flex}.xl\:rt-r-display-grid{display:grid}.xl\:rt-r-display-inline-grid{display:inline-grid}.xl\:rt-r-display-none{display:none}.xl\:rt-r-display-contents{display:contents}}.rt-r-fb{flex-basis:var(--flex-basis)}@media (min-width: 520px){.xs\:rt-r-fb{flex-basis:var(--flex-basis-xs)}}@media (min-width: 768px){.sm\:rt-r-fb{flex-basis:var(--flex-basis-sm)}}@media (min-width: 1024px){.md\:rt-r-fb{flex-basis:var(--flex-basis-md)}}@media (min-width: 1280px){.lg\:rt-r-fb{flex-basis:var(--flex-basis-lg)}}@media (min-width: 1640px){.xl\:rt-r-fb{flex-basis:var(--flex-basis-xl)}}.rt-r-fd-row{flex-direction:row}.rt-r-fd-column{flex-direction:column}.rt-r-fd-row-reverse{flex-direction:row-reverse}.rt-r-fd-column-reverse{flex-direction:column-reverse}@media (min-width: 520px){.xs\:rt-r-fd-row{flex-direction:row}.xs\:rt-r-fd-column{flex-direction:column}.xs\:rt-r-fd-row-reverse{flex-direction:row-reverse}.xs\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 768px){.sm\:rt-r-fd-row{flex-direction:row}.sm\:rt-r-fd-column{flex-direction:column}.sm\:rt-r-fd-row-reverse{flex-direction:row-reverse}.sm\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 1024px){.md\:rt-r-fd-row{flex-direction:row}.md\:rt-r-fd-column{flex-direction:column}.md\:rt-r-fd-row-reverse{flex-direction:row-reverse}.md\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 1280px){.lg\:rt-r-fd-row{flex-direction:row}.lg\:rt-r-fd-column{flex-direction:column}.lg\:rt-r-fd-row-reverse{flex-direction:row-reverse}.lg\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 1640px){.xl\:rt-r-fd-row{flex-direction:row}.xl\:rt-r-fd-column{flex-direction:column}.xl\:rt-r-fd-row-reverse{flex-direction:row-reverse}.xl\:rt-r-fd-column-reverse{flex-direction:column-reverse}}.rt-r-fg{flex-grow:var(--flex-grow)}.rt-r-fg-0{flex-grow:0}.rt-r-fg-1{flex-grow:1}@media (min-width: 520px){.xs\:rt-r-fg{flex-grow:var(--flex-grow-xs)}.xs\:rt-r-fg-0{flex-grow:0}.xs\:rt-r-fg-1{flex-grow:1}}@media (min-width: 768px){.sm\:rt-r-fg{flex-grow:var(--flex-grow-sm)}.sm\:rt-r-fg-0{flex-grow:0}.sm\:rt-r-fg-1{flex-grow:1}}@media (min-width: 1024px){.md\:rt-r-fg{flex-grow:var(--flex-grow-md)}.md\:rt-r-fg-0{flex-grow:0}.md\:rt-r-fg-1{flex-grow:1}}@media (min-width: 1280px){.lg\:rt-r-fg{flex-grow:var(--flex-grow-lg)}.lg\:rt-r-fg-0{flex-grow:0}.lg\:rt-r-fg-1{flex-grow:1}}@media (min-width: 1640px){.xl\:rt-r-fg{flex-grow:var(--flex-grow-xl)}.xl\:rt-r-fg-0{flex-grow:0}.xl\:rt-r-fg-1{flex-grow:1}}.rt-r-fs{flex-shrink:var(--flex-shrink)}.rt-r-fs-0{flex-shrink:0}.rt-r-fs-1{flex-shrink:1}@media (min-width: 520px){.xs\:rt-r-fs{flex-shrink:var(--flex-shrink-xs)}.xs\:rt-r-fs-0{flex-shrink:0}.xs\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 768px){.sm\:rt-r-fs{flex-shrink:var(--flex-shrink-sm)}.sm\:rt-r-fs-0{flex-shrink:0}.sm\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 1024px){.md\:rt-r-fs{flex-shrink:var(--flex-shrink-md)}.md\:rt-r-fs-0{flex-shrink:0}.md\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 1280px){.lg\:rt-r-fs{flex-shrink:var(--flex-shrink-lg)}.lg\:rt-r-fs-0{flex-shrink:0}.lg\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 1640px){.xl\:rt-r-fs{flex-shrink:var(--flex-shrink-xl)}.xl\:rt-r-fs-0{flex-shrink:0}.xl\:rt-r-fs-1{flex-shrink:1}}.rt-r-fw-nowrap{flex-wrap:nowrap}.rt-r-fw-wrap{flex-wrap:wrap}.rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}@media (min-width: 520px){.xs\:rt-r-fw-nowrap{flex-wrap:nowrap}.xs\:rt-r-fw-wrap{flex-wrap:wrap}.xs\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 768px){.sm\:rt-r-fw-nowrap{flex-wrap:nowrap}.sm\:rt-r-fw-wrap{flex-wrap:wrap}.sm\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 1024px){.md\:rt-r-fw-nowrap{flex-wrap:nowrap}.md\:rt-r-fw-wrap{flex-wrap:wrap}.md\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 1280px){.lg\:rt-r-fw-nowrap{flex-wrap:nowrap}.lg\:rt-r-fw-wrap{flex-wrap:wrap}.lg\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 1640px){.xl\:rt-r-fw-nowrap{flex-wrap:nowrap}.xl\:rt-r-fw-wrap{flex-wrap:wrap}.xl\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}.rt-r-gap{gap:var(--gap)}.rt-r-gap-0{gap:0}.rt-r-gap-1{gap:var(--space-1)}.rt-r-gap-2{gap:var(--space-2)}.rt-r-gap-3{gap:var(--space-3)}.rt-r-gap-4{gap:var(--space-4)}.rt-r-gap-5{gap:var(--space-5)}.rt-r-gap-6{gap:var(--space-6)}.rt-r-gap-7{gap:var(--space-7)}.rt-r-gap-8{gap:var(--space-8)}.rt-r-gap-9{gap:var(--space-9)}.rt-r-cg{column-gap:var(--column-gap)}.rt-r-cg-0{column-gap:0}.rt-r-cg-1{column-gap:var(--space-1)}.rt-r-cg-2{column-gap:var(--space-2)}.rt-r-cg-3{column-gap:var(--space-3)}.rt-r-cg-4{column-gap:var(--space-4)}.rt-r-cg-5{column-gap:var(--space-5)}.rt-r-cg-6{column-gap:var(--space-6)}.rt-r-cg-7{column-gap:var(--space-7)}.rt-r-cg-8{column-gap:var(--space-8)}.rt-r-cg-9{column-gap:var(--space-9)}.rt-r-rg{row-gap:var(--row-gap)}.rt-r-rg-0{row-gap:0}.rt-r-rg-1{row-gap:var(--space-1)}.rt-r-rg-2{row-gap:var(--space-2)}.rt-r-rg-3{row-gap:var(--space-3)}.rt-r-rg-4{row-gap:var(--space-4)}.rt-r-rg-5{row-gap:var(--space-5)}.rt-r-rg-6{row-gap:var(--space-6)}.rt-r-rg-7{row-gap:var(--space-7)}.rt-r-rg-8{row-gap:var(--space-8)}.rt-r-rg-9{row-gap:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-gap{gap:var(--gap-xs)}.xs\:rt-r-gap-0{gap:0}.xs\:rt-r-gap-1{gap:var(--space-1)}.xs\:rt-r-gap-2{gap:var(--space-2)}.xs\:rt-r-gap-3{gap:var(--space-3)}.xs\:rt-r-gap-4{gap:var(--space-4)}.xs\:rt-r-gap-5{gap:var(--space-5)}.xs\:rt-r-gap-6{gap:var(--space-6)}.xs\:rt-r-gap-7{gap:var(--space-7)}.xs\:rt-r-gap-8{gap:var(--space-8)}.xs\:rt-r-gap-9{gap:var(--space-9)}.xs\:rt-r-cg{column-gap:var(--column-gap-xs)}.xs\:rt-r-cg-0{column-gap:0}.xs\:rt-r-cg-1{column-gap:var(--space-1)}.xs\:rt-r-cg-2{column-gap:var(--space-2)}.xs\:rt-r-cg-3{column-gap:var(--space-3)}.xs\:rt-r-cg-4{column-gap:var(--space-4)}.xs\:rt-r-cg-5{column-gap:var(--space-5)}.xs\:rt-r-cg-6{column-gap:var(--space-6)}.xs\:rt-r-cg-7{column-gap:var(--space-7)}.xs\:rt-r-cg-8{column-gap:var(--space-8)}.xs\:rt-r-cg-9{column-gap:var(--space-9)}.xs\:rt-r-rg{row-gap:var(--row-gap-xs)}.xs\:rt-r-rg-0{row-gap:0}.xs\:rt-r-rg-1{row-gap:var(--space-1)}.xs\:rt-r-rg-2{row-gap:var(--space-2)}.xs\:rt-r-rg-3{row-gap:var(--space-3)}.xs\:rt-r-rg-4{row-gap:var(--space-4)}.xs\:rt-r-rg-5{row-gap:var(--space-5)}.xs\:rt-r-rg-6{row-gap:var(--space-6)}.xs\:rt-r-rg-7{row-gap:var(--space-7)}.xs\:rt-r-rg-8{row-gap:var(--space-8)}.xs\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-gap{gap:var(--gap-sm)}.sm\:rt-r-gap-0{gap:0}.sm\:rt-r-gap-1{gap:var(--space-1)}.sm\:rt-r-gap-2{gap:var(--space-2)}.sm\:rt-r-gap-3{gap:var(--space-3)}.sm\:rt-r-gap-4{gap:var(--space-4)}.sm\:rt-r-gap-5{gap:var(--space-5)}.sm\:rt-r-gap-6{gap:var(--space-6)}.sm\:rt-r-gap-7{gap:var(--space-7)}.sm\:rt-r-gap-8{gap:var(--space-8)}.sm\:rt-r-gap-9{gap:var(--space-9)}.sm\:rt-r-cg{column-gap:var(--column-gap-sm)}.sm\:rt-r-cg-0{column-gap:0}.sm\:rt-r-cg-1{column-gap:var(--space-1)}.sm\:rt-r-cg-2{column-gap:var(--space-2)}.sm\:rt-r-cg-3{column-gap:var(--space-3)}.sm\:rt-r-cg-4{column-gap:var(--space-4)}.sm\:rt-r-cg-5{column-gap:var(--space-5)}.sm\:rt-r-cg-6{column-gap:var(--space-6)}.sm\:rt-r-cg-7{column-gap:var(--space-7)}.sm\:rt-r-cg-8{column-gap:var(--space-8)}.sm\:rt-r-cg-9{column-gap:var(--space-9)}.sm\:rt-r-rg{row-gap:var(--row-gap-sm)}.sm\:rt-r-rg-0{row-gap:0}.sm\:rt-r-rg-1{row-gap:var(--space-1)}.sm\:rt-r-rg-2{row-gap:var(--space-2)}.sm\:rt-r-rg-3{row-gap:var(--space-3)}.sm\:rt-r-rg-4{row-gap:var(--space-4)}.sm\:rt-r-rg-5{row-gap:var(--space-5)}.sm\:rt-r-rg-6{row-gap:var(--space-6)}.sm\:rt-r-rg-7{row-gap:var(--space-7)}.sm\:rt-r-rg-8{row-gap:var(--space-8)}.sm\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-gap{gap:var(--gap-md)}.md\:rt-r-gap-0{gap:0}.md\:rt-r-gap-1{gap:var(--space-1)}.md\:rt-r-gap-2{gap:var(--space-2)}.md\:rt-r-gap-3{gap:var(--space-3)}.md\:rt-r-gap-4{gap:var(--space-4)}.md\:rt-r-gap-5{gap:var(--space-5)}.md\:rt-r-gap-6{gap:var(--space-6)}.md\:rt-r-gap-7{gap:var(--space-7)}.md\:rt-r-gap-8{gap:var(--space-8)}.md\:rt-r-gap-9{gap:var(--space-9)}.md\:rt-r-cg{column-gap:var(--column-gap-md)}.md\:rt-r-cg-0{column-gap:0}.md\:rt-r-cg-1{column-gap:var(--space-1)}.md\:rt-r-cg-2{column-gap:var(--space-2)}.md\:rt-r-cg-3{column-gap:var(--space-3)}.md\:rt-r-cg-4{column-gap:var(--space-4)}.md\:rt-r-cg-5{column-gap:var(--space-5)}.md\:rt-r-cg-6{column-gap:var(--space-6)}.md\:rt-r-cg-7{column-gap:var(--space-7)}.md\:rt-r-cg-8{column-gap:var(--space-8)}.md\:rt-r-cg-9{column-gap:var(--space-9)}.md\:rt-r-rg{row-gap:var(--row-gap-md)}.md\:rt-r-rg-0{row-gap:0}.md\:rt-r-rg-1{row-gap:var(--space-1)}.md\:rt-r-rg-2{row-gap:var(--space-2)}.md\:rt-r-rg-3{row-gap:var(--space-3)}.md\:rt-r-rg-4{row-gap:var(--space-4)}.md\:rt-r-rg-5{row-gap:var(--space-5)}.md\:rt-r-rg-6{row-gap:var(--space-6)}.md\:rt-r-rg-7{row-gap:var(--space-7)}.md\:rt-r-rg-8{row-gap:var(--space-8)}.md\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-gap{gap:var(--gap-lg)}.lg\:rt-r-gap-0{gap:0}.lg\:rt-r-gap-1{gap:var(--space-1)}.lg\:rt-r-gap-2{gap:var(--space-2)}.lg\:rt-r-gap-3{gap:var(--space-3)}.lg\:rt-r-gap-4{gap:var(--space-4)}.lg\:rt-r-gap-5{gap:var(--space-5)}.lg\:rt-r-gap-6{gap:var(--space-6)}.lg\:rt-r-gap-7{gap:var(--space-7)}.lg\:rt-r-gap-8{gap:var(--space-8)}.lg\:rt-r-gap-9{gap:var(--space-9)}.lg\:rt-r-cg{column-gap:var(--column-gap-lg)}.lg\:rt-r-cg-0{column-gap:0}.lg\:rt-r-cg-1{column-gap:var(--space-1)}.lg\:rt-r-cg-2{column-gap:var(--space-2)}.lg\:rt-r-cg-3{column-gap:var(--space-3)}.lg\:rt-r-cg-4{column-gap:var(--space-4)}.lg\:rt-r-cg-5{column-gap:var(--space-5)}.lg\:rt-r-cg-6{column-gap:var(--space-6)}.lg\:rt-r-cg-7{column-gap:var(--space-7)}.lg\:rt-r-cg-8{column-gap:var(--space-8)}.lg\:rt-r-cg-9{column-gap:var(--space-9)}.lg\:rt-r-rg{row-gap:var(--row-gap-lg)}.lg\:rt-r-rg-0{row-gap:0}.lg\:rt-r-rg-1{row-gap:var(--space-1)}.lg\:rt-r-rg-2{row-gap:var(--space-2)}.lg\:rt-r-rg-3{row-gap:var(--space-3)}.lg\:rt-r-rg-4{row-gap:var(--space-4)}.lg\:rt-r-rg-5{row-gap:var(--space-5)}.lg\:rt-r-rg-6{row-gap:var(--space-6)}.lg\:rt-r-rg-7{row-gap:var(--space-7)}.lg\:rt-r-rg-8{row-gap:var(--space-8)}.lg\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-gap{gap:var(--gap-xl)}.xl\:rt-r-gap-0{gap:0}.xl\:rt-r-gap-1{gap:var(--space-1)}.xl\:rt-r-gap-2{gap:var(--space-2)}.xl\:rt-r-gap-3{gap:var(--space-3)}.xl\:rt-r-gap-4{gap:var(--space-4)}.xl\:rt-r-gap-5{gap:var(--space-5)}.xl\:rt-r-gap-6{gap:var(--space-6)}.xl\:rt-r-gap-7{gap:var(--space-7)}.xl\:rt-r-gap-8{gap:var(--space-8)}.xl\:rt-r-gap-9{gap:var(--space-9)}.xl\:rt-r-cg{column-gap:var(--column-gap-xl)}.xl\:rt-r-cg-0{column-gap:0}.xl\:rt-r-cg-1{column-gap:var(--space-1)}.xl\:rt-r-cg-2{column-gap:var(--space-2)}.xl\:rt-r-cg-3{column-gap:var(--space-3)}.xl\:rt-r-cg-4{column-gap:var(--space-4)}.xl\:rt-r-cg-5{column-gap:var(--space-5)}.xl\:rt-r-cg-6{column-gap:var(--space-6)}.xl\:rt-r-cg-7{column-gap:var(--space-7)}.xl\:rt-r-cg-8{column-gap:var(--space-8)}.xl\:rt-r-cg-9{column-gap:var(--space-9)}.xl\:rt-r-rg{row-gap:var(--row-gap-xl)}.xl\:rt-r-rg-0{row-gap:0}.xl\:rt-r-rg-1{row-gap:var(--space-1)}.xl\:rt-r-rg-2{row-gap:var(--space-2)}.xl\:rt-r-rg-3{row-gap:var(--space-3)}.xl\:rt-r-rg-4{row-gap:var(--space-4)}.xl\:rt-r-rg-5{row-gap:var(--space-5)}.xl\:rt-r-rg-6{row-gap:var(--space-6)}.xl\:rt-r-rg-7{row-gap:var(--space-7)}.xl\:rt-r-rg-8{row-gap:var(--space-8)}.xl\:rt-r-rg-9{row-gap:var(--space-9)}}.rt-r-ga{grid-area:var(--grid-area)}@media (min-width: 520px){.xs\:rt-r-ga{grid-area:var(--grid-area-xs)}}@media (min-width: 768px){.sm\:rt-r-ga{grid-area:var(--grid-area-sm)}}@media (min-width: 1024px){.md\:rt-r-ga{grid-area:var(--grid-area-md)}}@media (min-width: 1280px){.lg\:rt-r-ga{grid-area:var(--grid-area-lg)}}@media (min-width: 1640px){.xl\:rt-r-ga{grid-area:var(--grid-area-xl)}}.rt-r-gaf-row{grid-auto-flow:row}.rt-r-gaf-column{grid-auto-flow:column}.rt-r-gaf-dense{grid-auto-flow:dense}.rt-r-gaf-row-dense{grid-auto-flow:row dense}.rt-r-gaf-column-dense{grid-auto-flow:column dense}@media (min-width: 520px){.xs\:rt-r-gaf-row{grid-auto-flow:row}.xs\:rt-r-gaf-column{grid-auto-flow:column}.xs\:rt-r-gaf-dense{grid-auto-flow:dense}.xs\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.xs\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 768px){.sm\:rt-r-gaf-row{grid-auto-flow:row}.sm\:rt-r-gaf-column{grid-auto-flow:column}.sm\:rt-r-gaf-dense{grid-auto-flow:dense}.sm\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.sm\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 1024px){.md\:rt-r-gaf-row{grid-auto-flow:row}.md\:rt-r-gaf-column{grid-auto-flow:column}.md\:rt-r-gaf-dense{grid-auto-flow:dense}.md\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.md\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 1280px){.lg\:rt-r-gaf-row{grid-auto-flow:row}.lg\:rt-r-gaf-column{grid-auto-flow:column}.lg\:rt-r-gaf-dense{grid-auto-flow:dense}.lg\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.lg\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 1640px){.xl\:rt-r-gaf-row{grid-auto-flow:row}.xl\:rt-r-gaf-column{grid-auto-flow:column}.xl\:rt-r-gaf-dense{grid-auto-flow:dense}.xl\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.xl\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}.rt-r-gc{grid-column:var(--grid-column)}.rt-r-gc-1{grid-column:1}.rt-r-gc-2{grid-column:2}.rt-r-gc-3{grid-column:3}.rt-r-gc-4{grid-column:4}.rt-r-gc-5{grid-column:5}.rt-r-gc-6{grid-column:6}.rt-r-gc-7{grid-column:7}.rt-r-gc-8{grid-column:8}.rt-r-gc-9{grid-column:9}@media (min-width: 520px){.xs\:rt-r-gc{grid-column:var(--grid-column-xs)}.xs\:rt-r-gc-1{grid-column:1}.xs\:rt-r-gc-2{grid-column:2}.xs\:rt-r-gc-3{grid-column:3}.xs\:rt-r-gc-4{grid-column:4}.xs\:rt-r-gc-5{grid-column:5}.xs\:rt-r-gc-6{grid-column:6}.xs\:rt-r-gc-7{grid-column:7}.xs\:rt-r-gc-8{grid-column:8}.xs\:rt-r-gc-9{grid-column:9}}@media (min-width: 768px){.sm\:rt-r-gc{grid-column:var(--grid-column-sm)}.sm\:rt-r-gc-1{grid-column:1}.sm\:rt-r-gc-2{grid-column:2}.sm\:rt-r-gc-3{grid-column:3}.sm\:rt-r-gc-4{grid-column:4}.sm\:rt-r-gc-5{grid-column:5}.sm\:rt-r-gc-6{grid-column:6}.sm\:rt-r-gc-7{grid-column:7}.sm\:rt-r-gc-8{grid-column:8}.sm\:rt-r-gc-9{grid-column:9}}@media (min-width: 1024px){.md\:rt-r-gc{grid-column:var(--grid-column-md)}.md\:rt-r-gc-1{grid-column:1}.md\:rt-r-gc-2{grid-column:2}.md\:rt-r-gc-3{grid-column:3}.md\:rt-r-gc-4{grid-column:4}.md\:rt-r-gc-5{grid-column:5}.md\:rt-r-gc-6{grid-column:6}.md\:rt-r-gc-7{grid-column:7}.md\:rt-r-gc-8{grid-column:8}.md\:rt-r-gc-9{grid-column:9}}@media (min-width: 1280px){.lg\:rt-r-gc{grid-column:var(--grid-column-lg)}.lg\:rt-r-gc-1{grid-column:1}.lg\:rt-r-gc-2{grid-column:2}.lg\:rt-r-gc-3{grid-column:3}.lg\:rt-r-gc-4{grid-column:4}.lg\:rt-r-gc-5{grid-column:5}.lg\:rt-r-gc-6{grid-column:6}.lg\:rt-r-gc-7{grid-column:7}.lg\:rt-r-gc-8{grid-column:8}.lg\:rt-r-gc-9{grid-column:9}}@media (min-width: 1640px){.xl\:rt-r-gc{grid-column:var(--grid-column-xl)}.xl\:rt-r-gc-1{grid-column:1}.xl\:rt-r-gc-2{grid-column:2}.xl\:rt-r-gc-3{grid-column:3}.xl\:rt-r-gc-4{grid-column:4}.xl\:rt-r-gc-5{grid-column:5}.xl\:rt-r-gc-6{grid-column:6}.xl\:rt-r-gc-7{grid-column:7}.xl\:rt-r-gc-8{grid-column:8}.xl\:rt-r-gc-9{grid-column:9}}.rt-r-gcs{grid-column-start:var(--grid-column-start)}.rt-r-gcs-1{grid-column-start:1}.rt-r-gcs-2{grid-column-start:2}.rt-r-gcs-3{grid-column-start:3}.rt-r-gcs-4{grid-column-start:4}.rt-r-gcs-5{grid-column-start:5}.rt-r-gcs-6{grid-column-start:6}.rt-r-gcs-7{grid-column-start:7}.rt-r-gcs-8{grid-column-start:8}.rt-r-gcs-9{grid-column-start:9}@media (min-width: 520px){.xs\:rt-r-gcs{grid-column-start:var(--grid-column-start-xs)}.xs\:rt-r-gcs-1{grid-column-start:1}.xs\:rt-r-gcs-2{grid-column-start:2}.xs\:rt-r-gcs-3{grid-column-start:3}.xs\:rt-r-gcs-4{grid-column-start:4}.xs\:rt-r-gcs-5{grid-column-start:5}.xs\:rt-r-gcs-6{grid-column-start:6}.xs\:rt-r-gcs-7{grid-column-start:7}.xs\:rt-r-gcs-8{grid-column-start:8}.xs\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 768px){.sm\:rt-r-gcs{grid-column-start:var(--grid-column-start-sm)}.sm\:rt-r-gcs-1{grid-column-start:1}.sm\:rt-r-gcs-2{grid-column-start:2}.sm\:rt-r-gcs-3{grid-column-start:3}.sm\:rt-r-gcs-4{grid-column-start:4}.sm\:rt-r-gcs-5{grid-column-start:5}.sm\:rt-r-gcs-6{grid-column-start:6}.sm\:rt-r-gcs-7{grid-column-start:7}.sm\:rt-r-gcs-8{grid-column-start:8}.sm\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 1024px){.md\:rt-r-gcs{grid-column-start:var(--grid-column-start-md)}.md\:rt-r-gcs-1{grid-column-start:1}.md\:rt-r-gcs-2{grid-column-start:2}.md\:rt-r-gcs-3{grid-column-start:3}.md\:rt-r-gcs-4{grid-column-start:4}.md\:rt-r-gcs-5{grid-column-start:5}.md\:rt-r-gcs-6{grid-column-start:6}.md\:rt-r-gcs-7{grid-column-start:7}.md\:rt-r-gcs-8{grid-column-start:8}.md\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 1280px){.lg\:rt-r-gcs{grid-column-start:var(--grid-column-start-lg)}.lg\:rt-r-gcs-1{grid-column-start:1}.lg\:rt-r-gcs-2{grid-column-start:2}.lg\:rt-r-gcs-3{grid-column-start:3}.lg\:rt-r-gcs-4{grid-column-start:4}.lg\:rt-r-gcs-5{grid-column-start:5}.lg\:rt-r-gcs-6{grid-column-start:6}.lg\:rt-r-gcs-7{grid-column-start:7}.lg\:rt-r-gcs-8{grid-column-start:8}.lg\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 1640px){.xl\:rt-r-gcs{grid-column-start:var(--grid-column-start-xl)}.xl\:rt-r-gcs-1{grid-column-start:1}.xl\:rt-r-gcs-2{grid-column-start:2}.xl\:rt-r-gcs-3{grid-column-start:3}.xl\:rt-r-gcs-4{grid-column-start:4}.xl\:rt-r-gcs-5{grid-column-start:5}.xl\:rt-r-gcs-6{grid-column-start:6}.xl\:rt-r-gcs-7{grid-column-start:7}.xl\:rt-r-gcs-8{grid-column-start:8}.xl\:rt-r-gcs-9{grid-column-start:9}}.rt-r-gce{grid-column-end:var(--grid-column-end)}.rt-r-gce-1{grid-column-end:1}.rt-r-gce-2{grid-column-end:2}.rt-r-gce-3{grid-column-end:3}.rt-r-gce-4{grid-column-end:4}.rt-r-gce-5{grid-column-end:5}.rt-r-gce-6{grid-column-end:6}.rt-r-gce-7{grid-column-end:7}.rt-r-gce-8{grid-column-end:8}.rt-r-gce-9{grid-column-end:9}@media (min-width: 520px){.xs\:rt-r-gce{grid-column-end:var(--grid-column-end-xs)}.xs\:rt-r-gce-1{grid-column-end:1}.xs\:rt-r-gce-2{grid-column-end:2}.xs\:rt-r-gce-3{grid-column-end:3}.xs\:rt-r-gce-4{grid-column-end:4}.xs\:rt-r-gce-5{grid-column-end:5}.xs\:rt-r-gce-6{grid-column-end:6}.xs\:rt-r-gce-7{grid-column-end:7}.xs\:rt-r-gce-8{grid-column-end:8}.xs\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 768px){.sm\:rt-r-gce{grid-column-end:var(--grid-column-end-sm)}.sm\:rt-r-gce-1{grid-column-end:1}.sm\:rt-r-gce-2{grid-column-end:2}.sm\:rt-r-gce-3{grid-column-end:3}.sm\:rt-r-gce-4{grid-column-end:4}.sm\:rt-r-gce-5{grid-column-end:5}.sm\:rt-r-gce-6{grid-column-end:6}.sm\:rt-r-gce-7{grid-column-end:7}.sm\:rt-r-gce-8{grid-column-end:8}.sm\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 1024px){.md\:rt-r-gce{grid-column-end:var(--grid-column-end-md)}.md\:rt-r-gce-1{grid-column-end:1}.md\:rt-r-gce-2{grid-column-end:2}.md\:rt-r-gce-3{grid-column-end:3}.md\:rt-r-gce-4{grid-column-end:4}.md\:rt-r-gce-5{grid-column-end:5}.md\:rt-r-gce-6{grid-column-end:6}.md\:rt-r-gce-7{grid-column-end:7}.md\:rt-r-gce-8{grid-column-end:8}.md\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 1280px){.lg\:rt-r-gce{grid-column-end:var(--grid-column-end-lg)}.lg\:rt-r-gce-1{grid-column-end:1}.lg\:rt-r-gce-2{grid-column-end:2}.lg\:rt-r-gce-3{grid-column-end:3}.lg\:rt-r-gce-4{grid-column-end:4}.lg\:rt-r-gce-5{grid-column-end:5}.lg\:rt-r-gce-6{grid-column-end:6}.lg\:rt-r-gce-7{grid-column-end:7}.lg\:rt-r-gce-8{grid-column-end:8}.lg\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 1640px){.xl\:rt-r-gce{grid-column-end:var(--grid-column-end-xl)}.xl\:rt-r-gce-1{grid-column-end:1}.xl\:rt-r-gce-2{grid-column-end:2}.xl\:rt-r-gce-3{grid-column-end:3}.xl\:rt-r-gce-4{grid-column-end:4}.xl\:rt-r-gce-5{grid-column-end:5}.xl\:rt-r-gce-6{grid-column-end:6}.xl\:rt-r-gce-7{grid-column-end:7}.xl\:rt-r-gce-8{grid-column-end:8}.xl\:rt-r-gce-9{grid-column-end:9}}.rt-r-gr{grid-row:var(--grid-row)}.rt-r-gr-1{grid-row:1}.rt-r-gr-2{grid-row:2}.rt-r-gr-3{grid-row:3}.rt-r-gr-4{grid-row:4}.rt-r-gr-5{grid-row:5}.rt-r-gr-6{grid-row:6}.rt-r-gr-7{grid-row:7}.rt-r-gr-8{grid-row:8}.rt-r-gr-9{grid-row:9}@media (min-width: 520px){.xs\:rt-r-gr{grid-row:var(--grid-row-xs)}.xs\:rt-r-gr-1{grid-row:1}.xs\:rt-r-gr-2{grid-row:2}.xs\:rt-r-gr-3{grid-row:3}.xs\:rt-r-gr-4{grid-row:4}.xs\:rt-r-gr-5{grid-row:5}.xs\:rt-r-gr-6{grid-row:6}.xs\:rt-r-gr-7{grid-row:7}.xs\:rt-r-gr-8{grid-row:8}.xs\:rt-r-gr-9{grid-row:9}}@media (min-width: 768px){.sm\:rt-r-gr{grid-row:var(--grid-row-sm)}.sm\:rt-r-gr-1{grid-row:1}.sm\:rt-r-gr-2{grid-row:2}.sm\:rt-r-gr-3{grid-row:3}.sm\:rt-r-gr-4{grid-row:4}.sm\:rt-r-gr-5{grid-row:5}.sm\:rt-r-gr-6{grid-row:6}.sm\:rt-r-gr-7{grid-row:7}.sm\:rt-r-gr-8{grid-row:8}.sm\:rt-r-gr-9{grid-row:9}}@media (min-width: 1024px){.md\:rt-r-gr{grid-row:var(--grid-row-md)}.md\:rt-r-gr-1{grid-row:1}.md\:rt-r-gr-2{grid-row:2}.md\:rt-r-gr-3{grid-row:3}.md\:rt-r-gr-4{grid-row:4}.md\:rt-r-gr-5{grid-row:5}.md\:rt-r-gr-6{grid-row:6}.md\:rt-r-gr-7{grid-row:7}.md\:rt-r-gr-8{grid-row:8}.md\:rt-r-gr-9{grid-row:9}}@media (min-width: 1280px){.lg\:rt-r-gr{grid-row:var(--grid-row-lg)}.lg\:rt-r-gr-1{grid-row:1}.lg\:rt-r-gr-2{grid-row:2}.lg\:rt-r-gr-3{grid-row:3}.lg\:rt-r-gr-4{grid-row:4}.lg\:rt-r-gr-5{grid-row:5}.lg\:rt-r-gr-6{grid-row:6}.lg\:rt-r-gr-7{grid-row:7}.lg\:rt-r-gr-8{grid-row:8}.lg\:rt-r-gr-9{grid-row:9}}@media (min-width: 1640px){.xl\:rt-r-gr{grid-row:var(--grid-row-xl)}.xl\:rt-r-gr-1{grid-row:1}.xl\:rt-r-gr-2{grid-row:2}.xl\:rt-r-gr-3{grid-row:3}.xl\:rt-r-gr-4{grid-row:4}.xl\:rt-r-gr-5{grid-row:5}.xl\:rt-r-gr-6{grid-row:6}.xl\:rt-r-gr-7{grid-row:7}.xl\:rt-r-gr-8{grid-row:8}.xl\:rt-r-gr-9{grid-row:9}}.rt-r-grs{grid-row-start:var(--grid-row-start)}.rt-r-grs-1{grid-row-start:1}.rt-r-grs-2{grid-row-start:2}.rt-r-grs-3{grid-row-start:3}.rt-r-grs-4{grid-row-start:4}.rt-r-grs-5{grid-row-start:5}.rt-r-grs-6{grid-row-start:6}.rt-r-grs-7{grid-row-start:7}.rt-r-grs-8{grid-row-start:8}.rt-r-grs-9{grid-row-start:9}@media (min-width: 520px){.xs\:rt-r-grs{grid-row-start:var(--grid-row-start-xs)}.xs\:rt-r-grs-1{grid-row-start:1}.xs\:rt-r-grs-2{grid-row-start:2}.xs\:rt-r-grs-3{grid-row-start:3}.xs\:rt-r-grs-4{grid-row-start:4}.xs\:rt-r-grs-5{grid-row-start:5}.xs\:rt-r-grs-6{grid-row-start:6}.xs\:rt-r-grs-7{grid-row-start:7}.xs\:rt-r-grs-8{grid-row-start:8}.xs\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 768px){.sm\:rt-r-grs{grid-row-start:var(--grid-row-start-sm)}.sm\:rt-r-grs-1{grid-row-start:1}.sm\:rt-r-grs-2{grid-row-start:2}.sm\:rt-r-grs-3{grid-row-start:3}.sm\:rt-r-grs-4{grid-row-start:4}.sm\:rt-r-grs-5{grid-row-start:5}.sm\:rt-r-grs-6{grid-row-start:6}.sm\:rt-r-grs-7{grid-row-start:7}.sm\:rt-r-grs-8{grid-row-start:8}.sm\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 1024px){.md\:rt-r-grs{grid-row-start:var(--grid-row-start-md)}.md\:rt-r-grs-1{grid-row-start:1}.md\:rt-r-grs-2{grid-row-start:2}.md\:rt-r-grs-3{grid-row-start:3}.md\:rt-r-grs-4{grid-row-start:4}.md\:rt-r-grs-5{grid-row-start:5}.md\:rt-r-grs-6{grid-row-start:6}.md\:rt-r-grs-7{grid-row-start:7}.md\:rt-r-grs-8{grid-row-start:8}.md\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 1280px){.lg\:rt-r-grs{grid-row-start:var(--grid-row-start-lg)}.lg\:rt-r-grs-1{grid-row-start:1}.lg\:rt-r-grs-2{grid-row-start:2}.lg\:rt-r-grs-3{grid-row-start:3}.lg\:rt-r-grs-4{grid-row-start:4}.lg\:rt-r-grs-5{grid-row-start:5}.lg\:rt-r-grs-6{grid-row-start:6}.lg\:rt-r-grs-7{grid-row-start:7}.lg\:rt-r-grs-8{grid-row-start:8}.lg\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 1640px){.xl\:rt-r-grs{grid-row-start:var(--grid-row-start-xl)}.xl\:rt-r-grs-1{grid-row-start:1}.xl\:rt-r-grs-2{grid-row-start:2}.xl\:rt-r-grs-3{grid-row-start:3}.xl\:rt-r-grs-4{grid-row-start:4}.xl\:rt-r-grs-5{grid-row-start:5}.xl\:rt-r-grs-6{grid-row-start:6}.xl\:rt-r-grs-7{grid-row-start:7}.xl\:rt-r-grs-8{grid-row-start:8}.xl\:rt-r-grs-9{grid-row-start:9}}.rt-r-gre{grid-row-end:var(--grid-row-end)}.rt-r-gre-1{grid-row-end:1}.rt-r-gre-2{grid-row-end:2}.rt-r-gre-3{grid-row-end:3}.rt-r-gre-4{grid-row-end:4}.rt-r-gre-5{grid-row-end:5}.rt-r-gre-6{grid-row-end:6}.rt-r-gre-7{grid-row-end:7}.rt-r-gre-8{grid-row-end:8}.rt-r-gre-9{grid-row-end:9}@media (min-width: 520px){.xs\:rt-r-gre{grid-row-end:var(--grid-row-end-xs)}.xs\:rt-r-gre-1{grid-row-end:1}.xs\:rt-r-gre-2{grid-row-end:2}.xs\:rt-r-gre-3{grid-row-end:3}.xs\:rt-r-gre-4{grid-row-end:4}.xs\:rt-r-gre-5{grid-row-end:5}.xs\:rt-r-gre-6{grid-row-end:6}.xs\:rt-r-gre-7{grid-row-end:7}.xs\:rt-r-gre-8{grid-row-end:8}.xs\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 768px){.sm\:rt-r-gre{grid-row-end:var(--grid-row-end-sm)}.sm\:rt-r-gre-1{grid-row-end:1}.sm\:rt-r-gre-2{grid-row-end:2}.sm\:rt-r-gre-3{grid-row-end:3}.sm\:rt-r-gre-4{grid-row-end:4}.sm\:rt-r-gre-5{grid-row-end:5}.sm\:rt-r-gre-6{grid-row-end:6}.sm\:rt-r-gre-7{grid-row-end:7}.sm\:rt-r-gre-8{grid-row-end:8}.sm\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 1024px){.md\:rt-r-gre{grid-row-end:var(--grid-row-end-md)}.md\:rt-r-gre-1{grid-row-end:1}.md\:rt-r-gre-2{grid-row-end:2}.md\:rt-r-gre-3{grid-row-end:3}.md\:rt-r-gre-4{grid-row-end:4}.md\:rt-r-gre-5{grid-row-end:5}.md\:rt-r-gre-6{grid-row-end:6}.md\:rt-r-gre-7{grid-row-end:7}.md\:rt-r-gre-8{grid-row-end:8}.md\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 1280px){.lg\:rt-r-gre{grid-row-end:var(--grid-row-end-lg)}.lg\:rt-r-gre-1{grid-row-end:1}.lg\:rt-r-gre-2{grid-row-end:2}.lg\:rt-r-gre-3{grid-row-end:3}.lg\:rt-r-gre-4{grid-row-end:4}.lg\:rt-r-gre-5{grid-row-end:5}.lg\:rt-r-gre-6{grid-row-end:6}.lg\:rt-r-gre-7{grid-row-end:7}.lg\:rt-r-gre-8{grid-row-end:8}.lg\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 1640px){.xl\:rt-r-gre{grid-row-end:var(--grid-row-end-xl)}.xl\:rt-r-gre-1{grid-row-end:1}.xl\:rt-r-gre-2{grid-row-end:2}.xl\:rt-r-gre-3{grid-row-end:3}.xl\:rt-r-gre-4{grid-row-end:4}.xl\:rt-r-gre-5{grid-row-end:5}.xl\:rt-r-gre-6{grid-row-end:6}.xl\:rt-r-gre-7{grid-row-end:7}.xl\:rt-r-gre-8{grid-row-end:8}.xl\:rt-r-gre-9{grid-row-end:9}}.rt-r-gta{grid-template-areas:var(--grid-template-areas)}@media (min-width: 520px){.xs\:rt-r-gta{grid-template-areas:var(--grid-template-areas-xs)}}@media (min-width: 768px){.sm\:rt-r-gta{grid-template-areas:var(--grid-template-areas-sm)}}@media (min-width: 1024px){.md\:rt-r-gta{grid-template-areas:var(--grid-template-areas-md)}}@media (min-width: 1280px){.lg\:rt-r-gta{grid-template-areas:var(--grid-template-areas-lg)}}@media (min-width: 1640px){.xl\:rt-r-gta{grid-template-areas:var(--grid-template-areas-xl)}}.rt-r-gtc{grid-template-columns:var(--grid-template-columns)}.rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}@media (min-width: 520px){.xs\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-xs)}.xs\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.xs\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xs\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xs\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xs\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xs\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xs\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xs\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xs\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 768px){.sm\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-sm)}.sm\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.sm\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.sm\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.sm\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 1024px){.md\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-md)}.md\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.md\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.md\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 1280px){.lg\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-lg)}.lg\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.lg\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 1640px){.xl\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-xl)}.xl\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.xl\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xl\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xl\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}.rt-r-gtr{grid-template-rows:var(--grid-template-rows)}.rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}@media (min-width: 520px){.xs\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-xs)}.xs\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.xs\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xs\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.xs\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.xs\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.xs\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.xs\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.xs\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.xs\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 768px){.sm\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-sm)}.sm\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.sm\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.sm\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.sm\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.sm\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.sm\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.sm\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.sm\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.sm\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 1024px){.md\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-md)}.md\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.md\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.md\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.md\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.md\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.md\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.md\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.md\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.md\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 1280px){.lg\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-lg)}.lg\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.lg\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.lg\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.lg\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.lg\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.lg\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.lg\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.lg\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.lg\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 1640px){.xl\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-xl)}.xl\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.xl\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xl\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.xl\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.xl\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.xl\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.xl\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.xl\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.xl\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}.rt-r-h{height:var(--height)}@media (min-width: 520px){.xs\:rt-r-h{height:var(--height-xs)}}@media (min-width: 768px){.sm\:rt-r-h{height:var(--height-sm)}}@media (min-width: 1024px){.md\:rt-r-h{height:var(--height-md)}}@media (min-width: 1280px){.lg\:rt-r-h{height:var(--height-lg)}}@media (min-width: 1640px){.xl\:rt-r-h{height:var(--height-xl)}}.rt-r-min-h{min-height:var(--min-height)}@media (min-width: 520px){.xs\:rt-r-min-h{min-height:var(--min-height-xs)}}@media (min-width: 768px){.sm\:rt-r-min-h{min-height:var(--min-height-sm)}}@media (min-width: 1024px){.md\:rt-r-min-h{min-height:var(--min-height-md)}}@media (min-width: 1280px){.lg\:rt-r-min-h{min-height:var(--min-height-lg)}}@media (min-width: 1640px){.xl\:rt-r-min-h{min-height:var(--min-height-xl)}}.rt-r-max-h{max-height:var(--max-height)}@media (min-width: 520px){.xs\:rt-r-max-h{max-height:var(--max-height-xs)}}@media (min-width: 768px){.sm\:rt-r-max-h{max-height:var(--max-height-sm)}}@media (min-width: 1024px){.md\:rt-r-max-h{max-height:var(--max-height-md)}}@media (min-width: 1280px){.lg\:rt-r-max-h{max-height:var(--max-height-lg)}}@media (min-width: 1640px){.xl\:rt-r-max-h{max-height:var(--max-height-xl)}}.rt-r-inset{inset:var(--inset)}.rt-r-inset-0{inset:0}.rt-r-inset-1{inset:var(--space-1)}.rt-r-inset-2{inset:var(--space-2)}.rt-r-inset-3{inset:var(--space-3)}.rt-r-inset-4{inset:var(--space-4)}.rt-r-inset-5{inset:var(--space-5)}.rt-r-inset-6{inset:var(--space-6)}.rt-r-inset-7{inset:var(--space-7)}.rt-r-inset-8{inset:var(--space-8)}.rt-r-inset-9{inset:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-inset{inset:var(--inset-xs)}.xs\:rt-r-inset-0{inset:0}.xs\:rt-r-inset-1{inset:var(--space-1)}.xs\:rt-r-inset-2{inset:var(--space-2)}.xs\:rt-r-inset-3{inset:var(--space-3)}.xs\:rt-r-inset-4{inset:var(--space-4)}.xs\:rt-r-inset-5{inset:var(--space-5)}.xs\:rt-r-inset-6{inset:var(--space-6)}.xs\:rt-r-inset-7{inset:var(--space-7)}.xs\:rt-r-inset-8{inset:var(--space-8)}.xs\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-inset{inset:var(--inset-sm)}.sm\:rt-r-inset-0{inset:0}.sm\:rt-r-inset-1{inset:var(--space-1)}.sm\:rt-r-inset-2{inset:var(--space-2)}.sm\:rt-r-inset-3{inset:var(--space-3)}.sm\:rt-r-inset-4{inset:var(--space-4)}.sm\:rt-r-inset-5{inset:var(--space-5)}.sm\:rt-r-inset-6{inset:var(--space-6)}.sm\:rt-r-inset-7{inset:var(--space-7)}.sm\:rt-r-inset-8{inset:var(--space-8)}.sm\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-inset{inset:var(--inset-md)}.md\:rt-r-inset-0{inset:0}.md\:rt-r-inset-1{inset:var(--space-1)}.md\:rt-r-inset-2{inset:var(--space-2)}.md\:rt-r-inset-3{inset:var(--space-3)}.md\:rt-r-inset-4{inset:var(--space-4)}.md\:rt-r-inset-5{inset:var(--space-5)}.md\:rt-r-inset-6{inset:var(--space-6)}.md\:rt-r-inset-7{inset:var(--space-7)}.md\:rt-r-inset-8{inset:var(--space-8)}.md\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-inset{inset:var(--inset-lg)}.lg\:rt-r-inset-0{inset:0}.lg\:rt-r-inset-1{inset:var(--space-1)}.lg\:rt-r-inset-2{inset:var(--space-2)}.lg\:rt-r-inset-3{inset:var(--space-3)}.lg\:rt-r-inset-4{inset:var(--space-4)}.lg\:rt-r-inset-5{inset:var(--space-5)}.lg\:rt-r-inset-6{inset:var(--space-6)}.lg\:rt-r-inset-7{inset:var(--space-7)}.lg\:rt-r-inset-8{inset:var(--space-8)}.lg\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-inset{inset:var(--inset-xl)}.xl\:rt-r-inset-0{inset:0}.xl\:rt-r-inset-1{inset:var(--space-1)}.xl\:rt-r-inset-2{inset:var(--space-2)}.xl\:rt-r-inset-3{inset:var(--space-3)}.xl\:rt-r-inset-4{inset:var(--space-4)}.xl\:rt-r-inset-5{inset:var(--space-5)}.xl\:rt-r-inset-6{inset:var(--space-6)}.xl\:rt-r-inset-7{inset:var(--space-7)}.xl\:rt-r-inset-8{inset:var(--space-8)}.xl\:rt-r-inset-9{inset:var(--space-9)}}.rt-r-top{top:var(--top)}.rt-r-top-0{top:0}.rt-r-top-1{top:var(--space-1)}.rt-r-top-2{top:var(--space-2)}.rt-r-top-3{top:var(--space-3)}.rt-r-top-4{top:var(--space-4)}.rt-r-top-5{top:var(--space-5)}.rt-r-top-6{top:var(--space-6)}.rt-r-top-7{top:var(--space-7)}.rt-r-top-8{top:var(--space-8)}.rt-r-top-9{top:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-top{top:var(--top-xs)}.xs\:rt-r-top-0{top:0}.xs\:rt-r-top-1{top:var(--space-1)}.xs\:rt-r-top-2{top:var(--space-2)}.xs\:rt-r-top-3{top:var(--space-3)}.xs\:rt-r-top-4{top:var(--space-4)}.xs\:rt-r-top-5{top:var(--space-5)}.xs\:rt-r-top-6{top:var(--space-6)}.xs\:rt-r-top-7{top:var(--space-7)}.xs\:rt-r-top-8{top:var(--space-8)}.xs\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-top{top:var(--top-sm)}.sm\:rt-r-top-0{top:0}.sm\:rt-r-top-1{top:var(--space-1)}.sm\:rt-r-top-2{top:var(--space-2)}.sm\:rt-r-top-3{top:var(--space-3)}.sm\:rt-r-top-4{top:var(--space-4)}.sm\:rt-r-top-5{top:var(--space-5)}.sm\:rt-r-top-6{top:var(--space-6)}.sm\:rt-r-top-7{top:var(--space-7)}.sm\:rt-r-top-8{top:var(--space-8)}.sm\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-top{top:var(--top-md)}.md\:rt-r-top-0{top:0}.md\:rt-r-top-1{top:var(--space-1)}.md\:rt-r-top-2{top:var(--space-2)}.md\:rt-r-top-3{top:var(--space-3)}.md\:rt-r-top-4{top:var(--space-4)}.md\:rt-r-top-5{top:var(--space-5)}.md\:rt-r-top-6{top:var(--space-6)}.md\:rt-r-top-7{top:var(--space-7)}.md\:rt-r-top-8{top:var(--space-8)}.md\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-top{top:var(--top-lg)}.lg\:rt-r-top-0{top:0}.lg\:rt-r-top-1{top:var(--space-1)}.lg\:rt-r-top-2{top:var(--space-2)}.lg\:rt-r-top-3{top:var(--space-3)}.lg\:rt-r-top-4{top:var(--space-4)}.lg\:rt-r-top-5{top:var(--space-5)}.lg\:rt-r-top-6{top:var(--space-6)}.lg\:rt-r-top-7{top:var(--space-7)}.lg\:rt-r-top-8{top:var(--space-8)}.lg\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-top{top:var(--top-xl)}.xl\:rt-r-top-0{top:0}.xl\:rt-r-top-1{top:var(--space-1)}.xl\:rt-r-top-2{top:var(--space-2)}.xl\:rt-r-top-3{top:var(--space-3)}.xl\:rt-r-top-4{top:var(--space-4)}.xl\:rt-r-top-5{top:var(--space-5)}.xl\:rt-r-top-6{top:var(--space-6)}.xl\:rt-r-top-7{top:var(--space-7)}.xl\:rt-r-top-8{top:var(--space-8)}.xl\:rt-r-top-9{top:var(--space-9)}}.rt-r-right{right:var(--right)}.rt-r-right-0{right:0}.rt-r-right-1{right:var(--space-1)}.rt-r-right-2{right:var(--space-2)}.rt-r-right-3{right:var(--space-3)}.rt-r-right-4{right:var(--space-4)}.rt-r-right-5{right:var(--space-5)}.rt-r-right-6{right:var(--space-6)}.rt-r-right-7{right:var(--space-7)}.rt-r-right-8{right:var(--space-8)}.rt-r-right-9{right:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-right{right:var(--right-xs)}.xs\:rt-r-right-0{right:0}.xs\:rt-r-right-1{right:var(--space-1)}.xs\:rt-r-right-2{right:var(--space-2)}.xs\:rt-r-right-3{right:var(--space-3)}.xs\:rt-r-right-4{right:var(--space-4)}.xs\:rt-r-right-5{right:var(--space-5)}.xs\:rt-r-right-6{right:var(--space-6)}.xs\:rt-r-right-7{right:var(--space-7)}.xs\:rt-r-right-8{right:var(--space-8)}.xs\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-right{right:var(--right-sm)}.sm\:rt-r-right-0{right:0}.sm\:rt-r-right-1{right:var(--space-1)}.sm\:rt-r-right-2{right:var(--space-2)}.sm\:rt-r-right-3{right:var(--space-3)}.sm\:rt-r-right-4{right:var(--space-4)}.sm\:rt-r-right-5{right:var(--space-5)}.sm\:rt-r-right-6{right:var(--space-6)}.sm\:rt-r-right-7{right:var(--space-7)}.sm\:rt-r-right-8{right:var(--space-8)}.sm\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-right{right:var(--right-md)}.md\:rt-r-right-0{right:0}.md\:rt-r-right-1{right:var(--space-1)}.md\:rt-r-right-2{right:var(--space-2)}.md\:rt-r-right-3{right:var(--space-3)}.md\:rt-r-right-4{right:var(--space-4)}.md\:rt-r-right-5{right:var(--space-5)}.md\:rt-r-right-6{right:var(--space-6)}.md\:rt-r-right-7{right:var(--space-7)}.md\:rt-r-right-8{right:var(--space-8)}.md\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-right{right:var(--right-lg)}.lg\:rt-r-right-0{right:0}.lg\:rt-r-right-1{right:var(--space-1)}.lg\:rt-r-right-2{right:var(--space-2)}.lg\:rt-r-right-3{right:var(--space-3)}.lg\:rt-r-right-4{right:var(--space-4)}.lg\:rt-r-right-5{right:var(--space-5)}.lg\:rt-r-right-6{right:var(--space-6)}.lg\:rt-r-right-7{right:var(--space-7)}.lg\:rt-r-right-8{right:var(--space-8)}.lg\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-right{right:var(--right-xl)}.xl\:rt-r-right-0{right:0}.xl\:rt-r-right-1{right:var(--space-1)}.xl\:rt-r-right-2{right:var(--space-2)}.xl\:rt-r-right-3{right:var(--space-3)}.xl\:rt-r-right-4{right:var(--space-4)}.xl\:rt-r-right-5{right:var(--space-5)}.xl\:rt-r-right-6{right:var(--space-6)}.xl\:rt-r-right-7{right:var(--space-7)}.xl\:rt-r-right-8{right:var(--space-8)}.xl\:rt-r-right-9{right:var(--space-9)}}.rt-r-bottom{bottom:var(--bottom)}.rt-r-bottom-0{bottom:0}.rt-r-bottom-1{bottom:var(--space-1)}.rt-r-bottom-2{bottom:var(--space-2)}.rt-r-bottom-3{bottom:var(--space-3)}.rt-r-bottom-4{bottom:var(--space-4)}.rt-r-bottom-5{bottom:var(--space-5)}.rt-r-bottom-6{bottom:var(--space-6)}.rt-r-bottom-7{bottom:var(--space-7)}.rt-r-bottom-8{bottom:var(--space-8)}.rt-r-bottom-9{bottom:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-bottom{bottom:var(--bottom-xs)}.xs\:rt-r-bottom-0{bottom:0}.xs\:rt-r-bottom-1{bottom:var(--space-1)}.xs\:rt-r-bottom-2{bottom:var(--space-2)}.xs\:rt-r-bottom-3{bottom:var(--space-3)}.xs\:rt-r-bottom-4{bottom:var(--space-4)}.xs\:rt-r-bottom-5{bottom:var(--space-5)}.xs\:rt-r-bottom-6{bottom:var(--space-6)}.xs\:rt-r-bottom-7{bottom:var(--space-7)}.xs\:rt-r-bottom-8{bottom:var(--space-8)}.xs\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-bottom{bottom:var(--bottom-sm)}.sm\:rt-r-bottom-0{bottom:0}.sm\:rt-r-bottom-1{bottom:var(--space-1)}.sm\:rt-r-bottom-2{bottom:var(--space-2)}.sm\:rt-r-bottom-3{bottom:var(--space-3)}.sm\:rt-r-bottom-4{bottom:var(--space-4)}.sm\:rt-r-bottom-5{bottom:var(--space-5)}.sm\:rt-r-bottom-6{bottom:var(--space-6)}.sm\:rt-r-bottom-7{bottom:var(--space-7)}.sm\:rt-r-bottom-8{bottom:var(--space-8)}.sm\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-bottom{bottom:var(--bottom-md)}.md\:rt-r-bottom-0{bottom:0}.md\:rt-r-bottom-1{bottom:var(--space-1)}.md\:rt-r-bottom-2{bottom:var(--space-2)}.md\:rt-r-bottom-3{bottom:var(--space-3)}.md\:rt-r-bottom-4{bottom:var(--space-4)}.md\:rt-r-bottom-5{bottom:var(--space-5)}.md\:rt-r-bottom-6{bottom:var(--space-6)}.md\:rt-r-bottom-7{bottom:var(--space-7)}.md\:rt-r-bottom-8{bottom:var(--space-8)}.md\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-bottom{bottom:var(--bottom-lg)}.lg\:rt-r-bottom-0{bottom:0}.lg\:rt-r-bottom-1{bottom:var(--space-1)}.lg\:rt-r-bottom-2{bottom:var(--space-2)}.lg\:rt-r-bottom-3{bottom:var(--space-3)}.lg\:rt-r-bottom-4{bottom:var(--space-4)}.lg\:rt-r-bottom-5{bottom:var(--space-5)}.lg\:rt-r-bottom-6{bottom:var(--space-6)}.lg\:rt-r-bottom-7{bottom:var(--space-7)}.lg\:rt-r-bottom-8{bottom:var(--space-8)}.lg\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-bottom{bottom:var(--bottom-xl)}.xl\:rt-r-bottom-0{bottom:0}.xl\:rt-r-bottom-1{bottom:var(--space-1)}.xl\:rt-r-bottom-2{bottom:var(--space-2)}.xl\:rt-r-bottom-3{bottom:var(--space-3)}.xl\:rt-r-bottom-4{bottom:var(--space-4)}.xl\:rt-r-bottom-5{bottom:var(--space-5)}.xl\:rt-r-bottom-6{bottom:var(--space-6)}.xl\:rt-r-bottom-7{bottom:var(--space-7)}.xl\:rt-r-bottom-8{bottom:var(--space-8)}.xl\:rt-r-bottom-9{bottom:var(--space-9)}}.rt-r-left{left:var(--left)}.rt-r-left-0{left:0}.rt-r-left-1{left:var(--space-1)}.rt-r-left-2{left:var(--space-2)}.rt-r-left-3{left:var(--space-3)}.rt-r-left-4{left:var(--space-4)}.rt-r-left-5{left:var(--space-5)}.rt-r-left-6{left:var(--space-6)}.rt-r-left-7{left:var(--space-7)}.rt-r-left-8{left:var(--space-8)}.rt-r-left-9{left:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-left{left:var(--left-xs)}.xs\:rt-r-left-0{left:0}.xs\:rt-r-left-1{left:var(--space-1)}.xs\:rt-r-left-2{left:var(--space-2)}.xs\:rt-r-left-3{left:var(--space-3)}.xs\:rt-r-left-4{left:var(--space-4)}.xs\:rt-r-left-5{left:var(--space-5)}.xs\:rt-r-left-6{left:var(--space-6)}.xs\:rt-r-left-7{left:var(--space-7)}.xs\:rt-r-left-8{left:var(--space-8)}.xs\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-left{left:var(--left-sm)}.sm\:rt-r-left-0{left:0}.sm\:rt-r-left-1{left:var(--space-1)}.sm\:rt-r-left-2{left:var(--space-2)}.sm\:rt-r-left-3{left:var(--space-3)}.sm\:rt-r-left-4{left:var(--space-4)}.sm\:rt-r-left-5{left:var(--space-5)}.sm\:rt-r-left-6{left:var(--space-6)}.sm\:rt-r-left-7{left:var(--space-7)}.sm\:rt-r-left-8{left:var(--space-8)}.sm\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-left{left:var(--left-md)}.md\:rt-r-left-0{left:0}.md\:rt-r-left-1{left:var(--space-1)}.md\:rt-r-left-2{left:var(--space-2)}.md\:rt-r-left-3{left:var(--space-3)}.md\:rt-r-left-4{left:var(--space-4)}.md\:rt-r-left-5{left:var(--space-5)}.md\:rt-r-left-6{left:var(--space-6)}.md\:rt-r-left-7{left:var(--space-7)}.md\:rt-r-left-8{left:var(--space-8)}.md\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-left{left:var(--left-lg)}.lg\:rt-r-left-0{left:0}.lg\:rt-r-left-1{left:var(--space-1)}.lg\:rt-r-left-2{left:var(--space-2)}.lg\:rt-r-left-3{left:var(--space-3)}.lg\:rt-r-left-4{left:var(--space-4)}.lg\:rt-r-left-5{left:var(--space-5)}.lg\:rt-r-left-6{left:var(--space-6)}.lg\:rt-r-left-7{left:var(--space-7)}.lg\:rt-r-left-8{left:var(--space-8)}.lg\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-left{left:var(--left-xl)}.xl\:rt-r-left-0{left:0}.xl\:rt-r-left-1{left:var(--space-1)}.xl\:rt-r-left-2{left:var(--space-2)}.xl\:rt-r-left-3{left:var(--space-3)}.xl\:rt-r-left-4{left:var(--space-4)}.xl\:rt-r-left-5{left:var(--space-5)}.xl\:rt-r-left-6{left:var(--space-6)}.xl\:rt-r-left-7{left:var(--space-7)}.xl\:rt-r-left-8{left:var(--space-8)}.xl\:rt-r-left-9{left:var(--space-9)}}.rt-r-jc-start{justify-content:flex-start}.rt-r-jc-center{justify-content:center}.rt-r-jc-end{justify-content:flex-end}.rt-r-jc-space-between{justify-content:space-between}@media (min-width: 520px){.xs\:rt-r-jc-start{justify-content:flex-start}.xs\:rt-r-jc-center{justify-content:center}.xs\:rt-r-jc-end{justify-content:flex-end}.xs\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 768px){.sm\:rt-r-jc-start{justify-content:flex-start}.sm\:rt-r-jc-center{justify-content:center}.sm\:rt-r-jc-end{justify-content:flex-end}.sm\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 1024px){.md\:rt-r-jc-start{justify-content:flex-start}.md\:rt-r-jc-center{justify-content:center}.md\:rt-r-jc-end{justify-content:flex-end}.md\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 1280px){.lg\:rt-r-jc-start{justify-content:flex-start}.lg\:rt-r-jc-center{justify-content:center}.lg\:rt-r-jc-end{justify-content:flex-end}.lg\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 1640px){.xl\:rt-r-jc-start{justify-content:flex-start}.xl\:rt-r-jc-center{justify-content:center}.xl\:rt-r-jc-end{justify-content:flex-end}.xl\:rt-r-jc-space-between{justify-content:space-between}}.rt-r-m,.rt-r-m-0,.rt-r-m-1,.rt-r-m-2,.rt-r-m-3,.rt-r-m-4,.rt-r-m-5,.rt-r-m-6,.rt-r-m-7,.rt-r-m-8,.rt-r-m-9,.-rt-r-m-1,.-rt-r-m-2,.-rt-r-m-3,.-rt-r-m-4,.-rt-r-m-5,.-rt-r-m-6,.-rt-r-m-7,.-rt-r-m-8,.-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.rt-r-m{--margin-top: var(--m);--margin-right: var(--m);--margin-bottom: var(--m);--margin-left: var(--m) }.rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-m,.xs\:rt-r-m-0,.xs\:rt-r-m-1,.xs\:rt-r-m-2,.xs\:rt-r-m-3,.xs\:rt-r-m-4,.xs\:rt-r-m-5,.xs\:rt-r-m-6,.xs\:rt-r-m-7,.xs\:rt-r-m-8,.xs\:rt-r-m-9,.xs\:-rt-r-m-1,.xs\:-rt-r-m-2,.xs\:-rt-r-m-3,.xs\:-rt-r-m-4,.xs\:-rt-r-m-5,.xs\:-rt-r-m-6,.xs\:-rt-r-m-7,.xs\:-rt-r-m-8,.xs\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.xs\:rt-r-m{--margin-top: var(--m-xs);--margin-right: var(--m-xs);--margin-bottom: var(--m-xs);--margin-left: var(--m-xs) }.xs\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.xs\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.xs\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.xs\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.xs\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.xs\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.xs\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.xs\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.xs\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.xs\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.xs\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.xs\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.xs\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.xs\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.xs\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.xs\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.xs\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.xs\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.xs\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-m,.sm\:rt-r-m-0,.sm\:rt-r-m-1,.sm\:rt-r-m-2,.sm\:rt-r-m-3,.sm\:rt-r-m-4,.sm\:rt-r-m-5,.sm\:rt-r-m-6,.sm\:rt-r-m-7,.sm\:rt-r-m-8,.sm\:rt-r-m-9,.sm\:-rt-r-m-1,.sm\:-rt-r-m-2,.sm\:-rt-r-m-3,.sm\:-rt-r-m-4,.sm\:-rt-r-m-5,.sm\:-rt-r-m-6,.sm\:-rt-r-m-7,.sm\:-rt-r-m-8,.sm\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.sm\:rt-r-m{--margin-top: var(--m-sm);--margin-right: var(--m-sm);--margin-bottom: var(--m-sm);--margin-left: var(--m-sm) }.sm\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.sm\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.sm\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.sm\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.sm\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.sm\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.sm\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.sm\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.sm\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.sm\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.sm\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.sm\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.sm\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.sm\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.sm\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.sm\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.sm\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.sm\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.sm\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-m,.md\:rt-r-m-0,.md\:rt-r-m-1,.md\:rt-r-m-2,.md\:rt-r-m-3,.md\:rt-r-m-4,.md\:rt-r-m-5,.md\:rt-r-m-6,.md\:rt-r-m-7,.md\:rt-r-m-8,.md\:rt-r-m-9,.md\:-rt-r-m-1,.md\:-rt-r-m-2,.md\:-rt-r-m-3,.md\:-rt-r-m-4,.md\:-rt-r-m-5,.md\:-rt-r-m-6,.md\:-rt-r-m-7,.md\:-rt-r-m-8,.md\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.md\:rt-r-m{--margin-top: var(--m-md);--margin-right: var(--m-md);--margin-bottom: var(--m-md);--margin-left: var(--m-md) }.md\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.md\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.md\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.md\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.md\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.md\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.md\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.md\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.md\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.md\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.md\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.md\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.md\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.md\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.md\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.md\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.md\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.md\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.md\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-m,.lg\:rt-r-m-0,.lg\:rt-r-m-1,.lg\:rt-r-m-2,.lg\:rt-r-m-3,.lg\:rt-r-m-4,.lg\:rt-r-m-5,.lg\:rt-r-m-6,.lg\:rt-r-m-7,.lg\:rt-r-m-8,.lg\:rt-r-m-9,.lg\:-rt-r-m-1,.lg\:-rt-r-m-2,.lg\:-rt-r-m-3,.lg\:-rt-r-m-4,.lg\:-rt-r-m-5,.lg\:-rt-r-m-6,.lg\:-rt-r-m-7,.lg\:-rt-r-m-8,.lg\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.lg\:rt-r-m{--margin-top: var(--m-lg);--margin-right: var(--m-lg);--margin-bottom: var(--m-lg);--margin-left: var(--m-lg) }.lg\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.lg\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.lg\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.lg\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.lg\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.lg\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.lg\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.lg\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.lg\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.lg\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.lg\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.lg\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.lg\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.lg\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.lg\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.lg\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.lg\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.lg\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.lg\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-m,.xl\:rt-r-m-0,.xl\:rt-r-m-1,.xl\:rt-r-m-2,.xl\:rt-r-m-3,.xl\:rt-r-m-4,.xl\:rt-r-m-5,.xl\:rt-r-m-6,.xl\:rt-r-m-7,.xl\:rt-r-m-8,.xl\:rt-r-m-9,.xl\:-rt-r-m-1,.xl\:-rt-r-m-2,.xl\:-rt-r-m-3,.xl\:-rt-r-m-4,.xl\:-rt-r-m-5,.xl\:-rt-r-m-6,.xl\:-rt-r-m-7,.xl\:-rt-r-m-8,.xl\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.xl\:rt-r-m{--margin-top: var(--m-xl);--margin-right: var(--m-xl);--margin-bottom: var(--m-xl);--margin-left: var(--m-xl) }.xl\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.xl\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.xl\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.xl\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.xl\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.xl\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.xl\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.xl\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.xl\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.xl\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.xl\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.xl\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.xl\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.xl\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.xl\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.xl\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.xl\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.xl\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.xl\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}.rt-r-mx,.rt-r-mx-0,.rt-r-mx-1,.rt-r-mx-2,.rt-r-mx-3,.rt-r-mx-4,.rt-r-mx-5,.rt-r-mx-6,.rt-r-mx-7,.rt-r-mx-8,.rt-r-mx-9,.-rt-r-mx-1,.-rt-r-mx-2,.-rt-r-mx-3,.-rt-r-mx-4,.-rt-r-mx-5,.-rt-r-mx-6,.-rt-r-mx-7,.-rt-r-mx-8,.-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.rt-r-mx{--margin-left: var(--ml);--margin-right: var(--mr) }.rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mx,.xs\:rt-r-mx-0,.xs\:rt-r-mx-1,.xs\:rt-r-mx-2,.xs\:rt-r-mx-3,.xs\:rt-r-mx-4,.xs\:rt-r-mx-5,.xs\:rt-r-mx-6,.xs\:rt-r-mx-7,.xs\:rt-r-mx-8,.xs\:rt-r-mx-9,.xs\:-rt-r-mx-1,.xs\:-rt-r-mx-2,.xs\:-rt-r-mx-3,.xs\:-rt-r-mx-4,.xs\:-rt-r-mx-5,.xs\:-rt-r-mx-6,.xs\:-rt-r-mx-7,.xs\:-rt-r-mx-8,.xs\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.xs\:rt-r-mx{--margin-left: var(--ml-xs);--margin-right: var(--mr-xs) }.xs\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.xs\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.xs\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.xs\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.xs\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.xs\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.xs\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.xs\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.xs\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.xs\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.xs\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.xs\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.xs\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.xs\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.xs\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.xs\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.xs\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.xs\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.xs\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mx,.sm\:rt-r-mx-0,.sm\:rt-r-mx-1,.sm\:rt-r-mx-2,.sm\:rt-r-mx-3,.sm\:rt-r-mx-4,.sm\:rt-r-mx-5,.sm\:rt-r-mx-6,.sm\:rt-r-mx-7,.sm\:rt-r-mx-8,.sm\:rt-r-mx-9,.sm\:-rt-r-mx-1,.sm\:-rt-r-mx-2,.sm\:-rt-r-mx-3,.sm\:-rt-r-mx-4,.sm\:-rt-r-mx-5,.sm\:-rt-r-mx-6,.sm\:-rt-r-mx-7,.sm\:-rt-r-mx-8,.sm\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.sm\:rt-r-mx{--margin-left: var(--ml-md);--margin-right: var(--mr-md) }.sm\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.sm\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.sm\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.sm\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.sm\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.sm\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.sm\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.sm\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.sm\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.sm\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.sm\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.sm\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.sm\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.sm\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.sm\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.sm\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.sm\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.sm\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.sm\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mx,.md\:rt-r-mx-0,.md\:rt-r-mx-1,.md\:rt-r-mx-2,.md\:rt-r-mx-3,.md\:rt-r-mx-4,.md\:rt-r-mx-5,.md\:rt-r-mx-6,.md\:rt-r-mx-7,.md\:rt-r-mx-8,.md\:rt-r-mx-9,.md\:-rt-r-mx-1,.md\:-rt-r-mx-2,.md\:-rt-r-mx-3,.md\:-rt-r-mx-4,.md\:-rt-r-mx-5,.md\:-rt-r-mx-6,.md\:-rt-r-mx-7,.md\:-rt-r-mx-8,.md\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.md\:rt-r-mx{--margin-left: var(--ml-md);--margin-right: var(--mr-md) }.md\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.md\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.md\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.md\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.md\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.md\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.md\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.md\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.md\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.md\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.md\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.md\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.md\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.md\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.md\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.md\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.md\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.md\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.md\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mx,.lg\:rt-r-mx-0,.lg\:rt-r-mx-1,.lg\:rt-r-mx-2,.lg\:rt-r-mx-3,.lg\:rt-r-mx-4,.lg\:rt-r-mx-5,.lg\:rt-r-mx-6,.lg\:rt-r-mx-7,.lg\:rt-r-mx-8,.lg\:rt-r-mx-9,.lg\:-rt-r-mx-1,.lg\:-rt-r-mx-2,.lg\:-rt-r-mx-3,.lg\:-rt-r-mx-4,.lg\:-rt-r-mx-5,.lg\:-rt-r-mx-6,.lg\:-rt-r-mx-7,.lg\:-rt-r-mx-8,.lg\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.lg\:rt-r-mx{--margin-left: var(--ml-lg);--margin-right: var(--mr-lg) }.lg\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.lg\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.lg\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.lg\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.lg\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.lg\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.lg\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.lg\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.lg\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.lg\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.lg\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.lg\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.lg\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.lg\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.lg\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.lg\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.lg\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.lg\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.lg\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mx,.xl\:rt-r-mx-0,.xl\:rt-r-mx-1,.xl\:rt-r-mx-2,.xl\:rt-r-mx-3,.xl\:rt-r-mx-4,.xl\:rt-r-mx-5,.xl\:rt-r-mx-6,.xl\:rt-r-mx-7,.xl\:rt-r-mx-8,.xl\:rt-r-mx-9,.xl\:-rt-r-mx-1,.xl\:-rt-r-mx-2,.xl\:-rt-r-mx-3,.xl\:-rt-r-mx-4,.xl\:-rt-r-mx-5,.xl\:-rt-r-mx-6,.xl\:-rt-r-mx-7,.xl\:-rt-r-mx-8,.xl\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.xl\:rt-r-mx{--margin-left: var(--ml-xl);--margin-right: var(--mr-xl) }.xl\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.xl\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.xl\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.xl\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.xl\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.xl\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.xl\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.xl\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.xl\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.xl\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.xl\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.xl\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.xl\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.xl\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.xl\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.xl\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.xl\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.xl\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.xl\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}.rt-r-my,.rt-r-my-0,.rt-r-my-1,.rt-r-my-2,.rt-r-my-3,.rt-r-my-4,.rt-r-my-5,.rt-r-my-6,.rt-r-my-7,.rt-r-my-8,.rt-r-my-9,.-rt-r-my-1,.-rt-r-my-2,.-rt-r-my-3,.-rt-r-my-4,.-rt-r-my-5,.-rt-r-my-6,.-rt-r-my-7,.-rt-r-my-8,.-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.rt-r-my{--margin-top: var(--mt);--margin-bottom: var(--mb) }.rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-my,.xs\:rt-r-my-0,.xs\:rt-r-my-1,.xs\:rt-r-my-2,.xs\:rt-r-my-3,.xs\:rt-r-my-4,.xs\:rt-r-my-5,.xs\:rt-r-my-6,.xs\:rt-r-my-7,.xs\:rt-r-my-8,.xs\:rt-r-my-9,.xs\:-rt-r-my-1,.xs\:-rt-r-my-2,.xs\:-rt-r-my-3,.xs\:-rt-r-my-4,.xs\:-rt-r-my-5,.xs\:-rt-r-my-6,.xs\:-rt-r-my-7,.xs\:-rt-r-my-8,.xs\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xs\:rt-r-my{--margin-top: var(--mt-xs);--margin-bottom: var(--mb-xs) }.xs\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.xs\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.xs\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.xs\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.xs\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.xs\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.xs\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.xs\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.xs\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.xs\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.xs\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.xs\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.xs\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.xs\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.xs\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.xs\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.xs\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.xs\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.xs\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-my,.sm\:rt-r-my-0,.sm\:rt-r-my-1,.sm\:rt-r-my-2,.sm\:rt-r-my-3,.sm\:rt-r-my-4,.sm\:rt-r-my-5,.sm\:rt-r-my-6,.sm\:rt-r-my-7,.sm\:rt-r-my-8,.sm\:rt-r-my-9,.sm\:-rt-r-my-1,.sm\:-rt-r-my-2,.sm\:-rt-r-my-3,.sm\:-rt-r-my-4,.sm\:-rt-r-my-5,.sm\:-rt-r-my-6,.sm\:-rt-r-my-7,.sm\:-rt-r-my-8,.sm\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.sm\:rt-r-my{--margin-top: var(--mt-sm);--margin-bottom: var(--mb-sm) }.sm\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.sm\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.sm\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.sm\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.sm\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.sm\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.sm\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.sm\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.sm\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.sm\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.sm\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.sm\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.sm\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.sm\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.sm\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.sm\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.sm\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.sm\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.sm\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-my,.md\:rt-r-my-0,.md\:rt-r-my-1,.md\:rt-r-my-2,.md\:rt-r-my-3,.md\:rt-r-my-4,.md\:rt-r-my-5,.md\:rt-r-my-6,.md\:rt-r-my-7,.md\:rt-r-my-8,.md\:rt-r-my-9,.md\:-rt-r-my-1,.md\:-rt-r-my-2,.md\:-rt-r-my-3,.md\:-rt-r-my-4,.md\:-rt-r-my-5,.md\:-rt-r-my-6,.md\:-rt-r-my-7,.md\:-rt-r-my-8,.md\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.md\:rt-r-my{--margin-top: var(--mt-md);--margin-bottom: var(--mb-md) }.md\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.md\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.md\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.md\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.md\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.md\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.md\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.md\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.md\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.md\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.md\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.md\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.md\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.md\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.md\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.md\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.md\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.md\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.md\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-my,.lg\:rt-r-my-0,.lg\:rt-r-my-1,.lg\:rt-r-my-2,.lg\:rt-r-my-3,.lg\:rt-r-my-4,.lg\:rt-r-my-5,.lg\:rt-r-my-6,.lg\:rt-r-my-7,.lg\:rt-r-my-8,.lg\:rt-r-my-9,.lg\:-rt-r-my-1,.lg\:-rt-r-my-2,.lg\:-rt-r-my-3,.lg\:-rt-r-my-4,.lg\:-rt-r-my-5,.lg\:-rt-r-my-6,.lg\:-rt-r-my-7,.lg\:-rt-r-my-8,.lg\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.lg\:rt-r-my{--margin-top: var(--mt-lg);--margin-bottom: var(--mb-lg) }.lg\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.lg\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.lg\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.lg\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.lg\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.lg\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.lg\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.lg\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.lg\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.lg\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.lg\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.lg\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.lg\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.lg\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.lg\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.lg\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.lg\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.lg\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.lg\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-my,.xl\:rt-r-my-0,.xl\:rt-r-my-1,.xl\:rt-r-my-2,.xl\:rt-r-my-3,.xl\:rt-r-my-4,.xl\:rt-r-my-5,.xl\:rt-r-my-6,.xl\:rt-r-my-7,.xl\:rt-r-my-8,.xl\:rt-r-my-9,.xl\:-rt-r-my-1,.xl\:-rt-r-my-2,.xl\:-rt-r-my-3,.xl\:-rt-r-my-4,.xl\:-rt-r-my-5,.xl\:-rt-r-my-6,.xl\:-rt-r-my-7,.xl\:-rt-r-my-8,.xl\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xl\:rt-r-my{--margin-top: var(--mt-xl);--margin-bottom: var(--mb-xl) }.xl\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.xl\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.xl\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.xl\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.xl\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.xl\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.xl\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.xl\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.xl\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.xl\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.xl\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.xl\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.xl\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.xl\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.xl\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.xl\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.xl\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.xl\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.xl\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}.rt-r-mt,.rt-r-mt-0,.rt-r-mt-1,.rt-r-mt-2,.rt-r-mt-3,.rt-r-mt-4,.rt-r-mt-5,.rt-r-mt-6,.rt-r-mt-7,.rt-r-mt-8,.rt-r-mt-9,.-rt-r-mt-1,.-rt-r-mt-2,.-rt-r-mt-3,.-rt-r-mt-4,.-rt-r-mt-5,.-rt-r-mt-6,.-rt-r-mt-7,.-rt-r-mt-8,.-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.rt-r-mt{--margin-top: var(--mt) }.rt-r-mt-0{--margin-top: 0px}.rt-r-mt-1{--margin-top: var(--space-1)}.rt-r-mt-2{--margin-top: var(--space-2)}.rt-r-mt-3{--margin-top: var(--space-3)}.rt-r-mt-4{--margin-top: var(--space-4)}.rt-r-mt-5{--margin-top: var(--space-5)}.rt-r-mt-6{--margin-top: var(--space-6)}.rt-r-mt-7{--margin-top: var(--space-7)}.rt-r-mt-8{--margin-top: var(--space-8)}.rt-r-mt-9{--margin-top: var(--space-9)}.-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mt,.xs\:rt-r-mt-0,.xs\:rt-r-mt-1,.xs\:rt-r-mt-2,.xs\:rt-r-mt-3,.xs\:rt-r-mt-4,.xs\:rt-r-mt-5,.xs\:rt-r-mt-6,.xs\:rt-r-mt-7,.xs\:rt-r-mt-8,.xs\:rt-r-mt-9,.xs\:-rt-r-mt-1,.xs\:-rt-r-mt-2,.xs\:-rt-r-mt-3,.xs\:-rt-r-mt-4,.xs\:-rt-r-mt-5,.xs\:-rt-r-mt-6,.xs\:-rt-r-mt-7,.xs\:-rt-r-mt-8,.xs\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.xs\:rt-r-mt{--margin-top: var(--mt-xs) }.xs\:rt-r-mt-0{--margin-top: 0px}.xs\:rt-r-mt-1{--margin-top: var(--space-1)}.xs\:rt-r-mt-2{--margin-top: var(--space-2)}.xs\:rt-r-mt-3{--margin-top: var(--space-3)}.xs\:rt-r-mt-4{--margin-top: var(--space-4)}.xs\:rt-r-mt-5{--margin-top: var(--space-5)}.xs\:rt-r-mt-6{--margin-top: var(--space-6)}.xs\:rt-r-mt-7{--margin-top: var(--space-7)}.xs\:rt-r-mt-8{--margin-top: var(--space-8)}.xs\:rt-r-mt-9{--margin-top: var(--space-9)}.xs\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.xs\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.xs\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.xs\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.xs\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.xs\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.xs\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.xs\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.xs\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mt,.sm\:rt-r-mt-0,.sm\:rt-r-mt-1,.sm\:rt-r-mt-2,.sm\:rt-r-mt-3,.sm\:rt-r-mt-4,.sm\:rt-r-mt-5,.sm\:rt-r-mt-6,.sm\:rt-r-mt-7,.sm\:rt-r-mt-8,.sm\:rt-r-mt-9,.sm\:-rt-r-mt-1,.sm\:-rt-r-mt-2,.sm\:-rt-r-mt-3,.sm\:-rt-r-mt-4,.sm\:-rt-r-mt-5,.sm\:-rt-r-mt-6,.sm\:-rt-r-mt-7,.sm\:-rt-r-mt-8,.sm\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.sm\:rt-r-mt{--margin-top: var(--mt-sm) }.sm\:rt-r-mt-0{--margin-top: 0px}.sm\:rt-r-mt-1{--margin-top: var(--space-1)}.sm\:rt-r-mt-2{--margin-top: var(--space-2)}.sm\:rt-r-mt-3{--margin-top: var(--space-3)}.sm\:rt-r-mt-4{--margin-top: var(--space-4)}.sm\:rt-r-mt-5{--margin-top: var(--space-5)}.sm\:rt-r-mt-6{--margin-top: var(--space-6)}.sm\:rt-r-mt-7{--margin-top: var(--space-7)}.sm\:rt-r-mt-8{--margin-top: var(--space-8)}.sm\:rt-r-mt-9{--margin-top: var(--space-9)}.sm\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.sm\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.sm\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.sm\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.sm\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.sm\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.sm\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.sm\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.sm\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mt,.md\:rt-r-mt-0,.md\:rt-r-mt-1,.md\:rt-r-mt-2,.md\:rt-r-mt-3,.md\:rt-r-mt-4,.md\:rt-r-mt-5,.md\:rt-r-mt-6,.md\:rt-r-mt-7,.md\:rt-r-mt-8,.md\:rt-r-mt-9,.md\:-rt-r-mt-1,.md\:-rt-r-mt-2,.md\:-rt-r-mt-3,.md\:-rt-r-mt-4,.md\:-rt-r-mt-5,.md\:-rt-r-mt-6,.md\:-rt-r-mt-7,.md\:-rt-r-mt-8,.md\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.md\:rt-r-mt{--margin-top: var(--mt-md) }.md\:rt-r-mt-0{--margin-top: 0px}.md\:rt-r-mt-1{--margin-top: var(--space-1)}.md\:rt-r-mt-2{--margin-top: var(--space-2)}.md\:rt-r-mt-3{--margin-top: var(--space-3)}.md\:rt-r-mt-4{--margin-top: var(--space-4)}.md\:rt-r-mt-5{--margin-top: var(--space-5)}.md\:rt-r-mt-6{--margin-top: var(--space-6)}.md\:rt-r-mt-7{--margin-top: var(--space-7)}.md\:rt-r-mt-8{--margin-top: var(--space-8)}.md\:rt-r-mt-9{--margin-top: var(--space-9)}.md\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.md\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.md\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.md\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.md\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.md\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.md\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.md\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.md\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mt,.lg\:rt-r-mt-0,.lg\:rt-r-mt-1,.lg\:rt-r-mt-2,.lg\:rt-r-mt-3,.lg\:rt-r-mt-4,.lg\:rt-r-mt-5,.lg\:rt-r-mt-6,.lg\:rt-r-mt-7,.lg\:rt-r-mt-8,.lg\:rt-r-mt-9,.lg\:-rt-r-mt-1,.lg\:-rt-r-mt-2,.lg\:-rt-r-mt-3,.lg\:-rt-r-mt-4,.lg\:-rt-r-mt-5,.lg\:-rt-r-mt-6,.lg\:-rt-r-mt-7,.lg\:-rt-r-mt-8,.lg\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.lg\:rt-r-mt{--margin-top: var(--mt-lg) }.lg\:rt-r-mt-0{--margin-top: 0px}.lg\:rt-r-mt-1{--margin-top: var(--space-1)}.lg\:rt-r-mt-2{--margin-top: var(--space-2)}.lg\:rt-r-mt-3{--margin-top: var(--space-3)}.lg\:rt-r-mt-4{--margin-top: var(--space-4)}.lg\:rt-r-mt-5{--margin-top: var(--space-5)}.lg\:rt-r-mt-6{--margin-top: var(--space-6)}.lg\:rt-r-mt-7{--margin-top: var(--space-7)}.lg\:rt-r-mt-8{--margin-top: var(--space-8)}.lg\:rt-r-mt-9{--margin-top: var(--space-9)}.lg\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.lg\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.lg\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.lg\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.lg\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.lg\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.lg\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.lg\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.lg\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mt,.xl\:rt-r-mt-0,.xl\:rt-r-mt-1,.xl\:rt-r-mt-2,.xl\:rt-r-mt-3,.xl\:rt-r-mt-4,.xl\:rt-r-mt-5,.xl\:rt-r-mt-6,.xl\:rt-r-mt-7,.xl\:rt-r-mt-8,.xl\:rt-r-mt-9,.xl\:-rt-r-mt-1,.xl\:-rt-r-mt-2,.xl\:-rt-r-mt-3,.xl\:-rt-r-mt-4,.xl\:-rt-r-mt-5,.xl\:-rt-r-mt-6,.xl\:-rt-r-mt-7,.xl\:-rt-r-mt-8,.xl\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.xl\:rt-r-mt{--margin-top: var(--mt-xl) }.xl\:rt-r-mt-0{--margin-top: 0px}.xl\:rt-r-mt-1{--margin-top: var(--space-1)}.xl\:rt-r-mt-2{--margin-top: var(--space-2)}.xl\:rt-r-mt-3{--margin-top: var(--space-3)}.xl\:rt-r-mt-4{--margin-top: var(--space-4)}.xl\:rt-r-mt-5{--margin-top: var(--space-5)}.xl\:rt-r-mt-6{--margin-top: var(--space-6)}.xl\:rt-r-mt-7{--margin-top: var(--space-7)}.xl\:rt-r-mt-8{--margin-top: var(--space-8)}.xl\:rt-r-mt-9{--margin-top: var(--space-9)}.xl\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.xl\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.xl\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.xl\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.xl\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.xl\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.xl\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.xl\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.xl\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}.rt-r-mr,.rt-r-mr-0,.rt-r-mr-1,.rt-r-mr-2,.rt-r-mr-3,.rt-r-mr-4,.rt-r-mr-5,.rt-r-mr-6,.rt-r-mr-7,.rt-r-mr-8,.rt-r-mr-9,.-rt-r-mr-1,.-rt-r-mr-2,.-rt-r-mr-3,.-rt-r-mr-4,.-rt-r-mr-5,.-rt-r-mr-6,.-rt-r-mr-7,.-rt-r-mr-8,.-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.rt-r-mr{--margin-right: var(--mr) }.rt-r-mr-0{--margin-right: 0px}.rt-r-mr-1{--margin-right: var(--space-1)}.rt-r-mr-2{--margin-right: var(--space-2)}.rt-r-mr-3{--margin-right: var(--space-3)}.rt-r-mr-4{--margin-right: var(--space-4)}.rt-r-mr-5{--margin-right: var(--space-5)}.rt-r-mr-6{--margin-right: var(--space-6)}.rt-r-mr-7{--margin-right: var(--space-7)}.rt-r-mr-8{--margin-right: var(--space-8)}.rt-r-mr-9{--margin-right: var(--space-9)}.-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mr,.xs\:rt-r-mr-0,.xs\:rt-r-mr-1,.xs\:rt-r-mr-2,.xs\:rt-r-mr-3,.xs\:rt-r-mr-4,.xs\:rt-r-mr-5,.xs\:rt-r-mr-6,.xs\:rt-r-mr-7,.xs\:rt-r-mr-8,.xs\:rt-r-mr-9,.xs\:-rt-r-mr-1,.xs\:-rt-r-mr-2,.xs\:-rt-r-mr-3,.xs\:-rt-r-mr-4,.xs\:-rt-r-mr-5,.xs\:-rt-r-mr-6,.xs\:-rt-r-mr-7,.xs\:-rt-r-mr-8,.xs\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.xs\:rt-r-mr{--margin-right: var(--mr-xs) }.xs\:rt-r-mr-0{--margin-right: 0px}.xs\:rt-r-mr-1{--margin-right: var(--space-1)}.xs\:rt-r-mr-2{--margin-right: var(--space-2)}.xs\:rt-r-mr-3{--margin-right: var(--space-3)}.xs\:rt-r-mr-4{--margin-right: var(--space-4)}.xs\:rt-r-mr-5{--margin-right: var(--space-5)}.xs\:rt-r-mr-6{--margin-right: var(--space-6)}.xs\:rt-r-mr-7{--margin-right: var(--space-7)}.xs\:rt-r-mr-8{--margin-right: var(--space-8)}.xs\:rt-r-mr-9{--margin-right: var(--space-9)}.xs\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.xs\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.xs\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.xs\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.xs\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.xs\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.xs\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.xs\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.xs\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mr,.sm\:rt-r-mr-0,.sm\:rt-r-mr-1,.sm\:rt-r-mr-2,.sm\:rt-r-mr-3,.sm\:rt-r-mr-4,.sm\:rt-r-mr-5,.sm\:rt-r-mr-6,.sm\:rt-r-mr-7,.sm\:rt-r-mr-8,.sm\:rt-r-mr-9,.sm\:-rt-r-mr-1,.sm\:-rt-r-mr-2,.sm\:-rt-r-mr-3,.sm\:-rt-r-mr-4,.sm\:-rt-r-mr-5,.sm\:-rt-r-mr-6,.sm\:-rt-r-mr-7,.sm\:-rt-r-mr-8,.sm\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.sm\:rt-r-mr{--margin-right: var(--mr-sm) }.sm\:rt-r-mr-0{--margin-right: 0px}.sm\:rt-r-mr-1{--margin-right: var(--space-1)}.sm\:rt-r-mr-2{--margin-right: var(--space-2)}.sm\:rt-r-mr-3{--margin-right: var(--space-3)}.sm\:rt-r-mr-4{--margin-right: var(--space-4)}.sm\:rt-r-mr-5{--margin-right: var(--space-5)}.sm\:rt-r-mr-6{--margin-right: var(--space-6)}.sm\:rt-r-mr-7{--margin-right: var(--space-7)}.sm\:rt-r-mr-8{--margin-right: var(--space-8)}.sm\:rt-r-mr-9{--margin-right: var(--space-9)}.sm\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.sm\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.sm\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.sm\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.sm\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.sm\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.sm\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.sm\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.sm\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mr,.md\:rt-r-mr-0,.md\:rt-r-mr-1,.md\:rt-r-mr-2,.md\:rt-r-mr-3,.md\:rt-r-mr-4,.md\:rt-r-mr-5,.md\:rt-r-mr-6,.md\:rt-r-mr-7,.md\:rt-r-mr-8,.md\:rt-r-mr-9,.md\:-rt-r-mr-1,.md\:-rt-r-mr-2,.md\:-rt-r-mr-3,.md\:-rt-r-mr-4,.md\:-rt-r-mr-5,.md\:-rt-r-mr-6,.md\:-rt-r-mr-7,.md\:-rt-r-mr-8,.md\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.md\:rt-r-mr{--margin-right: var(--mr-md) }.md\:rt-r-mr-0{--margin-right: 0px}.md\:rt-r-mr-1{--margin-right: var(--space-1)}.md\:rt-r-mr-2{--margin-right: var(--space-2)}.md\:rt-r-mr-3{--margin-right: var(--space-3)}.md\:rt-r-mr-4{--margin-right: var(--space-4)}.md\:rt-r-mr-5{--margin-right: var(--space-5)}.md\:rt-r-mr-6{--margin-right: var(--space-6)}.md\:rt-r-mr-7{--margin-right: var(--space-7)}.md\:rt-r-mr-8{--margin-right: var(--space-8)}.md\:rt-r-mr-9{--margin-right: var(--space-9)}.md\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.md\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.md\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.md\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.md\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.md\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.md\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.md\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.md\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mr,.lg\:rt-r-mr-0,.lg\:rt-r-mr-1,.lg\:rt-r-mr-2,.lg\:rt-r-mr-3,.lg\:rt-r-mr-4,.lg\:rt-r-mr-5,.lg\:rt-r-mr-6,.lg\:rt-r-mr-7,.lg\:rt-r-mr-8,.lg\:rt-r-mr-9,.lg\:-rt-r-mr-1,.lg\:-rt-r-mr-2,.lg\:-rt-r-mr-3,.lg\:-rt-r-mr-4,.lg\:-rt-r-mr-5,.lg\:-rt-r-mr-6,.lg\:-rt-r-mr-7,.lg\:-rt-r-mr-8,.lg\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.lg\:rt-r-mr{--margin-right: var(--mr-lg) }.lg\:rt-r-mr-0{--margin-right: 0px}.lg\:rt-r-mr-1{--margin-right: var(--space-1)}.lg\:rt-r-mr-2{--margin-right: var(--space-2)}.lg\:rt-r-mr-3{--margin-right: var(--space-3)}.lg\:rt-r-mr-4{--margin-right: var(--space-4)}.lg\:rt-r-mr-5{--margin-right: var(--space-5)}.lg\:rt-r-mr-6{--margin-right: var(--space-6)}.lg\:rt-r-mr-7{--margin-right: var(--space-7)}.lg\:rt-r-mr-8{--margin-right: var(--space-8)}.lg\:rt-r-mr-9{--margin-right: var(--space-9)}.lg\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.lg\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.lg\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.lg\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.lg\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.lg\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.lg\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.lg\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.lg\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mr,.xl\:rt-r-mr-0,.xl\:rt-r-mr-1,.xl\:rt-r-mr-2,.xl\:rt-r-mr-3,.xl\:rt-r-mr-4,.xl\:rt-r-mr-5,.xl\:rt-r-mr-6,.xl\:rt-r-mr-7,.xl\:rt-r-mr-8,.xl\:rt-r-mr-9,.xl\:-rt-r-mr-1,.xl\:-rt-r-mr-2,.xl\:-rt-r-mr-3,.xl\:-rt-r-mr-4,.xl\:-rt-r-mr-5,.xl\:-rt-r-mr-6,.xl\:-rt-r-mr-7,.xl\:-rt-r-mr-8,.xl\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.xl\:rt-r-mr{--margin-right: var(--mr-xl) }.xl\:rt-r-mr-0{--margin-right: 0px}.xl\:rt-r-mr-1{--margin-right: var(--space-1)}.xl\:rt-r-mr-2{--margin-right: var(--space-2)}.xl\:rt-r-mr-3{--margin-right: var(--space-3)}.xl\:rt-r-mr-4{--margin-right: var(--space-4)}.xl\:rt-r-mr-5{--margin-right: var(--space-5)}.xl\:rt-r-mr-6{--margin-right: var(--space-6)}.xl\:rt-r-mr-7{--margin-right: var(--space-7)}.xl\:rt-r-mr-8{--margin-right: var(--space-8)}.xl\:rt-r-mr-9{--margin-right: var(--space-9)}.xl\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.xl\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.xl\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.xl\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.xl\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.xl\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.xl\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.xl\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.xl\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}.rt-r-mb,.rt-r-mb-0,.rt-r-mb-1,.rt-r-mb-2,.rt-r-mb-3,.rt-r-mb-4,.rt-r-mb-5,.rt-r-mb-6,.rt-r-mb-7,.rt-r-mb-8,.rt-r-mb-9,.-rt-r-mb-1,.-rt-r-mb-2,.-rt-r-mb-3,.-rt-r-mb-4,.-rt-r-mb-5,.-rt-r-mb-6,.-rt-r-mb-7,.-rt-r-mb-8,.-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.rt-r-mb{--margin-bottom: var(--mb) }.rt-r-mb-0{--margin-bottom: 0px}.rt-r-mb-1{--margin-bottom: var(--space-1)}.rt-r-mb-2{--margin-bottom: var(--space-2)}.rt-r-mb-3{--margin-bottom: var(--space-3)}.rt-r-mb-4{--margin-bottom: var(--space-4)}.rt-r-mb-5{--margin-bottom: var(--space-5)}.rt-r-mb-6{--margin-bottom: var(--space-6)}.rt-r-mb-7{--margin-bottom: var(--space-7)}.rt-r-mb-8{--margin-bottom: var(--space-8)}.rt-r-mb-9{--margin-bottom: var(--space-9)}.-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mb,.xs\:rt-r-mb-0,.xs\:rt-r-mb-1,.xs\:rt-r-mb-2,.xs\:rt-r-mb-3,.xs\:rt-r-mb-4,.xs\:rt-r-mb-5,.xs\:rt-r-mb-6,.xs\:rt-r-mb-7,.xs\:rt-r-mb-8,.xs\:rt-r-mb-9,.xs\:-rt-r-mb-1,.xs\:-rt-r-mb-2,.xs\:-rt-r-mb-3,.xs\:-rt-r-mb-4,.xs\:-rt-r-mb-5,.xs\:-rt-r-mb-6,.xs\:-rt-r-mb-7,.xs\:-rt-r-mb-8,.xs\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xs\:rt-r-mb{--margin-bottom: var(--mb-xs) }.xs\:rt-r-mb-0{--margin-bottom: 0px}.xs\:rt-r-mb-1{--margin-bottom: var(--space-1)}.xs\:rt-r-mb-2{--margin-bottom: var(--space-2)}.xs\:rt-r-mb-3{--margin-bottom: var(--space-3)}.xs\:rt-r-mb-4{--margin-bottom: var(--space-4)}.xs\:rt-r-mb-5{--margin-bottom: var(--space-5)}.xs\:rt-r-mb-6{--margin-bottom: var(--space-6)}.xs\:rt-r-mb-7{--margin-bottom: var(--space-7)}.xs\:rt-r-mb-8{--margin-bottom: var(--space-8)}.xs\:rt-r-mb-9{--margin-bottom: var(--space-9)}.xs\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.xs\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.xs\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.xs\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.xs\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.xs\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.xs\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.xs\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.xs\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mb,.sm\:rt-r-mb-0,.sm\:rt-r-mb-1,.sm\:rt-r-mb-2,.sm\:rt-r-mb-3,.sm\:rt-r-mb-4,.sm\:rt-r-mb-5,.sm\:rt-r-mb-6,.sm\:rt-r-mb-7,.sm\:rt-r-mb-8,.sm\:rt-r-mb-9,.sm\:-rt-r-mb-1,.sm\:-rt-r-mb-2,.sm\:-rt-r-mb-3,.sm\:-rt-r-mb-4,.sm\:-rt-r-mb-5,.sm\:-rt-r-mb-6,.sm\:-rt-r-mb-7,.sm\:-rt-r-mb-8,.sm\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.sm\:rt-r-mb{--margin-bottom: var(--mb-sm) }.sm\:rt-r-mb-0{--margin-bottom: 0px}.sm\:rt-r-mb-1{--margin-bottom: var(--space-1)}.sm\:rt-r-mb-2{--margin-bottom: var(--space-2)}.sm\:rt-r-mb-3{--margin-bottom: var(--space-3)}.sm\:rt-r-mb-4{--margin-bottom: var(--space-4)}.sm\:rt-r-mb-5{--margin-bottom: var(--space-5)}.sm\:rt-r-mb-6{--margin-bottom: var(--space-6)}.sm\:rt-r-mb-7{--margin-bottom: var(--space-7)}.sm\:rt-r-mb-8{--margin-bottom: var(--space-8)}.sm\:rt-r-mb-9{--margin-bottom: var(--space-9)}.sm\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.sm\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.sm\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.sm\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.sm\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.sm\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.sm\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.sm\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.sm\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mb,.md\:rt-r-mb-0,.md\:rt-r-mb-1,.md\:rt-r-mb-2,.md\:rt-r-mb-3,.md\:rt-r-mb-4,.md\:rt-r-mb-5,.md\:rt-r-mb-6,.md\:rt-r-mb-7,.md\:rt-r-mb-8,.md\:rt-r-mb-9,.md\:-rt-r-mb-1,.md\:-rt-r-mb-2,.md\:-rt-r-mb-3,.md\:-rt-r-mb-4,.md\:-rt-r-mb-5,.md\:-rt-r-mb-6,.md\:-rt-r-mb-7,.md\:-rt-r-mb-8,.md\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.md\:rt-r-mb{--margin-bottom: var(--mb-md) }.md\:rt-r-mb-0{--margin-bottom: 0px}.md\:rt-r-mb-1{--margin-bottom: var(--space-1)}.md\:rt-r-mb-2{--margin-bottom: var(--space-2)}.md\:rt-r-mb-3{--margin-bottom: var(--space-3)}.md\:rt-r-mb-4{--margin-bottom: var(--space-4)}.md\:rt-r-mb-5{--margin-bottom: var(--space-5)}.md\:rt-r-mb-6{--margin-bottom: var(--space-6)}.md\:rt-r-mb-7{--margin-bottom: var(--space-7)}.md\:rt-r-mb-8{--margin-bottom: var(--space-8)}.md\:rt-r-mb-9{--margin-bottom: var(--space-9)}.md\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.md\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.md\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.md\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.md\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.md\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.md\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.md\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.md\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mb,.lg\:rt-r-mb-0,.lg\:rt-r-mb-1,.lg\:rt-r-mb-2,.lg\:rt-r-mb-3,.lg\:rt-r-mb-4,.lg\:rt-r-mb-5,.lg\:rt-r-mb-6,.lg\:rt-r-mb-7,.lg\:rt-r-mb-8,.lg\:rt-r-mb-9,.lg\:-rt-r-mb-1,.lg\:-rt-r-mb-2,.lg\:-rt-r-mb-3,.lg\:-rt-r-mb-4,.lg\:-rt-r-mb-5,.lg\:-rt-r-mb-6,.lg\:-rt-r-mb-7,.lg\:-rt-r-mb-8,.lg\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.lg\:rt-r-mb{--margin-bottom: var(--mb-lg) }.lg\:rt-r-mb-0{--margin-bottom: 0px}.lg\:rt-r-mb-1{--margin-bottom: var(--space-1)}.lg\:rt-r-mb-2{--margin-bottom: var(--space-2)}.lg\:rt-r-mb-3{--margin-bottom: var(--space-3)}.lg\:rt-r-mb-4{--margin-bottom: var(--space-4)}.lg\:rt-r-mb-5{--margin-bottom: var(--space-5)}.lg\:rt-r-mb-6{--margin-bottom: var(--space-6)}.lg\:rt-r-mb-7{--margin-bottom: var(--space-7)}.lg\:rt-r-mb-8{--margin-bottom: var(--space-8)}.lg\:rt-r-mb-9{--margin-bottom: var(--space-9)}.lg\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.lg\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.lg\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.lg\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.lg\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.lg\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.lg\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.lg\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.lg\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mb,.xl\:rt-r-mb-0,.xl\:rt-r-mb-1,.xl\:rt-r-mb-2,.xl\:rt-r-mb-3,.xl\:rt-r-mb-4,.xl\:rt-r-mb-5,.xl\:rt-r-mb-6,.xl\:rt-r-mb-7,.xl\:rt-r-mb-8,.xl\:rt-r-mb-9,.xl\:-rt-r-mb-1,.xl\:-rt-r-mb-2,.xl\:-rt-r-mb-3,.xl\:-rt-r-mb-4,.xl\:-rt-r-mb-5,.xl\:-rt-r-mb-6,.xl\:-rt-r-mb-7,.xl\:-rt-r-mb-8,.xl\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xl\:rt-r-mb{--margin-bottom: var(--mb-xl) }.xl\:rt-r-mb-0{--margin-bottom: 0px}.xl\:rt-r-mb-1{--margin-bottom: var(--space-1)}.xl\:rt-r-mb-2{--margin-bottom: var(--space-2)}.xl\:rt-r-mb-3{--margin-bottom: var(--space-3)}.xl\:rt-r-mb-4{--margin-bottom: var(--space-4)}.xl\:rt-r-mb-5{--margin-bottom: var(--space-5)}.xl\:rt-r-mb-6{--margin-bottom: var(--space-6)}.xl\:rt-r-mb-7{--margin-bottom: var(--space-7)}.xl\:rt-r-mb-8{--margin-bottom: var(--space-8)}.xl\:rt-r-mb-9{--margin-bottom: var(--space-9)}.xl\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.xl\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.xl\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.xl\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.xl\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.xl\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.xl\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.xl\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.xl\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}.rt-r-ml,.rt-r-ml-0,.rt-r-ml-1,.rt-r-ml-2,.rt-r-ml-3,.rt-r-ml-4,.rt-r-ml-5,.rt-r-ml-6,.rt-r-ml-7,.rt-r-ml-8,.rt-r-ml-9,.-rt-r-ml-1,.-rt-r-ml-2,.-rt-r-ml-3,.-rt-r-ml-4,.-rt-r-ml-5,.-rt-r-ml-6,.-rt-r-ml-7,.-rt-r-ml-8,.-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.rt-r-ml{--margin-left: var(--ml) }.rt-r-ml-0{--margin-left: 0px}.rt-r-ml-1{--margin-left: var(--space-1)}.rt-r-ml-2{--margin-left: var(--space-2)}.rt-r-ml-3{--margin-left: var(--space-3)}.rt-r-ml-4{--margin-left: var(--space-4)}.rt-r-ml-5{--margin-left: var(--space-5)}.rt-r-ml-6{--margin-left: var(--space-6)}.rt-r-ml-7{--margin-left: var(--space-7)}.rt-r-ml-8{--margin-left: var(--space-8)}.rt-r-ml-9{--margin-left: var(--space-9)}.-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-ml,.xs\:rt-r-ml-0,.xs\:rt-r-ml-1,.xs\:rt-r-ml-2,.xs\:rt-r-ml-3,.xs\:rt-r-ml-4,.xs\:rt-r-ml-5,.xs\:rt-r-ml-6,.xs\:rt-r-ml-7,.xs\:rt-r-ml-8,.xs\:rt-r-ml-9,.xs\:-rt-r-ml-1,.xs\:-rt-r-ml-2,.xs\:-rt-r-ml-3,.xs\:-rt-r-ml-4,.xs\:-rt-r-ml-5,.xs\:-rt-r-ml-6,.xs\:-rt-r-ml-7,.xs\:-rt-r-ml-8,.xs\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.xs\:rt-r-ml{--margin-left: var(--ml-xs) }.xs\:rt-r-ml-0{--margin-left: 0px}.xs\:rt-r-ml-1{--margin-left: var(--space-1)}.xs\:rt-r-ml-2{--margin-left: var(--space-2)}.xs\:rt-r-ml-3{--margin-left: var(--space-3)}.xs\:rt-r-ml-4{--margin-left: var(--space-4)}.xs\:rt-r-ml-5{--margin-left: var(--space-5)}.xs\:rt-r-ml-6{--margin-left: var(--space-6)}.xs\:rt-r-ml-7{--margin-left: var(--space-7)}.xs\:rt-r-ml-8{--margin-left: var(--space-8)}.xs\:rt-r-ml-9{--margin-left: var(--space-9)}.xs\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.xs\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.xs\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.xs\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.xs\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.xs\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.xs\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.xs\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.xs\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-ml,.sm\:rt-r-ml-0,.sm\:rt-r-ml-1,.sm\:rt-r-ml-2,.sm\:rt-r-ml-3,.sm\:rt-r-ml-4,.sm\:rt-r-ml-5,.sm\:rt-r-ml-6,.sm\:rt-r-ml-7,.sm\:rt-r-ml-8,.sm\:rt-r-ml-9,.sm\:-rt-r-ml-1,.sm\:-rt-r-ml-2,.sm\:-rt-r-ml-3,.sm\:-rt-r-ml-4,.sm\:-rt-r-ml-5,.sm\:-rt-r-ml-6,.sm\:-rt-r-ml-7,.sm\:-rt-r-ml-8,.sm\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.sm\:rt-r-ml{--margin-left: var(--ml-sm) }.sm\:rt-r-ml-0{--margin-left: 0px}.sm\:rt-r-ml-1{--margin-left: var(--space-1)}.sm\:rt-r-ml-2{--margin-left: var(--space-2)}.sm\:rt-r-ml-3{--margin-left: var(--space-3)}.sm\:rt-r-ml-4{--margin-left: var(--space-4)}.sm\:rt-r-ml-5{--margin-left: var(--space-5)}.sm\:rt-r-ml-6{--margin-left: var(--space-6)}.sm\:rt-r-ml-7{--margin-left: var(--space-7)}.sm\:rt-r-ml-8{--margin-left: var(--space-8)}.sm\:rt-r-ml-9{--margin-left: var(--space-9)}.sm\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.sm\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.sm\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.sm\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.sm\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.sm\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.sm\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.sm\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.sm\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-ml,.md\:rt-r-ml-0,.md\:rt-r-ml-1,.md\:rt-r-ml-2,.md\:rt-r-ml-3,.md\:rt-r-ml-4,.md\:rt-r-ml-5,.md\:rt-r-ml-6,.md\:rt-r-ml-7,.md\:rt-r-ml-8,.md\:rt-r-ml-9,.md\:-rt-r-ml-1,.md\:-rt-r-ml-2,.md\:-rt-r-ml-3,.md\:-rt-r-ml-4,.md\:-rt-r-ml-5,.md\:-rt-r-ml-6,.md\:-rt-r-ml-7,.md\:-rt-r-ml-8,.md\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.md\:rt-r-ml{--margin-left: var(--ml-md) }.md\:rt-r-ml-0{--margin-left: 0px}.md\:rt-r-ml-1{--margin-left: var(--space-1)}.md\:rt-r-ml-2{--margin-left: var(--space-2)}.md\:rt-r-ml-3{--margin-left: var(--space-3)}.md\:rt-r-ml-4{--margin-left: var(--space-4)}.md\:rt-r-ml-5{--margin-left: var(--space-5)}.md\:rt-r-ml-6{--margin-left: var(--space-6)}.md\:rt-r-ml-7{--margin-left: var(--space-7)}.md\:rt-r-ml-8{--margin-left: var(--space-8)}.md\:rt-r-ml-9{--margin-left: var(--space-9)}.md\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.md\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.md\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.md\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.md\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.md\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.md\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.md\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.md\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-ml,.lg\:rt-r-ml-0,.lg\:rt-r-ml-1,.lg\:rt-r-ml-2,.lg\:rt-r-ml-3,.lg\:rt-r-ml-4,.lg\:rt-r-ml-5,.lg\:rt-r-ml-6,.lg\:rt-r-ml-7,.lg\:rt-r-ml-8,.lg\:rt-r-ml-9,.lg\:-rt-r-ml-1,.lg\:-rt-r-ml-2,.lg\:-rt-r-ml-3,.lg\:-rt-r-ml-4,.lg\:-rt-r-ml-5,.lg\:-rt-r-ml-6,.lg\:-rt-r-ml-7,.lg\:-rt-r-ml-8,.lg\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.lg\:rt-r-ml{--margin-left: var(--ml-lg) }.lg\:rt-r-ml-0{--margin-left: 0px}.lg\:rt-r-ml-1{--margin-left: var(--space-1)}.lg\:rt-r-ml-2{--margin-left: var(--space-2)}.lg\:rt-r-ml-3{--margin-left: var(--space-3)}.lg\:rt-r-ml-4{--margin-left: var(--space-4)}.lg\:rt-r-ml-5{--margin-left: var(--space-5)}.lg\:rt-r-ml-6{--margin-left: var(--space-6)}.lg\:rt-r-ml-7{--margin-left: var(--space-7)}.lg\:rt-r-ml-8{--margin-left: var(--space-8)}.lg\:rt-r-ml-9{--margin-left: var(--space-9)}.lg\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.lg\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.lg\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.lg\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.lg\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.lg\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.lg\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.lg\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.lg\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-ml,.xl\:rt-r-ml-0,.xl\:rt-r-ml-1,.xl\:rt-r-ml-2,.xl\:rt-r-ml-3,.xl\:rt-r-ml-4,.xl\:rt-r-ml-5,.xl\:rt-r-ml-6,.xl\:rt-r-ml-7,.xl\:rt-r-ml-8,.xl\:rt-r-ml-9,.xl\:-rt-r-ml-1,.xl\:-rt-r-ml-2,.xl\:-rt-r-ml-3,.xl\:-rt-r-ml-4,.xl\:-rt-r-ml-5,.xl\:-rt-r-ml-6,.xl\:-rt-r-ml-7,.xl\:-rt-r-ml-8,.xl\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.xl\:rt-r-ml{--margin-left: var(--ml-xl) }.xl\:rt-r-ml-0{--margin-left: 0px}.xl\:rt-r-ml-1{--margin-left: var(--space-1)}.xl\:rt-r-ml-2{--margin-left: var(--space-2)}.xl\:rt-r-ml-3{--margin-left: var(--space-3)}.xl\:rt-r-ml-4{--margin-left: var(--space-4)}.xl\:rt-r-ml-5{--margin-left: var(--space-5)}.xl\:rt-r-ml-6{--margin-left: var(--space-6)}.xl\:rt-r-ml-7{--margin-left: var(--space-7)}.xl\:rt-r-ml-8{--margin-left: var(--space-8)}.xl\:rt-r-ml-9{--margin-left: var(--space-9)}.xl\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.xl\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.xl\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.xl\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.xl\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.xl\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.xl\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.xl\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.xl\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}.rt-r-overflow-visible{overflow:visible}.rt-r-overflow-hidden{overflow:hidden}.rt-r-overflow-clip{overflow:clip}.rt-r-overflow-scroll{overflow:scroll}.rt-r-overflow-auto{overflow:auto}.rt-r-ox-visible{overflow-x:visible}.rt-r-ox-hidden{overflow-x:hidden}.rt-r-ox-clip{overflow-x:clip}.rt-r-ox-scroll{overflow-x:scroll}.rt-r-ox-auto{overflow-x:auto}.rt-r-oy-visible{overflow-y:visible}.rt-r-oy-hidden{overflow-y:hidden}.rt-r-oy-clip{overflow-y:clip}.rt-r-oy-scroll{overflow-y:scroll}.rt-r-oy-auto{overflow-y:auto}@media (min-width: 520px){.xs\:rt-r-overflow-visible{overflow:visible}.xs\:rt-r-overflow-hidden{overflow:hidden}.xs\:rt-r-overflow-clip{overflow:clip}.xs\:rt-r-overflow-scroll{overflow:scroll}.xs\:rt-r-overflow-auto{overflow:auto}.xs\:rt-r-ox-visible{overflow-x:visible}.xs\:rt-r-ox-hidden{overflow-x:hidden}.xs\:rt-r-ox-clip{overflow-x:clip}.xs\:rt-r-ox-scroll{overflow-x:scroll}.xs\:rt-r-ox-auto{overflow-x:auto}.xs\:rt-r-oy-visible{overflow-y:visible}.xs\:rt-r-oy-hidden{overflow-y:hidden}.xs\:rt-r-oy-clip{overflow-y:clip}.xs\:rt-r-oy-scroll{overflow-y:scroll}.xs\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 768px){.sm\:rt-r-overflow-visible{overflow:visible}.sm\:rt-r-overflow-hidden{overflow:hidden}.sm\:rt-r-overflow-clip{overflow:clip}.sm\:rt-r-overflow-scroll{overflow:scroll}.sm\:rt-r-overflow-auto{overflow:auto}.sm\:rt-r-ox-visible{overflow-x:visible}.sm\:rt-r-ox-hidden{overflow-x:hidden}.sm\:rt-r-ox-clip{overflow-x:clip}.sm\:rt-r-ox-scroll{overflow-x:scroll}.sm\:rt-r-ox-auto{overflow-x:auto}.sm\:rt-r-oy-visible{overflow-y:visible}.sm\:rt-r-oy-hidden{overflow-y:hidden}.sm\:rt-r-oy-clip{overflow-y:clip}.sm\:rt-r-oy-scroll{overflow-y:scroll}.sm\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 1024px){.md\:rt-r-overflow-visible{overflow:visible}.md\:rt-r-overflow-hidden{overflow:hidden}.md\:rt-r-overflow-clip{overflow:clip}.md\:rt-r-overflow-scroll{overflow:scroll}.md\:rt-r-overflow-auto{overflow:auto}.md\:rt-r-ox-visible{overflow-x:visible}.md\:rt-r-ox-hidden{overflow-x:hidden}.md\:rt-r-ox-clip{overflow-x:clip}.md\:rt-r-ox-scroll{overflow-x:scroll}.md\:rt-r-ox-auto{overflow-x:auto}.md\:rt-r-oy-visible{overflow-y:visible}.md\:rt-r-oy-hidden{overflow-y:hidden}.md\:rt-r-oy-clip{overflow-y:clip}.md\:rt-r-oy-scroll{overflow-y:scroll}.md\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 1280px){.lg\:rt-r-overflow-visible{overflow:visible}.lg\:rt-r-overflow-hidden{overflow:hidden}.lg\:rt-r-overflow-clip{overflow:clip}.lg\:rt-r-overflow-scroll{overflow:scroll}.lg\:rt-r-overflow-auto{overflow:auto}.lg\:rt-r-ox-visible{overflow-x:visible}.lg\:rt-r-ox-hidden{overflow-x:hidden}.lg\:rt-r-ox-clip{overflow-x:clip}.lg\:rt-r-ox-scroll{overflow-x:scroll}.lg\:rt-r-ox-auto{overflow-x:auto}.lg\:rt-r-oy-visible{overflow-y:visible}.lg\:rt-r-oy-hidden{overflow-y:hidden}.lg\:rt-r-oy-clip{overflow-y:clip}.lg\:rt-r-oy-scroll{overflow-y:scroll}.lg\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 1640px){.xl\:rt-r-overflow-visible{overflow:visible}.xl\:rt-r-overflow-hidden{overflow:hidden}.xl\:rt-r-overflow-clip{overflow:clip}.xl\:rt-r-overflow-scroll{overflow:scroll}.xl\:rt-r-overflow-auto{overflow:auto}.xl\:rt-r-ox-visible{overflow-x:visible}.xl\:rt-r-ox-hidden{overflow-x:hidden}.xl\:rt-r-ox-clip{overflow-x:clip}.xl\:rt-r-ox-scroll{overflow-x:scroll}.xl\:rt-r-ox-auto{overflow-x:auto}.xl\:rt-r-oy-visible{overflow-y:visible}.xl\:rt-r-oy-hidden{overflow-y:hidden}.xl\:rt-r-oy-clip{overflow-y:clip}.xl\:rt-r-oy-scroll{overflow-y:scroll}.xl\:rt-r-oy-auto{overflow-y:auto}}.rt-r-p{padding:var(--p)}.rt-r-p-0{padding:0}.rt-r-p-1{padding:var(--space-1)}.rt-r-p-2{padding:var(--space-2)}.rt-r-p-3{padding:var(--space-3)}.rt-r-p-4{padding:var(--space-4)}.rt-r-p-5{padding:var(--space-5)}.rt-r-p-6{padding:var(--space-6)}.rt-r-p-7{padding:var(--space-7)}.rt-r-p-8{padding:var(--space-8)}.rt-r-p-9{padding:var(--space-9)}.rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}@media (min-width: 520px){.xs\:rt-r-p{padding:var(--p-xs)}.xs\:rt-r-p-0{padding:0}.xs\:rt-r-p-1{padding:var(--space-1)}.xs\:rt-r-p-2{padding:var(--space-2)}.xs\:rt-r-p-3{padding:var(--space-3)}.xs\:rt-r-p-4{padding:var(--space-4)}.xs\:rt-r-p-5{padding:var(--space-5)}.xs\:rt-r-p-6{padding:var(--space-6)}.xs\:rt-r-p-7{padding:var(--space-7)}.xs\:rt-r-p-8{padding:var(--space-8)}.xs\:rt-r-p-9{padding:var(--space-9)}.xs\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 768px){.sm\:rt-r-p{padding:var(--p-sm)}.sm\:rt-r-p-0{padding:0}.sm\:rt-r-p-1{padding:var(--space-1)}.sm\:rt-r-p-2{padding:var(--space-2)}.sm\:rt-r-p-3{padding:var(--space-3)}.sm\:rt-r-p-4{padding:var(--space-4)}.sm\:rt-r-p-5{padding:var(--space-5)}.sm\:rt-r-p-6{padding:var(--space-6)}.sm\:rt-r-p-7{padding:var(--space-7)}.sm\:rt-r-p-8{padding:var(--space-8)}.sm\:rt-r-p-9{padding:var(--space-9)}.sm\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 1024px){.md\:rt-r-p{padding:var(--p-md)}.md\:rt-r-p-0{padding:0}.md\:rt-r-p-1{padding:var(--space-1)}.md\:rt-r-p-2{padding:var(--space-2)}.md\:rt-r-p-3{padding:var(--space-3)}.md\:rt-r-p-4{padding:var(--space-4)}.md\:rt-r-p-5{padding:var(--space-5)}.md\:rt-r-p-6{padding:var(--space-6)}.md\:rt-r-p-7{padding:var(--space-7)}.md\:rt-r-p-8{padding:var(--space-8)}.md\:rt-r-p-9{padding:var(--space-9)}.md\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 1280px){.lg\:rt-r-p{padding:var(--p-lg)}.lg\:rt-r-p-0{padding:0}.lg\:rt-r-p-1{padding:var(--space-1)}.lg\:rt-r-p-2{padding:var(--space-2)}.lg\:rt-r-p-3{padding:var(--space-3)}.lg\:rt-r-p-4{padding:var(--space-4)}.lg\:rt-r-p-5{padding:var(--space-5)}.lg\:rt-r-p-6{padding:var(--space-6)}.lg\:rt-r-p-7{padding:var(--space-7)}.lg\:rt-r-p-8{padding:var(--space-8)}.lg\:rt-r-p-9{padding:var(--space-9)}.lg\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 1640px){.xl\:rt-r-p{padding:var(--p-xl)}.xl\:rt-r-p-0{padding:0}.xl\:rt-r-p-1{padding:var(--space-1)}.xl\:rt-r-p-2{padding:var(--space-2)}.xl\:rt-r-p-3{padding:var(--space-3)}.xl\:rt-r-p-4{padding:var(--space-4)}.xl\:rt-r-p-5{padding:var(--space-5)}.xl\:rt-r-p-6{padding:var(--space-6)}.xl\:rt-r-p-7{padding:var(--space-7)}.xl\:rt-r-p-8{padding:var(--space-8)}.xl\:rt-r-p-9{padding:var(--space-9)}.xl\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}.rt-r-px{padding-left:var(--pl);padding-right:var(--pr)}.rt-r-px-0{padding-left:0;padding-right:0}.rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}@media (min-width: 520px){.xs\:rt-r-px{padding-left:var(--pl-xs);padding-right:var(--pr-xs)}.xs\:rt-r-px-0{padding-left:0;padding-right:0}.xs\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.xs\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.xs\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.xs\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.xs\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.xs\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.xs\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.xs\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.xs\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.xs\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 768px){.sm\:rt-r-px{padding-left:var(--pl-sm);padding-right:var(--pr-sm)}.sm\:rt-r-px-0{padding-left:0;padding-right:0}.sm\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.sm\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.sm\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.sm\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.sm\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.sm\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.sm\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.sm\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.sm\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.sm\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 1024px){.md\:rt-r-px{padding-left:var(--pl-md);padding-right:var(--pr-md)}.md\:rt-r-px-0{padding-left:0;padding-right:0}.md\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.md\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.md\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.md\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.md\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.md\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.md\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.md\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.md\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.md\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 1280px){.lg\:rt-r-px{padding-left:var(--pl-lg);padding-right:var(--pr-lg)}.lg\:rt-r-px-0{padding-left:0;padding-right:0}.lg\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.lg\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.lg\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.lg\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.lg\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.lg\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.lg\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.lg\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.lg\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.lg\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 1640px){.xl\:rt-r-px{padding-left:var(--pl-xl);padding-right:var(--pr-xl)}.xl\:rt-r-px-0{padding-left:0;padding-right:0}.xl\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.xl\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.xl\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.xl\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.xl\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.xl\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.xl\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.xl\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.xl\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.xl\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}.rt-r-py{padding-top:var(--pt);padding-bottom:var(--pb)}.rt-r-py-0{padding-top:0;padding-bottom:0}.rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}@media (min-width: 520px){.xs\:rt-r-py{padding-top:var(--pt-xs);padding-bottom:var(--pb-xs)}.xs\:rt-r-py-0{padding-top:0;padding-bottom:0}.xs\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.xs\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.xs\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.xs\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.xs\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.xs\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.xs\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.xs\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.xs\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.xs\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 768px){.sm\:rt-r-py{padding-top:var(--pt-sm);padding-bottom:var(--pb-sm)}.sm\:rt-r-py-0{padding-top:0;padding-bottom:0}.sm\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.sm\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.sm\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.sm\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.sm\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.sm\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.sm\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.sm\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.sm\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.sm\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1024px){.md\:rt-r-py{padding-top:var(--pt-md);padding-bottom:var(--pb-md)}.md\:rt-r-py-0{padding-top:0;padding-bottom:0}.md\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.md\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.md\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.md\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.md\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.md\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.md\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.md\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.md\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.md\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1280px){.lg\:rt-r-py{padding-top:var(--pt-lg);padding-bottom:var(--pb-lg)}.lg\:rt-r-py-0{padding-top:0;padding-bottom:0}.lg\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.lg\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.lg\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.lg\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.lg\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.lg\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.lg\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.lg\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.lg\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.lg\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1640px){.xl\:rt-r-py{padding-top:var(--pt-xl);padding-bottom:var(--pb-xl)}.xl\:rt-r-py-0{padding-top:0;padding-bottom:0}.xl\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.xl\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.xl\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.xl\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.xl\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.xl\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.xl\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.xl\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.xl\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.xl\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}.rt-r-pt{padding-top:var(--pt)}.rt-r-pt-0{padding-top:0}.rt-r-pt-1{padding-top:var(--space-1)}.rt-r-pt-2{padding-top:var(--space-2)}.rt-r-pt-3{padding-top:var(--space-3)}.rt-r-pt-4{padding-top:var(--space-4)}.rt-r-pt-5{padding-top:var(--space-5)}.rt-r-pt-6{padding-top:var(--space-6)}.rt-r-pt-7{padding-top:var(--space-7)}.rt-r-pt-8{padding-top:var(--space-8)}.rt-r-pt-9{padding-top:var(--space-9)}.rt-r-pt-inset{padding-top:var(--inset-padding-top)}@media (min-width: 520px){.xs\:rt-r-pt{padding-top:var(--pt-xs)}.xs\:rt-r-pt-0{padding-top:0}.xs\:rt-r-pt-1{padding-top:var(--space-1)}.xs\:rt-r-pt-2{padding-top:var(--space-2)}.xs\:rt-r-pt-3{padding-top:var(--space-3)}.xs\:rt-r-pt-4{padding-top:var(--space-4)}.xs\:rt-r-pt-5{padding-top:var(--space-5)}.xs\:rt-r-pt-6{padding-top:var(--space-6)}.xs\:rt-r-pt-7{padding-top:var(--space-7)}.xs\:rt-r-pt-8{padding-top:var(--space-8)}.xs\:rt-r-pt-9{padding-top:var(--space-9)}.xs\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 768px){.sm\:rt-r-pt{padding-top:var(--pt-sm)}.sm\:rt-r-pt-0{padding-top:0}.sm\:rt-r-pt-1{padding-top:var(--space-1)}.sm\:rt-r-pt-2{padding-top:var(--space-2)}.sm\:rt-r-pt-3{padding-top:var(--space-3)}.sm\:rt-r-pt-4{padding-top:var(--space-4)}.sm\:rt-r-pt-5{padding-top:var(--space-5)}.sm\:rt-r-pt-6{padding-top:var(--space-6)}.sm\:rt-r-pt-7{padding-top:var(--space-7)}.sm\:rt-r-pt-8{padding-top:var(--space-8)}.sm\:rt-r-pt-9{padding-top:var(--space-9)}.sm\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 1024px){.md\:rt-r-pt{padding-top:var(--pt-md)}.md\:rt-r-pt-0{padding-top:0}.md\:rt-r-pt-1{padding-top:var(--space-1)}.md\:rt-r-pt-2{padding-top:var(--space-2)}.md\:rt-r-pt-3{padding-top:var(--space-3)}.md\:rt-r-pt-4{padding-top:var(--space-4)}.md\:rt-r-pt-5{padding-top:var(--space-5)}.md\:rt-r-pt-6{padding-top:var(--space-6)}.md\:rt-r-pt-7{padding-top:var(--space-7)}.md\:rt-r-pt-8{padding-top:var(--space-8)}.md\:rt-r-pt-9{padding-top:var(--space-9)}.md\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 1280px){.lg\:rt-r-pt{padding-top:var(--pt-lg)}.lg\:rt-r-pt-0{padding-top:0}.lg\:rt-r-pt-1{padding-top:var(--space-1)}.lg\:rt-r-pt-2{padding-top:var(--space-2)}.lg\:rt-r-pt-3{padding-top:var(--space-3)}.lg\:rt-r-pt-4{padding-top:var(--space-4)}.lg\:rt-r-pt-5{padding-top:var(--space-5)}.lg\:rt-r-pt-6{padding-top:var(--space-6)}.lg\:rt-r-pt-7{padding-top:var(--space-7)}.lg\:rt-r-pt-8{padding-top:var(--space-8)}.lg\:rt-r-pt-9{padding-top:var(--space-9)}.lg\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 1640px){.xl\:rt-r-pt{padding-top:var(--pt-xl)}.xl\:rt-r-pt-0{padding-top:0}.xl\:rt-r-pt-1{padding-top:var(--space-1)}.xl\:rt-r-pt-2{padding-top:var(--space-2)}.xl\:rt-r-pt-3{padding-top:var(--space-3)}.xl\:rt-r-pt-4{padding-top:var(--space-4)}.xl\:rt-r-pt-5{padding-top:var(--space-5)}.xl\:rt-r-pt-6{padding-top:var(--space-6)}.xl\:rt-r-pt-7{padding-top:var(--space-7)}.xl\:rt-r-pt-8{padding-top:var(--space-8)}.xl\:rt-r-pt-9{padding-top:var(--space-9)}.xl\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}.rt-r-pr{padding-right:var(--pr)}.rt-r-pr-0{padding-right:0}.rt-r-pr-1{padding-right:var(--space-1)}.rt-r-pr-2{padding-right:var(--space-2)}.rt-r-pr-3{padding-right:var(--space-3)}.rt-r-pr-4{padding-right:var(--space-4)}.rt-r-pr-5{padding-right:var(--space-5)}.rt-r-pr-6{padding-right:var(--space-6)}.rt-r-pr-7{padding-right:var(--space-7)}.rt-r-pr-8{padding-right:var(--space-8)}.rt-r-pr-9{padding-right:var(--space-9)}.rt-r-pr-inset{padding-right:var(--inset-padding-right)}@media (min-width: 520px){.xs\:rt-r-pr{padding-right:var(--pr-xs)}.xs\:rt-r-pr-0{padding-right:0}.xs\:rt-r-pr-1{padding-right:var(--space-1)}.xs\:rt-r-pr-2{padding-right:var(--space-2)}.xs\:rt-r-pr-3{padding-right:var(--space-3)}.xs\:rt-r-pr-4{padding-right:var(--space-4)}.xs\:rt-r-pr-5{padding-right:var(--space-5)}.xs\:rt-r-pr-6{padding-right:var(--space-6)}.xs\:rt-r-pr-7{padding-right:var(--space-7)}.xs\:rt-r-pr-8{padding-right:var(--space-8)}.xs\:rt-r-pr-9{padding-right:var(--space-9)}.xs\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 768px){.sm\:rt-r-pr{padding-right:var(--pr-sm)}.sm\:rt-r-pr-0{padding-right:0}.sm\:rt-r-pr-1{padding-right:var(--space-1)}.sm\:rt-r-pr-2{padding-right:var(--space-2)}.sm\:rt-r-pr-3{padding-right:var(--space-3)}.sm\:rt-r-pr-4{padding-right:var(--space-4)}.sm\:rt-r-pr-5{padding-right:var(--space-5)}.sm\:rt-r-pr-6{padding-right:var(--space-6)}.sm\:rt-r-pr-7{padding-right:var(--space-7)}.sm\:rt-r-pr-8{padding-right:var(--space-8)}.sm\:rt-r-pr-9{padding-right:var(--space-9)}.sm\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 1024px){.md\:rt-r-pr{padding-right:var(--pr-md)}.md\:rt-r-pr-0{padding-right:0}.md\:rt-r-pr-1{padding-right:var(--space-1)}.md\:rt-r-pr-2{padding-right:var(--space-2)}.md\:rt-r-pr-3{padding-right:var(--space-3)}.md\:rt-r-pr-4{padding-right:var(--space-4)}.md\:rt-r-pr-5{padding-right:var(--space-5)}.md\:rt-r-pr-6{padding-right:var(--space-6)}.md\:rt-r-pr-7{padding-right:var(--space-7)}.md\:rt-r-pr-8{padding-right:var(--space-8)}.md\:rt-r-pr-9{padding-right:var(--space-9)}.md\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 1280px){.lg\:rt-r-pr{padding-right:var(--pr-lg)}.lg\:rt-r-pr-0{padding-right:0}.lg\:rt-r-pr-1{padding-right:var(--space-1)}.lg\:rt-r-pr-2{padding-right:var(--space-2)}.lg\:rt-r-pr-3{padding-right:var(--space-3)}.lg\:rt-r-pr-4{padding-right:var(--space-4)}.lg\:rt-r-pr-5{padding-right:var(--space-5)}.lg\:rt-r-pr-6{padding-right:var(--space-6)}.lg\:rt-r-pr-7{padding-right:var(--space-7)}.lg\:rt-r-pr-8{padding-right:var(--space-8)}.lg\:rt-r-pr-9{padding-right:var(--space-9)}.lg\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 1640px){.xl\:rt-r-pr{padding-right:var(--pr-xl)}.xl\:rt-r-pr-0{padding-right:0}.xl\:rt-r-pr-1{padding-right:var(--space-1)}.xl\:rt-r-pr-2{padding-right:var(--space-2)}.xl\:rt-r-pr-3{padding-right:var(--space-3)}.xl\:rt-r-pr-4{padding-right:var(--space-4)}.xl\:rt-r-pr-5{padding-right:var(--space-5)}.xl\:rt-r-pr-6{padding-right:var(--space-6)}.xl\:rt-r-pr-7{padding-right:var(--space-7)}.xl\:rt-r-pr-8{padding-right:var(--space-8)}.xl\:rt-r-pr-9{padding-right:var(--space-9)}.xl\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}.rt-r-pb{padding-bottom:var(--pb)}.rt-r-pb-0{padding-bottom:0}.rt-r-pb-1{padding-bottom:var(--space-1)}.rt-r-pb-2{padding-bottom:var(--space-2)}.rt-r-pb-3{padding-bottom:var(--space-3)}.rt-r-pb-4{padding-bottom:var(--space-4)}.rt-r-pb-5{padding-bottom:var(--space-5)}.rt-r-pb-6{padding-bottom:var(--space-6)}.rt-r-pb-7{padding-bottom:var(--space-7)}.rt-r-pb-8{padding-bottom:var(--space-8)}.rt-r-pb-9{padding-bottom:var(--space-9)}.rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}@media (min-width: 520px){.xs\:rt-r-pb{padding-bottom:var(--pb-xs)}.xs\:rt-r-pb-0{padding-bottom:0}.xs\:rt-r-pb-1{padding-bottom:var(--space-1)}.xs\:rt-r-pb-2{padding-bottom:var(--space-2)}.xs\:rt-r-pb-3{padding-bottom:var(--space-3)}.xs\:rt-r-pb-4{padding-bottom:var(--space-4)}.xs\:rt-r-pb-5{padding-bottom:var(--space-5)}.xs\:rt-r-pb-6{padding-bottom:var(--space-6)}.xs\:rt-r-pb-7{padding-bottom:var(--space-7)}.xs\:rt-r-pb-8{padding-bottom:var(--space-8)}.xs\:rt-r-pb-9{padding-bottom:var(--space-9)}.xs\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 768px){.sm\:rt-r-pb{padding-bottom:var(--pb-sm)}.sm\:rt-r-pb-0{padding-bottom:0}.sm\:rt-r-pb-1{padding-bottom:var(--space-1)}.sm\:rt-r-pb-2{padding-bottom:var(--space-2)}.sm\:rt-r-pb-3{padding-bottom:var(--space-3)}.sm\:rt-r-pb-4{padding-bottom:var(--space-4)}.sm\:rt-r-pb-5{padding-bottom:var(--space-5)}.sm\:rt-r-pb-6{padding-bottom:var(--space-6)}.sm\:rt-r-pb-7{padding-bottom:var(--space-7)}.sm\:rt-r-pb-8{padding-bottom:var(--space-8)}.sm\:rt-r-pb-9{padding-bottom:var(--space-9)}.sm\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1024px){.md\:rt-r-pb{padding-bottom:var(--pb-md)}.md\:rt-r-pb-0{padding-bottom:0}.md\:rt-r-pb-1{padding-bottom:var(--space-1)}.md\:rt-r-pb-2{padding-bottom:var(--space-2)}.md\:rt-r-pb-3{padding-bottom:var(--space-3)}.md\:rt-r-pb-4{padding-bottom:var(--space-4)}.md\:rt-r-pb-5{padding-bottom:var(--space-5)}.md\:rt-r-pb-6{padding-bottom:var(--space-6)}.md\:rt-r-pb-7{padding-bottom:var(--space-7)}.md\:rt-r-pb-8{padding-bottom:var(--space-8)}.md\:rt-r-pb-9{padding-bottom:var(--space-9)}.md\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1280px){.lg\:rt-r-pb{padding-bottom:var(--pb-lg)}.lg\:rt-r-pb-0{padding-bottom:0}.lg\:rt-r-pb-1{padding-bottom:var(--space-1)}.lg\:rt-r-pb-2{padding-bottom:var(--space-2)}.lg\:rt-r-pb-3{padding-bottom:var(--space-3)}.lg\:rt-r-pb-4{padding-bottom:var(--space-4)}.lg\:rt-r-pb-5{padding-bottom:var(--space-5)}.lg\:rt-r-pb-6{padding-bottom:var(--space-6)}.lg\:rt-r-pb-7{padding-bottom:var(--space-7)}.lg\:rt-r-pb-8{padding-bottom:var(--space-8)}.lg\:rt-r-pb-9{padding-bottom:var(--space-9)}.lg\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1640px){.xl\:rt-r-pb{padding-bottom:var(--pb-xl)}.xl\:rt-r-pb-0{padding-bottom:0}.xl\:rt-r-pb-1{padding-bottom:var(--space-1)}.xl\:rt-r-pb-2{padding-bottom:var(--space-2)}.xl\:rt-r-pb-3{padding-bottom:var(--space-3)}.xl\:rt-r-pb-4{padding-bottom:var(--space-4)}.xl\:rt-r-pb-5{padding-bottom:var(--space-5)}.xl\:rt-r-pb-6{padding-bottom:var(--space-6)}.xl\:rt-r-pb-7{padding-bottom:var(--space-7)}.xl\:rt-r-pb-8{padding-bottom:var(--space-8)}.xl\:rt-r-pb-9{padding-bottom:var(--space-9)}.xl\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}.rt-r-pl{padding-left:var(--pl)}.rt-r-pl-0{padding-left:0}.rt-r-pl-1{padding-left:var(--space-1)}.rt-r-pl-2{padding-left:var(--space-2)}.rt-r-pl-3{padding-left:var(--space-3)}.rt-r-pl-4{padding-left:var(--space-4)}.rt-r-pl-5{padding-left:var(--space-5)}.rt-r-pl-6{padding-left:var(--space-6)}.rt-r-pl-7{padding-left:var(--space-7)}.rt-r-pl-8{padding-left:var(--space-8)}.rt-r-pl-9{padding-left:var(--space-9)}.rt-r-pl-inset{padding-left:var(--inset-padding-left)}@media (min-width: 520px){.xs\:rt-r-pl{padding-left:var(--pl-xs)}.xs\:rt-r-pl-0{padding-left:0}.xs\:rt-r-pl-1{padding-left:var(--space-1)}.xs\:rt-r-pl-2{padding-left:var(--space-2)}.xs\:rt-r-pl-3{padding-left:var(--space-3)}.xs\:rt-r-pl-4{padding-left:var(--space-4)}.xs\:rt-r-pl-5{padding-left:var(--space-5)}.xs\:rt-r-pl-6{padding-left:var(--space-6)}.xs\:rt-r-pl-7{padding-left:var(--space-7)}.xs\:rt-r-pl-8{padding-left:var(--space-8)}.xs\:rt-r-pl-9{padding-left:var(--space-9)}.xs\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 768px){.sm\:rt-r-pl{padding-left:var(--pl-sm)}.sm\:rt-r-pl-0{padding-left:0}.sm\:rt-r-pl-1{padding-left:var(--space-1)}.sm\:rt-r-pl-2{padding-left:var(--space-2)}.sm\:rt-r-pl-3{padding-left:var(--space-3)}.sm\:rt-r-pl-4{padding-left:var(--space-4)}.sm\:rt-r-pl-5{padding-left:var(--space-5)}.sm\:rt-r-pl-6{padding-left:var(--space-6)}.sm\:rt-r-pl-7{padding-left:var(--space-7)}.sm\:rt-r-pl-8{padding-left:var(--space-8)}.sm\:rt-r-pl-9{padding-left:var(--space-9)}.sm\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 1024px){.md\:rt-r-pl{padding-left:var(--pl-md)}.md\:rt-r-pl-0{padding-left:0}.md\:rt-r-pl-1{padding-left:var(--space-1)}.md\:rt-r-pl-2{padding-left:var(--space-2)}.md\:rt-r-pl-3{padding-left:var(--space-3)}.md\:rt-r-pl-4{padding-left:var(--space-4)}.md\:rt-r-pl-5{padding-left:var(--space-5)}.md\:rt-r-pl-6{padding-left:var(--space-6)}.md\:rt-r-pl-7{padding-left:var(--space-7)}.md\:rt-r-pl-8{padding-left:var(--space-8)}.md\:rt-r-pl-9{padding-left:var(--space-9)}.md\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 1280px){.lg\:rt-r-pl{padding-left:var(--pl-lg)}.lg\:rt-r-pl-0{padding-left:0}.lg\:rt-r-pl-1{padding-left:var(--space-1)}.lg\:rt-r-pl-2{padding-left:var(--space-2)}.lg\:rt-r-pl-3{padding-left:var(--space-3)}.lg\:rt-r-pl-4{padding-left:var(--space-4)}.lg\:rt-r-pl-5{padding-left:var(--space-5)}.lg\:rt-r-pl-6{padding-left:var(--space-6)}.lg\:rt-r-pl-7{padding-left:var(--space-7)}.lg\:rt-r-pl-8{padding-left:var(--space-8)}.lg\:rt-r-pl-9{padding-left:var(--space-9)}.lg\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 1640px){.xl\:rt-r-pl{padding-left:var(--pl-xl)}.xl\:rt-r-pl-0{padding-left:0}.xl\:rt-r-pl-1{padding-left:var(--space-1)}.xl\:rt-r-pl-2{padding-left:var(--space-2)}.xl\:rt-r-pl-3{padding-left:var(--space-3)}.xl\:rt-r-pl-4{padding-left:var(--space-4)}.xl\:rt-r-pl-5{padding-left:var(--space-5)}.xl\:rt-r-pl-6{padding-left:var(--space-6)}.xl\:rt-r-pl-7{padding-left:var(--space-7)}.xl\:rt-r-pl-8{padding-left:var(--space-8)}.xl\:rt-r-pl-9{padding-left:var(--space-9)}.xl\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}.rt-r-position-static{position:static}.rt-r-position-absolute{position:absolute}.rt-r-position-relative{position:relative}.rt-r-position-fixed{position:fixed}.rt-r-position-sticky{position:sticky}@media (min-width: 520px){.xs\:rt-r-position-static{position:static}.xs\:rt-r-position-absolute{position:absolute}.xs\:rt-r-position-relative{position:relative}.xs\:rt-r-position-fixed{position:fixed}.xs\:rt-r-position-sticky{position:sticky}}@media (min-width: 768px){.sm\:rt-r-position-static{position:static}.sm\:rt-r-position-absolute{position:absolute}.sm\:rt-r-position-relative{position:relative}.sm\:rt-r-position-fixed{position:fixed}.sm\:rt-r-position-sticky{position:sticky}}@media (min-width: 1024px){.md\:rt-r-position-static{position:static}.md\:rt-r-position-absolute{position:absolute}.md\:rt-r-position-relative{position:relative}.md\:rt-r-position-fixed{position:fixed}.md\:rt-r-position-sticky{position:sticky}}@media (min-width: 1280px){.lg\:rt-r-position-static{position:static}.lg\:rt-r-position-absolute{position:absolute}.lg\:rt-r-position-relative{position:relative}.lg\:rt-r-position-fixed{position:fixed}.lg\:rt-r-position-sticky{position:sticky}}@media (min-width: 1640px){.xl\:rt-r-position-static{position:static}.xl\:rt-r-position-absolute{position:absolute}.xl\:rt-r-position-relative{position:relative}.xl\:rt-r-position-fixed{position:fixed}.xl\:rt-r-position-sticky{position:sticky}}.rt-r-w{width:var(--width)}@media (min-width: 520px){.xs\:rt-r-w{width:var(--width-xs)}}@media (min-width: 768px){.sm\:rt-r-w{width:var(--width-sm)}}@media (min-width: 1024px){.md\:rt-r-w{width:var(--width-md)}}@media (min-width: 1280px){.lg\:rt-r-w{width:var(--width-lg)}}@media (min-width: 1640px){.xl\:rt-r-w{width:var(--width-xl)}}.rt-r-min-w{min-width:var(--min-width)}@media (min-width: 520px){.xs\:rt-r-min-w{min-width:var(--min-width-xs)}}@media (min-width: 768px){.sm\:rt-r-min-w{min-width:var(--min-width-sm)}}@media (min-width: 1024px){.md\:rt-r-min-w{min-width:var(--min-width-md)}}@media (min-width: 1280px){.lg\:rt-r-min-w{min-width:var(--min-width-lg)}}@media (min-width: 1640px){.xl\:rt-r-min-w{min-width:var(--min-width-xl)}}.rt-r-max-w{max-width:var(--max-width)}@media (min-width: 520px){.xs\:rt-r-max-w{max-width:var(--max-width-xs)}}@media (min-width: 768px){.sm\:rt-r-max-w{max-width:var(--max-width-sm)}}@media (min-width: 1024px){.md\:rt-r-max-w{max-width:var(--max-width-md)}}@media (min-width: 1280px){.lg\:rt-r-max-w{max-width:var(--max-width-lg)}}@media (min-width: 1640px){.xl\:rt-r-max-w{max-width:var(--max-width-xl)}}.rt-r-weight-light{font-weight:var(--font-weight-light)}.rt-r-weight-regular{font-weight:var(--font-weight-regular)}.rt-r-weight-medium{font-weight:var(--font-weight-medium)}.rt-r-weight-bold{font-weight:var(--font-weight-bold)}@media (min-width: 520px){.xs\:rt-r-weight-light{font-weight:var(--font-weight-light)}.xs\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.xs\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.xs\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 768px){.sm\:rt-r-weight-light{font-weight:var(--font-weight-light)}.sm\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.sm\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.sm\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 1024px){.md\:rt-r-weight-light{font-weight:var(--font-weight-light)}.md\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.md\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.md\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 1280px){.lg\:rt-r-weight-light{font-weight:var(--font-weight-light)}.lg\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.lg\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.lg\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 1640px){.xl\:rt-r-weight-light{font-weight:var(--font-weight-light)}.xl\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.xl\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.xl\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}.rt-r-lt-normal:before,.rt-r-lt-end:before,.rt-r-lt-normal:after,.rt-r-lt-start:after{content:none}.rt-r-lt-start:before,.rt-r-lt-both:before,.rt-r-lt-end:after,.rt-r-lt-both:after{content:"";display:table}.rt-r-lt-start:before,.rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.rt-r-lt-end:after,.rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}@media (min-width: 520px){.xs\:rt-r-lt-normal:before,.xs\:rt-r-lt-end:before,.xs\:rt-r-lt-normal:after,.xs\:rt-r-lt-start:after{content:none}.xs\:rt-r-lt-start:before,.xs\:rt-r-lt-both:before,.xs\:rt-r-lt-end:after,.xs\:rt-r-lt-both:after{content:"";display:table}.xs\:rt-r-lt-start:before,.xs\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.xs\:rt-r-lt-end:after,.xs\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 768px){.sm\:rt-r-lt-normal:before,.sm\:rt-r-lt-end:before,.sm\:rt-r-lt-normal:after,.sm\:rt-r-lt-start:after{content:none}.sm\:rt-r-lt-start:before,.sm\:rt-r-lt-both:before,.sm\:rt-r-lt-end:after,.sm\:rt-r-lt-both:after{content:"";display:table}.sm\:rt-r-lt-start:before,.sm\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.sm\:rt-r-lt-end:after,.sm\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 1024px){.md\:rt-r-lt-normal:before,.md\:rt-r-lt-end:before,.md\:rt-r-lt-normal:after,.md\:rt-r-lt-start:after{content:none}.md\:rt-r-lt-start:before,.md\:rt-r-lt-both:before,.md\:rt-r-lt-end:after,.md\:rt-r-lt-both:after{content:"";display:table}.md\:rt-r-lt-start:before,.md\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.md\:rt-r-lt-end:after,.md\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 1280px){.lg\:rt-r-lt-normal:before,.lg\:rt-r-lt-end:before,.lg\:rt-r-lt-normal:after,.lg\:rt-r-lt-start:after{content:none}.lg\:rt-r-lt-start:before,.lg\:rt-r-lt-both:before,.lg\:rt-r-lt-end:after,.lg\:rt-r-lt-both:after{content:"";display:table}.lg\:rt-r-lt-start:before,.lg\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.lg\:rt-r-lt-end:after,.lg\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 1640px){.xl\:rt-r-lt-normal:before,.xl\:rt-r-lt-end:before,.xl\:rt-r-lt-normal:after,.xl\:rt-r-lt-start:after{content:none}.xl\:rt-r-lt-start:before,.xl\:rt-r-lt-both:before,.xl\:rt-r-lt-end:after,.xl\:rt-r-lt-both:after{content:"";display:table}.xl\:rt-r-lt-start:before,.xl\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.xl\:rt-r-lt-end:after,.xl\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}.rt-r-resize-none{resize:none}.rt-r-resize-vertical{resize:vertical}.rt-r-resize-horizontal{resize:horizontal}.rt-r-resize-both{resize:both}@media (min-width: 520px){.xs\:rt-r-resize-none{resize:none}.xs\:rt-r-resize-vertical{resize:vertical}.xs\:rt-r-resize-horizontal{resize:horizontal}.xs\:rt-r-resize-both{resize:both}}@media (min-width: 768px){.sm\:rt-r-resize-none{resize:none}.sm\:rt-r-resize-vertical{resize:vertical}.sm\:rt-r-resize-horizontal{resize:horizontal}.sm\:rt-r-resize-both{resize:both}}@media (min-width: 1024px){.md\:rt-r-resize-none{resize:none}.md\:rt-r-resize-vertical{resize:vertical}.md\:rt-r-resize-horizontal{resize:horizontal}.md\:rt-r-resize-both{resize:both}}@media (min-width: 1280px){.lg\:rt-r-resize-none{resize:none}.lg\:rt-r-resize-vertical{resize:vertical}.lg\:rt-r-resize-horizontal{resize:horizontal}.lg\:rt-r-resize-both{resize:both}}@media (min-width: 1640px){.xl\:rt-r-resize-none{resize:none}.xl\:rt-r-resize-vertical{resize:vertical}.xl\:rt-r-resize-horizontal{resize:horizontal}.xl\:rt-r-resize-both{resize:both}}.rt-r-tl-auto{table-layout:auto}.rt-r-tl-fixed{table-layout:fixed}@media (min-width: 520px){.xs\:rt-r-tl-auto{table-layout:auto}.xs\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 768px){.sm\:rt-r-tl-auto{table-layout:auto}.sm\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 1024px){.md\:rt-r-tl-auto{table-layout:auto}.md\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 1280px){.lg\:rt-r-tl-auto{table-layout:auto}.lg\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 1640px){.xl\:rt-r-tl-auto{table-layout:auto}.xl\:rt-r-tl-fixed{table-layout:fixed}}.rt-r-ta-left{text-align:left}.rt-r-ta-center{text-align:center}.rt-r-ta-right{text-align:right}@media (min-width: 520px){.xs\:rt-r-ta-left{text-align:left}.xs\:rt-r-ta-center{text-align:center}.xs\:rt-r-ta-right{text-align:right}}@media (min-width: 768px){.sm\:rt-r-ta-left{text-align:left}.sm\:rt-r-ta-center{text-align:center}.sm\:rt-r-ta-right{text-align:right}}@media (min-width: 1024px){.md\:rt-r-ta-left{text-align:left}.md\:rt-r-ta-center{text-align:center}.md\:rt-r-ta-right{text-align:right}}@media (min-width: 1280px){.lg\:rt-r-ta-left{text-align:left}.lg\:rt-r-ta-center{text-align:center}.lg\:rt-r-ta-right{text-align:right}}@media (min-width: 1640px){.xl\:rt-r-ta-left{text-align:left}.xl\:rt-r-ta-center{text-align:center}.xl\:rt-r-ta-right{text-align:right}}.rt-r-tw-wrap{white-space:normal}.rt-r-tw-nowrap{white-space:nowrap}.rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.rt-r-tw-balance{white-space:normal;text-wrap:balance}@media (min-width: 520px){.xs\:rt-r-tw-wrap{white-space:normal}.xs\:rt-r-tw-nowrap{white-space:nowrap}.xs\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.xs\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 768px){.sm\:rt-r-tw-wrap{white-space:normal}.sm\:rt-r-tw-nowrap{white-space:nowrap}.sm\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.sm\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 1024px){.md\:rt-r-tw-wrap{white-space:normal}.md\:rt-r-tw-nowrap{white-space:nowrap}.md\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.md\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 1280px){.lg\:rt-r-tw-wrap{white-space:normal}.lg\:rt-r-tw-nowrap{white-space:nowrap}.lg\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.lg\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 1640px){.xl\:rt-r-tw-wrap{white-space:normal}.xl\:rt-r-tw-nowrap{white-space:nowrap}.xl\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.xl\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}.rt-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-r-va-baseline{vertical-align:baseline}.rt-r-va-top{vertical-align:top}.rt-r-va-middle{vertical-align:middle}.rt-r-va-bottom{vertical-align:bottom}@media (min-width: 520px){.xs\:rt-r-va-baseline{vertical-align:baseline}.xs\:rt-r-va-top{vertical-align:top}.xs\:rt-r-va-middle{vertical-align:middle}.xs\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 768px){.sm\:rt-r-va-baseline{vertical-align:baseline}.sm\:rt-r-va-top{vertical-align:top}.sm\:rt-r-va-middle{vertical-align:middle}.sm\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 1024px){.md\:rt-r-va-baseline{vertical-align:baseline}.md\:rt-r-va-top{vertical-align:top}.md\:rt-r-va-middle{vertical-align:middle}.md\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 1280px){.lg\:rt-r-va-baseline{vertical-align:baseline}.lg\:rt-r-va-top{vertical-align:top}.lg\:rt-r-va-middle{vertical-align:middle}.lg\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 1640px){.xl\:rt-r-va-baseline{vertical-align:baseline}.xl\:rt-r-va-top{vertical-align:top}.xl\:rt-r-va-middle{vertical-align:middle}.xl\:rt-r-va-bottom{vertical-align:bottom}}#app{--color-background: #070b14;--default-font-family: "Inter Tight", sans-serif;font-family:Inter Tight,NotoFlagsOnly,sans-serif;font-display:optional;--scaling: .875;--cursor-button: pointer;--line-height: 1.2;--white-heading: #f7f8f8;--green-live: #3cff73;font-variant-numeric:tabular-nums;overflow:hidden}.rt-TooltipContent{background:#131923;border:1px solid #2e343e;border-radius:8px}.rt-TooltipText{color:var(--regular-text-color);user-select:auto}.rt-TooltipArrow{fill:#131923}.rt-Separator{background:#65677a}.sticky{position:sticky;background:var(--color-background)}.app-width-container{max-width:1920px;margin:0 auto}.blur{position:absolute;inset:0;background:#0000008a;backdrop-filter:blur(2px)}.sankey-label{pointer-events:none;white-space:pre-line;font-size:14px;font-family:Inter Tight}.mono-text{font-family:Roboto Mono,monospace}._outer-container_13cf2_1{height:100vh;width:100%;position:absolute;z-index:100;display:flex;justify-content:center;align-items:center;container:outer-container / inline-size}._inner-container_13cf2_12{min-width:410px}@container outer-container (width < 430px){._inner-container_13cf2_12{min-width:310px}}._text_o41r7_1{color:var(--startup-text-color);line-height:normal}._container_o41r7_6{padding-left:40px}._container_1tszc_1{padding:8px 14px;border-radius:12px;border:1px solid var(--container-border-color);background:var(--container-background-color);display:grid;grid:auto-flow / auto 1fr;column-gap:10px;row-gap:6px;._text_1tszc_11{color:#dedede;font-weight:500;line-height:normal}}._text_1ont6_1{color:var(--startup-complete-step-color);font-weight:500;line-height:normal}._container_1ont6_7{padding:0 20px}._label_1ojid_1{color:#686868;font-size:12px}._value_1ojid_6{color:var(--startup-text-color);font-size:12px}._progress_gtr5g_1{height:9px;width:120px;background:var(--startup-progress-background-color);div{background:var(--startup-progress-teal-color)}}._text_gtr5g_11{color:var(--startup-text-color);font-size:8px;line-height:normal}._container_e8h4h_1{transition:filter .5s;&._blur_e8h4h_4{filter:blur(10px)}}._container_1z0wf_1{--collapse-duration: .3s;--collapse-location-time: .2s;--transform-origin: top right;position:fixed;inset:0;overscroll-behavior:none;z-index:20;background-color:var(--startup-background-color);--color-background: var(--startup-background-color);--slot-nav-background-color: var(--startup-background-color);transform-origin:var(--transform-origin);transition:opacity var(--collapse-duration) linear,transform var(--collapse-duration) linear,background-color .2s linear;&._collapsed_1z0wf_22{transform:scale(0);opacity:.5;overflow:hidden}&._gossip_1z0wf_28{--startup-background-color: var(--boot-progress-gossip-background-color)}&._full-snapshot_1z0wf_32{--startup-background-color: var( --boot-progress-full-snapshot-background-color )}&._incr-snapshot_1z0wf_38{--startup-background-color: var( --boot-progress-incr-snapshot-background-color )}&._catching-up_1z0wf_44{--startup-background-color: var(--boot-progress-catchup-background-color)}&._supermajority_1z0wf_48{background-color:var(--boot-progress-supermajority-background-color)}}@media (min-width: 800px){._startup-content-indentation_1z0wf_54{margin-left:67px;margin-right:67px}}._container_j432f_1{min-width:28px;&._pointer_j432f_4{cursor:pointer}._label_j432f_8{color:var(--header-label-text-color);font-size:10px}._value_j432f_13{color:var(--dropdown-button-text-color);font-size:12px;._value-suffix_j432f_17{color:var(--header-label-text-color)}}&._dropdown-menu_j432f_22{._label_j432f_8{color:var(--popover-secondary-color)}._value_j432f_13{color:var(--popover-primary-color);._value-suffix_j432f_17{color:var(--popover-secondary-color)}}}}._horizontal_j432f_37{display:flex;justify-content:space-between;align-items:center;gap:8px;background-color:var(--color-background);._value_j432f_13{font-weight:600}}._hide_1etvv_1{display:none}._popover-content_e49l0_1{box-sizing:border-box;max-width:var(--radix-popover-content-available-width);background:var(--popover-background-color);color:var(--popover-primary-color);padding:10px;border:1px solid var(--gray-4, #2a2a2a);border-radius:5px;box-shadow:0 4px 4px #00000040;animation-duration:.4s;animation-timing-function:cubic-bezier(.16,1,.3,1);will-change:transform,opacity;--popover-trigger-color: var(--popover-secondary-color);--popover-trigger-hover-color: var(--popover-primary-color)}._popover-content_e49l0_1:focus{box-shadow:0 0 0 2px var(--violet-7)}._popover-content_e49l0_1[data-state=open][data-side=top]{animation-name:_slideDownAndFade_e49l0_1}._popover-content_e49l0_1[data-state=open][data-side=right]{animation-name:_slideLeftAndFade_e49l0_1}._popover-content_e49l0_1[data-state=open][data-side=bottom]{animation-name:_slideUpAndFade_e49l0_1}._popover-content_e49l0_1[data-state=open][data-side=left]{animation-name:_slideRightAndFade_e49l0_1}._popover-arrow_e49l0_41{fill:var(--popover-background-color)}@keyframes _slideUpAndFade_e49l0_1{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes _slideRightAndFade_e49l0_1{0%{opacity:0;transform:translate(-2px)}to{opacity:1;transform:translate(0)}}@keyframes _slideDownAndFade_e49l0_1{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@keyframes _slideLeftAndFade_e49l0_1{0%{opacity:0;transform:translate(2px)}to{opacity:1;transform:translate(0)}}._copy-button_1km2g_1{position:relative;width:fit-content;max-width:100%;--button-ghost-padding-x: 2px;--button-ghost-padding-y: 2px;._icon_1km2g_8{flex-shrink:0}&._hide-icon-until-hover_1km2g_12{._icon_1km2g_8{display:none}&:hover ._icon_1km2g_8{display:inherit;position:absolute;right:0;background:#1b3150bf;padding:4px 2px;border-radius:2px;box-shadow:-4px 0 8px #1e3a5fcc,0 2px 8px #0000004d}}}._nav-link_tb1ax_1{font-size:14px;font-weight:400;color:var(--nav-button-inactive-text-color);border-radius:5px;background-color:transparent;gap:5px;padding:0 15px;flex-shrink:1;min-width:50px;._icon_tb1ax_14{height:14px;width:14px}._dropdown-icon_tb1ax_19{height:18px;width:18px}&:hover,&._focus_tb1ax_25{filter:brightness(1.2)}&._active_tb1ax_29{font-weight:600;background-color:#ffffff14}}@media (max-width: 416px){._nav-link_tb1ax_1{padding:0 4px}}._nav-dropdown-content_tb1ax_41{display:flex;flex-direction:column;background-color:#1c2129;border:1px solid rgba(250,250,250,.08);border-radius:5px;min-width:var(--radix-dropdown-menu-trigger-width)}._logo_1ml9x_1{height:27px}._cluster-container_7aa6c_1{height:28px;justify-content:space-between;align-items:center;flex-grow:1;border-radius:5px;background:#fafafa1a;._cluster_7aa6c_1{padding:0 3px;border-radius:3px;color:#000;font-size:10px;font-weight:500}._cluster-name_7aa6c_19{font-size:12px;font-weight:700;margin-bottom:-3px}}._nav-filter-toggle-group_148xa_1{display:flex;flex-wrap:nowrap;width:100%;button{cursor:pointer;flex-grow:1;height:21px;border:none;padding:3px 5px;color:var(--nav-button-inactive-text-color);background-color:#ffffff1a;&:first-child{border-top-left-radius:5px;border-bottom-left-radius:5px}&:last-child{border-top-right-radius:5px;border-bottom-right-radius:5px}&[data-state=on]{background-color:var(--slot-nav-filter-background-color);color:var(--nav-button-text-color)}&:hover{filter:brightness(1.2)}span{cursor:inherit;font-size:12px;font-style:normal;font-weight:400;line-height:normal}}}._toggle-button-size_148xa_43{height:15px;width:15px;&._lg_148xa_47{height:18px;width:18px}}._toggle-button_148xa_43{border-radius:5px;background-color:var(--epoch-slider-progress-color);&:hover{filter:brightness(1.2)}&._floating_148xa_61{box-shadow:0 4px 4px #000000bf}svg{fill:var(--nav-button-text-color);height:15px;width:15px;&._lg_148xa_47{height:18px;width:18px}&._mirror_148xa_75{transform:scaleX(-1)}}}._slot-nav-container_148xa_81{transition:width .3s;box-sizing:border-box;&._nav-background_148xa_85{background-color:var(--slot-nav-background-color)}}._nav-background_1sjct_1{background-color:var(--slot-nav-background-color)}._health-pane_hbx15_1{background:none;margin:0;padding:0;border:0;height:28px;display:flex;justify-content:space-between;align-items:center;row-gap:2px;column-gap:3px;&._vertical_hbx15_14{flex-direction:column;max-width:24px;min-width:24px;&._narrow_hbx15_18{min-width:14px}}._health-box_hbx15_22{height:100%;padding:0;margin:0;display:flex;justify-content:center;align-items:center;max-width:24px;min-width:14px;background:var(--green-5);border-radius:3px;border:1px solid transparent;cursor:pointer;&._stacked_hbx15_36{width:100%}svg{fill:var(--green-11)}&._alerting_hbx15_44{background:var(--red-8);border-color:var(--red-11);svg{fill:var(--red-12)}}&:hover{filter:brightness(1.2)}}}._popover_hbx15_58{max-width:160px;padding:6px;._title_hbx15_62{font-size:12px;color:var(--gray-12)}._status_hbx15_67{font-size:12px;font-weight:600;color:var(--green-10);&._alerting_hbx15_44{color:var(--red-10)}}._content_hbx15_77{font-size:10px;color:var(--gray-9)}}._logo-container_1po46_1{--logo-transition-time: 1.5s;z-index:20;position:fixed;inset:0;justify-content:center;align-items:center;background-color:var(--startup-background-color);background-image:url("data:image/svg+xml,%3csvg%20width='50'%20height='50'%20viewBox='0%200%2050%2050'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0%2024.9971C13.4992%2024.8907%2024.4505%2014.0877%2024.791%200.645508L24.7988%200C24.7988%2013.7398%2035.8824%2024.8887%2049.5967%2024.9971C36.0977%2025.1037%2025.1471%2035.9075%2024.8066%2049.3496L24.7988%2049.9951C24.7988%2036.2551%2013.7145%2025.1052%200%2024.9971Z'%20fill='%2303030C'/%3e%3c/svg%3e"),radial-gradient(160.38% 98.82% at 50% 50%,#1ce7c229,#1ce7c203 41.16%,#1ce7c200);background-position:center;background-repeat:repeat;transition:opacity var(--logo-transition-time) linear;img{height:76px}&._hidden_1po46_30{opacity:0;pointer-events:none;user-select:none}}._secondary-color_2x9jp_1{color:var(--boot-progress-snapshot-units-color)}._ellipsis_2x9jp_5{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._card_2x9jp_11{min-height:150px;padding:10px;border:1px solid rgba(255,255,255,.1);background:#ea67670d;color:var(--boot-progress-primary-text-color)}._sparkline-card_2x9jp_19{display:flex;flex-direction:column;justify-content:space-between;flex-shrink:0;._snapshot-tile-title_2x9jp_25{color:var(--boot-progress-primary-text-color);font-size:18px;font-weight:400}._snapshot-tile-busy_2x9jp_31{font-size:18px;font-weight:400}._sparkline-container_2x9jp_36{position:relative;flex-shrink:0;background-image:linear-gradient(to right,var(--snapshot-area-chart-grid-line-color) 1px,transparent 1px),linear-gradient(to bottom,var(--snapshot-area-chart-grid-line-color) 1px,transparent 1px)}}._bars-card_2x9jp_54{flex-grow:1;display:flex;min-width:250px;flex-direction:column;justify-content:space-between;gap:10px;._card-header_2x9jp_62{font-size:18px;line-height:normal;font-weight:400}._title_2x9jp_68{font-size:28px;font-weight:400;min-width:0}._accounts-rate_2x9jp_74{min-width:165px;text-align:center}._total_2x9jp_79{min-width:170px;text-align:center}._throughput_2x9jp_84{min-width:114px;text-align:right;&._with-prefix_2x9jp_87{min-width:140px;white-space:nowrap;flex-wrap:wrap}}}._reading-card_2x9jp_95{._read-path-container_2x9jp_96{color:var(--app-teal);font-size:16px;svg{flex-shrink:0;width:16px;height:16px;fill:var(--app-teal)}._read-path_2x9jp_96{min-width:0}}}@media (max-width: 876px){._reading-card_2x9jp_95{._total_2x9jp_79{text-align:right}._throughput_2x9jp_84{text-align:left}}}@media (max-width: 1190px){._decompressing-card_2x9jp_124{justify-content:space-between;._decompressing-card-left_2x9jp_127{flex-direction:column;flex-grow:0;align-items:flex-start;._title_2x9jp_68,._total_2x9jp_79{text-align:left}}._decompressing-card-right_2x9jp_137{flex-direction:column;flex-grow:0;text-align:right}}}@media (max-width: 1063px){._inserting-card_2x9jp_146{._throughput_2x9jp_84{text-align:left}}}@media (max-width: 936px){._inserting-card_2x9jp_146{._total_2x9jp_79{text-align:left}._throughput_2x9jp_84,._accounts-rate_2x9jp_74{text-align:right}}}@media (max-width: 846px){._reading-card_2x9jp_95,._decompressing-card_2x9jp_124,._inserting-card_2x9jp_146{._card-header_2x9jp_62,._decompressing-card-left_2x9jp_127,._decompressing-card-right_2x9jp_137{flex-direction:column;align-items:flex-start}._total_2x9jp_79,._throughput_2x9jp_84,._accounts-rate_2x9jp_74{text-align:left}}}@media (max-width: 560px){._sparkline-card_2x9jp_19{width:100%}}._busy_1fw9w_1{color:#c8cacd;font-size:10px;min-width:27px;text-align:end;line-height:10px}._range-label_14i5c_1{position:absolute;right:2px;font-size:10px;font-weight:400;color:var(--tile-sparkline-range-text-color)}._top_14i5c_9{top:0}._bottom_14i5c_13{bottom:0}._g-transform_14i5c_17{will-change:transform}._bars_1d34t_1{--container-width: 100%;position:relative;width:var(--container-width);height:var(--bar-height, 50px);--step: calc(var(--bar-width) + var(--bar-gap));--used-width: max( 0px, calc( round(down, var(--container-width) + var(--bar-gap), var(--step)) - var(--bar-gap) ) );--threshold-start: max( 0px, calc( round( nearest, var(--pct) * (var(--used-width) + var(--bar-gap)), var(--step) ) - var(--step) ) );--threshold-visible: sign(var(--pct));mask-image:repeating-linear-gradient(to right,black 0 var(--bar-width),transparent var(--bar-width) var(--step));mask-size:var(--used-width) 100%;mask-repeat:no-repeat;background:linear-gradient(to right,var(--boot-progress-gossip-bars-color) 85%,var(--boot-progress-gossip-mid-bar-color) 85% 95%,var(--boot-progress-gossip-high-bar-color) 95%);background-size:var(--used-width) 100%;background-repeat:no-repeat;&:before{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--used-width);clip-path:inset(0 calc(100% - var(--threshold-start) + var(--bar-width)) 0 0);background:linear-gradient(to right,var(--boot-progress-gossip-filled-bar-color) 85%,var(--boot-progress-gossip-mid-filled-bar-color) 85% 95%,var(--boot-progress-gossip-high-filled-bar-color) 95%);background-size:var(--used-width) 100%;background-repeat:no-repeat}&:after{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--used-width);clip-path:inset(0 calc(100% - var(--threshold-start) - var(--bar-width)) 0 var(--threshold-start));opacity:var(--threshold-visible, 0);background:linear-gradient(to right,var(--app-teal) 85%,var(--boot-progress-gossip-mid-threshold-bar-color) 85% 95%,var(--boot-progress-gossip-high-threshold-bar-color) 95%);background-size:var(--used-width) 100%;background-repeat:no-repeat}}._secondary-text_1iskf_1{color:var(--boot-progress-secondary-text-color)}._phase-header-container_1iskf_5{color:var(--boot-progress-primary-text-color);font-size:28px;font-weight:400;line-height:normal;._phase-name_1iskf_11{font-weight:600}._no-wrap_1iskf_15{white-space:nowrap}._complete-pct-container_1iskf_19{white-space:pre;display:inline-flex;align-items:center}}._progress-bar_drgbz_1{align-items:center;width:100%;>*:first-child{border-top-left-radius:10px;border-bottom-left-radius:10px}>*:last-child{border-top-right-radius:10px;border-bottom-right-radius:10px}._current_drgbz_14{height:40px;border-width:1px;border-style:solid;border-radius:5px;overflow:hidden;._progressing-bar_drgbz_21{width:100%;height:100%;transform-origin:left;transition:transform .2s linear}}div{height:25px}._gossip_drgbz_33{background:var(--progress-bar-incomplete-gossip-color);&._complete_drgbz_35{background:var(--progress-bar-complete-gossip-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-gossip-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-gossip-background)}}}._full-snapshot_drgbz_46{background:var(--progress-bar-incomplete-full-snapshot-color);&._complete_drgbz_35{background:var(--progress-bar-complete-full-snapshot-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-full-snapshot-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-full-snapshot-background)}}}._incr-snapshot_drgbz_59{background:var(--progress-bar-incomplete-inc-snapshot-color);&._complete_drgbz_35{background:var(--progress-bar-complete-inc-snapshot-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-inc-snapshot-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-inc-snapshot-background)}}}._catching-up_drgbz_72{background:var(--progress-bar-incomplete-catchup-color);&._complete_drgbz_35{background:var(--progress-bar-complete-catchup-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-catchup-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-catchup-background)}}}._supermajority_drgbz_85{background:var(--progress-bar-incomplete-supermajority-color);&._complete_drgbz_35{background:var(--progress-bar-complete-supermajority-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-supermajority-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-supermajority-background)}}}}._uplot_1swaw_1{.u-over{touch-action:pan-y}}._card_1yavk_1{flex-grow:1;display:flex;flex-direction:column;padding:14px;gap:14px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#fafafa0d;color:var(--boot-progress-primary-text-color)}._secondary-color_1yavk_13{color:#858585}._bold_1yavk_17{font-weight:700}._ellipsis_1yavk_21{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._labels-row_1yavk_27{flex-wrap:nowrap;font-size:14px;width:calc(var(--turbine-head-x, 0px) + var(--turbine-head-label-width, 0px) / 2);min-width:max(var(--turbine-start-label-width, 0px),var(--turbine-head-label-width, 0px));max-width:100%;._labels-left_1yavk_39{width:calc(var(--turbine-start-x, 0px) + var(--turbine-start-label-width, 0px) / 2);min-width:calc(var(--turbine-start-label-width, 0px) + 4px)}._turbine-label_1yavk_46{white-space:nowrap;flex-shrink:0;border-radius:3px;padding:2px;text-align:center;color:#000;&._start_1yavk_54{background-color:var(--first-turbine-slot-color)}&._head_1yavk_58{background-color:var(--latest-turbine-slot-color)}}}._footer-row_1yavk_64{gap:4px;font-size:14px;color:#ccc;>*{flex-wrap:nowrap;background-color:#2c2c2c;border-radius:3px;padding:4px;text-align:center;&._left-footer_1yavk_76{width:var(--turbine-start-x, 0px);gap:4px;flex-shrink:0}}._footer-title_1yavk_83{flex-grow:1;font-weight:700}._footer-value_1yavk_88{color:#bcbcbc;flex-shrink:10000;direction:rtl}}._bars-stats-container_1yavk_95{font-size:14px;line-height:normal;._bars-stats-row_1yavk_99{>*{min-width:0}._replayed_1yavk_104{color:var(--replayed-slots-text-color);._bold_1yavk_17{color:var(--replayed-slots-bold-text-color)}}._speed_1yavk_111{color:var(--gray-10);._bold_1yavk_17{color:var(--gray-8)}}._to-replay_1yavk_118{color:var(--turbine-slots-text-color);._bold_1yavk_17{color:var(--turbine-slots-bold-text-color)}}}}._slot-group-label_mfowj_1{--group-x: -100000px;--group-name-opacity: 0;opacity:.8;background-color:#080b13;border-radius:2px;border:1px solid #3c4652;border-top-width:0;will-change:transform;transform:translate(var(--group-x));&._you_mfowj_13{border:1px solid #2a7edf}._slot-group-top-container_mfowj_17{width:100%;background-color:#101318;&._skipped_mfowj_21{background-color:var(--red-2)}._slot-group-name-container_mfowj_25{opacity:var(--group-name-opacity);transition:opacity .6s;will-change:opacity;._name_mfowj_30{font-size:10px;line-height:normal;color:#949494;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}}._slot-bars-container_mfowj_41{flex-shrink:0;._slot-bar_mfowj_41{--slot-x: 0;position:absolute;will-change:transform;transform:translate(var(--slot-x));height:100%;border-radius:3px;&:nth-child(1){background-color:var(--blue-7)}&:nth-child(2){background-color:var(--blue-6)}&:nth-child(3){background-color:var(--blue-5)}&:nth-child(4){background-color:var(--blue-4)}&._skipped_mfowj_21{background-color:var(--red-7)}}}}._legend-color-box_mfowj_72{width:10px;height:10px;border-radius:1px}._legend-label_mfowj_78{font-size:10px;color:var(--header-label-text-color)}._card_1vnw5_1{padding:10px;border-radius:8px;border:1px solid var(--container-border-color);background:var(--container-background-color);&._narrow_1vnw5_7{padding:4px}}._header_10qjn_1{color:var(--dropdown-button-text-color)}._full-width_10qjn_5{width:100%}._dark_10qjn_9{background:#171b24;border-color:transparent}._subHeader_10qjn_14{color:var(--tile-sub-header-color);font-size:12px;line-height:12px}._tile-container_10qjn_20{display:flex;flex-wrap:wrap;flex-flow:wrap-reverse;gap:2px;flex-grow:1;._tile_10qjn_20{width:6px;height:6px;border-radius:1px;background:color-mix(in oklab,var(--tile-background-red-color) var(--busy),var(--tile-background-blue-color))}}._stat-container_1hzk8_1{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2px;border-radius:3px;background:#141528;._label_1hzk8_10{color:#dddee0;font-size:10px}._value-container_1hzk8_15{display:flex;align-items:baseline;justify-content:center;gap:1px;min-width:35px;._value_1hzk8_15{color:var(--tile-primary-stat-value-color);font-size:12px;text-align:center}._pct_1hzk8_29{color:var(--tile-primary-stat-value-color);font-size:8px}}}._btn_1lb0v_1{all:unset;cursor:var(--cursor-button);display:flex;gap:var(--space-1);&:hover{filter:brightness(1.4)}}._secondary-color_1cuvx_1{color:var(--gray-11)}._card_1cuvx_5{padding:20px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d}@property --progress-pct{syntax: ""; initial-value: 0%; inherits: false;}._pie-chart-title_1cuvx_18{white-space:nowrap;font-size:28px;color:var(--gray-8)}._pie-chart-container_1cuvx_24{width:100%;min-height:0;aspect-ratio:1/1}@keyframes _shimmer_1cuvx_58{to{transform:rotate(360deg)}}._pie-chart_1cuvx_18{aspect-ratio:1/1;container-type:size;background:conic-gradient(#4d4d4d 0,#8b2e11 80%);border-radius:50%;._threshold-marker_1cuvx_43{transform:rotate(108deg);transform-origin:center top;._marker-line_1cuvx_47{border-left:3px solid #4c4c4c}._marker-icon_1cuvx_51{height:5%;aspect-ratio:1/1}}._shimmer_1cuvx_58{position:absolute;inset:0;border-radius:50%;background:conic-gradient(transparent 145deg,rgba(255,255,255,.05) 158deg,rgba(255,255,255,.18) 180deg,rgba(255,255,255,.05) 202deg,transparent 215deg);will-change:transform;animation:_shimmer_1cuvx_58 2s linear infinite}._overlay_1cuvx_74{--progress-pct: 0%;transition:--progress-pct .2s linear;position:absolute;inset:0;border-radius:50%;background:conic-gradient(transparent 0 var(--progress-pct),var(--supermajority-pie-chart-unfilled-color) var(--progress-pct) 100%)}._pie-chart-content_1cuvx_86{background:var(--boot-progress-supermajority-background-color);border-radius:50%;font-size:4.5cqi;color:var(--supermajority-pie-chart-text-color);._lg_1cuvx_93{font-size:9cqi}._eighty_1cuvx_97{color:var(--progress-bar-in-progress-supermajority-border)}}}._details-box_1cuvx_103{&,._copyButton_1cuvx_105{text-align:start;font-size:12px;color:var(--gray-9)}._label_1cuvx_111{font-size:10px;color:var(--gray-7)}._snapshot-source_1cuvx_116{color:var(--blue-7);font-size:12px;word-break:break-all}}._container_1vhtf_1{max-width:100%;flex-grow:1;&._horizontal_1vhtf_4{flex-basis:70%;min-height:188px;min-width:475px}&._vertical_1vhtf_9{flex-shrink:0;height:516px}}._table-card_1vhtf_15{width:100%;display:flex;flex-direction:column;overflow:hidden;&._narrow_1vhtf_21{padding:10px}}._rows-container_1vhtf_26{overflow-x:hidden;overflow-y:auto;flex-basis:50%;flex-grow:1}._row_1vhtf_26{box-sizing:border-box;height:var(--row-height);border:0px solid var(--supermajority-table-border-color);border-bottom-width:1px;column-gap:20px;padding:0 20px 0 5px;&._narrow_1vhtf_21{column-gap:15px}&._xnarrow_1vhtf_44{column-gap:5px}&._online_1vhtf_48{&,._pubkey-text_1vhtf_51{color:var(--supermajority-table-online-primary-color);font-size:14px}._peer_1vhtf_56{img{opacity:.5}}._status_1vhtf_62{color:var(--green-8)}._version_1vhtf_66 ._client-icon_1vhtf_66:not(._client-icon-placeholder_1vhtf_66){opacity:.5}._suffix_1vhtf_70{color:var(--supermajority-table-online-secondary-color)}}&._offline_1vhtf_75{&,._pubkey-text_1vhtf_51{color:var(--supermajority-table-offline-primary-color);font-size:14px}._status_1vhtf_62{color:var(--red-9)}._suffix_1vhtf_70{color:var(--supermajority-table-offline-secondary-color)}}&._header-row_1vhtf_92{height:auto;border:0}&._toggle-row_1vhtf_97{border-width:1px 0;display:flex;column-gap:8px;cursor:pointer;&:hover{filter:brightness(1.1)}&._offline_1vhtf_75{color:var(--red-9);background:#e5484d0d}&._online_1vhtf_48{color:var(--green-9);background:#30a46c0d}}}._cell_1vhtf_116{height:100%;&._header_1vhtf_92{height:22px;color:var(--table-header-color)}}._peer_1vhtf_56{column-gap:4px;min-width:108px;flex:10 1 170px;&._narrow_1vhtf_21{min-width:80px;flex:10 1 80px}&._xnarrow_1vhtf_44{min-width:70px;flex:10 1 70px}}._status_1vhtf_62{column-gap:8px;min-width:62px;flex:1 1 62px;&._narrow_1vhtf_21,&._xnarrow_1vhtf_44{min-width:12px;flex:0 1 12px}}._pubkey_1vhtf_51{min-width:50px;flex:1 20 370px;&._narrow_1vhtf_21,&._xnarrow_1vhtf_44{flex:10 1 50px}}._version_1vhtf_66{column-gap:8px;min-width:100px;flex:1 1 134px;&._narrow_1vhtf_21{min-width:80px;flex:1 10 80px}&._xnarrow_1vhtf_44{min-width:35px;flex:0 10 35px}}._stake_1vhtf_174{justify-content:flex-end;min-width:72px;flex:1 1 72px;&._narrow_1vhtf_21{min-width:52px;flex:0 1 52px}&._xnarrow_1vhtf_44{display:none}}._stake-pct_1vhtf_187{min-width:62px;flex:1 1 62px;justify-content:flex-end;&._narrow_1vhtf_21,&._xnarrow_1vhtf_44{flex:0 1 52px}}._small-icon_imn4j_1{height:12px}._medium-icon_imn4j_5{height:14px}._large-icon_imn4j_9{height:16px}._xlarge-icon_imn4j_13{height:20px}._digit_1rfzd_1{height:50%;display:flex;align-items:center;&._hidden_1rfzd_5{visibility:hidden}}._selection-text_1rfzd_10{color:transparent!important;background:transparent!important}._container_zkl3s_1{font-size:10px;color:var(--gray-8)}._added_zkl3s_6{color:#436c48}._removed_zkl3s_10{color:#925959}._container_1i8oq_1{position:absolute;top:14px;transform:translate(round(down,-50%,1px));left:50%;display:flex;justify-content:center;z-index:100;._toast_1i8oq_10{border-radius:10px;padding:8px;min-width:180px;display:flex;justify-content:center;align-items:center;z-index:100;&._disconnected_1i8oq_19{background:repeating-linear-gradient(115deg,var(--failure-color),var(--failure-color) 7px,var(--toast-disconnected-color) 7px,var(--toast-disconnected-color) 8px)}&._connecting_1i8oq_29{background:repeating-linear-gradient(115deg,var(--toast-connecting-start-color),var(--toast-connecting-start-color) 7px,var(--toast-connecting-end-color) 7px,var(--toast-connecting-end-color) 8px)}._text_1i8oq_39{color:#000;font-size:18px;font-style:normal;font-weight:600;text-align:center}}}._slots-list_1sk8v_1{scrollbar-width:none;&._hidden_1sk8v_3{visibility:hidden}}._no-slots-text_1sk8v_8{font-size:12px;color:var(--regular-text-color);text-align:center}._slot-group-container_1sejw_1{padding-bottom:5px;background:var(--slot-nav-background-color)}._slot-group_1sejw_1{column-gap:4px;row-gap:3px;border-radius:5px;background:var(--slots-list-slot-background-color);font-size:10px}._left-column_1sejw_14{flex-grow:1;min-width:0;gap:4px}._future_1sejw_20{padding:3px;background:var(--slots-list-future-slot-background-color);color:var(--slots-list-future-slot-color);img{filter:grayscale(100%)}&._you_1sejw_28{border:solid var(--slots-list-not-processed-my-slots-border-color);border-width:2px 1px 1px 1px;padding:2px 3px 3px;background:var(--slots-list-my-slot-background-color)}}._current_1sejw_36{padding:2px;border:1px solid var(--container-border-color);background-color:var(--container-background-color);color:var(--slots-list-slot-color);box-shadow:0 0 16px 0 var(--slots-list-current-slot-box-shadow-color) inset;._slot-name_1sejw_43{font-size:18px}&._skipped_1sejw_47{background:var(--slots-list-skipped-background-color)}&._you_1sejw_28{border-width:3px 1px 1px 1px;border-color:var(--slots-list-my-slots-selected-border-color)}}._current-slot-row_1sejw_57{background-color:var(--slots-list-current-slot-number-background-color);border-radius:5px;padding:3px}._past_1sejw_63{padding:3px;color:var(--slots-list-past-slot-color);&._skipped_1sejw_47{background:var(--slots-list-skipped-background-color)}&._you_1sejw_28{background:var(--slots-list-my-slot-background-color);&._processed_1sejw_74{text-decoration:none;padding:2px;border:solid var(--slots-list-my-slots-border-color);border-width:3px 1px 1px 1px;background:var(--slots-list-my-slot-background-color);color:var(--slots-list-past-slot-color);&:hover,&:active{border-color:var(--slots-list-my-slots-selected-border-color)}&._selected_1sejw_87{background:var(--slots-list-selected-background-color);border-color:var(--slots-list-my-slots-selected-border-color)}&._skipped_1sejw_47,&._selected_1sejw_87._skipped_1sejw_47{background:var(--slots-list-skipped-selected-background-color)}}}}._slot-name_1sejw_43{font-size:12px;font-weight:400}._ellipsis_1sejw_105{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._slot-item-content_1sejw_111{align-items:center;gap:4px;font-size:10px;font-weight:400;color:var(--slots-list-past-slot-number-color)}._placeholder_1sejw_119{height:42px}._slot-statuses_1sejw_123{._slot-status_1sejw_123{width:4px;height:6px;background:var(--slot-status-gray);border:1px solid transparent;border-radius:2px;align-items:flex-end;._slot-status-progress_1sejw_132{width:100%;height:100%;transform-origin:bottom;will-change:transform;animation:_fillProgress_1sejw_1 var(--slot-duration) ease-in-out forwards;background-color:var(--slot-status-blue)}}&._tall_1sejw_142{gap:3px;._slot-status_1sejw_123{flex-grow:1}}&._short_1sejw_149 ._slot-status_1sejw_123{height:3px;border-radius:1px}}@keyframes _fillProgress_1sejw_1{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes _shimmer_1sejw_184{0%{transform:translate(0)}to{transform:translate(200%)}}._scroll-slots-placeholder_1sejw_173{background:var(--slots-list-slot-background-color);._absolute-full-size_1sejw_176{position:absolute;top:0;left:0;width:100%;height:100%}._shimmer_1sejw_184{margin-left:-100%;will-change:transform;background:linear-gradient(to right,#fff0,#fff6f60d,#fff0);animation:_shimmer_1sejw_184 1.5s infinite}}._scroll-placeholder-item_1sejw_197{height:46px;margin-bottom:5px;border-radius:5px;box-shadow:0 0 0 4px var(--slot-nav-background-color)}._progress_51hag_1{background:var(--progress-gutter-background-color);flex-grow:0;div{background:var(--progress-background-color)}}._container_1l1zm_1{display:flex;justify-content:center;._button_1l1zm_5{position:absolute;width:100px;height:18px;padding:2px 4px 2px 6px;align-items:center;border-radius:40px;background:#174e45;box-shadow:0 4px 4px #1c524966;font-size:12px;font-weight:600}}._epoch-progress_niwu5_1{width:100%;background:var(--epoch-slider-progress-color);position:absolute;bottom:0}._clickable_niwu5_8{cursor:pointer}._leader-slot_niwu5_12{width:100%;background:#2a7edf;height:5px;position:absolute;opacity:.5;&:hover{filter:brightness(1.5)}&._before-start_niwu5_21{filter:brightness(.5)}}._skipped-slot_niwu5_26{width:100%;background:#ff5353;height:3px;position:absolute;&:hover{filter:brightness(1.5)}}._skipped-slot-icon_niwu5_36{height:10px;position:absolute;left:11px;&:hover{filter:brightness(1.5)}}._first-processed-slot_niwu5_45{width:100%;background:#bdf3ff;height:3px;position:absolute;right:0;&:hover{filter:brightness(1.5)}}._first-processed-slot-icon_niwu5_56{height:10px;position:absolute;left:11px;&:hover{filter:brightness(1.5)}}._slider-root_niwu5_65{position:relative;flex-grow:1;width:10px;display:flex;flex-direction:column;align-items:center;user-select:none;touch-action:none}._slider-track_niwu5_76{background:#24262b;flex-grow:1;width:100%}._slider-thumb_niwu5_82{display:block;position:relative;height:10px;width:20px;background:#64656580;border:1px solid #a4a4a4;border-radius:2px;cursor:grab;&._collapsed_niwu5_92{border-left-width:0;transition:border-width 0s linear .2s}}._slider-thumb_niwu5_82:hover{background:#6465654d}._slider-thumb_niwu5_82:focus{outline:none;box-shadow:0 0 0 2px var(--gray-a8)}._tooltip_niwu5_106{position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);white-space:nowrap}._hide_niwu5_114{opacity:0;display:none;transition:opacity .5s ease-out 1s,display 0s 1.5s;transition-behavior:allow-discrete}._show_niwu5_123{opacity:1;display:block}._text_nk1yn_1{color:var(--primary-text-color);font-size:18px;font-weight:500}._container_k3j09_1{gap:var(--space-2);display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}._container_k6h1w_1{position:absolute;right:0;top:8px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;z-index:1;._stats-container_k6h1w_12{padding:5px 5px 5px 7px;border-radius:8px;background:#111111e6;._slot-stats-toggle-button_k6h1w_17{margin:-2px -4px;align-self:flex-end;display:flex;padding:0 4px;box-shadow:unset;color:var(--icon-button-color);gap:4px;height:16px}._stats_k6h1w_12{display:grid;grid:auto auto / auto auto;column-gap:10px;row-gap:4px;min-width:203px;font-variant-numeric:tabular-nums;color:var(--sankey-base-label-color);font-size:12px;line-height:normal;._success-rate_k6h1w_40{color:var(--sankey-success-rate-color)}}}._toggle-group_k6h1w_46{display:inline-flex;button{all:unset}._toggle-group-item_k6h1w_53{background:var(--toggle-item-background-color);color:#747575;padding:2px 4px;align-items:center;justify-content:center;margin-left:1px;cursor:pointer}._toggle-group-item_k6h1w_53:first-child{border-top-left-radius:8px;border-bottom-left-radius:8px}._toggle-group-item_k6h1w_53:last-child{border-top-right-radius:8px;border-bottom-right-radius:8px}._toggle-group-item_k6h1w_53:hover{filter:brightness(1.2)}._toggle-group-item_k6h1w_53[data-state=on]{background-color:#6184a4;color:#1f1f1f}}}._slot-performance-container_6u4bp_1{container:slot-performance / inline-size}._sankey-container_6u4bp_5{position:relative;aspect-ratio:4;min-height:450px;overflow:hidden;._slot-sankey-container_6u4bp_11{height:100%}}@container slot-performance (width < 600px){._sankey-container_6u4bp_5{aspect-ratio:1 / 3;overflow-x:clip;._slot-sankey-container_6u4bp_11 svg{transform:rotate(90deg) translateY(-100%) translate(15px);transform-origin:top left}}}._tooltip_102uq_1{padding:4px;border-radius:5px;background:#121212;display:grid;grid:auto-flow / auto auto;column-gap:8px;span{font-size:12px;font-style:normal;font-weight:400;line-height:normal;text-align:right}._active-banks_102uq_17{color:#754d12}._compute-units_102uq_21{color:var(--compute-units-color)}._elapsed-time_102uq_25{color:var(--elapsed-time-color)}._prio-fee_102uq_29{color:var(--fees-color)}._tips_102uq_33{color:var(--tips-color)}._label_102uq_37{font-weight:600;text-align:left}}._chart_102uq_43{flex-grow:1;height:25vw;min-height:250px;max-height:600px;position:relative;margin-left:-8px;margin-right:-8px}._chart_1hpd4_1{.uplot .legend .series:first-child,.uplot .legend .series th:after,.uplot .legend .series td{display:none}.lib-toggles{margin-top:20px;text-align:center}.u-select{background:#ffffff1a}.hidden{color:silver}.u-cursor-pt{border-radius:0}.uplot{margin-bottom:20px;padding:10px;box-shadow:0 0 10px #0000004d}}._focused_1hpd4_32{.u-over{border:1px solid var(--focused-border-color)}}._icon-container_1i4gu_1{display:none}._tooltip_h8khk_1{z-index:1;position:absolute;background:var(--Colors-Gray-1, #111);padding:6px 8px;border-radius:8px;max-height:none!important;max-width:none!important}._tooltip_11ays_1{display:grid;grid:auto-flow / auto auto;column-gap:8px;span{font-size:12px;font-style:normal;font-weight:400;line-height:normal;text-align:right}._active-banks_11ays_14{color:#754d12}._compute-units_11ays_18{color:var(--compute-units-color)}._elapsed-time_11ays_22{color:var(--elapsed-time-color)}._fees_11ays_26{color:var(--fees-color)}._tips_11ays_30{color:var(--tips-color)}._label_11ays_34{font-weight:600;text-align:left}}._button_1b3a4_1{all:unset;background:var(--toggle-item-background-color);color:var(--toggle-item-text-color);font-weight:510;height:23px;padding:0 8px;display:flex;font-size:12px;line-height:16px;align-items:center;justify-content:center;user-select:none;cursor:pointer;&:first-child{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}&:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}&:not([data-disabled]):hover{background:#3e62bd52}&[data-disabled]{cursor:not-allowed;font-weight:400;filter:brightness(.7)}}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}._group-label_1cg9k_1{margin-right:8px;&._min-text-width_1cg9k_4{min-width:50px}}._group_1cg9k_1{display:inline-flex;background-color:var(--mauve-6);border-radius:4px;box-shadow:0 2px 10px var(--black-a7);&._tooltip-open_1cg9k_15{box-shadow:0 0 0 2px var(--slot-details-chart-controls-triggered);._item_1cg9k_18:focus-visible{box-shadow:unset}}}._item_1cg9k_18{all:unset;background-color:var(--toggle-item-background-color);color:var(--toggle-item-text-color);height:22px;padding:0 8px;display:flex;font-size:12px;align-items:center;justify-content:center;margin-left:1px;user-select:none;font-weight:400;cursor:pointer;&:first-child{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}&:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}&:hover{background:#3e62bd52}&[data-state=on]{background-color:#4a4a4a;color:#f0f0f0;font-weight:510}&:focus-visible{position:relative;box-shadow:0 0 0 2px var(--focus-8)}._item-color_1cg9k_65{width:4px;height:16px;margin-right:4px}}._slider_zs58s_1{width:190px;flex-grow:1;position:relative;.rt-SliderRoot{&:before{position:absolute;content:"";height:calc(100% + 4px);top:-2px;left:calc(var(--slot-start-pct) - .5px);width:1px;background:var(--toggle-item-text-color);z-index:1}&:after{position:absolute;content:"0ms";font-size:10px;height:12px;bottom:-16px;left:calc(var(--slot-start-pct) - .5px);transform:translate(-50%);color:#fff;z-index:1}span:has(>.rt-SliderThumb){z-index:2}span:has(>[aria-label=Minimum]):after{content:var(--min-value-label, "");position:absolute;left:50%;transform:translate(-50%,4px);font-size:10px;white-space:nowrap;color:#baa7ff;background:var(--toggle-item-background-color);padding:0 2px;border-radius:4px}span:has(>[aria-label=Maximum]):after{content:var(--max-value-label, "");position:absolute;left:50%;transform:translate(-50%,4px);font-size:10px;white-space:nowrap;color:#baa7ff;background:var(--toggle-item-background-color);padding:0 2px;border-radius:4px}}}._arrival-label_zs58s_68{color:#fff}._slider-label_zs58s_72{color:#fff;font-size:12px}._minimize-button_zs58s_77{position:absolute;top:4px;right:4px}._chart-control-tooltip_zs58s_83{background:var(--blue-11);color:#111113;.rt-TooltipText{font-size:12px;overflow-wrap:break-word}.rt-TooltipArrow{fill:var(--blue-11)}}._label_1q3ew_1{font-size:14px;color:#fff}._dropdownButton_1yasw_1{border-top-right-radius:0;border-bottom-right-radius:0}._input-container_1yasw_6{box-sizing:border-box;--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);height:var(--text-field-height);padding:var(--text-field-border-width);border-radius:0 var(--text-field-border-radius) var(--text-field-border-radius) 0;font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);width:240px;&._sm_1yasw_20{width:180px}button{box-sizing:content-box;--margin-left-override: 0px;--margin-right-override: 0px}@supports selector(:has(*)){&:has(input:focus){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}@supports not selector(:has(*)){&:where(:focus-within){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}[cmdk-input]{flex:1;border-radius:calc(var(--text-field-border-radius) - var(--text-field-border-width));border:none;outline:none;width:100%;padding:0 var(--space-2);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);background:#0000;border-radius:0;caret-color:#6e5ed2;margin:0;&::placeholder{color:var(--gray-a10)}}}._content_1yasw_68{background:var(--gray-4);width:var(--radix-popover-trigger-width);max-height:400px;&:has(>[cmdk-list]>[cmdk-list-sizer]:not(:empty)){padding-bottom:var(--space-1)}[cmdk-list]{height:min(300px,var(--cmdk-list-height));max-height:400px;overflow:auto;overscroll-behavior:contain}[cmdk-group-heading]{user-select:none;font-size:14px;color:var(--slate-11);padding:0 8px;display:flex;align-items:center;padding:var(--space-1) var(--space-3)}[cmdk-empty],[cmdk-loading]{color:#f1f7feb5;padding-bottom:0!important}[cmdk-item],[cmdk-empty],[cmdk-loading]{content-visibility:auto;cursor:pointer;font-size:var(--font-size-2);text-wrap:nowrap;display:flex;align-items:center;gap:12px;padding:var(--space-1) var(--space-3);border-radius:4px;user-select:none;position:relative;&[data-selected=true]{background:var(--teal-5)}&[data-disabled=true]{color:var(--gray-8);cursor:not-allowed}&:active{background:var(--gray-4)}+[cmdk-item]{margin-top:4px}}}._tooltip-open_1yasw_135{outline-offset:-1px;outline:2px solid var(--slot-details-chart-controls-triggered)!important}._text_1k6sv_1{span{color:var(--gray-12);font-size:var(--font-size-2);text-wrap:nowrap;&._faded_1k6sv_7{color:var(--faded-text)}&._ellipsis_1k6sv_11{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}}._container_14qh6_1{position:absolute;z-index:3;right:5px;top:5px;display:flex;align-items:center;gap:8px;._label_14qh6_10{user-select:none;color:#60646c;font-size:12px}}#txn-bars-tooltip{z-index:3;position:absolute;background:var(--Colors-Gray-1, #111);border-radius:8px;max-height:none!important;max-width:none!important;margin:6px 8px;._state_1bdpv_11{font-weight:700;color:var(--Colors-Neutral-Neutral-10, #777b84)}span{font-size:12px;font-style:normal;font-weight:400;line-height:normal;color:var(--color-override, #777b84)}._cu-bars_1bdpv_24{flex:1;width:0;padding:4px 0}._duration-container_1bdpv_30{flex:1;background:#363a3f80;padding:4px 0;margin:4px 0;width:0}._value-text_1bdpv_38{overflow-wrap:anywhere}._unit_1bdpv_42{font-family:Roboto Mono,monospace;margin-left:2px;flex-shrink:0;white-space:nowrap}}._separator_1pgc5_1{background:var(--row-separator-background-color)}._search-grid_gudx6_1{align-content:center}._search-label_gudx6_5{font-size:16px;font-weight:500;color:var(--slot-details-search-label-color)}._search-field_gudx6_11{width:100%}._error-text_gudx6_15{color:var(--failure-color)}._quick-search-card_gudx6_19{border-radius:8px;border:1px solid var(--container-border-color);background:var(--container-background-color);color:var(--slot-details-quick-search-text-color)}._quick-search-header_gudx6_26{color:var(--quick-search-color);font-size:18px;svg{width:32px;height:32px;fill:var(--quick-search-color)}}._quick-search-slot_gudx6_37{font-size:12px;&._clickable_gudx6_40{cursor:pointer;color:var(--slot-details-clickable-slot-color)}&:not(._clickable_gudx6_40){cursor:not-allowed;pointer-events:none}}._quick-search-metric_gudx6_51{font-size:12px}._slot-item-group_p1cnp_1{gap:4px;padding:2px;border-radius:5px;border:1px solid var(--slot-details-my-slots-not-selected-color);border-top-width:3px;&._disabled_p1cnp_8{border:1px solid var(--slot-details-disabled-slot-border-color);border-top-width:3px}&._is-selected_p1cnp_13{border:1px solid var(--slots-list-my-slots-selected-border-color);border-top-width:3px}}._slot-item_p1cnp_1{text-decoration:none;display:flex;justify-content:center;align-items:center;padding:3px 10px;gap:10px;font-size:12px;font-weight:400;border-radius:3px;box-sizing:border-box;width:var(--item-width);background:var(--slot-details-background-color);color:var(--slot-details-color);&._selected-slot_p1cnp_35{font-weight:600;background:var(--slot-details-selected-background-color);color:var(--slot-details-selected-color)}&._skipped-slot_p1cnp_41{background:var(--slot-details-skipped-background-color)}&._skipped-slot_p1cnp_41._selected-slot_p1cnp_35{background:var(--slot-details-skipped-selected-background-color)}}._fade_p1cnp_50{position:absolute;top:0;bottom:0;width:clamp(32px,8vw,96px);pointer-events:none;&._fade-left_p1cnp_57{left:0;background:linear-gradient(to left,transparent 0%,black 100%)}&._fade-right_p1cnp_62{right:0;background:linear-gradient(to right,transparent 0%,black 100%)}}._small-icon_1vpxu_1{width:14px;height:14px}._large-icon_1vpxu_6{width:15px;height:15px}._header_1s5d9_1{font-size:14px;font-weight:600;color:var(--slot-details-stats-tertiary)}._subheader_1s5d9_7{font-size:12px;color:var(--slot-details-stats-tertiary)}._label_1s5d9_12{font-size:10px;color:var(--slot-details-stats-secondary);text-wrap:nowrap}._value_1s5d9_18{font-size:10px;color:var(--slot-details-stats-primary);text-wrap:nowrap;--popover-trigger-color: var(--slot-details-stats-secondary);--popover-trigger-hover-color: var(--slot-details-stats-primary)}._table-header_1s5d9_26{font-size:10px;color:var(--slot-details-stats-primary);text-wrap:nowrap}._table-row-label_1s5d9_32{font-size:10px;color:var(--slot-details-stats-primary);text-wrap:nowrap;&._total_1s5d9_37{color:var(--slot-details-stats-tertiary)}}._table-cell-value_1s5d9_42{font-size:10px;color:var(--slot-details-stats-secondary);text-wrap:nowrap;&._total_1s5d9_37{color:var(--slot-details-stats-primary)}}._grid_1s5d9_52{padding:5px 10px;border-radius:8px;border-bottom:1px solid rgba(250,250,250,.12);background:linear-gradient(0deg,#fafafa0d,#fafafa00);._label_1s5d9_12,._value_1s5d9_18{font-size:14px}._name_1s5d9_67{font-weight:600;color:#ccc;&._lg_1s5d9_70{font-size:18px;contain:inline-size;width:100%}}}._copy-button_1s5d9_79{flex-shrink:1;min-width:0;color:var(--slot-details-stats-primary)}._time-popover_1s5d9_85{flex-shrink:1;min-width:0;max-width:fit-content}._container_1w2fb_1{height:13px;border-radius:4px;._label_1w2fb_5{font-size:10px;color:var(--slot-details-stats-primary);pointer-events:none}}._clickable_1w2fb_12{appearance:none;border:none;padding:0;cursor:pointer;transition:all .3s ease;&:hover{height:15px;transform:translateY(-2px);filter:brightness(1.2);box-shadow:0 4px 8px #0006;outline:.5px solid #e5e7eb;z-index:1}}._container_id19r_1{font-size:12px;padding:0 5px}._label_id19r_6{color:var(--popover-secondary-color)}._value_id19r_10{color:var(--popover-primary-color);text-align:end}._popover-trigger_id19r_15{--button-ghost-padding-x: 2px;--button-ghost-padding-y: 2px;font:inherit;color:inherit}._popover-underline-overlay_id19r_23{position:absolute;inset:0;&:hover ._popover-text-underline_id19r_27{text-decoration-color:var( --popover-trigger-hover-color, var(--primary-text-color) )}}._popover-text-underline_id19r_27{color:transparent!important;text-overflow:clip;transition:text-decoration-color .2s ease;text-decoration:underline dotted var(--popover-trigger-color, var(--secondary-text-color))}._card_ybszl_1{padding:10px;border-radius:8px;border:1px solid #1c1e2b;background:#101123;color:var(--primary-text-color);._name-text_ybszl_8{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}._pubkey-text_ybszl_14{flex-grow:1;min-width:390px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;&._narrow-screen_ybszl_21{flex-grow:0;min-width:inherit}}&._two-away_ybszl_27{border:1px solid #2a2c38;background:#131524;opacity:1.6}&._one-away_ybszl_33{border:1px solid #295060;background:#142432}._time-till_ybszl_38{min-width:250px;&._narrow-screen_ybszl_21{min-width:inherit}}}._my-slots_kxi8u_1{border-color:#2a7edfa6!important;box-shadow:inset 0 4px #2a7edfa6;background:#2a7edf33}._scroll_kxi8u_7{touch-action:none;& *{touch-action:none}span{user-select:text}}._card_zlaiw_1{border-radius:8px;border:1px solid #30323a;background:#151b25;padding:9px 10px 5px;&._late-vote_zlaiw_7{border:1px solid #2f1e7c;background:#120f2e}&._skipped_zlaiw_12{border:1px solid rgba(255,71,71,.38);background:#bd3e3e26}}._grid_1feao_1{display:grid;grid:auto-flow / minMax(70px,auto) minMax(80px,auto) minMax(70px,auto) minMax(70px,auto) minMax(80px,auto) minMax(149px,auto);overflow-x:auto;min-width:80px;touch-action:pan-x;& *{touch-action:pan-x}scrollbar-width:thin;scrollbar-color:#cbcbcb20 #cbcbcb01;width:100%;&._firedancer-grid_1feao_16{grid:auto-flow / minMax(80px,auto) minMax(70px,auto) minMax(80px,auto) minMax(70px,auto) minMax(70px,auto) minMax(80px,auto) minMax(149px,auto)}}._header-text_1feao_24{font-size:12px;color:var(--slot-card-header-text-color);padding:3px 0}._vote-latency-header_1feao_30{color:var(--vote-latency-color)}._votes-header_1feao_33{color:var(--votes-color)}._non-votes-header_1feao_36{color:var(--success-color)}._fees-header_1feao_39{color:var(--fees-color)}._tips-header_1feao_42{color:var(--tips-color)}._compute-units-header_1feao_45{color:var(--compute-units-color);padding:0}._compute-units-pct_1feao_50{width:50px;display:inline-block}._row-text_1feao_55{white-space:nowrap;color:var(--slot-card-section-secondary-color);font-variant-numeric:tabular-nums;border-top:1px solid rgba(250,250,250,.12);padding:1px 0 0;&._active_1feao_62{background:var(--container-background-color);color:var(--slot-card-section-primary-color)}}._slot-text_1feao_68{color:var(--slot-card-section-primary-color);border-right:1px solid rgba(250,250,250,.12);padding-right:5px}.CircularProgressbar{width:100%;vertical-align:middle}.CircularProgressbar .CircularProgressbar-path{stroke:#3e98c7;stroke-linecap:round;-webkit-transition:stroke-dashoffset .5s ease 0s;transition:stroke-dashoffset .5s ease 0s}.CircularProgressbar .CircularProgressbar-trail{stroke:#d6d6d6;stroke-linecap:round}.CircularProgressbar .CircularProgressbar-text{fill:#3e98c7;font-size:20px;dominant-baseline:middle;text-anchor:middle}.CircularProgressbar .CircularProgressbar-background{fill:#d6d6d6}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-background{fill:#3e98c7}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-text{fill:#fff}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-path{stroke:#fff}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-trail{stroke:transparent}._slot-text_j49it_1{user-select:text;a:link{text-decoration:none;color:var(--slot-text-link-color)}a:visited{text-decoration:none;color:var(--slot-text-visited-link-color)}a:active,a:hover{text-decoration:none;color:var(--slot-text-active-link-color)}}._my-slots_476vd_1{color:var(--summary-my-slots-color);border-radius:10px;background:var(--container-background-color);padding:2px 5px}._summary-container_476vd_8{width:40%;min-width:500px}._name_476vd_13{color:var(--summary-primary-text-color);font-size:24px;min-width:30px;line-height:30px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;&._you_476vd_22{color:var(--gray-12)}&._mobile_476vd_26{font-size:inherit;line-height:16px}}._primary-text_476vd_32{font-style:normal;color:var(--summary-primary-text-color);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}._secondary-text_476vd_40{color:var(--summary-secondary-text-color);>span{line-height:normal}}._divider_476vd_47{color:var(--summary-primary-text-color)}._mobile_476vd_26{font-size:12px}._firedancer_476vd_55{color:var(--summary-firedancer-text-color)}._frankendancer_476vd_59{color:var(--summary-frankendancer-text-color)}._agave_476vd_63{color:var(--summary-agave-text-color)}._jito_476vd_67{color:var(--summary-jito-text-color)}._paladin_476vd_71{color:var(--summary-paladin-text-color)}._bam_476vd_75{color:var(--summary-bam-text-color)}._sig_476vd_79{color:var(--summary-sig-text-color)}._rakurai_476vd_83{background:var(--summary-rakurai-text-color);background-clip:text;color:transparent}._harmonic_476vd_89{color:var(--summary-harmonic-text-color)}._major-minor-version-text_476vd_93{flex-shrink:0}._remaining-version-text_476vd_97{min-width:1em;flex-shrink:2}._time-ago_476vd_102{text-align:left;&._right-aligned_476vd_105{text-align:right}}._arrow-dropdown_mvcj2_1{--button-ghost-padding-x: 2px;--button-ghost-padding-y: 2px}._card_wweyx_1{border-radius:8px;border:2px solid rgba(96,215,193,.65);background:#1b2432;box-shadow:0 0 4px #1ce7c291;padding:10px}._preload_1uziq_1{display:none}._container_1hof6_1{display:flex;justify-content:center;._button_1hof6_5{position:absolute;width:115px;height:18px;padding:2px 4px 2px 6px;align-items:center;border-radius:40px;background:#174e45;box-shadow:0 4px 4px #1c524966;font-size:12px;font-weight:600}}._label_14v9a_1{color:#737373}._value_14v9a_5{color:var(--next-slot-value-color);min-width:50px}._container_bc437_1{margin-bottom:16px;margin-left:24px;container:search / inline-size;input:placeholder-shown{text-overflow:ellipsis}}@media (max-width: 700px){._container_bc437_1{margin-bottom:8px;margin-left:0}}._search-box_bc437_18{justify-self:"center";min-width:400px}@container search (width < 600px){._search-box_bc437_18{min-width:100%}}._label_bc437_29{color:"#766A6A"}._search-button_bc437_33{display:flex;height:100%;padding:4px 10px;align-items:center;gap:8px;align-self:stretch;border-radius:8px;&:focus{box-shadow:0 0 0 2px #000}._label_bc437_29{color:#717171}&:hover,&[data-state=on]{._label_bc437_29{color:#a1a1a1}&._disabled_bc437_56{._label_bc437_29{color:#717171}}}}._my-slots_bc437_64{border-radius:8px;border:1px solid #1c4f8f;border-top-width:3px;background:#0d1c36;color:#4497f7;&:hover{border-color:#2a7edf;background:#0d3059;color:#2a7edf}&[data-state=on]{border-color:#2a7edf;background:#073c7b;color:#2a7edf}}._late-vote-slots_bc437_84{border:1px solid #2f1e7c;background:#130f33;color:#896fec;&:hover{border-color:#341f92;background:#1b1450;color:#896fec}&[data-state=on]{border-color:#5530e4;background:#38218f;color:#896fec}}._skipped-slots_bc437_102{border:1px solid #461e1f;background:#1f0a0b;color:var(--failure-color);&:hover{border-color:#752626;background:#321112}&[data-state=on]{border-color:#823737;background:#501717}}._disabled_bc437_56{border-color:var(--search-disabled-border-color);background:var(--search-disabled-background-color);color:var(--search-disabled-text-color);&:hover{border-color:var(--search-disabled-border-color);background:var(--search-disabled-background-color);color:var(--search-disabled-text-color)}}._skip-rate-label_bc437_130{color:var(--skip-rate-label-color);line-height:normal}._skip-rate-value_bc437_135{color:var(--failure-color);line-height:normal}._header-text_n52ov_1{color:var(--primary-text-color);font-size:18px}._storage-stats-container_n52ov_6{contain:size}._root_n52ov_11{min-height:0;thead{th{font-size:12px;font-weight:400;color:var(--gossip-table-header-color)}}tbody{th,td{font-size:14px;color:var(--gossip-table-body-color)}}td,th{white-space:nowrap}td{text-align:right}}._align-right_n52ov_39{text-align:right}._label_1nl74_1{color:#a2a2a2;font-size:14px}._value_1nl74_6{color:#9f9f9f;font-size:28px}._header-text_uidb2_1{color:var(--primary-text-color);font-size:18px}div:has(>._tooltip_uidb2_8){width:1px;height:1px}._tooltip_uidb2_8{width:fit-content;transform:translate(calc(-100% - 5px));padding:4px;background:#131923;border:1px solid #2e343e;border-radius:4px 8px;color:var(--regular-text-color);span{white-space:nowrap}}._header-text_1ozln_1{color:var(--primary-text-color);font-size:18px}._peer-table_1ozln_6{thead{tr{font-size:12px;color:var(--gossip-table-header-color)}}tbody{tr{font-size:14px;color:var(--gossip-table-body-color)}}}._header-cell_1ozln_22{padding:var(--table-cell-padding)}._header-separator_1ozln_26{background:var(--gray-7)}._body-cell_1ozln_30{outline-offset:-2px;&._selected_1ozln_33{outline:1px dashed var(--gray-10);&._copied_1ozln_36{outline:1px dashed var(--gray-11)}}}._header-text_skmjj_1{color:var(--primary-text-color);font-size:18px}._total-text_skmjj_6{color:var(--gray-7);font-size:18px}._throughput-text_skmjj_11{color:var(--gray-10);font-size:18px}._leaf_skmjj_16{border-radius:2px;cursor:pointer;background-color:var(--leaf-color);&:hover{background-color:color-mix(in hsl,var(--leaf-color),#ffffff1a)}._leaf-content_skmjj_24{font-size:10px;._name_skmjj_27{color:#ccc;align-self:stretch;&._large_skmjj_30{font-size:12px}}._stats_skmjj_34{color:var(--table-body-color)}}}._tooltip_skmjj_40{.rt-TooltipArrow{display:none!important}}._axis-text_juf3d_1{color:var(--transaction-axis-text-color);font-size:8px;line-height:normal}._container_muoex_1{font-size:10px;color:var(--regular-text-color)}._label_muoex_6{font-size:12px;line-height:normal;text-wrap:nowrap}._value_muoex_12{line-height:normal;color:var(--value-color, var(--regular-text-color));overflow:hidden;&._small_muoex_17{font-size:18px;font-weight:500}&._medium_muoex_21{font-size:28px;letter-spacing:-1.12px}&._large_muoex_25{font-size:32px;line-height:16px}}._append-value_muoex_31{line-height:normal;color:var(--append-value-color)}._vote-tps_kqvrt_1{min-width:90px}._stat-row_1ia1g_1{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%;>div{flex:1 1 auto;&:first-child{flex-grow:0;min-width:80px}}}._stat-row_11bim_1{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%;>div{flex:1;min-width:180px}}._stat-row_kmlhn_1{display:flex;flex-wrap:wrap;gap:8px;width:100%;>div{flex:1 1 auto;min-width:180px}}._progress_kmlhn_13{min-width:140px}._chart_7b67t_1{padding-top:0;padding-bottom:0;vertical-align:middle}._table_7b67t_7 table tbody ._row_7b67t_7{&._total-row_7b67t_8{border-top:1px solid rgba(250,250,250,.5)}th,td{color:var(--table-body-color)}}._group-header_1lbrc_1{text-align:center;padding:5px}._header_1lbrc_6{th{vertical-align:bottom;&._wrap_1lbrc_9{white-space:normal}}}._table_1lbrc_15{table{table-layout:fixed;._data-row_1lbrc_19{._green_1lbrc_20{color:var(--green-9)}._red_1lbrc_24{color:var(--red-9)}td{.rt-Text{line-height:inherit}color:var(--table-body-color);text-align:left;&[align=right]{text-align:right}vertical-align:middle;&._pct-gradient_1lbrc_43{color:color-mix(in srgb,var(--tile-busy-green-color),var(--tile-busy-red-color) var(--pct))}&._no-padding_1lbrc_51{padding-top:0;padding-bottom:0}._increment-text_1lbrc_56{min-width:5ch;display:inline-block;font-variant-numeric:tabular-nums;&._low-increment_1lbrc_61{color:var(--low-increment-text-color)}&._mid-increment_1lbrc_64{color:var(--mid-increment-text-color)}&._high-increment_1lbrc_67{color:var(--high-increment-text-color)}}}}tr{border:solid rgba(250,250,250,.12);border-width:1px 0px}._light-border-bottom_1lbrc_79{border-bottom:1px solid rgba(250,250,250,.36)}._right-border_1lbrc_83{border-right:1px solid rgba(250,250,250,.36)}td._right-border_1lbrc_83{padding-right:10px}td,th{box-shadow:none}}}._table-description-dialog_1shm8_1{overflow-y:auto;._table_1shm8_1{padding:var(--space-3) 8px;--table-cell-padding: 5px;._th_1shm8_8{font-size:12px;font-weight:400;color:var(--table-header-color)}._tr_1shm8_14{font-size:14px;color:var(--table-body-color);&:last-child td{box-shadow:none}._name_1shm8_22{white-space:nowrap}}}._close-button_1shm8_28{cursor:pointer}}._slot-label-card_1pson_1{border-radius:3px;padding:2px 3px;background-color:var(--gray-3);color:var(--slot-timeline-text-color);.rt-Text{font-size:12px;line-height:normal}}._slot-label-name_1pson_13{flex-shrink:100000000}._slot-label-dt_1pson_16{display:flex;white-space:pre;._dt-sign_1pson_19{line-height:14px}}._slot-bar_1pson_24{border-radius:2px;background:var(--bar-color, #3f434b);pointer-events:none;&._dim_1pson_29{background:#2d3138}}._slot-bar-track_1pson_34{height:90px}._next-leader-container_1pson_38{container-type:inline-size;container-name:next-leader-container}@container next-leader-container (width < 300px){._next-leader-timer-label_1pson_44{display:none}}@container next-leader-container (width < 130px){._next-leader-timer-container_1pson_50{display:none}}._stat-row_1xsdi_1{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%;>div{flex:1 1 auto;min-width:100px;&._storage-stat-container_1xsdi_10{min-width:160px}}}._trailing_1bhfc_1{color:var(--gray-9)}._fraction_1bhfc_5{color:var(--gray-9);text-align:center}._fraction-line_1bhfc_10{align-self:stretch;border-color:var(--gray-9);margin:0}._cards_hn4o1_1{grid-template-columns:minmax(300px,1fr)}._txns-card_hn4o1_5{grid-column:1 / -1}@media (min-width: 900px){._cards_hn4o1_1{grid-template-columns:1fr 1fr}._txns-card_hn4o1_5{grid-column:1 / -1}._frankendancer_hn4o1_18{._txns-card_hn4o1_5{grid-column:2}}}@media (min-width: 1512px){._cards_hn4o1_1{grid-template-columns:1fr 1fr 1fr}._txns-card_hn4o1_5{grid-column:span 2}._frankendancer_hn4o1_18{._txns-card_hn4o1_5{grid-column:span 3}}}@media (min-width: 1850px){._cards_hn4o1_1{grid-template-columns:1fr 1.5fr 1.7fr 2fr;&._frankendancer_hn4o1_18{grid-template-columns:1fr 1fr 1fr}}._txns-card_hn4o1_5{grid-column:1 / -1}}body{margin:0;min-width:320px;min-height:100vh} +@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2) format("woff2"),url(/assets/inter-tight-latin-400-normal-BLrFJfvD.woff) format("woff")}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/roboto-mono-latin-400-normal-GekRknry.woff2) format("woff2"),url(/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff) format("woff")}:root,.light,.light-theme{--gray-1: #fcfcfc;--gray-2: #f9f9f9;--gray-3: #f0f0f0;--gray-4: #e8e8e8;--gray-5: #e0e0e0;--gray-6: #d9d9d9;--gray-7: #cecece;--gray-8: #bbbbbb;--gray-9: #8d8d8d;--gray-10: #838383;--gray-11: #646464;--gray-12: #202020;--gray-a1: #00000003;--gray-a2: #00000006;--gray-a3: #0000000f;--gray-a4: #00000017;--gray-a5: #0000001f;--gray-a6: #00000026;--gray-a7: #00000031;--gray-a8: #00000044;--gray-a9: #00000072;--gray-a10: #0000007c;--gray-a11: #0000009b;--gray-a12: #000000df;--mauve-1: #fdfcfd;--mauve-2: #faf9fb;--mauve-3: #f2eff3;--mauve-4: #eae7ec;--mauve-5: #e3dfe6;--mauve-6: #dbd8e0;--mauve-7: #d0cdd7;--mauve-8: #bcbac7;--mauve-9: #8e8c99;--mauve-10: #84828e;--mauve-11: #65636d;--mauve-12: #211f26;--mauve-a1: #55005503;--mauve-a2: #2b005506;--mauve-a3: #30004010;--mauve-a4: #20003618;--mauve-a5: #20003820;--mauve-a6: #14003527;--mauve-a7: #10003332;--mauve-a8: #08003145;--mauve-a9: #05001d73;--mauve-a10: #0500197d;--mauve-a11: #0400119c;--mauve-a12: #020008e0;--slate-1: #fcfcfd;--slate-2: #f9f9fb;--slate-3: #f0f0f3;--slate-4: #e8e8ec;--slate-5: #e0e1e6;--slate-6: #d9d9e0;--slate-7: #cdced6;--slate-8: #b9bbc6;--slate-9: #8b8d98;--slate-10: #80838d;--slate-11: #60646c;--slate-12: #1c2024;--slate-a1: #00005503;--slate-a2: #00005506;--slate-a3: #0000330f;--slate-a4: #00002d17;--slate-a5: #0009321f;--slate-a6: #00002f26;--slate-a7: #00062e32;--slate-a8: #00083046;--slate-a9: #00051d74;--slate-a10: #00071b7f;--slate-a11: #0007149f;--slate-a12: #000509e3;--sage-1: #fbfdfc;--sage-2: #f7f9f8;--sage-3: #eef1f0;--sage-4: #e6e9e8;--sage-5: #dfe2e0;--sage-6: #d7dad9;--sage-7: #cbcfcd;--sage-8: #b8bcba;--sage-9: #868e8b;--sage-10: #7c8481;--sage-11: #5f6563;--sage-12: #1a211e;--sage-a1: #00804004;--sage-a2: #00402008;--sage-a3: #002d1e11;--sage-a4: #001f1519;--sage-a5: #00180820;--sage-a6: #00140d28;--sage-a7: #00140a34;--sage-a8: #000f0847;--sage-a9: #00110b79;--sage-a10: #00100a83;--sage-a11: #000a07a0;--sage-a12: #000805e5;--olive-1: #fcfdfc;--olive-2: #f8faf8;--olive-3: #eff1ef;--olive-4: #e7e9e7;--olive-5: #dfe2df;--olive-6: #d7dad7;--olive-7: #cccfcc;--olive-8: #b9bcb8;--olive-9: #898e87;--olive-10: #7f847d;--olive-11: #60655f;--olive-12: #1d211c;--olive-a1: #00550003;--olive-a2: #00490007;--olive-a3: #00200010;--olive-a4: #00160018;--olive-a5: #00180020;--olive-a6: #00140028;--olive-a7: #000f0033;--olive-a8: #040f0047;--olive-a9: #050f0078;--olive-a10: #040e0082;--olive-a11: #020a00a0;--olive-a12: #010600e3;--sand-1: #fdfdfc;--sand-2: #f9f9f8;--sand-3: #f1f0ef;--sand-4: #e9e8e6;--sand-5: #e2e1de;--sand-6: #dad9d6;--sand-7: #cfceca;--sand-8: #bcbbb5;--sand-9: #8d8d86;--sand-10: #82827c;--sand-11: #63635e;--sand-12: #21201c;--sand-a1: #55550003;--sand-a2: #25250007;--sand-a3: #20100010;--sand-a4: #1f150019;--sand-a5: #1f180021;--sand-a6: #19130029;--sand-a7: #19140035;--sand-a8: #1915014a;--sand-a9: #0f0f0079;--sand-a10: #0c0c0083;--sand-a11: #080800a1;--sand-a12: #060500e3;--amber-1: #fefdfb;--amber-2: #fefbe9;--amber-3: #fff7c2;--amber-4: #ffee9c;--amber-5: #fbe577;--amber-6: #f3d673;--amber-7: #e9c162;--amber-8: #e2a336;--amber-9: #ffc53d;--amber-10: #ffba18;--amber-11: #ab6400;--amber-12: #4f3422;--amber-a1: #c0800004;--amber-a2: #f4d10016;--amber-a3: #ffde003d;--amber-a4: #ffd40063;--amber-a5: #f8cf0088;--amber-a6: #eab5008c;--amber-a7: #dc9b009d;--amber-a8: #da8a00c9;--amber-a9: #ffb300c2;--amber-a10: #ffb300e7;--amber-a11: #ab6400;--amber-a12: #341500dd;--blue-1: #fbfdff;--blue-2: #f4faff;--blue-3: #e6f4fe;--blue-4: #d5efff;--blue-5: #c2e5ff;--blue-6: #acd8fc;--blue-7: #8ec8f6;--blue-8: #5eb1ef;--blue-9: #0090ff;--blue-10: #0588f0;--blue-11: #0d74ce;--blue-12: #113264;--blue-a1: #0080ff04;--blue-a2: #008cff0b;--blue-a3: #008ff519;--blue-a4: #009eff2a;--blue-a5: #0093ff3d;--blue-a6: #0088f653;--blue-a7: #0083eb71;--blue-a8: #0084e6a1;--blue-a9: #0090ff;--blue-a10: #0086f0fa;--blue-a11: #006dcbf2;--blue-a12: #002359ee;--bronze-1: #fdfcfc;--bronze-2: #fdf7f5;--bronze-3: #f6edea;--bronze-4: #efe4df;--bronze-5: #e7d9d3;--bronze-6: #dfcdc5;--bronze-7: #d3bcb3;--bronze-8: #c2a499;--bronze-9: #a18072;--bronze-10: #957468;--bronze-11: #7d5e54;--bronze-12: #43302b;--bronze-a1: #55000003;--bronze-a2: #cc33000a;--bronze-a3: #92250015;--bronze-a4: #80280020;--bronze-a5: #7423002c;--bronze-a6: #7324003a;--bronze-a7: #6c1f004c;--bronze-a8: #671c0066;--bronze-a9: #551a008d;--bronze-a10: #4c150097;--bronze-a11: #3d0f00ab;--bronze-a12: #1d0600d4;--brown-1: #fefdfc;--brown-2: #fcf9f6;--brown-3: #f6eee7;--brown-4: #f0e4d9;--brown-5: #ebdaca;--brown-6: #e4cdb7;--brown-7: #dcbc9f;--brown-8: #cea37e;--brown-9: #ad7f58;--brown-10: #a07553;--brown-11: #815e46;--brown-12: #3e332e;--brown-a1: #aa550003;--brown-a2: #aa550009;--brown-a3: #a04b0018;--brown-a4: #9b4a0026;--brown-a5: #9f4d0035;--brown-a6: #a04e0048;--brown-a7: #a34e0060;--brown-a8: #9f4a0081;--brown-a9: #823c00a7;--brown-a10: #723300ac;--brown-a11: #522100b9;--brown-a12: #140600d1;--crimson-1: #fffcfd;--crimson-2: #fef7f9;--crimson-3: #ffe9f0;--crimson-4: #fedce7;--crimson-5: #facedd;--crimson-6: #f3bed1;--crimson-7: #eaacc3;--crimson-8: #e093b2;--crimson-9: #e93d82;--crimson-10: #df3478;--crimson-11: #cb1d63;--crimson-12: #621639;--crimson-a1: #ff005503;--crimson-a2: #e0004008;--crimson-a3: #ff005216;--crimson-a4: #f8005123;--crimson-a5: #e5004f31;--crimson-a6: #d0004b41;--crimson-a7: #bf004753;--crimson-a8: #b6004a6c;--crimson-a9: #e2005bc2;--crimson-a10: #d70056cb;--crimson-a11: #c4004fe2;--crimson-a12: #530026e9;--cyan-1: #fafdfe;--cyan-2: #f2fafb;--cyan-3: #def7f9;--cyan-4: #caf1f6;--cyan-5: #b5e9f0;--cyan-6: #9ddde7;--cyan-7: #7dcedc;--cyan-8: #3db9cf;--cyan-9: #00a2c7;--cyan-10: #0797b9;--cyan-11: #107d98;--cyan-12: #0d3c48;--cyan-a1: #0099cc05;--cyan-a2: #009db10d;--cyan-a3: #00c2d121;--cyan-a4: #00bcd435;--cyan-a5: #01b4cc4a;--cyan-a6: #00a7c162;--cyan-a7: #009fbb82;--cyan-a8: #00a3c0c2;--cyan-a9: #00a2c7;--cyan-a10: #0094b7f8;--cyan-a11: #007491ef;--cyan-a12: #00323ef2;--gold-1: #fdfdfc;--gold-2: #faf9f2;--gold-3: #f2f0e7;--gold-4: #eae6db;--gold-5: #e1dccf;--gold-6: #d8d0bf;--gold-7: #cbc0aa;--gold-8: #b9a88d;--gold-9: #978365;--gold-10: #8c7a5e;--gold-11: #71624b;--gold-12: #3b352b;--gold-a1: #55550003;--gold-a2: #9d8a000d;--gold-a3: #75600018;--gold-a4: #6b4e0024;--gold-a5: #60460030;--gold-a6: #64440040;--gold-a7: #63420055;--gold-a8: #633d0072;--gold-a9: #5332009a;--gold-a10: #492d00a1;--gold-a11: #362100b4;--gold-a12: #130c00d4;--grass-1: #fbfefb;--grass-2: #f5fbf5;--grass-3: #e9f6e9;--grass-4: #daf1db;--grass-5: #c9e8ca;--grass-6: #b2ddb5;--grass-7: #94ce9a;--grass-8: #65ba74;--grass-9: #46a758;--grass-10: #3e9b4f;--grass-11: #2a7e3b;--grass-12: #203c25;--grass-a1: #00c00004;--grass-a2: #0099000a;--grass-a3: #00970016;--grass-a4: #009f0725;--grass-a5: #00930536;--grass-a6: #008f0a4d;--grass-a7: #018b0f6b;--grass-a8: #008d199a;--grass-a9: #008619b9;--grass-a10: #007b17c1;--grass-a11: #006514d5;--grass-a12: #002006df;--green-1: #fbfefc;--green-2: #f4fbf6;--green-3: #e6f6eb;--green-4: #d6f1df;--green-5: #c4e8d1;--green-6: #adddc0;--green-7: #8eceaa;--green-8: #5bb98b;--green-9: #30a46c;--green-10: #2b9a66;--green-11: #218358;--green-12: #193b2d;--green-a1: #00c04004;--green-a2: #00a32f0b;--green-a3: #00a43319;--green-a4: #00a83829;--green-a5: #019c393b;--green-a6: #00963c52;--green-a7: #00914071;--green-a8: #00924ba4;--green-a9: #008f4acf;--green-a10: #008647d4;--green-a11: #00713fde;--green-a12: #002616e6;--indigo-1: #fdfdfe;--indigo-2: #f7f9ff;--indigo-3: #edf2fe;--indigo-4: #e1e9ff;--indigo-5: #d2deff;--indigo-6: #c1d0ff;--indigo-7: #abbdf9;--indigo-8: #8da4ef;--indigo-9: #3e63dd;--indigo-10: #3358d4;--indigo-11: #3a5bc7;--indigo-12: #1f2d5c;--indigo-a1: #00008002;--indigo-a2: #0040ff08;--indigo-a3: #0047f112;--indigo-a4: #0044ff1e;--indigo-a5: #0044ff2d;--indigo-a6: #003eff3e;--indigo-a7: #0037ed54;--indigo-a8: #0034dc72;--indigo-a9: #0031d2c1;--indigo-a10: #002ec9cc;--indigo-a11: #002bb7c5;--indigo-a12: #001046e0;--iris-1: #fdfdff;--iris-2: #f8f8ff;--iris-3: #f0f1fe;--iris-4: #e6e7ff;--iris-5: #dadcff;--iris-6: #cbcdff;--iris-7: #b8baf8;--iris-8: #9b9ef0;--iris-9: #5b5bd6;--iris-10: #5151cd;--iris-11: #5753c6;--iris-12: #272962;--iris-a1: #0000ff02;--iris-a2: #0000ff07;--iris-a3: #0011ee0f;--iris-a4: #000bff19;--iris-a5: #000eff25;--iris-a6: #000aff34;--iris-a7: #0008e647;--iris-a8: #0008d964;--iris-a9: #0000c0a4;--iris-a10: #0000b6ae;--iris-a11: #0600abac;--iris-a12: #000246d8;--jade-1: #fbfefd;--jade-2: #f4fbf7;--jade-3: #e6f7ed;--jade-4: #d6f1e3;--jade-5: #c3e9d7;--jade-6: #acdec8;--jade-7: #8bceb6;--jade-8: #56ba9f;--jade-9: #29a383;--jade-10: #26997b;--jade-11: #208368;--jade-12: #1d3b31;--jade-a1: #00c08004;--jade-a2: #00a3460b;--jade-a3: #00ae4819;--jade-a4: #00a85129;--jade-a5: #00a2553c;--jade-a6: #009a5753;--jade-a7: #00945f74;--jade-a8: #00976ea9;--jade-a9: #00916bd6;--jade-a10: #008764d9;--jade-a11: #007152df;--jade-a12: #002217e2;--lime-1: #fcfdfa;--lime-2: #f8faf3;--lime-3: #eef6d6;--lime-4: #e2f0bd;--lime-5: #d3e7a6;--lime-6: #c2da91;--lime-7: #abc978;--lime-8: #8db654;--lime-9: #bdee63;--lime-10: #b0e64c;--lime-11: #5c7c2f;--lime-12: #37401c;--lime-a1: #66990005;--lime-a2: #6b95000c;--lime-a3: #96c80029;--lime-a4: #8fc60042;--lime-a5: #81bb0059;--lime-a6: #72aa006e;--lime-a7: #61990087;--lime-a8: #559200ab;--lime-a9: #93e4009c;--lime-a10: #8fdc00b3;--lime-a11: #375f00d0;--lime-a12: #1e2900e3;--mint-1: #f9fefd;--mint-2: #f2fbf9;--mint-3: #ddf9f2;--mint-4: #c8f4e9;--mint-5: #b3ecde;--mint-6: #9ce0d0;--mint-7: #7ecfbd;--mint-8: #4cbba5;--mint-9: #86ead4;--mint-10: #7de0cb;--mint-11: #027864;--mint-12: #16433c;--mint-a1: #00d5aa06;--mint-a2: #00b18a0d;--mint-a3: #00d29e22;--mint-a4: #00cc9937;--mint-a5: #00c0914c;--mint-a6: #00b08663;--mint-a7: #00a17d81;--mint-a8: #009e7fb3;--mint-a9: #00d3a579;--mint-a10: #00c39982;--mint-a11: #007763fd;--mint-a12: #00312ae9;--orange-1: #fefcfb;--orange-2: #fff7ed;--orange-3: #ffefd6;--orange-4: #ffdfb5;--orange-5: #ffd19a;--orange-6: #ffc182;--orange-7: #f5ae73;--orange-8: #ec9455;--orange-9: #f76b15;--orange-10: #ef5f00;--orange-11: #cc4e00;--orange-12: #582d1d;--orange-a1: #c0400004;--orange-a2: #ff8e0012;--orange-a3: #ff9c0029;--orange-a4: #ff91014a;--orange-a5: #ff8b0065;--orange-a6: #ff81007d;--orange-a7: #ed6c008c;--orange-a8: #e35f00aa;--orange-a9: #f65e00ea;--orange-a10: #ef5f00;--orange-a11: #cc4e00;--orange-a12: #431200e2;--pink-1: #fffcfe;--pink-2: #fef7fb;--pink-3: #fee9f5;--pink-4: #fbdcef;--pink-5: #f6cee7;--pink-6: #efbfdd;--pink-7: #e7acd0;--pink-8: #dd93c2;--pink-9: #d6409f;--pink-10: #cf3897;--pink-11: #c2298a;--pink-12: #651249;--pink-a1: #ff00aa03;--pink-a2: #e0008008;--pink-a3: #f4008c16;--pink-a4: #e2008b23;--pink-a5: #d1008331;--pink-a6: #c0007840;--pink-a7: #b6006f53;--pink-a8: #af006f6c;--pink-a9: #c8007fbf;--pink-a10: #c2007ac7;--pink-a11: #b60074d6;--pink-a12: #59003bed;--plum-1: #fefcff;--plum-2: #fdf7fd;--plum-3: #fbebfb;--plum-4: #f7def8;--plum-5: #f2d1f3;--plum-6: #e9c2ec;--plum-7: #deade3;--plum-8: #cf91d8;--plum-9: #ab4aba;--plum-10: #a144af;--plum-11: #953ea3;--plum-12: #53195d;--plum-a1: #aa00ff03;--plum-a2: #c000c008;--plum-a3: #cc00cc14;--plum-a4: #c200c921;--plum-a5: #b700bd2e;--plum-a6: #a400b03d;--plum-a7: #9900a852;--plum-a8: #9000a56e;--plum-a9: #89009eb5;--plum-a10: #7f0092bb;--plum-a11: #730086c1;--plum-a12: #40004be6;--purple-1: #fefcfe;--purple-2: #fbf7fe;--purple-3: #f7edfe;--purple-4: #f2e2fc;--purple-5: #ead5f9;--purple-6: #e0c4f4;--purple-7: #d1afec;--purple-8: #be93e4;--purple-9: #8e4ec6;--purple-10: #8347b9;--purple-11: #8145b5;--purple-12: #402060;--purple-a1: #aa00aa03;--purple-a2: #8000e008;--purple-a3: #8e00f112;--purple-a4: #8d00e51d;--purple-a5: #8000db2a;--purple-a6: #7a01d03b;--purple-a7: #6d00c350;--purple-a8: #6600c06c;--purple-a9: #5c00adb1;--purple-a10: #53009eb8;--purple-a11: #52009aba;--purple-a12: #250049df;--red-1: #fffcfc;--red-2: #fff7f7;--red-3: #feebec;--red-4: #ffdbdc;--red-5: #ffcdce;--red-6: #fdbdbe;--red-7: #f4a9aa;--red-8: #eb8e90;--red-9: #e5484d;--red-10: #dc3e42;--red-11: #ce2c31;--red-12: #641723;--red-a1: #ff000003;--red-a2: #ff000008;--red-a3: #f3000d14;--red-a4: #ff000824;--red-a5: #ff000632;--red-a6: #f8000442;--red-a7: #df000356;--red-a8: #d2000571;--red-a9: #db0007b7;--red-a10: #d10005c1;--red-a11: #c40006d3;--red-a12: #55000de8;--ruby-1: #fffcfd;--ruby-2: #fff7f8;--ruby-3: #feeaed;--ruby-4: #ffdce1;--ruby-5: #ffced6;--ruby-6: #f8bfc8;--ruby-7: #efacb8;--ruby-8: #e592a3;--ruby-9: #e54666;--ruby-10: #dc3b5d;--ruby-11: #ca244d;--ruby-12: #64172b;--ruby-a1: #ff005503;--ruby-a2: #ff002008;--ruby-a3: #f3002515;--ruby-a4: #ff002523;--ruby-a5: #ff002a31;--ruby-a6: #e4002440;--ruby-a7: #ce002553;--ruby-a8: #c300286d;--ruby-a9: #db002cb9;--ruby-a10: #d2002cc4;--ruby-a11: #c10030db;--ruby-a12: #550016e8;--sky-1: #f9feff;--sky-2: #f1fafd;--sky-3: #e1f6fd;--sky-4: #d1f0fa;--sky-5: #bee7f5;--sky-6: #a9daed;--sky-7: #8dcae3;--sky-8: #60b3d7;--sky-9: #7ce2fe;--sky-10: #74daf8;--sky-11: #00749e;--sky-12: #1d3e56;--sky-a1: #00d5ff06;--sky-a2: #00a4db0e;--sky-a3: #00b3ee1e;--sky-a4: #00ace42e;--sky-a5: #00a1d841;--sky-a6: #0092ca56;--sky-a7: #0089c172;--sky-a8: #0085bf9f;--sky-a9: #00c7fe83;--sky-a10: #00bcf38b;--sky-a11: #00749e;--sky-a12: #002540e2;--teal-1: #fafefd;--teal-2: #f3fbf9;--teal-3: #e0f8f3;--teal-4: #ccf3ea;--teal-5: #b8eae0;--teal-6: #a1ded2;--teal-7: #83cdc1;--teal-8: #53b9ab;--teal-9: #12a594;--teal-10: #0d9b8a;--teal-11: #008573;--teal-12: #0d3d38;--teal-a1: #00cc9905;--teal-a2: #00aa800c;--teal-a3: #00c69d1f;--teal-a4: #00c39633;--teal-a5: #00b49047;--teal-a6: #00a6855e;--teal-a7: #0099807c;--teal-a8: #009783ac;--teal-a9: #009e8ced;--teal-a10: #009684f2;--teal-a11: #008573;--teal-a12: #00332df2;--tomato-1: #fffcfc;--tomato-2: #fff8f7;--tomato-3: #feebe7;--tomato-4: #ffdcd3;--tomato-5: #ffcdc2;--tomato-6: #fdbdaf;--tomato-7: #f5a898;--tomato-8: #ec8e7b;--tomato-9: #e54d2e;--tomato-10: #dd4425;--tomato-11: #d13415;--tomato-12: #5c271f;--tomato-a1: #ff000003;--tomato-a2: #ff200008;--tomato-a3: #f52b0018;--tomato-a4: #ff35002c;--tomato-a5: #ff2e003d;--tomato-a6: #f92d0050;--tomato-a7: #e7280067;--tomato-a8: #db250084;--tomato-a9: #df2600d1;--tomato-a10: #d72400da;--tomato-a11: #cd2200ea;--tomato-a12: #460900e0;--violet-1: #fdfcfe;--violet-2: #faf8ff;--violet-3: #f4f0fe;--violet-4: #ebe4ff;--violet-5: #e1d9ff;--violet-6: #d4cafe;--violet-7: #c2b5f5;--violet-8: #aa99ec;--violet-9: #6e56cf;--violet-10: #654dc4;--violet-11: #6550b9;--violet-12: #2f265f;--violet-a1: #5500aa03;--violet-a2: #4900ff07;--violet-a3: #4400ee0f;--violet-a4: #4300ff1b;--violet-a5: #3600ff26;--violet-a6: #3100fb35;--violet-a7: #2d01dd4a;--violet-a8: #2b00d066;--violet-a9: #2400b7a9;--violet-a10: #2300abb2;--violet-a11: #1f0099af;--violet-a12: #0b0043d9;--yellow-1: #fdfdf9;--yellow-2: #fefce9;--yellow-3: #fffab8;--yellow-4: #fff394;--yellow-5: #ffe770;--yellow-6: #f3d768;--yellow-7: #e4c767;--yellow-8: #d5ae39;--yellow-9: #ffe629;--yellow-10: #ffdc00;--yellow-11: #9e6c00;--yellow-12: #473b1f;--yellow-a1: #aaaa0006;--yellow-a2: #f4dd0016;--yellow-a3: #ffee0047;--yellow-a4: #ffe3016b;--yellow-a5: #ffd5008f;--yellow-a6: #ebbc0097;--yellow-a7: #d2a10098;--yellow-a8: #c99700c6;--yellow-a9: #ffe100d6;--yellow-a10: #ffdc00;--yellow-a11: #9e6c00;--yellow-a12: #2e2000e0;--gray-surface: #ffffffcc;--gray-indicator: var(--gray-9);--gray-track: var(--gray-9);--mauve-surface: #ffffffcc;--mauve-indicator: var(--mauve-9);--mauve-track: var(--mauve-9);--slate-surface: #ffffffcc;--slate-indicator: var(--slate-9);--slate-track: var(--slate-9);--sage-surface: #ffffffcc;--sage-indicator: var(--sage-9);--sage-track: var(--sage-9);--olive-surface: #ffffffcc;--olive-indicator: var(--olive-9);--olive-track: var(--olive-9);--sand-surface: #ffffffcc;--sand-indicator: var(--sand-9);--sand-track: var(--sand-9);--amber-surface: #fefae4cc;--amber-indicator: var(--amber-9);--amber-track: var(--amber-9);--blue-surface: #f1f9ffcc;--blue-indicator: var(--blue-9);--blue-track: var(--blue-9);--bronze-surface: #fdf5f3cc;--bronze-indicator: var(--bronze-9);--bronze-track: var(--bronze-9);--brown-surface: #fbf8f4cc;--brown-indicator: var(--brown-9);--brown-track: var(--brown-9);--crimson-surface: #fef5f8cc;--crimson-indicator: var(--crimson-9);--crimson-track: var(--crimson-9);--cyan-surface: #eff9facc;--cyan-indicator: var(--cyan-9);--cyan-track: var(--cyan-9);--gold-surface: #f9f8efcc;--gold-indicator: var(--gold-9);--gold-track: var(--gold-9);--grass-surface: #f3faf3cc;--grass-indicator: var(--grass-9);--grass-track: var(--grass-9);--green-surface: #f1faf4cc;--green-indicator: var(--green-9);--green-track: var(--green-9);--indigo-surface: #f5f8ffcc;--indigo-indicator: var(--indigo-9);--indigo-track: var(--indigo-9);--iris-surface: #f6f6ffcc;--iris-indicator: var(--iris-9);--iris-track: var(--iris-9);--jade-surface: #f1faf5cc;--jade-indicator: var(--jade-9);--jade-track: var(--jade-9);--lime-surface: #f6f9f0cc;--lime-indicator: var(--lime-9);--lime-track: var(--lime-9);--mint-surface: #effaf8cc;--mint-indicator: var(--mint-9);--mint-track: var(--mint-9);--orange-surface: #fff5e9cc;--orange-indicator: var(--orange-9);--orange-track: var(--orange-9);--pink-surface: #fef5facc;--pink-indicator: var(--pink-9);--pink-track: var(--pink-9);--plum-surface: #fdf5fdcc;--plum-indicator: var(--plum-9);--plum-track: var(--plum-9);--purple-surface: #faf5fecc;--purple-indicator: var(--purple-9);--purple-track: var(--purple-9);--red-surface: #fff5f5cc;--red-indicator: var(--red-9);--red-track: var(--red-9);--ruby-surface: #fff5f6cc;--ruby-indicator: var(--ruby-9);--ruby-track: var(--ruby-9);--sky-surface: #eef9fdcc;--sky-indicator: var(--sky-9);--sky-track: var(--sky-9);--teal-surface: #f0faf8cc;--teal-indicator: var(--teal-9);--teal-track: var(--teal-9);--tomato-surface: #fff6f5cc;--tomato-indicator: var(--tomato-9);--tomato-track: var(--tomato-9);--violet-surface: #f9f6ffcc;--violet-indicator: var(--violet-9);--violet-track: var(--violet-9);--yellow-surface: #fefbe4cc;--yellow-indicator: var(--yellow-10);--yellow-track: var(--yellow-10)}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){:root,.light,.light-theme{--gray-1: color(display-p3 .988 .988 .988);--gray-2: color(display-p3 .975 .975 .975);--gray-3: color(display-p3 .939 .939 .939);--gray-4: color(display-p3 .908 .908 .908);--gray-5: color(display-p3 .88 .88 .88);--gray-6: color(display-p3 .849 .849 .849);--gray-7: color(display-p3 .807 .807 .807);--gray-8: color(display-p3 .732 .732 .732);--gray-9: color(display-p3 .553 .553 .553);--gray-10: color(display-p3 .512 .512 .512);--gray-11: color(display-p3 .392 .392 .392);--gray-12: color(display-p3 .125 .125 .125);--gray-a1: color(display-p3 0 0 0 / .012);--gray-a2: color(display-p3 0 0 0 / .024);--gray-a3: color(display-p3 0 0 0 / .063);--gray-a4: color(display-p3 0 0 0 / .09);--gray-a5: color(display-p3 0 0 0 / .122);--gray-a6: color(display-p3 0 0 0 / .153);--gray-a7: color(display-p3 0 0 0 / .192);--gray-a8: color(display-p3 0 0 0 / .267);--gray-a9: color(display-p3 0 0 0 / .447);--gray-a10: color(display-p3 0 0 0 / .486);--gray-a11: color(display-p3 0 0 0 / .608);--gray-a12: color(display-p3 0 0 0 / .875);--mauve-1: color(display-p3 .991 .988 .992);--mauve-2: color(display-p3 .98 .976 .984);--mauve-3: color(display-p3 .946 .938 .952);--mauve-4: color(display-p3 .915 .906 .925);--mauve-5: color(display-p3 .886 .876 .901);--mauve-6: color(display-p3 .856 .846 .875);--mauve-7: color(display-p3 .814 .804 .84);--mauve-8: color(display-p3 .735 .728 .777);--mauve-9: color(display-p3 .555 .549 .596);--mauve-10: color(display-p3 .514 .508 .552);--mauve-11: color(display-p3 .395 .388 .424);--mauve-12: color(display-p3 .128 .122 .147);--mauve-a1: color(display-p3 .349 .024 .349 / .012);--mauve-a2: color(display-p3 .184 .024 .349 / .024);--mauve-a3: color(display-p3 .129 .008 .255 / .063);--mauve-a4: color(display-p3 .094 .012 .216 / .095);--mauve-a5: color(display-p3 .098 .008 .224 / .126);--mauve-a6: color(display-p3 .055 .004 .18 / .153);--mauve-a7: color(display-p3 .067 .008 .184 / .197);--mauve-a8: color(display-p3 .02 .004 .176 / .271);--mauve-a9: color(display-p3 .02 .004 .106 / .451);--mauve-a10: color(display-p3 .012 .004 .09 / .491);--mauve-a11: color(display-p3 .016 0 .059 / .612);--mauve-a12: color(display-p3 .008 0 .027 / .879);--slate-1: color(display-p3 .988 .988 .992);--slate-2: color(display-p3 .976 .976 .984);--slate-3: color(display-p3 .94 .941 .953);--slate-4: color(display-p3 .908 .909 .925);--slate-5: color(display-p3 .88 .881 .901);--slate-6: color(display-p3 .85 .852 .876);--slate-7: color(display-p3 .805 .808 .838);--slate-8: color(display-p3 .727 .733 .773);--slate-9: color(display-p3 .547 .553 .592);--slate-10: color(display-p3 .503 .512 .549);--slate-11: color(display-p3 .379 .392 .421);--slate-12: color(display-p3 .113 .125 .14);--slate-a1: color(display-p3 .024 .024 .349 / .012);--slate-a2: color(display-p3 .024 .024 .349 / .024);--slate-a3: color(display-p3 .004 .004 .204 / .059);--slate-a4: color(display-p3 .012 .012 .184 / .091);--slate-a5: color(display-p3 .004 .039 .2 / .122);--slate-a6: color(display-p3 .008 .008 .165 / .15);--slate-a7: color(display-p3 .008 .027 .184 / .197);--slate-a8: color(display-p3 .004 .031 .176 / .275);--slate-a9: color(display-p3 .004 .02 .106 / .455);--slate-a10: color(display-p3 .004 .027 .098 / .499);--slate-a11: color(display-p3 0 .02 .063 / .62);--slate-a12: color(display-p3 0 .012 .031 / .887);--sage-1: color(display-p3 .986 .992 .988);--sage-2: color(display-p3 .97 .977 .974);--sage-3: color(display-p3 .935 .944 .94);--sage-4: color(display-p3 .904 .913 .909);--sage-5: color(display-p3 .875 .885 .88);--sage-6: color(display-p3 .844 .854 .849);--sage-7: color(display-p3 .8 .811 .806);--sage-8: color(display-p3 .725 .738 .732);--sage-9: color(display-p3 .531 .556 .546);--sage-10: color(display-p3 .492 .515 .506);--sage-11: color(display-p3 .377 .395 .389);--sage-12: color(display-p3 .107 .129 .118);--sage-a1: color(display-p3 .024 .514 .267 / .016);--sage-a2: color(display-p3 .02 .267 .145 / .032);--sage-a3: color(display-p3 .008 .184 .125 / .067);--sage-a4: color(display-p3 .012 .094 .051 / .095);--sage-a5: color(display-p3 .008 .098 .035 / .126);--sage-a6: color(display-p3 .004 .078 .027 / .157);--sage-a7: color(display-p3 0 .059 .039 / .2);--sage-a8: color(display-p3 .004 .047 .031 / .275);--sage-a9: color(display-p3 .004 .059 .035 / .471);--sage-a10: color(display-p3 0 .047 .031 / .51);--sage-a11: color(display-p3 0 .031 .02 / .624);--sage-a12: color(display-p3 0 .027 .012 / .895);--olive-1: color(display-p3 .989 .992 .989);--olive-2: color(display-p3 .974 .98 .973);--olive-3: color(display-p3 .939 .945 .937);--olive-4: color(display-p3 .907 .914 .905);--olive-5: color(display-p3 .878 .885 .875);--olive-6: color(display-p3 .846 .855 .843);--olive-7: color(display-p3 .803 .812 .8);--olive-8: color(display-p3 .727 .738 .723);--olive-9: color(display-p3 .541 .556 .532);--olive-10: color(display-p3 .5 .515 .491);--olive-11: color(display-p3 .38 .395 .374);--olive-12: color(display-p3 .117 .129 .111);--olive-a1: color(display-p3 .024 .349 .024 / .012);--olive-a2: color(display-p3 .024 .302 .024 / .028);--olive-a3: color(display-p3 .008 .129 .008 / .063);--olive-a4: color(display-p3 .012 .094 .012 / .095);--olive-a5: color(display-p3 .035 .098 .008 / .126);--olive-a6: color(display-p3 .027 .078 .004 / .157);--olive-a7: color(display-p3 .02 .059 0 / .2);--olive-a8: color(display-p3 .02 .059 .004 / .279);--olive-a9: color(display-p3 .02 .051 .004 / .467);--olive-a10: color(display-p3 .024 .047 0 / .51);--olive-a11: color(display-p3 .012 .039 0 / .628);--olive-a12: color(display-p3 .008 .024 0 / .891);--sand-1: color(display-p3 .992 .992 .989);--sand-2: color(display-p3 .977 .977 .973);--sand-3: color(display-p3 .943 .942 .936);--sand-4: color(display-p3 .913 .912 .903);--sand-5: color(display-p3 .885 .883 .873);--sand-6: color(display-p3 .854 .852 .839);--sand-7: color(display-p3 .813 .81 .794);--sand-8: color(display-p3 .738 .734 .713);--sand-9: color(display-p3 .553 .553 .528);--sand-10: color(display-p3 .511 .511 .488);--sand-11: color(display-p3 .388 .388 .37);--sand-12: color(display-p3 .129 .126 .111);--sand-a1: color(display-p3 .349 .349 .024 / .012);--sand-a2: color(display-p3 .161 .161 .024 / .028);--sand-a3: color(display-p3 .067 .067 .008 / .063);--sand-a4: color(display-p3 .129 .129 .012 / .099);--sand-a5: color(display-p3 .098 .067 .008 / .126);--sand-a6: color(display-p3 .102 .075 .004 / .161);--sand-a7: color(display-p3 .098 .098 .004 / .208);--sand-a8: color(display-p3 .086 .075 .004 / .287);--sand-a9: color(display-p3 .051 .051 .004 / .471);--sand-a10: color(display-p3 .047 .047 0 / .514);--sand-a11: color(display-p3 .031 .031 0 / .632);--sand-a12: color(display-p3 .024 .02 0 / .891);--amber-1: color(display-p3 .995 .992 .985);--amber-2: color(display-p3 .994 .986 .921);--amber-3: color(display-p3 .994 .969 .782);--amber-4: color(display-p3 .989 .937 .65);--amber-5: color(display-p3 .97 .902 .527);--amber-6: color(display-p3 .936 .844 .506);--amber-7: color(display-p3 .89 .762 .443);--amber-8: color(display-p3 .85 .65 .3);--amber-9: color(display-p3 1 .77 .26);--amber-10: color(display-p3 .959 .741 .274);--amber-11: color(display-p3 .64 .4 0);--amber-12: color(display-p3 .294 .208 .145);--amber-a1: color(display-p3 .757 .514 .024 / .016);--amber-a2: color(display-p3 .902 .804 .008 / .079);--amber-a3: color(display-p3 .965 .859 .004 / .22);--amber-a4: color(display-p3 .969 .82 .004 / .35);--amber-a5: color(display-p3 .933 .796 .004 / .475);--amber-a6: color(display-p3 .875 .682 .004 / .495);--amber-a7: color(display-p3 .804 .573 0 / .557);--amber-a8: color(display-p3 .788 .502 0 / .699);--amber-a9: color(display-p3 1 .686 0 / .742);--amber-a10: color(display-p3 .945 .643 0 / .726);--amber-a11: color(display-p3 .64 .4 0);--amber-a12: color(display-p3 .294 .208 .145);--blue-1: color(display-p3 .986 .992 .999);--blue-2: color(display-p3 .96 .979 .998);--blue-3: color(display-p3 .912 .956 .991);--blue-4: color(display-p3 .853 .932 1);--blue-5: color(display-p3 .788 .894 .998);--blue-6: color(display-p3 .709 .843 .976);--blue-7: color(display-p3 .606 .777 .947);--blue-8: color(display-p3 .451 .688 .917);--blue-9: color(display-p3 .247 .556 .969);--blue-10: color(display-p3 .234 .523 .912);--blue-11: color(display-p3 .15 .44 .84);--blue-12: color(display-p3 .102 .193 .379);--blue-a1: color(display-p3 .024 .514 1 / .016);--blue-a2: color(display-p3 .024 .514 .906 / .04);--blue-a3: color(display-p3 .012 .506 .914 / .087);--blue-a4: color(display-p3 .008 .545 1 / .146);--blue-a5: color(display-p3 .004 .502 .984 / .212);--blue-a6: color(display-p3 .004 .463 .922 / .291);--blue-a7: color(display-p3 .004 .431 .863 / .393);--blue-a8: color(display-p3 0 .427 .851 / .55);--blue-a9: color(display-p3 0 .412 .961 / .753);--blue-a10: color(display-p3 0 .376 .886 / .765);--blue-a11: color(display-p3 .15 .44 .84);--blue-a12: color(display-p3 .102 .193 .379);--bronze-1: color(display-p3 .991 .988 .988);--bronze-2: color(display-p3 .989 .97 .961);--bronze-3: color(display-p3 .958 .932 .919);--bronze-4: color(display-p3 .929 .894 .877);--bronze-5: color(display-p3 .898 .853 .832);--bronze-6: color(display-p3 .861 .805 .778);--bronze-7: color(display-p3 .812 .739 .706);--bronze-8: color(display-p3 .741 .647 .606);--bronze-9: color(display-p3 .611 .507 .455);--bronze-10: color(display-p3 .563 .461 .414);--bronze-11: color(display-p3 .471 .373 .336);--bronze-12: color(display-p3 .251 .191 .172);--bronze-a1: color(display-p3 .349 .024 .024 / .012);--bronze-a2: color(display-p3 .71 .22 .024 / .04);--bronze-a3: color(display-p3 .482 .2 .008 / .083);--bronze-a4: color(display-p3 .424 .133 .004 / .122);--bronze-a5: color(display-p3 .4 .145 .004 / .169);--bronze-a6: color(display-p3 .388 .125 .004 / .224);--bronze-a7: color(display-p3 .365 .11 .004 / .295);--bronze-a8: color(display-p3 .341 .102 .004 / .393);--bronze-a9: color(display-p3 .29 .094 0 / .546);--bronze-a10: color(display-p3 .255 .082 0 / .585);--bronze-a11: color(display-p3 .471 .373 .336);--bronze-a12: color(display-p3 .251 .191 .172);--brown-1: color(display-p3 .995 .992 .989);--brown-2: color(display-p3 .987 .976 .964);--brown-3: color(display-p3 .959 .936 .909);--brown-4: color(display-p3 .934 .897 .855);--brown-5: color(display-p3 .909 .856 .798);--brown-6: color(display-p3 .88 .808 .73);--brown-7: color(display-p3 .841 .742 .639);--brown-8: color(display-p3 .782 .647 .514);--brown-9: color(display-p3 .651 .505 .368);--brown-10: color(display-p3 .601 .465 .344);--brown-11: color(display-p3 .485 .374 .288);--brown-12: color(display-p3 .236 .202 .183);--brown-a1: color(display-p3 .675 .349 .024 / .012);--brown-a2: color(display-p3 .675 .349 .024 / .036);--brown-a3: color(display-p3 .573 .314 .012 / .091);--brown-a4: color(display-p3 .545 .302 .008 / .146);--brown-a5: color(display-p3 .561 .29 .004 / .204);--brown-a6: color(display-p3 .553 .294 .004 / .271);--brown-a7: color(display-p3 .557 .286 .004 / .361);--brown-a8: color(display-p3 .549 .275 .004 / .487);--brown-a9: color(display-p3 .447 .22 0 / .632);--brown-a10: color(display-p3 .388 .188 0 / .655);--brown-a11: color(display-p3 .485 .374 .288);--brown-a12: color(display-p3 .236 .202 .183);--crimson-1: color(display-p3 .998 .989 .992);--crimson-2: color(display-p3 .991 .969 .976);--crimson-3: color(display-p3 .987 .917 .941);--crimson-4: color(display-p3 .975 .866 .904);--crimson-5: color(display-p3 .953 .813 .864);--crimson-6: color(display-p3 .921 .755 .817);--crimson-7: color(display-p3 .88 .683 .761);--crimson-8: color(display-p3 .834 .592 .694);--crimson-9: color(display-p3 .843 .298 .507);--crimson-10: color(display-p3 .807 .266 .468);--crimson-11: color(display-p3 .731 .195 .388);--crimson-12: color(display-p3 .352 .111 .221);--crimson-a1: color(display-p3 .675 .024 .349 / .012);--crimson-a2: color(display-p3 .757 .02 .267 / .032);--crimson-a3: color(display-p3 .859 .008 .294 / .083);--crimson-a4: color(display-p3 .827 .008 .298 / .134);--crimson-a5: color(display-p3 .753 .008 .275 / .189);--crimson-a6: color(display-p3 .682 .004 .247 / .244);--crimson-a7: color(display-p3 .62 .004 .251 / .318);--crimson-a8: color(display-p3 .6 .004 .251 / .408);--crimson-a9: color(display-p3 .776 0 .298 / .702);--crimson-a10: color(display-p3 .737 0 .275 / .734);--crimson-a11: color(display-p3 .731 .195 .388);--crimson-a12: color(display-p3 .352 .111 .221);--cyan-1: color(display-p3 .982 .992 .996);--cyan-2: color(display-p3 .955 .981 .984);--cyan-3: color(display-p3 .888 .965 .975);--cyan-4: color(display-p3 .821 .941 .959);--cyan-5: color(display-p3 .751 .907 .935);--cyan-6: color(display-p3 .671 .862 .9);--cyan-7: color(display-p3 .564 .8 .854);--cyan-8: color(display-p3 .388 .715 .798);--cyan-9: color(display-p3 .282 .627 .765);--cyan-10: color(display-p3 .264 .583 .71);--cyan-11: color(display-p3 .08 .48 .63);--cyan-12: color(display-p3 .108 .232 .277);--cyan-a1: color(display-p3 .02 .608 .804 / .02);--cyan-a2: color(display-p3 .02 .557 .647 / .044);--cyan-a3: color(display-p3 .004 .694 .796 / .114);--cyan-a4: color(display-p3 .004 .678 .784 / .181);--cyan-a5: color(display-p3 .004 .624 .733 / .248);--cyan-a6: color(display-p3 .004 .584 .706 / .33);--cyan-a7: color(display-p3 .004 .541 .667 / .436);--cyan-a8: color(display-p3 0 .533 .667 / .612);--cyan-a9: color(display-p3 0 .482 .675 / .718);--cyan-a10: color(display-p3 0 .435 .608 / .738);--cyan-a11: color(display-p3 .08 .48 .63);--cyan-a12: color(display-p3 .108 .232 .277);--gold-1: color(display-p3 .992 .992 .989);--gold-2: color(display-p3 .98 .976 .953);--gold-3: color(display-p3 .947 .94 .909);--gold-4: color(display-p3 .914 .904 .865);--gold-5: color(display-p3 .88 .865 .816);--gold-6: color(display-p3 .84 .818 .756);--gold-7: color(display-p3 .788 .753 .677);--gold-8: color(display-p3 .715 .66 .565);--gold-9: color(display-p3 .579 .517 .41);--gold-10: color(display-p3 .538 .479 .38);--gold-11: color(display-p3 .433 .386 .305);--gold-12: color(display-p3 .227 .209 .173);--gold-a1: color(display-p3 .349 .349 .024 / .012);--gold-a2: color(display-p3 .592 .514 .024 / .048);--gold-a3: color(display-p3 .4 .357 .012 / .091);--gold-a4: color(display-p3 .357 .298 .008 / .134);--gold-a5: color(display-p3 .345 .282 .004 / .185);--gold-a6: color(display-p3 .341 .263 .004 / .244);--gold-a7: color(display-p3 .345 .235 .004 / .322);--gold-a8: color(display-p3 .345 .22 .004 / .436);--gold-a9: color(display-p3 .286 .18 0 / .589);--gold-a10: color(display-p3 .255 .161 0 / .62);--gold-a11: color(display-p3 .433 .386 .305);--gold-a12: color(display-p3 .227 .209 .173);--grass-1: color(display-p3 .986 .996 .985);--grass-2: color(display-p3 .966 .983 .964);--grass-3: color(display-p3 .923 .965 .917);--grass-4: color(display-p3 .872 .94 .865);--grass-5: color(display-p3 .811 .908 .802);--grass-6: color(display-p3 .733 .864 .724);--grass-7: color(display-p3 .628 .803 .622);--grass-8: color(display-p3 .477 .72 .482);--grass-9: color(display-p3 .38 .647 .378);--grass-10: color(display-p3 .344 .598 .342);--grass-11: color(display-p3 .263 .488 .261);--grass-12: color(display-p3 .151 .233 .153);--grass-a1: color(display-p3 .024 .757 .024 / .016);--grass-a2: color(display-p3 .024 .565 .024 / .036);--grass-a3: color(display-p3 .059 .576 .008 / .083);--grass-a4: color(display-p3 .035 .565 .008 / .134);--grass-a5: color(display-p3 .047 .545 .008 / .197);--grass-a6: color(display-p3 .031 .502 .004 / .275);--grass-a7: color(display-p3 .012 .482 .004 / .377);--grass-a8: color(display-p3 0 .467 .008 / .522);--grass-a9: color(display-p3 .008 .435 0 / .624);--grass-a10: color(display-p3 .008 .388 0 / .659);--grass-a11: color(display-p3 .263 .488 .261);--grass-a12: color(display-p3 .151 .233 .153);--green-1: color(display-p3 .986 .996 .989);--green-2: color(display-p3 .963 .983 .967);--green-3: color(display-p3 .913 .964 .925);--green-4: color(display-p3 .859 .94 .879);--green-5: color(display-p3 .796 .907 .826);--green-6: color(display-p3 .718 .863 .761);--green-7: color(display-p3 .61 .801 .675);--green-8: color(display-p3 .451 .715 .559);--green-9: color(display-p3 .332 .634 .442);--green-10: color(display-p3 .308 .595 .417);--green-11: color(display-p3 .19 .5 .32);--green-12: color(display-p3 .132 .228 .18);--green-a1: color(display-p3 .024 .757 .267 / .016);--green-a2: color(display-p3 .024 .565 .129 / .036);--green-a3: color(display-p3 .012 .596 .145 / .087);--green-a4: color(display-p3 .008 .588 .145 / .142);--green-a5: color(display-p3 .004 .541 .157 / .204);--green-a6: color(display-p3 .004 .518 .157 / .283);--green-a7: color(display-p3 .004 .486 .165 / .389);--green-a8: color(display-p3 0 .478 .2 / .55);--green-a9: color(display-p3 0 .455 .165 / .667);--green-a10: color(display-p3 0 .416 .153 / .691);--green-a11: color(display-p3 .19 .5 .32);--green-a12: color(display-p3 .132 .228 .18);--indigo-1: color(display-p3 .992 .992 .996);--indigo-2: color(display-p3 .971 .977 .998);--indigo-3: color(display-p3 .933 .948 .992);--indigo-4: color(display-p3 .885 .914 1);--indigo-5: color(display-p3 .831 .87 1);--indigo-6: color(display-p3 .767 .814 .995);--indigo-7: color(display-p3 .685 .74 .957);--indigo-8: color(display-p3 .569 .639 .916);--indigo-9: color(display-p3 .276 .384 .837);--indigo-10: color(display-p3 .234 .343 .801);--indigo-11: color(display-p3 .256 .354 .755);--indigo-12: color(display-p3 .133 .175 .348);--indigo-a1: color(display-p3 .02 .02 .51 / .008);--indigo-a2: color(display-p3 .024 .161 .863 / .028);--indigo-a3: color(display-p3 .008 .239 .886 / .067);--indigo-a4: color(display-p3 .004 .247 1 / .114);--indigo-a5: color(display-p3 .004 .235 1 / .169);--indigo-a6: color(display-p3 .004 .208 .984 / .232);--indigo-a7: color(display-p3 .004 .176 .863 / .314);--indigo-a8: color(display-p3 .004 .165 .812 / .432);--indigo-a9: color(display-p3 0 .153 .773 / .726);--indigo-a10: color(display-p3 0 .137 .737 / .765);--indigo-a11: color(display-p3 .256 .354 .755);--indigo-a12: color(display-p3 .133 .175 .348);--iris-1: color(display-p3 .992 .992 .999);--iris-2: color(display-p3 .972 .973 .998);--iris-3: color(display-p3 .943 .945 .992);--iris-4: color(display-p3 .902 .906 1);--iris-5: color(display-p3 .857 .861 1);--iris-6: color(display-p3 .799 .805 .987);--iris-7: color(display-p3 .721 .727 .955);--iris-8: color(display-p3 .61 .619 .918);--iris-9: color(display-p3 .357 .357 .81);--iris-10: color(display-p3 .318 .318 .774);--iris-11: color(display-p3 .337 .326 .748);--iris-12: color(display-p3 .154 .161 .371);--iris-a1: color(display-p3 .02 .02 1 / .008);--iris-a2: color(display-p3 .024 .024 .863 / .028);--iris-a3: color(display-p3 .004 .071 .871 / .059);--iris-a4: color(display-p3 .012 .051 1 / .099);--iris-a5: color(display-p3 .008 .035 1 / .142);--iris-a6: color(display-p3 0 .02 .941 / .2);--iris-a7: color(display-p3 .004 .02 .847 / .279);--iris-a8: color(display-p3 .004 .024 .788 / .389);--iris-a9: color(display-p3 0 0 .706 / .644);--iris-a10: color(display-p3 0 0 .667 / .683);--iris-a11: color(display-p3 .337 .326 .748);--iris-a12: color(display-p3 .154 .161 .371);--jade-1: color(display-p3 .986 .996 .992);--jade-2: color(display-p3 .962 .983 .969);--jade-3: color(display-p3 .912 .965 .932);--jade-4: color(display-p3 .858 .941 .893);--jade-5: color(display-p3 .795 .909 .847);--jade-6: color(display-p3 .715 .864 .791);--jade-7: color(display-p3 .603 .802 .718);--jade-8: color(display-p3 .44 .72 .629);--jade-9: color(display-p3 .319 .63 .521);--jade-10: color(display-p3 .299 .592 .488);--jade-11: color(display-p3 .15 .5 .37);--jade-12: color(display-p3 .142 .229 .194);--jade-a1: color(display-p3 .024 .757 .514 / .016);--jade-a2: color(display-p3 .024 .612 .22 / .04);--jade-a3: color(display-p3 .012 .596 .235 / .087);--jade-a4: color(display-p3 .008 .588 .255 / .142);--jade-a5: color(display-p3 .004 .561 .251 / .204);--jade-a6: color(display-p3 .004 .525 .278 / .287);--jade-a7: color(display-p3 .004 .506 .29 / .397);--jade-a8: color(display-p3 0 .506 .337 / .561);--jade-a9: color(display-p3 0 .459 .298 / .683);--jade-a10: color(display-p3 0 .42 .271 / .702);--jade-a11: color(display-p3 .15 .5 .37);--jade-a12: color(display-p3 .142 .229 .194);--lime-1: color(display-p3 .989 .992 .981);--lime-2: color(display-p3 .975 .98 .954);--lime-3: color(display-p3 .939 .965 .851);--lime-4: color(display-p3 .896 .94 .76);--lime-5: color(display-p3 .843 .903 .678);--lime-6: color(display-p3 .778 .852 .599);--lime-7: color(display-p3 .694 .784 .508);--lime-8: color(display-p3 .585 .707 .378);--lime-9: color(display-p3 .78 .928 .466);--lime-10: color(display-p3 .734 .896 .397);--lime-11: color(display-p3 .386 .482 .227);--lime-12: color(display-p3 .222 .25 .128);--lime-a1: color(display-p3 .412 .608 .02 / .02);--lime-a2: color(display-p3 .514 .592 .024 / .048);--lime-a3: color(display-p3 .584 .765 .008 / .15);--lime-a4: color(display-p3 .561 .757 .004 / .24);--lime-a5: color(display-p3 .514 .698 .004 / .322);--lime-a6: color(display-p3 .443 .627 0 / .4);--lime-a7: color(display-p3 .376 .561 .004 / .491);--lime-a8: color(display-p3 .333 .529 0 / .624);--lime-a9: color(display-p3 .588 .867 0 / .534);--lime-a10: color(display-p3 .561 .827 0 / .604);--lime-a11: color(display-p3 .386 .482 .227);--lime-a12: color(display-p3 .222 .25 .128);--mint-1: color(display-p3 .98 .995 .992);--mint-2: color(display-p3 .957 .985 .977);--mint-3: color(display-p3 .888 .972 .95);--mint-4: color(display-p3 .819 .951 .916);--mint-5: color(display-p3 .747 .918 .873);--mint-6: color(display-p3 .668 .87 .818);--mint-7: color(display-p3 .567 .805 .744);--mint-8: color(display-p3 .42 .724 .649);--mint-9: color(display-p3 .62 .908 .834);--mint-10: color(display-p3 .585 .871 .797);--mint-11: color(display-p3 .203 .463 .397);--mint-12: color(display-p3 .136 .259 .236);--mint-a1: color(display-p3 .02 .804 .608 / .02);--mint-a2: color(display-p3 .02 .647 .467 / .044);--mint-a3: color(display-p3 .004 .761 .553 / .114);--mint-a4: color(display-p3 .004 .741 .545 / .181);--mint-a5: color(display-p3 .004 .678 .51 / .255);--mint-a6: color(display-p3 .004 .616 .463 / .334);--mint-a7: color(display-p3 .004 .549 .412 / .432);--mint-a8: color(display-p3 0 .529 .392 / .581);--mint-a9: color(display-p3 .004 .765 .569 / .381);--mint-a10: color(display-p3 .004 .69 .51 / .416);--mint-a11: color(display-p3 .203 .463 .397);--mint-a12: color(display-p3 .136 .259 .236);--orange-1: color(display-p3 .995 .988 .985);--orange-2: color(display-p3 .994 .968 .934);--orange-3: color(display-p3 .989 .938 .85);--orange-4: color(display-p3 1 .874 .687);--orange-5: color(display-p3 1 .821 .583);--orange-6: color(display-p3 .975 .767 .545);--orange-7: color(display-p3 .919 .693 .486);--orange-8: color(display-p3 .877 .597 .379);--orange-9: color(display-p3 .9 .45 .2);--orange-10: color(display-p3 .87 .409 .164);--orange-11: color(display-p3 .76 .34 0);--orange-12: color(display-p3 .323 .185 .127);--orange-a1: color(display-p3 .757 .267 .024 / .016);--orange-a2: color(display-p3 .886 .533 .008 / .067);--orange-a3: color(display-p3 .922 .584 .008 / .15);--orange-a4: color(display-p3 1 .604 .004 / .314);--orange-a5: color(display-p3 1 .569 .004 / .416);--orange-a6: color(display-p3 .949 .494 .004 / .455);--orange-a7: color(display-p3 .839 .408 0 / .514);--orange-a8: color(display-p3 .804 .349 0 / .62);--orange-a9: color(display-p3 .878 .314 0 / .8);--orange-a10: color(display-p3 .843 .29 0 / .836);--orange-a11: color(display-p3 .76 .34 0);--orange-a12: color(display-p3 .323 .185 .127);--pink-1: color(display-p3 .998 .989 .996);--pink-2: color(display-p3 .992 .97 .985);--pink-3: color(display-p3 .981 .917 .96);--pink-4: color(display-p3 .963 .867 .932);--pink-5: color(display-p3 .939 .815 .899);--pink-6: color(display-p3 .907 .756 .859);--pink-7: color(display-p3 .869 .683 .81);--pink-8: color(display-p3 .825 .59 .751);--pink-9: color(display-p3 .775 .297 .61);--pink-10: color(display-p3 .748 .27 .581);--pink-11: color(display-p3 .698 .219 .528);--pink-12: color(display-p3 .363 .101 .279);--pink-a1: color(display-p3 .675 .024 .675 / .012);--pink-a2: color(display-p3 .757 .02 .51 / .032);--pink-a3: color(display-p3 .765 .008 .529 / .083);--pink-a4: color(display-p3 .737 .008 .506 / .134);--pink-a5: color(display-p3 .663 .004 .451 / .185);--pink-a6: color(display-p3 .616 .004 .424 / .244);--pink-a7: color(display-p3 .596 .004 .412 / .318);--pink-a8: color(display-p3 .573 .004 .404 / .412);--pink-a9: color(display-p3 .682 0 .447 / .702);--pink-a10: color(display-p3 .655 0 .424 / .73);--pink-a11: color(display-p3 .698 .219 .528);--pink-a12: color(display-p3 .363 .101 .279);--plum-1: color(display-p3 .995 .988 .999);--plum-2: color(display-p3 .988 .971 .99);--plum-3: color(display-p3 .973 .923 .98);--plum-4: color(display-p3 .953 .875 .966);--plum-5: color(display-p3 .926 .825 .945);--plum-6: color(display-p3 .89 .765 .916);--plum-7: color(display-p3 .84 .686 .877);--plum-8: color(display-p3 .775 .58 .832);--plum-9: color(display-p3 .624 .313 .708);--plum-10: color(display-p3 .587 .29 .667);--plum-11: color(display-p3 .543 .263 .619);--plum-12: color(display-p3 .299 .114 .352);--plum-a1: color(display-p3 .675 .024 1 / .012);--plum-a2: color(display-p3 .58 .024 .58 / .028);--plum-a3: color(display-p3 .655 .008 .753 / .079);--plum-a4: color(display-p3 .627 .008 .722 / .126);--plum-a5: color(display-p3 .58 .004 .69 / .177);--plum-a6: color(display-p3 .537 .004 .655 / .236);--plum-a7: color(display-p3 .49 .004 .616 / .314);--plum-a8: color(display-p3 .471 .004 .6 / .42);--plum-a9: color(display-p3 .451 0 .576 / .687);--plum-a10: color(display-p3 .42 0 .529 / .71);--plum-a11: color(display-p3 .543 .263 .619);--plum-a12: color(display-p3 .299 .114 .352);--purple-1: color(display-p3 .995 .988 .996);--purple-2: color(display-p3 .983 .971 .993);--purple-3: color(display-p3 .963 .931 .989);--purple-4: color(display-p3 .937 .888 .981);--purple-5: color(display-p3 .904 .837 .966);--purple-6: color(display-p3 .86 .774 .942);--purple-7: color(display-p3 .799 .69 .91);--purple-8: color(display-p3 .719 .583 .874);--purple-9: color(display-p3 .523 .318 .751);--purple-10: color(display-p3 .483 .289 .7);--purple-11: color(display-p3 .473 .281 .687);--purple-12: color(display-p3 .234 .132 .363);--purple-a1: color(display-p3 .675 .024 .675 / .012);--purple-a2: color(display-p3 .443 .024 .722 / .028);--purple-a3: color(display-p3 .506 .008 .835 / .071);--purple-a4: color(display-p3 .451 .004 .831 / .114);--purple-a5: color(display-p3 .431 .004 .788 / .165);--purple-a6: color(display-p3 .384 .004 .745 / .228);--purple-a7: color(display-p3 .357 .004 .71 / .31);--purple-a8: color(display-p3 .322 .004 .702 / .416);--purple-a9: color(display-p3 .298 0 .639 / .683);--purple-a10: color(display-p3 .271 0 .58 / .71);--purple-a11: color(display-p3 .473 .281 .687);--purple-a12: color(display-p3 .234 .132 .363);--red-1: color(display-p3 .998 .989 .988);--red-2: color(display-p3 .995 .971 .971);--red-3: color(display-p3 .985 .925 .925);--red-4: color(display-p3 .999 .866 .866);--red-5: color(display-p3 .984 .812 .811);--red-6: color(display-p3 .955 .751 .749);--red-7: color(display-p3 .915 .675 .672);--red-8: color(display-p3 .872 .575 .572);--red-9: color(display-p3 .83 .329 .324);--red-10: color(display-p3 .798 .294 .285);--red-11: color(display-p3 .744 .234 .222);--red-12: color(display-p3 .36 .115 .143);--red-a1: color(display-p3 .675 .024 .024 / .012);--red-a2: color(display-p3 .863 .024 .024 / .028);--red-a3: color(display-p3 .792 .008 .008 / .075);--red-a4: color(display-p3 1 .008 .008 / .134);--red-a5: color(display-p3 .918 .008 .008 / .189);--red-a6: color(display-p3 .831 .02 .004 / .251);--red-a7: color(display-p3 .741 .016 .004 / .33);--red-a8: color(display-p3 .698 .012 .004 / .428);--red-a9: color(display-p3 .749 .008 0 / .675);--red-a10: color(display-p3 .714 .012 0 / .714);--red-a11: color(display-p3 .744 .234 .222);--red-a12: color(display-p3 .36 .115 .143);--ruby-1: color(display-p3 .998 .989 .992);--ruby-2: color(display-p3 .995 .971 .974);--ruby-3: color(display-p3 .983 .92 .928);--ruby-4: color(display-p3 .987 .869 .885);--ruby-5: color(display-p3 .968 .817 .839);--ruby-6: color(display-p3 .937 .758 .786);--ruby-7: color(display-p3 .897 .685 .721);--ruby-8: color(display-p3 .851 .588 .639);--ruby-9: color(display-p3 .83 .323 .408);--ruby-10: color(display-p3 .795 .286 .375);--ruby-11: color(display-p3 .728 .211 .311);--ruby-12: color(display-p3 .36 .115 .171);--ruby-a1: color(display-p3 .675 .024 .349 / .012);--ruby-a2: color(display-p3 .863 .024 .024 / .028);--ruby-a3: color(display-p3 .804 .008 .11 / .079);--ruby-a4: color(display-p3 .91 .008 .125 / .13);--ruby-a5: color(display-p3 .831 .004 .133 / .185);--ruby-a6: color(display-p3 .745 .004 .118 / .244);--ruby-a7: color(display-p3 .678 .004 .114 / .314);--ruby-a8: color(display-p3 .639 .004 .125 / .412);--ruby-a9: color(display-p3 .753 0 .129 / .679);--ruby-a10: color(display-p3 .714 0 .125 / .714);--ruby-a11: color(display-p3 .728 .211 .311);--ruby-a12: color(display-p3 .36 .115 .171);--sky-1: color(display-p3 .98 .995 .999);--sky-2: color(display-p3 .953 .98 .99);--sky-3: color(display-p3 .899 .963 .989);--sky-4: color(display-p3 .842 .937 .977);--sky-5: color(display-p3 .777 .9 .954);--sky-6: color(display-p3 .701 .851 .921);--sky-7: color(display-p3 .604 .785 .879);--sky-8: color(display-p3 .457 .696 .829);--sky-9: color(display-p3 .585 .877 .983);--sky-10: color(display-p3 .555 .845 .959);--sky-11: color(display-p3 .193 .448 .605);--sky-12: color(display-p3 .145 .241 .329);--sky-a1: color(display-p3 .02 .804 1 / .02);--sky-a2: color(display-p3 .024 .592 .757 / .048);--sky-a3: color(display-p3 .004 .655 .886 / .102);--sky-a4: color(display-p3 .004 .604 .851 / .157);--sky-a5: color(display-p3 .004 .565 .792 / .224);--sky-a6: color(display-p3 .004 .502 .737 / .299);--sky-a7: color(display-p3 .004 .459 .694 / .397);--sky-a8: color(display-p3 0 .435 .682 / .542);--sky-a9: color(display-p3 .004 .71 .965 / .416);--sky-a10: color(display-p3 .004 .647 .914 / .444);--sky-a11: color(display-p3 .193 .448 .605);--sky-a12: color(display-p3 .145 .241 .329);--teal-1: color(display-p3 .983 .996 .992);--teal-2: color(display-p3 .958 .983 .976);--teal-3: color(display-p3 .895 .971 .952);--teal-4: color(display-p3 .831 .949 .92);--teal-5: color(display-p3 .761 .914 .878);--teal-6: color(display-p3 .682 .864 .825);--teal-7: color(display-p3 .581 .798 .756);--teal-8: color(display-p3 .433 .716 .671);--teal-9: color(display-p3 .297 .637 .581);--teal-10: color(display-p3 .275 .599 .542);--teal-11: color(display-p3 .08 .5 .43);--teal-12: color(display-p3 .11 .235 .219);--teal-a1: color(display-p3 .024 .757 .514 / .016);--teal-a2: color(display-p3 .02 .647 .467 / .044);--teal-a3: color(display-p3 .004 .741 .557 / .106);--teal-a4: color(display-p3 .004 .702 .537 / .169);--teal-a5: color(display-p3 .004 .643 .494 / .24);--teal-a6: color(display-p3 .004 .569 .447 / .318);--teal-a7: color(display-p3 .004 .518 .424 / .42);--teal-a8: color(display-p3 0 .506 .424 / .569);--teal-a9: color(display-p3 0 .482 .404 / .702);--teal-a10: color(display-p3 0 .451 .369 / .726);--teal-a11: color(display-p3 .08 .5 .43);--teal-a12: color(display-p3 .11 .235 .219);--tomato-1: color(display-p3 .998 .989 .988);--tomato-2: color(display-p3 .994 .974 .969);--tomato-3: color(display-p3 .985 .924 .909);--tomato-4: color(display-p3 .996 .868 .835);--tomato-5: color(display-p3 .98 .812 .77);--tomato-6: color(display-p3 .953 .75 .698);--tomato-7: color(display-p3 .917 .673 .611);--tomato-8: color(display-p3 .875 .575 .502);--tomato-9: color(display-p3 .831 .345 .231);--tomato-10: color(display-p3 .802 .313 .2);--tomato-11: color(display-p3 .755 .259 .152);--tomato-12: color(display-p3 .335 .165 .132);--tomato-a1: color(display-p3 .675 .024 .024 / .012);--tomato-a2: color(display-p3 .757 .145 .02 / .032);--tomato-a3: color(display-p3 .831 .184 .012 / .091);--tomato-a4: color(display-p3 .976 .192 .004 / .165);--tomato-a5: color(display-p3 .918 .192 .004 / .232);--tomato-a6: color(display-p3 .847 .173 .004 / .302);--tomato-a7: color(display-p3 .788 .165 .004 / .389);--tomato-a8: color(display-p3 .749 .153 .004 / .499);--tomato-a9: color(display-p3 .78 .149 0 / .769);--tomato-a10: color(display-p3 .757 .141 0 / .8);--tomato-a11: color(display-p3 .755 .259 .152);--tomato-a12: color(display-p3 .335 .165 .132);--violet-1: color(display-p3 .991 .988 .995);--violet-2: color(display-p3 .978 .974 .998);--violet-3: color(display-p3 .953 .943 .993);--violet-4: color(display-p3 .916 .897 1);--violet-5: color(display-p3 .876 .851 1);--violet-6: color(display-p3 .825 .793 .981);--violet-7: color(display-p3 .752 .712 .943);--violet-8: color(display-p3 .654 .602 .902);--violet-9: color(display-p3 .417 .341 .784);--violet-10: color(display-p3 .381 .306 .741);--violet-11: color(display-p3 .383 .317 .702);--violet-12: color(display-p3 .179 .15 .359);--violet-a1: color(display-p3 .349 .024 .675 / .012);--violet-a2: color(display-p3 .161 .024 .863 / .028);--violet-a3: color(display-p3 .204 .004 .871 / .059);--violet-a4: color(display-p3 .196 .004 1 / .102);--violet-a5: color(display-p3 .165 .008 1 / .15);--violet-a6: color(display-p3 .153 .004 .906 / .208);--violet-a7: color(display-p3 .141 .004 .796 / .287);--violet-a8: color(display-p3 .133 .004 .753 / .397);--violet-a9: color(display-p3 .114 0 .675 / .659);--violet-a10: color(display-p3 .11 0 .627 / .695);--violet-a11: color(display-p3 .383 .317 .702);--violet-a12: color(display-p3 .179 .15 .359);--yellow-1: color(display-p3 .992 .992 .978);--yellow-2: color(display-p3 .995 .99 .922);--yellow-3: color(display-p3 .997 .982 .749);--yellow-4: color(display-p3 .992 .953 .627);--yellow-5: color(display-p3 .984 .91 .51);--yellow-6: color(display-p3 .934 .847 .474);--yellow-7: color(display-p3 .876 .785 .46);--yellow-8: color(display-p3 .811 .689 .313);--yellow-9: color(display-p3 1 .92 .22);--yellow-10: color(display-p3 .977 .868 .291);--yellow-11: color(display-p3 .6 .44 0);--yellow-12: color(display-p3 .271 .233 .137);--yellow-a1: color(display-p3 .675 .675 .024 / .024);--yellow-a2: color(display-p3 .953 .855 .008 / .079);--yellow-a3: color(display-p3 .988 .925 .004 / .251);--yellow-a4: color(display-p3 .98 .875 .004 / .373);--yellow-a5: color(display-p3 .969 .816 .004 / .491);--yellow-a6: color(display-p3 .875 .71 0 / .526);--yellow-a7: color(display-p3 .769 .604 0 / .542);--yellow-a8: color(display-p3 .725 .549 0 / .687);--yellow-a9: color(display-p3 1 .898 0 / .781);--yellow-a10: color(display-p3 .969 .812 0 / .71);--yellow-a11: color(display-p3 .6 .44 0);--yellow-a12: color(display-p3 .271 .233 .137);--gray-surface: color(display-p3 1 1 1 / .8);--mauve-surface: color(display-p3 1 1 1 / .8);--slate-surface: color(display-p3 1 1 1 / .8);--sage-surface: color(display-p3 1 1 1 / .8);--olive-surface: color(display-p3 1 1 1 / .8);--sand-surface: color(display-p3 1 1 1 / .8);--amber-surface: color(display-p3 .9922 .9843 .902 / .8);--blue-surface: color(display-p3 .9529 .9765 .9961 / .8);--bronze-surface: color(display-p3 .9843 .9608 .9529 / .8);--brown-surface: color(display-p3 .9843 .9725 .9569 / .8);--crimson-surface: color(display-p3 .9922 .9608 .9725 / .8);--cyan-surface: color(display-p3 .9412 .9765 .9804 / .8);--gold-surface: color(display-p3 .9765 .9725 .9412 / .8);--grass-surface: color(display-p3 .9569 .9804 .9569 / .8);--green-surface: color(display-p3 .9569 .9804 .9608 / .8);--indigo-surface: color(display-p3 .9647 .9725 .9961 / .8);--iris-surface: color(display-p3 .9647 .9647 .9961 / .8);--jade-surface: color(display-p3 .9529 .9804 .9608 / .8);--lime-surface: color(display-p3 .9725 .9765 .9412 / .8);--mint-surface: color(display-p3 .9451 .9804 .9725 / .8);--orange-surface: color(display-p3 .9961 .9608 .9176 / .8);--pink-surface: color(display-p3 .9922 .9608 .9804 / .8);--plum-surface: color(display-p3 .9843 .9647 .9843 / .8);--purple-surface: color(display-p3 .9804 .9647 .9922 / .8);--red-surface: color(display-p3 .9961 .9647 .9647 / .8);--ruby-surface: color(display-p3 .9961 .9647 .9647 / .8);--sky-surface: color(display-p3 .9412 .9765 .9843 / .8);--teal-surface: color(display-p3 .9451 .9804 .9725 / .8);--tomato-surface: color(display-p3 .9922 .9647 .9608 / .8);--violet-surface: color(display-p3 .9725 .9647 .9961 / .8);--yellow-surface: color(display-p3 .9961 .9922 .902 / .8)}}}.dark,.dark-theme{--gray-1: #111111;--gray-2: #191919;--gray-3: #222222;--gray-4: #2a2a2a;--gray-5: #313131;--gray-6: #3a3a3a;--gray-7: #484848;--gray-8: #606060;--gray-9: #6e6e6e;--gray-10: #7b7b7b;--gray-11: #b4b4b4;--gray-12: #eeeeee;--gray-a1: #00000000;--gray-a2: #ffffff09;--gray-a3: #ffffff12;--gray-a4: #ffffff1b;--gray-a5: #ffffff22;--gray-a6: #ffffff2c;--gray-a7: #ffffff3b;--gray-a8: #ffffff55;--gray-a9: #ffffff64;--gray-a10: #ffffff72;--gray-a11: #ffffffaf;--gray-a12: #ffffffed;--mauve-1: #121113;--mauve-2: #1a191b;--mauve-3: #232225;--mauve-4: #2b292d;--mauve-5: #323035;--mauve-6: #3c393f;--mauve-7: #49474e;--mauve-8: #625f69;--mauve-9: #6f6d78;--mauve-10: #7c7a85;--mauve-11: #b5b2bc;--mauve-12: #eeeef0;--mauve-a1: #00000000;--mauve-a2: #f5f4f609;--mauve-a3: #ebeaf814;--mauve-a4: #eee5f81d;--mauve-a5: #efe6fe25;--mauve-a6: #f1e6fd30;--mauve-a7: #eee9ff40;--mauve-a8: #eee7ff5d;--mauve-a9: #eae6fd6e;--mauve-a10: #ece9fd7c;--mauve-a11: #f5f1ffb7;--mauve-a12: #fdfdffef;--slate-1: #111113;--slate-2: #18191b;--slate-3: #212225;--slate-4: #272a2d;--slate-5: #2e3135;--slate-6: #363a3f;--slate-7: #43484e;--slate-8: #5a6169;--slate-9: #696e77;--slate-10: #777b84;--slate-11: #b0b4ba;--slate-12: #edeef0;--slate-a1: #00000000;--slate-a2: #d8f4f609;--slate-a3: #ddeaf814;--slate-a4: #d3edf81d;--slate-a5: #d9edfe25;--slate-a6: #d6ebfd30;--slate-a7: #d9edff40;--slate-a8: #d9edff5d;--slate-a9: #dfebfd6d;--slate-a10: #e5edfd7b;--slate-a11: #f1f7feb5;--slate-a12: #fcfdffef;--sage-1: #101211;--sage-2: #171918;--sage-3: #202221;--sage-4: #272a29;--sage-5: #2e3130;--sage-6: #373b39;--sage-7: #444947;--sage-8: #5b625f;--sage-9: #63706b;--sage-10: #717d79;--sage-11: #adb5b2;--sage-12: #eceeed;--sage-a1: #00000000;--sage-a2: #f0f2f108;--sage-a3: #f3f5f412;--sage-a4: #f2fefd1a;--sage-a5: #f1fbfa22;--sage-a6: #edfbf42d;--sage-a7: #edfcf73c;--sage-a8: #ebfdf657;--sage-a9: #dffdf266;--sage-a10: #e5fdf674;--sage-a11: #f4fefbb0;--sage-a12: #fdfffeed;--olive-1: #111210;--olive-2: #181917;--olive-3: #212220;--olive-4: #282a27;--olive-5: #2f312e;--olive-6: #383a36;--olive-7: #454843;--olive-8: #5c625b;--olive-9: #687066;--olive-10: #767d74;--olive-11: #afb5ad;--olive-12: #eceeec;--olive-a1: #00000000;--olive-a2: #f1f2f008;--olive-a3: #f4f5f312;--olive-a4: #f3fef21a;--olive-a5: #f2fbf122;--olive-a6: #f4faed2c;--olive-a7: #f2fced3b;--olive-a8: #edfdeb57;--olive-a9: #ebfde766;--olive-a10: #f0fdec74;--olive-a11: #f6fef4b0;--olive-a12: #fdfffded;--sand-1: #111110;--sand-2: #191918;--sand-3: #222221;--sand-4: #2a2a28;--sand-5: #31312e;--sand-6: #3b3a37;--sand-7: #494844;--sand-8: #62605b;--sand-9: #6f6d66;--sand-10: #7c7b74;--sand-11: #b5b3ad;--sand-12: #eeeeec;--sand-a1: #00000000;--sand-a2: #f4f4f309;--sand-a3: #f6f6f513;--sand-a4: #fefef31b;--sand-a5: #fbfbeb23;--sand-a6: #fffaed2d;--sand-a7: #fffbed3c;--sand-a8: #fff9eb57;--sand-a9: #fffae965;--sand-a10: #fffdee73;--sand-a11: #fffcf4b0;--sand-a12: #fffffded;--amber-1: #16120c;--amber-2: #1d180f;--amber-3: #302008;--amber-4: #3f2700;--amber-5: #4d3000;--amber-6: #5c3d05;--amber-7: #714f19;--amber-8: #8f6424;--amber-9: #ffc53d;--amber-10: #ffd60a;--amber-11: #ffca16;--amber-12: #ffe7b3;--amber-a1: #e63c0006;--amber-a2: #fd9b000d;--amber-a3: #fa820022;--amber-a4: #fc820032;--amber-a5: #fd8b0041;--amber-a6: #fd9b0051;--amber-a7: #ffab2567;--amber-a8: #ffae3587;--amber-a9: #ffc53d;--amber-a10: #ffd60a;--amber-a11: #ffca16;--amber-a12: #ffe7b3;--blue-1: #0d1520;--blue-2: #111927;--blue-3: #0d2847;--blue-4: #003362;--blue-5: #004074;--blue-6: #104d87;--blue-7: #205d9e;--blue-8: #2870bd;--blue-9: #0090ff;--blue-10: #3b9eff;--blue-11: #70b8ff;--blue-12: #c2e6ff;--blue-a1: #004df211;--blue-a2: #1166fb18;--blue-a3: #0077ff3a;--blue-a4: #0075ff57;--blue-a5: #0081fd6b;--blue-a6: #0f89fd7f;--blue-a7: #2a91fe98;--blue-a8: #3094feb9;--blue-a9: #0090ff;--blue-a10: #3b9eff;--blue-a11: #70b8ff;--blue-a12: #c2e6ff;--bronze-1: #141110;--bronze-2: #1c1917;--bronze-3: #262220;--bronze-4: #302a27;--bronze-5: #3b3330;--bronze-6: #493e3a;--bronze-7: #5a4c47;--bronze-8: #6f5f58;--bronze-9: #a18072;--bronze-10: #ae8c7e;--bronze-11: #d4b3a5;--bronze-12: #ede0d9;--bronze-a1: #d1110004;--bronze-a2: #fbbc910c;--bronze-a3: #faceb817;--bronze-a4: #facdb622;--bronze-a5: #ffd2c12d;--bronze-a6: #ffd1c03c;--bronze-a7: #fdd0c04f;--bronze-a8: #ffd6c565;--bronze-a9: #fec7b09b;--bronze-a10: #fecab5a9;--bronze-a11: #ffd7c6d1;--bronze-a12: #fff1e9ec;--brown-1: #12110f;--brown-2: #1c1816;--brown-3: #28211d;--brown-4: #322922;--brown-5: #3e3128;--brown-6: #4d3c2f;--brown-7: #614a39;--brown-8: #7c5f46;--brown-9: #ad7f58;--brown-10: #b88c67;--brown-11: #dbb594;--brown-12: #f2e1ca;--brown-a1: #91110002;--brown-a2: #fba67c0c;--brown-a3: #fcb58c19;--brown-a4: #fbbb8a24;--brown-a5: #fcb88931;--brown-a6: #fdba8741;--brown-a7: #ffbb8856;--brown-a8: #ffbe8773;--brown-a9: #feb87da8;--brown-a10: #ffc18cb3;--brown-a11: #fed1aad9;--brown-a12: #feecd4f2;--crimson-1: #191114;--crimson-2: #201318;--crimson-3: #381525;--crimson-4: #4d122f;--crimson-5: #5c1839;--crimson-6: #6d2545;--crimson-7: #873356;--crimson-8: #b0436e;--crimson-9: #e93d82;--crimson-10: #ee518a;--crimson-11: #ff92ad;--crimson-12: #fdd3e8;--crimson-a1: #f4126709;--crimson-a2: #f22f7a11;--crimson-a3: #fe2a8b2a;--crimson-a4: #fd158741;--crimson-a5: #fd278f51;--crimson-a6: #fe459763;--crimson-a7: #fd559b7f;--crimson-a8: #fe5b9bab;--crimson-a9: #fe418de8;--crimson-a10: #ff5693ed;--crimson-a11: #ff92ad;--crimson-a12: #ffd5eafd;--cyan-1: #0b161a;--cyan-2: #101b20;--cyan-3: #082c36;--cyan-4: #003848;--cyan-5: #004558;--cyan-6: #045468;--cyan-7: #12677e;--cyan-8: #11809c;--cyan-9: #00a2c7;--cyan-10: #23afd0;--cyan-11: #4ccce6;--cyan-12: #b6ecf7;--cyan-a1: #0091f70a;--cyan-a2: #02a7f211;--cyan-a3: #00befd28;--cyan-a4: #00baff3b;--cyan-a5: #00befd4d;--cyan-a6: #00c7fd5e;--cyan-a7: #14cdff75;--cyan-a8: #11cfff95;--cyan-a9: #00cfffc3;--cyan-a10: #28d6ffcd;--cyan-a11: #52e1fee5;--cyan-a12: #bbf3fef7;--gold-1: #121211;--gold-2: #1b1a17;--gold-3: #24231f;--gold-4: #2d2b26;--gold-5: #38352e;--gold-6: #444039;--gold-7: #544f46;--gold-8: #696256;--gold-9: #978365;--gold-10: #a39073;--gold-11: #cbb99f;--gold-12: #e8e2d9;--gold-a1: #91911102;--gold-a2: #f9e29d0b;--gold-a3: #f8ecbb15;--gold-a4: #ffeec41e;--gold-a5: #feecc22a;--gold-a6: #feebcb37;--gold-a7: #ffedcd48;--gold-a8: #fdeaca5f;--gold-a9: #ffdba690;--gold-a10: #fedfb09d;--gold-a11: #fee7c6c8;--gold-a12: #fef7ede7;--grass-1: #0e1511;--grass-2: #141a15;--grass-3: #1b2a1e;--grass-4: #1d3a24;--grass-5: #25482d;--grass-6: #2d5736;--grass-7: #366740;--grass-8: #3e7949;--grass-9: #46a758;--grass-10: #53b365;--grass-11: #71d083;--grass-12: #c2f0c2;--grass-a1: #00de1205;--grass-a2: #5ef7780a;--grass-a3: #70fe8c1b;--grass-a4: #57ff802c;--grass-a5: #68ff8b3b;--grass-a6: #71ff8f4b;--grass-a7: #77fd925d;--grass-a8: #77fd9070;--grass-a9: #65ff82a1;--grass-a10: #72ff8dae;--grass-a11: #89ff9fcd;--grass-a12: #ceffceef;--green-1: #0e1512;--green-2: #121b17;--green-3: #132d21;--green-4: #113b29;--green-5: #174933;--green-6: #20573e;--green-7: #28684a;--green-8: #2f7c57;--green-9: #30a46c;--green-10: #33b074;--green-11: #3dd68c;--green-12: #b1f1cb;--green-a1: #00de4505;--green-a2: #29f99d0b;--green-a3: #22ff991e;--green-a4: #11ff992d;--green-a5: #2bffa23c;--green-a6: #44ffaa4b;--green-a7: #50fdac5e;--green-a8: #54ffad73;--green-a9: #44ffa49e;--green-a10: #43fea4ab;--green-a11: #46fea5d4;--green-a12: #bbffd7f0;--indigo-1: #11131f;--indigo-2: #141726;--indigo-3: #182449;--indigo-4: #1d2e62;--indigo-5: #253974;--indigo-6: #304384;--indigo-7: #3a4f97;--indigo-8: #435db1;--indigo-9: #3e63dd;--indigo-10: #5472e4;--indigo-11: #9eb1ff;--indigo-12: #d6e1ff;--indigo-a1: #1133ff0f;--indigo-a2: #3354fa17;--indigo-a3: #2f62ff3c;--indigo-a4: #3566ff57;--indigo-a5: #4171fd6b;--indigo-a6: #5178fd7c;--indigo-a7: #5a7fff90;--indigo-a8: #5b81feac;--indigo-a9: #4671ffdb;--indigo-a10: #5c7efee3;--indigo-a11: #9eb1ff;--indigo-a12: #d6e1ff;--iris-1: #13131e;--iris-2: #171625;--iris-3: #202248;--iris-4: #262a65;--iris-5: #303374;--iris-6: #3d3e82;--iris-7: #4a4a95;--iris-8: #5958b1;--iris-9: #5b5bd6;--iris-10: #6e6ade;--iris-11: #b1a9ff;--iris-12: #e0dffe;--iris-a1: #3636fe0e;--iris-a2: #564bf916;--iris-a3: #525bff3b;--iris-a4: #4d58ff5a;--iris-a5: #5b62fd6b;--iris-a6: #6d6ffd7a;--iris-a7: #7777fe8e;--iris-a8: #7b7afeac;--iris-a9: #6a6afed4;--iris-a10: #7d79ffdc;--iris-a11: #b1a9ff;--iris-a12: #e1e0fffe;--jade-1: #0d1512;--jade-2: #121c18;--jade-3: #0f2e22;--jade-4: #0b3b2c;--jade-5: #114837;--jade-6: #1b5745;--jade-7: #246854;--jade-8: #2a7e68;--jade-9: #29a383;--jade-10: #27b08b;--jade-11: #1fd8a4;--jade-12: #adf0d4;--jade-a1: #00de4505;--jade-a2: #27fba60c;--jade-a3: #02f99920;--jade-a4: #00ffaa2d;--jade-a5: #11ffb63b;--jade-a6: #34ffc24b;--jade-a7: #45fdc75e;--jade-a8: #48ffcf75;--jade-a9: #38feca9d;--jade-a10: #31fec7ab;--jade-a11: #21fec0d6;--jade-a12: #b8ffe1ef;--lime-1: #11130c;--lime-2: #151a10;--lime-3: #1f2917;--lime-4: #29371d;--lime-5: #334423;--lime-6: #3d522a;--lime-7: #496231;--lime-8: #577538;--lime-9: #bdee63;--lime-10: #d4ff70;--lime-11: #bde56c;--lime-12: #e3f7ba;--lime-a1: #11bb0003;--lime-a2: #78f7000a;--lime-a3: #9bfd4c1a;--lime-a4: #a7fe5c29;--lime-a5: #affe6537;--lime-a6: #b2fe6d46;--lime-a7: #b6ff6f57;--lime-a8: #b6fd6d6c;--lime-a9: #caff69ed;--lime-a10: #d4ff70;--lime-a11: #d1fe77e4;--lime-a12: #e9febff7;--mint-1: #0e1515;--mint-2: #0f1b1b;--mint-3: #092c2b;--mint-4: #003a38;--mint-5: #004744;--mint-6: #105650;--mint-7: #1e685f;--mint-8: #277f70;--mint-9: #86ead4;--mint-10: #a8f5e5;--mint-11: #58d5ba;--mint-12: #c4f5e1;--mint-a1: #00dede05;--mint-a2: #00f9f90b;--mint-a3: #00fff61d;--mint-a4: #00fff42c;--mint-a5: #00fff23a;--mint-a6: #0effeb4a;--mint-a7: #34fde55e;--mint-a8: #41ffdf76;--mint-a9: #92ffe7e9;--mint-a10: #aefeedf5;--mint-a11: #67ffded2;--mint-a12: #cbfee9f5;--orange-1: #17120e;--orange-2: #1e160f;--orange-3: #331e0b;--orange-4: #462100;--orange-5: #562800;--orange-6: #66350c;--orange-7: #7e451d;--orange-8: #a35829;--orange-9: #f76b15;--orange-10: #ff801f;--orange-11: #ffa057;--orange-12: #ffe0c2;--orange-a1: #ec360007;--orange-a2: #fe6d000e;--orange-a3: #fb6a0025;--orange-a4: #ff590039;--orange-a5: #ff61004a;--orange-a6: #fd75045c;--orange-a7: #ff832c75;--orange-a8: #fe84389d;--orange-a9: #fe6d15f7;--orange-a10: #ff801f;--orange-a11: #ffa057;--orange-a12: #ffe0c2;--pink-1: #191117;--pink-2: #21121d;--pink-3: #37172f;--pink-4: #4b143d;--pink-5: #591c47;--pink-6: #692955;--pink-7: #833869;--pink-8: #a84885;--pink-9: #d6409f;--pink-10: #de51a8;--pink-11: #ff8dcc;--pink-12: #fdd1ea;--pink-a1: #f412bc09;--pink-a2: #f420bb12;--pink-a3: #fe37cc29;--pink-a4: #fc1ec43f;--pink-a5: #fd35c24e;--pink-a6: #fd51c75f;--pink-a7: #fd62c87b;--pink-a8: #ff68c8a2;--pink-a9: #fe49bcd4;--pink-a10: #ff5cc0dc;--pink-a11: #ff8dcc;--pink-a12: #ffd3ecfd;--plum-1: #181118;--plum-2: #201320;--plum-3: #351a35;--plum-4: #451d47;--plum-5: #512454;--plum-6: #5e3061;--plum-7: #734079;--plum-8: #92549c;--plum-9: #ab4aba;--plum-10: #b658c4;--plum-11: #e796f3;--plum-12: #f4d4f4;--plum-a1: #f112f108;--plum-a2: #f22ff211;--plum-a3: #fd4cfd27;--plum-a4: #f646ff3a;--plum-a5: #f455ff48;--plum-a6: #f66dff56;--plum-a7: #f07cfd70;--plum-a8: #ee84ff95;--plum-a9: #e961feb6;--plum-a10: #ed70ffc0;--plum-a11: #f19cfef3;--plum-a12: #feddfef4;--purple-1: #18111b;--purple-2: #1e1523;--purple-3: #301c3b;--purple-4: #3d224e;--purple-5: #48295c;--purple-6: #54346b;--purple-7: #664282;--purple-8: #8457aa;--purple-9: #8e4ec6;--purple-10: #9a5cd0;--purple-11: #d19dff;--purple-12: #ecd9fa;--purple-a1: #b412f90b;--purple-a2: #b744f714;--purple-a3: #c150ff2d;--purple-a4: #bb53fd42;--purple-a5: #be5cfd51;--purple-a6: #c16dfd61;--purple-a7: #c378fd7a;--purple-a8: #c47effa4;--purple-a9: #b661ffc2;--purple-a10: #bc6fffcd;--purple-a11: #d19dff;--purple-a12: #f1ddfffa;--red-1: #191111;--red-2: #201314;--red-3: #3b1219;--red-4: #500f1c;--red-5: #611623;--red-6: #72232d;--red-7: #8c333a;--red-8: #b54548;--red-9: #e5484d;--red-10: #ec5d5e;--red-11: #ff9592;--red-12: #ffd1d9;--red-a1: #f4121209;--red-a2: #f22f3e11;--red-a3: #ff173f2d;--red-a4: #fe0a3b44;--red-a5: #ff204756;--red-a6: #ff3e5668;--red-a7: #ff536184;--red-a8: #ff5d61b0;--red-a9: #fe4e54e4;--red-a10: #ff6465eb;--red-a11: #ff9592;--red-a12: #ffd1d9;--ruby-1: #191113;--ruby-2: #1e1517;--ruby-3: #3a141e;--ruby-4: #4e1325;--ruby-5: #5e1a2e;--ruby-6: #6f2539;--ruby-7: #883447;--ruby-8: #b3445a;--ruby-9: #e54666;--ruby-10: #ec5a72;--ruby-11: #ff949d;--ruby-12: #fed2e1;--ruby-a1: #f4124a09;--ruby-a2: #fe5a7f0e;--ruby-a3: #ff235d2c;--ruby-a4: #fd195e42;--ruby-a5: #fe2d6b53;--ruby-a6: #ff447665;--ruby-a7: #ff577d80;--ruby-a8: #ff5c7cae;--ruby-a9: #fe4c70e4;--ruby-a10: #ff617beb;--ruby-a11: #ff949d;--ruby-a12: #ffd3e2fe;--sky-1: #0d141f;--sky-2: #111a27;--sky-3: #112840;--sky-4: #113555;--sky-5: #154467;--sky-6: #1b537b;--sky-7: #1f6692;--sky-8: #197cae;--sky-9: #7ce2fe;--sky-10: #a8eeff;--sky-11: #75c7f0;--sky-12: #c2f3ff;--sky-a1: #0044ff0f;--sky-a2: #1171fb18;--sky-a3: #1184fc33;--sky-a4: #128fff49;--sky-a5: #1c9dfd5d;--sky-a6: #28a5ff72;--sky-a7: #2badfe8b;--sky-a8: #1db2fea9;--sky-a9: #7ce3fffe;--sky-a10: #a8eeff;--sky-a11: #7cd3ffef;--sky-a12: #c2f3ff;--teal-1: #0d1514;--teal-2: #111c1b;--teal-3: #0d2d2a;--teal-4: #023b37;--teal-5: #084843;--teal-6: #145750;--teal-7: #1c6961;--teal-8: #207e73;--teal-9: #12a594;--teal-10: #0eb39e;--teal-11: #0bd8b6;--teal-12: #adf0dd;--teal-a1: #00deab05;--teal-a2: #12fbe60c;--teal-a3: #00ffe61e;--teal-a4: #00ffe92d;--teal-a5: #00ffea3b;--teal-a6: #1cffe84b;--teal-a7: #2efde85f;--teal-a8: #32ffe775;--teal-a9: #13ffe49f;--teal-a10: #0dffe0ae;--teal-a11: #0afed5d6;--teal-a12: #b8ffebef;--tomato-1: #181111;--tomato-2: #1f1513;--tomato-3: #391714;--tomato-4: #4e1511;--tomato-5: #5e1c16;--tomato-6: #6e2920;--tomato-7: #853a2d;--tomato-8: #ac4d39;--tomato-9: #e54d2e;--tomato-10: #ec6142;--tomato-11: #ff977d;--tomato-12: #fbd3cb;--tomato-a1: #f1121208;--tomato-a2: #ff55330f;--tomato-a3: #ff35232b;--tomato-a4: #fd201142;--tomato-a5: #fe332153;--tomato-a6: #ff4f3864;--tomato-a7: #fd644a7d;--tomato-a8: #fe6d4ea7;--tomato-a9: #fe5431e4;--tomato-a10: #ff6847eb;--tomato-a11: #ff977d;--tomato-a12: #ffd6cefb;--violet-1: #14121f;--violet-2: #1b1525;--violet-3: #291f43;--violet-4: #33255b;--violet-5: #3c2e69;--violet-6: #473876;--violet-7: #56468b;--violet-8: #6958ad;--violet-9: #6e56cf;--violet-10: #7d66d9;--violet-11: #baa7ff;--violet-12: #e2ddfe;--violet-a1: #4422ff0f;--violet-a2: #853ff916;--violet-a3: #8354fe36;--violet-a4: #7d51fd50;--violet-a5: #845ffd5f;--violet-a6: #8f6cfd6d;--violet-a7: #9879ff83;--violet-a8: #977dfea8;--violet-a9: #8668ffcc;--violet-a10: #9176fed7;--violet-a11: #baa7ff;--violet-a12: #e3defffe;--yellow-1: #14120b;--yellow-2: #1b180f;--yellow-3: #2d2305;--yellow-4: #362b00;--yellow-5: #433500;--yellow-6: #524202;--yellow-7: #665417;--yellow-8: #836a21;--yellow-9: #ffe629;--yellow-10: #ffff57;--yellow-11: #f5e147;--yellow-12: #f6eeb4;--yellow-a1: #d1510004;--yellow-a2: #f9b4000b;--yellow-a3: #ffaa001e;--yellow-a4: #fdb70028;--yellow-a5: #febb0036;--yellow-a6: #fec40046;--yellow-a7: #fdcb225c;--yellow-a8: #fdca327b;--yellow-a9: #ffe629;--yellow-a10: #ffff57;--yellow-a11: #fee949f5;--yellow-a12: #fef6baf6;--gray-surface: #21212180;--gray-indicator: var(--gray-9);--gray-track: var(--gray-9);--mauve-surface: #22212380;--mauve-indicator: var(--mauve-9);--mauve-track: var(--mauve-9);--slate-surface: #1f212380;--slate-indicator: var(--slate-9);--slate-track: var(--slate-9);--sage-surface: #1e201f80;--sage-indicator: var(--sage-9);--sage-track: var(--sage-9);--olive-surface: #1f201e80;--olive-indicator: var(--olive-9);--olive-track: var(--olive-9);--sand-surface: #21212080;--sand-indicator: var(--sand-9);--sand-track: var(--sand-9);--amber-surface: #271f1380;--amber-indicator: var(--amber-9);--amber-track: var(--amber-9);--blue-surface: #11213d80;--blue-indicator: var(--blue-9);--blue-track: var(--blue-9);--bronze-surface: #27211d80;--bronze-indicator: var(--bronze-9);--bronze-track: var(--bronze-9);--brown-surface: #271f1b80;--brown-indicator: var(--brown-9);--brown-track: var(--brown-9);--crimson-surface: #2f151f80;--crimson-indicator: var(--crimson-9);--crimson-track: var(--crimson-9);--cyan-surface: #11252d80;--cyan-indicator: var(--cyan-9);--cyan-track: var(--cyan-9);--gold-surface: #25231d80;--gold-indicator: var(--gold-9);--gold-track: var(--gold-9);--grass-surface: #19231b80;--grass-indicator: var(--grass-9);--grass-track: var(--grass-9);--green-surface: #15251d80;--green-indicator: var(--green-9);--green-track: var(--green-9);--indigo-surface: #171d3b80;--indigo-indicator: var(--indigo-9);--indigo-track: var(--indigo-9);--iris-surface: #1d1b3980;--iris-indicator: var(--iris-9);--iris-track: var(--iris-9);--jade-surface: #13271f80;--jade-indicator: var(--jade-9);--jade-track: var(--jade-9);--lime-surface: #1b211580;--lime-indicator: var(--lime-9);--lime-track: var(--lime-9);--mint-surface: #15272780;--mint-indicator: var(--mint-9);--mint-track: var(--mint-9);--orange-surface: #271d1380;--orange-indicator: var(--orange-9);--orange-track: var(--orange-9);--pink-surface: #31132980;--pink-indicator: var(--pink-9);--pink-track: var(--pink-9);--plum-surface: #2f152f80;--plum-indicator: var(--plum-9);--plum-track: var(--plum-9);--purple-surface: #2b173580;--purple-indicator: var(--purple-9);--purple-track: var(--purple-9);--red-surface: #2f151780;--red-indicator: var(--red-9);--red-track: var(--red-9);--ruby-surface: #2b191d80;--ruby-indicator: var(--ruby-9);--ruby-track: var(--ruby-9);--sky-surface: #13233b80;--sky-indicator: var(--sky-9);--sky-track: var(--sky-9);--teal-surface: #13272580;--teal-indicator: var(--teal-9);--teal-track: var(--teal-9);--tomato-surface: #2d191580;--tomato-indicator: var(--tomato-9);--tomato-track: var(--tomato-9);--violet-surface: #25193980;--violet-indicator: var(--violet-9);--violet-track: var(--violet-9);--yellow-surface: #231f1380;--yellow-indicator: var(--yellow-9);--yellow-track: var(--yellow-9)}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){.dark,.dark-theme{--gray-1: color(display-p3 .067 .067 .067);--gray-2: color(display-p3 .098 .098 .098);--gray-3: color(display-p3 .135 .135 .135);--gray-4: color(display-p3 .163 .163 .163);--gray-5: color(display-p3 .192 .192 .192);--gray-6: color(display-p3 .228 .228 .228);--gray-7: color(display-p3 .283 .283 .283);--gray-8: color(display-p3 .375 .375 .375);--gray-9: color(display-p3 .431 .431 .431);--gray-10: color(display-p3 .484 .484 .484);--gray-11: color(display-p3 .706 .706 .706);--gray-12: color(display-p3 .933 .933 .933);--gray-a1: color(display-p3 0 0 0 / 0);--gray-a2: color(display-p3 1 1 1 / .034);--gray-a3: color(display-p3 1 1 1 / .071);--gray-a4: color(display-p3 1 1 1 / .105);--gray-a5: color(display-p3 1 1 1 / .134);--gray-a6: color(display-p3 1 1 1 / .172);--gray-a7: color(display-p3 1 1 1 / .231);--gray-a8: color(display-p3 1 1 1 / .332);--gray-a9: color(display-p3 1 1 1 / .391);--gray-a10: color(display-p3 1 1 1 / .445);--gray-a11: color(display-p3 1 1 1 / .685);--gray-a12: color(display-p3 1 1 1 / .929);--mauve-1: color(display-p3 .07 .067 .074);--mauve-2: color(display-p3 .101 .098 .105);--mauve-3: color(display-p3 .138 .134 .144);--mauve-4: color(display-p3 .167 .161 .175);--mauve-5: color(display-p3 .196 .189 .206);--mauve-6: color(display-p3 .232 .225 .245);--mauve-7: color(display-p3 .286 .277 .302);--mauve-8: color(display-p3 .383 .373 .408);--mauve-9: color(display-p3 .434 .428 .467);--mauve-10: color(display-p3 .487 .48 .519);--mauve-11: color(display-p3 .707 .7 .735);--mauve-12: color(display-p3 .933 .933 .94);--mauve-a1: color(display-p3 0 0 0 / 0);--mauve-a2: color(display-p3 .996 .992 1 / .034);--mauve-a3: color(display-p3 .937 .933 .992 / .077);--mauve-a4: color(display-p3 .957 .918 .996 / .111);--mauve-a5: color(display-p3 .937 .906 .996 / .145);--mauve-a6: color(display-p3 .953 .925 .996 / .183);--mauve-a7: color(display-p3 .945 .929 1 / .246);--mauve-a8: color(display-p3 .937 .918 1 / .361);--mauve-a9: color(display-p3 .933 .918 1 / .424);--mauve-a10: color(display-p3 .941 .925 1 / .479);--mauve-a11: color(display-p3 .965 .961 1 / .712);--mauve-a12: color(display-p3 .992 .992 1 / .937);--slate-1: color(display-p3 .067 .067 .074);--slate-2: color(display-p3 .095 .098 .105);--slate-3: color(display-p3 .13 .135 .145);--slate-4: color(display-p3 .156 .163 .176);--slate-5: color(display-p3 .183 .191 .206);--slate-6: color(display-p3 .215 .226 .244);--slate-7: color(display-p3 .265 .28 .302);--slate-8: color(display-p3 .357 .381 .409);--slate-9: color(display-p3 .415 .431 .463);--slate-10: color(display-p3 .469 .483 .514);--slate-11: color(display-p3 .692 .704 .728);--slate-12: color(display-p3 .93 .933 .94);--slate-a1: color(display-p3 0 0 0 / 0);--slate-a2: color(display-p3 .875 .992 1 / .034);--slate-a3: color(display-p3 .882 .933 .992 / .077);--slate-a4: color(display-p3 .882 .953 .996 / .111);--slate-a5: color(display-p3 .878 .929 .996 / .145);--slate-a6: color(display-p3 .882 .949 .996 / .183);--slate-a7: color(display-p3 .882 .929 1 / .246);--slate-a8: color(display-p3 .871 .937 1 / .361);--slate-a9: color(display-p3 .898 .937 1 / .42);--slate-a10: color(display-p3 .918 .945 1 / .475);--slate-a11: color(display-p3 .949 .969 .996 / .708);--slate-a12: color(display-p3 .988 .992 1 / .937);--sage-1: color(display-p3 .064 .07 .067);--sage-2: color(display-p3 .092 .098 .094);--sage-3: color(display-p3 .128 .135 .131);--sage-4: color(display-p3 .155 .164 .159);--sage-5: color(display-p3 .183 .193 .188);--sage-6: color(display-p3 .218 .23 .224);--sage-7: color(display-p3 .269 .285 .277);--sage-8: color(display-p3 .362 .382 .373);--sage-9: color(display-p3 .398 .438 .421);--sage-10: color(display-p3 .453 .49 .474);--sage-11: color(display-p3 .685 .709 .697);--sage-12: color(display-p3 .927 .933 .93);--sage-a1: color(display-p3 0 0 0 / 0);--sage-a2: color(display-p3 .976 .988 .984 / .03);--sage-a3: color(display-p3 .992 .945 .941 / .072);--sage-a4: color(display-p3 .988 .996 .992 / .102);--sage-a5: color(display-p3 .992 1 .996 / .131);--sage-a6: color(display-p3 .973 1 .976 / .173);--sage-a7: color(display-p3 .957 1 .976 / .233);--sage-a8: color(display-p3 .957 1 .984 / .334);--sage-a9: color(display-p3 .902 1 .957 / .397);--sage-a10: color(display-p3 .929 1 .973 / .452);--sage-a11: color(display-p3 .969 1 .988 / .688);--sage-a12: color(display-p3 .992 1 .996 / .929);--olive-1: color(display-p3 .067 .07 .063);--olive-2: color(display-p3 .095 .098 .091);--olive-3: color(display-p3 .131 .135 .126);--olive-4: color(display-p3 .158 .163 .153);--olive-5: color(display-p3 .186 .192 .18);--olive-6: color(display-p3 .221 .229 .215);--olive-7: color(display-p3 .273 .284 .266);--olive-8: color(display-p3 .365 .382 .359);--olive-9: color(display-p3 .414 .438 .404);--olive-10: color(display-p3 .467 .49 .458);--olive-11: color(display-p3 .69 .709 .682);--olive-12: color(display-p3 .927 .933 .926);--olive-a1: color(display-p3 0 0 0 / 0);--olive-a2: color(display-p3 .984 .988 .976 / .03);--olive-a3: color(display-p3 .992 .996 .988 / .068);--olive-a4: color(display-p3 .953 .996 .949 / .102);--olive-a5: color(display-p3 .969 1 .965 / .131);--olive-a6: color(display-p3 .973 1 .969 / .169);--olive-a7: color(display-p3 .98 1 .961 / .228);--olive-a8: color(display-p3 .961 1 .957 / .334);--olive-a9: color(display-p3 .949 1 .922 / .397);--olive-a10: color(display-p3 .953 1 .941 / .452);--olive-a11: color(display-p3 .976 1 .965 / .688);--olive-a12: color(display-p3 .992 1 .992 / .929);--sand-1: color(display-p3 .067 .067 .063);--sand-2: color(display-p3 .098 .098 .094);--sand-3: color(display-p3 .135 .135 .129);--sand-4: color(display-p3 .164 .163 .156);--sand-5: color(display-p3 .193 .192 .183);--sand-6: color(display-p3 .23 .229 .217);--sand-7: color(display-p3 .285 .282 .267);--sand-8: color(display-p3 .384 .378 .357);--sand-9: color(display-p3 .434 .428 .403);--sand-10: color(display-p3 .487 .481 .456);--sand-11: color(display-p3 .707 .703 .68);--sand-12: color(display-p3 .933 .933 .926);--sand-a1: color(display-p3 0 0 0 / 0);--sand-a2: color(display-p3 .992 .992 .988 / .034);--sand-a3: color(display-p3 .996 .996 .992 / .072);--sand-a4: color(display-p3 .992 .992 .953 / .106);--sand-a5: color(display-p3 1 1 .965 / .135);--sand-a6: color(display-p3 1 .976 .929 / .177);--sand-a7: color(display-p3 1 .984 .929 / .236);--sand-a8: color(display-p3 1 .976 .925 / .341);--sand-a9: color(display-p3 1 .98 .925 / .395);--sand-a10: color(display-p3 1 .992 .933 / .45);--sand-a11: color(display-p3 1 .996 .961 / .685);--sand-a12: color(display-p3 1 1 .992 / .929);--amber-1: color(display-p3 .082 .07 .05);--amber-2: color(display-p3 .111 .094 .064);--amber-3: color(display-p3 .178 .128 .049);--amber-4: color(display-p3 .239 .156 0);--amber-5: color(display-p3 .29 .193 0);--amber-6: color(display-p3 .344 .245 .076);--amber-7: color(display-p3 .422 .314 .141);--amber-8: color(display-p3 .535 .399 .189);--amber-9: color(display-p3 1 .77 .26);--amber-10: color(display-p3 1 .87 .15);--amber-11: color(display-p3 1 .8 .29);--amber-12: color(display-p3 .984 .909 .726);--amber-a1: color(display-p3 .992 .298 0 / .017);--amber-a2: color(display-p3 .988 .651 0 / .047);--amber-a3: color(display-p3 1 .6 0 / .118);--amber-a4: color(display-p3 1 .557 0 / .185);--amber-a5: color(display-p3 1 .592 0 / .24);--amber-a6: color(display-p3 1 .659 .094 / .299);--amber-a7: color(display-p3 1 .714 .263 / .383);--amber-a8: color(display-p3 .996 .729 .306 / .5);--amber-a9: color(display-p3 1 .769 .259);--amber-a10: color(display-p3 1 .871 .149);--amber-a11: color(display-p3 1 .8 .29);--amber-a12: color(display-p3 .984 .909 .726);--blue-1: color(display-p3 .057 .081 .122);--blue-2: color(display-p3 .072 .098 .147);--blue-3: color(display-p3 .078 .154 .27);--blue-4: color(display-p3 .033 .197 .37);--blue-5: color(display-p3 .08 .245 .441);--blue-6: color(display-p3 .14 .298 .511);--blue-7: color(display-p3 .195 .361 .6);--blue-8: color(display-p3 .239 .434 .72);--blue-9: color(display-p3 .247 .556 .969);--blue-10: color(display-p3 .344 .612 .973);--blue-11: color(display-p3 .49 .72 1);--blue-12: color(display-p3 .788 .898 .99);--blue-a1: color(display-p3 0 .333 1 / .059);--blue-a2: color(display-p3 .114 .435 .988 / .085);--blue-a3: color(display-p3 .122 .463 1 / .219);--blue-a4: color(display-p3 0 .467 1 / .324);--blue-a5: color(display-p3 .098 .51 1 / .4);--blue-a6: color(display-p3 .224 .557 1 / .475);--blue-a7: color(display-p3 .294 .584 1 / .572);--blue-a8: color(display-p3 .314 .592 1 / .702);--blue-a9: color(display-p3 .251 .573 .996 / .967);--blue-a10: color(display-p3 .357 .631 1 / .971);--blue-a11: color(display-p3 .49 .72 1);--blue-a12: color(display-p3 .788 .898 .99);--bronze-1: color(display-p3 .076 .067 .063);--bronze-2: color(display-p3 .106 .097 .093);--bronze-3: color(display-p3 .147 .132 .125);--bronze-4: color(display-p3 .185 .166 .156);--bronze-5: color(display-p3 .227 .202 .19);--bronze-6: color(display-p3 .278 .246 .23);--bronze-7: color(display-p3 .343 .302 .281);--bronze-8: color(display-p3 .426 .374 .347);--bronze-9: color(display-p3 .611 .507 .455);--bronze-10: color(display-p3 .66 .556 .504);--bronze-11: color(display-p3 .81 .707 .655);--bronze-12: color(display-p3 .921 .88 .854);--bronze-a1: color(display-p3 .941 .067 0 / .009);--bronze-a2: color(display-p3 .98 .8 .706 / .043);--bronze-a3: color(display-p3 .988 .851 .761 / .085);--bronze-a4: color(display-p3 .996 .839 .78 / .127);--bronze-a5: color(display-p3 .996 .863 .773 / .173);--bronze-a6: color(display-p3 1 .863 .796 / .227);--bronze-a7: color(display-p3 1 .867 .8 / .295);--bronze-a8: color(display-p3 1 .859 .788 / .387);--bronze-a9: color(display-p3 1 .82 .733 / .585);--bronze-a10: color(display-p3 1 .839 .761 / .635);--bronze-a11: color(display-p3 .81 .707 .655);--bronze-a12: color(display-p3 .921 .88 .854);--brown-1: color(display-p3 .071 .067 .059);--brown-2: color(display-p3 .107 .095 .087);--brown-3: color(display-p3 .151 .13 .115);--brown-4: color(display-p3 .191 .161 .138);--brown-5: color(display-p3 .235 .194 .162);--brown-6: color(display-p3 .291 .237 .192);--brown-7: color(display-p3 .365 .295 .232);--brown-8: color(display-p3 .469 .377 .287);--brown-9: color(display-p3 .651 .505 .368);--brown-10: color(display-p3 .697 .557 .423);--brown-11: color(display-p3 .835 .715 .597);--brown-12: color(display-p3 .938 .885 .802);--brown-a1: color(display-p3 .855 .071 0 / .005);--brown-a2: color(display-p3 .98 .706 .525 / .043);--brown-a3: color(display-p3 .996 .745 .576 / .093);--brown-a4: color(display-p3 1 .765 .592 / .135);--brown-a5: color(display-p3 1 .761 .588 / .181);--brown-a6: color(display-p3 1 .773 .592 / .24);--brown-a7: color(display-p3 .996 .776 .58 / .32);--brown-a8: color(display-p3 1 .78 .573 / .433);--brown-a9: color(display-p3 1 .769 .549 / .627);--brown-a10: color(display-p3 1 .792 .596 / .677);--brown-a11: color(display-p3 .835 .715 .597);--brown-a12: color(display-p3 .938 .885 .802);--crimson-1: color(display-p3 .093 .068 .078);--crimson-2: color(display-p3 .117 .078 .095);--crimson-3: color(display-p3 .203 .091 .143);--crimson-4: color(display-p3 .277 .087 .182);--crimson-5: color(display-p3 .332 .115 .22);--crimson-6: color(display-p3 .394 .162 .268);--crimson-7: color(display-p3 .489 .222 .336);--crimson-8: color(display-p3 .638 .289 .429);--crimson-9: color(display-p3 .843 .298 .507);--crimson-10: color(display-p3 .864 .364 .539);--crimson-11: color(display-p3 1 .56 .66);--crimson-12: color(display-p3 .966 .834 .906);--crimson-a1: color(display-p3 .984 .071 .463 / .03);--crimson-a2: color(display-p3 .996 .282 .569 / .055);--crimson-a3: color(display-p3 .996 .227 .573 / .148);--crimson-a4: color(display-p3 1 .157 .569 / .227);--crimson-a5: color(display-p3 1 .231 .604 / .286);--crimson-a6: color(display-p3 1 .337 .643 / .349);--crimson-a7: color(display-p3 1 .416 .663 / .454);--crimson-a8: color(display-p3 .996 .427 .651 / .614);--crimson-a9: color(display-p3 1 .345 .596 / .832);--crimson-a10: color(display-p3 1 .42 .62 / .853);--crimson-a11: color(display-p3 1 .56 .66);--crimson-a12: color(display-p3 .966 .834 .906);--cyan-1: color(display-p3 .053 .085 .098);--cyan-2: color(display-p3 .072 .105 .122);--cyan-3: color(display-p3 .073 .168 .209);--cyan-4: color(display-p3 .063 .216 .277);--cyan-5: color(display-p3 .091 .267 .336);--cyan-6: color(display-p3 .137 .324 .4);--cyan-7: color(display-p3 .186 .398 .484);--cyan-8: color(display-p3 .23 .496 .6);--cyan-9: color(display-p3 .282 .627 .765);--cyan-10: color(display-p3 .331 .675 .801);--cyan-11: color(display-p3 .446 .79 .887);--cyan-12: color(display-p3 .757 .919 .962);--cyan-a1: color(display-p3 0 .647 .992 / .034);--cyan-a2: color(display-p3 .133 .733 1 / .059);--cyan-a3: color(display-p3 .122 .741 .996 / .152);--cyan-a4: color(display-p3 .051 .725 1 / .227);--cyan-a5: color(display-p3 .149 .757 1 / .29);--cyan-a6: color(display-p3 .267 .792 1 / .358);--cyan-a7: color(display-p3 .333 .808 1 / .446);--cyan-a8: color(display-p3 .357 .816 1 / .572);--cyan-a9: color(display-p3 .357 .82 1 / .748);--cyan-a10: color(display-p3 .4 .839 1 / .786);--cyan-a11: color(display-p3 .446 .79 .887);--cyan-a12: color(display-p3 .757 .919 .962);--gold-1: color(display-p3 .071 .071 .067);--gold-2: color(display-p3 .104 .101 .09);--gold-3: color(display-p3 .141 .136 .122);--gold-4: color(display-p3 .177 .17 .152);--gold-5: color(display-p3 .217 .207 .185);--gold-6: color(display-p3 .265 .252 .225);--gold-7: color(display-p3 .327 .31 .277);--gold-8: color(display-p3 .407 .384 .342);--gold-9: color(display-p3 .579 .517 .41);--gold-10: color(display-p3 .628 .566 .463);--gold-11: color(display-p3 .784 .728 .635);--gold-12: color(display-p3 .906 .887 .855);--gold-a1: color(display-p3 .855 .855 .071 / .005);--gold-a2: color(display-p3 .98 .89 .616 / .043);--gold-a3: color(display-p3 1 .949 .753 / .08);--gold-a4: color(display-p3 1 .933 .8 / .118);--gold-a5: color(display-p3 1 .949 .804 / .16);--gold-a6: color(display-p3 1 .925 .8 / .215);--gold-a7: color(display-p3 1 .945 .831 / .278);--gold-a8: color(display-p3 1 .937 .82 / .366);--gold-a9: color(display-p3 .996 .882 .69 / .551);--gold-a10: color(display-p3 1 .894 .725 / .601);--gold-a11: color(display-p3 .784 .728 .635);--gold-a12: color(display-p3 .906 .887 .855);--grass-1: color(display-p3 .062 .083 .067);--grass-2: color(display-p3 .083 .103 .085);--grass-3: color(display-p3 .118 .163 .122);--grass-4: color(display-p3 .142 .225 .15);--grass-5: color(display-p3 .178 .279 .186);--grass-6: color(display-p3 .217 .337 .224);--grass-7: color(display-p3 .258 .4 .264);--grass-8: color(display-p3 .302 .47 .305);--grass-9: color(display-p3 .38 .647 .378);--grass-10: color(display-p3 .426 .694 .426);--grass-11: color(display-p3 .535 .807 .542);--grass-12: color(display-p3 .797 .936 .776);--grass-a1: color(display-p3 0 .992 .071 / .017);--grass-a2: color(display-p3 .482 .996 .584 / .038);--grass-a3: color(display-p3 .549 .992 .588 / .106);--grass-a4: color(display-p3 .51 .996 .557 / .169);--grass-a5: color(display-p3 .553 1 .588 / .227);--grass-a6: color(display-p3 .584 1 .608 / .29);--grass-a7: color(display-p3 .604 1 .616 / .358);--grass-a8: color(display-p3 .608 1 .62 / .433);--grass-a9: color(display-p3 .573 1 .569 / .622);--grass-a10: color(display-p3 .6 .996 .6 / .673);--grass-a11: color(display-p3 .535 .807 .542);--grass-a12: color(display-p3 .797 .936 .776);--green-1: color(display-p3 .062 .083 .071);--green-2: color(display-p3 .079 .106 .09);--green-3: color(display-p3 .1 .173 .133);--green-4: color(display-p3 .115 .229 .166);--green-5: color(display-p3 .147 .282 .206);--green-6: color(display-p3 .185 .338 .25);--green-7: color(display-p3 .227 .403 .298);--green-8: color(display-p3 .27 .479 .351);--green-9: color(display-p3 .332 .634 .442);--green-10: color(display-p3 .357 .682 .474);--green-11: color(display-p3 .434 .828 .573);--green-12: color(display-p3 .747 .938 .807);--green-a1: color(display-p3 0 .992 .298 / .017);--green-a2: color(display-p3 .341 .98 .616 / .043);--green-a3: color(display-p3 .376 .996 .655 / .114);--green-a4: color(display-p3 .341 .996 .635 / .173);--green-a5: color(display-p3 .408 1 .678 / .232);--green-a6: color(display-p3 .475 1 .706 / .29);--green-a7: color(display-p3 .514 1 .706 / .362);--green-a8: color(display-p3 .529 1 .718 / .442);--green-a9: color(display-p3 .502 .996 .682 / .61);--green-a10: color(display-p3 .506 1 .682 / .66);--green-a11: color(display-p3 .434 .828 .573);--green-a12: color(display-p3 .747 .938 .807);--indigo-1: color(display-p3 .068 .074 .118);--indigo-2: color(display-p3 .081 .089 .144);--indigo-3: color(display-p3 .105 .141 .275);--indigo-4: color(display-p3 .129 .18 .369);--indigo-5: color(display-p3 .163 .22 .439);--indigo-6: color(display-p3 .203 .262 .5);--indigo-7: color(display-p3 .245 .309 .575);--indigo-8: color(display-p3 .285 .362 .674);--indigo-9: color(display-p3 .276 .384 .837);--indigo-10: color(display-p3 .354 .445 .866);--indigo-11: color(display-p3 .63 .69 1);--indigo-12: color(display-p3 .848 .881 .99);--indigo-a1: color(display-p3 .071 .212 .996 / .055);--indigo-a2: color(display-p3 .251 .345 .988 / .085);--indigo-a3: color(display-p3 .243 .404 1 / .223);--indigo-a4: color(display-p3 .263 .42 1 / .324);--indigo-a5: color(display-p3 .314 .451 1 / .4);--indigo-a6: color(display-p3 .361 .49 1 / .467);--indigo-a7: color(display-p3 .388 .51 1 / .547);--indigo-a8: color(display-p3 .404 .518 1 / .652);--indigo-a9: color(display-p3 .318 .451 1 / .824);--indigo-a10: color(display-p3 .404 .506 1 / .858);--indigo-a11: color(display-p3 .63 .69 1);--indigo-a12: color(display-p3 .848 .881 .99);--iris-1: color(display-p3 .075 .075 .114);--iris-2: color(display-p3 .089 .086 .14);--iris-3: color(display-p3 .128 .134 .272);--iris-4: color(display-p3 .153 .165 .382);--iris-5: color(display-p3 .192 .201 .44);--iris-6: color(display-p3 .239 .241 .491);--iris-7: color(display-p3 .291 .289 .565);--iris-8: color(display-p3 .35 .345 .673);--iris-9: color(display-p3 .357 .357 .81);--iris-10: color(display-p3 .428 .416 .843);--iris-11: color(display-p3 .685 .662 1);--iris-12: color(display-p3 .878 .875 .986);--iris-a1: color(display-p3 .224 .224 .992 / .051);--iris-a2: color(display-p3 .361 .314 1 / .08);--iris-a3: color(display-p3 .357 .373 1 / .219);--iris-a4: color(display-p3 .325 .361 1 / .337);--iris-a5: color(display-p3 .38 .4 1 / .4);--iris-a6: color(display-p3 .447 .447 1 / .454);--iris-a7: color(display-p3 .486 .486 1 / .534);--iris-a8: color(display-p3 .502 .494 1 / .652);--iris-a9: color(display-p3 .431 .431 1 / .799);--iris-a10: color(display-p3 .502 .486 1 / .832);--iris-a11: color(display-p3 .685 .662 1);--iris-a12: color(display-p3 .878 .875 .986);--jade-1: color(display-p3 .059 .083 .071);--jade-2: color(display-p3 .078 .11 .094);--jade-3: color(display-p3 .091 .176 .138);--jade-4: color(display-p3 .102 .228 .177);--jade-5: color(display-p3 .133 .279 .221);--jade-6: color(display-p3 .174 .334 .273);--jade-7: color(display-p3 .219 .402 .335);--jade-8: color(display-p3 .263 .488 .411);--jade-9: color(display-p3 .319 .63 .521);--jade-10: color(display-p3 .338 .68 .555);--jade-11: color(display-p3 .4 .835 .656);--jade-12: color(display-p3 .734 .934 .838);--jade-a1: color(display-p3 0 .992 .298 / .017);--jade-a2: color(display-p3 .318 .988 .651 / .047);--jade-a3: color(display-p3 .267 1 .667 / .118);--jade-a4: color(display-p3 .275 .996 .702 / .173);--jade-a5: color(display-p3 .361 1 .741 / .227);--jade-a6: color(display-p3 .439 1 .796 / .286);--jade-a7: color(display-p3 .49 1 .804 / .362);--jade-a8: color(display-p3 .506 1 .835 / .45);--jade-a9: color(display-p3 .478 .996 .816 / .606);--jade-a10: color(display-p3 .478 1 .816 / .656);--jade-a11: color(display-p3 .4 .835 .656);--jade-a12: color(display-p3 .734 .934 .838);--lime-1: color(display-p3 .067 .073 .048);--lime-2: color(display-p3 .086 .1 .067);--lime-3: color(display-p3 .13 .16 .099);--lime-4: color(display-p3 .172 .214 .126);--lime-5: color(display-p3 .213 .266 .153);--lime-6: color(display-p3 .257 .321 .182);--lime-7: color(display-p3 .307 .383 .215);--lime-8: color(display-p3 .365 .456 .25);--lime-9: color(display-p3 .78 .928 .466);--lime-10: color(display-p3 .865 .995 .519);--lime-11: color(display-p3 .771 .893 .485);--lime-12: color(display-p3 .905 .966 .753);--lime-a1: color(display-p3 .067 .941 0 / .009);--lime-a2: color(display-p3 .584 .996 .071 / .038);--lime-a3: color(display-p3 .69 1 .38 / .101);--lime-a4: color(display-p3 .729 1 .435 / .16);--lime-a5: color(display-p3 .745 1 .471 / .215);--lime-a6: color(display-p3 .769 1 .482 / .274);--lime-a7: color(display-p3 .769 1 .506 / .341);--lime-a8: color(display-p3 .784 1 .51 / .416);--lime-a9: color(display-p3 .839 1 .502 / .925);--lime-a10: color(display-p3 .871 1 .522 / .996);--lime-a11: color(display-p3 .771 .893 .485);--lime-a12: color(display-p3 .905 .966 .753);--mint-1: color(display-p3 .059 .082 .081);--mint-2: color(display-p3 .068 .104 .105);--mint-3: color(display-p3 .077 .17 .168);--mint-4: color(display-p3 .068 .224 .22);--mint-5: color(display-p3 .104 .275 .264);--mint-6: color(display-p3 .154 .332 .313);--mint-7: color(display-p3 .207 .403 .373);--mint-8: color(display-p3 .258 .49 .441);--mint-9: color(display-p3 .62 .908 .834);--mint-10: color(display-p3 .725 .954 .898);--mint-11: color(display-p3 .482 .825 .733);--mint-12: color(display-p3 .807 .955 .887);--mint-a1: color(display-p3 0 .992 .992 / .017);--mint-a2: color(display-p3 .071 .98 .98 / .043);--mint-a3: color(display-p3 .176 .996 .996 / .11);--mint-a4: color(display-p3 .071 .996 .973 / .169);--mint-a5: color(display-p3 .243 1 .949 / .223);--mint-a6: color(display-p3 .369 1 .933 / .286);--mint-a7: color(display-p3 .459 1 .914 / .362);--mint-a8: color(display-p3 .49 1 .89 / .454);--mint-a9: color(display-p3 .678 .996 .914 / .904);--mint-a10: color(display-p3 .761 1 .941 / .95);--mint-a11: color(display-p3 .482 .825 .733);--mint-a12: color(display-p3 .807 .955 .887);--orange-1: color(display-p3 .088 .07 .057);--orange-2: color(display-p3 .113 .089 .061);--orange-3: color(display-p3 .189 .12 .056);--orange-4: color(display-p3 .262 .132 0);--orange-5: color(display-p3 .315 .168 .016);--orange-6: color(display-p3 .376 .219 .088);--orange-7: color(display-p3 .465 .283 .147);--orange-8: color(display-p3 .601 .359 .201);--orange-9: color(display-p3 .9 .45 .2);--orange-10: color(display-p3 .98 .51 .23);--orange-11: color(display-p3 1 .63 .38);--orange-12: color(display-p3 .98 .883 .775);--orange-a1: color(display-p3 .961 .247 0 / .022);--orange-a2: color(display-p3 .992 .529 0 / .051);--orange-a3: color(display-p3 .996 .486 0 / .131);--orange-a4: color(display-p3 .996 .384 0 / .211);--orange-a5: color(display-p3 1 .455 0 / .265);--orange-a6: color(display-p3 1 .529 .129 / .332);--orange-a7: color(display-p3 1 .569 .251 / .429);--orange-a8: color(display-p3 1 .584 .302 / .572);--orange-a9: color(display-p3 1 .494 .216 / .895);--orange-a10: color(display-p3 1 .522 .235 / .979);--orange-a11: color(display-p3 1 .63 .38);--orange-a12: color(display-p3 .98 .883 .775);--pink-1: color(display-p3 .093 .068 .089);--pink-2: color(display-p3 .121 .073 .11);--pink-3: color(display-p3 .198 .098 .179);--pink-4: color(display-p3 .271 .095 .231);--pink-5: color(display-p3 .32 .127 .273);--pink-6: color(display-p3 .382 .177 .326);--pink-7: color(display-p3 .477 .238 .405);--pink-8: color(display-p3 .612 .304 .51);--pink-9: color(display-p3 .775 .297 .61);--pink-10: color(display-p3 .808 .356 .645);--pink-11: color(display-p3 1 .535 .78);--pink-12: color(display-p3 .964 .826 .912);--pink-a1: color(display-p3 .984 .071 .855 / .03);--pink-a2: color(display-p3 1 .2 .8 / .059);--pink-a3: color(display-p3 1 .294 .886 / .139);--pink-a4: color(display-p3 1 .192 .82 / .219);--pink-a5: color(display-p3 1 .282 .827 / .274);--pink-a6: color(display-p3 1 .396 .835 / .337);--pink-a7: color(display-p3 1 .459 .831 / .442);--pink-a8: color(display-p3 1 .478 .827 / .585);--pink-a9: color(display-p3 1 .373 .784 / .761);--pink-a10: color(display-p3 1 .435 .792 / .795);--pink-a11: color(display-p3 1 .535 .78);--pink-a12: color(display-p3 .964 .826 .912);--plum-1: color(display-p3 .09 .068 .092);--plum-2: color(display-p3 .118 .077 .121);--plum-3: color(display-p3 .192 .105 .202);--plum-4: color(display-p3 .25 .121 .271);--plum-5: color(display-p3 .293 .152 .319);--plum-6: color(display-p3 .343 .198 .372);--plum-7: color(display-p3 .424 .262 .461);--plum-8: color(display-p3 .54 .341 .595);--plum-9: color(display-p3 .624 .313 .708);--plum-10: color(display-p3 .666 .365 .748);--plum-11: color(display-p3 .86 .602 .933);--plum-12: color(display-p3 .936 .836 .949);--plum-a1: color(display-p3 .973 .071 .973 / .026);--plum-a2: color(display-p3 .933 .267 1 / .059);--plum-a3: color(display-p3 .918 .333 .996 / .148);--plum-a4: color(display-p3 .91 .318 1 / .219);--plum-a5: color(display-p3 .914 .388 1 / .269);--plum-a6: color(display-p3 .906 .463 1 / .328);--plum-a7: color(display-p3 .906 .529 1 / .425);--plum-a8: color(display-p3 .906 .553 1 / .568);--plum-a9: color(display-p3 .875 .427 1 / .69);--plum-a10: color(display-p3 .886 .471 .996 / .732);--plum-a11: color(display-p3 .86 .602 .933);--plum-a12: color(display-p3 .936 .836 .949);--purple-1: color(display-p3 .09 .068 .103);--purple-2: color(display-p3 .113 .082 .134);--purple-3: color(display-p3 .175 .112 .224);--purple-4: color(display-p3 .224 .137 .297);--purple-5: color(display-p3 .264 .167 .349);--purple-6: color(display-p3 .311 .208 .406);--purple-7: color(display-p3 .381 .266 .496);--purple-8: color(display-p3 .49 .349 .649);--purple-9: color(display-p3 .523 .318 .751);--purple-10: color(display-p3 .57 .373 .791);--purple-11: color(display-p3 .8 .62 1);--purple-12: color(display-p3 .913 .854 .971);--purple-a1: color(display-p3 .686 .071 .996 / .038);--purple-a2: color(display-p3 .722 .286 .996 / .072);--purple-a3: color(display-p3 .718 .349 .996 / .169);--purple-a4: color(display-p3 .702 .353 1 / .248);--purple-a5: color(display-p3 .718 .404 1 / .303);--purple-a6: color(display-p3 .733 .455 1 / .366);--purple-a7: color(display-p3 .753 .506 1 / .458);--purple-a8: color(display-p3 .749 .522 1 / .622);--purple-a9: color(display-p3 .686 .408 1 / .736);--purple-a10: color(display-p3 .71 .459 1 / .778);--purple-a11: color(display-p3 .8 .62 1);--purple-a12: color(display-p3 .913 .854 .971);--red-1: color(display-p3 .093 .068 .067);--red-2: color(display-p3 .118 .077 .079);--red-3: color(display-p3 .211 .081 .099);--red-4: color(display-p3 .287 .079 .113);--red-5: color(display-p3 .348 .11 .142);--red-6: color(display-p3 .414 .16 .183);--red-7: color(display-p3 .508 .224 .236);--red-8: color(display-p3 .659 .298 .297);--red-9: color(display-p3 .83 .329 .324);--red-10: color(display-p3 .861 .403 .387);--red-11: color(display-p3 1 .57 .55);--red-12: color(display-p3 .971 .826 .852);--red-a1: color(display-p3 .984 .071 .071 / .03);--red-a2: color(display-p3 .996 .282 .282 / .055);--red-a3: color(display-p3 1 .169 .271 / .156);--red-a4: color(display-p3 1 .118 .267 / .236);--red-a5: color(display-p3 1 .212 .314 / .303);--red-a6: color(display-p3 1 .318 .38 / .374);--red-a7: color(display-p3 1 .4 .424 / .475);--red-a8: color(display-p3 1 .431 .431 / .635);--red-a9: color(display-p3 1 .388 .384 / .82);--red-a10: color(display-p3 1 .463 .447 / .853);--red-a11: color(display-p3 1 .57 .55);--red-a12: color(display-p3 .971 .826 .852);--ruby-1: color(display-p3 .093 .068 .074);--ruby-2: color(display-p3 .113 .083 .089);--ruby-3: color(display-p3 .208 .088 .117);--ruby-4: color(display-p3 .279 .092 .147);--ruby-5: color(display-p3 .337 .12 .18);--ruby-6: color(display-p3 .401 .166 .223);--ruby-7: color(display-p3 .495 .224 .281);--ruby-8: color(display-p3 .652 .295 .359);--ruby-9: color(display-p3 .83 .323 .408);--ruby-10: color(display-p3 .857 .392 .455);--ruby-11: color(display-p3 1 .57 .59);--ruby-12: color(display-p3 .968 .83 .88);--ruby-a1: color(display-p3 .984 .071 .329 / .03);--ruby-a2: color(display-p3 .992 .376 .529 / .051);--ruby-a3: color(display-p3 .996 .196 .404 / .152);--ruby-a4: color(display-p3 1 .173 .416 / .227);--ruby-a5: color(display-p3 1 .259 .459 / .29);--ruby-a6: color(display-p3 1 .341 .506 / .358);--ruby-a7: color(display-p3 1 .412 .541 / .458);--ruby-a8: color(display-p3 1 .431 .537 / .627);--ruby-a9: color(display-p3 1 .376 .482 / .82);--ruby-a10: color(display-p3 1 .447 .522 / .849);--ruby-a11: color(display-p3 1 .57 .59);--ruby-a12: color(display-p3 .968 .83 .88);--sky-1: color(display-p3 .056 .078 .116);--sky-2: color(display-p3 .075 .101 .149);--sky-3: color(display-p3 .089 .154 .244);--sky-4: color(display-p3 .106 .207 .323);--sky-5: color(display-p3 .135 .261 .394);--sky-6: color(display-p3 .17 .322 .469);--sky-7: color(display-p3 .205 .394 .557);--sky-8: color(display-p3 .232 .48 .665);--sky-9: color(display-p3 .585 .877 .983);--sky-10: color(display-p3 .718 .925 .991);--sky-11: color(display-p3 .536 .772 .924);--sky-12: color(display-p3 .799 .947 .993);--sky-a1: color(display-p3 0 .282 .996 / .055);--sky-a2: color(display-p3 .157 .467 .992 / .089);--sky-a3: color(display-p3 .192 .522 .996 / .19);--sky-a4: color(display-p3 .212 .584 1 / .274);--sky-a5: color(display-p3 .259 .631 1 / .349);--sky-a6: color(display-p3 .302 .655 1 / .433);--sky-a7: color(display-p3 .329 .686 1 / .526);--sky-a8: color(display-p3 .325 .71 1 / .643);--sky-a9: color(display-p3 .592 .894 1 / .984);--sky-a10: color(display-p3 .722 .933 1 / .992);--sky-a11: color(display-p3 .536 .772 .924);--sky-a12: color(display-p3 .799 .947 .993);--teal-1: color(display-p3 .059 .083 .079);--teal-2: color(display-p3 .075 .11 .107);--teal-3: color(display-p3 .087 .175 .165);--teal-4: color(display-p3 .087 .227 .214);--teal-5: color(display-p3 .12 .277 .261);--teal-6: color(display-p3 .162 .335 .314);--teal-7: color(display-p3 .205 .406 .379);--teal-8: color(display-p3 .245 .489 .453);--teal-9: color(display-p3 .297 .637 .581);--teal-10: color(display-p3 .319 .69 .62);--teal-11: color(display-p3 .388 .835 .719);--teal-12: color(display-p3 .734 .934 .87);--teal-a1: color(display-p3 0 .992 .761 / .017);--teal-a2: color(display-p3 .235 .988 .902 / .047);--teal-a3: color(display-p3 .235 1 .898 / .118);--teal-a4: color(display-p3 .18 .996 .929 / .173);--teal-a5: color(display-p3 .31 1 .933 / .227);--teal-a6: color(display-p3 .396 1 .933 / .286);--teal-a7: color(display-p3 .443 1 .925 / .366);--teal-a8: color(display-p3 .459 1 .925 / .454);--teal-a9: color(display-p3 .443 .996 .906 / .61);--teal-a10: color(display-p3 .439 .996 .89 / .669);--teal-a11: color(display-p3 .388 .835 .719);--teal-a12: color(display-p3 .734 .934 .87);--tomato-1: color(display-p3 .09 .068 .067);--tomato-2: color(display-p3 .115 .084 .076);--tomato-3: color(display-p3 .205 .097 .083);--tomato-4: color(display-p3 .282 .099 .077);--tomato-5: color(display-p3 .339 .129 .101);--tomato-6: color(display-p3 .398 .179 .141);--tomato-7: color(display-p3 .487 .245 .194);--tomato-8: color(display-p3 .629 .322 .248);--tomato-9: color(display-p3 .831 .345 .231);--tomato-10: color(display-p3 .862 .415 .298);--tomato-11: color(display-p3 1 .585 .455);--tomato-12: color(display-p3 .959 .833 .802);--tomato-a1: color(display-p3 .973 .071 .071 / .026);--tomato-a2: color(display-p3 .992 .376 .224 / .051);--tomato-a3: color(display-p3 .996 .282 .176 / .148);--tomato-a4: color(display-p3 1 .204 .118 / .232);--tomato-a5: color(display-p3 1 .286 .192 / .29);--tomato-a6: color(display-p3 1 .392 .278 / .353);--tomato-a7: color(display-p3 1 .459 .349 / .45);--tomato-a8: color(display-p3 1 .49 .369 / .601);--tomato-a9: color(display-p3 1 .408 .267 / .82);--tomato-a10: color(display-p3 1 .478 .341 / .853);--tomato-a11: color(display-p3 1 .585 .455);--tomato-a12: color(display-p3 .959 .833 .802);--violet-1: color(display-p3 .077 .071 .118);--violet-2: color(display-p3 .101 .084 .141);--violet-3: color(display-p3 .154 .123 .256);--violet-4: color(display-p3 .191 .148 .345);--violet-5: color(display-p3 .226 .182 .396);--violet-6: color(display-p3 .269 .223 .449);--violet-7: color(display-p3 .326 .277 .53);--violet-8: color(display-p3 .399 .346 .656);--violet-9: color(display-p3 .417 .341 .784);--violet-10: color(display-p3 .477 .402 .823);--violet-11: color(display-p3 .72 .65 1);--violet-12: color(display-p3 .883 .867 .986);--violet-a1: color(display-p3 .282 .141 .996 / .055);--violet-a2: color(display-p3 .51 .263 1 / .08);--violet-a3: color(display-p3 .494 .337 .996 / .202);--violet-a4: color(display-p3 .49 .345 1 / .299);--violet-a5: color(display-p3 .525 .392 1 / .353);--violet-a6: color(display-p3 .569 .455 1 / .408);--violet-a7: color(display-p3 .588 .494 1 / .496);--violet-a8: color(display-p3 .596 .51 1 / .631);--violet-a9: color(display-p3 .522 .424 1 / .769);--violet-a10: color(display-p3 .576 .482 1 / .811);--violet-a11: color(display-p3 .72 .65 1);--violet-a12: color(display-p3 .883 .867 .986);--yellow-1: color(display-p3 .078 .069 .047);--yellow-2: color(display-p3 .103 .094 .063);--yellow-3: color(display-p3 .168 .137 .039);--yellow-4: color(display-p3 .209 .169 0);--yellow-5: color(display-p3 .255 .209 0);--yellow-6: color(display-p3 .31 .261 .07);--yellow-7: color(display-p3 .389 .331 .135);--yellow-8: color(display-p3 .497 .42 .182);--yellow-9: color(display-p3 1 .92 .22);--yellow-10: color(display-p3 1 1 .456);--yellow-11: color(display-p3 .948 .885 .392);--yellow-12: color(display-p3 .959 .934 .731);--yellow-a1: color(display-p3 .973 .369 0 / .013);--yellow-a2: color(display-p3 .996 .792 0 / .038);--yellow-a3: color(display-p3 .996 .71 0 / .11);--yellow-a4: color(display-p3 .996 .741 0 / .152);--yellow-a5: color(display-p3 .996 .765 0 / .202);--yellow-a6: color(display-p3 .996 .816 .082 / .261);--yellow-a7: color(display-p3 1 .831 .263 / .345);--yellow-a8: color(display-p3 1 .831 .314 / .463);--yellow-a9: color(display-p3 1 .922 .22);--yellow-a10: color(display-p3 1 1 .455);--yellow-a11: color(display-p3 .948 .885 .392);--yellow-a12: color(display-p3 .959 .934 .731);--gray-surface: color(display-p3 .1255 .1255 .1255 / .5);--mauve-surface: color(display-p3 .1333 .1255 .1333 / .5);--slate-surface: color(display-p3 .1176 .1255 .1333 / .5);--sage-surface: color(display-p3 .1176 .1255 .1176 / .5);--olive-surface: color(display-p3 .1176 .1255 .1176 / .5);--sand-surface: color(display-p3 .1255 .1255 .1255 / .5);--amber-surface: color(display-p3 .1412 .1176 .0784 / .5);--blue-surface: color(display-p3 .0706 .1255 .2196 / .5);--bronze-surface: color(display-p3 .1412 .1255 .1176 / .5);--brown-surface: color(display-p3 .1412 .1176 .102 / .5);--crimson-surface: color(display-p3 .1647 .0863 .1176 / .5);--cyan-surface: color(display-p3 .0784 .1412 .1725 / .5);--gold-surface: color(display-p3 .1412 .1333 .1098 / .5);--grass-surface: color(display-p3 .102 .1333 .102 / .5);--green-surface: color(display-p3 .0941 .1412 .1098 / .5);--indigo-surface: color(display-p3 .0941 .1098 .2196 / .5);--iris-surface: color(display-p3 .1098 .102 .2118 / .5);--jade-surface: color(display-p3 .0863 .149 .1176 / .5);--lime-surface: color(display-p3 .1098 .1255 .0784 / .5);--mint-surface: color(display-p3 .0941 .149 .1412 / .5);--orange-surface: color(display-p3 .1412 .1098 .0706 / .5);--pink-surface: color(display-p3 .1725 .0784 .149 / .5);--plum-surface: color(display-p3 .1647 .0863 .1725 / .5);--purple-surface: color(display-p3 .149 .0941 .1961 / .5);--red-surface: color(display-p3 .1647 .0863 .0863 / .5);--ruby-surface: color(display-p3 .1569 .0941 .1098 / .5);--sky-surface: color(display-p3 .0863 .1333 .2196 / .5);--teal-surface: color(display-p3 .0863 .149 .1412 / .5);--tomato-surface: color(display-p3 .1569 .0941 .0784 / .5);--violet-surface: color(display-p3 .1333 .102 .2118 / .5);--yellow-surface: color(display-p3 .1333 .1176 .0706 / .5)}}}:root{--gray-contrast: white;--mauve-contrast: white;--slate-contrast: white;--sage-contrast: white;--olive-contrast: white;--sand-contrast: white;--amber-contrast: #21201c;--blue-contrast: white;--bronze-contrast: white;--brown-contrast: white;--crimson-contrast: white;--cyan-contrast: white;--gold-contrast: white;--grass-contrast: white;--green-contrast: white;--indigo-contrast: white;--iris-contrast: white;--jade-contrast: white;--lime-contrast: #1d211c;--mint-contrast: #1a211e;--orange-contrast: white;--pink-contrast: white;--plum-contrast: white;--purple-contrast: white;--red-contrast: white;--ruby-contrast: white;--sky-contrast: #1c2024;--teal-contrast: white;--tomato-contrast: white;--violet-contrast: white;--yellow-contrast: #21201c;--black-a1: rgba(0, 0, 0, .05);--black-a2: rgba(0, 0, 0, .1);--black-a3: rgba(0, 0, 0, .15);--black-a4: rgba(0, 0, 0, .2);--black-a5: rgba(0, 0, 0, .3);--black-a6: rgba(0, 0, 0, .4);--black-a7: rgba(0, 0, 0, .5);--black-a8: rgba(0, 0, 0, .6);--black-a9: rgba(0, 0, 0, .7);--black-a10: rgba(0, 0, 0, .8);--black-a11: rgba(0, 0, 0, .9);--black-a12: rgba(0, 0, 0, .95);--white-a1: rgba(255, 255, 255, .05);--white-a2: rgba(255, 255, 255, .1);--white-a3: rgba(255, 255, 255, .15);--white-a4: rgba(255, 255, 255, .2);--white-a5: rgba(255, 255, 255, .3);--white-a6: rgba(255, 255, 255, .4);--white-a7: rgba(255, 255, 255, .5);--white-a8: rgba(255, 255, 255, .6);--white-a9: rgba(255, 255, 255, .7);--white-a10: rgba(255, 255, 255, .8);--white-a11: rgba(255, 255, 255, .9);--white-a12: rgba(255, 255, 255, .95)}@supports (color: color-mix(in oklab,white,black)){.dark,.dark-theme{--amber-track: color-mix(in oklab, var(--amber-8), var(--amber-9) 75%);--lime-track: color-mix(in oklab, var(--lime-8), var(--lime-9) 65%);--mint-track: color-mix(in oklab, var(--mint-8), var(--mint-9) 65%);--sky-track: color-mix(in oklab, var(--sky-8), var(--sky-9) 65%);--yellow-track: color-mix(in oklab, var(--yellow-8), var(--yellow-9) 65%)}}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){:root{--black-a1: color(display-p3 0 0 0 / .05);--black-a2: color(display-p3 0 0 0 / .1);--black-a3: color(display-p3 0 0 0 / .15);--black-a4: color(display-p3 0 0 0 / .2);--black-a5: color(display-p3 0 0 0 / .3);--black-a6: color(display-p3 0 0 0 / .4);--black-a7: color(display-p3 0 0 0 / .5);--black-a8: color(display-p3 0 0 0 / .6);--black-a9: color(display-p3 0 0 0 / .7);--black-a10: color(display-p3 0 0 0 / .8);--black-a11: color(display-p3 0 0 0 / .9);--black-a12: color(display-p3 0 0 0 / .95);--white-a1: color(display-p3 1 1 1 / .05);--white-a2: color(display-p3 1 1 1 / .1);--white-a3: color(display-p3 1 1 1 / .15);--white-a4: color(display-p3 1 1 1 / .2);--white-a5: color(display-p3 1 1 1 / .3);--white-a6: color(display-p3 1 1 1 / .4);--white-a7: color(display-p3 1 1 1 / .5);--white-a8: color(display-p3 1 1 1 / .6);--white-a9: color(display-p3 1 1 1 / .7);--white-a10: color(display-p3 1 1 1 / .8);--white-a11: color(display-p3 1 1 1 / .9);--white-a12: color(display-p3 1 1 1 / .95)}}}:where(.radix-themes){--color-background: white;--color-overlay: var(--black-a6);--color-panel-solid: white;--color-panel-translucent: rgba(255, 255, 255, .7);--color-surface: rgba(255, 255, 255, .85);--color-transparent: rgb(0 0 0 / 0);--shadow-1: inset 0 0 0 1px var(--gray-a5), inset 0 1.5px 2px 0 var(--gray-a2), inset 0 1.5px 2px 0 var(--black-a2);--shadow-2: 0 0 0 1px var(--gray-a3), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--shadow-3: 0 0 0 1px var(--gray-a3), 0 2px 3px -2px var(--gray-a3), 0 3px 12px -4px var(--black-a2), 0 4px 16px -8px var(--black-a2);--shadow-4: 0 0 0 1px var(--gray-a3), 0 8px 40px var(--black-a1), 0 12px 32px -16px var(--gray-a3);--shadow-5: 0 0 0 1px var(--gray-a3), 0 12px 60px var(--black-a3), 0 12px 32px -16px var(--gray-a5);--shadow-6: 0 0 0 1px var(--gray-a3), 0 12px 60px var(--black-a3), 0 16px 64px var(--gray-a2), 0 16px 36px -20px var(--gray-a7);--base-button-classic-after-inset: 2px;--base-button-classic-box-shadow-top: inset 0 0 0 1px var(--gray-a4), inset 0 -2px 1px var(--gray-a3);--base-button-classic-box-shadow-bottom: inset 0 4px 2px -2px var(--white-a9), inset 0 2px 1px -1px var(--white-a9);--base-button-classic-disabled-box-shadow: var(--base-button-classic-box-shadow-top), var(--base-button-classic-box-shadow-bottom);--base-button-classic-active-filter: brightness(.92) saturate(1.1);--base-button-classic-high-contrast-hover-filter: contrast(.88) saturate(1.1) brightness(1.1);--base-button-classic-high-contrast-active-filter: contrast(.82) saturate(1.2) brightness(1.16);--base-button-solid-active-filter: brightness(.92) saturate(1.1);--base-button-solid-high-contrast-hover-filter: contrast(.88) saturate(1.1) brightness(1.1);--base-button-solid-high-contrast-active-filter: contrast(.82) saturate(1.2) brightness(1.16);--kbd-box-shadow: inset 0 -.05em .5em var(--gray-a2), inset 0 .05em var(--white-a12), inset 0 .25em .5em var(--gray-a2), inset 0 -.05em var(--gray-a6), 0 0 0 .05em var(--gray-a5), 0 .08em .17em var(--gray-a7);--progress-indicator-after-linear-gradient: var(--white-a5), var(--white-a9), var(--white-a5);--segmented-control-indicator-background-color: var(--color-background);--select-trigger-classic-box-shadow: inset 0 0 0 1px var(--gray-a5), inset 0 2px 1px var(--white-a11), inset 0 -2px 1px var(--gray-a4) ;--slider-range-high-contrast-background-image: linear-gradient(var(--black-a8), var(--black-a8));--slider-disabled-blend-mode: multiply;--switch-disabled-blend-mode: multiply;--switch-high-contrast-checked-color-overlay: var(--black-a8);--switch-high-contrast-checked-active-before-filter: contrast(.82) saturate(1.2) brightness(1.16);--switch-surface-checked-active-filter: brightness(.92) saturate(1.1);--base-card-surface-box-shadow: 0 0 0 1px var(--gray-a5);--base-card-surface-hover-box-shadow: 0 0 0 1px var(--gray-a7);--base-card-surface-active-box-shadow: 0 0 0 1px var(--gray-a6);--base-card-classic-box-shadow-inner: 0 0 0 1px var(--base-card-classic-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--base-card-classic-box-shadow-outer: 0 0 0 0 var(--base-card-classic-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a1), 0 1px 1px -1px var(--gray-a2), 0 2px 1px -2px var(--black-a1), 0 1px 3px -1px var(--black-a1);--base-card-classic-hover-box-shadow-inner: 0 0 0 1px var(--base-card-classic-hover-border-color), 0 1px 1px 1px var(--black-a1), 0 2px 1px -1px var(--gray-a3), 0 2px 3px -2px var(--black-a1), 0 3px 12px -4px var(--gray-a3), 0 4px 16px -8px var(--black-a1);--base-card-classic-hover-box-shadow-outer: 0 0 0 0 var(--base-card-classic-hover-border-color), 0 1px 1px 0 var(--black-a1), 0 2px 1px -2px var(--gray-a3), 0 2px 3px -3px var(--black-a1), 0 3px 12px -5px var(--gray-a3), 0 4px 16px -9px var(--black-a1);--base-card-classic-active-box-shadow-inner: 0 0 0 1px var(--base-card-classic-active-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a4), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--base-card-classic-active-box-shadow-outer: 0 0 0 0 var(--base-card-classic-active-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a1), 0 1px 1px -1px var(--gray-a4), 0 2px 1px -2px var(--black-a1), 0 1px 3px -1px var(--black-a1);--base-card-classic-border-color: var(--gray-a3);--base-card-classic-hover-border-color: var(--gray-a3);--base-card-classic-active-border-color: var(--gray-a4)}:is(.dark,.dark-theme),:is(.dark,.dark-theme) :where(.radix-themes:not(.light,.light-theme)){--color-background: var(--gray-1);--color-overlay: var(--black-a8);--color-panel-solid: var(--gray-2);--color-panel-translucent: var(--gray-a2);--color-surface: rgba(0, 0, 0, .25);--shadow-1: inset 0 -1px 1px 0 var(--gray-a3), inset 0 0 0 1px var(--gray-a3), inset 0 3px 4px 0 var(--black-a5), inset 0 0 0 1px var(--gray-a4);--shadow-2: 0 0 0 1px var(--gray-a6), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--shadow-3: 0 0 0 1px var(--gray-a6), 0 2px 3px -2px var(--black-a3), 0 3px 8px -2px var(--black-a6), 0 4px 12px -4px var(--black-a7);--shadow-4: 0 0 0 1px var(--gray-a6), 0 8px 40px var(--black-a3), 0 12px 32px -16px var(--black-a5);--shadow-5: 0 0 0 1px var(--gray-a6), 0 12px 60px var(--black-a5), 0 12px 32px -16px var(--black-a7);--shadow-6: 0 0 0 1px var(--gray-a6), 0 12px 60px var(--black-a4), 0 16px 64px var(--black-a6), 0 16px 36px -20px var(--black-a11);--base-button-classic-after-inset: 1px;--base-button-classic-box-shadow-top: inset 0 0 0 1px var(--white-a2), inset 0 4px 2px -2px var(--white-a3), inset 0 1px 1px var(--white-a6), inset 0 -1px 1px var(--black-a6);--base-button-classic-box-shadow-bottom: 0 0 transparent;--base-button-classic-disabled-box-shadow: inset 0 0 0 1px var(--gray-a5), inset 0 4px 2px -2px var(--gray-a2), inset 0 1px 1px var(--gray-a5), inset 0 -1px 1px var(--black-a3), inset 0 0 0 1px var(--gray-a2);--base-button-classic-active-filter: brightness(1.08);--base-button-classic-high-contrast-hover-filter: contrast(.88) saturate(1.3) brightness(1.14);--base-button-classic-high-contrast-active-filter: brightness(.95) saturate(1.2);--base-button-solid-active-filter: brightness(1.08);--base-button-solid-high-contrast-hover-filter: contrast(.88) saturate(1.3) brightness(1.18);--base-button-solid-high-contrast-active-filter: brightness(.95) saturate(1.2);--kbd-box-shadow: inset 0 -.05em .5em var(--gray-a3), inset 0 .05em var(--gray-a11), inset 0 .25em .5em var(--gray-a2), inset 0 -.1em var(--black-a11), 0 0 0 .075em var(--gray-a7), 0 .08em .17em var(--black-a12);--progress-indicator-after-linear-gradient: var(--white-a3), var(--white-a6), var(--white-a3);--segmented-control-indicator-background-color: var(--gray-a3);--select-trigger-classic-box-shadow: inset 0 0 0 1px var(--white-a4), inset 0 1px 1px var(--white-a4), inset 0 -1px 1px var(--black-a9) ;--slider-range-high-contrast-background-image: none;--slider-disabled-blend-mode: screen;--switch-disabled-blend-mode: screen;--switch-high-contrast-checked-color-overlay: transparent;--switch-high-contrast-checked-active-before-filter: brightness(1.08);--switch-surface-checked-active-filter: brightness(1.08);--base-card-classic-box-shadow-inner: 0 0 0 1px var(--base-card-classic-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--base-card-classic-box-shadow-outer: 0 0 0 0 var(--base-card-classic-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a3), 0 1px 1px -1px var(--black-a6), 0 2px 1px -2px var(--black-a6), 0 1px 3px -1px var(--black-a5);--base-card-classic-hover-box-shadow-inner: 0 0 0 1px var(--base-card-classic-hover-border-color), 0 0 1px 1px var(--gray-a4), 0 0 1px -1px var(--gray-a4), 0 0 3px -2px var(--gray-a3), 0 0 12px -2px var(--gray-a3), 0 0 16px -8px var(--gray-a7);--base-card-classic-hover-box-shadow-outer: 0 0 0 0 var(--base-card-classic-hover-border-color), 0 0 1px 0 var(--gray-a4), 0 0 1px -2px var(--gray-a4), 0 0 3px -3px var(--gray-a3), 0 0 12px -3px var(--gray-a3), 0 0 16px -9px var(--gray-a7);--base-card-classic-active-box-shadow-inner: 0 0 0 1px var(--base-card-classic-active-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--base-card-classic-active-box-shadow-outer: 0 0 0 0 var(--base-card-classic-active-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a3), 0 1px 1px -1px var(--black-a6), 0 2px 1px -2px var(--black-a6), 0 1px 3px -1px var(--black-a5);--base-card-classic-border-color: var(--gray-a6);--base-card-classic-hover-border-color: var(--gray-a6);--base-card-classic-active-border-color: var(--gray-a6)}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){.radix-themes{--color-transparent: color(display-p3 0 0 0 / 0)}}}.radix-themes:where(.light,.light-theme),:root:where(:has(.radix-themes[data-is-root-theme=true]:where(.light,.light-theme))){color-scheme:light}.radix-themes:where(.dark,.dark-theme),:root:where(:has(.radix-themes[data-is-root-theme=true]:where(.dark,.dark-theme))){color-scheme:dark}.radix-themes,[data-accent-color]:where(:not([data-accent-color=""],[data-accent-color=gray])){--focus-1: var(--accent-1);--focus-2: var(--accent-2);--focus-3: var(--accent-3);--focus-4: var(--accent-4);--focus-5: var(--accent-5);--focus-6: var(--accent-6);--focus-7: var(--accent-7);--focus-8: var(--accent-8);--focus-9: var(--accent-9);--focus-10: var(--accent-10);--focus-11: var(--accent-11);--focus-12: var(--accent-12);--focus-a1: var(--accent-a1);--focus-a2: var(--accent-a2);--focus-a3: var(--accent-a3);--focus-a4: var(--accent-a4);--focus-a5: var(--accent-a5);--focus-a6: var(--accent-a6);--focus-a7: var(--accent-a7);--focus-a8: var(--accent-a8);--focus-a9: var(--accent-a9);--focus-a10: var(--accent-a10);--focus-a11: var(--accent-a11);--focus-a12: var(--accent-a12)}.radix-themes ::selection{background-color:var(--focus-a5)}.radix-themes:where([data-has-background=true]){background-color:var(--color-background)}.radix-themes:where([data-panel-background=solid]){--color-panel: var(--color-panel-solid);--backdrop-filter-panel: none}.radix-themes:where([data-panel-background=translucent]){--color-panel: var(--color-panel-translucent);--backdrop-filter-panel: blur(64px)}[data-accent-color=amber]{--accent-1: var(--amber-1);--accent-2: var(--amber-2);--accent-3: var(--amber-3);--accent-4: var(--amber-4);--accent-5: var(--amber-5);--accent-6: var(--amber-6);--accent-7: var(--amber-7);--accent-8: var(--amber-8);--accent-9: var(--amber-9);--accent-10: var(--amber-10);--accent-11: var(--amber-11);--accent-12: var(--amber-12);--accent-a1: var(--amber-a1);--accent-a2: var(--amber-a2);--accent-a3: var(--amber-a3);--accent-a4: var(--amber-a4);--accent-a5: var(--amber-a5);--accent-a6: var(--amber-a6);--accent-a7: var(--amber-a7);--accent-a8: var(--amber-a8);--accent-a9: var(--amber-a9);--accent-a10: var(--amber-a10);--accent-a11: var(--amber-a11);--accent-a12: var(--amber-a12);--accent-contrast: var(--amber-contrast);--accent-surface: var(--amber-surface);--accent-indicator: var(--amber-indicator);--accent-track: var(--amber-track)}[data-accent-color=blue]{--accent-1: var(--blue-1);--accent-2: var(--blue-2);--accent-3: var(--blue-3);--accent-4: var(--blue-4);--accent-5: var(--blue-5);--accent-6: var(--blue-6);--accent-7: var(--blue-7);--accent-8: var(--blue-8);--accent-9: var(--blue-9);--accent-10: var(--blue-10);--accent-11: var(--blue-11);--accent-12: var(--blue-12);--accent-a1: var(--blue-a1);--accent-a2: var(--blue-a2);--accent-a3: var(--blue-a3);--accent-a4: var(--blue-a4);--accent-a5: var(--blue-a5);--accent-a6: var(--blue-a6);--accent-a7: var(--blue-a7);--accent-a8: var(--blue-a8);--accent-a9: var(--blue-a9);--accent-a10: var(--blue-a10);--accent-a11: var(--blue-a11);--accent-a12: var(--blue-a12);--accent-contrast: var(--blue-contrast);--accent-surface: var(--blue-surface);--accent-indicator: var(--blue-indicator);--accent-track: var(--blue-track)}[data-accent-color=bronze]{--accent-1: var(--bronze-1);--accent-2: var(--bronze-2);--accent-3: var(--bronze-3);--accent-4: var(--bronze-4);--accent-5: var(--bronze-5);--accent-6: var(--bronze-6);--accent-7: var(--bronze-7);--accent-8: var(--bronze-8);--accent-9: var(--bronze-9);--accent-10: var(--bronze-10);--accent-11: var(--bronze-11);--accent-12: var(--bronze-12);--accent-a1: var(--bronze-a1);--accent-a2: var(--bronze-a2);--accent-a3: var(--bronze-a3);--accent-a4: var(--bronze-a4);--accent-a5: var(--bronze-a5);--accent-a6: var(--bronze-a6);--accent-a7: var(--bronze-a7);--accent-a8: var(--bronze-a8);--accent-a9: var(--bronze-a9);--accent-a10: var(--bronze-a10);--accent-a11: var(--bronze-a11);--accent-a12: var(--bronze-a12);--accent-contrast: var(--bronze-contrast);--accent-surface: var(--bronze-surface);--accent-indicator: var(--bronze-indicator);--accent-track: var(--bronze-track)}[data-accent-color=brown]{--accent-1: var(--brown-1);--accent-2: var(--brown-2);--accent-3: var(--brown-3);--accent-4: var(--brown-4);--accent-5: var(--brown-5);--accent-6: var(--brown-6);--accent-7: var(--brown-7);--accent-8: var(--brown-8);--accent-9: var(--brown-9);--accent-10: var(--brown-10);--accent-11: var(--brown-11);--accent-12: var(--brown-12);--accent-a1: var(--brown-a1);--accent-a2: var(--brown-a2);--accent-a3: var(--brown-a3);--accent-a4: var(--brown-a4);--accent-a5: var(--brown-a5);--accent-a6: var(--brown-a6);--accent-a7: var(--brown-a7);--accent-a8: var(--brown-a8);--accent-a9: var(--brown-a9);--accent-a10: var(--brown-a10);--accent-a11: var(--brown-a11);--accent-a12: var(--brown-a12);--accent-contrast: var(--brown-contrast);--accent-surface: var(--brown-surface);--accent-indicator: var(--brown-indicator);--accent-track: var(--brown-track)}[data-accent-color=crimson]{--accent-1: var(--crimson-1);--accent-2: var(--crimson-2);--accent-3: var(--crimson-3);--accent-4: var(--crimson-4);--accent-5: var(--crimson-5);--accent-6: var(--crimson-6);--accent-7: var(--crimson-7);--accent-8: var(--crimson-8);--accent-9: var(--crimson-9);--accent-10: var(--crimson-10);--accent-11: var(--crimson-11);--accent-12: var(--crimson-12);--accent-a1: var(--crimson-a1);--accent-a2: var(--crimson-a2);--accent-a3: var(--crimson-a3);--accent-a4: var(--crimson-a4);--accent-a5: var(--crimson-a5);--accent-a6: var(--crimson-a6);--accent-a7: var(--crimson-a7);--accent-a8: var(--crimson-a8);--accent-a9: var(--crimson-a9);--accent-a10: var(--crimson-a10);--accent-a11: var(--crimson-a11);--accent-a12: var(--crimson-a12);--accent-contrast: var(--crimson-contrast);--accent-surface: var(--crimson-surface);--accent-indicator: var(--crimson-indicator);--accent-track: var(--crimson-track)}[data-accent-color=cyan]{--accent-1: var(--cyan-1);--accent-2: var(--cyan-2);--accent-3: var(--cyan-3);--accent-4: var(--cyan-4);--accent-5: var(--cyan-5);--accent-6: var(--cyan-6);--accent-7: var(--cyan-7);--accent-8: var(--cyan-8);--accent-9: var(--cyan-9);--accent-10: var(--cyan-10);--accent-11: var(--cyan-11);--accent-12: var(--cyan-12);--accent-a1: var(--cyan-a1);--accent-a2: var(--cyan-a2);--accent-a3: var(--cyan-a3);--accent-a4: var(--cyan-a4);--accent-a5: var(--cyan-a5);--accent-a6: var(--cyan-a6);--accent-a7: var(--cyan-a7);--accent-a8: var(--cyan-a8);--accent-a9: var(--cyan-a9);--accent-a10: var(--cyan-a10);--accent-a11: var(--cyan-a11);--accent-a12: var(--cyan-a12);--accent-contrast: var(--cyan-contrast);--accent-surface: var(--cyan-surface);--accent-indicator: var(--cyan-indicator);--accent-track: var(--cyan-track)}[data-accent-color=gold]{--accent-1: var(--gold-1);--accent-2: var(--gold-2);--accent-3: var(--gold-3);--accent-4: var(--gold-4);--accent-5: var(--gold-5);--accent-6: var(--gold-6);--accent-7: var(--gold-7);--accent-8: var(--gold-8);--accent-9: var(--gold-9);--accent-10: var(--gold-10);--accent-11: var(--gold-11);--accent-12: var(--gold-12);--accent-a1: var(--gold-a1);--accent-a2: var(--gold-a2);--accent-a3: var(--gold-a3);--accent-a4: var(--gold-a4);--accent-a5: var(--gold-a5);--accent-a6: var(--gold-a6);--accent-a7: var(--gold-a7);--accent-a8: var(--gold-a8);--accent-a9: var(--gold-a9);--accent-a10: var(--gold-a10);--accent-a11: var(--gold-a11);--accent-a12: var(--gold-a12);--accent-contrast: var(--gold-contrast);--accent-surface: var(--gold-surface);--accent-indicator: var(--gold-indicator);--accent-track: var(--gold-track)}[data-accent-color=grass]{--accent-1: var(--grass-1);--accent-2: var(--grass-2);--accent-3: var(--grass-3);--accent-4: var(--grass-4);--accent-5: var(--grass-5);--accent-6: var(--grass-6);--accent-7: var(--grass-7);--accent-8: var(--grass-8);--accent-9: var(--grass-9);--accent-10: var(--grass-10);--accent-11: var(--grass-11);--accent-12: var(--grass-12);--accent-a1: var(--grass-a1);--accent-a2: var(--grass-a2);--accent-a3: var(--grass-a3);--accent-a4: var(--grass-a4);--accent-a5: var(--grass-a5);--accent-a6: var(--grass-a6);--accent-a7: var(--grass-a7);--accent-a8: var(--grass-a8);--accent-a9: var(--grass-a9);--accent-a10: var(--grass-a10);--accent-a11: var(--grass-a11);--accent-a12: var(--grass-a12);--accent-contrast: var(--grass-contrast);--accent-surface: var(--grass-surface);--accent-indicator: var(--grass-indicator);--accent-track: var(--grass-track)}[data-accent-color=gray]{--accent-1: var(--gray-1);--accent-2: var(--gray-2);--accent-3: var(--gray-3);--accent-4: var(--gray-4);--accent-5: var(--gray-5);--accent-6: var(--gray-6);--accent-7: var(--gray-7);--accent-8: var(--gray-8);--accent-9: var(--gray-9);--accent-10: var(--gray-10);--accent-11: var(--gray-11);--accent-12: var(--gray-12);--accent-a1: var(--gray-a1);--accent-a2: var(--gray-a2);--accent-a3: var(--gray-a3);--accent-a4: var(--gray-a4);--accent-a5: var(--gray-a5);--accent-a6: var(--gray-a6);--accent-a7: var(--gray-a7);--accent-a8: var(--gray-a8);--accent-a9: var(--gray-a9);--accent-a10: var(--gray-a10);--accent-a11: var(--gray-a11);--accent-a12: var(--gray-a12);--accent-contrast: var(--gray-contrast);--accent-surface: var(--gray-surface);--accent-indicator: var(--gray-indicator);--accent-track: var(--gray-track)}[data-accent-color=green]{--accent-1: var(--green-1);--accent-2: var(--green-2);--accent-3: var(--green-3);--accent-4: var(--green-4);--accent-5: var(--green-5);--accent-6: var(--green-6);--accent-7: var(--green-7);--accent-8: var(--green-8);--accent-9: var(--green-9);--accent-10: var(--green-10);--accent-11: var(--green-11);--accent-12: var(--green-12);--accent-a1: var(--green-a1);--accent-a2: var(--green-a2);--accent-a3: var(--green-a3);--accent-a4: var(--green-a4);--accent-a5: var(--green-a5);--accent-a6: var(--green-a6);--accent-a7: var(--green-a7);--accent-a8: var(--green-a8);--accent-a9: var(--green-a9);--accent-a10: var(--green-a10);--accent-a11: var(--green-a11);--accent-a12: var(--green-a12);--accent-contrast: var(--green-contrast);--accent-surface: var(--green-surface);--accent-indicator: var(--green-indicator);--accent-track: var(--green-track)}[data-accent-color=indigo]{--accent-1: var(--indigo-1);--accent-2: var(--indigo-2);--accent-3: var(--indigo-3);--accent-4: var(--indigo-4);--accent-5: var(--indigo-5);--accent-6: var(--indigo-6);--accent-7: var(--indigo-7);--accent-8: var(--indigo-8);--accent-9: var(--indigo-9);--accent-10: var(--indigo-10);--accent-11: var(--indigo-11);--accent-12: var(--indigo-12);--accent-a1: var(--indigo-a1);--accent-a2: var(--indigo-a2);--accent-a3: var(--indigo-a3);--accent-a4: var(--indigo-a4);--accent-a5: var(--indigo-a5);--accent-a6: var(--indigo-a6);--accent-a7: var(--indigo-a7);--accent-a8: var(--indigo-a8);--accent-a9: var(--indigo-a9);--accent-a10: var(--indigo-a10);--accent-a11: var(--indigo-a11);--accent-a12: var(--indigo-a12);--accent-contrast: var(--indigo-contrast);--accent-surface: var(--indigo-surface);--accent-indicator: var(--indigo-indicator);--accent-track: var(--indigo-track)}[data-accent-color=iris]{--accent-1: var(--iris-1);--accent-2: var(--iris-2);--accent-3: var(--iris-3);--accent-4: var(--iris-4);--accent-5: var(--iris-5);--accent-6: var(--iris-6);--accent-7: var(--iris-7);--accent-8: var(--iris-8);--accent-9: var(--iris-9);--accent-10: var(--iris-10);--accent-11: var(--iris-11);--accent-12: var(--iris-12);--accent-a1: var(--iris-a1);--accent-a2: var(--iris-a2);--accent-a3: var(--iris-a3);--accent-a4: var(--iris-a4);--accent-a5: var(--iris-a5);--accent-a6: var(--iris-a6);--accent-a7: var(--iris-a7);--accent-a8: var(--iris-a8);--accent-a9: var(--iris-a9);--accent-a10: var(--iris-a10);--accent-a11: var(--iris-a11);--accent-a12: var(--iris-a12);--accent-contrast: var(--iris-contrast);--accent-surface: var(--iris-surface);--accent-indicator: var(--iris-indicator);--accent-track: var(--iris-track)}[data-accent-color=jade]{--accent-1: var(--jade-1);--accent-2: var(--jade-2);--accent-3: var(--jade-3);--accent-4: var(--jade-4);--accent-5: var(--jade-5);--accent-6: var(--jade-6);--accent-7: var(--jade-7);--accent-8: var(--jade-8);--accent-9: var(--jade-9);--accent-10: var(--jade-10);--accent-11: var(--jade-11);--accent-12: var(--jade-12);--accent-a1: var(--jade-a1);--accent-a2: var(--jade-a2);--accent-a3: var(--jade-a3);--accent-a4: var(--jade-a4);--accent-a5: var(--jade-a5);--accent-a6: var(--jade-a6);--accent-a7: var(--jade-a7);--accent-a8: var(--jade-a8);--accent-a9: var(--jade-a9);--accent-a10: var(--jade-a10);--accent-a11: var(--jade-a11);--accent-a12: var(--jade-a12);--accent-contrast: var(--jade-contrast);--accent-surface: var(--jade-surface);--accent-indicator: var(--jade-indicator);--accent-track: var(--jade-track)}[data-accent-color=lime]{--accent-1: var(--lime-1);--accent-2: var(--lime-2);--accent-3: var(--lime-3);--accent-4: var(--lime-4);--accent-5: var(--lime-5);--accent-6: var(--lime-6);--accent-7: var(--lime-7);--accent-8: var(--lime-8);--accent-9: var(--lime-9);--accent-10: var(--lime-10);--accent-11: var(--lime-11);--accent-12: var(--lime-12);--accent-a1: var(--lime-a1);--accent-a2: var(--lime-a2);--accent-a3: var(--lime-a3);--accent-a4: var(--lime-a4);--accent-a5: var(--lime-a5);--accent-a6: var(--lime-a6);--accent-a7: var(--lime-a7);--accent-a8: var(--lime-a8);--accent-a9: var(--lime-a9);--accent-a10: var(--lime-a10);--accent-a11: var(--lime-a11);--accent-a12: var(--lime-a12);--accent-contrast: var(--lime-contrast);--accent-surface: var(--lime-surface);--accent-indicator: var(--lime-indicator);--accent-track: var(--lime-track)}[data-accent-color=mint]{--accent-1: var(--mint-1);--accent-2: var(--mint-2);--accent-3: var(--mint-3);--accent-4: var(--mint-4);--accent-5: var(--mint-5);--accent-6: var(--mint-6);--accent-7: var(--mint-7);--accent-8: var(--mint-8);--accent-9: var(--mint-9);--accent-10: var(--mint-10);--accent-11: var(--mint-11);--accent-12: var(--mint-12);--accent-a1: var(--mint-a1);--accent-a2: var(--mint-a2);--accent-a3: var(--mint-a3);--accent-a4: var(--mint-a4);--accent-a5: var(--mint-a5);--accent-a6: var(--mint-a6);--accent-a7: var(--mint-a7);--accent-a8: var(--mint-a8);--accent-a9: var(--mint-a9);--accent-a10: var(--mint-a10);--accent-a11: var(--mint-a11);--accent-a12: var(--mint-a12);--accent-contrast: var(--mint-contrast);--accent-surface: var(--mint-surface);--accent-indicator: var(--mint-indicator);--accent-track: var(--mint-track)}[data-accent-color=orange]{--accent-1: var(--orange-1);--accent-2: var(--orange-2);--accent-3: var(--orange-3);--accent-4: var(--orange-4);--accent-5: var(--orange-5);--accent-6: var(--orange-6);--accent-7: var(--orange-7);--accent-8: var(--orange-8);--accent-9: var(--orange-9);--accent-10: var(--orange-10);--accent-11: var(--orange-11);--accent-12: var(--orange-12);--accent-a1: var(--orange-a1);--accent-a2: var(--orange-a2);--accent-a3: var(--orange-a3);--accent-a4: var(--orange-a4);--accent-a5: var(--orange-a5);--accent-a6: var(--orange-a6);--accent-a7: var(--orange-a7);--accent-a8: var(--orange-a8);--accent-a9: var(--orange-a9);--accent-a10: var(--orange-a10);--accent-a11: var(--orange-a11);--accent-a12: var(--orange-a12);--accent-contrast: var(--orange-contrast);--accent-surface: var(--orange-surface);--accent-indicator: var(--orange-indicator);--accent-track: var(--orange-track)}[data-accent-color=pink]{--accent-1: var(--pink-1);--accent-2: var(--pink-2);--accent-3: var(--pink-3);--accent-4: var(--pink-4);--accent-5: var(--pink-5);--accent-6: var(--pink-6);--accent-7: var(--pink-7);--accent-8: var(--pink-8);--accent-9: var(--pink-9);--accent-10: var(--pink-10);--accent-11: var(--pink-11);--accent-12: var(--pink-12);--accent-a1: var(--pink-a1);--accent-a2: var(--pink-a2);--accent-a3: var(--pink-a3);--accent-a4: var(--pink-a4);--accent-a5: var(--pink-a5);--accent-a6: var(--pink-a6);--accent-a7: var(--pink-a7);--accent-a8: var(--pink-a8);--accent-a9: var(--pink-a9);--accent-a10: var(--pink-a10);--accent-a11: var(--pink-a11);--accent-a12: var(--pink-a12);--accent-contrast: var(--pink-contrast);--accent-surface: var(--pink-surface);--accent-indicator: var(--pink-indicator);--accent-track: var(--pink-track)}[data-accent-color=plum]{--accent-1: var(--plum-1);--accent-2: var(--plum-2);--accent-3: var(--plum-3);--accent-4: var(--plum-4);--accent-5: var(--plum-5);--accent-6: var(--plum-6);--accent-7: var(--plum-7);--accent-8: var(--plum-8);--accent-9: var(--plum-9);--accent-10: var(--plum-10);--accent-11: var(--plum-11);--accent-12: var(--plum-12);--accent-a1: var(--plum-a1);--accent-a2: var(--plum-a2);--accent-a3: var(--plum-a3);--accent-a4: var(--plum-a4);--accent-a5: var(--plum-a5);--accent-a6: var(--plum-a6);--accent-a7: var(--plum-a7);--accent-a8: var(--plum-a8);--accent-a9: var(--plum-a9);--accent-a10: var(--plum-a10);--accent-a11: var(--plum-a11);--accent-a12: var(--plum-a12);--accent-contrast: var(--plum-contrast);--accent-surface: var(--plum-surface);--accent-indicator: var(--plum-indicator);--accent-track: var(--plum-track)}[data-accent-color=purple]{--accent-1: var(--purple-1);--accent-2: var(--purple-2);--accent-3: var(--purple-3);--accent-4: var(--purple-4);--accent-5: var(--purple-5);--accent-6: var(--purple-6);--accent-7: var(--purple-7);--accent-8: var(--purple-8);--accent-9: var(--purple-9);--accent-10: var(--purple-10);--accent-11: var(--purple-11);--accent-12: var(--purple-12);--accent-a1: var(--purple-a1);--accent-a2: var(--purple-a2);--accent-a3: var(--purple-a3);--accent-a4: var(--purple-a4);--accent-a5: var(--purple-a5);--accent-a6: var(--purple-a6);--accent-a7: var(--purple-a7);--accent-a8: var(--purple-a8);--accent-a9: var(--purple-a9);--accent-a10: var(--purple-a10);--accent-a11: var(--purple-a11);--accent-a12: var(--purple-a12);--accent-contrast: var(--purple-contrast);--accent-surface: var(--purple-surface);--accent-indicator: var(--purple-indicator);--accent-track: var(--purple-track)}[data-accent-color=red]{--accent-1: var(--red-1);--accent-2: var(--red-2);--accent-3: var(--red-3);--accent-4: var(--red-4);--accent-5: var(--red-5);--accent-6: var(--red-6);--accent-7: var(--red-7);--accent-8: var(--red-8);--accent-9: var(--red-9);--accent-10: var(--red-10);--accent-11: var(--red-11);--accent-12: var(--red-12);--accent-a1: var(--red-a1);--accent-a2: var(--red-a2);--accent-a3: var(--red-a3);--accent-a4: var(--red-a4);--accent-a5: var(--red-a5);--accent-a6: var(--red-a6);--accent-a7: var(--red-a7);--accent-a8: var(--red-a8);--accent-a9: var(--red-a9);--accent-a10: var(--red-a10);--accent-a11: var(--red-a11);--accent-a12: var(--red-a12);--accent-contrast: var(--red-contrast);--accent-surface: var(--red-surface);--accent-indicator: var(--red-indicator);--accent-track: var(--red-track)}[data-accent-color=ruby]{--accent-1: var(--ruby-1);--accent-2: var(--ruby-2);--accent-3: var(--ruby-3);--accent-4: var(--ruby-4);--accent-5: var(--ruby-5);--accent-6: var(--ruby-6);--accent-7: var(--ruby-7);--accent-8: var(--ruby-8);--accent-9: var(--ruby-9);--accent-10: var(--ruby-10);--accent-11: var(--ruby-11);--accent-12: var(--ruby-12);--accent-a1: var(--ruby-a1);--accent-a2: var(--ruby-a2);--accent-a3: var(--ruby-a3);--accent-a4: var(--ruby-a4);--accent-a5: var(--ruby-a5);--accent-a6: var(--ruby-a6);--accent-a7: var(--ruby-a7);--accent-a8: var(--ruby-a8);--accent-a9: var(--ruby-a9);--accent-a10: var(--ruby-a10);--accent-a11: var(--ruby-a11);--accent-a12: var(--ruby-a12);--accent-contrast: var(--ruby-contrast);--accent-surface: var(--ruby-surface);--accent-indicator: var(--ruby-indicator);--accent-track: var(--ruby-track)}[data-accent-color=sky]{--accent-1: var(--sky-1);--accent-2: var(--sky-2);--accent-3: var(--sky-3);--accent-4: var(--sky-4);--accent-5: var(--sky-5);--accent-6: var(--sky-6);--accent-7: var(--sky-7);--accent-8: var(--sky-8);--accent-9: var(--sky-9);--accent-10: var(--sky-10);--accent-11: var(--sky-11);--accent-12: var(--sky-12);--accent-a1: var(--sky-a1);--accent-a2: var(--sky-a2);--accent-a3: var(--sky-a3);--accent-a4: var(--sky-a4);--accent-a5: var(--sky-a5);--accent-a6: var(--sky-a6);--accent-a7: var(--sky-a7);--accent-a8: var(--sky-a8);--accent-a9: var(--sky-a9);--accent-a10: var(--sky-a10);--accent-a11: var(--sky-a11);--accent-a12: var(--sky-a12);--accent-contrast: var(--sky-contrast);--accent-surface: var(--sky-surface);--accent-indicator: var(--sky-indicator);--accent-track: var(--sky-track)}[data-accent-color=teal]{--accent-1: var(--teal-1);--accent-2: var(--teal-2);--accent-3: var(--teal-3);--accent-4: var(--teal-4);--accent-5: var(--teal-5);--accent-6: var(--teal-6);--accent-7: var(--teal-7);--accent-8: var(--teal-8);--accent-9: var(--teal-9);--accent-10: var(--teal-10);--accent-11: var(--teal-11);--accent-12: var(--teal-12);--accent-a1: var(--teal-a1);--accent-a2: var(--teal-a2);--accent-a3: var(--teal-a3);--accent-a4: var(--teal-a4);--accent-a5: var(--teal-a5);--accent-a6: var(--teal-a6);--accent-a7: var(--teal-a7);--accent-a8: var(--teal-a8);--accent-a9: var(--teal-a9);--accent-a10: var(--teal-a10);--accent-a11: var(--teal-a11);--accent-a12: var(--teal-a12);--accent-contrast: var(--teal-contrast);--accent-surface: var(--teal-surface);--accent-indicator: var(--teal-indicator);--accent-track: var(--teal-track)}[data-accent-color=tomato]{--accent-1: var(--tomato-1);--accent-2: var(--tomato-2);--accent-3: var(--tomato-3);--accent-4: var(--tomato-4);--accent-5: var(--tomato-5);--accent-6: var(--tomato-6);--accent-7: var(--tomato-7);--accent-8: var(--tomato-8);--accent-9: var(--tomato-9);--accent-10: var(--tomato-10);--accent-11: var(--tomato-11);--accent-12: var(--tomato-12);--accent-a1: var(--tomato-a1);--accent-a2: var(--tomato-a2);--accent-a3: var(--tomato-a3);--accent-a4: var(--tomato-a4);--accent-a5: var(--tomato-a5);--accent-a6: var(--tomato-a6);--accent-a7: var(--tomato-a7);--accent-a8: var(--tomato-a8);--accent-a9: var(--tomato-a9);--accent-a10: var(--tomato-a10);--accent-a11: var(--tomato-a11);--accent-a12: var(--tomato-a12);--accent-contrast: var(--tomato-contrast);--accent-surface: var(--tomato-surface);--accent-indicator: var(--tomato-indicator);--accent-track: var(--tomato-track)}[data-accent-color=violet]{--accent-1: var(--violet-1);--accent-2: var(--violet-2);--accent-3: var(--violet-3);--accent-4: var(--violet-4);--accent-5: var(--violet-5);--accent-6: var(--violet-6);--accent-7: var(--violet-7);--accent-8: var(--violet-8);--accent-9: var(--violet-9);--accent-10: var(--violet-10);--accent-11: var(--violet-11);--accent-12: var(--violet-12);--accent-a1: var(--violet-a1);--accent-a2: var(--violet-a2);--accent-a3: var(--violet-a3);--accent-a4: var(--violet-a4);--accent-a5: var(--violet-a5);--accent-a6: var(--violet-a6);--accent-a7: var(--violet-a7);--accent-a8: var(--violet-a8);--accent-a9: var(--violet-a9);--accent-a10: var(--violet-a10);--accent-a11: var(--violet-a11);--accent-a12: var(--violet-a12);--accent-contrast: var(--violet-contrast);--accent-surface: var(--violet-surface);--accent-indicator: var(--violet-indicator);--accent-track: var(--violet-track)}[data-accent-color=yellow]{--accent-1: var(--yellow-1);--accent-2: var(--yellow-2);--accent-3: var(--yellow-3);--accent-4: var(--yellow-4);--accent-5: var(--yellow-5);--accent-6: var(--yellow-6);--accent-7: var(--yellow-7);--accent-8: var(--yellow-8);--accent-9: var(--yellow-9);--accent-10: var(--yellow-10);--accent-11: var(--yellow-11);--accent-12: var(--yellow-12);--accent-a1: var(--yellow-a1);--accent-a2: var(--yellow-a2);--accent-a3: var(--yellow-a3);--accent-a4: var(--yellow-a4);--accent-a5: var(--yellow-a5);--accent-a6: var(--yellow-a6);--accent-a7: var(--yellow-a7);--accent-a8: var(--yellow-a8);--accent-a9: var(--yellow-a9);--accent-a10: var(--yellow-a10);--accent-a11: var(--yellow-a11);--accent-a12: var(--yellow-a12);--accent-contrast: var(--yellow-contrast);--accent-surface: var(--yellow-surface);--accent-indicator: var(--yellow-indicator);--accent-track: var(--yellow-track)}.radix-themes:where([data-gray-color=mauve]){--gray-1: var(--mauve-1);--gray-2: var(--mauve-2);--gray-3: var(--mauve-3);--gray-4: var(--mauve-4);--gray-5: var(--mauve-5);--gray-6: var(--mauve-6);--gray-7: var(--mauve-7);--gray-8: var(--mauve-8);--gray-9: var(--mauve-9);--gray-10: var(--mauve-10);--gray-11: var(--mauve-11);--gray-12: var(--mauve-12);--gray-a1: var(--mauve-a1);--gray-a2: var(--mauve-a2);--gray-a3: var(--mauve-a3);--gray-a4: var(--mauve-a4);--gray-a5: var(--mauve-a5);--gray-a6: var(--mauve-a6);--gray-a7: var(--mauve-a7);--gray-a8: var(--mauve-a8);--gray-a9: var(--mauve-a9);--gray-a10: var(--mauve-a10);--gray-a11: var(--mauve-a11);--gray-a12: var(--mauve-a12);--gray-contrast: var(--mauve-contrast);--gray-surface: var(--mauve-surface);--gray-indicator: var(--mauve-indicator);--gray-track: var(--mauve-track)}.radix-themes:where([data-gray-color=olive]){--gray-1: var(--olive-1);--gray-2: var(--olive-2);--gray-3: var(--olive-3);--gray-4: var(--olive-4);--gray-5: var(--olive-5);--gray-6: var(--olive-6);--gray-7: var(--olive-7);--gray-8: var(--olive-8);--gray-9: var(--olive-9);--gray-10: var(--olive-10);--gray-11: var(--olive-11);--gray-12: var(--olive-12);--gray-a1: var(--olive-a1);--gray-a2: var(--olive-a2);--gray-a3: var(--olive-a3);--gray-a4: var(--olive-a4);--gray-a5: var(--olive-a5);--gray-a6: var(--olive-a6);--gray-a7: var(--olive-a7);--gray-a8: var(--olive-a8);--gray-a9: var(--olive-a9);--gray-a10: var(--olive-a10);--gray-a11: var(--olive-a11);--gray-a12: var(--olive-a12);--gray-contrast: var(--olive-contrast);--gray-surface: var(--olive-surface);--gray-indicator: var(--olive-indicator);--gray-track: var(--olive-track)}.radix-themes:where([data-gray-color=sage]){--gray-1: var(--sage-1);--gray-2: var(--sage-2);--gray-3: var(--sage-3);--gray-4: var(--sage-4);--gray-5: var(--sage-5);--gray-6: var(--sage-6);--gray-7: var(--sage-7);--gray-8: var(--sage-8);--gray-9: var(--sage-9);--gray-10: var(--sage-10);--gray-11: var(--sage-11);--gray-12: var(--sage-12);--gray-a1: var(--sage-a1);--gray-a2: var(--sage-a2);--gray-a3: var(--sage-a3);--gray-a4: var(--sage-a4);--gray-a5: var(--sage-a5);--gray-a6: var(--sage-a6);--gray-a7: var(--sage-a7);--gray-a8: var(--sage-a8);--gray-a9: var(--sage-a9);--gray-a10: var(--sage-a10);--gray-a11: var(--sage-a11);--gray-a12: var(--sage-a12);--gray-contrast: var(--sage-contrast);--gray-surface: var(--sage-surface);--gray-indicator: var(--sage-indicator);--gray-track: var(--sage-track)}.radix-themes:where([data-gray-color=sand]){--gray-1: var(--sand-1);--gray-2: var(--sand-2);--gray-3: var(--sand-3);--gray-4: var(--sand-4);--gray-5: var(--sand-5);--gray-6: var(--sand-6);--gray-7: var(--sand-7);--gray-8: var(--sand-8);--gray-9: var(--sand-9);--gray-10: var(--sand-10);--gray-11: var(--sand-11);--gray-12: var(--sand-12);--gray-a1: var(--sand-a1);--gray-a2: var(--sand-a2);--gray-a3: var(--sand-a3);--gray-a4: var(--sand-a4);--gray-a5: var(--sand-a5);--gray-a6: var(--sand-a6);--gray-a7: var(--sand-a7);--gray-a8: var(--sand-a8);--gray-a9: var(--sand-a9);--gray-a10: var(--sand-a10);--gray-a11: var(--sand-a11);--gray-a12: var(--sand-a12);--gray-contrast: var(--sand-contrast);--gray-surface: var(--sand-surface);--gray-indicator: var(--sand-indicator);--gray-track: var(--sand-track)}.radix-themes:where([data-gray-color=slate]){--gray-1: var(--slate-1);--gray-2: var(--slate-2);--gray-3: var(--slate-3);--gray-4: var(--slate-4);--gray-5: var(--slate-5);--gray-6: var(--slate-6);--gray-7: var(--slate-7);--gray-8: var(--slate-8);--gray-9: var(--slate-9);--gray-10: var(--slate-10);--gray-11: var(--slate-11);--gray-12: var(--slate-12);--gray-a1: var(--slate-a1);--gray-a2: var(--slate-a2);--gray-a3: var(--slate-a3);--gray-a4: var(--slate-a4);--gray-a5: var(--slate-a5);--gray-a6: var(--slate-a6);--gray-a7: var(--slate-a7);--gray-a8: var(--slate-a8);--gray-a9: var(--slate-a9);--gray-a10: var(--slate-a10);--gray-a11: var(--slate-a11);--gray-a12: var(--slate-a12);--gray-contrast: var(--slate-contrast);--gray-surface: var(--slate-surface);--gray-indicator: var(--slate-indicator);--gray-track: var(--slate-track)}.radix-themes{--cursor-button: default;--cursor-checkbox: default;--cursor-disabled: not-allowed;--cursor-link: pointer;--cursor-menu-item: default;--cursor-radio: default;--cursor-slider-thumb: default;--cursor-slider-thumb-active: default;--cursor-switch: default;--space-1: calc(4px * var(--scaling));--space-2: calc(8px * var(--scaling));--space-3: calc(12px * var(--scaling));--space-4: calc(16px * var(--scaling));--space-5: calc(24px * var(--scaling));--space-6: calc(32px * var(--scaling));--space-7: calc(40px * var(--scaling));--space-8: calc(48px * var(--scaling));--space-9: calc(64px * var(--scaling));--font-size-1: calc(12px * var(--scaling));--font-size-2: calc(14px * var(--scaling));--font-size-3: calc(16px * var(--scaling));--font-size-4: calc(18px * var(--scaling));--font-size-5: calc(20px * var(--scaling));--font-size-6: calc(24px * var(--scaling));--font-size-7: calc(28px * var(--scaling));--font-size-8: calc(35px * var(--scaling));--font-size-9: calc(60px * var(--scaling));--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--line-height-1: calc(16px * var(--scaling));--line-height-2: calc(20px * var(--scaling));--line-height-3: calc(24px * var(--scaling));--line-height-4: calc(26px * var(--scaling));--line-height-5: calc(28px * var(--scaling));--line-height-6: calc(30px * var(--scaling));--line-height-7: calc(36px * var(--scaling));--line-height-8: calc(40px * var(--scaling));--line-height-9: calc(60px * var(--scaling));--letter-spacing-1: .0025em;--letter-spacing-2: 0em;--letter-spacing-3: 0em;--letter-spacing-4: -.0025em;--letter-spacing-5: -.005em;--letter-spacing-6: -.00625em;--letter-spacing-7: -.0075em;--letter-spacing-8: -.01em;--letter-spacing-9: -.025em;--default-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI (Custom)", Roboto, "Helvetica Neue", "Open Sans (Custom)", system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--default-font-size: var(--font-size-3);--default-font-style: normal;--default-font-weight: var(--font-weight-regular);--default-line-height: 1.5;--default-letter-spacing: 0em;--default-leading-trim-start: .42em;--default-leading-trim-end: .36em;--heading-font-family: var(--default-font-family);--heading-font-size-adjust: 1;--heading-font-style: normal;--heading-leading-trim-start: var(--default-leading-trim-start);--heading-leading-trim-end: var(--default-leading-trim-end);--heading-letter-spacing: 0em;--heading-line-height-1: calc(16px * var(--scaling));--heading-line-height-2: calc(18px * var(--scaling));--heading-line-height-3: calc(22px * var(--scaling));--heading-line-height-4: calc(24px * var(--scaling));--heading-line-height-5: calc(26px * var(--scaling));--heading-line-height-6: calc(30px * var(--scaling));--heading-line-height-7: calc(36px * var(--scaling));--heading-line-height-8: calc(40px * var(--scaling));--heading-line-height-9: calc(60px * var(--scaling));--code-font-family: "Menlo", "Consolas (Custom)", "Bitstream Vera Sans Mono", monospace, "Apple Color Emoji", "Segoe UI Emoji";--code-font-size-adjust: .95;--code-font-style: normal;--code-font-weight: inherit;--code-letter-spacing: -.007em;--code-padding-top: .1em;--code-padding-bottom: .1em;--code-padding-left: .25em;--code-padding-right: .25em;--strong-font-family: var(--default-font-family);--strong-font-size-adjust: 1;--strong-font-style: inherit;--strong-font-weight: var(--font-weight-bold);--strong-letter-spacing: 0em;--em-font-family: "Times New Roman", "Times", serif;--em-font-size-adjust: 1.18;--em-font-style: italic;--em-font-weight: inherit;--em-letter-spacing: -.025em;--quote-font-family: "Times New Roman", "Times", serif;--quote-font-size-adjust: 1.18;--quote-font-style: italic;--quote-font-weight: inherit;--quote-letter-spacing: -.025em;--tab-active-letter-spacing: -.01em;--tab-active-word-spacing: 0em;--tab-inactive-letter-spacing: 0em;--tab-inactive-word-spacing: 0em;overflow-wrap:break-word;font-family:var(--default-font-family);font-size:var(--default-font-size);font-weight:var(--default-font-weight);font-style:var(--default-font-style);line-height:var(--default-line-height);letter-spacing:var(--default-letter-spacing);-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--container-1: 448px;--container-2: 688px;--container-3: 880px;--container-4: 1136px;--scrollarea-scrollbar-horizontal-margin-top: var(--space-1);--scrollarea-scrollbar-horizontal-margin-bottom: var(--space-1);--scrollarea-scrollbar-horizontal-margin-left: var(--space-1);--scrollarea-scrollbar-horizontal-margin-right: var(--space-1);--scrollarea-scrollbar-vertical-margin-top: var(--space-1);--scrollarea-scrollbar-vertical-margin-bottom: var(--space-1);--scrollarea-scrollbar-vertical-margin-left: var(--space-1);--scrollarea-scrollbar-vertical-margin-right: var(--space-1);--segmented-control-transition-duration: .1s;--spinner-animation-duration: .8s;--spinner-opacity: .65;color:var(--gray-12)}.radix-themes:where([data-scaling="90%"]){--scaling: .9}.radix-themes:where([data-scaling="95%"]){--scaling: .95}.radix-themes:where([data-scaling="100%"]){--scaling: 1}.radix-themes:where([data-scaling="105%"]){--scaling: 1.05}.radix-themes:where([data-scaling="110%"]){--scaling: 1.1}[data-radius]{--radius-1: calc(3px * var(--scaling) * var(--radius-factor));--radius-2: calc(4px * var(--scaling) * var(--radius-factor));--radius-3: calc(6px * var(--scaling) * var(--radius-factor));--radius-4: calc(8px * var(--scaling) * var(--radius-factor));--radius-5: calc(12px * var(--scaling) * var(--radius-factor));--radius-6: calc(16px * var(--scaling) * var(--radius-factor))}[data-radius=none]{--radius-factor: 0;--radius-full: 0px;--radius-thumb: .5px}[data-radius=small]{--radius-factor: .75;--radius-full: 0px;--radius-thumb: .5px}[data-radius=medium]{--radius-factor: 1;--radius-full: 0px;--radius-thumb: 9999px}[data-radius=large]{--radius-factor: 1.5;--radius-full: 0px;--radius-thumb: 9999px}[data-radius=full]{--radius-factor: 1.5;--radius-full: 9999px;--radius-thumb: 9999px}@supports (color: color-mix(in oklab,white,black)){:where(.radix-themes){--shadow-1: inset 0 0 0 1px var(--gray-a5), inset 0 1.5px 2px 0 var(--gray-a2), inset 0 1.5px 2px 0 var(--black-a2);--shadow-2: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--shadow-3: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 2px 3px -2px var(--gray-a3), 0 3px 12px -4px var(--black-a2), 0 4px 16px -8px var(--black-a2);--shadow-4: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 8px 40px var(--black-a1), 0 12px 32px -16px var(--gray-a3);--shadow-5: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 12px 60px var(--black-a3), 0 12px 32px -16px var(--gray-a5);--shadow-6: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 12px 60px var(--black-a3), 0 16px 64px var(--gray-a2), 0 16px 36px -20px var(--gray-a7);--base-card-surface-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a5), var(--gray-5) 25%);--base-card-surface-hover-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a7), var(--gray-7) 25%);--base-card-surface-active-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%);--base-card-classic-border-color: color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%);--base-card-classic-hover-border-color: color-mix(in oklab, var(--gray-a4), var(--gray-4) 25%);--base-card-classic-active-border-color: color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%)}}@supports (color: color-mix(in oklab,white,black)){:is(.dark,.dark-theme),:is(.dark,.dark-theme) :where(.radix-themes:not(.light,.light-theme)){--shadow-1: inset 0 -1px 1px 0 var(--gray-a3), inset 0 0 0 1px var(--gray-a3), inset 0 3px 4px 0 var(--black-a5), inset 0 0 0 1px var(--gray-a4);--shadow-2: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--shadow-3: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 2px 3px -2px var(--black-a3), 0 3px 8px -2px var(--black-a6), 0 4px 12px -4px var(--black-a7);--shadow-4: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 8px 40px var(--black-a3), 0 12px 32px -16px var(--black-a5);--shadow-5: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 12px 60px var(--black-a5), 0 12px 32px -16px var(--black-a7);--shadow-6: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 12px 60px var(--black-a4), 0 16px 64px var(--black-a6), 0 16px 36px -20px var(--black-a11);--base-card-classic-border-color: color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%);--base-card-classic-hover-border-color: color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%);--base-card-classic-active-border-color: color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%)}}@font-face{font-family:"Segoe UI (Custom)";font-weight:300;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semilight"),local("Segoe UI")}@font-face{font-family:"Segoe UI (Custom)";font-weight:300;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semilight Italic"),local("Segoe UI Italic")}@font-face{font-family:"Segoe UI (Custom)";font-weight:400;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI")}@font-face{font-family:"Segoe UI (Custom)";font-weight:400;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Italic")}@font-face{font-family:"Segoe UI (Custom)";font-weight:500;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semibold"),local("Segoe UI")}@font-face{font-family:"Segoe UI (Custom)";font-weight:500;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semibold Italic"),local("Segoe UI Italic")}@font-face{font-family:"Segoe UI (Custom)";font-weight:700;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Bold")}@font-face{font-family:"Segoe UI (Custom)";font-weight:700;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Bold Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:300;descent-override:35%;src:local("Open Sans Light"),local("Open Sans Regular")}@font-face{font-family:"Open Sans (Custom)";font-weight:300;font-style:italic;descent-override:35%;src:local("Open Sans Light Italic"),local("Open Sans Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:400;descent-override:35%;src:local("Open Sans Regular")}@font-face{font-family:"Open Sans (Custom)";font-weight:400;font-style:italic;descent-override:35%;src:local("Open Sans Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:500;descent-override:35%;src:local("Open Sans Medium"),local("Open Sans Regular")}@font-face{font-family:"Open Sans (Custom)";font-weight:500;font-style:italic;descent-override:35%;src:local("Open Sans Medium Italic"),local("Open Sans Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:700;descent-override:35%;src:local("Open Sans Bold")}@font-face{font-family:"Open Sans (Custom)";font-weight:700;font-style:italic;descent-override:35%;src:local("Open Sans Bold Italic")}@font-face{font-family:"Consolas (Custom)";font-weight:400;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas")}@font-face{font-family:"Consolas (Custom)";font-weight:400;font-style:italic;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas Italic")}@font-face{font-family:"Consolas (Custom)";font-weight:700;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas Bold")}@font-face{font-family:"Consolas (Custom)";font-weight:700;font-style:italic;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas Bold Italic")}.rt-reset:where(body,blockquote,dl,dd,figure,p){margin:0}.rt-reset:where(address,b,cite,code,dfn,em,i,kbd,q,samp,small,strong,var){font:unset}.rt-reset:where(h1,h2,h3,h4,h5,h6){font:unset;margin:0}.rt-reset:where(a){all:unset;-webkit-tap-highlight-color:transparent}.rt-reset:where(button,select,[type=button],[type=image],[type=reset],[type=submit],[type=checkbox],[type=color],[type=radio],[type=range]){all:unset;display:inline-block;font-weight:400;font-style:normal;text-indent:initial;-webkit-tap-highlight-color:transparent}.rt-reset:where(label){-webkit-tap-highlight-color:transparent}.rt-reset:where(select){font-weight:400;font-style:normal;text-align:start}.rt-reset:where(textarea,input:not([type=button],[type=image],[type=reset],[type=submit],[type=checkbox],[type=color],[type=radio],[type=range])){all:unset;display:block;width:-webkit-fill-available;width:-moz-available;width:stretch;font-weight:400;font-style:normal;text-align:start;text-indent:initial;-webkit-tap-highlight-color:transparent;cursor:text;white-space:pre-wrap}.rt-reset:where(:focus){outline:none}.rt-reset::placeholder{color:unset;opacity:unset;-webkit-user-select:none;user-select:none}.rt-reset:where(table){all:unset;display:table;text-indent:initial}.rt-reset:where(caption){text-align:inherit}.rt-reset:where(td){padding:0}.rt-reset:where(th){font-weight:unset;text-align:inherit;padding:0}.rt-reset:where(abbr,acronym){text-decoration:none}.rt-reset:where(canvas,object,picture,summary){display:block}.rt-reset:where(del,s){text-decoration:unset}.rt-reset:where(fieldset,hr){all:unset;display:block}.rt-reset:where(legend){padding:0;border:none;cursor:default}.rt-reset:where(li){display:block;text-align:unset}.rt-reset:where(ol,ul){list-style:none;margin:0;padding:0}.rt-reset:where(iframe){display:block;border:none;width:-webkit-fill-available;width:-moz-available;width:stretch}.rt-reset:where(ins,u){text-decoration:none}.rt-reset:where(img){display:block;max-width:100%}.rt-reset:where(svg){display:block;max-width:100%;flex-shrink:0}.rt-reset:where(mark){all:unset}.rt-reset:where(pre){font:unset;margin:unset}.rt-reset:where(q):before,.rt-reset:where(q):after{content:""}.rt-reset:where(sub,sup){font:unset;vertical-align:unset}.rt-reset:where(details) ::marker,.rt-reset:where(summary)::marker{content:none}.rt-reset:where(video){display:block;width:-webkit-fill-available;width:-moz-available;width:stretch}.rt-reset:where(:any-link){cursor:var(--cursor-link)}.rt-reset:where(button){cursor:var(--cursor-button)}.rt-reset:where(:disabled,[data-disabled]){cursor:var(--cursor-disabled)}.rt-reset:where(input[type=checkbox]){cursor:var(--cursor-checkbox)}.rt-reset:where(input[type=radio]){cursor:var(--cursor-radio)}.rt-reset,.rt-reset:before,.rt-reset:after{box-sizing:border-box}@keyframes rt-fade-in{0%{opacity:0}to{opacity:1}}@keyframes rt-fade-out{0%{opacity:1}to{opacity:0}}@keyframes rt-slide-from-top{0%{transform:translateY(4px) scale(.97)}to{transform:translateY(0) scale(1)}}@keyframes rt-slide-to-top{0%{transform:translateY(0) scale(1)}to{transform:translateY(4px) scale(.97)}}@keyframes rt-slide-from-bottom{0%{transform:translateY(-4px) scale(.97)}to{transform:translateY(0) scale(1)}}@keyframes rt-slide-to-bottom{0%{transform:translateY(0) scale(1)}to{transform:translateY(-4px) scale(.97)}}@keyframes rt-slide-from-left{0%{transform:translate(4px) scale(.97)}to{transform:translate(0) scale(1)}}@keyframes rt-slide-to-left{0%{transform:translate(0) scale(1)}to{transform:translate(4px) scale(.97)}}@keyframes rt-slide-from-right{0%{transform:translate(-4px) scale(.97)}to{transform:translate(0) scale(1)}}@keyframes rt-slide-to-right{0%{transform:translate(0) scale(1)}to{transform:translate(-4px) scale(.97)}}@media (prefers-reduced-motion: no-preference){.rt-PopperContent{animation-timing-function:cubic-bezier(.16,1,.3,1)}.rt-PopperContent:where([data-state=open]){animation-duration:.16s}.rt-PopperContent:where([data-state=open]):where([data-side=top]){animation-name:rt-slide-from-top,rt-fade-in}.rt-PopperContent:where([data-state=open]):where([data-side=bottom]){animation-name:rt-slide-from-bottom,rt-fade-in}.rt-PopperContent:where([data-state=open]):where([data-side=left]){animation-name:rt-slide-from-left,rt-fade-in}.rt-PopperContent:where([data-state=open]):where([data-side=right]){animation-name:rt-slide-from-right,rt-fade-in}.rt-PopperContent:where([data-state=closed]){animation-duration:.1s}.rt-PopperContent:where([data-state=closed]):where([data-side=top]){animation-name:rt-slide-to-top,rt-fade-out}.rt-PopperContent:where([data-state=closed]):where([data-side=bottom]){animation-name:rt-slide-to-bottom,rt-fade-out}.rt-PopperContent:where([data-state=closed]):where([data-side=left]){animation-name:rt-slide-to-left,rt-fade-out}.rt-PopperContent:where([data-state=closed]):where([data-side=right]){animation-name:rt-slide-to-right,rt-fade-out}}.rt-Box{box-sizing:border-box;display:block}.rt-Flex{box-sizing:border-box;display:flex;justify-content:flex-start}.rt-Grid{box-sizing:border-box;display:grid;align-items:stretch;justify-content:flex-start;grid-template-columns:minmax(0,1fr);grid-template-rows:none}.rt-Section{box-sizing:border-box;flex-shrink:0}.rt-Section:where(.rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}@media (min-width: 520px){.rt-Section:where(.xs\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.xs\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.xs\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.xs\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 768px){.rt-Section:where(.sm\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.sm\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.sm\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.sm\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 1024px){.rt-Section:where(.md\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.md\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.md\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.md\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 1280px){.rt-Section:where(.lg\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.lg\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.lg\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.lg\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 1640px){.rt-Section:where(.xl\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.xl\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.xl\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.xl\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}.rt-Container{display:flex;box-sizing:border-box;flex-direction:column;align-items:center;flex-shrink:0;flex-grow:1}.rt-ContainerInner{width:100%}:where(.rt-Container.rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}@media (min-width: 520px){:where(.rt-Container.xs\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.xs\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.xs\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.xs\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 768px){:where(.rt-Container.sm\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.sm\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.sm\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.sm\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 1024px){:where(.rt-Container.md\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.md\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.md\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.md\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 1280px){:where(.rt-Container.lg\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.lg\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.lg\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.lg\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 1640px){:where(.rt-Container.xl\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.xl\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.xl\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.xl\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}.rt-Skeleton{--skeleton-radius: var(--skeleton-radius-override);--skeleton-height: var(--skeleton-height-override);border-radius:var(--radius-1);animation:rt-skeleton-pulse 1s infinite alternate-reverse!important;background-image:none!important;background-clip:border-box!important;border:none!important;box-shadow:none!important;-webkit-box-decoration-break:clone!important;box-decoration-break:clone!important;color:transparent!important;outline:none!important;pointer-events:none!important;-webkit-user-select:none!important;user-select:none!important;cursor:default!important}.rt-Skeleton:where([data-inline-skeleton]){line-height:0;font-family:Arial,sans-serif!important}:where(.rt-Skeleton:empty){display:block;height:var(--space-3)}.rt-Skeleton>*,.rt-Skeleton:after,.rt-Skeleton:before{visibility:hidden!important}@keyframes rt-skeleton-pulse{0%{background-color:var(--gray-a3)}to{background-color:var(--gray-a4)}}.rt-Text{line-height:var(--line-height, var(--default-line-height));letter-spacing:var(--letter-spacing, inherit)}:where(.rt-Text){margin:0}.rt-Text:where([data-accent-color]){color:var(--accent-a11)}.rt-Text:where([data-accent-color].rt-high-contrast),:where([data-accent-color]:not(.radix-themes)) .rt-Text:where(.rt-high-contrast){color:var(--accent-12)}@media (pointer: coarse){.rt-Text:where(label){-webkit-tap-highlight-color:transparent}.rt-Text:where(label):where(:active){outline:.75em solid var(--gray-a4);outline-offset:-.6em}}.rt-Text:where(.rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}@media (min-width: 520px){.rt-Text:where(.xs\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.xs\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.xs\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.xs\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.xs\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.xs\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.xs\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.xs\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 768px){.rt-Text:where(.sm\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.sm\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.sm\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.sm\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.sm\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.sm\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.sm\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.sm\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-Text:where(.md\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.md\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.md\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.md\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.md\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.md\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.md\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.md\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.md\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-Text:where(.lg\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.lg\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.lg\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.lg\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.lg\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.lg\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.lg\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.lg\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-Text:where(.xl\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.xl\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.xl\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.xl\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.xl\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.xl\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.xl\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.xl\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}.rt-BaseDialogOverlay{position:fixed;inset:0}.rt-BaseDialogOverlay:before{position:fixed;content:"";inset:0;background-color:var(--color-overlay)}.rt-BaseDialogScroll{display:flex;overflow:auto;position:absolute;inset:0}.rt-BaseDialogScrollPadding{flex-grow:1;margin:auto;padding-top:var(--space-6);padding-bottom:max(var(--space-6),6vh);padding-left:var(--space-4);padding-right:var(--space-4)}.rt-BaseDialogScrollPadding:where(.rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.rt-r-align-center){margin-top:auto}@media (min-width: 520px){.rt-BaseDialogScrollPadding:where(.xs\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.xs\:rt-r-align-center){margin-top:auto}}@media (min-width: 768px){.rt-BaseDialogScrollPadding:where(.sm\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.sm\:rt-r-align-center){margin-top:auto}}@media (min-width: 1024px){.rt-BaseDialogScrollPadding:where(.md\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.md\:rt-r-align-center){margin-top:auto}}@media (min-width: 1280px){.rt-BaseDialogScrollPadding:where(.lg\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.lg\:rt-r-align-center){margin-top:auto}}@media (min-width: 1640px){.rt-BaseDialogScrollPadding:where(.xl\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.xl\:rt-r-align-center){margin-top:auto}}.rt-BaseDialogContent{margin:auto;width:100%;z-index:1;position:relative;overflow:auto;--inset-padding-top: var(--dialog-content-padding);--inset-padding-right: var(--dialog-content-padding);--inset-padding-bottom: var(--dialog-content-padding);--inset-padding-left: var(--dialog-content-padding);padding:var(--dialog-content-padding);box-sizing:border-box;background-color:var(--color-panel-solid);box-shadow:var(--shadow-6);outline:none}.rt-BaseDialogContent:where(.rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}@media (min-width: 520px){.rt-BaseDialogContent:where(.xs\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xs\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xs\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.xs\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 768px){.rt-BaseDialogContent:where(.sm\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.sm\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.sm\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.sm\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1024px){.rt-BaseDialogContent:where(.md\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.md\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.md\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.md\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1280px){.rt-BaseDialogContent:where(.lg\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.lg\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.lg\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.lg\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1640px){.rt-BaseDialogContent:where(.xl\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xl\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xl\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.xl\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (prefers-reduced-motion: no-preference){@keyframes rt-dialog-overlay-no-op{0%{opacity:1}to{opacity:1}}@keyframes rt-dialog-content-show{0%{opacity:0;transform:translateY(5px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes rt-dialog-content-hide{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(5px) scale(.99)}}.rt-BaseDialogOverlay:where([data-state=closed]){animation:rt-dialog-overlay-no-op .16s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogOverlay:where([data-state=open]):before{animation:rt-fade-in .2s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogOverlay:where([data-state=closed]):before{opacity:0;animation:rt-fade-out .16s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogContent:where([data-state=open]){animation:rt-dialog-content-show .2s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogContent:where([data-state=closed]){opacity:0;animation:rt-dialog-content-hide .1s cubic-bezier(.16,1,.3,1)}}.rt-AvatarRoot{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;-webkit-user-select:none;user-select:none;width:var(--avatar-size);height:var(--avatar-size);flex-shrink:0}.rt-AvatarImage{width:100%;height:100%;object-fit:cover;border-radius:inherit}.rt-AvatarFallback{font-family:var(--default-font-family);font-weight:var(--font-weight-medium);font-style:normal;z-index:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;line-height:1;border-radius:inherit;text-transform:uppercase}.rt-AvatarFallback:where(.rt-one-letter){font-size:var(--avatar-fallback-one-letter-font-size)}.rt-AvatarFallback:where(.rt-two-letters){font-size:var(--avatar-fallback-two-letters-font-size, var(--avatar-fallback-one-letter-font-size))}.rt-AvatarRoot:where(.rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}@media (min-width: 520px){.rt-AvatarRoot:where(.xs\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.xs\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.xs\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.xs\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.xs\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.xs\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xs\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xs\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.xs\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 768px){.rt-AvatarRoot:where(.sm\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.sm\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.sm\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.sm\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.sm\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.sm\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.sm\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.sm\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.sm\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-AvatarRoot:where(.md\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.md\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.md\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.md\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.md\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.md\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.md\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.md\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.md\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-AvatarRoot:where(.lg\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.lg\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.lg\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.lg\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.lg\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.lg\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.lg\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.lg\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.lg\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-AvatarRoot:where(.xl\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.xl\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.xl\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.xl\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.xl\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.xl\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xl\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xl\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.xl\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}.rt-AvatarRoot:where(.rt-variant-solid) :where(.rt-AvatarFallback){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-AvatarRoot:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-AvatarFallback){background-color:var(--accent-12);color:var(--accent-1)}.rt-AvatarRoot:where(.rt-variant-soft) :where(.rt-AvatarFallback){background-color:var(--accent-a3);color:var(--accent-a11)}.rt-AvatarRoot:where(.rt-variant-soft):where(.rt-high-contrast) :where(.rt-AvatarFallback){color:var(--accent-12)}.rt-Badge{display:inline-flex;align-items:center;white-space:nowrap;font-family:var(--default-font-family);font-weight:var(--font-weight-medium);font-style:normal;flex-shrink:0;line-height:1;height:-moz-fit-content;height:fit-content}.rt-Badge:where(.rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}@media (min-width: 520px){.rt-Badge:where(.xs\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.xs\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.xs\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 768px){.rt-Badge:where(.sm\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.sm\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.sm\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 1024px){.rt-Badge:where(.md\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.md\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.md\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 1280px){.rt-Badge:where(.lg\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.lg\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.lg\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 1640px){.rt-Badge:where(.xl\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.xl\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.xl\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}.rt-Badge:where(.rt-variant-solid){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-Badge:where(.rt-variant-solid)::selection{background-color:var(--accent-7);color:var(--accent-12)}.rt-Badge:where(.rt-variant-solid):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--accent-1)}.rt-Badge:where(.rt-variant-solid):where(.rt-high-contrast)::selection{background-color:var(--accent-a11);color:var(--accent-1)}.rt-Badge:where(.rt-variant-surface){background-color:var(--accent-surface);box-shadow:inset 0 0 0 1px var(--accent-a6);color:var(--accent-a11)}.rt-Badge:where(.rt-variant-surface):where(.rt-high-contrast){color:var(--accent-12)}.rt-Badge:where(.rt-variant-soft){background-color:var(--accent-a3);color:var(--accent-a11)}.rt-Badge:where(.rt-variant-soft):where(.rt-high-contrast){color:var(--accent-12)}.rt-Badge:where(.rt-variant-outline){box-shadow:inset 0 0 0 1px var(--accent-a8);color:var(--accent-a11)}.rt-Badge:where(.rt-variant-outline):where(.rt-high-contrast){box-shadow:inset 0 0 0 1px var(--accent-a7),inset 0 0 0 1px var(--gray-a11);color:var(--accent-12)}.rt-Blockquote{box-sizing:border-box;border-left:max(var(--space-1),.25em) solid var(--accent-a6);padding-left:min(var(--space-5),max(var(--space-3),.5em))}.rt-BaseButton{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;-webkit-user-select:none;user-select:none;vertical-align:top;font-family:var(--default-font-family);font-style:normal;text-align:center}.rt-BaseButton:where([data-disabled]){--spinner-opacity: 1}.rt-BaseButton:where(.rt-loading){position:relative}.rt-BaseButton:where(:not(.rt-variant-ghost)){height:var(--base-button-height)}.rt-BaseButton:where(.rt-variant-ghost){box-sizing:content-box;height:-moz-fit-content;height:fit-content}.rt-BaseButton:where(.rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}@media (min-width: 520px){.rt-BaseButton:where(.xs\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.xs\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.xs\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.xs\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 768px){.rt-BaseButton:where(.sm\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.sm\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.sm\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.sm\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 1024px){.rt-BaseButton:where(.md\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.md\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.md\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.md\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 1280px){.rt-BaseButton:where(.lg\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.lg\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.lg\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.lg\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 1640px){.rt-BaseButton:where(.xl\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.xl\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.xl\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.xl\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}.rt-BaseButton:where(.rt-variant-classic){background-color:var(--accent-9);color:var(--accent-contrast);position:relative;z-index:0;background-image:linear-gradient(to bottom,transparent 50%,var(--gray-a4)),linear-gradient(to bottom,transparent 50%,var(--accent-9) 80%);box-shadow:var(--base-button-classic-box-shadow-top),inset 0 0 0 1px var(--accent-9),var(--base-button-classic-box-shadow-bottom)}.rt-BaseButton:where(.rt-variant-classic):after{content:"";position:absolute;border-radius:inherit;pointer-events:none;inset:0;z-index:-1;border:var(--base-button-classic-after-inset) solid transparent;background-clip:content-box;background-color:inherit;background-image:linear-gradient(var(--black-a1),transparent,var(--white-a2));box-shadow:inset 0 2px 3px -1px var(--white-a4)}.rt-BaseButton:where(.rt-variant-classic):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--gray-1);background-image:linear-gradient(to bottom,transparent 50%,var(--gray-a4)),linear-gradient(to bottom,transparent 50%,var(--accent-12) 80%);box-shadow:var(--base-button-classic-box-shadow-top),inset 0 0 0 1px var(--accent-12),var(--base-button-classic-box-shadow-bottom)}.rt-BaseButton:where(.rt-variant-classic):where(.rt-high-contrast):after{background-image:linear-gradient(var(--black-a3),transparent,var(--white-a2))}@media (pointer: coarse){.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open])){outline:.5em solid var(--accent-a4);outline-offset:0}}.rt-BaseButton:where(.rt-variant-classic):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:2px}@media (hover: hover){.rt-BaseButton:where(.rt-variant-classic):where(:hover):after{background-color:var(--accent-10);background-image:linear-gradient(var(--black-a2) -15%,transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where(:hover):where(.rt-high-contrast){filter:var(--base-button-classic-high-contrast-hover-filter)}.rt-BaseButton:where(.rt-variant-classic):where(:hover):where(.rt-high-contrast):after{background-color:var(--accent-12);background-image:linear-gradient(var(--black-a5),transparent,var(--white-a2))}}.rt-BaseButton:where(.rt-variant-classic):where([data-state=open]):after{background-color:var(--accent-10);background-image:linear-gradient(var(--black-a2) -15%,transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where([data-state=open]):where(.rt-high-contrast){filter:var(--base-button-classic-high-contrast-hover-filter)}.rt-BaseButton:where(.rt-variant-classic):where([data-state=open]):where(.rt-high-contrast):after{background-color:var(--accent-12);background-image:linear-gradient(var(--black-a5),transparent,var(--white-a2))}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])){background-color:var(--accent-9);background-image:linear-gradient(var(--black-a1),transparent);padding-top:var(--base-button-classic-active-padding-top);box-shadow:inset 0 4px 2px -2px var(--gray-a4),inset 0 1px 1px var(--gray-a7),inset 0 0 0 1px var(--gray-a5),inset 0 0 0 1px var(--accent-9),inset 0 3px 2px var(--gray-a3),inset 0 0 0 1px var(--white-a7),inset 0 -2px 1px var(--white-a5)}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])):after{box-shadow:none;background-color:inherit;background-image:linear-gradient(var(--black-a2),transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])):where(.rt-high-contrast){background-color:var(--accent-12);filter:var(--base-button-classic-high-contrast-active-filter);box-shadow:var(--base-button__classic-active__shadow-front-layer),inset 0 0 0 1px var(--accent-12),var(--base-button__classic-active__shadow-bottom-layer)}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])):where(.rt-high-contrast):after{background-image:linear-gradient(var(--black-a5),transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-2);background-image:none;box-shadow:var(--base-button-classic-disabled-box-shadow);outline:none;filter:none}.rt-BaseButton:where(.rt-variant-classic):where([data-disabled]):after{box-shadow:none;background-color:var(--gray-a2);background-image:linear-gradient(var(--black-a1) -20%,transparent,var(--white-a1))}.rt-BaseButton:where(.rt-variant-solid){background-color:var(--accent-9);color:var(--accent-contrast)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-solid):where(:hover){background-color:var(--accent-10)}}.rt-BaseButton:where(.rt-variant-solid):where([data-state=open]){background-color:var(--accent-10)}.rt-BaseButton:where(.rt-variant-solid):where(:active:not([data-state=open])){background-color:var(--accent-10);filter:var(--base-button-solid-active-filter)}@media (pointer: coarse){.rt-BaseButton:where(.rt-variant-solid):where(:active:not([data-state=open])){outline:.5em solid var(--accent-a4);outline-offset:0}}.rt-BaseButton:where(.rt-variant-solid):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:2px}.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--gray-1)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast):where(:hover){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-hover-filter)}}.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast):where([data-state=open]){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-hover-filter)}.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast):where(:active:not([data-state=open])){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-active-filter)}.rt-BaseButton:where(.rt-variant-solid):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-a3);outline:none;filter:none}.rt-BaseButton:where(.rt-variant-soft,.rt-variant-ghost){color:var(--accent-a11)}.rt-BaseButton:where(.rt-variant-soft,.rt-variant-ghost):where(.rt-high-contrast){color:var(--accent-12)}.rt-BaseButton:where(.rt-variant-soft,.rt-variant-ghost):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-a3)}.rt-BaseButton:where(.rt-variant-soft){background-color:var(--accent-a3)}.rt-BaseButton:where(.rt-variant-soft):where(:focus-visible){outline:2px solid var(--accent-8);outline-offset:-1px}@media (hover: hover){.rt-BaseButton:where(.rt-variant-soft):where(:hover){background-color:var(--accent-a4)}}.rt-BaseButton:where(.rt-variant-soft):where([data-state=open]){background-color:var(--accent-a4)}.rt-BaseButton:where(.rt-variant-soft):where(:active:not([data-state=open])){background-color:var(--accent-a5)}.rt-BaseButton:where(.rt-variant-soft):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-a3)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-ghost):where(:hover){background-color:var(--accent-a3)}}.rt-BaseButton:where(.rt-variant-ghost):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-BaseButton:where(.rt-variant-ghost):where([data-state=open]){background-color:var(--accent-a3)}.rt-BaseButton:where(.rt-variant-ghost):where(:active:not([data-state=open])){background-color:var(--accent-a4)}.rt-BaseButton:where(.rt-variant-ghost):where([data-disabled]){color:var(--gray-a8);background-color:transparent}.rt-BaseButton:where(.rt-variant-outline){box-shadow:inset 0 0 0 1px var(--accent-a8);color:var(--accent-a11)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-outline):where(:hover){background-color:var(--accent-a2)}}.rt-BaseButton:where(.rt-variant-outline):where([data-state=open]){background-color:var(--accent-a2)}.rt-BaseButton:where(.rt-variant-outline):where(:active:not([data-state=open])){background-color:var(--accent-a3)}.rt-BaseButton:where(.rt-variant-outline):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-BaseButton:where(.rt-variant-outline):where(.rt-high-contrast){box-shadow:inset 0 0 0 1px var(--accent-a7),inset 0 0 0 1px var(--gray-a11);color:var(--accent-12)}.rt-BaseButton:where(.rt-variant-outline):where([data-disabled]){color:var(--gray-a8);box-shadow:inset 0 0 0 1px var(--gray-a7);background-color:transparent}.rt-BaseButton:where(.rt-variant-surface){background-color:var(--accent-surface);box-shadow:inset 0 0 0 1px var(--accent-a7);color:var(--accent-a11)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-surface):where(:hover){box-shadow:inset 0 0 0 1px var(--accent-a8)}}.rt-BaseButton:where(.rt-variant-surface):where([data-state=open]){box-shadow:inset 0 0 0 1px var(--accent-a8)}.rt-BaseButton:where(.rt-variant-surface):where(:active:not([data-state=open])){background-color:var(--accent-a3);box-shadow:inset 0 0 0 1px var(--accent-a8)}.rt-BaseButton:where(.rt-variant-surface):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-BaseButton:where(.rt-variant-surface):where(.rt-high-contrast){color:var(--accent-12)}.rt-BaseButton:where(.rt-variant-surface):where([data-disabled]){color:var(--gray-a8);box-shadow:inset 0 0 0 1px var(--gray-a6);background-color:var(--gray-a2)}.rt-Button:where(:not(.rt-variant-ghost)) :where(svg){opacity:.9}.rt-Button:where(.rt-variant-ghost){padding:var(--button-ghost-padding-y) var(--button-ghost-padding-x);--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--button-ghost-padding-y));--margin-right-override: calc(var(--margin-right) - var(--button-ghost-padding-x));--margin-bottom-override: calc(var(--margin-bottom) - var(--button-ghost-padding-y));--margin-left-override: calc(var(--margin-left) - var(--button-ghost-padding-x));margin:var(--margin-top-override) var(--margin-right-override) var(--margin-bottom-override) var(--margin-left-override)}:where(.rt-Button:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-Button:where(.rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}@media (min-width: 520px){.rt-Button:where(.xs\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.xs\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.xs\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xs\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.xs\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.xs\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xs\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.xs\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.xs\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.xs\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.xs\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.xs\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 768px){.rt-Button:where(.sm\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.sm\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.sm\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.sm\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.sm\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.sm\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.sm\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.sm\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.sm\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.sm\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.sm\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.sm\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 1024px){.rt-Button:where(.md\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.md\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.md\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.md\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.md\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.md\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.md\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.md\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.md\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.md\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.md\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.md\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 1280px){.rt-Button:where(.lg\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.lg\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.lg\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.lg\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.lg\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.lg\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.lg\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.lg\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.lg\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.lg\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.lg\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.lg\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 1640px){.rt-Button:where(.xl\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.xl\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.xl\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xl\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.xl\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.xl\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xl\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.xl\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.xl\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.xl\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.xl\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.xl\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}.rt-Button:where(:not(.rt-variant-ghost)){font-weight:var(--font-weight-medium)}.rt-CalloutRoot{box-sizing:border-box;display:grid;align-items:flex-start;justify-content:flex-start;text-align:left;color:var(--accent-a11)}.rt-CalloutRoot:where(.rt-high-contrast){color:var(--accent-12)}.rt-CalloutIcon{display:flex;align-items:center;grid-column-start:-2;height:var(--callout-icon-height)}.rt-CalloutRoot>:where(:not(.rt-CalloutIcon)){grid-column-start:-1}.rt-CalloutRoot:where(.rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}@media (min-width: 520px){.rt-CalloutRoot:where(.xs\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xs\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xs\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 768px){.rt-CalloutRoot:where(.sm\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.sm\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.sm\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 1024px){.rt-CalloutRoot:where(.md\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.md\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.md\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 1280px){.rt-CalloutRoot:where(.lg\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.lg\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.lg\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 1640px){.rt-CalloutRoot:where(.xl\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xl\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xl\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}.rt-CalloutRoot:where(.rt-variant-soft){background-color:var(--accent-a3)}.rt-CalloutRoot:where(.rt-variant-surface){box-shadow:inset 0 0 0 1px var(--accent-a6);background-color:var(--accent-a2)}.rt-CalloutRoot:where(.rt-variant-outline){box-shadow:inset 0 0 0 1px var(--accent-a7)}.rt-BaseCard{display:block;position:relative;overflow:hidden;border-radius:var(--base-card-border-radius);font-family:var(--default-font-family);font-weight:var(--font-weight-normal);font-style:normal;text-align:start;--inset-border-width: var(--base-card-border-width);--inset-border-radius: var(--base-card-border-radius);padding-top:var(--base-card-padding-top);padding-right:var(--base-card-padding-right);padding-bottom:var(--base-card-padding-bottom);padding-left:var(--base-card-padding-left);box-sizing:border-box;--inset-padding-top: calc(var(--base-card-padding-top) - var(--base-card-border-width));--inset-padding-right: calc(var(--base-card-padding-right) - var(--base-card-border-width));--inset-padding-bottom: calc(var(--base-card-padding-bottom) - var(--base-card-border-width));--inset-padding-left: calc(var(--base-card-padding-left) - var(--base-card-border-width));contain:paint}.rt-BaseCard:before,.rt-BaseCard:after{content:"";position:absolute;pointer-events:none;transition:inherit;border-radius:calc(var(--base-card-border-radius) - var(--base-card-border-width));inset:var(--base-card-border-width)}.rt-BaseCard:before{z-index:-1}.rt-Card{--base-card-padding-top: var(--card-padding);--base-card-padding-right: var(--card-padding);--base-card-padding-bottom: var(--card-padding);--base-card-padding-left: var(--card-padding);--base-card-border-radius: var(--card-border-radius);--base-card-border-width: var(--card-border-width)}.rt-Card:where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-Card:where(:focus-visible):after{outline:inherit}.rt-Card:where(:focus-visible):where(:active:not([data-state=open])):before{background-image:linear-gradient(var(--focus-a2),var(--focus-a2))}.rt-Card:where(.rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}@media (min-width: 520px){.rt-Card:where(.xs\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.xs\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.xs\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.xs\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.xs\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 768px){.rt-Card:where(.sm\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.sm\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.sm\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.sm\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.sm\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 1024px){.rt-Card:where(.md\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.md\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.md\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.md\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.md\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 1280px){.rt-Card:where(.lg\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.lg\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.lg\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.lg\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.lg\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 1640px){.rt-Card:where(.xl\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.xl\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.xl\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.xl\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.xl\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}.rt-Card:where(.rt-variant-surface){--card-border-width: 1px;--card-background-color: var(--color-panel)}.rt-Card:where(.rt-variant-surface):before{background-color:var(--card-background-color);-webkit-backdrop-filter:var(--backdrop-filter-panel);backdrop-filter:var(--backdrop-filter-panel)}.rt-Card:where(.rt-variant-surface):after{box-shadow:var(--base-card-surface-box-shadow)}@media (hover: hover){.rt-Card:where(.rt-variant-surface):where(:any-link,button,label):where(:hover):after{box-shadow:var(--base-card-surface-hover-box-shadow)}}.rt-Card:where(.rt-variant-surface):where(:any-link,button,label):where([data-state=open]):after{box-shadow:var(--base-card-surface-hover-box-shadow)}.rt-Card:where(.rt-variant-surface):where(:any-link,button,label):where(:active:not([data-state=open])):after{box-shadow:var(--base-card-surface-active-box-shadow)}.rt-Card:where(.rt-variant-classic){--card-border-width: 1px;--card-background-color: var(--color-panel);transition:box-shadow .12s;box-shadow:var(--base-card-classic-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):before{background-color:var(--card-background-color);-webkit-backdrop-filter:var(--backdrop-filter-panel);backdrop-filter:var(--backdrop-filter-panel)}.rt-Card:where(.rt-variant-classic):after{box-shadow:var(--base-card-classic-box-shadow-inner)}@media (hover: hover){.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:hover){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:hover):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where([data-state=open]){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where([data-state=open]):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:active:not([data-state=open])){transition-duration:40ms;box-shadow:var(--base-card-classic-active-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:active:not([data-state=open])):after{box-shadow:var(--base-card-classic-active-box-shadow-inner)}.rt-Card:where(.rt-variant-ghost){--card-border-width: 0px;--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--card-padding));--margin-right-override: calc(var(--margin-right) - var(--card-padding));--margin-bottom-override: calc(var(--margin-bottom) - var(--card-padding));--margin-left-override: calc(var(--margin-left) - var(--card-padding));margin-top:var(--margin-top-override);margin-right:var(--margin-right-override);margin-bottom:var(--margin-bottom-override);margin-left:var(--margin-left-override)}:where(.rt-Card:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}@media (hover: hover){.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:hover){background-color:var(--gray-a3)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:hover):where(:focus-visible){background-color:var(--focus-a2)}}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where([data-state=open]){background-color:var(--gray-a3)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where([data-state=open]):where(:focus-visible){background-color:var(--focus-a2)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:active:not([data-state=open])){background-color:var(--gray-a4)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:active:not([data-state=open])):where(:focus-visible){background-color:var(--focus-a2)}@media (pointer: coarse){.rt-Card:where(:any-link,button,label):where(:active:not(:focus-visible,[data-state=open])):before{background-image:linear-gradient(var(--gray-a4),var(--gray-a4))}}.rt-BaseCheckboxRoot{position:relative;display:inline-flex;align-items:center;justify-content:center;vertical-align:top;flex-shrink:0;cursor:var(--cursor-checkbox);height:var(--skeleton-height, var(--line-height, var(--checkbox-size)));--skeleton-height-override: var(--checkbox-size);border-radius:var(--skeleton-radius);--skeleton-radius-override: var(--checkbox-border-radius)}.rt-BaseCheckboxRoot:before{content:"";display:block;height:var(--checkbox-size);width:var(--checkbox-size);border-radius:var(--checkbox-border-radius)}.rt-BaseCheckboxIndicator{position:absolute;width:var(--checkbox-indicator-size);height:var(--checkbox-indicator-size);transform:translate(-50%,-50%);top:50%;left:50%}.rt-BaseCheckboxRoot:where(.rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}@media (min-width: 520px){.rt-BaseCheckboxRoot:where(.xs\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.xs\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.xs\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 768px){.rt-BaseCheckboxRoot:where(.sm\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.sm\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.sm\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 1024px){.rt-BaseCheckboxRoot:where(.md\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.md\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.md\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 1280px){.rt-BaseCheckboxRoot:where(.lg\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.lg\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.lg\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 1640px){.rt-BaseCheckboxRoot:where(.xl\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.xl\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.xl\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a7)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]):before{background-color:var(--accent-indicator)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]) :where(.rt-BaseCheckboxIndicator){color:var(--accent-contrast)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast):before{background-color:var(--accent-12)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast) :where(.rt-BaseCheckboxIndicator){color:var(--accent-1)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where(:disabled):before{box-shadow:inset 0 0 0 1px var(--gray-a6);background-color:transparent}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where(:disabled) :where(.rt-BaseCheckboxIndicator){color:var(--gray-a8)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a3),var(--shadow-1)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]):before{background-color:var(--accent-indicator);background-image:linear-gradient(to bottom,var(--white-a3),transparent,var(--black-a1));box-shadow:inset 0 .5px .5px var(--white-a4),inset 0 -.5px .5px var(--black-a4)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]) :where(.rt-BaseCheckboxIndicator){color:var(--accent-contrast)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast):before{background-color:var(--accent-12)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast) :where(.rt-BaseCheckboxIndicator){color:var(--accent-1)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where(:disabled):before{box-shadow:var(--shadow-1);background-color:transparent;background-image:none}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where(:disabled) :where(.rt-BaseCheckboxIndicator){color:var(--gray-a8)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):before{background-color:var(--accent-a5)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where([data-state=checked],[data-state=indeterminate]) :where(.rt-BaseCheckboxIndicator){color:var(--accent-a11)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast) :where(.rt-BaseCheckboxIndicator){color:var(--accent-12)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where(:disabled):before{background-color:transparent}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where(:disabled) :where(.rt-BaseCheckboxIndicator){color:var(--gray-a8)}.rt-CheckboxCardsRoot{line-height:var(--line-height);letter-spacing:var(--letter-spacing);cursor:default}.rt-CheckboxCardsItem:where(:has(:focus-visible)){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-CheckboxCardsItem:where(:has(:focus-visible)):after{outline:inherit}.rt-CheckboxCardsItem>*{pointer-events:none}.rt-CheckboxCardsItem>:where(svg){flex-shrink:0}.rt-CheckboxCardCheckbox{position:absolute;right:var(--checkbox-cards-item-padding-left)}.rt-CheckboxCardsItem{--checkbox-cards-item-padding-right: calc(var(--checkbox-cards-item-padding-left) * 2 + var(--checkbox-cards-item-checkbox-size));--base-card-padding-top: var(--checkbox-cards-item-padding-top);--base-card-padding-right: var(--checkbox-cards-item-padding-right);--base-card-padding-bottom: var(--checkbox-cards-item-padding-bottom);--base-card-padding-left: var(--checkbox-cards-item-padding-left);--base-card-border-radius: var(--checkbox-cards-item-border-radius);--base-card-border-width: var(--checkbox-cards-item-border-width);display:flex;align-items:center;gap:var(--space-2);cursor:var(--cursor-button);-webkit-tap-highlight-color:transparent}.rt-CheckboxCardsRoot:where(.rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}@media (min-width: 520px){.rt-CheckboxCardsRoot:where(.xs\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.xs\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 768px){.rt-CheckboxCardsRoot:where(.sm\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.sm\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1024px){.rt-CheckboxCardsRoot:where(.md\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.md\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.md\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1280px){.rt-CheckboxCardsRoot:where(.lg\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.lg\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1640px){.rt-CheckboxCardsRoot:where(.xl\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.xl\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem{--checkbox-cards-item-border-width: 1px;--checkbox-cards-item-background-color: var(--color-surface)}:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem:before{background-color:var(--checkbox-cards-item-background-color)}:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem:after{box-shadow:var(--base-card-surface-box-shadow)}@media (hover: hover){:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem:where(:not(:has(:disabled)):hover):after{box-shadow:var(--base-card-surface-hover-box-shadow)}}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem{--checkbox-cards-item-border-width: 1px;--checkbox-cards-item-background-color: var(--color-surface);transition:box-shadow .12s;box-shadow:var(--base-card-classic-box-shadow-outer)}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:before{background-color:var(--checkbox-cards-item-background-color)}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:after{box-shadow:var(--base-card-classic-box-shadow-inner)}@media (hover: hover){:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:where(:not(:has(:disabled)):hover){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:where(:not(:has(:disabled)):hover):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}}@media (pointer: coarse){.rt-CheckboxCardsItem:where(:active:not(:focus-visible)):before{background-image:linear-gradient(var(--gray-a4),var(--gray-a4))}}.rt-CheckboxCardsItem:where(:has(:disabled)){cursor:var(--cursor-disabled);color:var(--gray-a9)}.rt-CheckboxCardsItem:where(:has(:disabled)):before{background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-CheckboxCardsItem:where(:has(:disabled))::selection{background-color:var(--gray-a5)}.rt-CheckboxGroupRoot{display:flex;flex-direction:column;gap:var(--space-1)}.rt-CheckboxGroupItem{display:flex;gap:.5em;width:-moz-fit-content;width:fit-content}.rt-CheckboxGroupItemCheckbox:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-CheckboxGroupItemCheckbox:where(:disabled){cursor:var(--cursor-disabled)}.rt-CheckboxGroupItemCheckbox:where(:disabled):before{background-color:var(--gray-a3)}.rt-CheckboxGroupItemInner{min-width:0}.rt-CheckboxRoot:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-CheckboxRoot:where(:disabled){cursor:var(--cursor-disabled)}.rt-CheckboxRoot:where(:disabled):before{background-color:var(--gray-a3)}.rt-Code{--code-variant-font-size-adjust: calc(var(--code-font-size-adjust) * .95);font-family:var(--code-font-family);font-size:calc(var(--code-variant-font-size-adjust) * 1em);font-style:var(--code-font-style);font-weight:var(--code-font-weight);line-height:1.25;letter-spacing:calc(var(--code-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)));border-radius:calc((.5px + .2em) * var(--radius-factor));box-sizing:border-box;padding-top:var(--code-padding-top);padding-left:var(--code-padding-left);padding-bottom:var(--code-padding-bottom);padding-right:var(--code-padding-right);height:-moz-fit-content;height:fit-content}.rt-Code :where(.rt-Code){font-size:inherit}.rt-Code:where(.rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}@media (min-width: 520px){.rt-Code:where(.xs\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.xs\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.xs\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.xs\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.xs\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.xs\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.xs\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.xs\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.xs\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 768px){.rt-Code:where(.sm\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.sm\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.sm\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.sm\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.sm\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.sm\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.sm\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.sm\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.sm\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-Code:where(.md\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.md\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.md\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.md\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.md\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.md\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.md\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.md\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.md\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-Code:where(.lg\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.lg\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.lg\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.lg\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.lg\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.lg\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.lg\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.lg\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.lg\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-Code:where(.xl\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.xl\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.xl\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.xl\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.xl\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.xl\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.xl\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.xl\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.xl\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}.rt-Code:where(.rt-variant-ghost){--code-variant-font-size-adjust: var(--code-font-size-adjust);padding:0}.rt-Code:where(.rt-variant-ghost):where([data-accent-color]){color:var(--accent-a11)}.rt-Code:where(.rt-variant-ghost):where([data-accent-color].rt-high-contrast),:where([data-accent-color]:not(.radix-themes)) .rt-Code:where(.rt-variant-ghost):where(.rt-high-contrast){color:var(--accent-12)}.rt-Code:where(.rt-variant-solid){background-color:var(--accent-a9);color:var(--accent-contrast)}.rt-Code:where(.rt-variant-solid)::selection{background-color:var(--accent-7);color:var(--accent-12)}.rt-Code:where(.rt-variant-solid):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--accent-1)}.rt-Code:where(.rt-variant-solid):where(.rt-high-contrast)::selection{background-color:var(--accent-a11);color:var(--accent-1)}:where(.rt-Link) .rt-Code:where(.rt-variant-solid),.rt-Code:where(.rt-variant-solid):where(:any-link,button){isolation:isolate}@media (hover: hover){:where(.rt-Link) .rt-Code:where(.rt-variant-solid):where(:hover),.rt-Code:where(.rt-variant-solid):where(:any-link,button):where(:hover){background-color:var(--accent-10)}:where(.rt-Link) .rt-Code:where(.rt-variant-solid):where(.rt-high-contrast:hover),.rt-Code:where(.rt-variant-solid):where(:any-link,button):where(.rt-high-contrast:hover){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-hover-filter)}}.rt-Code:where(.rt-variant-soft){background-color:var(--accent-a3);color:var(--accent-a11)}.rt-Code:where(.rt-variant-soft):where(.rt-high-contrast){color:var(--accent-12)}:where(.rt-Link) .rt-Code:where(.rt-variant-soft),.rt-Code:where(.rt-variant-soft):where(:any-link,button){isolation:isolate}@media (hover: hover){:where(.rt-Link) .rt-Code:where(.rt-variant-soft):where(:hover),.rt-Code:where(.rt-variant-soft):where(:any-link,button):where(:hover){background-color:var(--accent-a4)}}.rt-Code:where(.rt-variant-outline){box-shadow:inset 0 0 0 max(1px,.033em) var(--accent-a8);color:var(--accent-a11)}.rt-Code:where(.rt-variant-outline):where(.rt-high-contrast){box-shadow:inset 0 0 0 max(1px,.033em) var(--accent-a7),inset 0 0 0 max(1px,.033em) var(--gray-a11);color:var(--accent-12)}:where(.rt-Link) .rt-Code:where(.rt-variant-outline),.rt-Code:where(.rt-variant-outline):where(:any-link,button){isolation:isolate}@media (hover: hover){:where(.rt-Link) .rt-Code:where(.rt-variant-outline):where(:hover),.rt-Code:where(.rt-variant-outline):where(:any-link,button):where(:hover){background-color:var(--accent-a2)}}.rt-BaseMenuContent{--scrollarea-scrollbar-vertical-margin-top: var(--base-menu-content-padding);--scrollarea-scrollbar-vertical-margin-bottom: var(--base-menu-content-padding);--scrollarea-scrollbar-horizontal-margin-left: var(--base-menu-content-padding);--scrollarea-scrollbar-horizontal-margin-right: var(--base-menu-content-padding);display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;background-color:var(--base-menu-bg);--base-menu-bg: var(--color-panel-solid);box-shadow:var(--shadow-5)}.rt-BaseMenuViewport{flex:1 1 0%;display:flex;flex-direction:column;overflow:auto;padding:var(--base-menu-content-padding);box-sizing:border-box}:where(.rt-BaseMenuContent:has(.rt-ScrollAreaScrollbar[data-orientation=vertical])) .rt-BaseMenuViewport{padding-right:var(--space-3)}.rt-BaseMenuItem{display:flex;align-items:center;gap:var(--space-2);height:var(--base-menu-item-height);padding-left:var(--base-menu-item-padding-left);padding-right:var(--base-menu-item-padding-right);box-sizing:border-box;position:relative;outline:none;scroll-margin:var(--base-menu-content-padding) 0;-webkit-user-select:none;user-select:none;cursor:var(--cursor-menu-item)}.rt-BaseMenuShortcut{display:flex;align-items:center;margin-left:auto;padding-left:var(--space-4);color:var(--gray-a11)}.rt-BaseMenuSubTriggerIcon{color:var(--gray-12);margin-right:calc(-2px * var(--scaling))}.rt-BaseMenuItemIndicator{position:absolute;left:0;width:var(--base-menu-item-padding-left);display:inline-flex;align-items:center;justify-content:center}.rt-BaseMenuSeparator{height:1px;margin-top:var(--space-2);margin-bottom:var(--space-2);margin-left:var(--base-menu-item-padding-left);margin-right:var(--base-menu-item-padding-right);background-color:var(--gray-a6)}.rt-BaseMenuLabel{display:flex;align-items:center;height:var(--base-menu-item-height);padding-left:var(--base-menu-item-padding-left);padding-right:var(--base-menu-item-padding-right);box-sizing:border-box;color:var(--gray-a10);-webkit-user-select:none;user-select:none;cursor:default}:where(.rt-BaseMenuItem)+.rt-BaseMenuLabel{margin-top:var(--space-2)}.rt-BaseMenuArrow{fill:var(--base-menu-bg)}.rt-BaseMenuContent:where(.rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}@media (min-width: 520px){.rt-BaseMenuContent:where(.xs\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.xs\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.xs\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 768px){.rt-BaseMenuContent:where(.sm\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.sm\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.sm\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 1024px){.rt-BaseMenuContent:where(.md\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.md\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.md\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.md\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.md\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.md\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.md\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.md\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.md\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.md\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.md\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.md\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 1280px){.rt-BaseMenuContent:where(.lg\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.lg\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.lg\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 1640px){.rt-BaseMenuContent:where(.xl\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.xl\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.xl\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}.rt-BaseMenuItem:where([data-accent-color]){color:var(--accent-a11)}.rt-BaseMenuItem:where([data-disabled]){color:var(--gray-a8);cursor:default}.rt-BaseMenuItem:where([data-disabled],[data-highlighted]) :where(.rt-BaseMenuShortcut),.rt-BaseMenuSubTrigger:where([data-state=open]) :where(.rt-BaseMenuShortcut){color:inherit}.rt-BaseMenuContent:where(.rt-variant-solid) :where(.rt-BaseMenuSubTrigger[data-state=open]){background-color:var(--gray-a3)}.rt-BaseMenuContent:where(.rt-variant-solid) :where(.rt-BaseMenuItem[data-highlighted]){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-BaseMenuContent:where(.rt-variant-solid) :where(.rt-BaseMenuItem[data-highlighted]) :where(.rt-BaseMenuSubTriggerIcon){color:var(--accent-contrast)}.rt-BaseMenuContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-BaseMenuItem[data-highlighted]){background-color:var(--accent-12);color:var(--accent-1)}.rt-BaseMenuContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-BaseMenuItem[data-highlighted]) :where(.rt-BaseMenuSubTriggerIcon){color:var(--accent-1)}.rt-BaseMenuContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-BaseMenuItem[data-highlighted]):where([data-accent-color]){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-BaseMenuContent:where(.rt-variant-soft) :where(.rt-BaseMenuSubTrigger[data-state=open]){background-color:var(--accent-a3)}.rt-BaseMenuContent:where(.rt-variant-soft) :where(.rt-BaseMenuItem[data-highlighted]){background-color:var(--accent-a4)}.rt-ContextMenuContent{max-height:var(--radix-context-menu-content-available-height);transform-origin:var(--radix-context-menu-content-transform-origin)}.rt-DataListRoot{overflow-wrap:anywhere;font-family:var(--default-font-family);font-weight:var(--font-weight-normal);font-style:normal;text-align:start;--data-list-leading-trim-start: calc(var(--default-leading-trim-start) - var(--line-height) / 2);--data-list-leading-trim-end: calc(var(--default-leading-trim-end) - var(--line-height) / 2)}.rt-DataListLabel{display:flex;color:var(--gray-a11)}.rt-DataListLabel:where(.rt-high-contrast){color:var(--gray-12)}.rt-DataListLabel:where([data-accent-color]){color:var(--accent-a11)}.rt-DataListLabel:where([data-accent-color]):where(.rt-high-contrast){color:var(--accent-12)}.rt-DataListValue{display:flex;margin:0;min-width:0px;margin-top:var(--data-list-value-margin-top);margin-bottom:var(--data-list-value-margin-bottom)}.rt-DataListItem{--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}:where(.rt-DataListItem:first-child) .rt-DataListValue{margin-top:var(--data-list-first-item-value-margin-top)}:where(.rt-DataListItem:last-child) .rt-DataListValue{margin-bottom:var(--data-list-last-item-value-margin-bottom)}.rt-DataListRoot:where(.rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.rt-r-size-3){gap:calc(var(--space-4) * 1.25)}@media (min-width: 520px){.rt-DataListRoot:where(.xs\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.xs\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.xs\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 768px){.rt-DataListRoot:where(.sm\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.sm\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.sm\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 1024px){.rt-DataListRoot:where(.md\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.md\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.md\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 1280px){.rt-DataListRoot:where(.lg\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.lg\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.lg\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 1640px){.rt-DataListRoot:where(.xl\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.xl\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.xl\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}.rt-DataListRoot:where(.rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}@media (min-width: 520px){.rt-DataListRoot:where(.xs\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.xs\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.xs\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.xs\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.xs\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.xs\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 768px){.rt-DataListRoot:where(.sm\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.sm\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.sm\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.sm\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.sm\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.sm\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 1024px){.rt-DataListRoot:where(.md\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.md\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.md\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.md\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.md\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.md\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 1280px){.rt-DataListRoot:where(.lg\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.lg\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.lg\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.lg\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.lg\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.lg\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 1640px){.rt-DataListRoot:where(.xl\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.xl\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.xl\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.xl\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.xl\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.xl\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}.rt-DataListLabel:before,.rt-DataListValue:before{content:"‍"}.rt-DataListItem:where(.rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}@media (min-width: 520px){.rt-DataListItem:where(.xs\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xs\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xs\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.xs\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xs\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 768px){.rt-DataListItem:where(.sm\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.sm\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.sm\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.sm\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.sm\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 1024px){.rt-DataListItem:where(.md\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.md\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.md\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.md\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.md\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 1280px){.rt-DataListItem:where(.lg\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.lg\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.lg\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.lg\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.lg\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 1640px){.rt-DataListItem:where(.xl\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xl\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xl\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.xl\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xl\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}.rt-DataListItem:where(:first-child){margin-top:var(--leading-trim-start)}.rt-DataListItem:where(:last-child){margin-bottom:var(--leading-trim-end)}.rt-DataListRoot:where(.rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}@media (min-width: 520px){.rt-DataListRoot:where(.xs\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.xs\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.xs\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.xs\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 768px){.rt-DataListRoot:where(.sm\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.sm\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.sm\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.sm\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 1024px){.rt-DataListRoot:where(.md\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.md\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.md\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.md\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 1280px){.rt-DataListRoot:where(.lg\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.lg\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.lg\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.lg\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 1640px){.rt-DataListRoot:where(.xl\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.xl\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.xl\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.xl\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}.rt-DropdownMenuContent{max-height:var(--radix-dropdown-menu-content-available-height);transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.rt-Em{box-sizing:border-box;font-family:var(--em-font-family);font-size:calc(var(--em-font-size-adjust) * 1em);font-style:var(--em-font-style);font-weight:var(--em-font-weight);line-height:1.25;letter-spacing:calc(var(--em-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)));color:inherit}.rt-Em :where(.rt-Em){font-size:inherit}.rt-Heading{--leading-trim-start: var(--heading-leading-trim-start);--leading-trim-end: var(--heading-leading-trim-end);font-family:var(--heading-font-family);font-style:var(--heading-font-style);font-weight:var(--font-weight-bold);line-height:var(--line-height)}:where(.rt-Heading){margin:0}.rt-Heading:where([data-accent-color]){color:var(--accent-a11)}.rt-Heading:where([data-accent-color].rt-high-contrast),:where([data-accent-color]:not(.radix-themes)) .rt-Heading:where(.rt-high-contrast){color:var(--accent-12)}.rt-Heading:where(.rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}@media (min-width: 520px){.rt-Heading:where(.xs\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 768px){.rt-Heading:where(.sm\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 1024px){.rt-Heading:where(.md\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 1280px){.rt-Heading:where(.lg\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 1640px){.rt-Heading:where(.xl\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}.rt-HoverCardContent{background-color:var(--color-panel-solid);box-shadow:var(--shadow-4);overflow:auto;position:relative;--inset-padding-top: var(--hover-card-content-padding);--inset-padding-right: var(--hover-card-content-padding);--inset-padding-bottom: var(--hover-card-content-padding);--inset-padding-left: var(--hover-card-content-padding);padding:var(--hover-card-content-padding);box-sizing:border-box;transform-origin:var(--radix-hover-card-content-transform-origin)}.rt-HoverCardContent:where(.rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}@media (min-width: 520px){.rt-HoverCardContent:where(.xs\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xs\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xs\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 768px){.rt-HoverCardContent:where(.sm\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.sm\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.sm\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 1024px){.rt-HoverCardContent:where(.md\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.md\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.md\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 1280px){.rt-HoverCardContent:where(.lg\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.lg\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.lg\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 1640px){.rt-HoverCardContent:where(.xl\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xl\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xl\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}.rt-IconButton:where(:not(.rt-variant-ghost)){height:var(--base-button-height);width:var(--base-button-height)}.rt-IconButton:where(.rt-variant-ghost){padding:var(--icon-button-ghost-padding);--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--icon-button-ghost-padding));--margin-right-override: calc(var(--margin-right) - var(--icon-button-ghost-padding));--margin-bottom-override: calc(var(--margin-bottom) - var(--icon-button-ghost-padding));--margin-left-override: calc(var(--margin-left) - var(--icon-button-ghost-padding));margin:var(--margin-top-override) var(--margin-right-override) var(--margin-bottom-override) var(--margin-left-override)}:where(.rt-IconButton:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}@media (min-width: 520px){.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 768px){.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 1024px){.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 1280px){.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 1640px){.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}.rt-Inset{box-sizing:border-box;--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;overflow:hidden;margin-top:var(--margin-top-override);margin-right:var(--margin-right-override);margin-bottom:var(--margin-bottom-override);margin-left:var(--margin-left-override)}:where(.rt-Inset)>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-Inset:where(.rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}@media (min-width: 520px){.rt-Inset:where(.xs\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.xs\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.xs\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.xs\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xs\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.xs\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xs\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.xs\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.xs\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 768px){.rt-Inset:where(.sm\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.sm\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.sm\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.sm\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.sm\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.sm\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.sm\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.sm\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.sm\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 1024px){.rt-Inset:where(.md\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.md\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.md\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.md\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.md\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.md\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.md\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.md\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.md\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 1280px){.rt-Inset:where(.lg\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.lg\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.lg\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.lg\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.lg\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.lg\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.lg\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.lg\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.lg\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 1640px){.rt-Inset:where(.xl\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.xl\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.xl\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.xl\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xl\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.xl\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xl\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.xl\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.xl\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}.rt-Kbd{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--default-font-family);font-weight:400;vertical-align:text-top;white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative;top:-.03em;font-size:.75em;min-width:1.75em;line-height:1.7em;box-sizing:border-box;padding-left:.5em;padding-right:.5em;padding-bottom:.05em;word-spacing:-.1em;border-radius:calc(var(--radius-factor) * .35em);letter-spacing:var(--letter-spacing, var(--default-letter-spacing));height:-moz-fit-content;height:fit-content;color:var(--gray-12);background-color:var(--gray-1);box-shadow:var(--kbd-box-shadow);transition:box-shadow .12s,background-color .12s}@media (hover: hover){.rt-Kbd:where(:any-link,button):where(:hover){transition-duration:40ms,40ms;background-color:var(--color-background);box-shadow:var(--kbd-box-shadow),0 0 0 .05em var(--gray-a5)}}.rt-Kbd:where(:any-link,button):where([data-state=open]){transition-duration:40ms,40ms;background-color:var(--color-background);box-shadow:var(--kbd-box-shadow),0 0 0 .05em var(--gray-a5)}.rt-Kbd:where(:any-link,button):where(:active:not([data-state=open])){padding-top:.05em;padding-bottom:0;transition-duration:40ms,40ms;background-color:var(--gray-2);box-shadow:inset 0 .05em var(--black-a3),0 0 0 .05em var(--gray-a7)}.rt-Kbd:where(:any-link,button):where(:focus-visible){outline:2px solid var(--focus-8)}.rt-Kbd:where(.rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}@media (min-width: 520px){.rt-Kbd:where(.xs\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.xs\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.xs\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.xs\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.xs\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.xs\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.xs\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.xs\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.xs\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 768px){.rt-Kbd:where(.sm\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.sm\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.sm\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.sm\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.sm\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.sm\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.sm\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.sm\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.sm\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-Kbd:where(.md\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.md\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.md\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.md\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.md\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.md\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.md\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.md\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.md\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-Kbd:where(.lg\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.lg\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.lg\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.lg\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.lg\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.lg\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.lg\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.lg\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.lg\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-Kbd:where(.xl\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.xl\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.xl\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.xl\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.xl\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.xl\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.xl\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.xl\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.xl\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}.rt-Link:where(:any-link,button){cursor:var(--cursor-link);text-decoration-line:none;text-decoration-style:solid;text-decoration-thickness:min(2px,max(1px,.05em));text-underline-offset:calc(.025em + 2px);text-decoration-color:var(--accent-a5)}.rt-Link:where(:disabled,[data-disabled]){cursor:var(--cursor-disabled)}:where([data-accent-color]:not(.radix-themes,.rt-high-contrast)) .rt-Link:where([data-accent-color=""]){color:var(--accent-12)}@supports (color: color-mix(in oklab,white,black)){.rt-Link:where(:any-link,button){text-decoration-color:color-mix(in oklab,var(--accent-a5),var(--gray-a6))}}@media (pointer: coarse){.rt-Link:where(:any-link,button):where(:active:not(:focus-visible,[data-state=open])){outline:.75em solid var(--accent-a4);outline-offset:-.6em}}@media (hover: hover){.rt-Link:where(:any-link,button):where(.rt-underline-auto):where(:hover){text-decoration-line:underline}}.rt-Link:where(:any-link,button):where(.rt-underline-auto):where(.rt-high-contrast),:where([data-accent-color]:not(.radix-themes,.rt-high-contrast)) .rt-Link:where(:any-link,button):where(.rt-underline-auto):where([data-accent-color=""]){text-decoration-line:underline;text-decoration-color:var(--accent-a6)}@supports (color: color-mix(in oklab,white,black)){.rt-Link:where(:any-link,button):where(.rt-underline-auto):where(.rt-high-contrast),:where([data-accent-color]:not(.radix-themes,.rt-high-contrast)) .rt-Link:where(:any-link,button):where(.rt-underline-auto):where([data-accent-color=""]){text-decoration-color:color-mix(in oklab,var(--accent-a6),var(--gray-a6))}}@media (hover: hover){.rt-Link:where(:any-link,button):where(.rt-underline-hover):where(:hover){text-decoration-line:underline}}.rt-Link:where(:any-link,button):where(.rt-underline-always){text-decoration-line:underline}.rt-Link:where(:focus-visible){text-decoration-line:none;border-radius:calc(.07em * var(--radius-factor));outline-color:var(--focus-8);outline-width:2px;outline-style:solid;outline-offset:2px}.rt-Link:where(:has(.rt-Code:not(.rt-variant-ghost):only-child)){text-decoration-color:transparent}.rt-PopoverContent{background-color:var(--color-panel-solid);box-shadow:var(--shadow-5);min-width:var(--radix-popover-trigger-width);outline:0;overflow:auto;position:relative;--inset-padding-top: var(--popover-content-padding);--inset-padding-right: var(--popover-content-padding);--inset-padding-bottom: var(--popover-content-padding);--inset-padding-left: var(--popover-content-padding);padding:var(--popover-content-padding);box-sizing:border-box;transform-origin:var(--radix-popover-content-transform-origin)}.rt-PopoverContent:where(.rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}@media (min-width: 520px){.rt-PopoverContent:where(.xs\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xs\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xs\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.xs\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 768px){.rt-PopoverContent:where(.sm\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.sm\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.sm\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.sm\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1024px){.rt-PopoverContent:where(.md\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.md\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.md\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.md\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1280px){.rt-PopoverContent:where(.lg\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.lg\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.lg\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.lg\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1640px){.rt-PopoverContent:where(.xl\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xl\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xl\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.xl\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}.rt-ProgressRoot{--progress-value: 0;--progress-max: 100;--progress-duration: 5s;pointer-events:none;position:relative;overflow:hidden;flex-grow:1;height:var(--progress-height);border-radius:max(calc(var(--radius-factor) * var(--progress-height) / 3),calc(var(--radius-factor) * var(--radius-thumb)))}.rt-ProgressRoot:after{position:absolute;inset:0;content:"";border-radius:inherit}.rt-ProgressIndicator{display:block;height:100%;width:100%;transform:scaleX(calc(var(--progress-value) / var(--progress-max)));transform-origin:left center;transition:transform .12s}.rt-ProgressIndicator:where([data-state=indeterminate]){animation-name:rt-progress-indicator-indeterminate-grow,var(--progress-indicator-indeterminate-animation-start),var(--progress-indicator-indeterminate-animation-repeat);animation-delay:0s,calc(var(--progress-duration) + 5s),calc(var(--progress-duration) + 7.5s);animation-duration:var(--progress-duration),2.5s,5s;animation-iteration-count:1,1,infinite;animation-fill-mode:both,none,none;animation-direction:normal,normal,alternate}.rt-ProgressIndicator:where([data-state=indeterminate]):after{position:absolute;inset:0;content:"";width:400%;animation-name:rt-progress-indicator-indeterminate-shine-from-left;animation-delay:calc(var(--progress-duration) + 5s);animation-duration:5s;animation-fill-mode:backwards;animation-iteration-count:infinite;background-image:linear-gradient(to right,transparent 25%,var(--progress-indicator-after-linear-gradient),transparent 75%)}@keyframes rt-progress-indicator-indeterminate-grow{0%{transform:scaleX(.01)}20%{transform:scaleX(.1)}30%{transform:scaleX(.6)}40%,50%{transform:scaleX(.9)}to{transform:scaleX(1)}}@keyframes rt-progress-indicator-indeterminate-shine-from-left{0%{transform:translate(-100%)}to{transform:translate(0)}}.rt-ProgressRoot:where(.rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.rt-r-size-3){--progress-height: var(--space-2)}@media (min-width: 520px){.rt-ProgressRoot:where(.xs\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.xs\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.xs\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 768px){.rt-ProgressRoot:where(.sm\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.sm\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.sm\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 1024px){.rt-ProgressRoot:where(.md\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.md\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.md\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 1280px){.rt-ProgressRoot:where(.lg\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.lg\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.lg\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 1640px){.rt-ProgressRoot:where(.xl\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.xl\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.xl\:rt-r-size-3){--progress-height: var(--space-2)}}.rt-ProgressRoot:where(.rt-variant-surface){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-surface-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-surface-indeterminate-pulse;background-color:var(--gray-a3)}.rt-ProgressRoot:where(.rt-variant-surface):after{box-shadow:inset 0 0 0 1px var(--gray-a4)}.rt-ProgressRoot:where(.rt-variant-surface) :where(.rt-ProgressIndicator){background-color:var(--accent-track)}@keyframes rt-progress-indicator-surface-indeterminate-fade{to{background-color:var(--accent-7)}}@keyframes rt-progress-indicator-surface-indeterminate-pulse{0%{background-color:var(--accent-7)}to{background-color:var(--accent-track)}}.rt-ProgressRoot:where(.rt-variant-classic){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-classic-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-classic-indeterminate-pulse;background-color:var(--gray-a3)}.rt-ProgressRoot:where(.rt-variant-classic):after{box-shadow:var(--shadow-1)}.rt-ProgressRoot:where(.rt-variant-classic) :where(.rt-ProgressIndicator){background-color:var(--accent-track)}@keyframes rt-progress-indicator-classic-indeterminate-fade{to{background-color:var(--accent-7)}}@keyframes rt-progress-indicator-classic-indeterminate-pulse{0%{background-color:var(--accent-7)}to{background-color:var(--accent-track)}}.rt-ProgressRoot:where(.rt-variant-soft){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-soft-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-soft-indeterminate-pulse;background-color:var(--gray-a4);background-image:linear-gradient(var(--white-a1),var(--white-a1))}.rt-ProgressRoot:where(.rt-variant-soft) :where(.rt-ProgressIndicator){background-image:linear-gradient(var(--accent-a5),var(--accent-a5));background-color:var(--accent-8)}.rt-ProgressRoot:where(.rt-variant-soft) :where(.rt-ProgressIndicator):after{opacity:.75}@keyframes rt-progress-indicator-soft-indeterminate-fade{to{background-color:var(--accent-5)}}@keyframes rt-progress-indicator-soft-indeterminate-pulse{0%{background-color:var(--accent-5)}to{background-color:var(--accent-7)}}.rt-ProgressRoot:where(.rt-high-contrast){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-high-contrast-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-high-contrast-indeterminate-pulse}.rt-ProgressRoot:where(.rt-high-contrast) :where(.rt-ProgressIndicator){background-color:var(--accent-12)}.rt-ProgressRoot:where(.rt-high-contrast) :where(.rt-ProgressIndicator):after{opacity:.75}@keyframes rt-progress-indicator-high-contrast-indeterminate-fade{to{opacity:.8}}@keyframes rt-progress-indicator-high-contrast-indeterminate-pulse{0%{opacity:.8}to{opacity:1}}.rt-Quote{box-sizing:border-box;font-family:var(--quote-font-family);font-size:calc(var(--quote-font-size-adjust) * 1em);font-style:var(--quote-font-style);font-weight:var(--quote-font-weight);line-height:1.25;letter-spacing:calc(var(--quote-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)));color:inherit}.rt-Quote :where(.rt-Quote){font-size:inherit}.rt-RadioCardsRoot{line-height:var(--line-height);letter-spacing:var(--letter-spacing);cursor:default}.rt-RadioCardsItem{--base-card-padding-top: var(--radio-cards-item-padding-y);--base-card-padding-right: var(--radio-cards-item-padding-x);--base-card-padding-bottom: var(--radio-cards-item-padding-y);--base-card-padding-left: var(--radio-cards-item-padding-x);--base-card-border-radius: var(--radio-cards-item-border-radius);--base-card-border-width: var(--radio-cards-item-border-width);display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.rt-RadioCardsItem>*{pointer-events:none}.rt-RadioCardsItem>:where(svg){flex-shrink:0}.rt-RadioCardsItem:after{outline-offset:-1px}.rt-RadioCardsRoot:where(.rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}@media (min-width: 520px){.rt-RadioCardsRoot:where(.xs\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xs\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 768px){.rt-RadioCardsRoot:where(.sm\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.sm\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 1024px){.rt-RadioCardsRoot:where(.md\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.md\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.md\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 1280px){.rt-RadioCardsRoot:where(.lg\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.lg\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 1640px){.rt-RadioCardsRoot:where(.xl\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xl\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem{--radio-cards-item-border-width: 1px;--radio-cards-item-background-color: var(--color-surface)}:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem:before{background-color:var(--radio-cards-item-background-color)}:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem:after{box-shadow:var(--base-card-surface-box-shadow)}@media (hover: hover){:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem:where(:not(:disabled):not([data-state=checked]):hover):after{box-shadow:var(--base-card-surface-hover-box-shadow)}}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem{--radio-cards-item-border-width: 1px;--radio-cards-item-background-color: var(--color-surface);transition:box-shadow .12s;box-shadow:var(--base-card-classic-box-shadow-outer)}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:before{background-color:var(--radio-cards-item-background-color)}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:after{box-shadow:var(--base-card-classic-box-shadow-inner)}@media (hover: hover){:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:where(:not(:disabled):not([data-state=checked]):hover){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:where(:not(:disabled):not([data-state=checked]):hover):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}}.rt-RadioCardsItem:where([data-state=checked]):after{outline:2px solid var(--accent-indicator)}:where(.rt-RadioCardsRoot.rt-high-contrast) .rt-RadioCardsItem:where([data-state=checked]):after{outline-color:var(--accent-12)}.rt-RadioCardsItem:where(:focus-visible):after{outline:2px solid var(--focus-8)}.rt-RadioCardsItem:where(:focus-visible):where([data-state=checked]):before{background-image:linear-gradient(var(--focus-a3),var(--focus-a3))}.rt-RadioCardsItem:where(:focus-visible):where([data-state=checked]):after{outline-color:var(--focus-10)}.rt-RadioCardsItem:where(:disabled){cursor:var(--cursor-disabled);color:var(--gray-a9)}.rt-RadioCardsItem:where(:disabled)::selection{background-color:var(--gray-a5)}.rt-RadioCardsItem:where(:disabled):before{background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-RadioCardsItem:where(:disabled):after{outline-color:var(--gray-8)}.rt-RadioGroupRoot{display:flex;flex-direction:column;gap:var(--space-1)}.rt-RadioGroupItem{display:flex;gap:.5em;width:-moz-fit-content;width:fit-content}.rt-RadioGroupItemInner{min-width:0}.rt-BaseRadioRoot{position:relative;display:inline-flex;align-items:center;justify-content:center;vertical-align:top;flex-shrink:0;cursor:var(--cursor-radio);height:var(--skeleton-height, var(--line-height, var(--radio-size)));--skeleton-height-override: var(--radio-size);border-radius:var(--skeleton-radius);--skeleton-radius-override: 100%}.rt-BaseRadioRoot:where(:disabled,[data-disabled]){cursor:var(--cursor-disabled)}.rt-BaseRadioRoot:before{content:"";display:block;height:var(--radio-size);width:var(--radio-size);border-radius:100%}.rt-BaseRadioRoot:after{pointer-events:none;position:absolute;height:var(--radio-size);width:var(--radio-size);border-radius:100%;transform:scale(.4)}.rt-BaseRadioRoot:where(:checked,[data-state=checked]):after{content:""}.rt-BaseRadioRoot:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-BaseRadioRoot:where(.rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}@media (min-width: 520px){.rt-BaseRadioRoot:where(.xs\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.xs\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.xs\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 768px){.rt-BaseRadioRoot:where(.sm\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.sm\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.sm\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1024px){.rt-BaseRadioRoot:where(.md\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.md\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.md\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1280px){.rt-BaseRadioRoot:where(.lg\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.lg\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.lg\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1640px){.rt-BaseRadioRoot:where(.xl\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.xl\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.xl\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:not(:checked),[data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a7)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:checked,[data-state=checked]):before{background-color:var(--accent-indicator)}.rt-BaseRadioRoot:where(.rt-variant-surface):after{background-color:var(--accent-contrast)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(.rt-high-contrast):where(:checked,[data-state=checked]):before{background-color:var(--accent-12)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(.rt-high-contrast):after{background-color:var(--accent-1)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:disabled,[data-disabled]):before{box-shadow:inset 0 0 0 1px var(--gray-a6);background-color:var(--gray-a3)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:disabled,[data-disabled]):after{background-color:var(--gray-a8)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:not(:checked),[data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-7),var(--shadow-1)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:checked,[data-state=checked]):before{background-color:var(--accent-indicator);background-image:linear-gradient(to bottom,var(--white-a3),transparent,var(--black-a3));box-shadow:inset 0 .5px .5px var(--white-a4),inset 0 -.5px .5px var(--black-a4)}.rt-BaseRadioRoot:where(.rt-variant-classic):after{background-color:var(--accent-contrast)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(.rt-high-contrast):where(:checked,[data-state=checked]):before{background-color:var(--accent-12)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(.rt-high-contrast):after{background-color:var(--accent-1)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:disabled,[data-disabled]):before{box-shadow:var(--shadow-1);background-color:var(--gray-a3);background-image:none}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:disabled,[data-disabled]):after{background-color:var(--gray-a8)}.rt-BaseRadioRoot:where(.rt-variant-soft):before{background-color:var(--accent-a4)}.rt-BaseRadioRoot:where(.rt-variant-soft):after{background-color:var(--accent-a11)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(.rt-high-contrast):after{background-color:var(--accent-12)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(:focus-visible):before{outline-color:var(--accent-a8)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(:disabled,[data-disabled]):before{background-color:var(--gray-a3)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(:disabled,[data-disabled]):after{background-color:var(--gray-a8)}.rt-ScrollAreaRoot{display:flex;flex-direction:column;overflow:hidden;width:100%;height:100%}.rt-ScrollAreaViewport{display:flex;flex-direction:column;width:100%;height:100%}.rt-ScrollAreaViewport:where(:focus-visible)+:where(.rt-ScrollAreaViewportFocusRing){position:absolute;inset:0;pointer-events:none;outline:2px solid var(--focus-8);outline-offset:-2px}.rt-ScrollAreaViewport:where(:has(.rt-ScrollAreaScrollbar[data-orientation=horizontal])){overscroll-behavior-x:contain}.rt-ScrollAreaViewport>*{display:block!important;width:-moz-fit-content;width:fit-content;flex-grow:1}.rt-ScrollAreaScrollbar{display:flex;-webkit-user-select:none;user-select:none;touch-action:none;background-color:var(--gray-a3);border-radius:var(--scrollarea-scrollbar-border-radius);animation-duration:.12s;animation-timing-function:ease-out}.rt-ScrollAreaScrollbar:where([data-orientation=vertical]){flex-direction:column;width:var(--scrollarea-scrollbar-size);margin-top:var(--scrollarea-scrollbar-vertical-margin-top);margin-bottom:var(--scrollarea-scrollbar-vertical-margin-bottom);margin-left:var(--scrollarea-scrollbar-vertical-margin-left);margin-right:var(--scrollarea-scrollbar-vertical-margin-right)}.rt-ScrollAreaScrollbar:where([data-orientation=horizontal]){flex-direction:row;height:var(--scrollarea-scrollbar-size);margin-top:var(--scrollarea-scrollbar-horizontal-margin-top);margin-bottom:var(--scrollarea-scrollbar-horizontal-margin-bottom);margin-left:var(--scrollarea-scrollbar-horizontal-margin-left);margin-right:var(--scrollarea-scrollbar-horizontal-margin-right)}.rt-ScrollAreaThumb{position:relative;background-color:var(--gray-a8);border-radius:inherit;transition:background-color .1s}.rt-ScrollAreaThumb:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;min-width:var(--space-4);min-height:var(--space-4)}.rt-ScrollAreaScrollbar:where(.rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}@media (min-width: 520px){.rt-ScrollAreaScrollbar:where(.xs\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xs\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xs\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 768px){.rt-ScrollAreaScrollbar:where(.sm\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.sm\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.sm\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 1024px){.rt-ScrollAreaScrollbar:where(.md\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.md\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.md\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 1280px){.rt-ScrollAreaScrollbar:where(.lg\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.lg\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.lg\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 1640px){.rt-ScrollAreaScrollbar:where(.xl\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xl\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xl\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}.rt-ScrollAreaScrollbar:where([data-state=visible]){animation-name:rt-fade-in}.rt-ScrollAreaScrollbar:where([data-state=hidden]){animation-name:rt-fade-out}@media (hover: hover){.rt-ScrollAreaThumb:where(:hover){background-color:var(--gray-a9)}}.rt-SegmentedControlRoot{display:inline-grid;vertical-align:top;grid-auto-flow:column;grid-auto-columns:1fr;align-items:stretch;color:var(--gray-12);background-color:var(--color-surface);background-image:linear-gradient(var(--gray-a3),var(--gray-a3));position:relative;min-width:max-content;font-family:var(--default-font-family);font-style:normal;text-align:center;isolation:isolate;border-radius:var(--segmented-control-border-radius)}.rt-SegmentedControlRoot:where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-3)}.rt-SegmentedControlItem{display:flex;align-items:stretch;-webkit-user-select:none;user-select:none}.rt-SegmentedControlItem:where(:first-child){border-top-left-radius:inherit;border-bottom-left-radius:inherit}.rt-SegmentedControlItem:where(:nth-last-child(2)){border-top-right-radius:inherit;border-bottom-right-radius:inherit}.rt-SegmentedControlItem:where(:focus-visible){border-radius:inherit;outline:2px solid var(--focus-8);outline-offset:-1px}.rt-SegmentedControlItemLabel :where(svg){flex-shrink:0}@media (hover: hover){:where(.rt-SegmentedControlItem[data-state=off]:not([disabled]):hover) .rt-SegmentedControlItemLabel{background-color:var(--gray-a2)}}.rt-SegmentedControlItemLabelInactive{position:absolute;transition:opacity calc(.8 * var(--segmented-control-transition-duration));font-weight:var(--font-weight-regular);letter-spacing:var(--tab-inactive-letter-spacing);word-spacing:var(--tab-inactive-word-spacing);opacity:1;transition-timing-function:ease-out}:where(.rt-SegmentedControlItem[data-state=on]) .rt-SegmentedControlItemLabelInactive{opacity:0;transition-timing-function:ease-in}.rt-SegmentedControlItemLabelActive{transition:opacity calc(.8 * var(--segmented-control-transition-duration));font-weight:var(--font-weight-medium);letter-spacing:var(--tab-active-letter-spacing);word-spacing:var(--tab-active-word-spacing);opacity:0;transition-timing-function:ease-in}:where(.rt-SegmentedControlItem[data-state=on]) .rt-SegmentedControlItemLabelActive{opacity:1;transition-timing-function:ease-out}.rt-SegmentedControlItemSeparator{z-index:-1;margin:3px -.5px;width:1px;background-color:var(--gray-a4);transition:opacity calc(.8 * var(--segmented-control-transition-duration));transition-timing-function:ease-out}:where(.rt-SegmentedControlItem:first-child) .rt-SegmentedControlItemSeparator,:where(.rt-SegmentedControlItem:where([data-state=on],:focus-visible)) .rt-SegmentedControlItemSeparator,:where(.rt-SegmentedControlItem:where([data-state=on],:focus-visible))+* .rt-SegmentedControlItemSeparator{opacity:0;transition-timing-function:ease-in}:where(.rt-SegmentedControlRoot:has(:focus-visible)) .rt-SegmentedControlItemSeparator{transition-duration:0ms}.rt-SegmentedControlIndicator{display:none;position:absolute;z-index:-1;top:0;left:0;height:100%;pointer-events:none;transition-property:transform;transition-timing-function:cubic-bezier(.445,.05,.55,.95);transition-duration:var(--segmented-control-transition-duration)}.rt-SegmentedControlIndicator:before{inset:1px;position:absolute;border-radius:max(.5px,calc(var(--segmented-control-border-radius) - 1px));background-color:var(--segmented-control-indicator-background-color);content:""}:where(.rt-SegmentedControlItem[data-state=on])~.rt-SegmentedControlIndicator{display:block}:where(.rt-SegmentedControlItem[disabled])~.rt-SegmentedControlIndicator{--segmented-control-indicator-background-color: var(--gray-a3)}:where(.rt-SegmentedControlItem[disabled])~.rt-SegmentedControlIndicator:before{inset:0;box-shadow:none}.rt-SegmentedControlIndicator:where(:nth-child(2)){width:100%}.rt-SegmentedControlIndicator:where(:nth-child(3)){width:50%}.rt-SegmentedControlIndicator:where(:nth-child(4)){width:calc(100% / 3)}.rt-SegmentedControlIndicator:where(:nth-child(5)){width:25%}.rt-SegmentedControlIndicator:where(:nth-child(6)){width:20%}.rt-SegmentedControlIndicator:where(:nth-child(7)){width:calc(100% / 6)}.rt-SegmentedControlIndicator:where(:nth-child(8)){width:calc(100% / 7)}.rt-SegmentedControlIndicator:where(:nth-child(9)){width:12.5%}.rt-SegmentedControlIndicator:where(:nth-child(10)){width:calc(100% / 9)}.rt-SegmentedControlIndicator:where(:nth-child(11)){width:10%}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(1))~.rt-SegmentedControlIndicator{transform:translate(0)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(2))~.rt-SegmentedControlIndicator{transform:translate(100%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(3))~.rt-SegmentedControlIndicator{transform:translate(200%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(4))~.rt-SegmentedControlIndicator{transform:translate(300%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(5))~.rt-SegmentedControlIndicator{transform:translate(400%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(6))~.rt-SegmentedControlIndicator{transform:translate(500%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(7))~.rt-SegmentedControlIndicator{transform:translate(600%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(8))~.rt-SegmentedControlIndicator{transform:translate(700%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(9))~.rt-SegmentedControlIndicator{transform:translate(800%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(10))~.rt-SegmentedControlIndicator{transform:translate(900%)}.rt-SegmentedControlItemLabel{box-sizing:border-box;display:flex;flex-grow:1;align-items:center;justify-content:center;border-radius:inherit}.rt-SegmentedControlRoot:where(.rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}@media (min-width: 520px){.rt-SegmentedControlRoot:where(.xs\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 768px){.rt-SegmentedControlRoot:where(.sm\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 1024px){.rt-SegmentedControlRoot:where(.md\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 1280px){.rt-SegmentedControlRoot:where(.lg\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 1640px){.rt-SegmentedControlRoot:where(.xl\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}.rt-SegmentedControlRoot:where(.rt-variant-surface) :where(.rt-SegmentedControlItem:not([disabled]))~:where(.rt-SegmentedControlIndicator):before{box-shadow:0 0 0 1px var(--gray-a4)}.rt-SegmentedControlRoot:where(.rt-variant-classic) :where(.rt-SegmentedControlItem:not([disabled]))~:where(.rt-SegmentedControlIndicator):before{box-shadow:var(--shadow-2)}.rt-SelectTrigger{display:inline-flex;align-items:center;justify-content:space-between;flex-shrink:0;-webkit-user-select:none;user-select:none;vertical-align:top;line-height:var(--height);font-family:var(--default-font-family);font-weight:var(--font-weight-regular);font-style:normal;text-align:start;color:var(--gray-12)}.rt-SelectTrigger:where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-SelectTriggerInner{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-SelectIcon{flex-shrink:0}:where(.rt-SelectTrigger:not(.rt-variant-ghost)) .rt-SelectIcon{opacity:.9}.rt-SelectContent:where([data-side]){min-width:var(--radix-select-trigger-width);max-height:var(--radix-select-content-available-height);transform-origin:var(--radix-select-content-transform-origin)}.rt-SelectViewport{box-sizing:border-box;padding:var(--select-content-padding)}:where(.rt-SelectContent:has(.rt-ScrollAreaScrollbar[data-orientation=vertical])) .rt-SelectViewport{padding-right:var(--space-3)}.rt-SelectItem{display:flex;align-items:center;height:var(--select-item-height);padding-left:var(--select-item-indicator-width);padding-right:var(--select-item-indicator-width);position:relative;box-sizing:border-box;outline:none;scroll-margin:var(--select-content-padding) 0;-webkit-user-select:none;user-select:none;cursor:var(--cursor-menu-item)}.rt-SelectItemIndicator{position:absolute;left:0;width:var(--select-item-indicator-width);display:inline-flex;align-items:center;justify-content:center}.rt-SelectSeparator{height:1px;margin-top:var(--space-2);margin-bottom:var(--space-2);margin-left:var(--select-item-indicator-width);margin-right:var(--select-separator-margin-right);background-color:var(--gray-a6)}.rt-SelectLabel{display:flex;align-items:center;height:var(--select-item-height);padding-left:var(--select-item-indicator-width);padding-right:var(--select-item-indicator-width);color:var(--gray-a10);-webkit-user-select:none;user-select:none;cursor:default}:where(.rt-SelectItem)+.rt-SelectLabel{margin-top:var(--space-2)}.rt-SelectTrigger:where(:not(.rt-variant-ghost)){box-sizing:border-box;height:var(--select-trigger-height)}.rt-SelectTrigger:where(.rt-variant-ghost){box-sizing:content-box;height:-moz-fit-content;height:fit-content;padding:var(--select-trigger-ghost-padding-y) var(--select-trigger-ghost-padding-x);--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--select-trigger-ghost-padding-y));--margin-right-override: calc(var(--margin-right) - var(--select-trigger-ghost-padding-x));--margin-bottom-override: calc(var(--margin-bottom) - var(--select-trigger-ghost-padding-y));--margin-left-override: calc(var(--margin-left) - var(--select-trigger-ghost-padding-x));margin:var(--margin-top-override) var(--margin-right-override) var(--margin-bottom-override) var(--margin-left-override)}:where(.rt-SelectTrigger:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-SelectTrigger:where(.rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}@media (min-width: 520px){.rt-SelectTrigger:where(.xs\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.xs\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.xs\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xs\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.xs\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.xs\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xs\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.xs\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.xs\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.xs\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 768px){.rt-SelectTrigger:where(.sm\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.sm\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.sm\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.sm\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.sm\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.sm\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.sm\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.sm\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.sm\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.sm\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 1024px){.rt-SelectTrigger:where(.md\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.md\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.md\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.md\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.md\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.md\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.md\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.md\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.md\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.md\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 1280px){.rt-SelectTrigger:where(.lg\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.lg\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.lg\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.lg\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.lg\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.lg\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.lg\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.lg\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.lg\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.lg\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 1640px){.rt-SelectTrigger:where(.xl\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.xl\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.xl\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xl\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.xl\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.xl\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xl\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.xl\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.xl\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.xl\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}.rt-SelectContent:where(.rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.rt-r-size-2,.rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.rt-r-size-2,.rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.rt-r-size-2,.rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}@media (min-width: 520px){.rt-SelectContent:where(.xs\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.xs\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.xs\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.xs\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.xs\:rt-r-size-2,.xs\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.xs\:rt-r-size-2,.xs\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.xs\:rt-r-size-2,.xs\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.xs\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.xs\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.xs\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.xs\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 768px){.rt-SelectContent:where(.sm\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.sm\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.sm\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.sm\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.sm\:rt-r-size-2,.sm\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.sm\:rt-r-size-2,.sm\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.sm\:rt-r-size-2,.sm\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.sm\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.sm\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.sm\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.sm\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 1024px){.rt-SelectContent:where(.md\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.md\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.md\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.md\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.md\:rt-r-size-2,.md\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.md\:rt-r-size-2,.md\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.md\:rt-r-size-2,.md\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.md\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.md\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.md\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.md\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 1280px){.rt-SelectContent:where(.lg\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.lg\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.lg\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.lg\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.lg\:rt-r-size-2,.lg\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.lg\:rt-r-size-2,.lg\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.lg\:rt-r-size-2,.lg\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.lg\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.lg\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.lg\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.lg\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 1640px){.rt-SelectContent:where(.xl\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.xl\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.xl\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.xl\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.xl\:rt-r-size-2,.xl\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.xl\:rt-r-size-2,.xl\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.xl\:rt-r-size-2,.xl\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.xl\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.xl\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.xl\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.xl\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}.rt-SelectTrigger:where(.rt-variant-surface){color:var(--gray-12);background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a7)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-surface):where(:hover){box-shadow:inset 0 0 0 1px var(--gray-a8)}}.rt-SelectTrigger:where(.rt-variant-surface):where([data-state=open]){box-shadow:inset 0 0 0 1px var(--gray-a8)}.rt-SelectTrigger:where(.rt-variant-surface):where(:disabled){color:var(--gray-a11);background-color:var(--gray-a2);box-shadow:inset 0 0 0 1px var(--gray-a6)}.rt-SelectTrigger:where(.rt-variant-surface):where([data-placeholder]) :where(.rt-SelectTriggerInner){color:var(--gray-a10)}.rt-SelectTrigger:where(.rt-variant-classic){color:var(--gray-12);background-image:linear-gradient(var(--gray-2),var(--gray-1));box-shadow:var(--select-trigger-classic-box-shadow);position:relative;z-index:0}.rt-SelectTrigger:where(.rt-variant-classic):before{content:"";position:absolute;z-index:-1;inset:0;border:2px solid transparent;background-clip:content-box;border-radius:inherit;pointer-events:none;background-image:linear-gradient(var(--black-a1) -20%,transparent,var(--white-a1) 130%),linear-gradient(var(--color-surface),transparent)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-classic):where(:hover){box-shadow:inset 0 0 0 1px var(--gray-a3),var(--select-trigger-classic-box-shadow)}.rt-SelectTrigger:where(.rt-variant-classic):where(:hover):before{background-image:linear-gradient(var(--black-a1) -15%,transparent,var(--white-a1) 120%),linear-gradient(var(--gray-2),var(--gray-1))}}.rt-SelectTrigger:where(.rt-variant-classic):where([data-state=open]){box-shadow:inset 0 0 0 1px var(--gray-a3),var(--select-trigger-classic-box-shadow)}.rt-SelectTrigger:where(.rt-variant-classic):where([data-state=open]):before{background-image:linear-gradient(var(--black-a1) -15%,transparent,var(--white-a1) 120%),linear-gradient(var(--gray-2),var(--gray-1))}.rt-SelectTrigger:where(.rt-variant-classic):where(:disabled){color:var(--gray-a11);background-color:var(--gray-2);background-image:none;box-shadow:var(--base-button-classic-disabled-box-shadow)}.rt-SelectTrigger:where(.rt-variant-classic):where(:disabled):before{background-color:var(--gray-a2);background-image:linear-gradient(var(--black-a1) -20%,transparent,var(--white-a1))}.rt-SelectTrigger:where(.rt-variant-classic):where([data-placeholder]) :where(.rt-SelectTriggerInner){color:var(--gray-a10)}.rt-SelectTrigger:where(.rt-variant-soft),.rt-SelectTrigger:where(.rt-variant-ghost){color:var(--accent-12)}.rt-SelectTrigger:where(.rt-variant-soft):where([data-placeholder]) :where(.rt-SelectTriggerInner),.rt-SelectTrigger:where(.rt-variant-ghost):where([data-placeholder]) :where(.rt-SelectTriggerInner){color:var(--accent-12);opacity:.6}.rt-SelectTrigger:where(.rt-variant-soft){background-color:var(--accent-a3)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-soft):where(:hover){background-color:var(--accent-a4)}}.rt-SelectTrigger:where(.rt-variant-soft):where([data-state=open]){background-color:var(--accent-a4)}.rt-SelectTrigger:where(.rt-variant-soft):where(:focus-visible){outline-color:var(--accent-8)}.rt-SelectTrigger:where(.rt-variant-soft):where(:disabled){color:var(--gray-a11);background-color:var(--gray-a3)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-ghost):where(:hover){background-color:var(--accent-a3)}}.rt-SelectTrigger:where(.rt-variant-ghost):where([data-state=open]){background-color:var(--accent-a3)}.rt-SelectTrigger:where(.rt-variant-ghost):where(:disabled){color:var(--gray-a11);background-color:transparent}.rt-SelectTrigger:where(:disabled) :where(.rt-SelectIcon){color:var(--gray-a9)}.rt-SelectContent{box-shadow:var(--shadow-5);--scrollarea-scrollbar-vertical-margin-top: var(--select-content-padding);--scrollarea-scrollbar-vertical-margin-bottom: var(--select-content-padding);--scrollarea-scrollbar-horizontal-margin-left: var(--select-content-padding);--scrollarea-scrollbar-horizontal-margin-right: var(--select-content-padding);overflow:hidden;background-color:var(--color-panel-solid)}.rt-SelectItem:where([data-disabled]){color:var(--gray-a8);cursor:default}.rt-SelectContent:where(.rt-variant-solid) :where(.rt-SelectItem[data-highlighted]){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-SelectContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-SelectItem[data-highlighted]){background-color:var(--accent-12);color:var(--accent-1)}.rt-SelectContent:where(.rt-variant-soft) :where(.rt-SelectItem[data-highlighted]){background-color:var(--accent-a4)}.rt-Separator{display:block;background-color:var(--accent-a6)}.rt-Separator:where(.rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.rt-r-orientation-vertical){width:1px;height:var(--separator-size)}@media (min-width: 520px){.rt-Separator:where(.xs\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.xs\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 768px){.rt-Separator:where(.sm\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.sm\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 1024px){.rt-Separator:where(.md\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.md\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 1280px){.rt-Separator:where(.lg\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.lg\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 1640px){.rt-Separator:where(.xl\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.xl\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}.rt-Separator:where(.rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.rt-r-size-4){--separator-size: 100%}@media (min-width: 520px){.rt-Separator:where(.xs\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.xs\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.xs\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.xs\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 768px){.rt-Separator:where(.sm\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.sm\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.sm\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.sm\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 1024px){.rt-Separator:where(.md\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.md\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.md\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.md\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 1280px){.rt-Separator:where(.lg\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.lg\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.lg\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.lg\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 1640px){.rt-Separator:where(.xl\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.xl\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.xl\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.xl\:rt-r-size-4){--separator-size: 100%}}.rt-SliderRoot{--slider-thumb-size: calc(var(--slider-track-size) + var(--space-1));position:relative;display:flex;align-items:center;flex-grow:1;border-radius:max(calc(var(--radius-factor) * var(--slider-track-size) / 3),calc(var(--radius-factor) * var(--radius-thumb)));-webkit-user-select:none;user-select:none;touch-action:none}.rt-SliderRoot:where([data-orientation=horizontal]){width:-webkit-fill-available;width:-moz-available;width:stretch;height:var(--slider-track-size)}.rt-SliderRoot:where([data-orientation=vertical]){height:-webkit-fill-available;height:-moz-available;height:stretch;flex-direction:column;width:var(--slider-track-size)}.rt-SliderTrack{overflow:hidden;position:relative;flex-grow:1;border-radius:inherit}.rt-SliderTrack:where([data-orientation=horizontal]){height:var(--slider-track-size)}.rt-SliderTrack:where([data-orientation=vertical]){width:var(--slider-track-size)}.rt-SliderRange{position:absolute;border-radius:inherit}.rt-SliderRange:where([data-orientation=horizontal]){height:100%}.rt-SliderRange:where([data-orientation=vertical]){width:100%}.rt-SliderThumb{display:block;width:var(--slider-thumb-size);height:var(--slider-thumb-size);outline:0}.rt-SliderThumb:before{content:"";position:absolute;z-index:-1;width:calc(var(--slider-thumb-size) * 3);height:calc(var(--slider-thumb-size) * 3);top:50%;left:50%;transform:translate(-50%,-50%)}.rt-SliderThumb:after{content:"";position:absolute;inset:calc(-.25 * var(--slider-track-size));background-color:#fff;border-radius:max(var(--radius-1),var(--radius-thumb));box-shadow:var(--slider-thumb-box-shadow);cursor:var(--cursor-slider-thumb)}.rt-SliderThumb:where(:focus-visible):after{box-shadow:var(--slider-thumb-box-shadow),0 0 0 3px var(--accent-3),0 0 0 5px var(--focus-8)}.rt-SliderThumb:where(:active){cursor:var(--cursor-slider-thumb-active)}.rt-SliderRoot:where(.rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}@media (min-width: 520px){.rt-SliderRoot:where(.xs\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.xs\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.xs\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 768px){.rt-SliderRoot:where(.sm\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.sm\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.sm\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 1024px){.rt-SliderRoot:where(.md\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.md\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.md\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 1280px){.rt-SliderRoot:where(.lg\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.lg\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.lg\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 1640px){.rt-SliderRoot:where(.xl\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.xl\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.xl\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderTrack){background-color:var(--gray-a3);box-shadow:inset 0 0 0 1px var(--gray-a5)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderTrack):where([data-disabled]){box-shadow:inset 0 0 0 1px var(--gray-a4)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderRange){background-color:var(--accent-track);background-image:var(--slider-range-high-contrast-background-image);box-shadow:inset 0 0 0 1px var(--gray-a5)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderThumb){--slider-thumb-box-shadow: 0 0 0 1px var(--black-a4)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderThumb):where([data-disabled]):after{background-color:var(--gray-1);box-shadow:0 0 0 1px var(--gray-6)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderTrack){background-color:var(--gray-a3);position:relative}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderTrack):before{content:"";inset:0;position:absolute;border-radius:inherit;box-shadow:var(--shadow-1)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderTrack):where([data-disabled]):before{opacity:.5}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderRange){background-color:var(--accent-track);background-image:var(--slider-range-high-contrast-background-image);box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--accent-a4),inset 0 0 0 1px var(--black-a1),inset 0 1.5px 2px 0 var(--black-a2)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderRange):where(.rt-high-contrast){box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--black-a2),inset 0 1.5px 2px 0 var(--black-a2)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderThumb){--slider-thumb-box-shadow: 0 0 0 1px var(--black-a3), 0 1px 3px var(--black-a1), 0 2px 4px -1px var(--black-a1)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderThumb):where([data-disabled]):after{background-color:var(--gray-1);box-shadow:0 0 0 1px var(--gray-6)}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderTrack){background-color:var(--gray-a4);background-image:linear-gradient(var(--white-a1),var(--white-a1))}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderTrack):where([data-disabled]){background-color:var(--gray-a4);background-image:none}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderRange){background-image:linear-gradient(var(--accent-a5),var(--accent-a5)),var(--slider-range-high-contrast-background-image);background-color:var(--accent-6)}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderThumb){--slider-thumb-box-shadow: 0 0 0 1px var(--black-a3), 0 0 0 1px var(--gray-a2), 0 0 0 1px var(--accent-a2), 0 1px 2px var(--gray-a4), 0 1px 3px -.5px var(--gray-a3)}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderThumb):where([data-disabled]):after{background-color:var(--gray-1);box-shadow:0 0 0 1px var(--gray-5)}.rt-SliderRoot:where(:not(.rt-high-contrast)){--slider-range-high-contrast-background-image: none}.rt-SliderRoot:where([data-disabled]){cursor:var(--cursor-disabled);mix-blend-mode:var(--slider-disabled-blend-mode)}.rt-SliderRange:where([data-disabled]){background-color:transparent;background-image:none;box-shadow:none}.rt-SliderThumb:where([data-disabled]),.rt-SliderThumb:where([data-disabled]):after{cursor:var(--cursor-disabled)}.rt-Spinner{display:block;position:relative;opacity:var(--spinner-opacity)}.rt-SpinnerLeaf{position:absolute;top:0;left:43.75%;width:12.5%;height:100%;animation:rt-spinner-leaf-fade var(--spinner-animation-duration) linear infinite}.rt-SpinnerLeaf:before{content:"";display:block;width:100%;height:30%;border-radius:var(--radius-1);background-color:currentColor}.rt-SpinnerLeaf:where(:nth-child(1)){transform:rotate(0);animation-delay:calc(-8 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(2)){transform:rotate(45deg);animation-delay:calc(-7 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(3)){transform:rotate(90deg);animation-delay:calc(-6 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(4)){transform:rotate(135deg);animation-delay:calc(-5 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(5)){transform:rotate(180deg);animation-delay:calc(-4 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(6)){transform:rotate(225deg);animation-delay:calc(-3 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(7)){transform:rotate(270deg);animation-delay:calc(-2 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(8)){transform:rotate(315deg);animation-delay:calc(-1 / 8 * var(--spinner-animation-duration))}@keyframes rt-spinner-leaf-fade{0%{opacity:1}to{opacity:.25}}.rt-Spinner:where(.rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}@media (min-width: 520px){.rt-Spinner:where(.xs\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.xs\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.xs\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 768px){.rt-Spinner:where(.sm\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.sm\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.sm\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 1024px){.rt-Spinner:where(.md\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.md\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.md\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 1280px){.rt-Spinner:where(.lg\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.lg\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.lg\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 1640px){.rt-Spinner:where(.xl\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.xl\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.xl\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}.rt-Strong{font-family:var(--strong-font-family);font-size:calc(var(--strong-font-size-adjust) * 1em);font-style:var(--strong-font-style);font-weight:var(--strong-font-weight);letter-spacing:calc(var(--strong-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)))}.rt-Strong :where(.rt-Strong){font-size:inherit}.rt-SwitchRoot{position:relative;display:inline-flex;align-items:center;vertical-align:top;flex-shrink:0;height:var(--skeleton-height, var(--line-height, var(--switch-height)));--skeleton-height-override: var(--switch-height);border-radius:var(--skeleton-radius);--skeleton-radius-override: var(--switch-border-radius);--switch-width: calc(var(--switch-height) * 1.75);--switch-thumb-inset: 1px;--switch-thumb-size: calc(var(--switch-height) - var(--switch-thumb-inset) * 2);--switch-thumb-translate-x: calc(var(--switch-width) - var(--switch-height))}.rt-SwitchRoot:before{content:"";display:block;width:var(--switch-width);height:var(--switch-height);border-radius:var(--switch-border-radius);transition:background-position,background-color,box-shadow,filter;transition-timing-function:linear,ease-in-out,ease-in-out,ease-in-out;background-repeat:no-repeat;background-size:calc(var(--switch-width) * 2 + var(--switch-height)) 100%;cursor:var(--cursor-switch)}.rt-SwitchRoot:where([data-state=unchecked]):before{transition-duration:.12s,.14s,.14s,.14s;background-position-x:100%}.rt-SwitchRoot:where([data-state=checked]):before{transition-duration:.16s,.14s,.14s,.14s;background-position:0%}.rt-SwitchRoot:where(:active):before{transition-duration:30ms}.rt-SwitchRoot:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-SwitchRoot:where([data-disabled]):before{cursor:var(--cursor-disabled)}.rt-SwitchThumb{background-color:#fff;position:absolute;left:var(--switch-thumb-inset);width:var(--switch-thumb-size);height:var(--switch-thumb-size);border-radius:calc(var(--switch-border-radius) - var(--switch-thumb-inset));transition:transform .14s cubic-bezier(.45,.05,.55,.95),box-shadow .14s ease-in-out}.rt-SwitchThumb:where([data-state=checked]){transform:translate(var(--switch-thumb-translate-x))}.rt-SwitchRoot:where(.rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}@media (min-width: 520px){.rt-SwitchRoot:where(.xs\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.xs\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.xs\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 768px){.rt-SwitchRoot:where(.sm\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.sm\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.sm\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 1024px){.rt-SwitchRoot:where(.md\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.md\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.md\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 1280px){.rt-SwitchRoot:where(.lg\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.lg\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.lg\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 1640px){.rt-SwitchRoot:where(.xl\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.xl\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.xl\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}.rt-SwitchRoot:where(.rt-variant-surface):before{background-color:var(--gray-a3);background-image:linear-gradient(to right,var(--accent-track) 40%,transparent 60%);box-shadow:inset 0 0 0 1px var(--gray-a5)}.rt-SwitchRoot:where(.rt-variant-surface):where(:active):before{background-color:var(--gray-a4)}.rt-SwitchRoot:where(.rt-variant-surface):where([data-state=checked]:active):before{filter:var(--switch-surface-checked-active-filter)}.rt-SwitchRoot:where(.rt-variant-surface):where(.rt-high-contrast):before{background-image:linear-gradient(to right,var(--switch-high-contrast-checked-color-overlay) 40%,transparent 60%),linear-gradient(to right,var(--accent-track) 40%,transparent 60%)}.rt-SwitchRoot:where(.rt-variant-surface):where(.rt-high-contrast):where([data-state=checked]:active):before{filter:var(--switch-high-contrast-checked-active-before-filter)}.rt-SwitchRoot:where(.rt-variant-surface):where([data-disabled]){mix-blend-mode:var(--switch-disabled-blend-mode)}.rt-SwitchRoot:where(.rt-variant-surface):where([data-disabled]):before{filter:none;background-image:none;background-color:var(--gray-a3);box-shadow:inset 0 0 0 1px var(--gray-a3)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-state=unchecked]){box-shadow:0 0 1px 1px var(--black-a2),0 1px 1px var(--black-a1),0 2px 4px -1px var(--black-a1)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-state=checked]){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a1),0 0 0 1px var(--accent-a4),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-state=checked]):where(.rt-high-contrast){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a2),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-disabled]){background-color:var(--gray-2);box-shadow:0 0 0 1px var(--gray-a2),0 1px 3px var(--black-a1);transition:none}.rt-SwitchRoot:where(.rt-variant-classic):before{background-image:linear-gradient(to right,var(--accent-track) 40%,transparent 60%);background-color:var(--gray-a4);box-shadow:var(--shadow-1)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-state=unchecked]:active):before{background-color:var(--gray-a5)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-state=checked]):before{box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--accent-a4),inset 0 0 0 1px var(--black-a1),inset 0 1.5px 2px 0 var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-state=checked]:active):before{filter:var(--switch-surface-checked-active-filter)}.rt-SwitchRoot:where(.rt-variant-classic):where(.rt-high-contrast):before{box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--black-a2),inset 0 1.5px 2px 0 var(--black-a2);background-image:linear-gradient(to right,var(--switch-high-contrast-checked-color-overlay) 40%,transparent 60%),linear-gradient(to right,var(--accent-track) 40%,transparent 60%)}.rt-SwitchRoot:where(.rt-variant-classic):where(.rt-high-contrast):where([data-state=checked]:active):before{filter:var(--switch-high-contrast-checked-active-before-filter)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-disabled]){mix-blend-mode:var(--switch-disabled-blend-mode)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-disabled]):before{filter:none;background-image:none;background-color:var(--gray-a5);box-shadow:var(--shadow-1);opacity:.5}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-state=unchecked]){box-shadow:0 1px 3px var(--black-a3),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-state=checked]){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a1),0 0 0 1px var(--accent-a4),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-state=checked]):where(.rt-high-contrast){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a2),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-disabled]){background-color:var(--gray-2);box-shadow:0 0 0 1px var(--gray-a2),0 1px 3px var(--black-a1);transition:none}.rt-SwitchRoot:where(.rt-variant-soft):before{background-image:linear-gradient(to right,var(--accent-a4) 40%,transparent 60%),linear-gradient(to right,var(--accent-a4) 40%,transparent 60%),linear-gradient(to right,var(--accent-a4) 40%,var(--white-a1) 60%),linear-gradient(to right,var(--gray-a2) 40%,var(--gray-a3) 60%)}.rt-SwitchRoot:where(.rt-variant-soft):where([data-state=unchecked]):before{background-color:var(--gray-a3)}.rt-SwitchRoot:where(.rt-variant-soft):where(:active):before{background-color:var(--gray-a4)}.rt-SwitchRoot:where(.rt-variant-soft):where(.rt-high-contrast):before{background-image:linear-gradient(to right,var(--switch-high-contrast-checked-color-overlay) 40%,transparent 60%),linear-gradient(to right,var(--accent-a6) 40%,transparent 60%),linear-gradient(to right,var(--accent-a6) 40%,transparent 60%),linear-gradient(to right,var(--accent-a6) 40%,var(--white-a1) 60%),linear-gradient(to right,var(--accent-a3) 40%,var(--gray-a3) 60%)}.rt-SwitchRoot:where(.rt-variant-soft):where(.rt-high-contrast):where([data-state=checked]:active):before{filter:var(--switch-high-contrast-checked-active-before-filter)}.rt-SwitchRoot:where(.rt-variant-soft):where([data-disabled]){mix-blend-mode:var(--switch-disabled-blend-mode)}.rt-SwitchRoot:where(.rt-variant-soft):where([data-disabled]):before{filter:none;background-image:none;background-color:var(--gray-a4)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb){filter:saturate(.45)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb):where([data-state=unchecked]){box-shadow:0 0 0 1px var(--black-a1),0 1px 3px var(--black-a1),0 1px 3px var(--black-a1),0 2px 4px -1px var(--black-a1)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb):where([data-state=checked]){box-shadow:0 0 0 1px var(--black-a1),0 1px 3px var(--black-a2),0 1px 3px var(--accent-a3),0 2px 4px -1px var(--accent-a3)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb):where([data-disabled]){filter:none;background-color:var(--gray-2);box-shadow:0 0 0 1px var(--gray-a2),0 1px 3px var(--black-a1);transition:none}.rt-BaseTabList::-webkit-scrollbar{display:none}.rt-BaseTabListTrigger{display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;-webkit-user-select:none;user-select:none;box-sizing:border-box;height:var(--tab-height);padding-left:var(--tab-padding-x);padding-right:var(--tab-padding-x);color:var(--gray-a11)}.rt-BaseTabListTriggerInner,.rt-BaseTabListTriggerInnerHidden{display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:var(--tab-inner-padding-y) var(--tab-inner-padding-x);border-radius:var(--tab-inner-border-radius)}.rt-BaseTabListTriggerInner{position:absolute}:where(.rt-BaseTabListTrigger[data-state=inactive],.rt-TabNavLink:not([data-active])) .rt-BaseTabListTriggerInner{letter-spacing:var(--tab-inactive-letter-spacing);word-spacing:var(--tab-inactive-word-spacing)}:where(.rt-BaseTabListTrigger[data-state=active],.rt-TabNavLink[data-active]) .rt-BaseTabListTriggerInner{font-weight:var(--font-weight-medium);letter-spacing:var(--tab-active-letter-spacing);word-spacing:var(--tab-active-word-spacing)}.rt-BaseTabListTriggerInnerHidden{visibility:hidden;font-weight:var(--font-weight-medium);letter-spacing:var(--tab-active-letter-spacing);word-spacing:var(--tab-active-word-spacing)}.rt-BaseTabList:where(.rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}@media (min-width: 520px){.rt-BaseTabList:where(.xs\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 768px){.rt-BaseTabList:where(.sm\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 1024px){.rt-BaseTabList:where(.md\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.md\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 1280px){.rt-BaseTabList:where(.lg\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 1640px){.rt-BaseTabList:where(.xl\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}.rt-BaseTabList{box-shadow:inset 0 -1px 0 0 var(--gray-a5);display:flex;justify-content:flex-start;overflow-x:auto;white-space:nowrap;font-family:var(--default-font-family);font-style:normal;scrollbar-width:none}@media (hover: hover){.rt-BaseTabListTrigger:where(:hover){color:var(--gray-12)}.rt-BaseTabListTrigger:where(:hover) :where(.rt-BaseTabListTriggerInner){background-color:var(--gray-a3)}.rt-BaseTabListTrigger:where(:focus-visible:hover) :where(.rt-BaseTabListTriggerInner){background-color:var(--accent-a3)}}.rt-BaseTabListTrigger:where([data-state=active],[data-active]){color:var(--gray-12)}.rt-BaseTabListTrigger:where(:focus-visible) :where(.rt-BaseTabListTriggerInner){outline:2px solid var(--focus-8);outline-offset:-2px}.rt-BaseTabListTrigger:where([data-state=active],[data-active]):before{box-sizing:border-box;content:"";height:2px;position:absolute;bottom:0;left:0;right:0;background-color:var(--accent-indicator)}:where(.rt-BaseTabList.rt-high-contrast) .rt-BaseTabListTrigger:where([data-state=active],[data-active]):before{background-color:var(--accent-12)}.rt-TabNavItem{display:flex}.rt-TableRootTable{--table-row-background-color: transparent;--table-row-box-shadow: inset 0 -1px var(--gray-a5);width:100%;text-align:left;vertical-align:top;border-collapse:collapse;border-radius:calc(var(--table-border-radius) - 1px);border-spacing:0;box-sizing:border-box;height:0}.rt-TableHeader,.rt-TableBody{vertical-align:inherit}.rt-TableRow{vertical-align:inherit;color:var(--gray-12)}.rt-TableCell{background-color:var(--table-row-background-color);box-shadow:var(--table-row-box-shadow);box-sizing:border-box;vertical-align:inherit;padding:var(--table-cell-padding);height:var(--table-cell-min-height)}.rt-Inset :where(.rt-TableCell:first-child){padding-left:var(--inset-padding-left, var(--table-cell-padding))}.rt-Inset :where(.rt-TableCell:last-child){padding-right:var(--inset-padding-right, var(--table-cell-padding))}.rt-TableColumnHeaderCell{font-weight:700}.rt-TableRowHeaderCell{font-weight:400}.rt-TableRoot:where(.rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}@media (min-width: 520px){.rt-TableRoot:where(.xs\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.xs\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xs\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.xs\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xs\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.xs\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 768px){.rt-TableRoot:where(.sm\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.sm\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.sm\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.sm\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.sm\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.sm\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 1024px){.rt-TableRoot:where(.md\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.md\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.md\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.md\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.md\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.md\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 1280px){.rt-TableRoot:where(.lg\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.lg\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.lg\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.lg\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.lg\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.lg\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 1640px){.rt-TableRoot:where(.xl\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.xl\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xl\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.xl\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xl\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.xl\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}.rt-TableRoot:where(.rt-variant-surface){box-sizing:border-box;border:1px solid var(--gray-a5);border-radius:var(--table-border-radius);background-color:var(--color-panel);-webkit-backdrop-filter:var(--backdrop-filter-panel);backdrop-filter:var(--backdrop-filter-panel);background-clip:padding-box;position:relative}@supports (box-shadow: 0 0 0 1px color-mix(in oklab,white,black)){.rt-TableRoot:where(.rt-variant-surface){border-color:color-mix(in oklab,var(--gray-a5),var(--gray-6))}}.rt-TableRoot:where(.rt-variant-surface) :where(.rt-TableRootTable){overflow:hidden}.rt-TableRoot:where(.rt-variant-surface) :where(.rt-TableRootTable) :where(.rt-TableHeader){--table-row-background-color: var(--gray-a2)}.rt-TableRoot:where(.rt-variant-surface) :where(.rt-TableRootTable) :where(.rt-TableBody) :where(.rt-TableRow:last-child){--table-row-box-shadow: none}.rt-TableRoot:where(.rt-variant-ghost){--scrollarea-scrollbar-horizontal-margin-left: 0;--scrollarea-scrollbar-horizontal-margin-right: 0}.rt-TabsContent{position:relative;outline:0}.rt-TabsContent:where(:focus-visible){outline:2px solid var(--focus-8)}.rt-TextAreaRoot:where(:focus-within){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-TextAreaInput::-webkit-scrollbar{width:var(--space-3);height:var(--space-3)}.rt-TextAreaInput::-webkit-scrollbar-track,.rt-TextAreaInput::-webkit-scrollbar-thumb{background-clip:content-box;border:var(--space-1) solid transparent;border-radius:var(--space-3)}.rt-TextAreaInput::-webkit-scrollbar-track{background-color:var(--gray-a3)}.rt-TextAreaInput::-webkit-scrollbar-thumb{background-color:var(--gray-a8)}@media (hover: hover){:where(.rt-TextAreaInput:not(:disabled))::-webkit-scrollbar-thumb:hover{background-color:var(--gray-a9)}}.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]){-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--gray-12)}.rt-TextAreaRoot{padding:var(--text-area-border-width);display:flex;flex-direction:column;box-sizing:border-box;font-family:var(--default-font-family);font-weight:var(--font-weight-regular);font-style:normal;text-align:start;overflow:hidden}.rt-TextAreaInput{padding:var(--text-area-padding-y) var(--text-area-padding-x);border-radius:inherit;resize:none;display:block;width:100%;flex-grow:1;cursor:auto}.rt-TextAreaRoot:where(.rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}@media (min-width: 520px){.rt-TextAreaRoot:where(.xs\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xs\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.xs\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xs\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.xs\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.xs\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 768px){.rt-TextAreaRoot:where(.sm\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.sm\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.sm\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.sm\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.sm\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.sm\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 1024px){.rt-TextAreaRoot:where(.md\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.md\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.md\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.md\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.md\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.md\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 1280px){.rt-TextAreaRoot:where(.lg\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.lg\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.lg\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.lg\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.lg\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.lg\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 1640px){.rt-TextAreaRoot:where(.xl\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xl\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.xl\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xl\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.xl\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.xl\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}.rt-TextAreaRoot:where(.rt-variant-surface){--text-area-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:inset 0 0 0 var(--text-area-border-width) var(--gray-a7);color:var(--gray-12)}.rt-TextAreaRoot:where(.rt-variant-surface) :where(.rt-TextAreaInput)::placeholder{color:var(--gray-a10)}.rt-TextAreaRoot:where(.rt-variant-surface):where(:has(.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextAreaRoot:where(.rt-variant-surface):where(:has(.rt-TextAreaInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2));box-shadow:inset 0 0 0 var(--text-area-border-width) var(--gray-a6)}.rt-TextAreaRoot:where(.rt-variant-classic){--text-area-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:var(--shadow-1);color:var(--gray-12)}.rt-TextAreaRoot:where(.rt-variant-classic) :where(.rt-TextAreaInput)::placeholder{color:var(--gray-a10)}.rt-TextAreaRoot:where(.rt-variant-classic):where(:has(.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextAreaRoot:where(.rt-variant-classic):where(:has(.rt-TextAreaInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-TextAreaRoot:where(.rt-variant-soft){--text-area-border-width: 0px;background-color:var(--accent-a3);color:var(--accent-12)}.rt-TextAreaRoot:where(.rt-variant-soft) :where(.rt-TextAreaInput)::selection{background-color:var(--accent-a5)}.rt-TextAreaRoot:where(.rt-variant-soft) :where(.rt-TextAreaInput)::placeholder{color:var(--accent-12);opacity:.65}.rt-TextAreaRoot:where(.rt-variant-soft):where(:focus-within){outline-color:var(--accent-8)}.rt-TextAreaRoot:where(.rt-variant-soft):where(:has(.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){box-shadow:inset 0 0 0 1px var(--accent-a5),inset 0 0 0 1px var(--gray-a4)}.rt-TextAreaRoot:where(.rt-variant-soft):where(:has(.rt-TextAreaInput:where(:disabled,:read-only))){background-color:var(--gray-a3)}.rt-TextAreaInput:where(:disabled,:read-only){cursor:text;color:var(--gray-a11);-webkit-text-fill-color:var(--gray-a11)}.rt-TextAreaInput:where(:disabled,:read-only)::placeholder{opacity:.5}.rt-TextAreaInput:where(:disabled,:read-only):where(:placeholder-shown){cursor:var(--cursor-disabled)}.rt-TextAreaInput:where(:disabled,:read-only)::selection{background-color:var(--gray-a5)}.rt-TextAreaRoot:where(:focus-within:has(.rt-TextAreaInput:where(:disabled,:read-only))){outline-color:var(--gray-8)}@supports selector(:has(*)){.rt-TextFieldRoot:where(:has(.rt-TextFieldInput:focus)){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}@supports not selector(:has(*)){.rt-TextFieldRoot:where(:focus-within){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}.rt-TextFieldRoot::selection{background-color:var(--text-field-selection-color)}.rt-TextFieldInput{width:100%;display:flex;align-items:center;text-align:inherit;border-radius:calc(var(--text-field-border-radius) - var(--text-field-border-width));text-indent:var(--text-field-padding)}.rt-TextFieldInput:where([type=number]){-moz-appearance:textfield}.rt-TextFieldInput::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.rt-TextFieldInput::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.rt-TextFieldInput::selection{background-color:var(--text-field-selection-color)}.rt-TextFieldInput::-webkit-calendar-picker-indicator{box-sizing:content-box;width:var(--text-field-native-icon-size);height:var(--text-field-native-icon-size);padding:var(--space-1);margin-left:0;margin-right:calc(var(--space-1) * -1);border-radius:calc(var(--text-field-border-radius) - 2px)}.rt-TextFieldInput:where(:not([type=time]))::-webkit-calendar-picker-indicator{margin-left:var(--space-1)}.rt-TextFieldInput::-webkit-calendar-picker-indicator:where(:hover){background-color:var(--gray-a3)}.rt-TextFieldInput::-webkit-calendar-picker-indicator:where(:focus-visible){outline:2px solid var(--text-field-focus-color)}.rt-TextFieldInput::-webkit-datetime-edit-ampm-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-day-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-hour-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-millisecond-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-minute-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-month-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-second-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-week-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-year-field:where(:focus){background-color:var(--text-field-selection-color);color:inherit;outline:none}@supports selector(:has(*)){.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]){-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--gray-12)}}.rt-TextFieldSlot{box-sizing:border-box;flex-shrink:0;display:flex;align-items:center;cursor:text}.rt-TextFieldSlot:where(:not([data-side=right])){order:-1;margin-left:calc(var(--text-field-border-width) * -1);margin-right:0}.rt-TextFieldSlot:where([data-side=right]),:where(.rt-TextFieldSlot:not([data-side=right]))~.rt-TextFieldSlot:where(:not([data-side=left])){order:0;margin-left:0;margin-right:calc(var(--text-field-border-width) * -1)}.rt-TextFieldRoot{box-sizing:border-box;height:var(--text-field-height);padding:var(--text-field-border-width);border-radius:var(--text-field-border-radius);display:flex;align-items:stretch;font-family:var(--default-font-family);font-weight:var(--font-weight-regular);font-style:normal;text-align:start}.rt-TextFieldInput:where([type=date],[type=datetime-local],[type=time],[type=week],[type=month]){text-indent:0;padding-left:var(--text-field-padding);padding-right:var(--text-field-padding)}.rt-TextFieldInput:where(:has(~.rt-TextFieldSlot:not([data-side=right]))){text-indent:0;padding-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.rt-TextFieldInput:where(:has(~.rt-TextFieldSlot[data-side=right],~.rt-TextFieldSlot:not([data-side=right])~.rt-TextFieldSlot:not([data-side=left]))){padding-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.rt-TextFieldRoot:where(.rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}@media (min-width: 520px){.rt-TextFieldRoot:where(.xs\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.xs\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.xs\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.xs\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.xs\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.xs\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.xs\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.xs\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 768px){.rt-TextFieldRoot:where(.sm\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.sm\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.sm\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.sm\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.sm\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.sm\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.sm\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.sm\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 1024px){.rt-TextFieldRoot:where(.md\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.md\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.md\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.md\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.md\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.md\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.md\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.md\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.md\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.md\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.md\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.md\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 1280px){.rt-TextFieldRoot:where(.lg\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.lg\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.lg\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.lg\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.lg\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.lg\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.lg\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.lg\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 1640px){.rt-TextFieldRoot:where(.xl\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.xl\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.xl\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.xl\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.xl\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.xl\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.xl\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.xl\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}.rt-TextFieldRoot:where(.rt-variant-surface){--text-field-selection-color: var(--focus-a5);--text-field-focus-color: var(--focus-8);--text-field-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:inset 0 0 0 var(--text-field-border-width) var(--gray-a7);color:var(--gray-12)}.rt-TextFieldRoot:where(.rt-variant-surface) :where(.rt-TextFieldInput)::placeholder{color:var(--gray-a10)}.rt-TextFieldRoot:where(.rt-variant-surface) :where(.rt-TextFieldSlot){color:var(--gray-a11)}.rt-TextFieldRoot:where(.rt-variant-surface) :where(.rt-TextFieldSlot):where([data-accent-color]){color:var(--accent-a11)}.rt-TextFieldRoot:where(.rt-variant-surface):where(:has(.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextFieldRoot:where(.rt-variant-surface):where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2));box-shadow:inset 0 0 0 var(--text-field-border-width) var(--gray-a6)}.rt-TextFieldRoot:where(.rt-variant-classic){--text-field-selection-color: var(--focus-a5);--text-field-focus-color: var(--focus-8);--text-field-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:var(--shadow-1);color:var(--gray-12)}.rt-TextFieldRoot:where(.rt-variant-classic) :where(.rt-TextFieldInput)::placeholder{color:var(--gray-a10)}.rt-TextFieldRoot:where(.rt-variant-classic) :where(.rt-TextFieldSlot){color:var(--gray-a11)}.rt-TextFieldRoot:where(.rt-variant-classic) :where(.rt-TextFieldSlot):where([data-accent-color]){color:var(--accent-a11)}.rt-TextFieldRoot:where(.rt-variant-classic):where(:has(.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextFieldRoot:where(.rt-variant-classic):where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-TextFieldRoot:where(.rt-variant-soft){--text-field-selection-color: var(--accent-a5);--text-field-focus-color: var(--accent-8);--text-field-border-width: 0px;background-color:var(--accent-a3);color:var(--accent-12)}.rt-TextFieldRoot:where(.rt-variant-soft) :where(.rt-TextFieldInput)::placeholder{color:var(--accent-12);opacity:.6}.rt-TextFieldRoot:where(.rt-variant-soft) :where(.rt-TextFieldSlot){color:var(--accent-12)}.rt-TextFieldRoot:where(.rt-variant-soft) :where(.rt-TextFieldSlot):where([data-accent-color]){color:var(--accent-a11)}.rt-TextFieldRoot:where(.rt-variant-soft):where(:has(.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){box-shadow:inset 0 0 0 1px var(--accent-a5),inset 0 0 0 1px var(--gray-a4)}.rt-TextFieldRoot:where(.rt-variant-soft):where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){background-color:var(--gray-a3)}.rt-TextFieldInput:where(:disabled,:read-only){cursor:text;color:var(--gray-a11);-webkit-text-fill-color:var(--gray-a11)}.rt-TextFieldInput:where(:disabled,:read-only)::placeholder{opacity:.5}.rt-TextFieldInput:where(:disabled,:read-only):where(:placeholder-shown){cursor:var(--cursor-disabled)}.rt-TextFieldInput:where(:disabled,:read-only):where(:placeholder-shown)~:where(.rt-TextFieldSlot){cursor:var(--cursor-disabled)}.rt-TextFieldRoot:where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){--text-field-selection-color: var(--gray-a5);--text-field-focus-color: var(--gray-8)}.rt-ThemePanelShortcut:where(:focus-visible){outline-style:solid;outline-width:2px;outline-offset:2px;outline-color:var(--accent-9)}.rt-ThemePanelSwatch,.rt-ThemePanelRadioCard{position:relative}.rt-ThemePanelSwatchInput,.rt-ThemePanelRadioCardInput{-webkit-appearance:none;appearance:none;margin:0;outline:none;outline-width:2px;position:absolute;inset:0;border-radius:inherit;width:100%;height:100%}.rt-ThemePanelSwatch{width:var(--space-5);height:var(--space-5);border-radius:100%}.rt-ThemePanelSwatchInput{outline-offset:2px}.rt-ThemePanelSwatchInput:where(:checked){outline-style:solid;outline-color:var(--gray-12)}.rt-ThemePanelSwatchInput:where(:focus-visible){outline-style:solid;outline-color:var(--accent-9)}.rt-ThemePanelRadioCard{border-radius:var(--radius-1);box-shadow:0 0 0 1px var(--gray-7)}.rt-ThemePanelRadioCardInput{outline-offset:-1px}.rt-ThemePanelRadioCardInput:where(:checked){outline-style:solid;outline-color:var(--gray-12)}.rt-ThemePanelRadioCardInput:where(:focus-visible){background-color:var(--accent-a3);outline-style:solid;outline-color:var(--accent-9)}.rt-TooltipContent{box-sizing:border-box;padding:var(--space-1) var(--space-2);background-color:var(--gray-12);border-radius:var(--radius-2);transform-origin:var(--radix-tooltip-content-transform-origin);animation-duration:.14s;animation-timing-function:cubic-bezier(.16,1,.3,1)}@media (prefers-reduced-motion: no-preference){.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=top]){animation-name:rt-slide-from-top,rt-fade-in}.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=bottom]){animation-name:rt-slide-from-bottom,rt-fade-in}.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=left]){animation-name:rt-slide-from-left,rt-fade-in}.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=right]){animation-name:rt-slide-from-right,rt-fade-in}}.rt-TooltipText{color:var(--gray-1);-webkit-user-select:none;user-select:none;cursor:default}.rt-TooltipArrow{fill:var(--gray-12)}.radix-themes:where([data-is-root-theme=true]){position:relative;z-index:0;min-height:100vh}@supports (min-height: 100dvh){.radix-themes:where([data-is-root-theme=true]){min-height:100dvh}}.rt-r-ai-start{align-items:flex-start}.rt-r-ai-center{align-items:center}.rt-r-ai-end{align-items:flex-end}.rt-r-ai-baseline{align-items:baseline}.rt-r-ai-stretch{align-items:stretch}@media (min-width: 520px){.xs\:rt-r-ai-start{align-items:flex-start}.xs\:rt-r-ai-center{align-items:center}.xs\:rt-r-ai-end{align-items:flex-end}.xs\:rt-r-ai-baseline{align-items:baseline}.xs\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 768px){.sm\:rt-r-ai-start{align-items:flex-start}.sm\:rt-r-ai-center{align-items:center}.sm\:rt-r-ai-end{align-items:flex-end}.sm\:rt-r-ai-baseline{align-items:baseline}.sm\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 1024px){.md\:rt-r-ai-start{align-items:flex-start}.md\:rt-r-ai-center{align-items:center}.md\:rt-r-ai-end{align-items:flex-end}.md\:rt-r-ai-baseline{align-items:baseline}.md\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 1280px){.lg\:rt-r-ai-start{align-items:flex-start}.lg\:rt-r-ai-center{align-items:center}.lg\:rt-r-ai-end{align-items:flex-end}.lg\:rt-r-ai-baseline{align-items:baseline}.lg\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 1640px){.xl\:rt-r-ai-start{align-items:flex-start}.xl\:rt-r-ai-center{align-items:center}.xl\:rt-r-ai-end{align-items:flex-end}.xl\:rt-r-ai-baseline{align-items:baseline}.xl\:rt-r-ai-stretch{align-items:stretch}}.rt-r-as-start{align-self:flex-start}.rt-r-as-center{align-self:center}.rt-r-as-end{align-self:flex-end}.rt-r-as-baseline{align-self:baseline}.rt-r-as-stretch{align-self:stretch}@media (min-width: 520px){.xs\:rt-r-as-start{align-self:flex-start}.xs\:rt-r-as-center{align-self:center}.xs\:rt-r-as-end{align-self:flex-end}.xs\:rt-r-as-baseline{align-self:baseline}.xs\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 768px){.sm\:rt-r-as-start{align-self:flex-start}.sm\:rt-r-as-center{align-self:center}.sm\:rt-r-as-end{align-self:flex-end}.sm\:rt-r-as-baseline{align-self:baseline}.sm\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 1024px){.md\:rt-r-as-start{align-self:flex-start}.md\:rt-r-as-center{align-self:center}.md\:rt-r-as-end{align-self:flex-end}.md\:rt-r-as-baseline{align-self:baseline}.md\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 1280px){.lg\:rt-r-as-start{align-self:flex-start}.lg\:rt-r-as-center{align-self:center}.lg\:rt-r-as-end{align-self:flex-end}.lg\:rt-r-as-baseline{align-self:baseline}.lg\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 1640px){.xl\:rt-r-as-start{align-self:flex-start}.xl\:rt-r-as-center{align-self:center}.xl\:rt-r-as-end{align-self:flex-end}.xl\:rt-r-as-baseline{align-self:baseline}.xl\:rt-r-as-stretch{align-self:stretch}}.rt-r-display-block{display:block}.rt-r-display-inline{display:inline}.rt-r-display-inline-block{display:inline-block}.rt-r-display-flex{display:flex}.rt-r-display-inline-flex{display:inline-flex}.rt-r-display-grid{display:grid}.rt-r-display-inline-grid{display:inline-grid}.rt-r-display-none{display:none}.rt-r-display-contents{display:contents}@media (min-width: 520px){.xs\:rt-r-display-block{display:block}.xs\:rt-r-display-inline{display:inline}.xs\:rt-r-display-inline-block{display:inline-block}.xs\:rt-r-display-flex{display:flex}.xs\:rt-r-display-inline-flex{display:inline-flex}.xs\:rt-r-display-grid{display:grid}.xs\:rt-r-display-inline-grid{display:inline-grid}.xs\:rt-r-display-none{display:none}.xs\:rt-r-display-contents{display:contents}}@media (min-width: 768px){.sm\:rt-r-display-block{display:block}.sm\:rt-r-display-inline{display:inline}.sm\:rt-r-display-inline-block{display:inline-block}.sm\:rt-r-display-flex{display:flex}.sm\:rt-r-display-inline-flex{display:inline-flex}.sm\:rt-r-display-grid{display:grid}.sm\:rt-r-display-inline-grid{display:inline-grid}.sm\:rt-r-display-none{display:none}.sm\:rt-r-display-contents{display:contents}}@media (min-width: 1024px){.md\:rt-r-display-block{display:block}.md\:rt-r-display-inline{display:inline}.md\:rt-r-display-inline-block{display:inline-block}.md\:rt-r-display-flex{display:flex}.md\:rt-r-display-inline-flex{display:inline-flex}.md\:rt-r-display-grid{display:grid}.md\:rt-r-display-inline-grid{display:inline-grid}.md\:rt-r-display-none{display:none}.md\:rt-r-display-contents{display:contents}}@media (min-width: 1280px){.lg\:rt-r-display-block{display:block}.lg\:rt-r-display-inline{display:inline}.lg\:rt-r-display-inline-block{display:inline-block}.lg\:rt-r-display-flex{display:flex}.lg\:rt-r-display-inline-flex{display:inline-flex}.lg\:rt-r-display-grid{display:grid}.lg\:rt-r-display-inline-grid{display:inline-grid}.lg\:rt-r-display-none{display:none}.lg\:rt-r-display-contents{display:contents}}@media (min-width: 1640px){.xl\:rt-r-display-block{display:block}.xl\:rt-r-display-inline{display:inline}.xl\:rt-r-display-inline-block{display:inline-block}.xl\:rt-r-display-flex{display:flex}.xl\:rt-r-display-inline-flex{display:inline-flex}.xl\:rt-r-display-grid{display:grid}.xl\:rt-r-display-inline-grid{display:inline-grid}.xl\:rt-r-display-none{display:none}.xl\:rt-r-display-contents{display:contents}}.rt-r-fb{flex-basis:var(--flex-basis)}@media (min-width: 520px){.xs\:rt-r-fb{flex-basis:var(--flex-basis-xs)}}@media (min-width: 768px){.sm\:rt-r-fb{flex-basis:var(--flex-basis-sm)}}@media (min-width: 1024px){.md\:rt-r-fb{flex-basis:var(--flex-basis-md)}}@media (min-width: 1280px){.lg\:rt-r-fb{flex-basis:var(--flex-basis-lg)}}@media (min-width: 1640px){.xl\:rt-r-fb{flex-basis:var(--flex-basis-xl)}}.rt-r-fd-row{flex-direction:row}.rt-r-fd-column{flex-direction:column}.rt-r-fd-row-reverse{flex-direction:row-reverse}.rt-r-fd-column-reverse{flex-direction:column-reverse}@media (min-width: 520px){.xs\:rt-r-fd-row{flex-direction:row}.xs\:rt-r-fd-column{flex-direction:column}.xs\:rt-r-fd-row-reverse{flex-direction:row-reverse}.xs\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 768px){.sm\:rt-r-fd-row{flex-direction:row}.sm\:rt-r-fd-column{flex-direction:column}.sm\:rt-r-fd-row-reverse{flex-direction:row-reverse}.sm\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 1024px){.md\:rt-r-fd-row{flex-direction:row}.md\:rt-r-fd-column{flex-direction:column}.md\:rt-r-fd-row-reverse{flex-direction:row-reverse}.md\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 1280px){.lg\:rt-r-fd-row{flex-direction:row}.lg\:rt-r-fd-column{flex-direction:column}.lg\:rt-r-fd-row-reverse{flex-direction:row-reverse}.lg\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 1640px){.xl\:rt-r-fd-row{flex-direction:row}.xl\:rt-r-fd-column{flex-direction:column}.xl\:rt-r-fd-row-reverse{flex-direction:row-reverse}.xl\:rt-r-fd-column-reverse{flex-direction:column-reverse}}.rt-r-fg{flex-grow:var(--flex-grow)}.rt-r-fg-0{flex-grow:0}.rt-r-fg-1{flex-grow:1}@media (min-width: 520px){.xs\:rt-r-fg{flex-grow:var(--flex-grow-xs)}.xs\:rt-r-fg-0{flex-grow:0}.xs\:rt-r-fg-1{flex-grow:1}}@media (min-width: 768px){.sm\:rt-r-fg{flex-grow:var(--flex-grow-sm)}.sm\:rt-r-fg-0{flex-grow:0}.sm\:rt-r-fg-1{flex-grow:1}}@media (min-width: 1024px){.md\:rt-r-fg{flex-grow:var(--flex-grow-md)}.md\:rt-r-fg-0{flex-grow:0}.md\:rt-r-fg-1{flex-grow:1}}@media (min-width: 1280px){.lg\:rt-r-fg{flex-grow:var(--flex-grow-lg)}.lg\:rt-r-fg-0{flex-grow:0}.lg\:rt-r-fg-1{flex-grow:1}}@media (min-width: 1640px){.xl\:rt-r-fg{flex-grow:var(--flex-grow-xl)}.xl\:rt-r-fg-0{flex-grow:0}.xl\:rt-r-fg-1{flex-grow:1}}.rt-r-fs{flex-shrink:var(--flex-shrink)}.rt-r-fs-0{flex-shrink:0}.rt-r-fs-1{flex-shrink:1}@media (min-width: 520px){.xs\:rt-r-fs{flex-shrink:var(--flex-shrink-xs)}.xs\:rt-r-fs-0{flex-shrink:0}.xs\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 768px){.sm\:rt-r-fs{flex-shrink:var(--flex-shrink-sm)}.sm\:rt-r-fs-0{flex-shrink:0}.sm\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 1024px){.md\:rt-r-fs{flex-shrink:var(--flex-shrink-md)}.md\:rt-r-fs-0{flex-shrink:0}.md\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 1280px){.lg\:rt-r-fs{flex-shrink:var(--flex-shrink-lg)}.lg\:rt-r-fs-0{flex-shrink:0}.lg\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 1640px){.xl\:rt-r-fs{flex-shrink:var(--flex-shrink-xl)}.xl\:rt-r-fs-0{flex-shrink:0}.xl\:rt-r-fs-1{flex-shrink:1}}.rt-r-fw-nowrap{flex-wrap:nowrap}.rt-r-fw-wrap{flex-wrap:wrap}.rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}@media (min-width: 520px){.xs\:rt-r-fw-nowrap{flex-wrap:nowrap}.xs\:rt-r-fw-wrap{flex-wrap:wrap}.xs\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 768px){.sm\:rt-r-fw-nowrap{flex-wrap:nowrap}.sm\:rt-r-fw-wrap{flex-wrap:wrap}.sm\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 1024px){.md\:rt-r-fw-nowrap{flex-wrap:nowrap}.md\:rt-r-fw-wrap{flex-wrap:wrap}.md\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 1280px){.lg\:rt-r-fw-nowrap{flex-wrap:nowrap}.lg\:rt-r-fw-wrap{flex-wrap:wrap}.lg\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 1640px){.xl\:rt-r-fw-nowrap{flex-wrap:nowrap}.xl\:rt-r-fw-wrap{flex-wrap:wrap}.xl\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}.rt-r-gap{gap:var(--gap)}.rt-r-gap-0{gap:0}.rt-r-gap-1{gap:var(--space-1)}.rt-r-gap-2{gap:var(--space-2)}.rt-r-gap-3{gap:var(--space-3)}.rt-r-gap-4{gap:var(--space-4)}.rt-r-gap-5{gap:var(--space-5)}.rt-r-gap-6{gap:var(--space-6)}.rt-r-gap-7{gap:var(--space-7)}.rt-r-gap-8{gap:var(--space-8)}.rt-r-gap-9{gap:var(--space-9)}.rt-r-cg{column-gap:var(--column-gap)}.rt-r-cg-0{column-gap:0}.rt-r-cg-1{column-gap:var(--space-1)}.rt-r-cg-2{column-gap:var(--space-2)}.rt-r-cg-3{column-gap:var(--space-3)}.rt-r-cg-4{column-gap:var(--space-4)}.rt-r-cg-5{column-gap:var(--space-5)}.rt-r-cg-6{column-gap:var(--space-6)}.rt-r-cg-7{column-gap:var(--space-7)}.rt-r-cg-8{column-gap:var(--space-8)}.rt-r-cg-9{column-gap:var(--space-9)}.rt-r-rg{row-gap:var(--row-gap)}.rt-r-rg-0{row-gap:0}.rt-r-rg-1{row-gap:var(--space-1)}.rt-r-rg-2{row-gap:var(--space-2)}.rt-r-rg-3{row-gap:var(--space-3)}.rt-r-rg-4{row-gap:var(--space-4)}.rt-r-rg-5{row-gap:var(--space-5)}.rt-r-rg-6{row-gap:var(--space-6)}.rt-r-rg-7{row-gap:var(--space-7)}.rt-r-rg-8{row-gap:var(--space-8)}.rt-r-rg-9{row-gap:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-gap{gap:var(--gap-xs)}.xs\:rt-r-gap-0{gap:0}.xs\:rt-r-gap-1{gap:var(--space-1)}.xs\:rt-r-gap-2{gap:var(--space-2)}.xs\:rt-r-gap-3{gap:var(--space-3)}.xs\:rt-r-gap-4{gap:var(--space-4)}.xs\:rt-r-gap-5{gap:var(--space-5)}.xs\:rt-r-gap-6{gap:var(--space-6)}.xs\:rt-r-gap-7{gap:var(--space-7)}.xs\:rt-r-gap-8{gap:var(--space-8)}.xs\:rt-r-gap-9{gap:var(--space-9)}.xs\:rt-r-cg{column-gap:var(--column-gap-xs)}.xs\:rt-r-cg-0{column-gap:0}.xs\:rt-r-cg-1{column-gap:var(--space-1)}.xs\:rt-r-cg-2{column-gap:var(--space-2)}.xs\:rt-r-cg-3{column-gap:var(--space-3)}.xs\:rt-r-cg-4{column-gap:var(--space-4)}.xs\:rt-r-cg-5{column-gap:var(--space-5)}.xs\:rt-r-cg-6{column-gap:var(--space-6)}.xs\:rt-r-cg-7{column-gap:var(--space-7)}.xs\:rt-r-cg-8{column-gap:var(--space-8)}.xs\:rt-r-cg-9{column-gap:var(--space-9)}.xs\:rt-r-rg{row-gap:var(--row-gap-xs)}.xs\:rt-r-rg-0{row-gap:0}.xs\:rt-r-rg-1{row-gap:var(--space-1)}.xs\:rt-r-rg-2{row-gap:var(--space-2)}.xs\:rt-r-rg-3{row-gap:var(--space-3)}.xs\:rt-r-rg-4{row-gap:var(--space-4)}.xs\:rt-r-rg-5{row-gap:var(--space-5)}.xs\:rt-r-rg-6{row-gap:var(--space-6)}.xs\:rt-r-rg-7{row-gap:var(--space-7)}.xs\:rt-r-rg-8{row-gap:var(--space-8)}.xs\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-gap{gap:var(--gap-sm)}.sm\:rt-r-gap-0{gap:0}.sm\:rt-r-gap-1{gap:var(--space-1)}.sm\:rt-r-gap-2{gap:var(--space-2)}.sm\:rt-r-gap-3{gap:var(--space-3)}.sm\:rt-r-gap-4{gap:var(--space-4)}.sm\:rt-r-gap-5{gap:var(--space-5)}.sm\:rt-r-gap-6{gap:var(--space-6)}.sm\:rt-r-gap-7{gap:var(--space-7)}.sm\:rt-r-gap-8{gap:var(--space-8)}.sm\:rt-r-gap-9{gap:var(--space-9)}.sm\:rt-r-cg{column-gap:var(--column-gap-sm)}.sm\:rt-r-cg-0{column-gap:0}.sm\:rt-r-cg-1{column-gap:var(--space-1)}.sm\:rt-r-cg-2{column-gap:var(--space-2)}.sm\:rt-r-cg-3{column-gap:var(--space-3)}.sm\:rt-r-cg-4{column-gap:var(--space-4)}.sm\:rt-r-cg-5{column-gap:var(--space-5)}.sm\:rt-r-cg-6{column-gap:var(--space-6)}.sm\:rt-r-cg-7{column-gap:var(--space-7)}.sm\:rt-r-cg-8{column-gap:var(--space-8)}.sm\:rt-r-cg-9{column-gap:var(--space-9)}.sm\:rt-r-rg{row-gap:var(--row-gap-sm)}.sm\:rt-r-rg-0{row-gap:0}.sm\:rt-r-rg-1{row-gap:var(--space-1)}.sm\:rt-r-rg-2{row-gap:var(--space-2)}.sm\:rt-r-rg-3{row-gap:var(--space-3)}.sm\:rt-r-rg-4{row-gap:var(--space-4)}.sm\:rt-r-rg-5{row-gap:var(--space-5)}.sm\:rt-r-rg-6{row-gap:var(--space-6)}.sm\:rt-r-rg-7{row-gap:var(--space-7)}.sm\:rt-r-rg-8{row-gap:var(--space-8)}.sm\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-gap{gap:var(--gap-md)}.md\:rt-r-gap-0{gap:0}.md\:rt-r-gap-1{gap:var(--space-1)}.md\:rt-r-gap-2{gap:var(--space-2)}.md\:rt-r-gap-3{gap:var(--space-3)}.md\:rt-r-gap-4{gap:var(--space-4)}.md\:rt-r-gap-5{gap:var(--space-5)}.md\:rt-r-gap-6{gap:var(--space-6)}.md\:rt-r-gap-7{gap:var(--space-7)}.md\:rt-r-gap-8{gap:var(--space-8)}.md\:rt-r-gap-9{gap:var(--space-9)}.md\:rt-r-cg{column-gap:var(--column-gap-md)}.md\:rt-r-cg-0{column-gap:0}.md\:rt-r-cg-1{column-gap:var(--space-1)}.md\:rt-r-cg-2{column-gap:var(--space-2)}.md\:rt-r-cg-3{column-gap:var(--space-3)}.md\:rt-r-cg-4{column-gap:var(--space-4)}.md\:rt-r-cg-5{column-gap:var(--space-5)}.md\:rt-r-cg-6{column-gap:var(--space-6)}.md\:rt-r-cg-7{column-gap:var(--space-7)}.md\:rt-r-cg-8{column-gap:var(--space-8)}.md\:rt-r-cg-9{column-gap:var(--space-9)}.md\:rt-r-rg{row-gap:var(--row-gap-md)}.md\:rt-r-rg-0{row-gap:0}.md\:rt-r-rg-1{row-gap:var(--space-1)}.md\:rt-r-rg-2{row-gap:var(--space-2)}.md\:rt-r-rg-3{row-gap:var(--space-3)}.md\:rt-r-rg-4{row-gap:var(--space-4)}.md\:rt-r-rg-5{row-gap:var(--space-5)}.md\:rt-r-rg-6{row-gap:var(--space-6)}.md\:rt-r-rg-7{row-gap:var(--space-7)}.md\:rt-r-rg-8{row-gap:var(--space-8)}.md\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-gap{gap:var(--gap-lg)}.lg\:rt-r-gap-0{gap:0}.lg\:rt-r-gap-1{gap:var(--space-1)}.lg\:rt-r-gap-2{gap:var(--space-2)}.lg\:rt-r-gap-3{gap:var(--space-3)}.lg\:rt-r-gap-4{gap:var(--space-4)}.lg\:rt-r-gap-5{gap:var(--space-5)}.lg\:rt-r-gap-6{gap:var(--space-6)}.lg\:rt-r-gap-7{gap:var(--space-7)}.lg\:rt-r-gap-8{gap:var(--space-8)}.lg\:rt-r-gap-9{gap:var(--space-9)}.lg\:rt-r-cg{column-gap:var(--column-gap-lg)}.lg\:rt-r-cg-0{column-gap:0}.lg\:rt-r-cg-1{column-gap:var(--space-1)}.lg\:rt-r-cg-2{column-gap:var(--space-2)}.lg\:rt-r-cg-3{column-gap:var(--space-3)}.lg\:rt-r-cg-4{column-gap:var(--space-4)}.lg\:rt-r-cg-5{column-gap:var(--space-5)}.lg\:rt-r-cg-6{column-gap:var(--space-6)}.lg\:rt-r-cg-7{column-gap:var(--space-7)}.lg\:rt-r-cg-8{column-gap:var(--space-8)}.lg\:rt-r-cg-9{column-gap:var(--space-9)}.lg\:rt-r-rg{row-gap:var(--row-gap-lg)}.lg\:rt-r-rg-0{row-gap:0}.lg\:rt-r-rg-1{row-gap:var(--space-1)}.lg\:rt-r-rg-2{row-gap:var(--space-2)}.lg\:rt-r-rg-3{row-gap:var(--space-3)}.lg\:rt-r-rg-4{row-gap:var(--space-4)}.lg\:rt-r-rg-5{row-gap:var(--space-5)}.lg\:rt-r-rg-6{row-gap:var(--space-6)}.lg\:rt-r-rg-7{row-gap:var(--space-7)}.lg\:rt-r-rg-8{row-gap:var(--space-8)}.lg\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-gap{gap:var(--gap-xl)}.xl\:rt-r-gap-0{gap:0}.xl\:rt-r-gap-1{gap:var(--space-1)}.xl\:rt-r-gap-2{gap:var(--space-2)}.xl\:rt-r-gap-3{gap:var(--space-3)}.xl\:rt-r-gap-4{gap:var(--space-4)}.xl\:rt-r-gap-5{gap:var(--space-5)}.xl\:rt-r-gap-6{gap:var(--space-6)}.xl\:rt-r-gap-7{gap:var(--space-7)}.xl\:rt-r-gap-8{gap:var(--space-8)}.xl\:rt-r-gap-9{gap:var(--space-9)}.xl\:rt-r-cg{column-gap:var(--column-gap-xl)}.xl\:rt-r-cg-0{column-gap:0}.xl\:rt-r-cg-1{column-gap:var(--space-1)}.xl\:rt-r-cg-2{column-gap:var(--space-2)}.xl\:rt-r-cg-3{column-gap:var(--space-3)}.xl\:rt-r-cg-4{column-gap:var(--space-4)}.xl\:rt-r-cg-5{column-gap:var(--space-5)}.xl\:rt-r-cg-6{column-gap:var(--space-6)}.xl\:rt-r-cg-7{column-gap:var(--space-7)}.xl\:rt-r-cg-8{column-gap:var(--space-8)}.xl\:rt-r-cg-9{column-gap:var(--space-9)}.xl\:rt-r-rg{row-gap:var(--row-gap-xl)}.xl\:rt-r-rg-0{row-gap:0}.xl\:rt-r-rg-1{row-gap:var(--space-1)}.xl\:rt-r-rg-2{row-gap:var(--space-2)}.xl\:rt-r-rg-3{row-gap:var(--space-3)}.xl\:rt-r-rg-4{row-gap:var(--space-4)}.xl\:rt-r-rg-5{row-gap:var(--space-5)}.xl\:rt-r-rg-6{row-gap:var(--space-6)}.xl\:rt-r-rg-7{row-gap:var(--space-7)}.xl\:rt-r-rg-8{row-gap:var(--space-8)}.xl\:rt-r-rg-9{row-gap:var(--space-9)}}.rt-r-ga{grid-area:var(--grid-area)}@media (min-width: 520px){.xs\:rt-r-ga{grid-area:var(--grid-area-xs)}}@media (min-width: 768px){.sm\:rt-r-ga{grid-area:var(--grid-area-sm)}}@media (min-width: 1024px){.md\:rt-r-ga{grid-area:var(--grid-area-md)}}@media (min-width: 1280px){.lg\:rt-r-ga{grid-area:var(--grid-area-lg)}}@media (min-width: 1640px){.xl\:rt-r-ga{grid-area:var(--grid-area-xl)}}.rt-r-gaf-row{grid-auto-flow:row}.rt-r-gaf-column{grid-auto-flow:column}.rt-r-gaf-dense{grid-auto-flow:dense}.rt-r-gaf-row-dense{grid-auto-flow:row dense}.rt-r-gaf-column-dense{grid-auto-flow:column dense}@media (min-width: 520px){.xs\:rt-r-gaf-row{grid-auto-flow:row}.xs\:rt-r-gaf-column{grid-auto-flow:column}.xs\:rt-r-gaf-dense{grid-auto-flow:dense}.xs\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.xs\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 768px){.sm\:rt-r-gaf-row{grid-auto-flow:row}.sm\:rt-r-gaf-column{grid-auto-flow:column}.sm\:rt-r-gaf-dense{grid-auto-flow:dense}.sm\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.sm\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 1024px){.md\:rt-r-gaf-row{grid-auto-flow:row}.md\:rt-r-gaf-column{grid-auto-flow:column}.md\:rt-r-gaf-dense{grid-auto-flow:dense}.md\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.md\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 1280px){.lg\:rt-r-gaf-row{grid-auto-flow:row}.lg\:rt-r-gaf-column{grid-auto-flow:column}.lg\:rt-r-gaf-dense{grid-auto-flow:dense}.lg\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.lg\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 1640px){.xl\:rt-r-gaf-row{grid-auto-flow:row}.xl\:rt-r-gaf-column{grid-auto-flow:column}.xl\:rt-r-gaf-dense{grid-auto-flow:dense}.xl\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.xl\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}.rt-r-gc{grid-column:var(--grid-column)}.rt-r-gc-1{grid-column:1}.rt-r-gc-2{grid-column:2}.rt-r-gc-3{grid-column:3}.rt-r-gc-4{grid-column:4}.rt-r-gc-5{grid-column:5}.rt-r-gc-6{grid-column:6}.rt-r-gc-7{grid-column:7}.rt-r-gc-8{grid-column:8}.rt-r-gc-9{grid-column:9}@media (min-width: 520px){.xs\:rt-r-gc{grid-column:var(--grid-column-xs)}.xs\:rt-r-gc-1{grid-column:1}.xs\:rt-r-gc-2{grid-column:2}.xs\:rt-r-gc-3{grid-column:3}.xs\:rt-r-gc-4{grid-column:4}.xs\:rt-r-gc-5{grid-column:5}.xs\:rt-r-gc-6{grid-column:6}.xs\:rt-r-gc-7{grid-column:7}.xs\:rt-r-gc-8{grid-column:8}.xs\:rt-r-gc-9{grid-column:9}}@media (min-width: 768px){.sm\:rt-r-gc{grid-column:var(--grid-column-sm)}.sm\:rt-r-gc-1{grid-column:1}.sm\:rt-r-gc-2{grid-column:2}.sm\:rt-r-gc-3{grid-column:3}.sm\:rt-r-gc-4{grid-column:4}.sm\:rt-r-gc-5{grid-column:5}.sm\:rt-r-gc-6{grid-column:6}.sm\:rt-r-gc-7{grid-column:7}.sm\:rt-r-gc-8{grid-column:8}.sm\:rt-r-gc-9{grid-column:9}}@media (min-width: 1024px){.md\:rt-r-gc{grid-column:var(--grid-column-md)}.md\:rt-r-gc-1{grid-column:1}.md\:rt-r-gc-2{grid-column:2}.md\:rt-r-gc-3{grid-column:3}.md\:rt-r-gc-4{grid-column:4}.md\:rt-r-gc-5{grid-column:5}.md\:rt-r-gc-6{grid-column:6}.md\:rt-r-gc-7{grid-column:7}.md\:rt-r-gc-8{grid-column:8}.md\:rt-r-gc-9{grid-column:9}}@media (min-width: 1280px){.lg\:rt-r-gc{grid-column:var(--grid-column-lg)}.lg\:rt-r-gc-1{grid-column:1}.lg\:rt-r-gc-2{grid-column:2}.lg\:rt-r-gc-3{grid-column:3}.lg\:rt-r-gc-4{grid-column:4}.lg\:rt-r-gc-5{grid-column:5}.lg\:rt-r-gc-6{grid-column:6}.lg\:rt-r-gc-7{grid-column:7}.lg\:rt-r-gc-8{grid-column:8}.lg\:rt-r-gc-9{grid-column:9}}@media (min-width: 1640px){.xl\:rt-r-gc{grid-column:var(--grid-column-xl)}.xl\:rt-r-gc-1{grid-column:1}.xl\:rt-r-gc-2{grid-column:2}.xl\:rt-r-gc-3{grid-column:3}.xl\:rt-r-gc-4{grid-column:4}.xl\:rt-r-gc-5{grid-column:5}.xl\:rt-r-gc-6{grid-column:6}.xl\:rt-r-gc-7{grid-column:7}.xl\:rt-r-gc-8{grid-column:8}.xl\:rt-r-gc-9{grid-column:9}}.rt-r-gcs{grid-column-start:var(--grid-column-start)}.rt-r-gcs-1{grid-column-start:1}.rt-r-gcs-2{grid-column-start:2}.rt-r-gcs-3{grid-column-start:3}.rt-r-gcs-4{grid-column-start:4}.rt-r-gcs-5{grid-column-start:5}.rt-r-gcs-6{grid-column-start:6}.rt-r-gcs-7{grid-column-start:7}.rt-r-gcs-8{grid-column-start:8}.rt-r-gcs-9{grid-column-start:9}@media (min-width: 520px){.xs\:rt-r-gcs{grid-column-start:var(--grid-column-start-xs)}.xs\:rt-r-gcs-1{grid-column-start:1}.xs\:rt-r-gcs-2{grid-column-start:2}.xs\:rt-r-gcs-3{grid-column-start:3}.xs\:rt-r-gcs-4{grid-column-start:4}.xs\:rt-r-gcs-5{grid-column-start:5}.xs\:rt-r-gcs-6{grid-column-start:6}.xs\:rt-r-gcs-7{grid-column-start:7}.xs\:rt-r-gcs-8{grid-column-start:8}.xs\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 768px){.sm\:rt-r-gcs{grid-column-start:var(--grid-column-start-sm)}.sm\:rt-r-gcs-1{grid-column-start:1}.sm\:rt-r-gcs-2{grid-column-start:2}.sm\:rt-r-gcs-3{grid-column-start:3}.sm\:rt-r-gcs-4{grid-column-start:4}.sm\:rt-r-gcs-5{grid-column-start:5}.sm\:rt-r-gcs-6{grid-column-start:6}.sm\:rt-r-gcs-7{grid-column-start:7}.sm\:rt-r-gcs-8{grid-column-start:8}.sm\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 1024px){.md\:rt-r-gcs{grid-column-start:var(--grid-column-start-md)}.md\:rt-r-gcs-1{grid-column-start:1}.md\:rt-r-gcs-2{grid-column-start:2}.md\:rt-r-gcs-3{grid-column-start:3}.md\:rt-r-gcs-4{grid-column-start:4}.md\:rt-r-gcs-5{grid-column-start:5}.md\:rt-r-gcs-6{grid-column-start:6}.md\:rt-r-gcs-7{grid-column-start:7}.md\:rt-r-gcs-8{grid-column-start:8}.md\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 1280px){.lg\:rt-r-gcs{grid-column-start:var(--grid-column-start-lg)}.lg\:rt-r-gcs-1{grid-column-start:1}.lg\:rt-r-gcs-2{grid-column-start:2}.lg\:rt-r-gcs-3{grid-column-start:3}.lg\:rt-r-gcs-4{grid-column-start:4}.lg\:rt-r-gcs-5{grid-column-start:5}.lg\:rt-r-gcs-6{grid-column-start:6}.lg\:rt-r-gcs-7{grid-column-start:7}.lg\:rt-r-gcs-8{grid-column-start:8}.lg\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 1640px){.xl\:rt-r-gcs{grid-column-start:var(--grid-column-start-xl)}.xl\:rt-r-gcs-1{grid-column-start:1}.xl\:rt-r-gcs-2{grid-column-start:2}.xl\:rt-r-gcs-3{grid-column-start:3}.xl\:rt-r-gcs-4{grid-column-start:4}.xl\:rt-r-gcs-5{grid-column-start:5}.xl\:rt-r-gcs-6{grid-column-start:6}.xl\:rt-r-gcs-7{grid-column-start:7}.xl\:rt-r-gcs-8{grid-column-start:8}.xl\:rt-r-gcs-9{grid-column-start:9}}.rt-r-gce{grid-column-end:var(--grid-column-end)}.rt-r-gce-1{grid-column-end:1}.rt-r-gce-2{grid-column-end:2}.rt-r-gce-3{grid-column-end:3}.rt-r-gce-4{grid-column-end:4}.rt-r-gce-5{grid-column-end:5}.rt-r-gce-6{grid-column-end:6}.rt-r-gce-7{grid-column-end:7}.rt-r-gce-8{grid-column-end:8}.rt-r-gce-9{grid-column-end:9}@media (min-width: 520px){.xs\:rt-r-gce{grid-column-end:var(--grid-column-end-xs)}.xs\:rt-r-gce-1{grid-column-end:1}.xs\:rt-r-gce-2{grid-column-end:2}.xs\:rt-r-gce-3{grid-column-end:3}.xs\:rt-r-gce-4{grid-column-end:4}.xs\:rt-r-gce-5{grid-column-end:5}.xs\:rt-r-gce-6{grid-column-end:6}.xs\:rt-r-gce-7{grid-column-end:7}.xs\:rt-r-gce-8{grid-column-end:8}.xs\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 768px){.sm\:rt-r-gce{grid-column-end:var(--grid-column-end-sm)}.sm\:rt-r-gce-1{grid-column-end:1}.sm\:rt-r-gce-2{grid-column-end:2}.sm\:rt-r-gce-3{grid-column-end:3}.sm\:rt-r-gce-4{grid-column-end:4}.sm\:rt-r-gce-5{grid-column-end:5}.sm\:rt-r-gce-6{grid-column-end:6}.sm\:rt-r-gce-7{grid-column-end:7}.sm\:rt-r-gce-8{grid-column-end:8}.sm\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 1024px){.md\:rt-r-gce{grid-column-end:var(--grid-column-end-md)}.md\:rt-r-gce-1{grid-column-end:1}.md\:rt-r-gce-2{grid-column-end:2}.md\:rt-r-gce-3{grid-column-end:3}.md\:rt-r-gce-4{grid-column-end:4}.md\:rt-r-gce-5{grid-column-end:5}.md\:rt-r-gce-6{grid-column-end:6}.md\:rt-r-gce-7{grid-column-end:7}.md\:rt-r-gce-8{grid-column-end:8}.md\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 1280px){.lg\:rt-r-gce{grid-column-end:var(--grid-column-end-lg)}.lg\:rt-r-gce-1{grid-column-end:1}.lg\:rt-r-gce-2{grid-column-end:2}.lg\:rt-r-gce-3{grid-column-end:3}.lg\:rt-r-gce-4{grid-column-end:4}.lg\:rt-r-gce-5{grid-column-end:5}.lg\:rt-r-gce-6{grid-column-end:6}.lg\:rt-r-gce-7{grid-column-end:7}.lg\:rt-r-gce-8{grid-column-end:8}.lg\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 1640px){.xl\:rt-r-gce{grid-column-end:var(--grid-column-end-xl)}.xl\:rt-r-gce-1{grid-column-end:1}.xl\:rt-r-gce-2{grid-column-end:2}.xl\:rt-r-gce-3{grid-column-end:3}.xl\:rt-r-gce-4{grid-column-end:4}.xl\:rt-r-gce-5{grid-column-end:5}.xl\:rt-r-gce-6{grid-column-end:6}.xl\:rt-r-gce-7{grid-column-end:7}.xl\:rt-r-gce-8{grid-column-end:8}.xl\:rt-r-gce-9{grid-column-end:9}}.rt-r-gr{grid-row:var(--grid-row)}.rt-r-gr-1{grid-row:1}.rt-r-gr-2{grid-row:2}.rt-r-gr-3{grid-row:3}.rt-r-gr-4{grid-row:4}.rt-r-gr-5{grid-row:5}.rt-r-gr-6{grid-row:6}.rt-r-gr-7{grid-row:7}.rt-r-gr-8{grid-row:8}.rt-r-gr-9{grid-row:9}@media (min-width: 520px){.xs\:rt-r-gr{grid-row:var(--grid-row-xs)}.xs\:rt-r-gr-1{grid-row:1}.xs\:rt-r-gr-2{grid-row:2}.xs\:rt-r-gr-3{grid-row:3}.xs\:rt-r-gr-4{grid-row:4}.xs\:rt-r-gr-5{grid-row:5}.xs\:rt-r-gr-6{grid-row:6}.xs\:rt-r-gr-7{grid-row:7}.xs\:rt-r-gr-8{grid-row:8}.xs\:rt-r-gr-9{grid-row:9}}@media (min-width: 768px){.sm\:rt-r-gr{grid-row:var(--grid-row-sm)}.sm\:rt-r-gr-1{grid-row:1}.sm\:rt-r-gr-2{grid-row:2}.sm\:rt-r-gr-3{grid-row:3}.sm\:rt-r-gr-4{grid-row:4}.sm\:rt-r-gr-5{grid-row:5}.sm\:rt-r-gr-6{grid-row:6}.sm\:rt-r-gr-7{grid-row:7}.sm\:rt-r-gr-8{grid-row:8}.sm\:rt-r-gr-9{grid-row:9}}@media (min-width: 1024px){.md\:rt-r-gr{grid-row:var(--grid-row-md)}.md\:rt-r-gr-1{grid-row:1}.md\:rt-r-gr-2{grid-row:2}.md\:rt-r-gr-3{grid-row:3}.md\:rt-r-gr-4{grid-row:4}.md\:rt-r-gr-5{grid-row:5}.md\:rt-r-gr-6{grid-row:6}.md\:rt-r-gr-7{grid-row:7}.md\:rt-r-gr-8{grid-row:8}.md\:rt-r-gr-9{grid-row:9}}@media (min-width: 1280px){.lg\:rt-r-gr{grid-row:var(--grid-row-lg)}.lg\:rt-r-gr-1{grid-row:1}.lg\:rt-r-gr-2{grid-row:2}.lg\:rt-r-gr-3{grid-row:3}.lg\:rt-r-gr-4{grid-row:4}.lg\:rt-r-gr-5{grid-row:5}.lg\:rt-r-gr-6{grid-row:6}.lg\:rt-r-gr-7{grid-row:7}.lg\:rt-r-gr-8{grid-row:8}.lg\:rt-r-gr-9{grid-row:9}}@media (min-width: 1640px){.xl\:rt-r-gr{grid-row:var(--grid-row-xl)}.xl\:rt-r-gr-1{grid-row:1}.xl\:rt-r-gr-2{grid-row:2}.xl\:rt-r-gr-3{grid-row:3}.xl\:rt-r-gr-4{grid-row:4}.xl\:rt-r-gr-5{grid-row:5}.xl\:rt-r-gr-6{grid-row:6}.xl\:rt-r-gr-7{grid-row:7}.xl\:rt-r-gr-8{grid-row:8}.xl\:rt-r-gr-9{grid-row:9}}.rt-r-grs{grid-row-start:var(--grid-row-start)}.rt-r-grs-1{grid-row-start:1}.rt-r-grs-2{grid-row-start:2}.rt-r-grs-3{grid-row-start:3}.rt-r-grs-4{grid-row-start:4}.rt-r-grs-5{grid-row-start:5}.rt-r-grs-6{grid-row-start:6}.rt-r-grs-7{grid-row-start:7}.rt-r-grs-8{grid-row-start:8}.rt-r-grs-9{grid-row-start:9}@media (min-width: 520px){.xs\:rt-r-grs{grid-row-start:var(--grid-row-start-xs)}.xs\:rt-r-grs-1{grid-row-start:1}.xs\:rt-r-grs-2{grid-row-start:2}.xs\:rt-r-grs-3{grid-row-start:3}.xs\:rt-r-grs-4{grid-row-start:4}.xs\:rt-r-grs-5{grid-row-start:5}.xs\:rt-r-grs-6{grid-row-start:6}.xs\:rt-r-grs-7{grid-row-start:7}.xs\:rt-r-grs-8{grid-row-start:8}.xs\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 768px){.sm\:rt-r-grs{grid-row-start:var(--grid-row-start-sm)}.sm\:rt-r-grs-1{grid-row-start:1}.sm\:rt-r-grs-2{grid-row-start:2}.sm\:rt-r-grs-3{grid-row-start:3}.sm\:rt-r-grs-4{grid-row-start:4}.sm\:rt-r-grs-5{grid-row-start:5}.sm\:rt-r-grs-6{grid-row-start:6}.sm\:rt-r-grs-7{grid-row-start:7}.sm\:rt-r-grs-8{grid-row-start:8}.sm\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 1024px){.md\:rt-r-grs{grid-row-start:var(--grid-row-start-md)}.md\:rt-r-grs-1{grid-row-start:1}.md\:rt-r-grs-2{grid-row-start:2}.md\:rt-r-grs-3{grid-row-start:3}.md\:rt-r-grs-4{grid-row-start:4}.md\:rt-r-grs-5{grid-row-start:5}.md\:rt-r-grs-6{grid-row-start:6}.md\:rt-r-grs-7{grid-row-start:7}.md\:rt-r-grs-8{grid-row-start:8}.md\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 1280px){.lg\:rt-r-grs{grid-row-start:var(--grid-row-start-lg)}.lg\:rt-r-grs-1{grid-row-start:1}.lg\:rt-r-grs-2{grid-row-start:2}.lg\:rt-r-grs-3{grid-row-start:3}.lg\:rt-r-grs-4{grid-row-start:4}.lg\:rt-r-grs-5{grid-row-start:5}.lg\:rt-r-grs-6{grid-row-start:6}.lg\:rt-r-grs-7{grid-row-start:7}.lg\:rt-r-grs-8{grid-row-start:8}.lg\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 1640px){.xl\:rt-r-grs{grid-row-start:var(--grid-row-start-xl)}.xl\:rt-r-grs-1{grid-row-start:1}.xl\:rt-r-grs-2{grid-row-start:2}.xl\:rt-r-grs-3{grid-row-start:3}.xl\:rt-r-grs-4{grid-row-start:4}.xl\:rt-r-grs-5{grid-row-start:5}.xl\:rt-r-grs-6{grid-row-start:6}.xl\:rt-r-grs-7{grid-row-start:7}.xl\:rt-r-grs-8{grid-row-start:8}.xl\:rt-r-grs-9{grid-row-start:9}}.rt-r-gre{grid-row-end:var(--grid-row-end)}.rt-r-gre-1{grid-row-end:1}.rt-r-gre-2{grid-row-end:2}.rt-r-gre-3{grid-row-end:3}.rt-r-gre-4{grid-row-end:4}.rt-r-gre-5{grid-row-end:5}.rt-r-gre-6{grid-row-end:6}.rt-r-gre-7{grid-row-end:7}.rt-r-gre-8{grid-row-end:8}.rt-r-gre-9{grid-row-end:9}@media (min-width: 520px){.xs\:rt-r-gre{grid-row-end:var(--grid-row-end-xs)}.xs\:rt-r-gre-1{grid-row-end:1}.xs\:rt-r-gre-2{grid-row-end:2}.xs\:rt-r-gre-3{grid-row-end:3}.xs\:rt-r-gre-4{grid-row-end:4}.xs\:rt-r-gre-5{grid-row-end:5}.xs\:rt-r-gre-6{grid-row-end:6}.xs\:rt-r-gre-7{grid-row-end:7}.xs\:rt-r-gre-8{grid-row-end:8}.xs\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 768px){.sm\:rt-r-gre{grid-row-end:var(--grid-row-end-sm)}.sm\:rt-r-gre-1{grid-row-end:1}.sm\:rt-r-gre-2{grid-row-end:2}.sm\:rt-r-gre-3{grid-row-end:3}.sm\:rt-r-gre-4{grid-row-end:4}.sm\:rt-r-gre-5{grid-row-end:5}.sm\:rt-r-gre-6{grid-row-end:6}.sm\:rt-r-gre-7{grid-row-end:7}.sm\:rt-r-gre-8{grid-row-end:8}.sm\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 1024px){.md\:rt-r-gre{grid-row-end:var(--grid-row-end-md)}.md\:rt-r-gre-1{grid-row-end:1}.md\:rt-r-gre-2{grid-row-end:2}.md\:rt-r-gre-3{grid-row-end:3}.md\:rt-r-gre-4{grid-row-end:4}.md\:rt-r-gre-5{grid-row-end:5}.md\:rt-r-gre-6{grid-row-end:6}.md\:rt-r-gre-7{grid-row-end:7}.md\:rt-r-gre-8{grid-row-end:8}.md\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 1280px){.lg\:rt-r-gre{grid-row-end:var(--grid-row-end-lg)}.lg\:rt-r-gre-1{grid-row-end:1}.lg\:rt-r-gre-2{grid-row-end:2}.lg\:rt-r-gre-3{grid-row-end:3}.lg\:rt-r-gre-4{grid-row-end:4}.lg\:rt-r-gre-5{grid-row-end:5}.lg\:rt-r-gre-6{grid-row-end:6}.lg\:rt-r-gre-7{grid-row-end:7}.lg\:rt-r-gre-8{grid-row-end:8}.lg\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 1640px){.xl\:rt-r-gre{grid-row-end:var(--grid-row-end-xl)}.xl\:rt-r-gre-1{grid-row-end:1}.xl\:rt-r-gre-2{grid-row-end:2}.xl\:rt-r-gre-3{grid-row-end:3}.xl\:rt-r-gre-4{grid-row-end:4}.xl\:rt-r-gre-5{grid-row-end:5}.xl\:rt-r-gre-6{grid-row-end:6}.xl\:rt-r-gre-7{grid-row-end:7}.xl\:rt-r-gre-8{grid-row-end:8}.xl\:rt-r-gre-9{grid-row-end:9}}.rt-r-gta{grid-template-areas:var(--grid-template-areas)}@media (min-width: 520px){.xs\:rt-r-gta{grid-template-areas:var(--grid-template-areas-xs)}}@media (min-width: 768px){.sm\:rt-r-gta{grid-template-areas:var(--grid-template-areas-sm)}}@media (min-width: 1024px){.md\:rt-r-gta{grid-template-areas:var(--grid-template-areas-md)}}@media (min-width: 1280px){.lg\:rt-r-gta{grid-template-areas:var(--grid-template-areas-lg)}}@media (min-width: 1640px){.xl\:rt-r-gta{grid-template-areas:var(--grid-template-areas-xl)}}.rt-r-gtc{grid-template-columns:var(--grid-template-columns)}.rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}@media (min-width: 520px){.xs\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-xs)}.xs\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.xs\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xs\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xs\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xs\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xs\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xs\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xs\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xs\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 768px){.sm\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-sm)}.sm\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.sm\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.sm\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.sm\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 1024px){.md\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-md)}.md\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.md\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.md\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 1280px){.lg\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-lg)}.lg\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.lg\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 1640px){.xl\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-xl)}.xl\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.xl\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xl\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xl\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}.rt-r-gtr{grid-template-rows:var(--grid-template-rows)}.rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}@media (min-width: 520px){.xs\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-xs)}.xs\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.xs\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xs\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.xs\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.xs\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.xs\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.xs\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.xs\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.xs\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 768px){.sm\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-sm)}.sm\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.sm\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.sm\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.sm\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.sm\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.sm\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.sm\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.sm\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.sm\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 1024px){.md\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-md)}.md\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.md\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.md\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.md\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.md\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.md\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.md\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.md\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.md\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 1280px){.lg\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-lg)}.lg\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.lg\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.lg\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.lg\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.lg\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.lg\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.lg\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.lg\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.lg\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 1640px){.xl\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-xl)}.xl\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.xl\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xl\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.xl\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.xl\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.xl\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.xl\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.xl\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.xl\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}.rt-r-h{height:var(--height)}@media (min-width: 520px){.xs\:rt-r-h{height:var(--height-xs)}}@media (min-width: 768px){.sm\:rt-r-h{height:var(--height-sm)}}@media (min-width: 1024px){.md\:rt-r-h{height:var(--height-md)}}@media (min-width: 1280px){.lg\:rt-r-h{height:var(--height-lg)}}@media (min-width: 1640px){.xl\:rt-r-h{height:var(--height-xl)}}.rt-r-min-h{min-height:var(--min-height)}@media (min-width: 520px){.xs\:rt-r-min-h{min-height:var(--min-height-xs)}}@media (min-width: 768px){.sm\:rt-r-min-h{min-height:var(--min-height-sm)}}@media (min-width: 1024px){.md\:rt-r-min-h{min-height:var(--min-height-md)}}@media (min-width: 1280px){.lg\:rt-r-min-h{min-height:var(--min-height-lg)}}@media (min-width: 1640px){.xl\:rt-r-min-h{min-height:var(--min-height-xl)}}.rt-r-max-h{max-height:var(--max-height)}@media (min-width: 520px){.xs\:rt-r-max-h{max-height:var(--max-height-xs)}}@media (min-width: 768px){.sm\:rt-r-max-h{max-height:var(--max-height-sm)}}@media (min-width: 1024px){.md\:rt-r-max-h{max-height:var(--max-height-md)}}@media (min-width: 1280px){.lg\:rt-r-max-h{max-height:var(--max-height-lg)}}@media (min-width: 1640px){.xl\:rt-r-max-h{max-height:var(--max-height-xl)}}.rt-r-inset{inset:var(--inset)}.rt-r-inset-0{inset:0}.rt-r-inset-1{inset:var(--space-1)}.rt-r-inset-2{inset:var(--space-2)}.rt-r-inset-3{inset:var(--space-3)}.rt-r-inset-4{inset:var(--space-4)}.rt-r-inset-5{inset:var(--space-5)}.rt-r-inset-6{inset:var(--space-6)}.rt-r-inset-7{inset:var(--space-7)}.rt-r-inset-8{inset:var(--space-8)}.rt-r-inset-9{inset:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-inset{inset:var(--inset-xs)}.xs\:rt-r-inset-0{inset:0}.xs\:rt-r-inset-1{inset:var(--space-1)}.xs\:rt-r-inset-2{inset:var(--space-2)}.xs\:rt-r-inset-3{inset:var(--space-3)}.xs\:rt-r-inset-4{inset:var(--space-4)}.xs\:rt-r-inset-5{inset:var(--space-5)}.xs\:rt-r-inset-6{inset:var(--space-6)}.xs\:rt-r-inset-7{inset:var(--space-7)}.xs\:rt-r-inset-8{inset:var(--space-8)}.xs\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-inset{inset:var(--inset-sm)}.sm\:rt-r-inset-0{inset:0}.sm\:rt-r-inset-1{inset:var(--space-1)}.sm\:rt-r-inset-2{inset:var(--space-2)}.sm\:rt-r-inset-3{inset:var(--space-3)}.sm\:rt-r-inset-4{inset:var(--space-4)}.sm\:rt-r-inset-5{inset:var(--space-5)}.sm\:rt-r-inset-6{inset:var(--space-6)}.sm\:rt-r-inset-7{inset:var(--space-7)}.sm\:rt-r-inset-8{inset:var(--space-8)}.sm\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-inset{inset:var(--inset-md)}.md\:rt-r-inset-0{inset:0}.md\:rt-r-inset-1{inset:var(--space-1)}.md\:rt-r-inset-2{inset:var(--space-2)}.md\:rt-r-inset-3{inset:var(--space-3)}.md\:rt-r-inset-4{inset:var(--space-4)}.md\:rt-r-inset-5{inset:var(--space-5)}.md\:rt-r-inset-6{inset:var(--space-6)}.md\:rt-r-inset-7{inset:var(--space-7)}.md\:rt-r-inset-8{inset:var(--space-8)}.md\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-inset{inset:var(--inset-lg)}.lg\:rt-r-inset-0{inset:0}.lg\:rt-r-inset-1{inset:var(--space-1)}.lg\:rt-r-inset-2{inset:var(--space-2)}.lg\:rt-r-inset-3{inset:var(--space-3)}.lg\:rt-r-inset-4{inset:var(--space-4)}.lg\:rt-r-inset-5{inset:var(--space-5)}.lg\:rt-r-inset-6{inset:var(--space-6)}.lg\:rt-r-inset-7{inset:var(--space-7)}.lg\:rt-r-inset-8{inset:var(--space-8)}.lg\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-inset{inset:var(--inset-xl)}.xl\:rt-r-inset-0{inset:0}.xl\:rt-r-inset-1{inset:var(--space-1)}.xl\:rt-r-inset-2{inset:var(--space-2)}.xl\:rt-r-inset-3{inset:var(--space-3)}.xl\:rt-r-inset-4{inset:var(--space-4)}.xl\:rt-r-inset-5{inset:var(--space-5)}.xl\:rt-r-inset-6{inset:var(--space-6)}.xl\:rt-r-inset-7{inset:var(--space-7)}.xl\:rt-r-inset-8{inset:var(--space-8)}.xl\:rt-r-inset-9{inset:var(--space-9)}}.rt-r-top{top:var(--top)}.rt-r-top-0{top:0}.rt-r-top-1{top:var(--space-1)}.rt-r-top-2{top:var(--space-2)}.rt-r-top-3{top:var(--space-3)}.rt-r-top-4{top:var(--space-4)}.rt-r-top-5{top:var(--space-5)}.rt-r-top-6{top:var(--space-6)}.rt-r-top-7{top:var(--space-7)}.rt-r-top-8{top:var(--space-8)}.rt-r-top-9{top:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-top{top:var(--top-xs)}.xs\:rt-r-top-0{top:0}.xs\:rt-r-top-1{top:var(--space-1)}.xs\:rt-r-top-2{top:var(--space-2)}.xs\:rt-r-top-3{top:var(--space-3)}.xs\:rt-r-top-4{top:var(--space-4)}.xs\:rt-r-top-5{top:var(--space-5)}.xs\:rt-r-top-6{top:var(--space-6)}.xs\:rt-r-top-7{top:var(--space-7)}.xs\:rt-r-top-8{top:var(--space-8)}.xs\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-top{top:var(--top-sm)}.sm\:rt-r-top-0{top:0}.sm\:rt-r-top-1{top:var(--space-1)}.sm\:rt-r-top-2{top:var(--space-2)}.sm\:rt-r-top-3{top:var(--space-3)}.sm\:rt-r-top-4{top:var(--space-4)}.sm\:rt-r-top-5{top:var(--space-5)}.sm\:rt-r-top-6{top:var(--space-6)}.sm\:rt-r-top-7{top:var(--space-7)}.sm\:rt-r-top-8{top:var(--space-8)}.sm\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-top{top:var(--top-md)}.md\:rt-r-top-0{top:0}.md\:rt-r-top-1{top:var(--space-1)}.md\:rt-r-top-2{top:var(--space-2)}.md\:rt-r-top-3{top:var(--space-3)}.md\:rt-r-top-4{top:var(--space-4)}.md\:rt-r-top-5{top:var(--space-5)}.md\:rt-r-top-6{top:var(--space-6)}.md\:rt-r-top-7{top:var(--space-7)}.md\:rt-r-top-8{top:var(--space-8)}.md\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-top{top:var(--top-lg)}.lg\:rt-r-top-0{top:0}.lg\:rt-r-top-1{top:var(--space-1)}.lg\:rt-r-top-2{top:var(--space-2)}.lg\:rt-r-top-3{top:var(--space-3)}.lg\:rt-r-top-4{top:var(--space-4)}.lg\:rt-r-top-5{top:var(--space-5)}.lg\:rt-r-top-6{top:var(--space-6)}.lg\:rt-r-top-7{top:var(--space-7)}.lg\:rt-r-top-8{top:var(--space-8)}.lg\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-top{top:var(--top-xl)}.xl\:rt-r-top-0{top:0}.xl\:rt-r-top-1{top:var(--space-1)}.xl\:rt-r-top-2{top:var(--space-2)}.xl\:rt-r-top-3{top:var(--space-3)}.xl\:rt-r-top-4{top:var(--space-4)}.xl\:rt-r-top-5{top:var(--space-5)}.xl\:rt-r-top-6{top:var(--space-6)}.xl\:rt-r-top-7{top:var(--space-7)}.xl\:rt-r-top-8{top:var(--space-8)}.xl\:rt-r-top-9{top:var(--space-9)}}.rt-r-right{right:var(--right)}.rt-r-right-0{right:0}.rt-r-right-1{right:var(--space-1)}.rt-r-right-2{right:var(--space-2)}.rt-r-right-3{right:var(--space-3)}.rt-r-right-4{right:var(--space-4)}.rt-r-right-5{right:var(--space-5)}.rt-r-right-6{right:var(--space-6)}.rt-r-right-7{right:var(--space-7)}.rt-r-right-8{right:var(--space-8)}.rt-r-right-9{right:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-right{right:var(--right-xs)}.xs\:rt-r-right-0{right:0}.xs\:rt-r-right-1{right:var(--space-1)}.xs\:rt-r-right-2{right:var(--space-2)}.xs\:rt-r-right-3{right:var(--space-3)}.xs\:rt-r-right-4{right:var(--space-4)}.xs\:rt-r-right-5{right:var(--space-5)}.xs\:rt-r-right-6{right:var(--space-6)}.xs\:rt-r-right-7{right:var(--space-7)}.xs\:rt-r-right-8{right:var(--space-8)}.xs\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-right{right:var(--right-sm)}.sm\:rt-r-right-0{right:0}.sm\:rt-r-right-1{right:var(--space-1)}.sm\:rt-r-right-2{right:var(--space-2)}.sm\:rt-r-right-3{right:var(--space-3)}.sm\:rt-r-right-4{right:var(--space-4)}.sm\:rt-r-right-5{right:var(--space-5)}.sm\:rt-r-right-6{right:var(--space-6)}.sm\:rt-r-right-7{right:var(--space-7)}.sm\:rt-r-right-8{right:var(--space-8)}.sm\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-right{right:var(--right-md)}.md\:rt-r-right-0{right:0}.md\:rt-r-right-1{right:var(--space-1)}.md\:rt-r-right-2{right:var(--space-2)}.md\:rt-r-right-3{right:var(--space-3)}.md\:rt-r-right-4{right:var(--space-4)}.md\:rt-r-right-5{right:var(--space-5)}.md\:rt-r-right-6{right:var(--space-6)}.md\:rt-r-right-7{right:var(--space-7)}.md\:rt-r-right-8{right:var(--space-8)}.md\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-right{right:var(--right-lg)}.lg\:rt-r-right-0{right:0}.lg\:rt-r-right-1{right:var(--space-1)}.lg\:rt-r-right-2{right:var(--space-2)}.lg\:rt-r-right-3{right:var(--space-3)}.lg\:rt-r-right-4{right:var(--space-4)}.lg\:rt-r-right-5{right:var(--space-5)}.lg\:rt-r-right-6{right:var(--space-6)}.lg\:rt-r-right-7{right:var(--space-7)}.lg\:rt-r-right-8{right:var(--space-8)}.lg\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-right{right:var(--right-xl)}.xl\:rt-r-right-0{right:0}.xl\:rt-r-right-1{right:var(--space-1)}.xl\:rt-r-right-2{right:var(--space-2)}.xl\:rt-r-right-3{right:var(--space-3)}.xl\:rt-r-right-4{right:var(--space-4)}.xl\:rt-r-right-5{right:var(--space-5)}.xl\:rt-r-right-6{right:var(--space-6)}.xl\:rt-r-right-7{right:var(--space-7)}.xl\:rt-r-right-8{right:var(--space-8)}.xl\:rt-r-right-9{right:var(--space-9)}}.rt-r-bottom{bottom:var(--bottom)}.rt-r-bottom-0{bottom:0}.rt-r-bottom-1{bottom:var(--space-1)}.rt-r-bottom-2{bottom:var(--space-2)}.rt-r-bottom-3{bottom:var(--space-3)}.rt-r-bottom-4{bottom:var(--space-4)}.rt-r-bottom-5{bottom:var(--space-5)}.rt-r-bottom-6{bottom:var(--space-6)}.rt-r-bottom-7{bottom:var(--space-7)}.rt-r-bottom-8{bottom:var(--space-8)}.rt-r-bottom-9{bottom:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-bottom{bottom:var(--bottom-xs)}.xs\:rt-r-bottom-0{bottom:0}.xs\:rt-r-bottom-1{bottom:var(--space-1)}.xs\:rt-r-bottom-2{bottom:var(--space-2)}.xs\:rt-r-bottom-3{bottom:var(--space-3)}.xs\:rt-r-bottom-4{bottom:var(--space-4)}.xs\:rt-r-bottom-5{bottom:var(--space-5)}.xs\:rt-r-bottom-6{bottom:var(--space-6)}.xs\:rt-r-bottom-7{bottom:var(--space-7)}.xs\:rt-r-bottom-8{bottom:var(--space-8)}.xs\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-bottom{bottom:var(--bottom-sm)}.sm\:rt-r-bottom-0{bottom:0}.sm\:rt-r-bottom-1{bottom:var(--space-1)}.sm\:rt-r-bottom-2{bottom:var(--space-2)}.sm\:rt-r-bottom-3{bottom:var(--space-3)}.sm\:rt-r-bottom-4{bottom:var(--space-4)}.sm\:rt-r-bottom-5{bottom:var(--space-5)}.sm\:rt-r-bottom-6{bottom:var(--space-6)}.sm\:rt-r-bottom-7{bottom:var(--space-7)}.sm\:rt-r-bottom-8{bottom:var(--space-8)}.sm\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-bottom{bottom:var(--bottom-md)}.md\:rt-r-bottom-0{bottom:0}.md\:rt-r-bottom-1{bottom:var(--space-1)}.md\:rt-r-bottom-2{bottom:var(--space-2)}.md\:rt-r-bottom-3{bottom:var(--space-3)}.md\:rt-r-bottom-4{bottom:var(--space-4)}.md\:rt-r-bottom-5{bottom:var(--space-5)}.md\:rt-r-bottom-6{bottom:var(--space-6)}.md\:rt-r-bottom-7{bottom:var(--space-7)}.md\:rt-r-bottom-8{bottom:var(--space-8)}.md\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-bottom{bottom:var(--bottom-lg)}.lg\:rt-r-bottom-0{bottom:0}.lg\:rt-r-bottom-1{bottom:var(--space-1)}.lg\:rt-r-bottom-2{bottom:var(--space-2)}.lg\:rt-r-bottom-3{bottom:var(--space-3)}.lg\:rt-r-bottom-4{bottom:var(--space-4)}.lg\:rt-r-bottom-5{bottom:var(--space-5)}.lg\:rt-r-bottom-6{bottom:var(--space-6)}.lg\:rt-r-bottom-7{bottom:var(--space-7)}.lg\:rt-r-bottom-8{bottom:var(--space-8)}.lg\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-bottom{bottom:var(--bottom-xl)}.xl\:rt-r-bottom-0{bottom:0}.xl\:rt-r-bottom-1{bottom:var(--space-1)}.xl\:rt-r-bottom-2{bottom:var(--space-2)}.xl\:rt-r-bottom-3{bottom:var(--space-3)}.xl\:rt-r-bottom-4{bottom:var(--space-4)}.xl\:rt-r-bottom-5{bottom:var(--space-5)}.xl\:rt-r-bottom-6{bottom:var(--space-6)}.xl\:rt-r-bottom-7{bottom:var(--space-7)}.xl\:rt-r-bottom-8{bottom:var(--space-8)}.xl\:rt-r-bottom-9{bottom:var(--space-9)}}.rt-r-left{left:var(--left)}.rt-r-left-0{left:0}.rt-r-left-1{left:var(--space-1)}.rt-r-left-2{left:var(--space-2)}.rt-r-left-3{left:var(--space-3)}.rt-r-left-4{left:var(--space-4)}.rt-r-left-5{left:var(--space-5)}.rt-r-left-6{left:var(--space-6)}.rt-r-left-7{left:var(--space-7)}.rt-r-left-8{left:var(--space-8)}.rt-r-left-9{left:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-left{left:var(--left-xs)}.xs\:rt-r-left-0{left:0}.xs\:rt-r-left-1{left:var(--space-1)}.xs\:rt-r-left-2{left:var(--space-2)}.xs\:rt-r-left-3{left:var(--space-3)}.xs\:rt-r-left-4{left:var(--space-4)}.xs\:rt-r-left-5{left:var(--space-5)}.xs\:rt-r-left-6{left:var(--space-6)}.xs\:rt-r-left-7{left:var(--space-7)}.xs\:rt-r-left-8{left:var(--space-8)}.xs\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-left{left:var(--left-sm)}.sm\:rt-r-left-0{left:0}.sm\:rt-r-left-1{left:var(--space-1)}.sm\:rt-r-left-2{left:var(--space-2)}.sm\:rt-r-left-3{left:var(--space-3)}.sm\:rt-r-left-4{left:var(--space-4)}.sm\:rt-r-left-5{left:var(--space-5)}.sm\:rt-r-left-6{left:var(--space-6)}.sm\:rt-r-left-7{left:var(--space-7)}.sm\:rt-r-left-8{left:var(--space-8)}.sm\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-left{left:var(--left-md)}.md\:rt-r-left-0{left:0}.md\:rt-r-left-1{left:var(--space-1)}.md\:rt-r-left-2{left:var(--space-2)}.md\:rt-r-left-3{left:var(--space-3)}.md\:rt-r-left-4{left:var(--space-4)}.md\:rt-r-left-5{left:var(--space-5)}.md\:rt-r-left-6{left:var(--space-6)}.md\:rt-r-left-7{left:var(--space-7)}.md\:rt-r-left-8{left:var(--space-8)}.md\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-left{left:var(--left-lg)}.lg\:rt-r-left-0{left:0}.lg\:rt-r-left-1{left:var(--space-1)}.lg\:rt-r-left-2{left:var(--space-2)}.lg\:rt-r-left-3{left:var(--space-3)}.lg\:rt-r-left-4{left:var(--space-4)}.lg\:rt-r-left-5{left:var(--space-5)}.lg\:rt-r-left-6{left:var(--space-6)}.lg\:rt-r-left-7{left:var(--space-7)}.lg\:rt-r-left-8{left:var(--space-8)}.lg\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-left{left:var(--left-xl)}.xl\:rt-r-left-0{left:0}.xl\:rt-r-left-1{left:var(--space-1)}.xl\:rt-r-left-2{left:var(--space-2)}.xl\:rt-r-left-3{left:var(--space-3)}.xl\:rt-r-left-4{left:var(--space-4)}.xl\:rt-r-left-5{left:var(--space-5)}.xl\:rt-r-left-6{left:var(--space-6)}.xl\:rt-r-left-7{left:var(--space-7)}.xl\:rt-r-left-8{left:var(--space-8)}.xl\:rt-r-left-9{left:var(--space-9)}}.rt-r-jc-start{justify-content:flex-start}.rt-r-jc-center{justify-content:center}.rt-r-jc-end{justify-content:flex-end}.rt-r-jc-space-between{justify-content:space-between}@media (min-width: 520px){.xs\:rt-r-jc-start{justify-content:flex-start}.xs\:rt-r-jc-center{justify-content:center}.xs\:rt-r-jc-end{justify-content:flex-end}.xs\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 768px){.sm\:rt-r-jc-start{justify-content:flex-start}.sm\:rt-r-jc-center{justify-content:center}.sm\:rt-r-jc-end{justify-content:flex-end}.sm\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 1024px){.md\:rt-r-jc-start{justify-content:flex-start}.md\:rt-r-jc-center{justify-content:center}.md\:rt-r-jc-end{justify-content:flex-end}.md\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 1280px){.lg\:rt-r-jc-start{justify-content:flex-start}.lg\:rt-r-jc-center{justify-content:center}.lg\:rt-r-jc-end{justify-content:flex-end}.lg\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 1640px){.xl\:rt-r-jc-start{justify-content:flex-start}.xl\:rt-r-jc-center{justify-content:center}.xl\:rt-r-jc-end{justify-content:flex-end}.xl\:rt-r-jc-space-between{justify-content:space-between}}.rt-r-m,.rt-r-m-0,.rt-r-m-1,.rt-r-m-2,.rt-r-m-3,.rt-r-m-4,.rt-r-m-5,.rt-r-m-6,.rt-r-m-7,.rt-r-m-8,.rt-r-m-9,.-rt-r-m-1,.-rt-r-m-2,.-rt-r-m-3,.-rt-r-m-4,.-rt-r-m-5,.-rt-r-m-6,.-rt-r-m-7,.-rt-r-m-8,.-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.rt-r-m{--margin-top: var(--m);--margin-right: var(--m);--margin-bottom: var(--m);--margin-left: var(--m) }.rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-m,.xs\:rt-r-m-0,.xs\:rt-r-m-1,.xs\:rt-r-m-2,.xs\:rt-r-m-3,.xs\:rt-r-m-4,.xs\:rt-r-m-5,.xs\:rt-r-m-6,.xs\:rt-r-m-7,.xs\:rt-r-m-8,.xs\:rt-r-m-9,.xs\:-rt-r-m-1,.xs\:-rt-r-m-2,.xs\:-rt-r-m-3,.xs\:-rt-r-m-4,.xs\:-rt-r-m-5,.xs\:-rt-r-m-6,.xs\:-rt-r-m-7,.xs\:-rt-r-m-8,.xs\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.xs\:rt-r-m{--margin-top: var(--m-xs);--margin-right: var(--m-xs);--margin-bottom: var(--m-xs);--margin-left: var(--m-xs) }.xs\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.xs\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.xs\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.xs\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.xs\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.xs\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.xs\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.xs\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.xs\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.xs\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.xs\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.xs\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.xs\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.xs\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.xs\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.xs\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.xs\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.xs\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.xs\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-m,.sm\:rt-r-m-0,.sm\:rt-r-m-1,.sm\:rt-r-m-2,.sm\:rt-r-m-3,.sm\:rt-r-m-4,.sm\:rt-r-m-5,.sm\:rt-r-m-6,.sm\:rt-r-m-7,.sm\:rt-r-m-8,.sm\:rt-r-m-9,.sm\:-rt-r-m-1,.sm\:-rt-r-m-2,.sm\:-rt-r-m-3,.sm\:-rt-r-m-4,.sm\:-rt-r-m-5,.sm\:-rt-r-m-6,.sm\:-rt-r-m-7,.sm\:-rt-r-m-8,.sm\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.sm\:rt-r-m{--margin-top: var(--m-sm);--margin-right: var(--m-sm);--margin-bottom: var(--m-sm);--margin-left: var(--m-sm) }.sm\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.sm\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.sm\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.sm\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.sm\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.sm\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.sm\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.sm\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.sm\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.sm\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.sm\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.sm\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.sm\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.sm\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.sm\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.sm\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.sm\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.sm\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.sm\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-m,.md\:rt-r-m-0,.md\:rt-r-m-1,.md\:rt-r-m-2,.md\:rt-r-m-3,.md\:rt-r-m-4,.md\:rt-r-m-5,.md\:rt-r-m-6,.md\:rt-r-m-7,.md\:rt-r-m-8,.md\:rt-r-m-9,.md\:-rt-r-m-1,.md\:-rt-r-m-2,.md\:-rt-r-m-3,.md\:-rt-r-m-4,.md\:-rt-r-m-5,.md\:-rt-r-m-6,.md\:-rt-r-m-7,.md\:-rt-r-m-8,.md\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.md\:rt-r-m{--margin-top: var(--m-md);--margin-right: var(--m-md);--margin-bottom: var(--m-md);--margin-left: var(--m-md) }.md\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.md\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.md\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.md\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.md\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.md\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.md\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.md\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.md\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.md\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.md\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.md\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.md\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.md\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.md\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.md\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.md\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.md\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.md\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-m,.lg\:rt-r-m-0,.lg\:rt-r-m-1,.lg\:rt-r-m-2,.lg\:rt-r-m-3,.lg\:rt-r-m-4,.lg\:rt-r-m-5,.lg\:rt-r-m-6,.lg\:rt-r-m-7,.lg\:rt-r-m-8,.lg\:rt-r-m-9,.lg\:-rt-r-m-1,.lg\:-rt-r-m-2,.lg\:-rt-r-m-3,.lg\:-rt-r-m-4,.lg\:-rt-r-m-5,.lg\:-rt-r-m-6,.lg\:-rt-r-m-7,.lg\:-rt-r-m-8,.lg\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.lg\:rt-r-m{--margin-top: var(--m-lg);--margin-right: var(--m-lg);--margin-bottom: var(--m-lg);--margin-left: var(--m-lg) }.lg\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.lg\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.lg\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.lg\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.lg\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.lg\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.lg\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.lg\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.lg\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.lg\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.lg\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.lg\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.lg\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.lg\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.lg\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.lg\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.lg\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.lg\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.lg\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-m,.xl\:rt-r-m-0,.xl\:rt-r-m-1,.xl\:rt-r-m-2,.xl\:rt-r-m-3,.xl\:rt-r-m-4,.xl\:rt-r-m-5,.xl\:rt-r-m-6,.xl\:rt-r-m-7,.xl\:rt-r-m-8,.xl\:rt-r-m-9,.xl\:-rt-r-m-1,.xl\:-rt-r-m-2,.xl\:-rt-r-m-3,.xl\:-rt-r-m-4,.xl\:-rt-r-m-5,.xl\:-rt-r-m-6,.xl\:-rt-r-m-7,.xl\:-rt-r-m-8,.xl\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.xl\:rt-r-m{--margin-top: var(--m-xl);--margin-right: var(--m-xl);--margin-bottom: var(--m-xl);--margin-left: var(--m-xl) }.xl\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.xl\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.xl\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.xl\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.xl\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.xl\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.xl\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.xl\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.xl\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.xl\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.xl\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.xl\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.xl\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.xl\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.xl\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.xl\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.xl\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.xl\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.xl\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}.rt-r-mx,.rt-r-mx-0,.rt-r-mx-1,.rt-r-mx-2,.rt-r-mx-3,.rt-r-mx-4,.rt-r-mx-5,.rt-r-mx-6,.rt-r-mx-7,.rt-r-mx-8,.rt-r-mx-9,.-rt-r-mx-1,.-rt-r-mx-2,.-rt-r-mx-3,.-rt-r-mx-4,.-rt-r-mx-5,.-rt-r-mx-6,.-rt-r-mx-7,.-rt-r-mx-8,.-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.rt-r-mx{--margin-left: var(--ml);--margin-right: var(--mr) }.rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mx,.xs\:rt-r-mx-0,.xs\:rt-r-mx-1,.xs\:rt-r-mx-2,.xs\:rt-r-mx-3,.xs\:rt-r-mx-4,.xs\:rt-r-mx-5,.xs\:rt-r-mx-6,.xs\:rt-r-mx-7,.xs\:rt-r-mx-8,.xs\:rt-r-mx-9,.xs\:-rt-r-mx-1,.xs\:-rt-r-mx-2,.xs\:-rt-r-mx-3,.xs\:-rt-r-mx-4,.xs\:-rt-r-mx-5,.xs\:-rt-r-mx-6,.xs\:-rt-r-mx-7,.xs\:-rt-r-mx-8,.xs\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.xs\:rt-r-mx{--margin-left: var(--ml-xs);--margin-right: var(--mr-xs) }.xs\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.xs\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.xs\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.xs\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.xs\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.xs\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.xs\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.xs\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.xs\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.xs\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.xs\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.xs\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.xs\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.xs\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.xs\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.xs\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.xs\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.xs\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.xs\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mx,.sm\:rt-r-mx-0,.sm\:rt-r-mx-1,.sm\:rt-r-mx-2,.sm\:rt-r-mx-3,.sm\:rt-r-mx-4,.sm\:rt-r-mx-5,.sm\:rt-r-mx-6,.sm\:rt-r-mx-7,.sm\:rt-r-mx-8,.sm\:rt-r-mx-9,.sm\:-rt-r-mx-1,.sm\:-rt-r-mx-2,.sm\:-rt-r-mx-3,.sm\:-rt-r-mx-4,.sm\:-rt-r-mx-5,.sm\:-rt-r-mx-6,.sm\:-rt-r-mx-7,.sm\:-rt-r-mx-8,.sm\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.sm\:rt-r-mx{--margin-left: var(--ml-md);--margin-right: var(--mr-md) }.sm\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.sm\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.sm\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.sm\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.sm\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.sm\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.sm\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.sm\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.sm\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.sm\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.sm\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.sm\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.sm\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.sm\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.sm\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.sm\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.sm\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.sm\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.sm\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mx,.md\:rt-r-mx-0,.md\:rt-r-mx-1,.md\:rt-r-mx-2,.md\:rt-r-mx-3,.md\:rt-r-mx-4,.md\:rt-r-mx-5,.md\:rt-r-mx-6,.md\:rt-r-mx-7,.md\:rt-r-mx-8,.md\:rt-r-mx-9,.md\:-rt-r-mx-1,.md\:-rt-r-mx-2,.md\:-rt-r-mx-3,.md\:-rt-r-mx-4,.md\:-rt-r-mx-5,.md\:-rt-r-mx-6,.md\:-rt-r-mx-7,.md\:-rt-r-mx-8,.md\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.md\:rt-r-mx{--margin-left: var(--ml-md);--margin-right: var(--mr-md) }.md\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.md\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.md\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.md\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.md\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.md\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.md\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.md\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.md\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.md\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.md\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.md\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.md\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.md\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.md\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.md\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.md\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.md\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.md\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mx,.lg\:rt-r-mx-0,.lg\:rt-r-mx-1,.lg\:rt-r-mx-2,.lg\:rt-r-mx-3,.lg\:rt-r-mx-4,.lg\:rt-r-mx-5,.lg\:rt-r-mx-6,.lg\:rt-r-mx-7,.lg\:rt-r-mx-8,.lg\:rt-r-mx-9,.lg\:-rt-r-mx-1,.lg\:-rt-r-mx-2,.lg\:-rt-r-mx-3,.lg\:-rt-r-mx-4,.lg\:-rt-r-mx-5,.lg\:-rt-r-mx-6,.lg\:-rt-r-mx-7,.lg\:-rt-r-mx-8,.lg\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.lg\:rt-r-mx{--margin-left: var(--ml-lg);--margin-right: var(--mr-lg) }.lg\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.lg\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.lg\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.lg\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.lg\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.lg\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.lg\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.lg\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.lg\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.lg\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.lg\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.lg\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.lg\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.lg\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.lg\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.lg\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.lg\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.lg\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.lg\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mx,.xl\:rt-r-mx-0,.xl\:rt-r-mx-1,.xl\:rt-r-mx-2,.xl\:rt-r-mx-3,.xl\:rt-r-mx-4,.xl\:rt-r-mx-5,.xl\:rt-r-mx-6,.xl\:rt-r-mx-7,.xl\:rt-r-mx-8,.xl\:rt-r-mx-9,.xl\:-rt-r-mx-1,.xl\:-rt-r-mx-2,.xl\:-rt-r-mx-3,.xl\:-rt-r-mx-4,.xl\:-rt-r-mx-5,.xl\:-rt-r-mx-6,.xl\:-rt-r-mx-7,.xl\:-rt-r-mx-8,.xl\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.xl\:rt-r-mx{--margin-left: var(--ml-xl);--margin-right: var(--mr-xl) }.xl\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.xl\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.xl\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.xl\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.xl\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.xl\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.xl\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.xl\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.xl\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.xl\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.xl\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.xl\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.xl\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.xl\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.xl\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.xl\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.xl\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.xl\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.xl\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}.rt-r-my,.rt-r-my-0,.rt-r-my-1,.rt-r-my-2,.rt-r-my-3,.rt-r-my-4,.rt-r-my-5,.rt-r-my-6,.rt-r-my-7,.rt-r-my-8,.rt-r-my-9,.-rt-r-my-1,.-rt-r-my-2,.-rt-r-my-3,.-rt-r-my-4,.-rt-r-my-5,.-rt-r-my-6,.-rt-r-my-7,.-rt-r-my-8,.-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.rt-r-my{--margin-top: var(--mt);--margin-bottom: var(--mb) }.rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-my,.xs\:rt-r-my-0,.xs\:rt-r-my-1,.xs\:rt-r-my-2,.xs\:rt-r-my-3,.xs\:rt-r-my-4,.xs\:rt-r-my-5,.xs\:rt-r-my-6,.xs\:rt-r-my-7,.xs\:rt-r-my-8,.xs\:rt-r-my-9,.xs\:-rt-r-my-1,.xs\:-rt-r-my-2,.xs\:-rt-r-my-3,.xs\:-rt-r-my-4,.xs\:-rt-r-my-5,.xs\:-rt-r-my-6,.xs\:-rt-r-my-7,.xs\:-rt-r-my-8,.xs\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xs\:rt-r-my{--margin-top: var(--mt-xs);--margin-bottom: var(--mb-xs) }.xs\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.xs\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.xs\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.xs\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.xs\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.xs\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.xs\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.xs\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.xs\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.xs\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.xs\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.xs\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.xs\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.xs\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.xs\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.xs\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.xs\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.xs\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.xs\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-my,.sm\:rt-r-my-0,.sm\:rt-r-my-1,.sm\:rt-r-my-2,.sm\:rt-r-my-3,.sm\:rt-r-my-4,.sm\:rt-r-my-5,.sm\:rt-r-my-6,.sm\:rt-r-my-7,.sm\:rt-r-my-8,.sm\:rt-r-my-9,.sm\:-rt-r-my-1,.sm\:-rt-r-my-2,.sm\:-rt-r-my-3,.sm\:-rt-r-my-4,.sm\:-rt-r-my-5,.sm\:-rt-r-my-6,.sm\:-rt-r-my-7,.sm\:-rt-r-my-8,.sm\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.sm\:rt-r-my{--margin-top: var(--mt-sm);--margin-bottom: var(--mb-sm) }.sm\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.sm\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.sm\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.sm\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.sm\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.sm\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.sm\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.sm\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.sm\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.sm\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.sm\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.sm\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.sm\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.sm\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.sm\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.sm\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.sm\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.sm\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.sm\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-my,.md\:rt-r-my-0,.md\:rt-r-my-1,.md\:rt-r-my-2,.md\:rt-r-my-3,.md\:rt-r-my-4,.md\:rt-r-my-5,.md\:rt-r-my-6,.md\:rt-r-my-7,.md\:rt-r-my-8,.md\:rt-r-my-9,.md\:-rt-r-my-1,.md\:-rt-r-my-2,.md\:-rt-r-my-3,.md\:-rt-r-my-4,.md\:-rt-r-my-5,.md\:-rt-r-my-6,.md\:-rt-r-my-7,.md\:-rt-r-my-8,.md\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.md\:rt-r-my{--margin-top: var(--mt-md);--margin-bottom: var(--mb-md) }.md\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.md\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.md\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.md\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.md\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.md\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.md\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.md\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.md\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.md\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.md\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.md\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.md\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.md\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.md\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.md\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.md\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.md\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.md\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-my,.lg\:rt-r-my-0,.lg\:rt-r-my-1,.lg\:rt-r-my-2,.lg\:rt-r-my-3,.lg\:rt-r-my-4,.lg\:rt-r-my-5,.lg\:rt-r-my-6,.lg\:rt-r-my-7,.lg\:rt-r-my-8,.lg\:rt-r-my-9,.lg\:-rt-r-my-1,.lg\:-rt-r-my-2,.lg\:-rt-r-my-3,.lg\:-rt-r-my-4,.lg\:-rt-r-my-5,.lg\:-rt-r-my-6,.lg\:-rt-r-my-7,.lg\:-rt-r-my-8,.lg\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.lg\:rt-r-my{--margin-top: var(--mt-lg);--margin-bottom: var(--mb-lg) }.lg\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.lg\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.lg\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.lg\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.lg\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.lg\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.lg\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.lg\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.lg\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.lg\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.lg\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.lg\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.lg\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.lg\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.lg\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.lg\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.lg\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.lg\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.lg\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-my,.xl\:rt-r-my-0,.xl\:rt-r-my-1,.xl\:rt-r-my-2,.xl\:rt-r-my-3,.xl\:rt-r-my-4,.xl\:rt-r-my-5,.xl\:rt-r-my-6,.xl\:rt-r-my-7,.xl\:rt-r-my-8,.xl\:rt-r-my-9,.xl\:-rt-r-my-1,.xl\:-rt-r-my-2,.xl\:-rt-r-my-3,.xl\:-rt-r-my-4,.xl\:-rt-r-my-5,.xl\:-rt-r-my-6,.xl\:-rt-r-my-7,.xl\:-rt-r-my-8,.xl\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xl\:rt-r-my{--margin-top: var(--mt-xl);--margin-bottom: var(--mb-xl) }.xl\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.xl\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.xl\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.xl\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.xl\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.xl\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.xl\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.xl\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.xl\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.xl\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.xl\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.xl\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.xl\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.xl\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.xl\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.xl\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.xl\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.xl\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.xl\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}.rt-r-mt,.rt-r-mt-0,.rt-r-mt-1,.rt-r-mt-2,.rt-r-mt-3,.rt-r-mt-4,.rt-r-mt-5,.rt-r-mt-6,.rt-r-mt-7,.rt-r-mt-8,.rt-r-mt-9,.-rt-r-mt-1,.-rt-r-mt-2,.-rt-r-mt-3,.-rt-r-mt-4,.-rt-r-mt-5,.-rt-r-mt-6,.-rt-r-mt-7,.-rt-r-mt-8,.-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.rt-r-mt{--margin-top: var(--mt) }.rt-r-mt-0{--margin-top: 0px}.rt-r-mt-1{--margin-top: var(--space-1)}.rt-r-mt-2{--margin-top: var(--space-2)}.rt-r-mt-3{--margin-top: var(--space-3)}.rt-r-mt-4{--margin-top: var(--space-4)}.rt-r-mt-5{--margin-top: var(--space-5)}.rt-r-mt-6{--margin-top: var(--space-6)}.rt-r-mt-7{--margin-top: var(--space-7)}.rt-r-mt-8{--margin-top: var(--space-8)}.rt-r-mt-9{--margin-top: var(--space-9)}.-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mt,.xs\:rt-r-mt-0,.xs\:rt-r-mt-1,.xs\:rt-r-mt-2,.xs\:rt-r-mt-3,.xs\:rt-r-mt-4,.xs\:rt-r-mt-5,.xs\:rt-r-mt-6,.xs\:rt-r-mt-7,.xs\:rt-r-mt-8,.xs\:rt-r-mt-9,.xs\:-rt-r-mt-1,.xs\:-rt-r-mt-2,.xs\:-rt-r-mt-3,.xs\:-rt-r-mt-4,.xs\:-rt-r-mt-5,.xs\:-rt-r-mt-6,.xs\:-rt-r-mt-7,.xs\:-rt-r-mt-8,.xs\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.xs\:rt-r-mt{--margin-top: var(--mt-xs) }.xs\:rt-r-mt-0{--margin-top: 0px}.xs\:rt-r-mt-1{--margin-top: var(--space-1)}.xs\:rt-r-mt-2{--margin-top: var(--space-2)}.xs\:rt-r-mt-3{--margin-top: var(--space-3)}.xs\:rt-r-mt-4{--margin-top: var(--space-4)}.xs\:rt-r-mt-5{--margin-top: var(--space-5)}.xs\:rt-r-mt-6{--margin-top: var(--space-6)}.xs\:rt-r-mt-7{--margin-top: var(--space-7)}.xs\:rt-r-mt-8{--margin-top: var(--space-8)}.xs\:rt-r-mt-9{--margin-top: var(--space-9)}.xs\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.xs\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.xs\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.xs\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.xs\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.xs\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.xs\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.xs\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.xs\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mt,.sm\:rt-r-mt-0,.sm\:rt-r-mt-1,.sm\:rt-r-mt-2,.sm\:rt-r-mt-3,.sm\:rt-r-mt-4,.sm\:rt-r-mt-5,.sm\:rt-r-mt-6,.sm\:rt-r-mt-7,.sm\:rt-r-mt-8,.sm\:rt-r-mt-9,.sm\:-rt-r-mt-1,.sm\:-rt-r-mt-2,.sm\:-rt-r-mt-3,.sm\:-rt-r-mt-4,.sm\:-rt-r-mt-5,.sm\:-rt-r-mt-6,.sm\:-rt-r-mt-7,.sm\:-rt-r-mt-8,.sm\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.sm\:rt-r-mt{--margin-top: var(--mt-sm) }.sm\:rt-r-mt-0{--margin-top: 0px}.sm\:rt-r-mt-1{--margin-top: var(--space-1)}.sm\:rt-r-mt-2{--margin-top: var(--space-2)}.sm\:rt-r-mt-3{--margin-top: var(--space-3)}.sm\:rt-r-mt-4{--margin-top: var(--space-4)}.sm\:rt-r-mt-5{--margin-top: var(--space-5)}.sm\:rt-r-mt-6{--margin-top: var(--space-6)}.sm\:rt-r-mt-7{--margin-top: var(--space-7)}.sm\:rt-r-mt-8{--margin-top: var(--space-8)}.sm\:rt-r-mt-9{--margin-top: var(--space-9)}.sm\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.sm\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.sm\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.sm\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.sm\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.sm\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.sm\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.sm\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.sm\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mt,.md\:rt-r-mt-0,.md\:rt-r-mt-1,.md\:rt-r-mt-2,.md\:rt-r-mt-3,.md\:rt-r-mt-4,.md\:rt-r-mt-5,.md\:rt-r-mt-6,.md\:rt-r-mt-7,.md\:rt-r-mt-8,.md\:rt-r-mt-9,.md\:-rt-r-mt-1,.md\:-rt-r-mt-2,.md\:-rt-r-mt-3,.md\:-rt-r-mt-4,.md\:-rt-r-mt-5,.md\:-rt-r-mt-6,.md\:-rt-r-mt-7,.md\:-rt-r-mt-8,.md\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.md\:rt-r-mt{--margin-top: var(--mt-md) }.md\:rt-r-mt-0{--margin-top: 0px}.md\:rt-r-mt-1{--margin-top: var(--space-1)}.md\:rt-r-mt-2{--margin-top: var(--space-2)}.md\:rt-r-mt-3{--margin-top: var(--space-3)}.md\:rt-r-mt-4{--margin-top: var(--space-4)}.md\:rt-r-mt-5{--margin-top: var(--space-5)}.md\:rt-r-mt-6{--margin-top: var(--space-6)}.md\:rt-r-mt-7{--margin-top: var(--space-7)}.md\:rt-r-mt-8{--margin-top: var(--space-8)}.md\:rt-r-mt-9{--margin-top: var(--space-9)}.md\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.md\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.md\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.md\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.md\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.md\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.md\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.md\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.md\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mt,.lg\:rt-r-mt-0,.lg\:rt-r-mt-1,.lg\:rt-r-mt-2,.lg\:rt-r-mt-3,.lg\:rt-r-mt-4,.lg\:rt-r-mt-5,.lg\:rt-r-mt-6,.lg\:rt-r-mt-7,.lg\:rt-r-mt-8,.lg\:rt-r-mt-9,.lg\:-rt-r-mt-1,.lg\:-rt-r-mt-2,.lg\:-rt-r-mt-3,.lg\:-rt-r-mt-4,.lg\:-rt-r-mt-5,.lg\:-rt-r-mt-6,.lg\:-rt-r-mt-7,.lg\:-rt-r-mt-8,.lg\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.lg\:rt-r-mt{--margin-top: var(--mt-lg) }.lg\:rt-r-mt-0{--margin-top: 0px}.lg\:rt-r-mt-1{--margin-top: var(--space-1)}.lg\:rt-r-mt-2{--margin-top: var(--space-2)}.lg\:rt-r-mt-3{--margin-top: var(--space-3)}.lg\:rt-r-mt-4{--margin-top: var(--space-4)}.lg\:rt-r-mt-5{--margin-top: var(--space-5)}.lg\:rt-r-mt-6{--margin-top: var(--space-6)}.lg\:rt-r-mt-7{--margin-top: var(--space-7)}.lg\:rt-r-mt-8{--margin-top: var(--space-8)}.lg\:rt-r-mt-9{--margin-top: var(--space-9)}.lg\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.lg\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.lg\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.lg\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.lg\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.lg\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.lg\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.lg\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.lg\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mt,.xl\:rt-r-mt-0,.xl\:rt-r-mt-1,.xl\:rt-r-mt-2,.xl\:rt-r-mt-3,.xl\:rt-r-mt-4,.xl\:rt-r-mt-5,.xl\:rt-r-mt-6,.xl\:rt-r-mt-7,.xl\:rt-r-mt-8,.xl\:rt-r-mt-9,.xl\:-rt-r-mt-1,.xl\:-rt-r-mt-2,.xl\:-rt-r-mt-3,.xl\:-rt-r-mt-4,.xl\:-rt-r-mt-5,.xl\:-rt-r-mt-6,.xl\:-rt-r-mt-7,.xl\:-rt-r-mt-8,.xl\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.xl\:rt-r-mt{--margin-top: var(--mt-xl) }.xl\:rt-r-mt-0{--margin-top: 0px}.xl\:rt-r-mt-1{--margin-top: var(--space-1)}.xl\:rt-r-mt-2{--margin-top: var(--space-2)}.xl\:rt-r-mt-3{--margin-top: var(--space-3)}.xl\:rt-r-mt-4{--margin-top: var(--space-4)}.xl\:rt-r-mt-5{--margin-top: var(--space-5)}.xl\:rt-r-mt-6{--margin-top: var(--space-6)}.xl\:rt-r-mt-7{--margin-top: var(--space-7)}.xl\:rt-r-mt-8{--margin-top: var(--space-8)}.xl\:rt-r-mt-9{--margin-top: var(--space-9)}.xl\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.xl\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.xl\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.xl\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.xl\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.xl\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.xl\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.xl\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.xl\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}.rt-r-mr,.rt-r-mr-0,.rt-r-mr-1,.rt-r-mr-2,.rt-r-mr-3,.rt-r-mr-4,.rt-r-mr-5,.rt-r-mr-6,.rt-r-mr-7,.rt-r-mr-8,.rt-r-mr-9,.-rt-r-mr-1,.-rt-r-mr-2,.-rt-r-mr-3,.-rt-r-mr-4,.-rt-r-mr-5,.-rt-r-mr-6,.-rt-r-mr-7,.-rt-r-mr-8,.-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.rt-r-mr{--margin-right: var(--mr) }.rt-r-mr-0{--margin-right: 0px}.rt-r-mr-1{--margin-right: var(--space-1)}.rt-r-mr-2{--margin-right: var(--space-2)}.rt-r-mr-3{--margin-right: var(--space-3)}.rt-r-mr-4{--margin-right: var(--space-4)}.rt-r-mr-5{--margin-right: var(--space-5)}.rt-r-mr-6{--margin-right: var(--space-6)}.rt-r-mr-7{--margin-right: var(--space-7)}.rt-r-mr-8{--margin-right: var(--space-8)}.rt-r-mr-9{--margin-right: var(--space-9)}.-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mr,.xs\:rt-r-mr-0,.xs\:rt-r-mr-1,.xs\:rt-r-mr-2,.xs\:rt-r-mr-3,.xs\:rt-r-mr-4,.xs\:rt-r-mr-5,.xs\:rt-r-mr-6,.xs\:rt-r-mr-7,.xs\:rt-r-mr-8,.xs\:rt-r-mr-9,.xs\:-rt-r-mr-1,.xs\:-rt-r-mr-2,.xs\:-rt-r-mr-3,.xs\:-rt-r-mr-4,.xs\:-rt-r-mr-5,.xs\:-rt-r-mr-6,.xs\:-rt-r-mr-7,.xs\:-rt-r-mr-8,.xs\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.xs\:rt-r-mr{--margin-right: var(--mr-xs) }.xs\:rt-r-mr-0{--margin-right: 0px}.xs\:rt-r-mr-1{--margin-right: var(--space-1)}.xs\:rt-r-mr-2{--margin-right: var(--space-2)}.xs\:rt-r-mr-3{--margin-right: var(--space-3)}.xs\:rt-r-mr-4{--margin-right: var(--space-4)}.xs\:rt-r-mr-5{--margin-right: var(--space-5)}.xs\:rt-r-mr-6{--margin-right: var(--space-6)}.xs\:rt-r-mr-7{--margin-right: var(--space-7)}.xs\:rt-r-mr-8{--margin-right: var(--space-8)}.xs\:rt-r-mr-9{--margin-right: var(--space-9)}.xs\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.xs\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.xs\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.xs\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.xs\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.xs\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.xs\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.xs\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.xs\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mr,.sm\:rt-r-mr-0,.sm\:rt-r-mr-1,.sm\:rt-r-mr-2,.sm\:rt-r-mr-3,.sm\:rt-r-mr-4,.sm\:rt-r-mr-5,.sm\:rt-r-mr-6,.sm\:rt-r-mr-7,.sm\:rt-r-mr-8,.sm\:rt-r-mr-9,.sm\:-rt-r-mr-1,.sm\:-rt-r-mr-2,.sm\:-rt-r-mr-3,.sm\:-rt-r-mr-4,.sm\:-rt-r-mr-5,.sm\:-rt-r-mr-6,.sm\:-rt-r-mr-7,.sm\:-rt-r-mr-8,.sm\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.sm\:rt-r-mr{--margin-right: var(--mr-sm) }.sm\:rt-r-mr-0{--margin-right: 0px}.sm\:rt-r-mr-1{--margin-right: var(--space-1)}.sm\:rt-r-mr-2{--margin-right: var(--space-2)}.sm\:rt-r-mr-3{--margin-right: var(--space-3)}.sm\:rt-r-mr-4{--margin-right: var(--space-4)}.sm\:rt-r-mr-5{--margin-right: var(--space-5)}.sm\:rt-r-mr-6{--margin-right: var(--space-6)}.sm\:rt-r-mr-7{--margin-right: var(--space-7)}.sm\:rt-r-mr-8{--margin-right: var(--space-8)}.sm\:rt-r-mr-9{--margin-right: var(--space-9)}.sm\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.sm\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.sm\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.sm\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.sm\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.sm\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.sm\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.sm\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.sm\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mr,.md\:rt-r-mr-0,.md\:rt-r-mr-1,.md\:rt-r-mr-2,.md\:rt-r-mr-3,.md\:rt-r-mr-4,.md\:rt-r-mr-5,.md\:rt-r-mr-6,.md\:rt-r-mr-7,.md\:rt-r-mr-8,.md\:rt-r-mr-9,.md\:-rt-r-mr-1,.md\:-rt-r-mr-2,.md\:-rt-r-mr-3,.md\:-rt-r-mr-4,.md\:-rt-r-mr-5,.md\:-rt-r-mr-6,.md\:-rt-r-mr-7,.md\:-rt-r-mr-8,.md\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.md\:rt-r-mr{--margin-right: var(--mr-md) }.md\:rt-r-mr-0{--margin-right: 0px}.md\:rt-r-mr-1{--margin-right: var(--space-1)}.md\:rt-r-mr-2{--margin-right: var(--space-2)}.md\:rt-r-mr-3{--margin-right: var(--space-3)}.md\:rt-r-mr-4{--margin-right: var(--space-4)}.md\:rt-r-mr-5{--margin-right: var(--space-5)}.md\:rt-r-mr-6{--margin-right: var(--space-6)}.md\:rt-r-mr-7{--margin-right: var(--space-7)}.md\:rt-r-mr-8{--margin-right: var(--space-8)}.md\:rt-r-mr-9{--margin-right: var(--space-9)}.md\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.md\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.md\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.md\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.md\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.md\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.md\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.md\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.md\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mr,.lg\:rt-r-mr-0,.lg\:rt-r-mr-1,.lg\:rt-r-mr-2,.lg\:rt-r-mr-3,.lg\:rt-r-mr-4,.lg\:rt-r-mr-5,.lg\:rt-r-mr-6,.lg\:rt-r-mr-7,.lg\:rt-r-mr-8,.lg\:rt-r-mr-9,.lg\:-rt-r-mr-1,.lg\:-rt-r-mr-2,.lg\:-rt-r-mr-3,.lg\:-rt-r-mr-4,.lg\:-rt-r-mr-5,.lg\:-rt-r-mr-6,.lg\:-rt-r-mr-7,.lg\:-rt-r-mr-8,.lg\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.lg\:rt-r-mr{--margin-right: var(--mr-lg) }.lg\:rt-r-mr-0{--margin-right: 0px}.lg\:rt-r-mr-1{--margin-right: var(--space-1)}.lg\:rt-r-mr-2{--margin-right: var(--space-2)}.lg\:rt-r-mr-3{--margin-right: var(--space-3)}.lg\:rt-r-mr-4{--margin-right: var(--space-4)}.lg\:rt-r-mr-5{--margin-right: var(--space-5)}.lg\:rt-r-mr-6{--margin-right: var(--space-6)}.lg\:rt-r-mr-7{--margin-right: var(--space-7)}.lg\:rt-r-mr-8{--margin-right: var(--space-8)}.lg\:rt-r-mr-9{--margin-right: var(--space-9)}.lg\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.lg\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.lg\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.lg\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.lg\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.lg\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.lg\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.lg\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.lg\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mr,.xl\:rt-r-mr-0,.xl\:rt-r-mr-1,.xl\:rt-r-mr-2,.xl\:rt-r-mr-3,.xl\:rt-r-mr-4,.xl\:rt-r-mr-5,.xl\:rt-r-mr-6,.xl\:rt-r-mr-7,.xl\:rt-r-mr-8,.xl\:rt-r-mr-9,.xl\:-rt-r-mr-1,.xl\:-rt-r-mr-2,.xl\:-rt-r-mr-3,.xl\:-rt-r-mr-4,.xl\:-rt-r-mr-5,.xl\:-rt-r-mr-6,.xl\:-rt-r-mr-7,.xl\:-rt-r-mr-8,.xl\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.xl\:rt-r-mr{--margin-right: var(--mr-xl) }.xl\:rt-r-mr-0{--margin-right: 0px}.xl\:rt-r-mr-1{--margin-right: var(--space-1)}.xl\:rt-r-mr-2{--margin-right: var(--space-2)}.xl\:rt-r-mr-3{--margin-right: var(--space-3)}.xl\:rt-r-mr-4{--margin-right: var(--space-4)}.xl\:rt-r-mr-5{--margin-right: var(--space-5)}.xl\:rt-r-mr-6{--margin-right: var(--space-6)}.xl\:rt-r-mr-7{--margin-right: var(--space-7)}.xl\:rt-r-mr-8{--margin-right: var(--space-8)}.xl\:rt-r-mr-9{--margin-right: var(--space-9)}.xl\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.xl\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.xl\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.xl\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.xl\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.xl\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.xl\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.xl\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.xl\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}.rt-r-mb,.rt-r-mb-0,.rt-r-mb-1,.rt-r-mb-2,.rt-r-mb-3,.rt-r-mb-4,.rt-r-mb-5,.rt-r-mb-6,.rt-r-mb-7,.rt-r-mb-8,.rt-r-mb-9,.-rt-r-mb-1,.-rt-r-mb-2,.-rt-r-mb-3,.-rt-r-mb-4,.-rt-r-mb-5,.-rt-r-mb-6,.-rt-r-mb-7,.-rt-r-mb-8,.-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.rt-r-mb{--margin-bottom: var(--mb) }.rt-r-mb-0{--margin-bottom: 0px}.rt-r-mb-1{--margin-bottom: var(--space-1)}.rt-r-mb-2{--margin-bottom: var(--space-2)}.rt-r-mb-3{--margin-bottom: var(--space-3)}.rt-r-mb-4{--margin-bottom: var(--space-4)}.rt-r-mb-5{--margin-bottom: var(--space-5)}.rt-r-mb-6{--margin-bottom: var(--space-6)}.rt-r-mb-7{--margin-bottom: var(--space-7)}.rt-r-mb-8{--margin-bottom: var(--space-8)}.rt-r-mb-9{--margin-bottom: var(--space-9)}.-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mb,.xs\:rt-r-mb-0,.xs\:rt-r-mb-1,.xs\:rt-r-mb-2,.xs\:rt-r-mb-3,.xs\:rt-r-mb-4,.xs\:rt-r-mb-5,.xs\:rt-r-mb-6,.xs\:rt-r-mb-7,.xs\:rt-r-mb-8,.xs\:rt-r-mb-9,.xs\:-rt-r-mb-1,.xs\:-rt-r-mb-2,.xs\:-rt-r-mb-3,.xs\:-rt-r-mb-4,.xs\:-rt-r-mb-5,.xs\:-rt-r-mb-6,.xs\:-rt-r-mb-7,.xs\:-rt-r-mb-8,.xs\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xs\:rt-r-mb{--margin-bottom: var(--mb-xs) }.xs\:rt-r-mb-0{--margin-bottom: 0px}.xs\:rt-r-mb-1{--margin-bottom: var(--space-1)}.xs\:rt-r-mb-2{--margin-bottom: var(--space-2)}.xs\:rt-r-mb-3{--margin-bottom: var(--space-3)}.xs\:rt-r-mb-4{--margin-bottom: var(--space-4)}.xs\:rt-r-mb-5{--margin-bottom: var(--space-5)}.xs\:rt-r-mb-6{--margin-bottom: var(--space-6)}.xs\:rt-r-mb-7{--margin-bottom: var(--space-7)}.xs\:rt-r-mb-8{--margin-bottom: var(--space-8)}.xs\:rt-r-mb-9{--margin-bottom: var(--space-9)}.xs\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.xs\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.xs\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.xs\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.xs\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.xs\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.xs\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.xs\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.xs\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mb,.sm\:rt-r-mb-0,.sm\:rt-r-mb-1,.sm\:rt-r-mb-2,.sm\:rt-r-mb-3,.sm\:rt-r-mb-4,.sm\:rt-r-mb-5,.sm\:rt-r-mb-6,.sm\:rt-r-mb-7,.sm\:rt-r-mb-8,.sm\:rt-r-mb-9,.sm\:-rt-r-mb-1,.sm\:-rt-r-mb-2,.sm\:-rt-r-mb-3,.sm\:-rt-r-mb-4,.sm\:-rt-r-mb-5,.sm\:-rt-r-mb-6,.sm\:-rt-r-mb-7,.sm\:-rt-r-mb-8,.sm\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.sm\:rt-r-mb{--margin-bottom: var(--mb-sm) }.sm\:rt-r-mb-0{--margin-bottom: 0px}.sm\:rt-r-mb-1{--margin-bottom: var(--space-1)}.sm\:rt-r-mb-2{--margin-bottom: var(--space-2)}.sm\:rt-r-mb-3{--margin-bottom: var(--space-3)}.sm\:rt-r-mb-4{--margin-bottom: var(--space-4)}.sm\:rt-r-mb-5{--margin-bottom: var(--space-5)}.sm\:rt-r-mb-6{--margin-bottom: var(--space-6)}.sm\:rt-r-mb-7{--margin-bottom: var(--space-7)}.sm\:rt-r-mb-8{--margin-bottom: var(--space-8)}.sm\:rt-r-mb-9{--margin-bottom: var(--space-9)}.sm\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.sm\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.sm\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.sm\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.sm\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.sm\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.sm\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.sm\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.sm\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mb,.md\:rt-r-mb-0,.md\:rt-r-mb-1,.md\:rt-r-mb-2,.md\:rt-r-mb-3,.md\:rt-r-mb-4,.md\:rt-r-mb-5,.md\:rt-r-mb-6,.md\:rt-r-mb-7,.md\:rt-r-mb-8,.md\:rt-r-mb-9,.md\:-rt-r-mb-1,.md\:-rt-r-mb-2,.md\:-rt-r-mb-3,.md\:-rt-r-mb-4,.md\:-rt-r-mb-5,.md\:-rt-r-mb-6,.md\:-rt-r-mb-7,.md\:-rt-r-mb-8,.md\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.md\:rt-r-mb{--margin-bottom: var(--mb-md) }.md\:rt-r-mb-0{--margin-bottom: 0px}.md\:rt-r-mb-1{--margin-bottom: var(--space-1)}.md\:rt-r-mb-2{--margin-bottom: var(--space-2)}.md\:rt-r-mb-3{--margin-bottom: var(--space-3)}.md\:rt-r-mb-4{--margin-bottom: var(--space-4)}.md\:rt-r-mb-5{--margin-bottom: var(--space-5)}.md\:rt-r-mb-6{--margin-bottom: var(--space-6)}.md\:rt-r-mb-7{--margin-bottom: var(--space-7)}.md\:rt-r-mb-8{--margin-bottom: var(--space-8)}.md\:rt-r-mb-9{--margin-bottom: var(--space-9)}.md\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.md\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.md\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.md\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.md\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.md\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.md\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.md\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.md\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mb,.lg\:rt-r-mb-0,.lg\:rt-r-mb-1,.lg\:rt-r-mb-2,.lg\:rt-r-mb-3,.lg\:rt-r-mb-4,.lg\:rt-r-mb-5,.lg\:rt-r-mb-6,.lg\:rt-r-mb-7,.lg\:rt-r-mb-8,.lg\:rt-r-mb-9,.lg\:-rt-r-mb-1,.lg\:-rt-r-mb-2,.lg\:-rt-r-mb-3,.lg\:-rt-r-mb-4,.lg\:-rt-r-mb-5,.lg\:-rt-r-mb-6,.lg\:-rt-r-mb-7,.lg\:-rt-r-mb-8,.lg\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.lg\:rt-r-mb{--margin-bottom: var(--mb-lg) }.lg\:rt-r-mb-0{--margin-bottom: 0px}.lg\:rt-r-mb-1{--margin-bottom: var(--space-1)}.lg\:rt-r-mb-2{--margin-bottom: var(--space-2)}.lg\:rt-r-mb-3{--margin-bottom: var(--space-3)}.lg\:rt-r-mb-4{--margin-bottom: var(--space-4)}.lg\:rt-r-mb-5{--margin-bottom: var(--space-5)}.lg\:rt-r-mb-6{--margin-bottom: var(--space-6)}.lg\:rt-r-mb-7{--margin-bottom: var(--space-7)}.lg\:rt-r-mb-8{--margin-bottom: var(--space-8)}.lg\:rt-r-mb-9{--margin-bottom: var(--space-9)}.lg\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.lg\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.lg\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.lg\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.lg\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.lg\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.lg\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.lg\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.lg\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mb,.xl\:rt-r-mb-0,.xl\:rt-r-mb-1,.xl\:rt-r-mb-2,.xl\:rt-r-mb-3,.xl\:rt-r-mb-4,.xl\:rt-r-mb-5,.xl\:rt-r-mb-6,.xl\:rt-r-mb-7,.xl\:rt-r-mb-8,.xl\:rt-r-mb-9,.xl\:-rt-r-mb-1,.xl\:-rt-r-mb-2,.xl\:-rt-r-mb-3,.xl\:-rt-r-mb-4,.xl\:-rt-r-mb-5,.xl\:-rt-r-mb-6,.xl\:-rt-r-mb-7,.xl\:-rt-r-mb-8,.xl\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xl\:rt-r-mb{--margin-bottom: var(--mb-xl) }.xl\:rt-r-mb-0{--margin-bottom: 0px}.xl\:rt-r-mb-1{--margin-bottom: var(--space-1)}.xl\:rt-r-mb-2{--margin-bottom: var(--space-2)}.xl\:rt-r-mb-3{--margin-bottom: var(--space-3)}.xl\:rt-r-mb-4{--margin-bottom: var(--space-4)}.xl\:rt-r-mb-5{--margin-bottom: var(--space-5)}.xl\:rt-r-mb-6{--margin-bottom: var(--space-6)}.xl\:rt-r-mb-7{--margin-bottom: var(--space-7)}.xl\:rt-r-mb-8{--margin-bottom: var(--space-8)}.xl\:rt-r-mb-9{--margin-bottom: var(--space-9)}.xl\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.xl\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.xl\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.xl\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.xl\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.xl\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.xl\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.xl\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.xl\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}.rt-r-ml,.rt-r-ml-0,.rt-r-ml-1,.rt-r-ml-2,.rt-r-ml-3,.rt-r-ml-4,.rt-r-ml-5,.rt-r-ml-6,.rt-r-ml-7,.rt-r-ml-8,.rt-r-ml-9,.-rt-r-ml-1,.-rt-r-ml-2,.-rt-r-ml-3,.-rt-r-ml-4,.-rt-r-ml-5,.-rt-r-ml-6,.-rt-r-ml-7,.-rt-r-ml-8,.-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.rt-r-ml{--margin-left: var(--ml) }.rt-r-ml-0{--margin-left: 0px}.rt-r-ml-1{--margin-left: var(--space-1)}.rt-r-ml-2{--margin-left: var(--space-2)}.rt-r-ml-3{--margin-left: var(--space-3)}.rt-r-ml-4{--margin-left: var(--space-4)}.rt-r-ml-5{--margin-left: var(--space-5)}.rt-r-ml-6{--margin-left: var(--space-6)}.rt-r-ml-7{--margin-left: var(--space-7)}.rt-r-ml-8{--margin-left: var(--space-8)}.rt-r-ml-9{--margin-left: var(--space-9)}.-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-ml,.xs\:rt-r-ml-0,.xs\:rt-r-ml-1,.xs\:rt-r-ml-2,.xs\:rt-r-ml-3,.xs\:rt-r-ml-4,.xs\:rt-r-ml-5,.xs\:rt-r-ml-6,.xs\:rt-r-ml-7,.xs\:rt-r-ml-8,.xs\:rt-r-ml-9,.xs\:-rt-r-ml-1,.xs\:-rt-r-ml-2,.xs\:-rt-r-ml-3,.xs\:-rt-r-ml-4,.xs\:-rt-r-ml-5,.xs\:-rt-r-ml-6,.xs\:-rt-r-ml-7,.xs\:-rt-r-ml-8,.xs\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.xs\:rt-r-ml{--margin-left: var(--ml-xs) }.xs\:rt-r-ml-0{--margin-left: 0px}.xs\:rt-r-ml-1{--margin-left: var(--space-1)}.xs\:rt-r-ml-2{--margin-left: var(--space-2)}.xs\:rt-r-ml-3{--margin-left: var(--space-3)}.xs\:rt-r-ml-4{--margin-left: var(--space-4)}.xs\:rt-r-ml-5{--margin-left: var(--space-5)}.xs\:rt-r-ml-6{--margin-left: var(--space-6)}.xs\:rt-r-ml-7{--margin-left: var(--space-7)}.xs\:rt-r-ml-8{--margin-left: var(--space-8)}.xs\:rt-r-ml-9{--margin-left: var(--space-9)}.xs\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.xs\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.xs\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.xs\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.xs\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.xs\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.xs\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.xs\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.xs\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-ml,.sm\:rt-r-ml-0,.sm\:rt-r-ml-1,.sm\:rt-r-ml-2,.sm\:rt-r-ml-3,.sm\:rt-r-ml-4,.sm\:rt-r-ml-5,.sm\:rt-r-ml-6,.sm\:rt-r-ml-7,.sm\:rt-r-ml-8,.sm\:rt-r-ml-9,.sm\:-rt-r-ml-1,.sm\:-rt-r-ml-2,.sm\:-rt-r-ml-3,.sm\:-rt-r-ml-4,.sm\:-rt-r-ml-5,.sm\:-rt-r-ml-6,.sm\:-rt-r-ml-7,.sm\:-rt-r-ml-8,.sm\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.sm\:rt-r-ml{--margin-left: var(--ml-sm) }.sm\:rt-r-ml-0{--margin-left: 0px}.sm\:rt-r-ml-1{--margin-left: var(--space-1)}.sm\:rt-r-ml-2{--margin-left: var(--space-2)}.sm\:rt-r-ml-3{--margin-left: var(--space-3)}.sm\:rt-r-ml-4{--margin-left: var(--space-4)}.sm\:rt-r-ml-5{--margin-left: var(--space-5)}.sm\:rt-r-ml-6{--margin-left: var(--space-6)}.sm\:rt-r-ml-7{--margin-left: var(--space-7)}.sm\:rt-r-ml-8{--margin-left: var(--space-8)}.sm\:rt-r-ml-9{--margin-left: var(--space-9)}.sm\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.sm\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.sm\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.sm\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.sm\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.sm\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.sm\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.sm\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.sm\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-ml,.md\:rt-r-ml-0,.md\:rt-r-ml-1,.md\:rt-r-ml-2,.md\:rt-r-ml-3,.md\:rt-r-ml-4,.md\:rt-r-ml-5,.md\:rt-r-ml-6,.md\:rt-r-ml-7,.md\:rt-r-ml-8,.md\:rt-r-ml-9,.md\:-rt-r-ml-1,.md\:-rt-r-ml-2,.md\:-rt-r-ml-3,.md\:-rt-r-ml-4,.md\:-rt-r-ml-5,.md\:-rt-r-ml-6,.md\:-rt-r-ml-7,.md\:-rt-r-ml-8,.md\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.md\:rt-r-ml{--margin-left: var(--ml-md) }.md\:rt-r-ml-0{--margin-left: 0px}.md\:rt-r-ml-1{--margin-left: var(--space-1)}.md\:rt-r-ml-2{--margin-left: var(--space-2)}.md\:rt-r-ml-3{--margin-left: var(--space-3)}.md\:rt-r-ml-4{--margin-left: var(--space-4)}.md\:rt-r-ml-5{--margin-left: var(--space-5)}.md\:rt-r-ml-6{--margin-left: var(--space-6)}.md\:rt-r-ml-7{--margin-left: var(--space-7)}.md\:rt-r-ml-8{--margin-left: var(--space-8)}.md\:rt-r-ml-9{--margin-left: var(--space-9)}.md\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.md\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.md\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.md\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.md\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.md\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.md\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.md\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.md\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-ml,.lg\:rt-r-ml-0,.lg\:rt-r-ml-1,.lg\:rt-r-ml-2,.lg\:rt-r-ml-3,.lg\:rt-r-ml-4,.lg\:rt-r-ml-5,.lg\:rt-r-ml-6,.lg\:rt-r-ml-7,.lg\:rt-r-ml-8,.lg\:rt-r-ml-9,.lg\:-rt-r-ml-1,.lg\:-rt-r-ml-2,.lg\:-rt-r-ml-3,.lg\:-rt-r-ml-4,.lg\:-rt-r-ml-5,.lg\:-rt-r-ml-6,.lg\:-rt-r-ml-7,.lg\:-rt-r-ml-8,.lg\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.lg\:rt-r-ml{--margin-left: var(--ml-lg) }.lg\:rt-r-ml-0{--margin-left: 0px}.lg\:rt-r-ml-1{--margin-left: var(--space-1)}.lg\:rt-r-ml-2{--margin-left: var(--space-2)}.lg\:rt-r-ml-3{--margin-left: var(--space-3)}.lg\:rt-r-ml-4{--margin-left: var(--space-4)}.lg\:rt-r-ml-5{--margin-left: var(--space-5)}.lg\:rt-r-ml-6{--margin-left: var(--space-6)}.lg\:rt-r-ml-7{--margin-left: var(--space-7)}.lg\:rt-r-ml-8{--margin-left: var(--space-8)}.lg\:rt-r-ml-9{--margin-left: var(--space-9)}.lg\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.lg\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.lg\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.lg\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.lg\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.lg\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.lg\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.lg\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.lg\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-ml,.xl\:rt-r-ml-0,.xl\:rt-r-ml-1,.xl\:rt-r-ml-2,.xl\:rt-r-ml-3,.xl\:rt-r-ml-4,.xl\:rt-r-ml-5,.xl\:rt-r-ml-6,.xl\:rt-r-ml-7,.xl\:rt-r-ml-8,.xl\:rt-r-ml-9,.xl\:-rt-r-ml-1,.xl\:-rt-r-ml-2,.xl\:-rt-r-ml-3,.xl\:-rt-r-ml-4,.xl\:-rt-r-ml-5,.xl\:-rt-r-ml-6,.xl\:-rt-r-ml-7,.xl\:-rt-r-ml-8,.xl\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.xl\:rt-r-ml{--margin-left: var(--ml-xl) }.xl\:rt-r-ml-0{--margin-left: 0px}.xl\:rt-r-ml-1{--margin-left: var(--space-1)}.xl\:rt-r-ml-2{--margin-left: var(--space-2)}.xl\:rt-r-ml-3{--margin-left: var(--space-3)}.xl\:rt-r-ml-4{--margin-left: var(--space-4)}.xl\:rt-r-ml-5{--margin-left: var(--space-5)}.xl\:rt-r-ml-6{--margin-left: var(--space-6)}.xl\:rt-r-ml-7{--margin-left: var(--space-7)}.xl\:rt-r-ml-8{--margin-left: var(--space-8)}.xl\:rt-r-ml-9{--margin-left: var(--space-9)}.xl\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.xl\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.xl\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.xl\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.xl\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.xl\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.xl\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.xl\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.xl\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}.rt-r-overflow-visible{overflow:visible}.rt-r-overflow-hidden{overflow:hidden}.rt-r-overflow-clip{overflow:clip}.rt-r-overflow-scroll{overflow:scroll}.rt-r-overflow-auto{overflow:auto}.rt-r-ox-visible{overflow-x:visible}.rt-r-ox-hidden{overflow-x:hidden}.rt-r-ox-clip{overflow-x:clip}.rt-r-ox-scroll{overflow-x:scroll}.rt-r-ox-auto{overflow-x:auto}.rt-r-oy-visible{overflow-y:visible}.rt-r-oy-hidden{overflow-y:hidden}.rt-r-oy-clip{overflow-y:clip}.rt-r-oy-scroll{overflow-y:scroll}.rt-r-oy-auto{overflow-y:auto}@media (min-width: 520px){.xs\:rt-r-overflow-visible{overflow:visible}.xs\:rt-r-overflow-hidden{overflow:hidden}.xs\:rt-r-overflow-clip{overflow:clip}.xs\:rt-r-overflow-scroll{overflow:scroll}.xs\:rt-r-overflow-auto{overflow:auto}.xs\:rt-r-ox-visible{overflow-x:visible}.xs\:rt-r-ox-hidden{overflow-x:hidden}.xs\:rt-r-ox-clip{overflow-x:clip}.xs\:rt-r-ox-scroll{overflow-x:scroll}.xs\:rt-r-ox-auto{overflow-x:auto}.xs\:rt-r-oy-visible{overflow-y:visible}.xs\:rt-r-oy-hidden{overflow-y:hidden}.xs\:rt-r-oy-clip{overflow-y:clip}.xs\:rt-r-oy-scroll{overflow-y:scroll}.xs\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 768px){.sm\:rt-r-overflow-visible{overflow:visible}.sm\:rt-r-overflow-hidden{overflow:hidden}.sm\:rt-r-overflow-clip{overflow:clip}.sm\:rt-r-overflow-scroll{overflow:scroll}.sm\:rt-r-overflow-auto{overflow:auto}.sm\:rt-r-ox-visible{overflow-x:visible}.sm\:rt-r-ox-hidden{overflow-x:hidden}.sm\:rt-r-ox-clip{overflow-x:clip}.sm\:rt-r-ox-scroll{overflow-x:scroll}.sm\:rt-r-ox-auto{overflow-x:auto}.sm\:rt-r-oy-visible{overflow-y:visible}.sm\:rt-r-oy-hidden{overflow-y:hidden}.sm\:rt-r-oy-clip{overflow-y:clip}.sm\:rt-r-oy-scroll{overflow-y:scroll}.sm\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 1024px){.md\:rt-r-overflow-visible{overflow:visible}.md\:rt-r-overflow-hidden{overflow:hidden}.md\:rt-r-overflow-clip{overflow:clip}.md\:rt-r-overflow-scroll{overflow:scroll}.md\:rt-r-overflow-auto{overflow:auto}.md\:rt-r-ox-visible{overflow-x:visible}.md\:rt-r-ox-hidden{overflow-x:hidden}.md\:rt-r-ox-clip{overflow-x:clip}.md\:rt-r-ox-scroll{overflow-x:scroll}.md\:rt-r-ox-auto{overflow-x:auto}.md\:rt-r-oy-visible{overflow-y:visible}.md\:rt-r-oy-hidden{overflow-y:hidden}.md\:rt-r-oy-clip{overflow-y:clip}.md\:rt-r-oy-scroll{overflow-y:scroll}.md\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 1280px){.lg\:rt-r-overflow-visible{overflow:visible}.lg\:rt-r-overflow-hidden{overflow:hidden}.lg\:rt-r-overflow-clip{overflow:clip}.lg\:rt-r-overflow-scroll{overflow:scroll}.lg\:rt-r-overflow-auto{overflow:auto}.lg\:rt-r-ox-visible{overflow-x:visible}.lg\:rt-r-ox-hidden{overflow-x:hidden}.lg\:rt-r-ox-clip{overflow-x:clip}.lg\:rt-r-ox-scroll{overflow-x:scroll}.lg\:rt-r-ox-auto{overflow-x:auto}.lg\:rt-r-oy-visible{overflow-y:visible}.lg\:rt-r-oy-hidden{overflow-y:hidden}.lg\:rt-r-oy-clip{overflow-y:clip}.lg\:rt-r-oy-scroll{overflow-y:scroll}.lg\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 1640px){.xl\:rt-r-overflow-visible{overflow:visible}.xl\:rt-r-overflow-hidden{overflow:hidden}.xl\:rt-r-overflow-clip{overflow:clip}.xl\:rt-r-overflow-scroll{overflow:scroll}.xl\:rt-r-overflow-auto{overflow:auto}.xl\:rt-r-ox-visible{overflow-x:visible}.xl\:rt-r-ox-hidden{overflow-x:hidden}.xl\:rt-r-ox-clip{overflow-x:clip}.xl\:rt-r-ox-scroll{overflow-x:scroll}.xl\:rt-r-ox-auto{overflow-x:auto}.xl\:rt-r-oy-visible{overflow-y:visible}.xl\:rt-r-oy-hidden{overflow-y:hidden}.xl\:rt-r-oy-clip{overflow-y:clip}.xl\:rt-r-oy-scroll{overflow-y:scroll}.xl\:rt-r-oy-auto{overflow-y:auto}}.rt-r-p{padding:var(--p)}.rt-r-p-0{padding:0}.rt-r-p-1{padding:var(--space-1)}.rt-r-p-2{padding:var(--space-2)}.rt-r-p-3{padding:var(--space-3)}.rt-r-p-4{padding:var(--space-4)}.rt-r-p-5{padding:var(--space-5)}.rt-r-p-6{padding:var(--space-6)}.rt-r-p-7{padding:var(--space-7)}.rt-r-p-8{padding:var(--space-8)}.rt-r-p-9{padding:var(--space-9)}.rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}@media (min-width: 520px){.xs\:rt-r-p{padding:var(--p-xs)}.xs\:rt-r-p-0{padding:0}.xs\:rt-r-p-1{padding:var(--space-1)}.xs\:rt-r-p-2{padding:var(--space-2)}.xs\:rt-r-p-3{padding:var(--space-3)}.xs\:rt-r-p-4{padding:var(--space-4)}.xs\:rt-r-p-5{padding:var(--space-5)}.xs\:rt-r-p-6{padding:var(--space-6)}.xs\:rt-r-p-7{padding:var(--space-7)}.xs\:rt-r-p-8{padding:var(--space-8)}.xs\:rt-r-p-9{padding:var(--space-9)}.xs\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 768px){.sm\:rt-r-p{padding:var(--p-sm)}.sm\:rt-r-p-0{padding:0}.sm\:rt-r-p-1{padding:var(--space-1)}.sm\:rt-r-p-2{padding:var(--space-2)}.sm\:rt-r-p-3{padding:var(--space-3)}.sm\:rt-r-p-4{padding:var(--space-4)}.sm\:rt-r-p-5{padding:var(--space-5)}.sm\:rt-r-p-6{padding:var(--space-6)}.sm\:rt-r-p-7{padding:var(--space-7)}.sm\:rt-r-p-8{padding:var(--space-8)}.sm\:rt-r-p-9{padding:var(--space-9)}.sm\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 1024px){.md\:rt-r-p{padding:var(--p-md)}.md\:rt-r-p-0{padding:0}.md\:rt-r-p-1{padding:var(--space-1)}.md\:rt-r-p-2{padding:var(--space-2)}.md\:rt-r-p-3{padding:var(--space-3)}.md\:rt-r-p-4{padding:var(--space-4)}.md\:rt-r-p-5{padding:var(--space-5)}.md\:rt-r-p-6{padding:var(--space-6)}.md\:rt-r-p-7{padding:var(--space-7)}.md\:rt-r-p-8{padding:var(--space-8)}.md\:rt-r-p-9{padding:var(--space-9)}.md\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 1280px){.lg\:rt-r-p{padding:var(--p-lg)}.lg\:rt-r-p-0{padding:0}.lg\:rt-r-p-1{padding:var(--space-1)}.lg\:rt-r-p-2{padding:var(--space-2)}.lg\:rt-r-p-3{padding:var(--space-3)}.lg\:rt-r-p-4{padding:var(--space-4)}.lg\:rt-r-p-5{padding:var(--space-5)}.lg\:rt-r-p-6{padding:var(--space-6)}.lg\:rt-r-p-7{padding:var(--space-7)}.lg\:rt-r-p-8{padding:var(--space-8)}.lg\:rt-r-p-9{padding:var(--space-9)}.lg\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 1640px){.xl\:rt-r-p{padding:var(--p-xl)}.xl\:rt-r-p-0{padding:0}.xl\:rt-r-p-1{padding:var(--space-1)}.xl\:rt-r-p-2{padding:var(--space-2)}.xl\:rt-r-p-3{padding:var(--space-3)}.xl\:rt-r-p-4{padding:var(--space-4)}.xl\:rt-r-p-5{padding:var(--space-5)}.xl\:rt-r-p-6{padding:var(--space-6)}.xl\:rt-r-p-7{padding:var(--space-7)}.xl\:rt-r-p-8{padding:var(--space-8)}.xl\:rt-r-p-9{padding:var(--space-9)}.xl\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}.rt-r-px{padding-left:var(--pl);padding-right:var(--pr)}.rt-r-px-0{padding-left:0;padding-right:0}.rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}@media (min-width: 520px){.xs\:rt-r-px{padding-left:var(--pl-xs);padding-right:var(--pr-xs)}.xs\:rt-r-px-0{padding-left:0;padding-right:0}.xs\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.xs\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.xs\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.xs\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.xs\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.xs\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.xs\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.xs\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.xs\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.xs\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 768px){.sm\:rt-r-px{padding-left:var(--pl-sm);padding-right:var(--pr-sm)}.sm\:rt-r-px-0{padding-left:0;padding-right:0}.sm\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.sm\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.sm\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.sm\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.sm\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.sm\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.sm\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.sm\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.sm\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.sm\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 1024px){.md\:rt-r-px{padding-left:var(--pl-md);padding-right:var(--pr-md)}.md\:rt-r-px-0{padding-left:0;padding-right:0}.md\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.md\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.md\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.md\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.md\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.md\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.md\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.md\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.md\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.md\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 1280px){.lg\:rt-r-px{padding-left:var(--pl-lg);padding-right:var(--pr-lg)}.lg\:rt-r-px-0{padding-left:0;padding-right:0}.lg\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.lg\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.lg\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.lg\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.lg\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.lg\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.lg\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.lg\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.lg\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.lg\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 1640px){.xl\:rt-r-px{padding-left:var(--pl-xl);padding-right:var(--pr-xl)}.xl\:rt-r-px-0{padding-left:0;padding-right:0}.xl\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.xl\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.xl\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.xl\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.xl\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.xl\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.xl\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.xl\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.xl\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.xl\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}.rt-r-py{padding-top:var(--pt);padding-bottom:var(--pb)}.rt-r-py-0{padding-top:0;padding-bottom:0}.rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}@media (min-width: 520px){.xs\:rt-r-py{padding-top:var(--pt-xs);padding-bottom:var(--pb-xs)}.xs\:rt-r-py-0{padding-top:0;padding-bottom:0}.xs\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.xs\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.xs\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.xs\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.xs\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.xs\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.xs\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.xs\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.xs\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.xs\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 768px){.sm\:rt-r-py{padding-top:var(--pt-sm);padding-bottom:var(--pb-sm)}.sm\:rt-r-py-0{padding-top:0;padding-bottom:0}.sm\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.sm\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.sm\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.sm\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.sm\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.sm\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.sm\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.sm\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.sm\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.sm\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1024px){.md\:rt-r-py{padding-top:var(--pt-md);padding-bottom:var(--pb-md)}.md\:rt-r-py-0{padding-top:0;padding-bottom:0}.md\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.md\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.md\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.md\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.md\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.md\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.md\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.md\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.md\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.md\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1280px){.lg\:rt-r-py{padding-top:var(--pt-lg);padding-bottom:var(--pb-lg)}.lg\:rt-r-py-0{padding-top:0;padding-bottom:0}.lg\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.lg\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.lg\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.lg\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.lg\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.lg\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.lg\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.lg\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.lg\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.lg\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1640px){.xl\:rt-r-py{padding-top:var(--pt-xl);padding-bottom:var(--pb-xl)}.xl\:rt-r-py-0{padding-top:0;padding-bottom:0}.xl\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.xl\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.xl\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.xl\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.xl\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.xl\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.xl\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.xl\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.xl\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.xl\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}.rt-r-pt{padding-top:var(--pt)}.rt-r-pt-0{padding-top:0}.rt-r-pt-1{padding-top:var(--space-1)}.rt-r-pt-2{padding-top:var(--space-2)}.rt-r-pt-3{padding-top:var(--space-3)}.rt-r-pt-4{padding-top:var(--space-4)}.rt-r-pt-5{padding-top:var(--space-5)}.rt-r-pt-6{padding-top:var(--space-6)}.rt-r-pt-7{padding-top:var(--space-7)}.rt-r-pt-8{padding-top:var(--space-8)}.rt-r-pt-9{padding-top:var(--space-9)}.rt-r-pt-inset{padding-top:var(--inset-padding-top)}@media (min-width: 520px){.xs\:rt-r-pt{padding-top:var(--pt-xs)}.xs\:rt-r-pt-0{padding-top:0}.xs\:rt-r-pt-1{padding-top:var(--space-1)}.xs\:rt-r-pt-2{padding-top:var(--space-2)}.xs\:rt-r-pt-3{padding-top:var(--space-3)}.xs\:rt-r-pt-4{padding-top:var(--space-4)}.xs\:rt-r-pt-5{padding-top:var(--space-5)}.xs\:rt-r-pt-6{padding-top:var(--space-6)}.xs\:rt-r-pt-7{padding-top:var(--space-7)}.xs\:rt-r-pt-8{padding-top:var(--space-8)}.xs\:rt-r-pt-9{padding-top:var(--space-9)}.xs\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 768px){.sm\:rt-r-pt{padding-top:var(--pt-sm)}.sm\:rt-r-pt-0{padding-top:0}.sm\:rt-r-pt-1{padding-top:var(--space-1)}.sm\:rt-r-pt-2{padding-top:var(--space-2)}.sm\:rt-r-pt-3{padding-top:var(--space-3)}.sm\:rt-r-pt-4{padding-top:var(--space-4)}.sm\:rt-r-pt-5{padding-top:var(--space-5)}.sm\:rt-r-pt-6{padding-top:var(--space-6)}.sm\:rt-r-pt-7{padding-top:var(--space-7)}.sm\:rt-r-pt-8{padding-top:var(--space-8)}.sm\:rt-r-pt-9{padding-top:var(--space-9)}.sm\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 1024px){.md\:rt-r-pt{padding-top:var(--pt-md)}.md\:rt-r-pt-0{padding-top:0}.md\:rt-r-pt-1{padding-top:var(--space-1)}.md\:rt-r-pt-2{padding-top:var(--space-2)}.md\:rt-r-pt-3{padding-top:var(--space-3)}.md\:rt-r-pt-4{padding-top:var(--space-4)}.md\:rt-r-pt-5{padding-top:var(--space-5)}.md\:rt-r-pt-6{padding-top:var(--space-6)}.md\:rt-r-pt-7{padding-top:var(--space-7)}.md\:rt-r-pt-8{padding-top:var(--space-8)}.md\:rt-r-pt-9{padding-top:var(--space-9)}.md\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 1280px){.lg\:rt-r-pt{padding-top:var(--pt-lg)}.lg\:rt-r-pt-0{padding-top:0}.lg\:rt-r-pt-1{padding-top:var(--space-1)}.lg\:rt-r-pt-2{padding-top:var(--space-2)}.lg\:rt-r-pt-3{padding-top:var(--space-3)}.lg\:rt-r-pt-4{padding-top:var(--space-4)}.lg\:rt-r-pt-5{padding-top:var(--space-5)}.lg\:rt-r-pt-6{padding-top:var(--space-6)}.lg\:rt-r-pt-7{padding-top:var(--space-7)}.lg\:rt-r-pt-8{padding-top:var(--space-8)}.lg\:rt-r-pt-9{padding-top:var(--space-9)}.lg\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 1640px){.xl\:rt-r-pt{padding-top:var(--pt-xl)}.xl\:rt-r-pt-0{padding-top:0}.xl\:rt-r-pt-1{padding-top:var(--space-1)}.xl\:rt-r-pt-2{padding-top:var(--space-2)}.xl\:rt-r-pt-3{padding-top:var(--space-3)}.xl\:rt-r-pt-4{padding-top:var(--space-4)}.xl\:rt-r-pt-5{padding-top:var(--space-5)}.xl\:rt-r-pt-6{padding-top:var(--space-6)}.xl\:rt-r-pt-7{padding-top:var(--space-7)}.xl\:rt-r-pt-8{padding-top:var(--space-8)}.xl\:rt-r-pt-9{padding-top:var(--space-9)}.xl\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}.rt-r-pr{padding-right:var(--pr)}.rt-r-pr-0{padding-right:0}.rt-r-pr-1{padding-right:var(--space-1)}.rt-r-pr-2{padding-right:var(--space-2)}.rt-r-pr-3{padding-right:var(--space-3)}.rt-r-pr-4{padding-right:var(--space-4)}.rt-r-pr-5{padding-right:var(--space-5)}.rt-r-pr-6{padding-right:var(--space-6)}.rt-r-pr-7{padding-right:var(--space-7)}.rt-r-pr-8{padding-right:var(--space-8)}.rt-r-pr-9{padding-right:var(--space-9)}.rt-r-pr-inset{padding-right:var(--inset-padding-right)}@media (min-width: 520px){.xs\:rt-r-pr{padding-right:var(--pr-xs)}.xs\:rt-r-pr-0{padding-right:0}.xs\:rt-r-pr-1{padding-right:var(--space-1)}.xs\:rt-r-pr-2{padding-right:var(--space-2)}.xs\:rt-r-pr-3{padding-right:var(--space-3)}.xs\:rt-r-pr-4{padding-right:var(--space-4)}.xs\:rt-r-pr-5{padding-right:var(--space-5)}.xs\:rt-r-pr-6{padding-right:var(--space-6)}.xs\:rt-r-pr-7{padding-right:var(--space-7)}.xs\:rt-r-pr-8{padding-right:var(--space-8)}.xs\:rt-r-pr-9{padding-right:var(--space-9)}.xs\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 768px){.sm\:rt-r-pr{padding-right:var(--pr-sm)}.sm\:rt-r-pr-0{padding-right:0}.sm\:rt-r-pr-1{padding-right:var(--space-1)}.sm\:rt-r-pr-2{padding-right:var(--space-2)}.sm\:rt-r-pr-3{padding-right:var(--space-3)}.sm\:rt-r-pr-4{padding-right:var(--space-4)}.sm\:rt-r-pr-5{padding-right:var(--space-5)}.sm\:rt-r-pr-6{padding-right:var(--space-6)}.sm\:rt-r-pr-7{padding-right:var(--space-7)}.sm\:rt-r-pr-8{padding-right:var(--space-8)}.sm\:rt-r-pr-9{padding-right:var(--space-9)}.sm\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 1024px){.md\:rt-r-pr{padding-right:var(--pr-md)}.md\:rt-r-pr-0{padding-right:0}.md\:rt-r-pr-1{padding-right:var(--space-1)}.md\:rt-r-pr-2{padding-right:var(--space-2)}.md\:rt-r-pr-3{padding-right:var(--space-3)}.md\:rt-r-pr-4{padding-right:var(--space-4)}.md\:rt-r-pr-5{padding-right:var(--space-5)}.md\:rt-r-pr-6{padding-right:var(--space-6)}.md\:rt-r-pr-7{padding-right:var(--space-7)}.md\:rt-r-pr-8{padding-right:var(--space-8)}.md\:rt-r-pr-9{padding-right:var(--space-9)}.md\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 1280px){.lg\:rt-r-pr{padding-right:var(--pr-lg)}.lg\:rt-r-pr-0{padding-right:0}.lg\:rt-r-pr-1{padding-right:var(--space-1)}.lg\:rt-r-pr-2{padding-right:var(--space-2)}.lg\:rt-r-pr-3{padding-right:var(--space-3)}.lg\:rt-r-pr-4{padding-right:var(--space-4)}.lg\:rt-r-pr-5{padding-right:var(--space-5)}.lg\:rt-r-pr-6{padding-right:var(--space-6)}.lg\:rt-r-pr-7{padding-right:var(--space-7)}.lg\:rt-r-pr-8{padding-right:var(--space-8)}.lg\:rt-r-pr-9{padding-right:var(--space-9)}.lg\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 1640px){.xl\:rt-r-pr{padding-right:var(--pr-xl)}.xl\:rt-r-pr-0{padding-right:0}.xl\:rt-r-pr-1{padding-right:var(--space-1)}.xl\:rt-r-pr-2{padding-right:var(--space-2)}.xl\:rt-r-pr-3{padding-right:var(--space-3)}.xl\:rt-r-pr-4{padding-right:var(--space-4)}.xl\:rt-r-pr-5{padding-right:var(--space-5)}.xl\:rt-r-pr-6{padding-right:var(--space-6)}.xl\:rt-r-pr-7{padding-right:var(--space-7)}.xl\:rt-r-pr-8{padding-right:var(--space-8)}.xl\:rt-r-pr-9{padding-right:var(--space-9)}.xl\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}.rt-r-pb{padding-bottom:var(--pb)}.rt-r-pb-0{padding-bottom:0}.rt-r-pb-1{padding-bottom:var(--space-1)}.rt-r-pb-2{padding-bottom:var(--space-2)}.rt-r-pb-3{padding-bottom:var(--space-3)}.rt-r-pb-4{padding-bottom:var(--space-4)}.rt-r-pb-5{padding-bottom:var(--space-5)}.rt-r-pb-6{padding-bottom:var(--space-6)}.rt-r-pb-7{padding-bottom:var(--space-7)}.rt-r-pb-8{padding-bottom:var(--space-8)}.rt-r-pb-9{padding-bottom:var(--space-9)}.rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}@media (min-width: 520px){.xs\:rt-r-pb{padding-bottom:var(--pb-xs)}.xs\:rt-r-pb-0{padding-bottom:0}.xs\:rt-r-pb-1{padding-bottom:var(--space-1)}.xs\:rt-r-pb-2{padding-bottom:var(--space-2)}.xs\:rt-r-pb-3{padding-bottom:var(--space-3)}.xs\:rt-r-pb-4{padding-bottom:var(--space-4)}.xs\:rt-r-pb-5{padding-bottom:var(--space-5)}.xs\:rt-r-pb-6{padding-bottom:var(--space-6)}.xs\:rt-r-pb-7{padding-bottom:var(--space-7)}.xs\:rt-r-pb-8{padding-bottom:var(--space-8)}.xs\:rt-r-pb-9{padding-bottom:var(--space-9)}.xs\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 768px){.sm\:rt-r-pb{padding-bottom:var(--pb-sm)}.sm\:rt-r-pb-0{padding-bottom:0}.sm\:rt-r-pb-1{padding-bottom:var(--space-1)}.sm\:rt-r-pb-2{padding-bottom:var(--space-2)}.sm\:rt-r-pb-3{padding-bottom:var(--space-3)}.sm\:rt-r-pb-4{padding-bottom:var(--space-4)}.sm\:rt-r-pb-5{padding-bottom:var(--space-5)}.sm\:rt-r-pb-6{padding-bottom:var(--space-6)}.sm\:rt-r-pb-7{padding-bottom:var(--space-7)}.sm\:rt-r-pb-8{padding-bottom:var(--space-8)}.sm\:rt-r-pb-9{padding-bottom:var(--space-9)}.sm\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1024px){.md\:rt-r-pb{padding-bottom:var(--pb-md)}.md\:rt-r-pb-0{padding-bottom:0}.md\:rt-r-pb-1{padding-bottom:var(--space-1)}.md\:rt-r-pb-2{padding-bottom:var(--space-2)}.md\:rt-r-pb-3{padding-bottom:var(--space-3)}.md\:rt-r-pb-4{padding-bottom:var(--space-4)}.md\:rt-r-pb-5{padding-bottom:var(--space-5)}.md\:rt-r-pb-6{padding-bottom:var(--space-6)}.md\:rt-r-pb-7{padding-bottom:var(--space-7)}.md\:rt-r-pb-8{padding-bottom:var(--space-8)}.md\:rt-r-pb-9{padding-bottom:var(--space-9)}.md\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1280px){.lg\:rt-r-pb{padding-bottom:var(--pb-lg)}.lg\:rt-r-pb-0{padding-bottom:0}.lg\:rt-r-pb-1{padding-bottom:var(--space-1)}.lg\:rt-r-pb-2{padding-bottom:var(--space-2)}.lg\:rt-r-pb-3{padding-bottom:var(--space-3)}.lg\:rt-r-pb-4{padding-bottom:var(--space-4)}.lg\:rt-r-pb-5{padding-bottom:var(--space-5)}.lg\:rt-r-pb-6{padding-bottom:var(--space-6)}.lg\:rt-r-pb-7{padding-bottom:var(--space-7)}.lg\:rt-r-pb-8{padding-bottom:var(--space-8)}.lg\:rt-r-pb-9{padding-bottom:var(--space-9)}.lg\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1640px){.xl\:rt-r-pb{padding-bottom:var(--pb-xl)}.xl\:rt-r-pb-0{padding-bottom:0}.xl\:rt-r-pb-1{padding-bottom:var(--space-1)}.xl\:rt-r-pb-2{padding-bottom:var(--space-2)}.xl\:rt-r-pb-3{padding-bottom:var(--space-3)}.xl\:rt-r-pb-4{padding-bottom:var(--space-4)}.xl\:rt-r-pb-5{padding-bottom:var(--space-5)}.xl\:rt-r-pb-6{padding-bottom:var(--space-6)}.xl\:rt-r-pb-7{padding-bottom:var(--space-7)}.xl\:rt-r-pb-8{padding-bottom:var(--space-8)}.xl\:rt-r-pb-9{padding-bottom:var(--space-9)}.xl\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}.rt-r-pl{padding-left:var(--pl)}.rt-r-pl-0{padding-left:0}.rt-r-pl-1{padding-left:var(--space-1)}.rt-r-pl-2{padding-left:var(--space-2)}.rt-r-pl-3{padding-left:var(--space-3)}.rt-r-pl-4{padding-left:var(--space-4)}.rt-r-pl-5{padding-left:var(--space-5)}.rt-r-pl-6{padding-left:var(--space-6)}.rt-r-pl-7{padding-left:var(--space-7)}.rt-r-pl-8{padding-left:var(--space-8)}.rt-r-pl-9{padding-left:var(--space-9)}.rt-r-pl-inset{padding-left:var(--inset-padding-left)}@media (min-width: 520px){.xs\:rt-r-pl{padding-left:var(--pl-xs)}.xs\:rt-r-pl-0{padding-left:0}.xs\:rt-r-pl-1{padding-left:var(--space-1)}.xs\:rt-r-pl-2{padding-left:var(--space-2)}.xs\:rt-r-pl-3{padding-left:var(--space-3)}.xs\:rt-r-pl-4{padding-left:var(--space-4)}.xs\:rt-r-pl-5{padding-left:var(--space-5)}.xs\:rt-r-pl-6{padding-left:var(--space-6)}.xs\:rt-r-pl-7{padding-left:var(--space-7)}.xs\:rt-r-pl-8{padding-left:var(--space-8)}.xs\:rt-r-pl-9{padding-left:var(--space-9)}.xs\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 768px){.sm\:rt-r-pl{padding-left:var(--pl-sm)}.sm\:rt-r-pl-0{padding-left:0}.sm\:rt-r-pl-1{padding-left:var(--space-1)}.sm\:rt-r-pl-2{padding-left:var(--space-2)}.sm\:rt-r-pl-3{padding-left:var(--space-3)}.sm\:rt-r-pl-4{padding-left:var(--space-4)}.sm\:rt-r-pl-5{padding-left:var(--space-5)}.sm\:rt-r-pl-6{padding-left:var(--space-6)}.sm\:rt-r-pl-7{padding-left:var(--space-7)}.sm\:rt-r-pl-8{padding-left:var(--space-8)}.sm\:rt-r-pl-9{padding-left:var(--space-9)}.sm\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 1024px){.md\:rt-r-pl{padding-left:var(--pl-md)}.md\:rt-r-pl-0{padding-left:0}.md\:rt-r-pl-1{padding-left:var(--space-1)}.md\:rt-r-pl-2{padding-left:var(--space-2)}.md\:rt-r-pl-3{padding-left:var(--space-3)}.md\:rt-r-pl-4{padding-left:var(--space-4)}.md\:rt-r-pl-5{padding-left:var(--space-5)}.md\:rt-r-pl-6{padding-left:var(--space-6)}.md\:rt-r-pl-7{padding-left:var(--space-7)}.md\:rt-r-pl-8{padding-left:var(--space-8)}.md\:rt-r-pl-9{padding-left:var(--space-9)}.md\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 1280px){.lg\:rt-r-pl{padding-left:var(--pl-lg)}.lg\:rt-r-pl-0{padding-left:0}.lg\:rt-r-pl-1{padding-left:var(--space-1)}.lg\:rt-r-pl-2{padding-left:var(--space-2)}.lg\:rt-r-pl-3{padding-left:var(--space-3)}.lg\:rt-r-pl-4{padding-left:var(--space-4)}.lg\:rt-r-pl-5{padding-left:var(--space-5)}.lg\:rt-r-pl-6{padding-left:var(--space-6)}.lg\:rt-r-pl-7{padding-left:var(--space-7)}.lg\:rt-r-pl-8{padding-left:var(--space-8)}.lg\:rt-r-pl-9{padding-left:var(--space-9)}.lg\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 1640px){.xl\:rt-r-pl{padding-left:var(--pl-xl)}.xl\:rt-r-pl-0{padding-left:0}.xl\:rt-r-pl-1{padding-left:var(--space-1)}.xl\:rt-r-pl-2{padding-left:var(--space-2)}.xl\:rt-r-pl-3{padding-left:var(--space-3)}.xl\:rt-r-pl-4{padding-left:var(--space-4)}.xl\:rt-r-pl-5{padding-left:var(--space-5)}.xl\:rt-r-pl-6{padding-left:var(--space-6)}.xl\:rt-r-pl-7{padding-left:var(--space-7)}.xl\:rt-r-pl-8{padding-left:var(--space-8)}.xl\:rt-r-pl-9{padding-left:var(--space-9)}.xl\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}.rt-r-position-static{position:static}.rt-r-position-absolute{position:absolute}.rt-r-position-relative{position:relative}.rt-r-position-fixed{position:fixed}.rt-r-position-sticky{position:sticky}@media (min-width: 520px){.xs\:rt-r-position-static{position:static}.xs\:rt-r-position-absolute{position:absolute}.xs\:rt-r-position-relative{position:relative}.xs\:rt-r-position-fixed{position:fixed}.xs\:rt-r-position-sticky{position:sticky}}@media (min-width: 768px){.sm\:rt-r-position-static{position:static}.sm\:rt-r-position-absolute{position:absolute}.sm\:rt-r-position-relative{position:relative}.sm\:rt-r-position-fixed{position:fixed}.sm\:rt-r-position-sticky{position:sticky}}@media (min-width: 1024px){.md\:rt-r-position-static{position:static}.md\:rt-r-position-absolute{position:absolute}.md\:rt-r-position-relative{position:relative}.md\:rt-r-position-fixed{position:fixed}.md\:rt-r-position-sticky{position:sticky}}@media (min-width: 1280px){.lg\:rt-r-position-static{position:static}.lg\:rt-r-position-absolute{position:absolute}.lg\:rt-r-position-relative{position:relative}.lg\:rt-r-position-fixed{position:fixed}.lg\:rt-r-position-sticky{position:sticky}}@media (min-width: 1640px){.xl\:rt-r-position-static{position:static}.xl\:rt-r-position-absolute{position:absolute}.xl\:rt-r-position-relative{position:relative}.xl\:rt-r-position-fixed{position:fixed}.xl\:rt-r-position-sticky{position:sticky}}.rt-r-w{width:var(--width)}@media (min-width: 520px){.xs\:rt-r-w{width:var(--width-xs)}}@media (min-width: 768px){.sm\:rt-r-w{width:var(--width-sm)}}@media (min-width: 1024px){.md\:rt-r-w{width:var(--width-md)}}@media (min-width: 1280px){.lg\:rt-r-w{width:var(--width-lg)}}@media (min-width: 1640px){.xl\:rt-r-w{width:var(--width-xl)}}.rt-r-min-w{min-width:var(--min-width)}@media (min-width: 520px){.xs\:rt-r-min-w{min-width:var(--min-width-xs)}}@media (min-width: 768px){.sm\:rt-r-min-w{min-width:var(--min-width-sm)}}@media (min-width: 1024px){.md\:rt-r-min-w{min-width:var(--min-width-md)}}@media (min-width: 1280px){.lg\:rt-r-min-w{min-width:var(--min-width-lg)}}@media (min-width: 1640px){.xl\:rt-r-min-w{min-width:var(--min-width-xl)}}.rt-r-max-w{max-width:var(--max-width)}@media (min-width: 520px){.xs\:rt-r-max-w{max-width:var(--max-width-xs)}}@media (min-width: 768px){.sm\:rt-r-max-w{max-width:var(--max-width-sm)}}@media (min-width: 1024px){.md\:rt-r-max-w{max-width:var(--max-width-md)}}@media (min-width: 1280px){.lg\:rt-r-max-w{max-width:var(--max-width-lg)}}@media (min-width: 1640px){.xl\:rt-r-max-w{max-width:var(--max-width-xl)}}.rt-r-weight-light{font-weight:var(--font-weight-light)}.rt-r-weight-regular{font-weight:var(--font-weight-regular)}.rt-r-weight-medium{font-weight:var(--font-weight-medium)}.rt-r-weight-bold{font-weight:var(--font-weight-bold)}@media (min-width: 520px){.xs\:rt-r-weight-light{font-weight:var(--font-weight-light)}.xs\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.xs\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.xs\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 768px){.sm\:rt-r-weight-light{font-weight:var(--font-weight-light)}.sm\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.sm\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.sm\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 1024px){.md\:rt-r-weight-light{font-weight:var(--font-weight-light)}.md\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.md\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.md\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 1280px){.lg\:rt-r-weight-light{font-weight:var(--font-weight-light)}.lg\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.lg\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.lg\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 1640px){.xl\:rt-r-weight-light{font-weight:var(--font-weight-light)}.xl\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.xl\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.xl\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}.rt-r-lt-normal:before,.rt-r-lt-end:before,.rt-r-lt-normal:after,.rt-r-lt-start:after{content:none}.rt-r-lt-start:before,.rt-r-lt-both:before,.rt-r-lt-end:after,.rt-r-lt-both:after{content:"";display:table}.rt-r-lt-start:before,.rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.rt-r-lt-end:after,.rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}@media (min-width: 520px){.xs\:rt-r-lt-normal:before,.xs\:rt-r-lt-end:before,.xs\:rt-r-lt-normal:after,.xs\:rt-r-lt-start:after{content:none}.xs\:rt-r-lt-start:before,.xs\:rt-r-lt-both:before,.xs\:rt-r-lt-end:after,.xs\:rt-r-lt-both:after{content:"";display:table}.xs\:rt-r-lt-start:before,.xs\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.xs\:rt-r-lt-end:after,.xs\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 768px){.sm\:rt-r-lt-normal:before,.sm\:rt-r-lt-end:before,.sm\:rt-r-lt-normal:after,.sm\:rt-r-lt-start:after{content:none}.sm\:rt-r-lt-start:before,.sm\:rt-r-lt-both:before,.sm\:rt-r-lt-end:after,.sm\:rt-r-lt-both:after{content:"";display:table}.sm\:rt-r-lt-start:before,.sm\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.sm\:rt-r-lt-end:after,.sm\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 1024px){.md\:rt-r-lt-normal:before,.md\:rt-r-lt-end:before,.md\:rt-r-lt-normal:after,.md\:rt-r-lt-start:after{content:none}.md\:rt-r-lt-start:before,.md\:rt-r-lt-both:before,.md\:rt-r-lt-end:after,.md\:rt-r-lt-both:after{content:"";display:table}.md\:rt-r-lt-start:before,.md\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.md\:rt-r-lt-end:after,.md\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 1280px){.lg\:rt-r-lt-normal:before,.lg\:rt-r-lt-end:before,.lg\:rt-r-lt-normal:after,.lg\:rt-r-lt-start:after{content:none}.lg\:rt-r-lt-start:before,.lg\:rt-r-lt-both:before,.lg\:rt-r-lt-end:after,.lg\:rt-r-lt-both:after{content:"";display:table}.lg\:rt-r-lt-start:before,.lg\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.lg\:rt-r-lt-end:after,.lg\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 1640px){.xl\:rt-r-lt-normal:before,.xl\:rt-r-lt-end:before,.xl\:rt-r-lt-normal:after,.xl\:rt-r-lt-start:after{content:none}.xl\:rt-r-lt-start:before,.xl\:rt-r-lt-both:before,.xl\:rt-r-lt-end:after,.xl\:rt-r-lt-both:after{content:"";display:table}.xl\:rt-r-lt-start:before,.xl\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.xl\:rt-r-lt-end:after,.xl\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}.rt-r-resize-none{resize:none}.rt-r-resize-vertical{resize:vertical}.rt-r-resize-horizontal{resize:horizontal}.rt-r-resize-both{resize:both}@media (min-width: 520px){.xs\:rt-r-resize-none{resize:none}.xs\:rt-r-resize-vertical{resize:vertical}.xs\:rt-r-resize-horizontal{resize:horizontal}.xs\:rt-r-resize-both{resize:both}}@media (min-width: 768px){.sm\:rt-r-resize-none{resize:none}.sm\:rt-r-resize-vertical{resize:vertical}.sm\:rt-r-resize-horizontal{resize:horizontal}.sm\:rt-r-resize-both{resize:both}}@media (min-width: 1024px){.md\:rt-r-resize-none{resize:none}.md\:rt-r-resize-vertical{resize:vertical}.md\:rt-r-resize-horizontal{resize:horizontal}.md\:rt-r-resize-both{resize:both}}@media (min-width: 1280px){.lg\:rt-r-resize-none{resize:none}.lg\:rt-r-resize-vertical{resize:vertical}.lg\:rt-r-resize-horizontal{resize:horizontal}.lg\:rt-r-resize-both{resize:both}}@media (min-width: 1640px){.xl\:rt-r-resize-none{resize:none}.xl\:rt-r-resize-vertical{resize:vertical}.xl\:rt-r-resize-horizontal{resize:horizontal}.xl\:rt-r-resize-both{resize:both}}.rt-r-tl-auto{table-layout:auto}.rt-r-tl-fixed{table-layout:fixed}@media (min-width: 520px){.xs\:rt-r-tl-auto{table-layout:auto}.xs\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 768px){.sm\:rt-r-tl-auto{table-layout:auto}.sm\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 1024px){.md\:rt-r-tl-auto{table-layout:auto}.md\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 1280px){.lg\:rt-r-tl-auto{table-layout:auto}.lg\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 1640px){.xl\:rt-r-tl-auto{table-layout:auto}.xl\:rt-r-tl-fixed{table-layout:fixed}}.rt-r-ta-left{text-align:left}.rt-r-ta-center{text-align:center}.rt-r-ta-right{text-align:right}@media (min-width: 520px){.xs\:rt-r-ta-left{text-align:left}.xs\:rt-r-ta-center{text-align:center}.xs\:rt-r-ta-right{text-align:right}}@media (min-width: 768px){.sm\:rt-r-ta-left{text-align:left}.sm\:rt-r-ta-center{text-align:center}.sm\:rt-r-ta-right{text-align:right}}@media (min-width: 1024px){.md\:rt-r-ta-left{text-align:left}.md\:rt-r-ta-center{text-align:center}.md\:rt-r-ta-right{text-align:right}}@media (min-width: 1280px){.lg\:rt-r-ta-left{text-align:left}.lg\:rt-r-ta-center{text-align:center}.lg\:rt-r-ta-right{text-align:right}}@media (min-width: 1640px){.xl\:rt-r-ta-left{text-align:left}.xl\:rt-r-ta-center{text-align:center}.xl\:rt-r-ta-right{text-align:right}}.rt-r-tw-wrap{white-space:normal}.rt-r-tw-nowrap{white-space:nowrap}.rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.rt-r-tw-balance{white-space:normal;text-wrap:balance}@media (min-width: 520px){.xs\:rt-r-tw-wrap{white-space:normal}.xs\:rt-r-tw-nowrap{white-space:nowrap}.xs\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.xs\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 768px){.sm\:rt-r-tw-wrap{white-space:normal}.sm\:rt-r-tw-nowrap{white-space:nowrap}.sm\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.sm\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 1024px){.md\:rt-r-tw-wrap{white-space:normal}.md\:rt-r-tw-nowrap{white-space:nowrap}.md\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.md\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 1280px){.lg\:rt-r-tw-wrap{white-space:normal}.lg\:rt-r-tw-nowrap{white-space:nowrap}.lg\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.lg\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 1640px){.xl\:rt-r-tw-wrap{white-space:normal}.xl\:rt-r-tw-nowrap{white-space:nowrap}.xl\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.xl\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}.rt-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-r-va-baseline{vertical-align:baseline}.rt-r-va-top{vertical-align:top}.rt-r-va-middle{vertical-align:middle}.rt-r-va-bottom{vertical-align:bottom}@media (min-width: 520px){.xs\:rt-r-va-baseline{vertical-align:baseline}.xs\:rt-r-va-top{vertical-align:top}.xs\:rt-r-va-middle{vertical-align:middle}.xs\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 768px){.sm\:rt-r-va-baseline{vertical-align:baseline}.sm\:rt-r-va-top{vertical-align:top}.sm\:rt-r-va-middle{vertical-align:middle}.sm\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 1024px){.md\:rt-r-va-baseline{vertical-align:baseline}.md\:rt-r-va-top{vertical-align:top}.md\:rt-r-va-middle{vertical-align:middle}.md\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 1280px){.lg\:rt-r-va-baseline{vertical-align:baseline}.lg\:rt-r-va-top{vertical-align:top}.lg\:rt-r-va-middle{vertical-align:middle}.lg\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 1640px){.xl\:rt-r-va-baseline{vertical-align:baseline}.xl\:rt-r-va-top{vertical-align:top}.xl\:rt-r-va-middle{vertical-align:middle}.xl\:rt-r-va-bottom{vertical-align:bottom}}#app{--color-background: #070b14;--default-font-family: "Inter Tight", sans-serif;font-family:Inter Tight,NotoFlagsOnly,sans-serif;font-display:optional;--scaling: .875;--cursor-button: pointer;--line-height: 1.2;--white-heading: #f7f8f8;--green-live: #3cff73;font-variant-numeric:tabular-nums;overflow:hidden}.rt-TooltipContent{background:#131923;border:1px solid #2e343e;border-radius:8px}.rt-TooltipText{color:var(--regular-text-color);user-select:auto}.rt-TooltipArrow{fill:#131923}.rt-Separator{background:#65677a}.sticky{position:sticky;background:var(--color-background)}.app-width-container{max-width:1920px;margin:0 auto}.blur{position:absolute;inset:0;background:#0000008a;backdrop-filter:blur(2px)}.sankey-label{pointer-events:none;white-space:pre-line;font-size:14px;font-family:Inter Tight}.mono-text{font-family:Roboto Mono,monospace}._outer-container_13cf2_1{height:100vh;width:100%;position:absolute;z-index:100;display:flex;justify-content:center;align-items:center;container:outer-container / inline-size}._inner-container_13cf2_12{min-width:410px}@container outer-container (width < 430px){._inner-container_13cf2_12{min-width:310px}}._text_o41r7_1{color:var(--startup-text-color);line-height:normal}._container_o41r7_6{padding-left:40px}._container_1tszc_1{padding:8px 14px;border-radius:12px;border:1px solid var(--container-border-color);background:var(--container-background-color);display:grid;grid:auto-flow / auto 1fr;column-gap:10px;row-gap:6px;._text_1tszc_11{color:#dedede;font-weight:500;line-height:normal}}._text_1ont6_1{color:var(--startup-complete-step-color);font-weight:500;line-height:normal}._container_1ont6_7{padding:0 20px}._label_1ojid_1{color:#686868;font-size:12px}._value_1ojid_6{color:var(--startup-text-color);font-size:12px}._progress_gtr5g_1{height:9px;width:120px;background:var(--startup-progress-background-color);div{background:var(--startup-progress-teal-color)}}._text_gtr5g_11{color:var(--startup-text-color);font-size:8px;line-height:normal}._container_e8h4h_1{transition:filter .5s;&._blur_e8h4h_4{filter:blur(10px)}}._container_1z0wf_1{--collapse-duration: .3s;--collapse-location-time: .2s;--transform-origin: top right;position:fixed;inset:0;overscroll-behavior:none;z-index:20;background-color:var(--startup-background-color);--color-background: var(--startup-background-color);--slot-nav-background-color: var(--startup-background-color);transform-origin:var(--transform-origin);transition:opacity var(--collapse-duration) linear,transform var(--collapse-duration) linear,background-color .2s linear;&._collapsed_1z0wf_22{transform:scale(0);opacity:.5;overflow:hidden}&._gossip_1z0wf_28{--startup-background-color: var(--boot-progress-gossip-background-color)}&._full-snapshot_1z0wf_32{--startup-background-color: var( --boot-progress-full-snapshot-background-color )}&._incr-snapshot_1z0wf_38{--startup-background-color: var( --boot-progress-incr-snapshot-background-color )}&._catching-up_1z0wf_44{--startup-background-color: var(--boot-progress-catchup-background-color)}&._supermajority_1z0wf_48{background-color:var(--boot-progress-supermajority-background-color)}}@media (min-width: 800px){._startup-content-indentation_1z0wf_54{margin-left:67px;margin-right:67px}}._container_j432f_1{min-width:28px;&._pointer_j432f_4{cursor:pointer}._label_j432f_8{color:var(--header-label-text-color);font-size:10px}._value_j432f_13{color:var(--dropdown-button-text-color);font-size:12px;._value-suffix_j432f_17{color:var(--header-label-text-color)}}&._dropdown-menu_j432f_22{._label_j432f_8{color:var(--popover-secondary-color)}._value_j432f_13{color:var(--popover-primary-color);._value-suffix_j432f_17{color:var(--popover-secondary-color)}}}}._horizontal_j432f_37{display:flex;justify-content:space-between;align-items:center;gap:8px;background-color:var(--color-background);._value_j432f_13{font-weight:600}}._hide_1etvv_1{display:none}._popover-content_e49l0_1{box-sizing:border-box;max-width:var(--radix-popover-content-available-width);background:var(--popover-background-color);color:var(--popover-primary-color);padding:10px;border:1px solid var(--gray-4, #2a2a2a);border-radius:5px;box-shadow:0 4px 4px #00000040;animation-duration:.4s;animation-timing-function:cubic-bezier(.16,1,.3,1);will-change:transform,opacity;--popover-trigger-color: var(--popover-secondary-color);--popover-trigger-hover-color: var(--popover-primary-color)}._popover-content_e49l0_1:focus{box-shadow:0 0 0 2px var(--violet-7)}._popover-content_e49l0_1[data-state=open][data-side=top]{animation-name:_slideDownAndFade_e49l0_1}._popover-content_e49l0_1[data-state=open][data-side=right]{animation-name:_slideLeftAndFade_e49l0_1}._popover-content_e49l0_1[data-state=open][data-side=bottom]{animation-name:_slideUpAndFade_e49l0_1}._popover-content_e49l0_1[data-state=open][data-side=left]{animation-name:_slideRightAndFade_e49l0_1}._popover-arrow_e49l0_41{fill:var(--popover-background-color)}@keyframes _slideUpAndFade_e49l0_1{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes _slideRightAndFade_e49l0_1{0%{opacity:0;transform:translate(-2px)}to{opacity:1;transform:translate(0)}}@keyframes _slideDownAndFade_e49l0_1{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@keyframes _slideLeftAndFade_e49l0_1{0%{opacity:0;transform:translate(2px)}to{opacity:1;transform:translate(0)}}._copy-button_1km2g_1{position:relative;width:fit-content;max-width:100%;--button-ghost-padding-x: 2px;--button-ghost-padding-y: 2px;._icon_1km2g_8{flex-shrink:0}&._hide-icon-until-hover_1km2g_12{._icon_1km2g_8{display:none}&:hover ._icon_1km2g_8{display:inherit;position:absolute;right:0;background:#1b3150bf;padding:4px 2px;border-radius:2px;box-shadow:-4px 0 8px #1e3a5fcc,0 2px 8px #0000004d}}}._nav-link_tb1ax_1{font-size:14px;font-weight:400;color:var(--nav-button-inactive-text-color);border-radius:5px;background-color:transparent;gap:5px;padding:0 15px;flex-shrink:1;min-width:50px;._icon_tb1ax_14{height:14px;width:14px}._dropdown-icon_tb1ax_19{height:18px;width:18px}&:hover,&._focus_tb1ax_25{filter:brightness(1.2)}&._active_tb1ax_29{font-weight:600;background-color:#ffffff14}}@media (max-width: 416px){._nav-link_tb1ax_1{padding:0 4px}}._nav-dropdown-content_tb1ax_41{display:flex;flex-direction:column;background-color:#1c2129;border:1px solid rgba(250,250,250,.08);border-radius:5px;min-width:var(--radix-dropdown-menu-trigger-width)}._logo_1ml9x_1{height:27px}._cluster-container_7aa6c_1{height:28px;justify-content:space-between;align-items:center;flex-grow:1;border-radius:5px;background:#fafafa1a;._cluster_7aa6c_1{padding:0 3px;border-radius:3px;color:#000;font-size:10px;font-weight:500}._cluster-name_7aa6c_19{font-size:12px;font-weight:700;margin-bottom:-3px}}._nav-filter-toggle-group_148xa_1{display:flex;flex-wrap:nowrap;width:100%;button{cursor:pointer;flex-grow:1;height:21px;border:none;padding:3px 5px;color:var(--nav-button-inactive-text-color);background-color:#ffffff1a;&:first-child{border-top-left-radius:5px;border-bottom-left-radius:5px}&:last-child{border-top-right-radius:5px;border-bottom-right-radius:5px}&[data-state=on]{background-color:var(--slot-nav-filter-background-color);color:var(--nav-button-text-color)}&:hover{filter:brightness(1.2)}span{cursor:inherit;font-size:12px;font-style:normal;font-weight:400;line-height:normal}}}._toggle-button-size_148xa_43{height:15px;width:15px;&._lg_148xa_47{height:18px;width:18px}}._toggle-button_148xa_43{border-radius:5px;background-color:var(--epoch-slider-progress-color);&:hover{filter:brightness(1.2)}&._floating_148xa_61{box-shadow:0 4px 4px #000000bf}svg{fill:var(--nav-button-text-color);height:15px;width:15px;&._lg_148xa_47{height:18px;width:18px}&._mirror_148xa_75{transform:scaleX(-1)}}}._slot-nav-container_148xa_81{transition:width .3s;box-sizing:border-box;&._nav-background_148xa_85{background-color:var(--slot-nav-background-color)}}._nav-background_1sjct_1{background-color:var(--slot-nav-background-color)}._health-pane_hbx15_1{background:none;margin:0;padding:0;border:0;height:28px;display:flex;justify-content:space-between;align-items:center;row-gap:2px;column-gap:3px;&._vertical_hbx15_14{flex-direction:column;max-width:24px;min-width:24px;&._narrow_hbx15_18{min-width:14px}}._health-box_hbx15_22{height:100%;padding:0;margin:0;display:flex;justify-content:center;align-items:center;max-width:24px;min-width:14px;background:var(--green-5);border-radius:3px;border:1px solid transparent;cursor:pointer;&._stacked_hbx15_36{width:100%}svg{fill:var(--green-11)}&._alerting_hbx15_44{background:var(--red-8);border-color:var(--red-11);svg{fill:var(--red-12)}}&:hover{filter:brightness(1.2)}}}._popover_hbx15_58{max-width:160px;padding:6px;._title_hbx15_62{font-size:12px;color:var(--gray-12)}._status_hbx15_67{font-size:12px;font-weight:600;color:var(--green-10);&._alerting_hbx15_44{color:var(--red-10)}}._content_hbx15_77{font-size:10px;color:var(--gray-9)}}._logo-container_1po46_1{--logo-transition-time: 1.5s;z-index:20;position:fixed;inset:0;justify-content:center;align-items:center;background-color:var(--startup-background-color);background-image:url("data:image/svg+xml,%3csvg%20width='50'%20height='50'%20viewBox='0%200%2050%2050'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0%2024.9971C13.4992%2024.8907%2024.4505%2014.0877%2024.791%200.645508L24.7988%200C24.7988%2013.7398%2035.8824%2024.8887%2049.5967%2024.9971C36.0977%2025.1037%2025.1471%2035.9075%2024.8066%2049.3496L24.7988%2049.9951C24.7988%2036.2551%2013.7145%2025.1052%200%2024.9971Z'%20fill='%2303030C'/%3e%3c/svg%3e"),radial-gradient(160.38% 98.82% at 50% 50%,#1ce7c229,#1ce7c203 41.16%,#1ce7c200);background-position:center;background-repeat:repeat;transition:opacity var(--logo-transition-time) linear;img{height:76px}&._hidden_1po46_30{opacity:0;pointer-events:none;user-select:none}}._secondary-color_2x9jp_1{color:var(--boot-progress-snapshot-units-color)}._ellipsis_2x9jp_5{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._card_2x9jp_11{min-height:150px;padding:10px;border:1px solid rgba(255,255,255,.1);background:#ea67670d;color:var(--boot-progress-primary-text-color)}._sparkline-card_2x9jp_19{display:flex;flex-direction:column;justify-content:space-between;flex-shrink:0;._snapshot-tile-title_2x9jp_25{color:var(--boot-progress-primary-text-color);font-size:18px;font-weight:400}._snapshot-tile-busy_2x9jp_31{font-size:18px;font-weight:400}._sparkline-container_2x9jp_36{position:relative;flex-shrink:0;background-image:linear-gradient(to right,var(--snapshot-area-chart-grid-line-color) 1px,transparent 1px),linear-gradient(to bottom,var(--snapshot-area-chart-grid-line-color) 1px,transparent 1px)}}._bars-card_2x9jp_54{flex-grow:1;display:flex;min-width:250px;flex-direction:column;justify-content:space-between;gap:10px;._card-header_2x9jp_62{font-size:18px;line-height:normal;font-weight:400}._title_2x9jp_68{font-size:28px;font-weight:400;min-width:0}._accounts-rate_2x9jp_74{min-width:165px;text-align:center}._total_2x9jp_79{min-width:170px;text-align:center}._throughput_2x9jp_84{min-width:114px;text-align:right;&._with-prefix_2x9jp_87{min-width:140px;white-space:nowrap;flex-wrap:wrap}}}._reading-card_2x9jp_95{._read-path-container_2x9jp_96{color:var(--app-teal);font-size:16px;svg{flex-shrink:0;width:16px;height:16px;fill:var(--app-teal)}._read-path_2x9jp_96{min-width:0}}}@media (max-width: 876px){._reading-card_2x9jp_95{._total_2x9jp_79{text-align:right}._throughput_2x9jp_84{text-align:left}}}@media (max-width: 1190px){._decompressing-card_2x9jp_124{justify-content:space-between;._decompressing-card-left_2x9jp_127{flex-direction:column;flex-grow:0;align-items:flex-start;._title_2x9jp_68,._total_2x9jp_79{text-align:left}}._decompressing-card-right_2x9jp_137{flex-direction:column;flex-grow:0;text-align:right}}}@media (max-width: 1063px){._inserting-card_2x9jp_146{._throughput_2x9jp_84{text-align:left}}}@media (max-width: 936px){._inserting-card_2x9jp_146{._total_2x9jp_79{text-align:left}._throughput_2x9jp_84,._accounts-rate_2x9jp_74{text-align:right}}}@media (max-width: 846px){._reading-card_2x9jp_95,._decompressing-card_2x9jp_124,._inserting-card_2x9jp_146{._card-header_2x9jp_62,._decompressing-card-left_2x9jp_127,._decompressing-card-right_2x9jp_137{flex-direction:column;align-items:flex-start}._total_2x9jp_79,._throughput_2x9jp_84,._accounts-rate_2x9jp_74{text-align:left}}}@media (max-width: 560px){._sparkline-card_2x9jp_19{width:100%}}._busy_1fw9w_1{color:#c8cacd;font-size:10px;min-width:27px;text-align:end;line-height:10px}._range-label_14i5c_1{position:absolute;right:2px;font-size:10px;font-weight:400;color:var(--tile-sparkline-range-text-color)}._top_14i5c_9{top:0}._bottom_14i5c_13{bottom:0}._g-transform_14i5c_17{will-change:transform}._bars_1d34t_1{--container-width: 100%;position:relative;width:var(--container-width);height:var(--bar-height, 50px);--step: calc(var(--bar-width) + var(--bar-gap));--used-width: max( 0px, calc( round(down, var(--container-width) + var(--bar-gap), var(--step)) - var(--bar-gap) ) );--threshold-start: max( 0px, calc( round( nearest, var(--pct) * (var(--used-width) + var(--bar-gap)), var(--step) ) - var(--step) ) );--threshold-visible: sign(var(--pct));mask-image:repeating-linear-gradient(to right,black 0 var(--bar-width),transparent var(--bar-width) var(--step));mask-size:var(--used-width) 100%;mask-repeat:no-repeat;background:linear-gradient(to right,var(--boot-progress-gossip-bars-color) 85%,var(--boot-progress-gossip-mid-bar-color) 85% 95%,var(--boot-progress-gossip-high-bar-color) 95%);background-size:var(--used-width) 100%;background-repeat:no-repeat;&:before{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--used-width);clip-path:inset(0 calc(100% - var(--threshold-start) + var(--bar-width)) 0 0);background:linear-gradient(to right,var(--boot-progress-gossip-filled-bar-color) 85%,var(--boot-progress-gossip-mid-filled-bar-color) 85% 95%,var(--boot-progress-gossip-high-filled-bar-color) 95%);background-size:var(--used-width) 100%;background-repeat:no-repeat}&:after{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--used-width);clip-path:inset(0 calc(100% - var(--threshold-start) - var(--bar-width)) 0 var(--threshold-start));opacity:var(--threshold-visible, 0);background:linear-gradient(to right,var(--app-teal) 85%,var(--boot-progress-gossip-mid-threshold-bar-color) 85% 95%,var(--boot-progress-gossip-high-threshold-bar-color) 95%);background-size:var(--used-width) 100%;background-repeat:no-repeat}}._secondary-text_1iskf_1{color:var(--boot-progress-secondary-text-color)}._phase-header-container_1iskf_5{color:var(--boot-progress-primary-text-color);font-size:28px;font-weight:400;line-height:normal;._phase-name_1iskf_11{font-weight:600}._no-wrap_1iskf_15{white-space:nowrap}._complete-pct-container_1iskf_19{white-space:pre;display:inline-flex;align-items:center}}._progress-bar_drgbz_1{align-items:center;width:100%;>*:first-child{border-top-left-radius:10px;border-bottom-left-radius:10px}>*:last-child{border-top-right-radius:10px;border-bottom-right-radius:10px}._current_drgbz_14{height:40px;border-width:1px;border-style:solid;border-radius:5px;overflow:hidden;._progressing-bar_drgbz_21{width:100%;height:100%;transform-origin:left;transition:transform .2s linear}}div{height:25px}._gossip_drgbz_33{background:var(--progress-bar-incomplete-gossip-color);&._complete_drgbz_35{background:var(--progress-bar-complete-gossip-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-gossip-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-gossip-background)}}}._full-snapshot_drgbz_46{background:var(--progress-bar-incomplete-full-snapshot-color);&._complete_drgbz_35{background:var(--progress-bar-complete-full-snapshot-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-full-snapshot-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-full-snapshot-background)}}}._incr-snapshot_drgbz_59{background:var(--progress-bar-incomplete-inc-snapshot-color);&._complete_drgbz_35{background:var(--progress-bar-complete-inc-snapshot-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-inc-snapshot-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-inc-snapshot-background)}}}._catching-up_drgbz_72{background:var(--progress-bar-incomplete-catchup-color);&._complete_drgbz_35{background:var(--progress-bar-complete-catchup-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-catchup-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-catchup-background)}}}._supermajority_drgbz_85{background:var(--progress-bar-incomplete-supermajority-color);&._complete_drgbz_35{background:var(--progress-bar-complete-supermajority-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-supermajority-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-supermajority-background)}}}}._uplot_1swaw_1{.u-over{touch-action:pan-y}}._card_1yavk_1{flex-grow:1;display:flex;flex-direction:column;padding:14px;gap:14px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#fafafa0d;color:var(--boot-progress-primary-text-color)}._secondary-color_1yavk_13{color:#858585}._bold_1yavk_17{font-weight:700}._ellipsis_1yavk_21{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._labels-row_1yavk_27{flex-wrap:nowrap;font-size:14px;width:calc(var(--turbine-head-x, 0px) + var(--turbine-head-label-width, 0px) / 2);min-width:max(var(--turbine-start-label-width, 0px),var(--turbine-head-label-width, 0px));max-width:100%;._labels-left_1yavk_39{width:calc(var(--turbine-start-x, 0px) + var(--turbine-start-label-width, 0px) / 2);min-width:calc(var(--turbine-start-label-width, 0px) + 4px)}._turbine-label_1yavk_46{white-space:nowrap;flex-shrink:0;border-radius:3px;padding:2px;text-align:center;color:#000;&._start_1yavk_54{background-color:var(--first-turbine-slot-color)}&._head_1yavk_58{background-color:var(--latest-turbine-slot-color)}}}._footer-row_1yavk_64{gap:4px;font-size:14px;color:#ccc;>*{flex-wrap:nowrap;background-color:#2c2c2c;border-radius:3px;padding:4px;text-align:center;&._left-footer_1yavk_76{width:var(--turbine-start-x, 0px);gap:4px;flex-shrink:0}}._footer-title_1yavk_83{flex-grow:1;font-weight:700}._footer-value_1yavk_88{color:#bcbcbc;flex-shrink:10000;direction:rtl}}._bars-stats-container_1yavk_95{font-size:14px;line-height:normal;._bars-stats-row_1yavk_99{>*{min-width:0}._replayed_1yavk_104{color:var(--replayed-slots-text-color);._bold_1yavk_17{color:var(--replayed-slots-bold-text-color)}}._speed_1yavk_111{color:var(--gray-10);._bold_1yavk_17{color:var(--gray-8)}}._to-replay_1yavk_118{color:var(--turbine-slots-text-color);._bold_1yavk_17{color:var(--turbine-slots-bold-text-color)}}}}._slot-group-label_mfowj_1{--group-x: -100000px;--group-name-opacity: 0;opacity:.8;background-color:#080b13;border-radius:2px;border:1px solid #3c4652;border-top-width:0;will-change:transform;transform:translate(var(--group-x));&._you_mfowj_13{border:1px solid #2a7edf}._slot-group-top-container_mfowj_17{width:100%;background-color:#101318;&._skipped_mfowj_21{background-color:var(--red-2)}._slot-group-name-container_mfowj_25{opacity:var(--group-name-opacity);transition:opacity .6s;will-change:opacity;._name_mfowj_30{font-size:10px;line-height:normal;color:#949494;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}}._slot-bars-container_mfowj_41{flex-shrink:0;._slot-bar_mfowj_41{--slot-x: 0;position:absolute;will-change:transform;transform:translate(var(--slot-x));height:100%;border-radius:3px;&:nth-child(1){background-color:var(--blue-7)}&:nth-child(2){background-color:var(--blue-6)}&:nth-child(3){background-color:var(--blue-5)}&:nth-child(4){background-color:var(--blue-4)}&._skipped_mfowj_21{background-color:var(--red-7)}}}}._legend-color-box_mfowj_72{width:10px;height:10px;border-radius:1px}._legend-label_mfowj_78{font-size:10px;color:var(--header-label-text-color)}._card_1vnw5_1{padding:10px;border-radius:8px;border:1px solid var(--container-border-color);background:var(--container-background-color);&._narrow_1vnw5_7{padding:4px}}._header_10qjn_1{color:var(--dropdown-button-text-color)}._full-width_10qjn_5{width:100%}._dark_10qjn_9{background:#171b24;border-color:transparent}._subHeader_10qjn_14{color:var(--tile-sub-header-color);font-size:12px;line-height:12px}._tile-container_10qjn_20{display:flex;flex-wrap:wrap;flex-flow:wrap-reverse;gap:2px;flex-grow:1;._tile_10qjn_20{width:6px;height:6px;border-radius:1px;background:color-mix(in oklab,var(--tile-background-red-color) var(--busy),var(--tile-background-blue-color))}}._stat-container_1hzk8_1{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2px;border-radius:3px;background:#141528;._label_1hzk8_10{color:#dddee0;font-size:10px}._value-container_1hzk8_15{display:flex;align-items:baseline;justify-content:center;gap:1px;min-width:35px;._value_1hzk8_15{color:var(--tile-primary-stat-value-color);font-size:12px;text-align:center}._pct_1hzk8_29{color:var(--tile-primary-stat-value-color);font-size:8px}}}._btn_1lb0v_1{all:unset;cursor:var(--cursor-button);display:flex;gap:var(--space-1);&:hover{filter:brightness(1.4)}}._secondary-color_1cuvx_1{color:var(--gray-11)}._card_1cuvx_5{padding:20px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d}@property --progress-pct{syntax: ""; initial-value: 0%; inherits: false;}._pie-chart-title_1cuvx_18{white-space:nowrap;font-size:28px;color:var(--gray-8)}._pie-chart-container_1cuvx_24{width:100%;min-height:0;aspect-ratio:1/1}@keyframes _shimmer_1cuvx_58{to{transform:rotate(360deg)}}._pie-chart_1cuvx_18{aspect-ratio:1/1;container-type:size;background:conic-gradient(#4d4d4d 0,#8b2e11 80%);border-radius:50%;._threshold-marker_1cuvx_43{transform:rotate(108deg);transform-origin:center top;._marker-line_1cuvx_47{border-left:3px solid #4c4c4c}._marker-icon_1cuvx_51{height:5%;aspect-ratio:1/1}}._shimmer_1cuvx_58{position:absolute;inset:0;border-radius:50%;background:conic-gradient(transparent 145deg,rgba(255,255,255,.05) 158deg,rgba(255,255,255,.18) 180deg,rgba(255,255,255,.05) 202deg,transparent 215deg);will-change:transform;animation:_shimmer_1cuvx_58 2s linear infinite}._overlay_1cuvx_74{--progress-pct: 0%;transition:--progress-pct .2s linear;position:absolute;inset:0;border-radius:50%;background:conic-gradient(transparent 0 var(--progress-pct),var(--supermajority-pie-chart-unfilled-color) var(--progress-pct) 100%)}._pie-chart-content_1cuvx_86{background:var(--boot-progress-supermajority-background-color);border-radius:50%;font-size:4.5cqi;color:var(--supermajority-pie-chart-text-color);._lg_1cuvx_93{font-size:9cqi}._eighty_1cuvx_97{color:var(--progress-bar-in-progress-supermajority-border)}}}._details-box_1cuvx_103{&,._copyButton_1cuvx_105{text-align:start;font-size:12px;color:var(--gray-9)}._label_1cuvx_111{font-size:10px;color:var(--gray-7)}._snapshot-source_1cuvx_116{color:var(--blue-7);font-size:12px;word-break:break-all}}._container_1vhtf_1{max-width:100%;flex-grow:1;&._horizontal_1vhtf_4{flex-basis:70%;min-height:188px;min-width:475px}&._vertical_1vhtf_9{flex-shrink:0;height:516px}}._table-card_1vhtf_15{width:100%;display:flex;flex-direction:column;overflow:hidden;&._narrow_1vhtf_21{padding:10px}}._rows-container_1vhtf_26{overflow-x:hidden;overflow-y:auto;flex-basis:50%;flex-grow:1}._row_1vhtf_26{box-sizing:border-box;height:var(--row-height);border:0px solid var(--supermajority-table-border-color);border-bottom-width:1px;column-gap:20px;padding:0 20px 0 5px;&._narrow_1vhtf_21{column-gap:15px}&._xnarrow_1vhtf_44{column-gap:5px}&._online_1vhtf_48{&,._pubkey-text_1vhtf_51{color:var(--supermajority-table-online-primary-color);font-size:14px}._peer_1vhtf_56{img{opacity:.5}}._status_1vhtf_62{color:var(--green-8)}._version_1vhtf_66 ._client-icon_1vhtf_66:not(._client-icon-placeholder_1vhtf_66){opacity:.5}._suffix_1vhtf_70{color:var(--supermajority-table-online-secondary-color)}}&._offline_1vhtf_75{&,._pubkey-text_1vhtf_51{color:var(--supermajority-table-offline-primary-color);font-size:14px}._status_1vhtf_62{color:var(--red-9)}._suffix_1vhtf_70{color:var(--supermajority-table-offline-secondary-color)}}&._header-row_1vhtf_92{height:auto;border:0}&._toggle-row_1vhtf_97{border-width:1px 0;display:flex;column-gap:8px;cursor:pointer;&:hover{filter:brightness(1.1)}&._offline_1vhtf_75{color:var(--red-9);background:#e5484d0d}&._online_1vhtf_48{color:var(--green-9);background:#30a46c0d}}}._cell_1vhtf_116{height:100%;&._header_1vhtf_92{height:22px;color:var(--table-header-color)}}._peer_1vhtf_56{column-gap:4px;min-width:108px;flex:10 1 170px;&._narrow_1vhtf_21{min-width:80px;flex:10 1 80px}&._xnarrow_1vhtf_44{min-width:70px;flex:10 1 70px}}._status_1vhtf_62{column-gap:8px;min-width:62px;flex:1 1 62px;&._narrow_1vhtf_21,&._xnarrow_1vhtf_44{min-width:12px;flex:0 1 12px}}._pubkey_1vhtf_51{min-width:50px;flex:1 20 370px;&._narrow_1vhtf_21,&._xnarrow_1vhtf_44{flex:10 1 50px}}._version_1vhtf_66{column-gap:8px;min-width:100px;flex:1 1 134px;&._narrow_1vhtf_21{min-width:80px;flex:1 10 80px}&._xnarrow_1vhtf_44{min-width:35px;flex:0 10 35px}}._stake_1vhtf_174{justify-content:flex-end;min-width:72px;flex:1 1 72px;&._narrow_1vhtf_21{min-width:52px;flex:0 1 52px}&._xnarrow_1vhtf_44{display:none}}._stake-pct_1vhtf_187{min-width:62px;flex:1 1 62px;justify-content:flex-end;&._narrow_1vhtf_21,&._xnarrow_1vhtf_44{flex:0 1 52px}}._small-icon_imn4j_1{height:12px}._medium-icon_imn4j_5{height:14px}._large-icon_imn4j_9{height:16px}._xlarge-icon_imn4j_13{height:20px}._digit_1rfzd_1{height:50%;display:flex;align-items:center;&._hidden_1rfzd_5{visibility:hidden}}._selection-text_1rfzd_10{color:transparent!important;background:transparent!important}._container_zkl3s_1{font-size:10px;color:var(--gray-8)}._added_zkl3s_6{color:#436c48}._removed_zkl3s_10{color:#925959}._container_1i8oq_1{position:absolute;top:14px;transform:translate(round(down,-50%,1px));left:50%;display:flex;justify-content:center;z-index:100;._toast_1i8oq_10{border-radius:10px;padding:8px;min-width:180px;display:flex;justify-content:center;align-items:center;z-index:100;&._disconnected_1i8oq_19{background:repeating-linear-gradient(115deg,var(--failure-color),var(--failure-color) 7px,var(--toast-disconnected-color) 7px,var(--toast-disconnected-color) 8px)}&._connecting_1i8oq_29{background:repeating-linear-gradient(115deg,var(--toast-connecting-start-color),var(--toast-connecting-start-color) 7px,var(--toast-connecting-end-color) 7px,var(--toast-connecting-end-color) 8px)}._text_1i8oq_39{color:#000;font-size:18px;font-style:normal;font-weight:600;text-align:center}}}._slots-list_1sk8v_1{scrollbar-width:none;&._hidden_1sk8v_3{visibility:hidden}}._no-slots-text_1sk8v_8{font-size:12px;color:var(--regular-text-color);text-align:center}._slot-group-container_1sejw_1{padding-bottom:5px;background:var(--slot-nav-background-color)}._slot-group_1sejw_1{column-gap:4px;row-gap:3px;border-radius:5px;background:var(--slots-list-slot-background-color);font-size:10px}._left-column_1sejw_14{flex-grow:1;min-width:0;gap:4px}._future_1sejw_20{padding:3px;background:var(--slots-list-future-slot-background-color);color:var(--slots-list-future-slot-color);img{filter:grayscale(100%)}&._you_1sejw_28{border:solid var(--slots-list-not-processed-my-slots-border-color);border-width:2px 1px 1px 1px;padding:2px 3px 3px;background:var(--slots-list-my-slot-background-color)}}._current_1sejw_36{padding:2px;border:1px solid var(--container-border-color);background-color:var(--container-background-color);color:var(--slots-list-slot-color);box-shadow:0 0 16px 0 var(--slots-list-current-slot-box-shadow-color) inset;._slot-name_1sejw_43{font-size:18px}&._skipped_1sejw_47{background:var(--slots-list-skipped-background-color)}&._you_1sejw_28{border-width:3px 1px 1px 1px;border-color:var(--slots-list-my-slots-selected-border-color)}}._current-slot-row_1sejw_57{background-color:var(--slots-list-current-slot-number-background-color);border-radius:5px;padding:3px}._past_1sejw_63{padding:3px;color:var(--slots-list-past-slot-color);&._skipped_1sejw_47{background:var(--slots-list-skipped-background-color)}&._you_1sejw_28{background:var(--slots-list-my-slot-background-color);&._processed_1sejw_74{text-decoration:none;padding:2px;border:solid var(--slots-list-my-slots-border-color);border-width:3px 1px 1px 1px;background:var(--slots-list-my-slot-background-color);color:var(--slots-list-past-slot-color);&:hover,&:active{border-color:var(--slots-list-my-slots-selected-border-color)}&._selected_1sejw_87{background:var(--slots-list-selected-background-color);border-color:var(--slots-list-my-slots-selected-border-color)}&._skipped_1sejw_47,&._selected_1sejw_87._skipped_1sejw_47{background:var(--slots-list-skipped-selected-background-color)}}}}._slot-name_1sejw_43{font-size:12px;font-weight:400}._ellipsis_1sejw_105{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._slot-item-content_1sejw_111{align-items:center;gap:4px;font-size:10px;font-weight:400;color:var(--slots-list-past-slot-number-color)}._placeholder_1sejw_119{height:42px}._slot-statuses_1sejw_123{._slot-status_1sejw_123{width:4px;height:6px;background:var(--slot-status-gray);border:1px solid transparent;border-radius:2px;align-items:flex-end;._slot-status-progress_1sejw_132{width:100%;height:100%;transform-origin:bottom;will-change:transform;animation:_fillProgress_1sejw_1 var(--slot-duration) ease-in-out forwards;background-color:var(--slot-status-blue)}}&._tall_1sejw_142{gap:3px;._slot-status_1sejw_123{flex-grow:1}}&._short_1sejw_149 ._slot-status_1sejw_123{height:3px;border-radius:1px}}@keyframes _fillProgress_1sejw_1{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes _shimmer_1sejw_184{0%{transform:translate(0)}to{transform:translate(200%)}}._scroll-slots-placeholder_1sejw_173{background:var(--slots-list-slot-background-color);._absolute-full-size_1sejw_176{position:absolute;top:0;left:0;width:100%;height:100%}._shimmer_1sejw_184{margin-left:-100%;will-change:transform;background:linear-gradient(to right,#fff0,#fff6f60d,#fff0);animation:_shimmer_1sejw_184 1.5s infinite}}._scroll-placeholder-item_1sejw_197{height:46px;margin-bottom:5px;border-radius:5px;box-shadow:0 0 0 4px var(--slot-nav-background-color)}._progress_51hag_1{background:var(--progress-gutter-background-color);flex-grow:0;div{background:var(--progress-background-color)}}._container_1l1zm_1{display:flex;justify-content:center;._button_1l1zm_5{position:absolute;width:100px;height:18px;padding:2px 4px 2px 6px;align-items:center;border-radius:40px;background:#174e45;box-shadow:0 4px 4px #1c524966;font-size:12px;font-weight:600}}._epoch-progress_niwu5_1{width:100%;background:var(--epoch-slider-progress-color);position:absolute;bottom:0}._clickable_niwu5_8{cursor:pointer}._leader-slot_niwu5_12{width:100%;background:#2a7edf;height:5px;position:absolute;opacity:.5;&:hover{filter:brightness(1.5)}&._before-start_niwu5_21{filter:brightness(.5)}}._skipped-slot_niwu5_26{width:100%;background:#ff5353;height:3px;position:absolute;&:hover{filter:brightness(1.5)}}._skipped-slot-icon_niwu5_36{height:10px;position:absolute;left:11px;&:hover{filter:brightness(1.5)}}._first-processed-slot_niwu5_45{width:100%;background:#bdf3ff;height:3px;position:absolute;right:0;&:hover{filter:brightness(1.5)}}._first-processed-slot-icon_niwu5_56{height:10px;position:absolute;left:11px;&:hover{filter:brightness(1.5)}}._slider-root_niwu5_65{position:relative;flex-grow:1;width:10px;display:flex;flex-direction:column;align-items:center;user-select:none;touch-action:none}._slider-track_niwu5_76{background:#24262b;flex-grow:1;width:100%}._slider-thumb_niwu5_82{display:block;position:relative;height:10px;width:20px;background:#64656580;border:1px solid #a4a4a4;border-radius:2px;cursor:grab;&._collapsed_niwu5_92{border-left-width:0;transition:border-width 0s linear .2s}}._slider-thumb_niwu5_82:hover{background:#6465654d}._slider-thumb_niwu5_82:focus{outline:none;box-shadow:0 0 0 2px var(--gray-a8)}._tooltip_niwu5_106{position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);white-space:nowrap}._hide_niwu5_114{opacity:0;display:none;transition:opacity .5s ease-out 1s,display 0s 1.5s;transition-behavior:allow-discrete}._show_niwu5_123{opacity:1;display:block}._text_nk1yn_1{color:var(--primary-text-color);font-size:18px;font-weight:500}._container_k3j09_1{gap:var(--space-2);display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}._container_k6h1w_1{position:absolute;right:0;top:8px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;z-index:1;._stats-container_k6h1w_12{padding:5px 5px 5px 7px;border-radius:8px;background:#111111e6;._slot-stats-toggle-button_k6h1w_17{margin:-2px -4px;align-self:flex-end;display:flex;padding:0 4px;box-shadow:unset;color:var(--icon-button-color);gap:4px;height:16px}._stats_k6h1w_12{display:grid;grid:auto auto / auto auto;column-gap:10px;row-gap:4px;min-width:203px;font-variant-numeric:tabular-nums;color:var(--sankey-base-label-color);font-size:12px;line-height:normal;._success-rate_k6h1w_40{color:var(--sankey-success-rate-color)}}}._toggle-group_k6h1w_46{display:inline-flex;button{all:unset}._toggle-group-item_k6h1w_53{background:var(--toggle-item-background-color);color:#747575;padding:2px 4px;align-items:center;justify-content:center;margin-left:1px;cursor:pointer}._toggle-group-item_k6h1w_53:first-child{border-top-left-radius:8px;border-bottom-left-radius:8px}._toggle-group-item_k6h1w_53:last-child{border-top-right-radius:8px;border-bottom-right-radius:8px}._toggle-group-item_k6h1w_53:hover{filter:brightness(1.2)}._toggle-group-item_k6h1w_53[data-state=on]{background-color:#6184a4;color:#1f1f1f}}}._slot-performance-container_6u4bp_1{container:slot-performance / inline-size}._sankey-container_6u4bp_5{position:relative;aspect-ratio:4;min-height:450px;overflow:hidden;._slot-sankey-container_6u4bp_11{height:100%}}@container slot-performance (width < 600px){._sankey-container_6u4bp_5{aspect-ratio:1 / 3;overflow-x:clip;._slot-sankey-container_6u4bp_11 svg{transform:rotate(90deg) translateY(-100%) translate(15px);transform-origin:top left}}}._tooltip_102uq_1{padding:4px;border-radius:5px;background:#121212;display:grid;grid:auto-flow / auto auto;column-gap:8px;span{font-size:12px;font-style:normal;font-weight:400;line-height:normal;text-align:right}._active-banks_102uq_17{color:#754d12}._compute-units_102uq_21{color:var(--compute-units-color)}._elapsed-time_102uq_25{color:var(--elapsed-time-color)}._prio-fee_102uq_29{color:var(--fees-color)}._tips_102uq_33{color:var(--tips-color)}._label_102uq_37{font-weight:600;text-align:left}}._chart_102uq_43{flex-grow:1;height:25vw;min-height:250px;max-height:600px;position:relative;margin-left:-8px;margin-right:-8px}._chart_1hpd4_1{.uplot .legend .series:first-child,.uplot .legend .series th:after,.uplot .legend .series td{display:none}.lib-toggles{margin-top:20px;text-align:center}.u-select{background:#ffffff1a}.hidden{color:silver}.u-cursor-pt{border-radius:0}.uplot{margin-bottom:20px;padding:10px;box-shadow:0 0 10px #0000004d}}._focused_1hpd4_32{.u-over{border:1px solid var(--focused-border-color)}}._icon-container_1i4gu_1{display:none}._tooltip_h8khk_1{z-index:1;position:absolute;background:var(--Colors-Gray-1, #111);padding:6px 8px;border-radius:8px;max-height:none!important;max-width:none!important}._tooltip_11ays_1{display:grid;grid:auto-flow / auto auto;column-gap:8px;span{font-size:12px;font-style:normal;font-weight:400;line-height:normal;text-align:right}._active-banks_11ays_14{color:#754d12}._compute-units_11ays_18{color:var(--compute-units-color)}._elapsed-time_11ays_22{color:var(--elapsed-time-color)}._fees_11ays_26{color:var(--fees-color)}._tips_11ays_30{color:var(--tips-color)}._label_11ays_34{font-weight:600;text-align:left}}._button_1b3a4_1{all:unset;background:var(--toggle-item-background-color);color:var(--toggle-item-text-color);font-weight:510;height:23px;padding:0 8px;display:flex;font-size:12px;line-height:16px;align-items:center;justify-content:center;user-select:none;cursor:pointer;&:first-child{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}&:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}&:not([data-disabled]):hover{background:#3e62bd52}&[data-disabled]{cursor:not-allowed;font-weight:400;filter:brightness(.7)}}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}._group-label_1cg9k_1{margin-right:8px;&._min-text-width_1cg9k_4{min-width:50px}}._group_1cg9k_1{display:inline-flex;background-color:var(--mauve-6);border-radius:4px;box-shadow:0 2px 10px var(--black-a7);&._tooltip-open_1cg9k_15{box-shadow:0 0 0 2px var(--slot-details-chart-controls-triggered);._item_1cg9k_18:focus-visible{box-shadow:unset}}}._item_1cg9k_18{all:unset;background-color:var(--toggle-item-background-color);color:var(--toggle-item-text-color);height:22px;padding:0 8px;display:flex;font-size:12px;align-items:center;justify-content:center;margin-left:1px;user-select:none;font-weight:400;cursor:pointer;&:first-child{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}&:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}&:hover{background:#3e62bd52}&[data-state=on]{background-color:#4a4a4a;color:#f0f0f0;font-weight:510}&:focus-visible{position:relative;box-shadow:0 0 0 2px var(--focus-8)}._item-color_1cg9k_65{width:4px;height:16px;margin-right:4px}}._slider_zs58s_1{width:190px;flex-grow:1;position:relative;.rt-SliderRoot{&:before{position:absolute;content:"";height:calc(100% + 4px);top:-2px;left:calc(var(--slot-start-pct) - .5px);width:1px;background:var(--toggle-item-text-color);z-index:1}&:after{position:absolute;content:"0ms";font-size:10px;height:12px;bottom:-16px;left:calc(var(--slot-start-pct) - .5px);transform:translate(-50%);color:#fff;z-index:1}span:has(>.rt-SliderThumb){z-index:2}span:has(>[aria-label=Minimum]):after{content:var(--min-value-label, "");position:absolute;left:50%;transform:translate(-50%,4px);font-size:10px;white-space:nowrap;color:#baa7ff;background:var(--toggle-item-background-color);padding:0 2px;border-radius:4px}span:has(>[aria-label=Maximum]):after{content:var(--max-value-label, "");position:absolute;left:50%;transform:translate(-50%,4px);font-size:10px;white-space:nowrap;color:#baa7ff;background:var(--toggle-item-background-color);padding:0 2px;border-radius:4px}}}._arrival-label_zs58s_68{color:#fff}._slider-label_zs58s_72{color:#fff;font-size:12px}._minimize-button_zs58s_77{position:absolute;top:4px;right:4px}._chart-control-tooltip_zs58s_83{background:var(--blue-11);color:#111113;.rt-TooltipText{font-size:12px;overflow-wrap:break-word}.rt-TooltipArrow{fill:var(--blue-11)}}._label_1q3ew_1{font-size:14px;color:#fff}._dropdownButton_1yasw_1{border-top-right-radius:0;border-bottom-right-radius:0}._input-container_1yasw_6{box-sizing:border-box;--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);height:var(--text-field-height);padding:var(--text-field-border-width);border-radius:0 var(--text-field-border-radius) var(--text-field-border-radius) 0;font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);width:240px;&._sm_1yasw_20{width:180px}button{box-sizing:content-box;--margin-left-override: 0px;--margin-right-override: 0px}@supports selector(:has(*)){&:has(input:focus){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}@supports not selector(:has(*)){&:where(:focus-within){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}[cmdk-input]{flex:1;border-radius:calc(var(--text-field-border-radius) - var(--text-field-border-width));border:none;outline:none;width:100%;padding:0 var(--space-2);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);background:#0000;border-radius:0;caret-color:#6e5ed2;margin:0;&::placeholder{color:var(--gray-a10)}}}._content_1yasw_68{background:var(--gray-4);width:var(--radix-popover-trigger-width);max-height:400px;&:has(>[cmdk-list]>[cmdk-list-sizer]:not(:empty)){padding-bottom:var(--space-1)}[cmdk-list]{height:min(300px,var(--cmdk-list-height));max-height:400px;overflow:auto;overscroll-behavior:contain}[cmdk-group-heading]{user-select:none;font-size:14px;color:var(--slate-11);padding:0 8px;display:flex;align-items:center;padding:var(--space-1) var(--space-3)}[cmdk-empty],[cmdk-loading]{color:#f1f7feb5;padding-bottom:0!important}[cmdk-item],[cmdk-empty],[cmdk-loading]{content-visibility:auto;cursor:pointer;font-size:var(--font-size-2);text-wrap:nowrap;display:flex;align-items:center;gap:12px;padding:var(--space-1) var(--space-3);border-radius:4px;user-select:none;position:relative;&[data-selected=true]{background:var(--teal-5)}&[data-disabled=true]{color:var(--gray-8);cursor:not-allowed}&:active{background:var(--gray-4)}+[cmdk-item]{margin-top:4px}}}._tooltip-open_1yasw_135{outline-offset:-1px;outline:2px solid var(--slot-details-chart-controls-triggered)!important}._text_1k6sv_1{span{color:var(--gray-12);font-size:var(--font-size-2);text-wrap:nowrap;&._faded_1k6sv_7{color:var(--faded-text)}&._ellipsis_1k6sv_11{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}}._container_14qh6_1{position:absolute;z-index:3;right:5px;top:5px;display:flex;align-items:center;gap:8px;._label_14qh6_10{user-select:none;color:#60646c;font-size:12px}}#txn-bars-tooltip{z-index:3;position:absolute;background:var(--Colors-Gray-1, #111);border-radius:8px;max-height:none!important;max-width:none!important;margin:6px 8px;._state_1bdpv_11{font-weight:700;color:var(--Colors-Neutral-Neutral-10, #777b84)}span{font-size:12px;font-style:normal;font-weight:400;line-height:normal;color:var(--color-override, #777b84)}._cu-bars_1bdpv_24{flex:1;width:0;padding:4px 0}._duration-container_1bdpv_30{flex:1;background:#363a3f80;padding:4px 0;margin:4px 0;width:0}._value-text_1bdpv_38{overflow-wrap:anywhere}._unit_1bdpv_42{font-family:Roboto Mono,monospace;margin-left:2px;flex-shrink:0;white-space:nowrap}}._separator_1pgc5_1{background:var(--row-separator-background-color)}._search-grid_gudx6_1{align-content:center}._search-label_gudx6_5{font-size:16px;font-weight:500;color:var(--slot-details-search-label-color)}._search-field_gudx6_11{width:100%}._error-text_gudx6_15{color:var(--failure-color)}._quick-search-card_gudx6_19{border-radius:8px;border:1px solid var(--container-border-color);background:var(--container-background-color);color:var(--slot-details-quick-search-text-color)}._quick-search-header_gudx6_26{color:var(--quick-search-color);font-size:18px;svg{width:32px;height:32px;fill:var(--quick-search-color)}}._quick-search-slot_gudx6_37{font-size:12px;&._clickable_gudx6_40{cursor:pointer;color:var(--slot-details-clickable-slot-color)}&:not(._clickable_gudx6_40){cursor:not-allowed;pointer-events:none}}._quick-search-metric_gudx6_51{font-size:12px}._slot-item-group_p1cnp_1{gap:4px;padding:2px;border-radius:5px;border:1px solid var(--slot-details-my-slots-not-selected-color);border-top-width:3px;&._disabled_p1cnp_8{border:1px solid var(--slot-details-disabled-slot-border-color);border-top-width:3px}&._is-selected_p1cnp_13{border:1px solid var(--slots-list-my-slots-selected-border-color);border-top-width:3px}}._slot-item_p1cnp_1{text-decoration:none;display:flex;justify-content:center;align-items:center;padding:3px 10px;gap:10px;font-size:12px;font-weight:400;border-radius:3px;box-sizing:border-box;width:var(--item-width);background:var(--slot-details-background-color);color:var(--slot-details-color);&._selected-slot_p1cnp_35{font-weight:600;background:var(--slot-details-selected-background-color);color:var(--slot-details-selected-color)}&._skipped-slot_p1cnp_41{background:var(--slot-details-skipped-background-color)}&._skipped-slot_p1cnp_41._selected-slot_p1cnp_35{background:var(--slot-details-skipped-selected-background-color)}}._fade_p1cnp_50{position:absolute;top:0;bottom:0;width:clamp(32px,8vw,96px);pointer-events:none;&._fade-left_p1cnp_57{left:0;background:linear-gradient(to left,transparent 0%,black 100%)}&._fade-right_p1cnp_62{right:0;background:linear-gradient(to right,transparent 0%,black 100%)}}._small-icon_1vpxu_1{width:14px;height:14px}._large-icon_1vpxu_6{width:15px;height:15px}._header_1s5d9_1{font-size:14px;font-weight:600;color:var(--slot-details-stats-tertiary)}._subheader_1s5d9_7{font-size:12px;color:var(--slot-details-stats-tertiary)}._label_1s5d9_12{font-size:10px;color:var(--slot-details-stats-secondary);text-wrap:nowrap}._value_1s5d9_18{font-size:10px;color:var(--slot-details-stats-primary);text-wrap:nowrap;--popover-trigger-color: var(--slot-details-stats-secondary);--popover-trigger-hover-color: var(--slot-details-stats-primary)}._table-header_1s5d9_26{font-size:10px;color:var(--slot-details-stats-primary);text-wrap:nowrap}._table-row-label_1s5d9_32{font-size:10px;color:var(--slot-details-stats-primary);text-wrap:nowrap;&._total_1s5d9_37{color:var(--slot-details-stats-tertiary)}}._table-cell-value_1s5d9_42{font-size:10px;color:var(--slot-details-stats-secondary);text-wrap:nowrap;&._total_1s5d9_37{color:var(--slot-details-stats-primary)}}._grid_1s5d9_52{padding:5px 10px;border-radius:8px;border-bottom:1px solid rgba(250,250,250,.12);background:linear-gradient(0deg,#fafafa0d,#fafafa00);._label_1s5d9_12,._value_1s5d9_18{font-size:14px}._name_1s5d9_67{font-weight:600;color:#ccc;&._lg_1s5d9_70{font-size:18px;contain:inline-size;width:100%}}}._copy-button_1s5d9_79{flex-shrink:1;min-width:0;color:var(--slot-details-stats-primary)}._time-popover_1s5d9_85{flex-shrink:1;min-width:0;max-width:fit-content}._container_1w2fb_1{height:13px;border-radius:4px;._label_1w2fb_5{font-size:10px;color:var(--slot-details-stats-primary);pointer-events:none}}._clickable_1w2fb_12{appearance:none;border:none;padding:0;cursor:pointer;transition:all .3s ease;&:hover{height:15px;transform:translateY(-2px);filter:brightness(1.2);box-shadow:0 4px 8px #0006;outline:.5px solid #e5e7eb;z-index:1}}._container_id19r_1{font-size:12px;padding:0 5px}._label_id19r_6{color:var(--popover-secondary-color)}._value_id19r_10{color:var(--popover-primary-color);text-align:end}._popover-trigger_id19r_15{--button-ghost-padding-x: 2px;--button-ghost-padding-y: 2px;font:inherit;color:inherit}._popover-underline-overlay_id19r_23{position:absolute;inset:0;&:hover ._popover-text-underline_id19r_27{text-decoration-color:var( --popover-trigger-hover-color, var(--primary-text-color) )}}._popover-text-underline_id19r_27{color:transparent!important;text-overflow:clip;transition:text-decoration-color .2s ease;text-decoration:underline dotted var(--popover-trigger-color, var(--secondary-text-color))}._card_ybszl_1{padding:10px;border-radius:8px;border:1px solid #1c1e2b;background:#101123;color:var(--primary-text-color);._name-text_ybszl_8{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}._pubkey-text_ybszl_14{flex-grow:1;min-width:390px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;&._narrow-screen_ybszl_21{flex-grow:0;min-width:inherit}}&._two-away_ybszl_27{border:1px solid #2a2c38;background:#131524;opacity:1.6}&._one-away_ybszl_33{border:1px solid #295060;background:#142432}._time-till_ybszl_38{min-width:250px;&._narrow-screen_ybszl_21{min-width:inherit}}}._my-slots_kxi8u_1{border-color:#2a7edfa6!important;box-shadow:inset 0 4px #2a7edfa6;background:#2a7edf33}._scroll_kxi8u_7{touch-action:none;& *{touch-action:none}span{user-select:text}}._card_zlaiw_1{border-radius:8px;border:1px solid #30323a;background:#151b25;padding:9px 10px 5px;&._late-vote_zlaiw_7{border:1px solid #2f1e7c;background:#120f2e}&._skipped_zlaiw_12{border:1px solid rgba(255,71,71,.38);background:#bd3e3e26}}._grid_1feao_1{display:grid;grid:auto-flow / minMax(70px,auto) minMax(80px,auto) minMax(70px,auto) minMax(70px,auto) minMax(80px,auto) minMax(149px,auto);overflow-x:auto;min-width:80px;touch-action:pan-x;& *{touch-action:pan-x}scrollbar-width:thin;scrollbar-color:#cbcbcb20 #cbcbcb01;width:100%;&._firedancer-grid_1feao_16{grid:auto-flow / minMax(80px,auto) minMax(70px,auto) minMax(80px,auto) minMax(70px,auto) minMax(70px,auto) minMax(80px,auto) minMax(149px,auto)}}._header-text_1feao_24{font-size:12px;color:var(--slot-card-header-text-color);padding:3px 0}._vote-latency-header_1feao_30{color:var(--vote-latency-color)}._votes-header_1feao_33{color:var(--votes-color)}._non-votes-header_1feao_36{color:var(--success-color)}._fees-header_1feao_39{color:var(--fees-color)}._tips-header_1feao_42{color:var(--tips-color)}._compute-units-header_1feao_45{color:var(--compute-units-color);padding:0}._compute-units-pct_1feao_50{width:50px;display:inline-block}._row-text_1feao_55{white-space:nowrap;color:var(--slot-card-section-secondary-color);font-variant-numeric:tabular-nums;border-top:1px solid rgba(250,250,250,.12);padding:1px 0 0;&._active_1feao_62{background:var(--container-background-color);color:var(--slot-card-section-primary-color)}}._slot-text_1feao_68{color:var(--slot-card-section-primary-color);border-right:1px solid rgba(250,250,250,.12);padding-right:5px}.CircularProgressbar{width:100%;vertical-align:middle}.CircularProgressbar .CircularProgressbar-path{stroke:#3e98c7;stroke-linecap:round;-webkit-transition:stroke-dashoffset .5s ease 0s;transition:stroke-dashoffset .5s ease 0s}.CircularProgressbar .CircularProgressbar-trail{stroke:#d6d6d6;stroke-linecap:round}.CircularProgressbar .CircularProgressbar-text{fill:#3e98c7;font-size:20px;dominant-baseline:middle;text-anchor:middle}.CircularProgressbar .CircularProgressbar-background{fill:#d6d6d6}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-background{fill:#3e98c7}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-text{fill:#fff}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-path{stroke:#fff}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-trail{stroke:transparent}._slot-text_j49it_1{user-select:text;a:link{text-decoration:none;color:var(--slot-text-link-color)}a:visited{text-decoration:none;color:var(--slot-text-visited-link-color)}a:active,a:hover{text-decoration:none;color:var(--slot-text-active-link-color)}}._my-slots_476vd_1{color:var(--summary-my-slots-color);border-radius:10px;background:var(--container-background-color);padding:2px 5px}._summary-container_476vd_8{width:40%;min-width:500px}._name_476vd_13{color:var(--summary-primary-text-color);font-size:24px;min-width:30px;line-height:30px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;&._you_476vd_22{color:var(--gray-12)}&._mobile_476vd_26{font-size:inherit;line-height:16px}}._primary-text_476vd_32{font-style:normal;color:var(--summary-primary-text-color);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}._secondary-text_476vd_40{color:var(--summary-secondary-text-color);>span{line-height:normal}}._divider_476vd_47{color:var(--summary-primary-text-color)}._mobile_476vd_26{font-size:12px}._firedancer_476vd_55{color:var(--summary-firedancer-text-color)}._frankendancer_476vd_59{color:var(--summary-frankendancer-text-color)}._agave_476vd_63{color:var(--summary-agave-text-color)}._jito_476vd_67{color:var(--summary-jito-text-color)}._paladin_476vd_71{color:var(--summary-paladin-text-color)}._bam_476vd_75{color:var(--summary-bam-text-color)}._sig_476vd_79{color:var(--summary-sig-text-color)}._rakurai_476vd_83{background:var(--summary-rakurai-text-color);background-clip:text;color:transparent}._harmonic_476vd_89{color:var(--summary-harmonic-text-color)}._major-minor-version-text_476vd_93{flex-shrink:0}._remaining-version-text_476vd_97{min-width:1em;flex-shrink:2}._time-ago_476vd_102{text-align:left;&._right-aligned_476vd_105{text-align:right}}._arrow-dropdown_mvcj2_1{--button-ghost-padding-x: 2px;--button-ghost-padding-y: 2px}._card_wweyx_1{border-radius:8px;border:2px solid rgba(96,215,193,.65);background:#1b2432;box-shadow:0 0 4px #1ce7c291;padding:10px}._preload_1uziq_1{display:none}._container_1hof6_1{display:flex;justify-content:center;._button_1hof6_5{position:absolute;width:115px;height:18px;padding:2px 4px 2px 6px;align-items:center;border-radius:40px;background:#174e45;box-shadow:0 4px 4px #1c524966;font-size:12px;font-weight:600}}._label_14v9a_1{color:#737373}._value_14v9a_5{color:var(--next-slot-value-color);min-width:50px}._container_bc437_1{margin-bottom:16px;margin-left:24px;container:search / inline-size;input:placeholder-shown{text-overflow:ellipsis}}@media (max-width: 700px){._container_bc437_1{margin-bottom:8px;margin-left:0}}._search-box_bc437_18{justify-self:"center";min-width:400px}@container search (width < 600px){._search-box_bc437_18{min-width:100%}}._label_bc437_29{color:"#766A6A"}._search-button_bc437_33{display:flex;height:100%;padding:4px 10px;align-items:center;gap:8px;align-self:stretch;border-radius:8px;&:focus{box-shadow:0 0 0 2px #000}._label_bc437_29{color:#717171}&:hover,&[data-state=on]{._label_bc437_29{color:#a1a1a1}&._disabled_bc437_56{._label_bc437_29{color:#717171}}}}._my-slots_bc437_64{border-radius:8px;border:1px solid #1c4f8f;border-top-width:3px;background:#0d1c36;color:#4497f7;&:hover{border-color:#2a7edf;background:#0d3059;color:#2a7edf}&[data-state=on]{border-color:#2a7edf;background:#073c7b;color:#2a7edf}}._late-vote-slots_bc437_84{border:1px solid #2f1e7c;background:#130f33;color:#896fec;&:hover{border-color:#341f92;background:#1b1450;color:#896fec}&[data-state=on]{border-color:#5530e4;background:#38218f;color:#896fec}}._skipped-slots_bc437_102{border:1px solid #461e1f;background:#1f0a0b;color:var(--failure-color);&:hover{border-color:#752626;background:#321112}&[data-state=on]{border-color:#823737;background:#501717}}._disabled_bc437_56{border-color:var(--search-disabled-border-color);background:var(--search-disabled-background-color);color:var(--search-disabled-text-color);&:hover{border-color:var(--search-disabled-border-color);background:var(--search-disabled-background-color);color:var(--search-disabled-text-color)}}._skip-rate-label_bc437_130{color:var(--skip-rate-label-color);line-height:normal}._skip-rate-value_bc437_135{color:var(--failure-color);line-height:normal}._header-text_n52ov_1{color:var(--primary-text-color);font-size:18px}._storage-stats-container_n52ov_6{contain:size}._root_n52ov_11{min-height:0;thead{th{font-size:12px;font-weight:400;color:var(--gossip-table-header-color)}}tbody{th,td{font-size:14px;color:var(--gossip-table-body-color)}}td,th{white-space:nowrap}td{text-align:right}}._align-right_n52ov_39{text-align:right}._label_1nl74_1{color:#a2a2a2;font-size:14px}._value_1nl74_6{color:#9f9f9f;font-size:28px}._header-text_uidb2_1{color:var(--primary-text-color);font-size:18px}div:has(>._tooltip_uidb2_8){width:1px;height:1px}._tooltip_uidb2_8{width:fit-content;transform:translate(calc(-100% - 5px));padding:4px;background:#131923;border:1px solid #2e343e;border-radius:4px 8px;color:var(--regular-text-color);span{white-space:nowrap}}._header-text_1ozln_1{color:var(--primary-text-color);font-size:18px}._peer-table_1ozln_6{thead{tr{font-size:12px;color:var(--gossip-table-header-color)}}tbody{tr{font-size:14px;color:var(--gossip-table-body-color)}}}._header-cell_1ozln_22{padding:var(--table-cell-padding)}._header-separator_1ozln_26{background:var(--gray-7)}._body-cell_1ozln_30{outline-offset:-2px;&._selected_1ozln_33{outline:1px dashed var(--gray-10);&._copied_1ozln_36{outline:1px dashed var(--gray-11)}}}._header-text_skmjj_1{color:var(--primary-text-color);font-size:18px}._total-text_skmjj_6{color:var(--gray-7);font-size:18px}._throughput-text_skmjj_11{color:var(--gray-10);font-size:18px}._leaf_skmjj_16{border-radius:2px;cursor:pointer;background-color:var(--leaf-color);&:hover{background-color:color-mix(in hsl,var(--leaf-color),#ffffff1a)}._leaf-content_skmjj_24{font-size:10px;._name_skmjj_27{color:#ccc;align-self:stretch;&._large_skmjj_30{font-size:12px}}._stats_skmjj_34{color:var(--table-body-color)}}}._tooltip_skmjj_40{.rt-TooltipArrow{display:none!important}}._axis-text_juf3d_1{color:var(--transaction-axis-text-color);font-size:8px;line-height:normal}._container_muoex_1{font-size:10px;color:var(--regular-text-color)}._label_muoex_6{font-size:12px;line-height:normal;text-wrap:nowrap}._value_muoex_12{line-height:normal;color:var(--value-color, var(--regular-text-color));overflow:hidden;&._small_muoex_17{font-size:18px;font-weight:500}&._medium_muoex_21{font-size:28px;letter-spacing:-1.12px}&._large_muoex_25{font-size:32px;line-height:16px}}._append-value_muoex_31{line-height:normal;color:var(--append-value-color)}._vote-tps_kqvrt_1{min-width:90px}._stat-row_1ia1g_1{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%;>div{flex:1 1 auto;&:first-child{flex-grow:0;min-width:80px}}}._stat-row_11bim_1{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%;>div{flex:1;min-width:180px}}._stat-row_kmlhn_1{display:flex;flex-wrap:wrap;gap:8px;width:100%;>div{flex:1 1 auto;min-width:180px}}._progress_kmlhn_13{min-width:140px}._chart_7b67t_1{padding-top:0;padding-bottom:0;vertical-align:middle}._table_7b67t_7 table tbody ._row_7b67t_7{&._total-row_7b67t_8{border-top:1px solid rgba(250,250,250,.5)}th,td{color:var(--table-body-color)}}._group-header_1lbrc_1{text-align:center;padding:5px}._header_1lbrc_6{th{vertical-align:bottom;&._wrap_1lbrc_9{white-space:normal}}}._table_1lbrc_15{table{table-layout:fixed;._data-row_1lbrc_19{._green_1lbrc_20{color:var(--green-9)}._red_1lbrc_24{color:var(--red-9)}td{.rt-Text{line-height:inherit}color:var(--table-body-color);text-align:left;&[align=right]{text-align:right}vertical-align:middle;&._pct-gradient_1lbrc_43{color:color-mix(in srgb,var(--tile-busy-green-color),var(--tile-busy-red-color) var(--pct))}&._no-padding_1lbrc_51{padding-top:0;padding-bottom:0}._increment-text_1lbrc_56{min-width:5ch;display:inline-block;font-variant-numeric:tabular-nums;&._low-increment_1lbrc_61{color:var(--low-increment-text-color)}&._mid-increment_1lbrc_64{color:var(--mid-increment-text-color)}&._high-increment_1lbrc_67{color:var(--high-increment-text-color)}}}}tr{border:solid rgba(250,250,250,.12);border-width:1px 0px}._light-border-bottom_1lbrc_79{border-bottom:1px solid rgba(250,250,250,.36)}._right-border_1lbrc_83{border-right:1px solid rgba(250,250,250,.36)}td._right-border_1lbrc_83{padding-right:10px}td,th{box-shadow:none}}}._table-description-dialog_1shm8_1{overflow-y:auto;._table_1shm8_1{padding:var(--space-3) 8px;--table-cell-padding: 5px;._th_1shm8_8{font-size:12px;font-weight:400;color:var(--table-header-color)}._tr_1shm8_14{font-size:14px;color:var(--table-body-color);&:last-child td{box-shadow:none}._name_1shm8_22{white-space:nowrap}}}._close-button_1shm8_28{cursor:pointer}}._slot-label-card_1pson_1{border-radius:3px;padding:2px 3px;background-color:var(--gray-3);color:var(--slot-timeline-text-color);.rt-Text{font-size:12px;line-height:normal}}._slot-label-name_1pson_13{flex-shrink:100000000}._slot-label-dt_1pson_16{display:flex;white-space:pre;._dt-sign_1pson_19{line-height:14px}}._slot-bar_1pson_24{border-radius:2px;background:var(--bar-color, #3f434b);pointer-events:none;&._dim_1pson_29{background:#2d3138}}._slot-bar-track_1pson_34{height:90px}._next-leader-container_1pson_38{container-type:inline-size;container-name:next-leader-container}@container next-leader-container (width < 300px){._next-leader-timer-label_1pson_44{display:none}}@container next-leader-container (width < 130px){._next-leader-timer-container_1pson_50{display:none}}._stat-row_1xsdi_1{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%;>div{flex:1 1 auto;min-width:100px;&._storage-stat-container_1xsdi_10{min-width:160px}}}._trailing_10pox_1{color:var(--gray-9)}._cards_hn4o1_1{grid-template-columns:minmax(300px,1fr)}._txns-card_hn4o1_5{grid-column:1 / -1}@media (min-width: 900px){._cards_hn4o1_1{grid-template-columns:1fr 1fr}._txns-card_hn4o1_5{grid-column:1 / -1}._frankendancer_hn4o1_18{._txns-card_hn4o1_5{grid-column:2}}}@media (min-width: 1512px){._cards_hn4o1_1{grid-template-columns:1fr 1fr 1fr}._txns-card_hn4o1_5{grid-column:span 2}._frankendancer_hn4o1_18{._txns-card_hn4o1_5{grid-column:span 3}}}@media (min-width: 1850px){._cards_hn4o1_1{grid-template-columns:1fr 1.5fr 1.7fr 2fr;&._frankendancer_hn4o1_18{grid-template-columns:1fr 1fr 1fr}}._txns-card_hn4o1_5{grid-column:1 / -1}}body{margin:0;min-width:320px;min-height:100vh} diff --git a/src/disco/gui/dist_dev/assets/inter-tight-latin-400-normal-BLrFJfvD.woff b/src/discoh/guih/dist/assets/inter-tight-latin-400-normal-BLrFJfvD.woff similarity index 100% rename from src/disco/gui/dist_dev/assets/inter-tight-latin-400-normal-BLrFJfvD.woff rename to src/discoh/guih/dist/assets/inter-tight-latin-400-normal-BLrFJfvD.woff diff --git a/src/disco/gui/dist_dev/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2 b/src/discoh/guih/dist/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2 similarity index 100% rename from src/disco/gui/dist_dev/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2 rename to src/discoh/guih/dist/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2 diff --git a/src/disco/gui/dist_dev/assets/privateYou-DnAsYVZD.svg b/src/discoh/guih/dist/assets/privateYou-DnAsYVZD.svg similarity index 100% rename from src/disco/gui/dist_dev/assets/privateYou-DnAsYVZD.svg rename to src/discoh/guih/dist/assets/privateYou-DnAsYVZD.svg diff --git a/src/disco/gui/dist_dev/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff b/src/discoh/guih/dist/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff similarity index 100% rename from src/disco/gui/dist_dev/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff rename to src/discoh/guih/dist/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff diff --git a/src/disco/gui/dist_dev/assets/roboto-mono-latin-400-normal-GekRknry.woff2 b/src/discoh/guih/dist/assets/roboto-mono-latin-400-normal-GekRknry.woff2 similarity index 100% rename from src/disco/gui/dist_dev/assets/roboto-mono-latin-400-normal-GekRknry.woff2 rename to src/discoh/guih/dist/assets/roboto-mono-latin-400-normal-GekRknry.woff2 diff --git a/src/disco/gui/dist_stable/assets/wsWorker-DTUp_HyV.js b/src/discoh/guih/dist/assets/wsWorker-CTAVpIxr.js similarity index 97% rename from src/disco/gui/dist_stable/assets/wsWorker-DTUp_HyV.js rename to src/discoh/guih/dist/assets/wsWorker-CTAVpIxr.js index 297be15fe26..42f15bdc3eb 100644 --- a/src/disco/gui/dist_stable/assets/wsWorker-DTUp_HyV.js +++ b/src/discoh/guih/dist/assets/wsWorker-CTAVpIxr.js @@ -35,4 +35,4 @@ `)}j.write("payload.value = newResult;"),j.write("return payload;");const pA=j.compile();return(MA,xA)=>pA($,MA,xA)};let a;const h=Hn,w=!Vo.jitless,v=w&&$I.value,F=i.catchall;let x;r._zod.parse=($,j)=>{x??(x=E.value);const P=$.value;return h(P)?w&&v&&j?.async===!1&&j.jitless!==!0?(a||(a=g(i.shape)),$=a($,j),F?rB([],P,$,j,x,r):$):u($,j):($.issues.push({expected:"object",code:"invalid_type",input:P,inst:r}),$)}});function oB(r,i,u,E){for(const a of r)if(a.issues.length===0)return i.value=a.value,i;const g=r.filter(a=>!nn(a));return g.length===1?(i.value=g[0].value,g[0]):(i.issues.push({code:"invalid_union",input:i.value,inst:u,errors:r.map(a=>a.issues.map(h=>Gt(h,E,it())))}),i)}const Us=H("$ZodUnion",(r,i)=>{HA.init(r,i),te(r._zod,"optin",()=>i.options.some(g=>g._zod.optin==="optional")?"optional":void 0),te(r._zod,"optout",()=>i.options.some(g=>g._zod.optout==="optional")?"optional":void 0),te(r._zod,"values",()=>{if(i.options.every(g=>g._zod.values))return new Set(i.options.flatMap(g=>Array.from(g._zod.values)))}),te(r._zod,"pattern",()=>{if(i.options.every(g=>g._zod.pattern)){const g=i.options.map(a=>a._zod.pattern);return new RegExp(`^(${g.map(a=>ea(a.source)).join("|")})$`)}});const u=i.options.length===1,E=i.options[0]._zod.run;r._zod.parse=(g,a)=>{if(u)return E(g,a);let h=!1;const w=[];for(const k of i.options){const v=k._zod.run({value:g.value,issues:[]},a);if(v instanceof Promise)w.push(v),h=!0;else{if(v.issues.length===0)return v;w.push(v)}}return h?Promise.all(w).then(k=>oB(k,g,r,a)):oB(w,g,r,a)}}),aB=H("$ZodDiscriminatedUnion",(r,i)=>{Us.init(r,i);const u=r._zod.parse;te(r._zod,"propValues",()=>{const g={};for(const a of i.options){const h=a._zod.propValues;if(!h||Object.keys(h).length===0)throw new Error(`Invalid discriminated union option at index "${i.options.indexOf(a)}"`);for(const[w,k]of Object.entries(h)){g[w]||(g[w]=new Set);for(const v of k)g[w].add(v)}}return g});const E=Pi(()=>{const g=i.options,a=new Map;for(const h of g){const w=h._zod.propValues?.[i.discriminator];if(!w||w.size===0)throw new Error(`Invalid discriminated union option at index "${i.options.indexOf(h)}"`);for(const k of w){if(a.has(k))throw new Error(`Duplicate discriminator value "${String(k)}"`);a.set(k,h)}}return a});r._zod.parse=(g,a)=>{const h=g.value;if(!Hn(h))return g.issues.push({code:"invalid_type",expected:"object",input:h,inst:r}),g;const w=E.value.get(h?.[i.discriminator]);return w?w._zod.run(g,a):i.unionFallback?u(g,a):(g.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:i.discriminator,input:h,path:[i.discriminator],inst:r}),g)}}),sB=H("$ZodIntersection",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{const g=u.value,a=i.left._zod.run({value:g,issues:[]},E),h=i.right._zod.run({value:g,issues:[]},E);return a instanceof Promise||h instanceof Promise?Promise.all([a,h]).then(([k,v])=>gB(u,k,v)):gB(u,a,h)}});function Gs(r,i){if(r===i)return{valid:!0,data:r};if(r instanceof Date&&i instanceof Date&&+r==+i)return{valid:!0,data:r};if(rn(r)&&rn(i)){const u=Object.keys(i),E=Object.keys(r).filter(a=>u.indexOf(a)!==-1),g={...r,...i};for(const a of E){const h=Gs(r[a],i[a]);if(!h.valid)return{valid:!1,mergeErrorPath:[a,...h.mergeErrorPath]};g[a]=h.data}return{valid:!0,data:g}}if(Array.isArray(r)&&Array.isArray(i)){if(r.length!==i.length)return{valid:!1,mergeErrorPath:[]};const u=[];for(let E=0;E{HA.init(r,i);const u=i.items;r._zod.parse=(E,g)=>{const a=E.value;if(!Array.isArray(a))return E.issues.push({input:a,inst:r,expected:"tuple",code:"invalid_type"}),E;E.value=[];const h=[],w=[...u].reverse().findIndex(F=>F._zod.optin!=="optional"),k=w===-1?0:u.length-w;if(!i.rest){const F=a.length>u.length,x=a.length=a.length&&v>=k)continue;const x=F._zod.run({value:a[v],issues:[]},g);x instanceof Promise?h.push(x.then($=>aa($,E,v))):aa(x,E,v)}if(i.rest){const F=a.slice(u.length);for(const x of F){v++;const $=i.rest._zod.run({value:x,issues:[]},g);$ instanceof Promise?h.push($.then(j=>aa(j,E,v))):aa($,E,v)}}return h.length?Promise.all(h).then(()=>E):E}});function aa(r,i,u){r.issues.length&&i.issues.push(...Ut(u,r.issues)),i.value[u]=r.value}const cB=H("$ZodRecord",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{const g=u.value;if(!rn(g))return u.issues.push({expected:"record",code:"invalid_type",input:g,inst:r}),u;const a=[],h=i.keyType._zod.values;if(h){u.value={};const w=new Set;for(const v of h)if(typeof v=="string"||typeof v=="number"||typeof v=="symbol"){w.add(typeof v=="number"?v.toString():v);const F=i.valueType._zod.run({value:g[v],issues:[]},E);F instanceof Promise?a.push(F.then(x=>{x.issues.length&&u.issues.push(...Ut(v,x.issues)),u.value[v]=x.value})):(F.issues.length&&u.issues.push(...Ut(v,F.issues)),u.value[v]=F.value)}let k;for(const v in g)w.has(v)||(k=k??[],k.push(v));k&&k.length>0&&u.issues.push({code:"unrecognized_keys",input:g,inst:r,keys:k})}else{u.value={};for(const w of Reflect.ownKeys(g)){if(w==="__proto__")continue;const k=i.keyType._zod.run({value:w,issues:[]},E);if(k instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(k.issues.length){u.issues.push({code:"invalid_key",origin:"record",issues:k.issues.map(F=>Gt(F,E,it())),input:w,path:[w],inst:r}),u.value[k.value]=k.value;continue}const v=i.valueType._zod.run({value:g[w],issues:[]},E);v instanceof Promise?a.push(v.then(F=>{F.issues.length&&u.issues.push(...Ut(w,F.issues)),u.value[k.value]=F.value})):(v.issues.length&&u.issues.push(...Ut(w,v.issues)),u.value[k.value]=v.value)}}return a.length?Promise.all(a).then(()=>u):u}}),uB=H("$ZodMap",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{const g=u.value;if(!(g instanceof Map))return u.issues.push({expected:"map",code:"invalid_type",input:g,inst:r}),u;const a=[];u.value=new Map;for(const[h,w]of g){const k=i.keyType._zod.run({value:h,issues:[]},E),v=i.valueType._zod.run({value:w,issues:[]},E);k instanceof Promise||v instanceof Promise?a.push(Promise.all([k,v]).then(([F,x])=>{IB(F,x,u,h,g,r,E)})):IB(k,v,u,h,g,r,E)}return a.length?Promise.all(a).then(()=>u):u}});function IB(r,i,u,E,g,a,h){r.issues.length&&(ra.has(typeof E)?u.issues.push(...Ut(E,r.issues)):u.issues.push({code:"invalid_key",origin:"map",input:g,inst:a,issues:r.issues.map(w=>Gt(w,h,it()))})),i.issues.length&&(ra.has(typeof E)?u.issues.push(...Ut(E,i.issues)):u.issues.push({origin:"map",code:"invalid_element",input:g,inst:a,key:E,issues:i.issues.map(w=>Gt(w,h,it()))})),u.value.set(r.value,i.value)}const EB=H("$ZodSet",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{const g=u.value;if(!(g instanceof Set))return u.issues.push({input:g,inst:r,expected:"set",code:"invalid_type"}),u;const a=[];u.value=new Set;for(const h of g){const w=i.valueType._zod.run({value:h,issues:[]},E);w instanceof Promise?a.push(w.then(k=>lB(k,u))):lB(w,u)}return a.length?Promise.all(a).then(()=>u):u}});function lB(r,i){r.issues.length&&i.issues.push(...r.issues),i.value.add(r.value)}const BB=H("$ZodEnum",(r,i)=>{HA.init(r,i);const u=Es(i.entries),E=new Set(u);r._zod.values=E,r._zod.pattern=new RegExp(`^(${u.filter(g=>ra.has(typeof g)).map(g=>typeof g=="string"?Br(g):g.toString()).join("|")})$`),r._zod.parse=(g,a)=>{const h=g.value;return E.has(h)||g.issues.push({code:"invalid_value",values:u,input:h,inst:r}),g}}),CB=H("$ZodLiteral",(r,i)=>{if(HA.init(r,i),i.values.length===0)throw new Error("Cannot create literal schema with no valid values");const u=new Set(i.values);r._zod.values=u,r._zod.pattern=new RegExp(`^(${i.values.map(E=>typeof E=="string"?Br(E):E?Br(E.toString()):String(E)).join("|")})$`),r._zod.parse=(E,g)=>{const a=E.value;return u.has(a)||E.issues.push({code:"invalid_value",values:i.values,input:a,inst:r}),E}}),QB=H("$ZodFile",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{const g=u.value;return g instanceof File||u.issues.push({expected:"file",code:"invalid_type",input:g,inst:r}),u}}),fB=H("$ZodTransform",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{if(E.direction==="backward")throw new qo(r.constructor.name);const g=i.transform(u.value,u);if(E.async)return(g instanceof Promise?g:Promise.resolve(g)).then(h=>(u.value=h,u));if(g instanceof Promise)throw new en;return u.value=g,u}});function dB(r,i){return r.issues.length&&i===void 0?{issues:[],value:void 0}:r}const hB=H("$ZodOptional",(r,i)=>{HA.init(r,i),r._zod.optin="optional",r._zod.optout="optional",te(r._zod,"values",()=>i.innerType._zod.values?new Set([...i.innerType._zod.values,void 0]):void 0),te(r._zod,"pattern",()=>{const u=i.innerType._zod.pattern;return u?new RegExp(`^(${ea(u.source)})?$`):void 0}),r._zod.parse=(u,E)=>{if(i.innerType._zod.optin==="optional"){const g=i.innerType._zod.run(u,E);return g instanceof Promise?g.then(a=>dB(a,u.value)):dB(g,u.value)}return u.value===void 0?u:i.innerType._zod.run(u,E)}}),mB=H("$ZodNullable",(r,i)=>{HA.init(r,i),te(r._zod,"optin",()=>i.innerType._zod.optin),te(r._zod,"optout",()=>i.innerType._zod.optout),te(r._zod,"pattern",()=>{const u=i.innerType._zod.pattern;return u?new RegExp(`^(${ea(u.source)}|null)$`):void 0}),te(r._zod,"values",()=>i.innerType._zod.values?new Set([...i.innerType._zod.values,null]):void 0),r._zod.parse=(u,E)=>u.value===null?u:i.innerType._zod.run(u,E)}),pB=H("$ZodDefault",(r,i)=>{HA.init(r,i),r._zod.optin="optional",te(r._zod,"values",()=>i.innerType._zod.values),r._zod.parse=(u,E)=>{if(E.direction==="backward")return i.innerType._zod.run(u,E);if(u.value===void 0)return u.value=i.defaultValue,u;const g=i.innerType._zod.run(u,E);return g instanceof Promise?g.then(a=>yB(a,i)):yB(g,i)}});function yB(r,i){return r.value===void 0&&(r.value=i.defaultValue),r}const bB=H("$ZodPrefault",(r,i)=>{HA.init(r,i),r._zod.optin="optional",te(r._zod,"values",()=>i.innerType._zod.values),r._zod.parse=(u,E)=>(E.direction==="backward"||u.value===void 0&&(u.value=i.defaultValue),i.innerType._zod.run(u,E))}),DB=H("$ZodNonOptional",(r,i)=>{HA.init(r,i),te(r._zod,"values",()=>{const u=i.innerType._zod.values;return u?new Set([...u].filter(E=>E!==void 0)):void 0}),r._zod.parse=(u,E)=>{const g=i.innerType._zod.run(u,E);return g instanceof Promise?g.then(a=>wB(a,r)):wB(g,r)}});function wB(r,i){return!r.issues.length&&r.value===void 0&&r.issues.push({code:"invalid_type",expected:"nonoptional",input:r.value,inst:i}),r}const kB=H("$ZodSuccess",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{if(E.direction==="backward")throw new qo("ZodSuccess");const g=i.innerType._zod.run(u,E);return g instanceof Promise?g.then(a=>(u.value=a.issues.length===0,u)):(u.value=g.issues.length===0,u)}}),_B=H("$ZodCatch",(r,i)=>{HA.init(r,i),te(r._zod,"optin",()=>i.innerType._zod.optin),te(r._zod,"optout",()=>i.innerType._zod.optout),te(r._zod,"values",()=>i.innerType._zod.values),r._zod.parse=(u,E)=>{if(E.direction==="backward")return i.innerType._zod.run(u,E);const g=i.innerType._zod.run(u,E);return g instanceof Promise?g.then(a=>(u.value=a.value,a.issues.length&&(u.value=i.catchValue({...u,error:{issues:a.issues.map(h=>Gt(h,E,it()))},input:u.value}),u.issues=[]),u)):(u.value=g.value,g.issues.length&&(u.value=i.catchValue({...u,error:{issues:g.issues.map(a=>Gt(a,E,it()))},input:u.value}),u.issues=[]),u)}}),SB=H("$ZodNaN",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>((typeof u.value!="number"||!Number.isNaN(u.value))&&u.issues.push({input:u.value,inst:r,expected:"nan",code:"invalid_type"}),u)}),vB=H("$ZodPipe",(r,i)=>{HA.init(r,i),te(r._zod,"values",()=>i.in._zod.values),te(r._zod,"optin",()=>i.in._zod.optin),te(r._zod,"optout",()=>i.out._zod.optout),te(r._zod,"propValues",()=>i.in._zod.propValues),r._zod.parse=(u,E)=>{if(E.direction==="backward"){const a=i.out._zod.run(u,E);return a instanceof Promise?a.then(h=>sa(h,i.in,E)):sa(a,i.in,E)}const g=i.in._zod.run(u,E);return g instanceof Promise?g.then(a=>sa(a,i.out,E)):sa(g,i.out,E)}});function sa(r,i,u){return r.issues.length?(r.aborted=!0,r):i._zod.run({value:r.value,issues:r.issues},u)}const Ls=H("$ZodCodec",(r,i)=>{HA.init(r,i),te(r._zod,"values",()=>i.in._zod.values),te(r._zod,"optin",()=>i.in._zod.optin),te(r._zod,"optout",()=>i.out._zod.optout),te(r._zod,"propValues",()=>i.in._zod.propValues),r._zod.parse=(u,E)=>{if((E.direction||"forward")==="forward"){const a=i.in._zod.run(u,E);return a instanceof Promise?a.then(h=>ga(h,i,E)):ga(a,i,E)}else{const a=i.out._zod.run(u,E);return a instanceof Promise?a.then(h=>ga(h,i,E)):ga(a,i,E)}}});function ga(r,i,u){if(r.issues.length)return r.aborted=!0,r;if((u.direction||"forward")==="forward"){const g=i.transform(r.value,r);return g instanceof Promise?g.then(a=>ca(r,a,i.out,u)):ca(r,g,i.out,u)}else{const g=i.reverseTransform(r.value,r);return g instanceof Promise?g.then(a=>ca(r,a,i.in,u)):ca(r,g,i.in,u)}}function ca(r,i,u,E){return r.issues.length?(r.aborted=!0,r):u._zod.run({value:i,issues:r.issues},E)}const RB=H("$ZodReadonly",(r,i)=>{HA.init(r,i),te(r._zod,"propValues",()=>i.innerType._zod.propValues),te(r._zod,"values",()=>i.innerType._zod.values),te(r._zod,"optin",()=>i.innerType?._zod?.optin),te(r._zod,"optout",()=>i.innerType?._zod?.optout),r._zod.parse=(u,E)=>{if(E.direction==="backward")return i.innerType._zod.run(u,E);const g=i.innerType._zod.run(u,E);return g instanceof Promise?g.then(TB):TB(g)}});function TB(r){return r.value=Object.freeze(r.value),r}const FB=H("$ZodTemplateLiteral",(r,i)=>{HA.init(r,i);const u=[];for(const E of i.parts)if(typeof E=="object"&&E!==null){if(!E._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...E._zod.traits].shift()}`);const g=E._zod.pattern instanceof RegExp?E._zod.pattern.source:E._zod.pattern;if(!g)throw new Error(`Invalid template literal part: ${E._zod.traits}`);const a=g.startsWith("^")?1:0,h=g.endsWith("$")?g.length-1:g.length;u.push(g.slice(a,h))}else if(E===null||XI.has(typeof E))u.push(Br(`${E}`));else throw new Error(`Invalid template literal part: ${E}`);r._zod.pattern=new RegExp(`^${u.join("")}$`),r._zod.parse=(E,g)=>typeof E.value!="string"?(E.issues.push({input:E.value,inst:r,expected:"template_literal",code:"invalid_type"}),E):(r._zod.pattern.lastIndex=0,r._zod.pattern.test(E.value)||E.issues.push({input:E.value,inst:r,code:"invalid_format",format:i.format??"template_literal",pattern:r._zod.pattern.source}),E)}),MB=H("$ZodFunction",(r,i)=>(HA.init(r,i),r._def=i,r._zod.def=i,r.implement=u=>{if(typeof u!="function")throw new Error("implement() must be called with a function");return function(...E){const g=r._def.input?ds(r._def.input,E):E,a=Reflect.apply(u,this,g);return r._def.output?ds(r._def.output,a):a}},r.implementAsync=u=>{if(typeof u!="function")throw new Error("implementAsync() must be called with a function");return async function(...E){const g=r._def.input?await hs(r._def.input,E):E,a=await Reflect.apply(u,this,g);return r._def.output?await hs(r._def.output,a):a}},r._zod.parse=(u,E)=>typeof u.value!="function"?(u.issues.push({code:"invalid_type",expected:"function",input:u.value,inst:r}),u):(r._def.output&&r._def.output._zod.def.type==="promise"?u.value=r.implementAsync(u.value):u.value=r.implement(u.value),u),r.input=(...u)=>{const E=r.constructor;return Array.isArray(u[0])?new E({type:"function",input:new xs({type:"tuple",items:u[0],rest:u[1]}),output:r._def.output}):new E({type:"function",input:u[0],output:r._def.output})},r.output=u=>{const E=r.constructor;return new E({type:"function",input:r._def.input,output:u})},r)),OB=H("$ZodPromise",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>Promise.resolve(u.value).then(g=>i.innerType._zod.run({value:g,issues:[]},E))}),NB=H("$ZodLazy",(r,i)=>{HA.init(r,i),te(r._zod,"innerType",()=>i.getter()),te(r._zod,"pattern",()=>r._zod.innerType?._zod?.pattern),te(r._zod,"propValues",()=>r._zod.innerType?._zod?.propValues),te(r._zod,"optin",()=>r._zod.innerType?._zod?.optin??void 0),te(r._zod,"optout",()=>r._zod.innerType?._zod?.optout??void 0),r._zod.parse=(u,E)=>r._zod.innerType._zod.run(u,E)}),UB=H("$ZodCustom",(r,i)=>{we.init(r,i),HA.init(r,i),r._zod.parse=(u,E)=>u,r._zod.check=u=>{const E=u.value,g=i.fn(E);if(g instanceof Promise)return g.then(a=>GB(a,u,E,r));GB(g,u,E,r)}});function GB(r,i,u,E){if(!r){const g={code:"custom",input:u,inst:E,path:[...E._zod.def.path??[]],continue:!E._zod.def.abort};E._zod.def.params&&(g.params=E._zod.def.params),i.issues.push($n(g))}}const A4=()=>{const r={string:{unit:"حرف",verb:"أن يحوي"},file:{unit:"بايت",verb:"أن يحوي"},array:{unit:"عنصر",verb:"أن يحوي"},set:{unit:"عنصر",verb:"أن يحوي"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"مدخل",email:"بريد إلكتروني",url:"رابط",emoji:"إيموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاريخ ووقت بمعيار ISO",date:"تاريخ بمعيار ISO",time:"وقت بمعيار ISO",duration:"مدة بمعيار ISO",ipv4:"عنوان IPv4",ipv6:"عنوان IPv6",cidrv4:"مدى عناوين بصيغة IPv4",cidrv6:"مدى عناوين بصيغة IPv6",base64:"نَص بترميز base64-encoded",base64url:"نَص بترميز base64url-encoded",json_string:"نَص على هيئة JSON",e164:"رقم هاتف بمعيار E.164",jwt:"JWT",template_literal:"مدخل"};return g=>{switch(g.code){case"invalid_type":return`مدخلات غير مقبولة: يفترض إدخال ${g.expected}، ولكن تم إدخال ${u(g.input)}`;case"invalid_value":return g.values.length===1?`مدخلات غير مقبولة: يفترض إدخال ${YA(g.values[0])}`:`اختيار غير مقبول: يتوقع انتقاء أحد هذه الخيارات: ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?` أكبر من اللازم: يفترض أن تكون ${g.origin??"القيمة"} ${a} ${g.maximum.toString()} ${h.unit??"عنصر"}`:`أكبر من اللازم: يفترض أن تكون ${g.origin??"القيمة"} ${a} ${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`أصغر من اللازم: يفترض لـ ${g.origin} أن يكون ${a} ${g.minimum.toString()} ${h.unit}`:`أصغر من اللازم: يفترض لـ ${g.origin} أن يكون ${a} ${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`نَص غير مقبول: يجب أن يبدأ بـ "${g.prefix}"`:a.format==="ends_with"?`نَص غير مقبول: يجب أن ينتهي بـ "${a.suffix}"`:a.format==="includes"?`نَص غير مقبول: يجب أن يتضمَّن "${a.includes}"`:a.format==="regex"?`نَص غير مقبول: يجب أن يطابق النمط ${a.pattern}`:`${E[a.format]??g.format} غير مقبول`}case"not_multiple_of":return`رقم غير مقبول: يجب أن يكون من مضاعفات ${g.divisor}`;case"unrecognized_keys":return`معرف${g.keys.length>1?"ات":""} غريب${g.keys.length>1?"ة":""}: ${cA(g.keys,"، ")}`;case"invalid_key":return`معرف غير مقبول في ${g.origin}`;case"invalid_union":return"مدخل غير مقبول";case"invalid_element":return`مدخل غير مقبول في ${g.origin}`;default:return"مدخل غير مقبول"}}};function e4(){return{localeError:A4()}}const t4=()=>{const r={string:{unit:"simvol",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"element",verb:"olmalıdır"},set:{unit:"element",verb:"olmalıdır"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return g=>{switch(g.code){case"invalid_type":return`Yanlış dəyər: gözlənilən ${g.expected}, daxil olan ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Yanlış dəyər: gözlənilən ${YA(g.values[0])}`:`Yanlış seçim: aşağıdakılardan biri olmalıdır: ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Çox böyük: gözlənilən ${g.origin??"dəyər"} ${a}${g.maximum.toString()} ${h.unit??"element"}`:`Çox böyük: gözlənilən ${g.origin??"dəyər"} ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Çox kiçik: gözlənilən ${g.origin} ${a}${g.minimum.toString()} ${h.unit}`:`Çox kiçik: gözlənilən ${g.origin} ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Yanlış mətn: "${a.prefix}" ilə başlamalıdır`:a.format==="ends_with"?`Yanlış mətn: "${a.suffix}" ilə bitməlidir`:a.format==="includes"?`Yanlış mətn: "${a.includes}" daxil olmalıdır`:a.format==="regex"?`Yanlış mətn: ${a.pattern} şablonuna uyğun olmalıdır`:`Yanlış ${E[a.format]??g.format}`}case"not_multiple_of":return`Yanlış ədəd: ${g.divisor} ilə bölünə bilən olmalıdır`;case"unrecognized_keys":return`Tanınmayan açar${g.keys.length>1?"lar":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`${g.origin} daxilində yanlış açar`;case"invalid_union":return"Yanlış dəyər";case"invalid_element":return`${g.origin} daxilində yanlış dəyər`;default:return"Yanlış dəyər"}}};function r4(){return{localeError:t4()}}function xB(r,i,u,E){const g=Math.abs(r),a=g%10,h=g%100;return h>=11&&h<=19?E:a===1?i:a>=2&&a<=4?u:E}const n4=()=>{const r={string:{unit:{one:"сімвал",few:"сімвалы",many:"сімвалаў"},verb:"мець"},array:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},set:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},file:{unit:{one:"байт",few:"байты",many:"байтаў"},verb:"мець"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"лік";case"object":{if(Array.isArray(g))return"масіў";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"увод",email:"email адрас",url:"URL",emoji:"эмодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата і час",date:"ISO дата",time:"ISO час",duration:"ISO працягласць",ipv4:"IPv4 адрас",ipv6:"IPv6 адрас",cidrv4:"IPv4 дыяпазон",cidrv6:"IPv6 дыяпазон",base64:"радок у фармаце base64",base64url:"радок у фармаце base64url",json_string:"JSON радок",e164:"нумар E.164",jwt:"JWT",template_literal:"увод"};return g=>{switch(g.code){case"invalid_type":return`Няправільны ўвод: чакаўся ${g.expected}, атрымана ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Няправільны ўвод: чакалася ${YA(g.values[0])}`:`Няправільны варыянт: чакаўся адзін з ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);if(h){const w=Number(g.maximum),k=xB(w,h.unit.one,h.unit.few,h.unit.many);return`Занадта вялікі: чакалася, што ${g.origin??"значэнне"} павінна ${h.verb} ${a}${g.maximum.toString()} ${k}`}return`Занадта вялікі: чакалася, што ${g.origin??"значэнне"} павінна быць ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);if(h){const w=Number(g.minimum),k=xB(w,h.unit.one,h.unit.few,h.unit.many);return`Занадта малы: чакалася, што ${g.origin} павінна ${h.verb} ${a}${g.minimum.toString()} ${k}`}return`Занадта малы: чакалася, што ${g.origin} павінна быць ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Няправільны радок: павінен пачынацца з "${a.prefix}"`:a.format==="ends_with"?`Няправільны радок: павінен заканчвацца на "${a.suffix}"`:a.format==="includes"?`Няправільны радок: павінен змяшчаць "${a.includes}"`:a.format==="regex"?`Няправільны радок: павінен адпавядаць шаблону ${a.pattern}`:`Няправільны ${E[a.format]??g.format}`}case"not_multiple_of":return`Няправільны лік: павінен быць кратным ${g.divisor}`;case"unrecognized_keys":return`Нераспазнаны ${g.keys.length>1?"ключы":"ключ"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Няправільны ключ у ${g.origin}`;case"invalid_union":return"Няправільны ўвод";case"invalid_element":return`Няправільнае значэнне ў ${g.origin}`;default:return"Няправільны ўвод"}}};function i4(){return{localeError:n4()}}const o4=r=>{const i=typeof r;switch(i){case"number":return Number.isNaN(r)?"NaN":"число";case"object":{if(Array.isArray(r))return"масив";if(r===null)return"null";if(Object.getPrototypeOf(r)!==Object.prototype&&r.constructor)return r.constructor.name}}return i},a4=()=>{const r={string:{unit:"символа",verb:"да съдържа"},file:{unit:"байта",verb:"да съдържа"},array:{unit:"елемента",verb:"да съдържа"},set:{unit:"елемента",verb:"да съдържа"}};function i(E){return r[E]??null}const u={regex:"вход",email:"имейл адрес",url:"URL",emoji:"емоджи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO време",date:"ISO дата",time:"ISO време",duration:"ISO продължителност",ipv4:"IPv4 адрес",ipv6:"IPv6 адрес",cidrv4:"IPv4 диапазон",cidrv6:"IPv6 диапазон",base64:"base64-кодиран низ",base64url:"base64url-кодиран низ",json_string:"JSON низ",e164:"E.164 номер",jwt:"JWT",template_literal:"вход"};return E=>{switch(E.code){case"invalid_type":return`Невалиден вход: очакван ${E.expected}, получен ${o4(E.input)}`;case"invalid_value":return E.values.length===1?`Невалиден вход: очакван ${YA(E.values[0])}`:`Невалидна опция: очаквано едно от ${cA(E.values,"|")}`;case"too_big":{const g=E.inclusive?"<=":"<",a=i(E.origin);return a?`Твърде голямо: очаква се ${E.origin??"стойност"} да съдържа ${g}${E.maximum.toString()} ${a.unit??"елемента"}`:`Твърде голямо: очаква се ${E.origin??"стойност"} да бъде ${g}${E.maximum.toString()}`}case"too_small":{const g=E.inclusive?">=":">",a=i(E.origin);return a?`Твърде малко: очаква се ${E.origin} да съдържа ${g}${E.minimum.toString()} ${a.unit}`:`Твърде малко: очаква се ${E.origin} да бъде ${g}${E.minimum.toString()}`}case"invalid_format":{const g=E;if(g.format==="starts_with")return`Невалиден низ: трябва да започва с "${g.prefix}"`;if(g.format==="ends_with")return`Невалиден низ: трябва да завършва с "${g.suffix}"`;if(g.format==="includes")return`Невалиден низ: трябва да включва "${g.includes}"`;if(g.format==="regex")return`Невалиден низ: трябва да съвпада с ${g.pattern}`;let a="Невалиден";return g.format==="emoji"&&(a="Невалидно"),g.format==="datetime"&&(a="Невалидно"),g.format==="date"&&(a="Невалидна"),g.format==="time"&&(a="Невалидно"),g.format==="duration"&&(a="Невалидна"),`${a} ${u[g.format]??E.format}`}case"not_multiple_of":return`Невалидно число: трябва да бъде кратно на ${E.divisor}`;case"unrecognized_keys":return`Неразпознат${E.keys.length>1?"и":""} ключ${E.keys.length>1?"ове":""}: ${cA(E.keys,", ")}`;case"invalid_key":return`Невалиден ключ в ${E.origin}`;case"invalid_union":return"Невалиден вход";case"invalid_element":return`Невалидна стойност в ${E.origin}`;default:return"Невалиден вход"}}};function s4(){return{localeError:a4()}}const g4=()=>{const r={string:{unit:"caràcters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"entrada",email:"adreça electrònica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adreça IPv4",ipv6:"adreça IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"};return g=>{switch(g.code){case"invalid_type":return`Tipus invàlid: s'esperava ${g.expected}, s'ha rebut ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Valor invàlid: s'esperava ${YA(g.values[0])}`:`Opció invàlida: s'esperava una de ${cA(g.values," o ")}`;case"too_big":{const a=g.inclusive?"com a màxim":"menys de",h=i(g.origin);return h?`Massa gran: s'esperava que ${g.origin??"el valor"} contingués ${a} ${g.maximum.toString()} ${h.unit??"elements"}`:`Massa gran: s'esperava que ${g.origin??"el valor"} fos ${a} ${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?"com a mínim":"més de",h=i(g.origin);return h?`Massa petit: s'esperava que ${g.origin} contingués ${a} ${g.minimum.toString()} ${h.unit}`:`Massa petit: s'esperava que ${g.origin} fos ${a} ${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Format invàlid: ha de començar amb "${a.prefix}"`:a.format==="ends_with"?`Format invàlid: ha d'acabar amb "${a.suffix}"`:a.format==="includes"?`Format invàlid: ha d'incloure "${a.includes}"`:a.format==="regex"?`Format invàlid: ha de coincidir amb el patró ${a.pattern}`:`Format invàlid per a ${E[a.format]??g.format}`}case"not_multiple_of":return`Número invàlid: ha de ser múltiple de ${g.divisor}`;case"unrecognized_keys":return`Clau${g.keys.length>1?"s":""} no reconeguda${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Clau invàlida a ${g.origin}`;case"invalid_union":return"Entrada invàlida";case"invalid_element":return`Element invàlid a ${g.origin}`;default:return"Entrada invàlida"}}};function c4(){return{localeError:g4()}}const u4=()=>{const r={string:{unit:"znaků",verb:"mít"},file:{unit:"bajtů",verb:"mít"},array:{unit:"prvků",verb:"mít"},set:{unit:"prvků",verb:"mít"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"číslo";case"string":return"řetězec";case"boolean":return"boolean";case"bigint":return"bigint";case"function":return"funkce";case"symbol":return"symbol";case"undefined":return"undefined";case"object":{if(Array.isArray(g))return"pole";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"regulární výraz",email:"e-mailová adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a čas ve formátu ISO",date:"datum ve formátu ISO",time:"čas ve formátu ISO",duration:"doba trvání ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"řetězec zakódovaný ve formátu base64",base64url:"řetězec zakódovaný ve formátu base64url",json_string:"řetězec ve formátu JSON",e164:"číslo E.164",jwt:"JWT",template_literal:"vstup"};return g=>{switch(g.code){case"invalid_type":return`Neplatný vstup: očekáváno ${g.expected}, obdrženo ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Neplatný vstup: očekáváno ${YA(g.values[0])}`:`Neplatná možnost: očekávána jedna z hodnot ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Hodnota je příliš velká: ${g.origin??"hodnota"} musí mít ${a}${g.maximum.toString()} ${h.unit??"prvků"}`:`Hodnota je příliš velká: ${g.origin??"hodnota"} musí být ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Hodnota je příliš malá: ${g.origin??"hodnota"} musí mít ${a}${g.minimum.toString()} ${h.unit??"prvků"}`:`Hodnota je příliš malá: ${g.origin??"hodnota"} musí být ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Neplatný řetězec: musí začínat na "${a.prefix}"`:a.format==="ends_with"?`Neplatný řetězec: musí končit na "${a.suffix}"`:a.format==="includes"?`Neplatný řetězec: musí obsahovat "${a.includes}"`:a.format==="regex"?`Neplatný řetězec: musí odpovídat vzoru ${a.pattern}`:`Neplatný formát ${E[a.format]??g.format}`}case"not_multiple_of":return`Neplatné číslo: musí být násobkem ${g.divisor}`;case"unrecognized_keys":return`Neznámé klíče: ${cA(g.keys,", ")}`;case"invalid_key":return`Neplatný klíč v ${g.origin}`;case"invalid_union":return"Neplatný vstup";case"invalid_element":return`Neplatná hodnota v ${g.origin}`;default:return"Neplatný vstup"}}};function I4(){return{localeError:u4()}}const E4=()=>{const r={string:{unit:"tegn",verb:"havde"},file:{unit:"bytes",verb:"havde"},array:{unit:"elementer",verb:"indeholdt"},set:{unit:"elementer",verb:"indeholdt"}},i={string:"streng",number:"tal",boolean:"boolean",array:"liste",object:"objekt",set:"sæt",file:"fil"};function u(h){return r[h]??null}function E(h){return i[h]??h}const g=h=>{const w=typeof h;switch(w){case"number":return Number.isNaN(h)?"NaN":"tal";case"object":return Array.isArray(h)?"liste":h===null?"null":Object.getPrototypeOf(h)!==Object.prototype&&h.constructor?h.constructor.name:"objekt"}return w},a={regex:"input",email:"e-mailadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslæt",date:"ISO-dato",time:"ISO-klokkeslæt",duration:"ISO-varighed",ipv4:"IPv4-område",ipv6:"IPv6-område",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodet streng",base64url:"base64url-kodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return h=>{switch(h.code){case"invalid_type":return`Ugyldigt input: forventede ${E(h.expected)}, fik ${E(g(h.input))}`;case"invalid_value":return h.values.length===1?`Ugyldig værdi: forventede ${YA(h.values[0])}`:`Ugyldigt valg: forventede en af følgende ${cA(h.values,"|")}`;case"too_big":{const w=h.inclusive?"<=":"<",k=u(h.origin),v=E(h.origin);return k?`For stor: forventede ${v??"value"} ${k.verb} ${w} ${h.maximum.toString()} ${k.unit??"elementer"}`:`For stor: forventede ${v??"value"} havde ${w} ${h.maximum.toString()}`}case"too_small":{const w=h.inclusive?">=":">",k=u(h.origin),v=E(h.origin);return k?`For lille: forventede ${v} ${k.verb} ${w} ${h.minimum.toString()} ${k.unit}`:`For lille: forventede ${v} havde ${w} ${h.minimum.toString()}`}case"invalid_format":{const w=h;return w.format==="starts_with"?`Ugyldig streng: skal starte med "${w.prefix}"`:w.format==="ends_with"?`Ugyldig streng: skal ende med "${w.suffix}"`:w.format==="includes"?`Ugyldig streng: skal indeholde "${w.includes}"`:w.format==="regex"?`Ugyldig streng: skal matche mønsteret ${w.pattern}`:`Ugyldig ${a[w.format]??h.format}`}case"not_multiple_of":return`Ugyldigt tal: skal være deleligt med ${h.divisor}`;case"unrecognized_keys":return`${h.keys.length>1?"Ukendte nøgler":"Ukendt nøgle"}: ${cA(h.keys,", ")}`;case"invalid_key":return`Ugyldig nøgle i ${h.origin}`;case"invalid_union":return"Ugyldigt input: matcher ingen af de tilladte typer";case"invalid_element":return`Ugyldig værdi i ${h.origin}`;default:return"Ugyldigt input"}}};function l4(){return{localeError:E4()}}const B4=()=>{const r={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"Zahl";case"object":{if(Array.isArray(g))return"Array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"};return g=>{switch(g.code){case"invalid_type":return`Ungültige Eingabe: erwartet ${g.expected}, erhalten ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Ungültige Eingabe: erwartet ${YA(g.values[0])}`:`Ungültige Option: erwartet eine von ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Zu groß: erwartet, dass ${g.origin??"Wert"} ${a}${g.maximum.toString()} ${h.unit??"Elemente"} hat`:`Zu groß: erwartet, dass ${g.origin??"Wert"} ${a}${g.maximum.toString()} ist`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Zu klein: erwartet, dass ${g.origin} ${a}${g.minimum.toString()} ${h.unit} hat`:`Zu klein: erwartet, dass ${g.origin} ${a}${g.minimum.toString()} ist`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Ungültiger String: muss mit "${a.prefix}" beginnen`:a.format==="ends_with"?`Ungültiger String: muss mit "${a.suffix}" enden`:a.format==="includes"?`Ungültiger String: muss "${a.includes}" enthalten`:a.format==="regex"?`Ungültiger String: muss dem Muster ${a.pattern} entsprechen`:`Ungültig: ${E[a.format]??g.format}`}case"not_multiple_of":return`Ungültige Zahl: muss ein Vielfaches von ${g.divisor} sein`;case"unrecognized_keys":return`${g.keys.length>1?"Unbekannte Schlüssel":"Unbekannter Schlüssel"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Ungültiger Schlüssel in ${g.origin}`;case"invalid_union":return"Ungültige Eingabe";case"invalid_element":return`Ungültiger Wert in ${g.origin}`;default:return"Ungültige Eingabe"}}};function C4(){return{localeError:B4()}}const Q4=r=>{const i=typeof r;switch(i){case"number":return Number.isNaN(r)?"NaN":"number";case"object":{if(Array.isArray(r))return"array";if(r===null)return"null";if(Object.getPrototypeOf(r)!==Object.prototype&&r.constructor)return r.constructor.name}}return i},f4=()=>{const r={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function i(E){return r[E]??null}const u={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return E=>{switch(E.code){case"invalid_type":return`Invalid input: expected ${E.expected}, received ${Q4(E.input)}`;case"invalid_value":return E.values.length===1?`Invalid input: expected ${YA(E.values[0])}`:`Invalid option: expected one of ${cA(E.values,"|")}`;case"too_big":{const g=E.inclusive?"<=":"<",a=i(E.origin);return a?`Too big: expected ${E.origin??"value"} to have ${g}${E.maximum.toString()} ${a.unit??"elements"}`:`Too big: expected ${E.origin??"value"} to be ${g}${E.maximum.toString()}`}case"too_small":{const g=E.inclusive?">=":">",a=i(E.origin);return a?`Too small: expected ${E.origin} to have ${g}${E.minimum.toString()} ${a.unit}`:`Too small: expected ${E.origin} to be ${g}${E.minimum.toString()}`}case"invalid_format":{const g=E;return g.format==="starts_with"?`Invalid string: must start with "${g.prefix}"`:g.format==="ends_with"?`Invalid string: must end with "${g.suffix}"`:g.format==="includes"?`Invalid string: must include "${g.includes}"`:g.format==="regex"?`Invalid string: must match pattern ${g.pattern}`:`Invalid ${u[g.format]??E.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${E.divisor}`;case"unrecognized_keys":return`Unrecognized key${E.keys.length>1?"s":""}: ${cA(E.keys,", ")}`;case"invalid_key":return`Invalid key in ${E.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${E.origin}`;default:return"Invalid input"}}};function LB(){return{localeError:f4()}}const d4=r=>{const i=typeof r;switch(i){case"number":return Number.isNaN(r)?"NaN":"nombro";case"object":{if(Array.isArray(r))return"tabelo";if(r===null)return"senvalora";if(Object.getPrototypeOf(r)!==Object.prototype&&r.constructor)return r.constructor.name}}return i},h4=()=>{const r={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function i(E){return r[E]??null}const u={regex:"enigo",email:"retadreso",url:"URL",emoji:"emoĝio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-daŭro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"};return E=>{switch(E.code){case"invalid_type":return`Nevalida enigo: atendiĝis ${E.expected}, riceviĝis ${d4(E.input)}`;case"invalid_value":return E.values.length===1?`Nevalida enigo: atendiĝis ${YA(E.values[0])}`:`Nevalida opcio: atendiĝis unu el ${cA(E.values,"|")}`;case"too_big":{const g=E.inclusive?"<=":"<",a=i(E.origin);return a?`Tro granda: atendiĝis ke ${E.origin??"valoro"} havu ${g}${E.maximum.toString()} ${a.unit??"elementojn"}`:`Tro granda: atendiĝis ke ${E.origin??"valoro"} havu ${g}${E.maximum.toString()}`}case"too_small":{const g=E.inclusive?">=":">",a=i(E.origin);return a?`Tro malgranda: atendiĝis ke ${E.origin} havu ${g}${E.minimum.toString()} ${a.unit}`:`Tro malgranda: atendiĝis ke ${E.origin} estu ${g}${E.minimum.toString()}`}case"invalid_format":{const g=E;return g.format==="starts_with"?`Nevalida karaktraro: devas komenciĝi per "${g.prefix}"`:g.format==="ends_with"?`Nevalida karaktraro: devas finiĝi per "${g.suffix}"`:g.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${g.includes}"`:g.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${g.pattern}`:`Nevalida ${u[g.format]??E.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${E.divisor}`;case"unrecognized_keys":return`Nekonata${E.keys.length>1?"j":""} ŝlosilo${E.keys.length>1?"j":""}: ${cA(E.keys,", ")}`;case"invalid_key":return`Nevalida ŝlosilo en ${E.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${E.origin}`;default:return"Nevalida enigo"}}};function m4(){return{localeError:h4()}}const p4=()=>{const r={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}},i={string:"texto",number:"número",boolean:"booleano",array:"arreglo",object:"objeto",set:"conjunto",file:"archivo",date:"fecha",bigint:"número grande",symbol:"símbolo",undefined:"indefinido",null:"nulo",function:"función",map:"mapa",record:"registro",tuple:"tupla",enum:"enumeración",union:"unión",literal:"literal",promise:"promesa",void:"vacío",never:"nunca",unknown:"desconocido",any:"cualquiera"};function u(h){return r[h]??null}function E(h){return i[h]??h}const g=h=>{const w=typeof h;switch(w){case"number":return Number.isNaN(h)?"NaN":"number";case"object":return Array.isArray(h)?"array":h===null?"null":Object.getPrototypeOf(h)!==Object.prototype?h.constructor.name:"object"}return w},a={regex:"entrada",email:"dirección de correo electrónico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duración ISO",ipv4:"dirección IPv4",ipv6:"dirección IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"};return h=>{switch(h.code){case"invalid_type":return`Entrada inválida: se esperaba ${E(h.expected)}, recibido ${E(g(h.input))}`;case"invalid_value":return h.values.length===1?`Entrada inválida: se esperaba ${YA(h.values[0])}`:`Opción inválida: se esperaba una de ${cA(h.values,"|")}`;case"too_big":{const w=h.inclusive?"<=":"<",k=u(h.origin),v=E(h.origin);return k?`Demasiado grande: se esperaba que ${v??"valor"} tuviera ${w}${h.maximum.toString()} ${k.unit??"elementos"}`:`Demasiado grande: se esperaba que ${v??"valor"} fuera ${w}${h.maximum.toString()}`}case"too_small":{const w=h.inclusive?">=":">",k=u(h.origin),v=E(h.origin);return k?`Demasiado pequeño: se esperaba que ${v} tuviera ${w}${h.minimum.toString()} ${k.unit}`:`Demasiado pequeño: se esperaba que ${v} fuera ${w}${h.minimum.toString()}`}case"invalid_format":{const w=h;return w.format==="starts_with"?`Cadena inválida: debe comenzar con "${w.prefix}"`:w.format==="ends_with"?`Cadena inválida: debe terminar en "${w.suffix}"`:w.format==="includes"?`Cadena inválida: debe incluir "${w.includes}"`:w.format==="regex"?`Cadena inválida: debe coincidir con el patrón ${w.pattern}`:`Inválido ${a[w.format]??h.format}`}case"not_multiple_of":return`Número inválido: debe ser múltiplo de ${h.divisor}`;case"unrecognized_keys":return`Llave${h.keys.length>1?"s":""} desconocida${h.keys.length>1?"s":""}: ${cA(h.keys,", ")}`;case"invalid_key":return`Llave inválida en ${E(h.origin)}`;case"invalid_union":return"Entrada inválida";case"invalid_element":return`Valor inválido en ${E(h.origin)}`;default:return"Entrada inválida"}}};function y4(){return{localeError:p4()}}const b4=()=>{const r={string:{unit:"کاراکتر",verb:"داشته باشد"},file:{unit:"بایت",verb:"داشته باشد"},array:{unit:"آیتم",verb:"داشته باشد"},set:{unit:"آیتم",verb:"داشته باشد"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"عدد";case"object":{if(Array.isArray(g))return"آرایه";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ورودی",email:"آدرس ایمیل",url:"URL",emoji:"ایموجی",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاریخ و زمان ایزو",date:"تاریخ ایزو",time:"زمان ایزو",duration:"مدت زمان ایزو",ipv4:"IPv4 آدرس",ipv6:"IPv6 آدرس",cidrv4:"IPv4 دامنه",cidrv6:"IPv6 دامنه",base64:"base64-encoded رشته",base64url:"base64url-encoded رشته",json_string:"JSON رشته",e164:"E.164 عدد",jwt:"JWT",template_literal:"ورودی"};return g=>{switch(g.code){case"invalid_type":return`ورودی نامعتبر: می‌بایست ${g.expected} می‌بود، ${u(g.input)} دریافت شد`;case"invalid_value":return g.values.length===1?`ورودی نامعتبر: می‌بایست ${YA(g.values[0])} می‌بود`:`گزینه نامعتبر: می‌بایست یکی از ${cA(g.values,"|")} می‌بود`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`خیلی بزرگ: ${g.origin??"مقدار"} باید ${a}${g.maximum.toString()} ${h.unit??"عنصر"} باشد`:`خیلی بزرگ: ${g.origin??"مقدار"} باید ${a}${g.maximum.toString()} باشد`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`خیلی کوچک: ${g.origin} باید ${a}${g.minimum.toString()} ${h.unit} باشد`:`خیلی کوچک: ${g.origin} باید ${a}${g.minimum.toString()} باشد`}case"invalid_format":{const a=g;return a.format==="starts_with"?`رشته نامعتبر: باید با "${a.prefix}" شروع شود`:a.format==="ends_with"?`رشته نامعتبر: باید با "${a.suffix}" تمام شود`:a.format==="includes"?`رشته نامعتبر: باید شامل "${a.includes}" باشد`:a.format==="regex"?`رشته نامعتبر: باید با الگوی ${a.pattern} مطابقت داشته باشد`:`${E[a.format]??g.format} نامعتبر`}case"not_multiple_of":return`عدد نامعتبر: باید مضرب ${g.divisor} باشد`;case"unrecognized_keys":return`کلید${g.keys.length>1?"های":""} ناشناس: ${cA(g.keys,", ")}`;case"invalid_key":return`کلید ناشناس در ${g.origin}`;case"invalid_union":return"ورودی نامعتبر";case"invalid_element":return`مقدار نامعتبر در ${g.origin}`;default:return"ورودی نامعتبر"}}};function D4(){return{localeError:b4()}}const w4=()=>{const r={string:{unit:"merkkiä",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"päivämäärän"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"säännöllinen lauseke",email:"sähköpostiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-päivämäärä",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"};return g=>{switch(g.code){case"invalid_type":return`Virheellinen tyyppi: odotettiin ${g.expected}, oli ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Virheellinen syöte: täytyy olla ${YA(g.values[0])}`:`Virheellinen valinta: täytyy olla yksi seuraavista: ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Liian suuri: ${h.subject} täytyy olla ${a}${g.maximum.toString()} ${h.unit}`.trim():`Liian suuri: arvon täytyy olla ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Liian pieni: ${h.subject} täytyy olla ${a}${g.minimum.toString()} ${h.unit}`.trim():`Liian pieni: arvon täytyy olla ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Virheellinen syöte: täytyy alkaa "${a.prefix}"`:a.format==="ends_with"?`Virheellinen syöte: täytyy loppua "${a.suffix}"`:a.format==="includes"?`Virheellinen syöte: täytyy sisältää "${a.includes}"`:a.format==="regex"?`Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${a.pattern}`:`Virheellinen ${E[a.format]??g.format}`}case"not_multiple_of":return`Virheellinen luku: täytyy olla luvun ${g.divisor} monikerta`;case"unrecognized_keys":return`${g.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${cA(g.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen syöte"}}};function k4(){return{localeError:w4()}}const _4=()=>{const r={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"nombre";case"object":{if(Array.isArray(g))return"tableau";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"entrée",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne encodée en base64",base64url:"chaîne encodée en base64url",json_string:"chaîne JSON",e164:"numéro E.164",jwt:"JWT",template_literal:"entrée"};return g=>{switch(g.code){case"invalid_type":return`Entrée invalide : ${g.expected} attendu, ${u(g.input)} reçu`;case"invalid_value":return g.values.length===1?`Entrée invalide : ${YA(g.values[0])} attendu`:`Option invalide : une valeur parmi ${cA(g.values,"|")} attendue`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Trop grand : ${g.origin??"valeur"} doit ${h.verb} ${a}${g.maximum.toString()} ${h.unit??"élément(s)"}`:`Trop grand : ${g.origin??"valeur"} doit être ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Trop petit : ${g.origin} doit ${h.verb} ${a}${g.minimum.toString()} ${h.unit}`:`Trop petit : ${g.origin} doit être ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Chaîne invalide : doit commencer par "${a.prefix}"`:a.format==="ends_with"?`Chaîne invalide : doit se terminer par "${a.suffix}"`:a.format==="includes"?`Chaîne invalide : doit inclure "${a.includes}"`:a.format==="regex"?`Chaîne invalide : doit correspondre au modèle ${a.pattern}`:`${E[a.format]??g.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${g.divisor}`;case"unrecognized_keys":return`Clé${g.keys.length>1?"s":""} non reconnue${g.keys.length>1?"s":""} : ${cA(g.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${g.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${g.origin}`;default:return"Entrée invalide"}}};function S4(){return{localeError:_4()}}const v4=()=>{const r={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"entrée",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne encodée en base64",base64url:"chaîne encodée en base64url",json_string:"chaîne JSON",e164:"numéro E.164",jwt:"JWT",template_literal:"entrée"};return g=>{switch(g.code){case"invalid_type":return`Entrée invalide : attendu ${g.expected}, reçu ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Entrée invalide : attendu ${YA(g.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"≤":"<",h=i(g.origin);return h?`Trop grand : attendu que ${g.origin??"la valeur"} ait ${a}${g.maximum.toString()} ${h.unit}`:`Trop grand : attendu que ${g.origin??"la valeur"} soit ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?"≥":">",h=i(g.origin);return h?`Trop petit : attendu que ${g.origin} ait ${a}${g.minimum.toString()} ${h.unit}`:`Trop petit : attendu que ${g.origin} soit ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Chaîne invalide : doit commencer par "${a.prefix}"`:a.format==="ends_with"?`Chaîne invalide : doit se terminer par "${a.suffix}"`:a.format==="includes"?`Chaîne invalide : doit inclure "${a.includes}"`:a.format==="regex"?`Chaîne invalide : doit correspondre au motif ${a.pattern}`:`${E[a.format]??g.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${g.divisor}`;case"unrecognized_keys":return`Clé${g.keys.length>1?"s":""} non reconnue${g.keys.length>1?"s":""} : ${cA(g.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${g.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${g.origin}`;default:return"Entrée invalide"}}};function R4(){return{localeError:v4()}}const T4=()=>{const r={string:{label:"מחרוזת",gender:"f"},number:{label:"מספר",gender:"m"},boolean:{label:"ערך בוליאני",gender:"m"},bigint:{label:"BigInt",gender:"m"},date:{label:"תאריך",gender:"m"},array:{label:"מערך",gender:"m"},object:{label:"אובייקט",gender:"m"},null:{label:"ערך ריק (null)",gender:"m"},undefined:{label:"ערך לא מוגדר (undefined)",gender:"m"},symbol:{label:"סימבול (Symbol)",gender:"m"},function:{label:"פונקציה",gender:"f"},map:{label:"מפה (Map)",gender:"f"},set:{label:"קבוצה (Set)",gender:"f"},file:{label:"קובץ",gender:"m"},promise:{label:"Promise",gender:"m"},NaN:{label:"NaN",gender:"m"},unknown:{label:"ערך לא ידוע",gender:"m"},value:{label:"ערך",gender:"m"}},i={string:{unit:"תווים",shortLabel:"קצר",longLabel:"ארוך"},file:{unit:"בייטים",shortLabel:"קטן",longLabel:"גדול"},array:{unit:"פריטים",shortLabel:"קטן",longLabel:"גדול"},set:{unit:"פריטים",shortLabel:"קטן",longLabel:"גדול"},number:{unit:"",shortLabel:"קטן",longLabel:"גדול"}},u=v=>v?r[v]:void 0,E=v=>{const F=u(v);return F?F.label:v??r.unknown.label},g=v=>`ה${E(v)}`,a=v=>(u(v)?.gender??"m")==="f"?"צריכה להיות":"צריך להיות",h=v=>v?i[v]??null:null,w=v=>{const F=typeof v;switch(F){case"number":return Number.isNaN(v)?"NaN":"number";case"object":return Array.isArray(v)?"array":v===null?"null":Object.getPrototypeOf(v)!==Object.prototype&&v.constructor?v.constructor.name:"object";default:return F}},k={regex:{label:"קלט",gender:"m"},email:{label:"כתובת אימייל",gender:"f"},url:{label:"כתובת רשת",gender:"f"},emoji:{label:"אימוג'י",gender:"m"},uuid:{label:"UUID",gender:"m"},nanoid:{label:"nanoid",gender:"m"},guid:{label:"GUID",gender:"m"},cuid:{label:"cuid",gender:"m"},cuid2:{label:"cuid2",gender:"m"},ulid:{label:"ULID",gender:"m"},xid:{label:"XID",gender:"m"},ksuid:{label:"KSUID",gender:"m"},datetime:{label:"תאריך וזמן ISO",gender:"m"},date:{label:"תאריך ISO",gender:"m"},time:{label:"זמן ISO",gender:"m"},duration:{label:"משך זמן ISO",gender:"m"},ipv4:{label:"כתובת IPv4",gender:"f"},ipv6:{label:"כתובת IPv6",gender:"f"},cidrv4:{label:"טווח IPv4",gender:"m"},cidrv6:{label:"טווח IPv6",gender:"m"},base64:{label:"מחרוזת בבסיס 64",gender:"f"},base64url:{label:"מחרוזת בבסיס 64 לכתובות רשת",gender:"f"},json_string:{label:"מחרוזת JSON",gender:"f"},e164:{label:"מספר E.164",gender:"m"},jwt:{label:"JWT",gender:"m"},ends_with:{label:"קלט",gender:"m"},includes:{label:"קלט",gender:"m"},lowercase:{label:"קלט",gender:"m"},starts_with:{label:"קלט",gender:"m"},uppercase:{label:"קלט",gender:"m"}};return v=>{switch(v.code){case"invalid_type":{const F=v.expected,x=E(F),$=w(v.input),j=r[$]?.label??$;return`קלט לא תקין: צריך להיות ${x}, התקבל ${j}`}case"invalid_value":{if(v.values.length===1)return`ערך לא תקין: הערך חייב להיות ${YA(v.values[0])}`;const F=v.values.map(j=>YA(j));if(v.values.length===2)return`ערך לא תקין: האפשרויות המתאימות הן ${F[0]} או ${F[1]}`;const x=F[F.length-1];return`ערך לא תקין: האפשרויות המתאימות הן ${F.slice(0,-1).join(", ")} או ${x}`}case"too_big":{const F=h(v.origin),x=g(v.origin??"value");if(v.origin==="string")return`${F?.longLabel??"ארוך"} מדי: ${x} צריכה להכיל ${v.maximum.toString()} ${F?.unit??""} ${v.inclusive?"או פחות":"לכל היותר"}`.trim();if(v.origin==="number"){const P=v.inclusive?`קטן או שווה ל-${v.maximum}`:`קטן מ-${v.maximum}`;return`גדול מדי: ${x} צריך להיות ${P}`}if(v.origin==="array"||v.origin==="set"){const P=v.origin==="set"?"צריכה":"צריך",rA=v.inclusive?`${v.maximum} ${F?.unit??""} או פחות`:`פחות מ-${v.maximum} ${F?.unit??""}`;return`גדול מדי: ${x} ${P} להכיל ${rA}`.trim()}const $=v.inclusive?"<=":"<",j=a(v.origin??"value");return F?.unit?`${F.longLabel} מדי: ${x} ${j} ${$}${v.maximum.toString()} ${F.unit}`:`${F?.longLabel??"גדול"} מדי: ${x} ${j} ${$}${v.maximum.toString()}`}case"too_small":{const F=h(v.origin),x=g(v.origin??"value");if(v.origin==="string")return`${F?.shortLabel??"קצר"} מדי: ${x} צריכה להכיל ${v.minimum.toString()} ${F?.unit??""} ${v.inclusive?"או יותר":"לפחות"}`.trim();if(v.origin==="number"){const P=v.inclusive?`גדול או שווה ל-${v.minimum}`:`גדול מ-${v.minimum}`;return`קטן מדי: ${x} צריך להיות ${P}`}if(v.origin==="array"||v.origin==="set"){const P=v.origin==="set"?"צריכה":"צריך";if(v.minimum===1&&v.inclusive){const iA=(v.origin==="set","לפחות פריט אחד");return`קטן מדי: ${x} ${P} להכיל ${iA}`}const rA=v.inclusive?`${v.minimum} ${F?.unit??""} או יותר`:`יותר מ-${v.minimum} ${F?.unit??""}`;return`קטן מדי: ${x} ${P} להכיל ${rA}`.trim()}const $=v.inclusive?">=":">",j=a(v.origin??"value");return F?.unit?`${F.shortLabel} מדי: ${x} ${j} ${$}${v.minimum.toString()} ${F.unit}`:`${F?.shortLabel??"קטן"} מדי: ${x} ${j} ${$}${v.minimum.toString()}`}case"invalid_format":{const F=v;if(F.format==="starts_with")return`המחרוזת חייבת להתחיל ב "${F.prefix}"`;if(F.format==="ends_with")return`המחרוזת חייבת להסתיים ב "${F.suffix}"`;if(F.format==="includes")return`המחרוזת חייבת לכלול "${F.includes}"`;if(F.format==="regex")return`המחרוזת חייבת להתאים לתבנית ${F.pattern}`;const x=k[F.format],$=x?.label??F.format,P=(x?.gender??"m")==="f"?"תקינה":"תקין";return`${$} לא ${P}`}case"not_multiple_of":return`מספר לא תקין: חייב להיות מכפלה של ${v.divisor}`;case"unrecognized_keys":return`מפתח${v.keys.length>1?"ות":""} לא מזוה${v.keys.length>1?"ים":"ה"}: ${cA(v.keys,", ")}`;case"invalid_key":return"שדה לא תקין באובייקט";case"invalid_union":return"קלט לא תקין";case"invalid_element":return`ערך לא תקין ב${g(v.origin??"array")}`;default:return"קלט לא תקין"}}};function F4(){return{localeError:T4()}}const M4=()=>{const r={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"szám";case"object":{if(Array.isArray(g))return"tömb";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"bemenet",email:"email cím",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO időbélyeg",date:"ISO dátum",time:"ISO idő",duration:"ISO időintervallum",ipv4:"IPv4 cím",ipv6:"IPv6 cím",cidrv4:"IPv4 tartomány",cidrv6:"IPv6 tartomány",base64:"base64-kódolt string",base64url:"base64url-kódolt string",json_string:"JSON string",e164:"E.164 szám",jwt:"JWT",template_literal:"bemenet"};return g=>{switch(g.code){case"invalid_type":return`Érvénytelen bemenet: a várt érték ${g.expected}, a kapott érték ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Érvénytelen bemenet: a várt érték ${YA(g.values[0])}`:`Érvénytelen opció: valamelyik érték várt ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Túl nagy: ${g.origin??"érték"} mérete túl nagy ${a}${g.maximum.toString()} ${h.unit??"elem"}`:`Túl nagy: a bemeneti érték ${g.origin??"érték"} túl nagy: ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Túl kicsi: a bemeneti érték ${g.origin} mérete túl kicsi ${a}${g.minimum.toString()} ${h.unit}`:`Túl kicsi: a bemeneti érték ${g.origin} túl kicsi ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Érvénytelen string: "${a.prefix}" értékkel kell kezdődnie`:a.format==="ends_with"?`Érvénytelen string: "${a.suffix}" értékkel kell végződnie`:a.format==="includes"?`Érvénytelen string: "${a.includes}" értéket kell tartalmaznia`:a.format==="regex"?`Érvénytelen string: ${a.pattern} mintának kell megfelelnie`:`Érvénytelen ${E[a.format]??g.format}`}case"not_multiple_of":return`Érvénytelen szám: ${g.divisor} többszörösének kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Érvénytelen kulcs ${g.origin}`;case"invalid_union":return"Érvénytelen bemenet";case"invalid_element":return`Érvénytelen érték: ${g.origin}`;default:return"Érvénytelen bemenet"}}};function O4(){return{localeError:M4()}}const N4=()=>{const r={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"};return g=>{switch(g.code){case"invalid_type":return`Input tidak valid: diharapkan ${g.expected}, diterima ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Input tidak valid: diharapkan ${YA(g.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Terlalu besar: diharapkan ${g.origin??"value"} memiliki ${a}${g.maximum.toString()} ${h.unit??"elemen"}`:`Terlalu besar: diharapkan ${g.origin??"value"} menjadi ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Terlalu kecil: diharapkan ${g.origin} memiliki ${a}${g.minimum.toString()} ${h.unit}`:`Terlalu kecil: diharapkan ${g.origin} menjadi ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`String tidak valid: harus dimulai dengan "${a.prefix}"`:a.format==="ends_with"?`String tidak valid: harus berakhir dengan "${a.suffix}"`:a.format==="includes"?`String tidak valid: harus menyertakan "${a.includes}"`:a.format==="regex"?`String tidak valid: harus sesuai pola ${a.pattern}`:`${E[a.format]??g.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${g.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${g.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${g.origin}`;default:return"Input tidak valid"}}};function U4(){return{localeError:N4()}}const G4=r=>{const i=typeof r;switch(i){case"number":return Number.isNaN(r)?"NaN":"númer";case"object":{if(Array.isArray(r))return"fylki";if(r===null)return"null";if(Object.getPrototypeOf(r)!==Object.prototype&&r.constructor)return r.constructor.name}}return i},x4=()=>{const r={string:{unit:"stafi",verb:"að hafa"},file:{unit:"bæti",verb:"að hafa"},array:{unit:"hluti",verb:"að hafa"},set:{unit:"hluti",verb:"að hafa"}};function i(E){return r[E]??null}const u={regex:"gildi",email:"netfang",url:"vefslóð",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dagsetning og tími",date:"ISO dagsetning",time:"ISO tími",duration:"ISO tímalengd",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded strengur",base64url:"base64url-encoded strengur",json_string:"JSON strengur",e164:"E.164 tölugildi",jwt:"JWT",template_literal:"gildi"};return E=>{switch(E.code){case"invalid_type":return`Rangt gildi: Þú slóst inn ${G4(E.input)} þar sem á að vera ${E.expected}`;case"invalid_value":return E.values.length===1?`Rangt gildi: gert ráð fyrir ${YA(E.values[0])}`:`Ógilt val: má vera eitt af eftirfarandi ${cA(E.values,"|")}`;case"too_big":{const g=E.inclusive?"<=":"<",a=i(E.origin);return a?`Of stórt: gert er ráð fyrir að ${E.origin??"gildi"} hafi ${g}${E.maximum.toString()} ${a.unit??"hluti"}`:`Of stórt: gert er ráð fyrir að ${E.origin??"gildi"} sé ${g}${E.maximum.toString()}`}case"too_small":{const g=E.inclusive?">=":">",a=i(E.origin);return a?`Of lítið: gert er ráð fyrir að ${E.origin} hafi ${g}${E.minimum.toString()} ${a.unit}`:`Of lítið: gert er ráð fyrir að ${E.origin} sé ${g}${E.minimum.toString()}`}case"invalid_format":{const g=E;return g.format==="starts_with"?`Ógildur strengur: verður að byrja á "${g.prefix}"`:g.format==="ends_with"?`Ógildur strengur: verður að enda á "${g.suffix}"`:g.format==="includes"?`Ógildur strengur: verður að innihalda "${g.includes}"`:g.format==="regex"?`Ógildur strengur: verður að fylgja mynstri ${g.pattern}`:`Rangt ${u[g.format]??E.format}`}case"not_multiple_of":return`Röng tala: verður að vera margfeldi af ${E.divisor}`;case"unrecognized_keys":return`Óþekkt ${E.keys.length>1?"ir lyklar":"ur lykill"}: ${cA(E.keys,", ")}`;case"invalid_key":return`Rangur lykill í ${E.origin}`;case"invalid_union":return"Rangt gildi";case"invalid_element":return`Rangt gildi í ${E.origin}`;default:return"Rangt gildi"}}};function L4(){return{localeError:x4()}}const P4=()=>{const r={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"numero";case"object":{if(Array.isArray(g))return"vettore";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"};return g=>{switch(g.code){case"invalid_type":return`Input non valido: atteso ${g.expected}, ricevuto ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Input non valido: atteso ${YA(g.values[0])}`:`Opzione non valida: atteso uno tra ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Troppo grande: ${g.origin??"valore"} deve avere ${a}${g.maximum.toString()} ${h.unit??"elementi"}`:`Troppo grande: ${g.origin??"valore"} deve essere ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Troppo piccolo: ${g.origin} deve avere ${a}${g.minimum.toString()} ${h.unit}`:`Troppo piccolo: ${g.origin} deve essere ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Stringa non valida: deve iniziare con "${a.prefix}"`:a.format==="ends_with"?`Stringa non valida: deve terminare con "${a.suffix}"`:a.format==="includes"?`Stringa non valida: deve includere "${a.includes}"`:a.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${a.pattern}`:`Invalid ${E[a.format]??g.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${g.divisor}`;case"unrecognized_keys":return`Chiav${g.keys.length>1?"i":"e"} non riconosciut${g.keys.length>1?"e":"a"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${g.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${g.origin}`;default:return"Input non valido"}}};function Y4(){return{localeError:P4()}}const j4=()=>{const r={string:{unit:"文字",verb:"である"},file:{unit:"バイト",verb:"である"},array:{unit:"要素",verb:"である"},set:{unit:"要素",verb:"である"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"数値";case"object":{if(Array.isArray(g))return"配列";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"入力値",email:"メールアドレス",url:"URL",emoji:"絵文字",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日時",date:"ISO日付",time:"ISO時刻",duration:"ISO期間",ipv4:"IPv4アドレス",ipv6:"IPv6アドレス",cidrv4:"IPv4範囲",cidrv6:"IPv6範囲",base64:"base64エンコード文字列",base64url:"base64urlエンコード文字列",json_string:"JSON文字列",e164:"E.164番号",jwt:"JWT",template_literal:"入力値"};return g=>{switch(g.code){case"invalid_type":return`無効な入力: ${g.expected}が期待されましたが、${u(g.input)}が入力されました`;case"invalid_value":return g.values.length===1?`無効な入力: ${YA(g.values[0])}が期待されました`:`無効な選択: ${cA(g.values,"、")}のいずれかである必要があります`;case"too_big":{const a=g.inclusive?"以下である":"より小さい",h=i(g.origin);return h?`大きすぎる値: ${g.origin??"値"}は${g.maximum.toString()}${h.unit??"要素"}${a}必要があります`:`大きすぎる値: ${g.origin??"値"}は${g.maximum.toString()}${a}必要があります`}case"too_small":{const a=g.inclusive?"以上である":"より大きい",h=i(g.origin);return h?`小さすぎる値: ${g.origin}は${g.minimum.toString()}${h.unit}${a}必要があります`:`小さすぎる値: ${g.origin}は${g.minimum.toString()}${a}必要があります`}case"invalid_format":{const a=g;return a.format==="starts_with"?`無効な文字列: "${a.prefix}"で始まる必要があります`:a.format==="ends_with"?`無効な文字列: "${a.suffix}"で終わる必要があります`:a.format==="includes"?`無効な文字列: "${a.includes}"を含む必要があります`:a.format==="regex"?`無効な文字列: パターン${a.pattern}に一致する必要があります`:`無効な${E[a.format]??g.format}`}case"not_multiple_of":return`無効な数値: ${g.divisor}の倍数である必要があります`;case"unrecognized_keys":return`認識されていないキー${g.keys.length>1?"群":""}: ${cA(g.keys,"、")}`;case"invalid_key":return`${g.origin}内の無効なキー`;case"invalid_union":return"無効な入力";case"invalid_element":return`${g.origin}内の無効な値`;default:return"無効な入力"}}};function J4(){return{localeError:j4()}}const Z4=r=>{const i=typeof r;switch(i){case"number":return Number.isNaN(r)?"NaN":"რიცხვი";case"object":{if(Array.isArray(r))return"მასივი";if(r===null)return"null";if(Object.getPrototypeOf(r)!==Object.prototype&&r.constructor)return r.constructor.name}}return{string:"სტრინგი",boolean:"ბულეანი",undefined:"undefined",bigint:"bigint",symbol:"symbol",function:"ფუნქცია"}[i]??i},H4=()=>{const r={string:{unit:"სიმბოლო",verb:"უნდა შეიცავდეს"},file:{unit:"ბაიტი",verb:"უნდა შეიცავდეს"},array:{unit:"ელემენტი",verb:"უნდა შეიცავდეს"},set:{unit:"ელემენტი",verb:"უნდა შეიცავდეს"}};function i(E){return r[E]??null}const u={regex:"შეყვანა",email:"ელ-ფოსტის მისამართი",url:"URL",emoji:"ემოჯი",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"თარიღი-დრო",date:"თარიღი",time:"დრო",duration:"ხანგრძლივობა",ipv4:"IPv4 მისამართი",ipv6:"IPv6 მისამართი",cidrv4:"IPv4 დიაპაზონი",cidrv6:"IPv6 დიაპაზონი",base64:"base64-კოდირებული სტრინგი",base64url:"base64url-კოდირებული სტრინგი",json_string:"JSON სტრინგი",e164:"E.164 ნომერი",jwt:"JWT",template_literal:"შეყვანა"};return E=>{switch(E.code){case"invalid_type":return`არასწორი შეყვანა: მოსალოდნელი ${E.expected}, მიღებული ${Z4(E.input)}`;case"invalid_value":return E.values.length===1?`არასწორი შეყვანა: მოსალოდნელი ${YA(E.values[0])}`:`არასწორი ვარიანტი: მოსალოდნელია ერთ-ერთი ${cA(E.values,"|")}-დან`;case"too_big":{const g=E.inclusive?"<=":"<",a=i(E.origin);return a?`ზედმეტად დიდი: მოსალოდნელი ${E.origin??"მნიშვნელობა"} ${a.verb} ${g}${E.maximum.toString()} ${a.unit}`:`ზედმეტად დიდი: მოსალოდნელი ${E.origin??"მნიშვნელობა"} იყოს ${g}${E.maximum.toString()}`}case"too_small":{const g=E.inclusive?">=":">",a=i(E.origin);return a?`ზედმეტად პატარა: მოსალოდნელი ${E.origin} ${a.verb} ${g}${E.minimum.toString()} ${a.unit}`:`ზედმეტად პატარა: მოსალოდნელი ${E.origin} იყოს ${g}${E.minimum.toString()}`}case"invalid_format":{const g=E;return g.format==="starts_with"?`არასწორი სტრინგი: უნდა იწყებოდეს "${g.prefix}"-ით`:g.format==="ends_with"?`არასწორი სტრინგი: უნდა მთავრდებოდეს "${g.suffix}"-ით`:g.format==="includes"?`არასწორი სტრინგი: უნდა შეიცავდეს "${g.includes}"-ს`:g.format==="regex"?`არასწორი სტრინგი: უნდა შეესაბამებოდეს შაბლონს ${g.pattern}`:`არასწორი ${u[g.format]??E.format}`}case"not_multiple_of":return`არასწორი რიცხვი: უნდა იყოს ${E.divisor}-ის ჯერადი`;case"unrecognized_keys":return`უცნობი გასაღებ${E.keys.length>1?"ები":"ი"}: ${cA(E.keys,", ")}`;case"invalid_key":return`არასწორი გასაღები ${E.origin}-ში`;case"invalid_union":return"არასწორი შეყვანა";case"invalid_element":return`არასწორი მნიშვნელობა ${E.origin}-ში`;default:return"არასწორი შეყვანა"}}};function $4(){return{localeError:H4()}}const X4=()=>{const r={string:{unit:"តួអក្សរ",verb:"គួរមាន"},file:{unit:"បៃ",verb:"គួរមាន"},array:{unit:"ធាតុ",verb:"គួរមាន"},set:{unit:"ធាតុ",verb:"គួរមាន"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"មិនមែនជាលេខ (NaN)":"លេខ";case"object":{if(Array.isArray(g))return"អារេ (Array)";if(g===null)return"គ្មានតម្លៃ (null)";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ទិន្នន័យបញ្ចូល",email:"អាសយដ្ឋានអ៊ីមែល",url:"URL",emoji:"សញ្ញាអារម្មណ៍",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"កាលបរិច្ឆេទ និងម៉ោង ISO",date:"កាលបរិច្ឆេទ ISO",time:"ម៉ោង ISO",duration:"រយៈពេល ISO",ipv4:"អាសយដ្ឋាន IPv4",ipv6:"អាសយដ្ឋាន IPv6",cidrv4:"ដែនអាសយដ្ឋាន IPv4",cidrv6:"ដែនអាសយដ្ឋាន IPv6",base64:"ខ្សែអក្សរអ៊ិកូដ base64",base64url:"ខ្សែអក្សរអ៊ិកូដ base64url",json_string:"ខ្សែអក្សរ JSON",e164:"លេខ E.164",jwt:"JWT",template_literal:"ទិន្នន័យបញ្ចូល"};return g=>{switch(g.code){case"invalid_type":return`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${g.expected} ប៉ុន្តែទទួលបាន ${u(g.input)}`;case"invalid_value":return g.values.length===1?`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${YA(g.values[0])}`:`ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`ធំពេក៖ ត្រូវការ ${g.origin??"តម្លៃ"} ${a} ${g.maximum.toString()} ${h.unit??"ធាតុ"}`:`ធំពេក៖ ត្រូវការ ${g.origin??"តម្លៃ"} ${a} ${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`តូចពេក៖ ត្រូវការ ${g.origin} ${a} ${g.minimum.toString()} ${h.unit}`:`តូចពេក៖ ត្រូវការ ${g.origin} ${a} ${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ "${a.prefix}"`:a.format==="ends_with"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ "${a.suffix}"`:a.format==="includes"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន "${a.includes}"`:a.format==="regex"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${a.pattern}`:`មិនត្រឹមត្រូវ៖ ${E[a.format]??g.format}`}case"not_multiple_of":return`លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${g.divisor}`;case"unrecognized_keys":return`រកឃើញសោមិនស្គាល់៖ ${cA(g.keys,", ")}`;case"invalid_key":return`សោមិនត្រឹមត្រូវនៅក្នុង ${g.origin}`;case"invalid_union":return"ទិន្នន័យមិនត្រឹមត្រូវ";case"invalid_element":return`ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${g.origin}`;default:return"ទិន្នន័យមិនត្រឹមត្រូវ"}}};function PB(){return{localeError:X4()}}function z4(){return PB()}const K4=()=>{const r={string:{unit:"문자",verb:"to have"},file:{unit:"바이트",verb:"to have"},array:{unit:"개",verb:"to have"},set:{unit:"개",verb:"to have"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"입력",email:"이메일 주소",url:"URL",emoji:"이모지",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 날짜시간",date:"ISO 날짜",time:"ISO 시간",duration:"ISO 기간",ipv4:"IPv4 주소",ipv6:"IPv6 주소",cidrv4:"IPv4 범위",cidrv6:"IPv6 범위",base64:"base64 인코딩 문자열",base64url:"base64url 인코딩 문자열",json_string:"JSON 문자열",e164:"E.164 번호",jwt:"JWT",template_literal:"입력"};return g=>{switch(g.code){case"invalid_type":return`잘못된 입력: 예상 타입은 ${g.expected}, 받은 타입은 ${u(g.input)}입니다`;case"invalid_value":return g.values.length===1?`잘못된 입력: 값은 ${YA(g.values[0])} 이어야 합니다`:`잘못된 옵션: ${cA(g.values,"또는 ")} 중 하나여야 합니다`;case"too_big":{const a=g.inclusive?"이하":"미만",h=a==="미만"?"이어야 합니다":"여야 합니다",w=i(g.origin),k=w?.unit??"요소";return w?`${g.origin??"값"}이 너무 큽니다: ${g.maximum.toString()}${k} ${a}${h}`:`${g.origin??"값"}이 너무 큽니다: ${g.maximum.toString()} ${a}${h}`}case"too_small":{const a=g.inclusive?"이상":"초과",h=a==="이상"?"이어야 합니다":"여야 합니다",w=i(g.origin),k=w?.unit??"요소";return w?`${g.origin??"값"}이 너무 작습니다: ${g.minimum.toString()}${k} ${a}${h}`:`${g.origin??"값"}이 너무 작습니다: ${g.minimum.toString()} ${a}${h}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`잘못된 문자열: "${a.prefix}"(으)로 시작해야 합니다`:a.format==="ends_with"?`잘못된 문자열: "${a.suffix}"(으)로 끝나야 합니다`:a.format==="includes"?`잘못된 문자열: "${a.includes}"을(를) 포함해야 합니다`:a.format==="regex"?`잘못된 문자열: 정규식 ${a.pattern} 패턴과 일치해야 합니다`:`잘못된 ${E[a.format]??g.format}`}case"not_multiple_of":return`잘못된 숫자: ${g.divisor}의 배수여야 합니다`;case"unrecognized_keys":return`인식할 수 없는 키: ${cA(g.keys,", ")}`;case"invalid_key":return`잘못된 키: ${g.origin}`;case"invalid_union":return"잘못된 입력";case"invalid_element":return`잘못된 값: ${g.origin}`;default:return"잘못된 입력"}}};function W4(){return{localeError:K4()}}const q4=r=>Wi(typeof r,r),Wi=(r,i=void 0)=>{switch(r){case"number":return Number.isNaN(i)?"NaN":"skaičius";case"bigint":return"sveikasis skaičius";case"string":return"eilutė";case"boolean":return"loginė reikšmė";case"undefined":case"void":return"neapibrėžta reikšmė";case"function":return"funkcija";case"symbol":return"simbolis";case"object":return i===void 0?"nežinomas objektas":i===null?"nulinė reikšmė":Array.isArray(i)?"masyvas":Object.getPrototypeOf(i)!==Object.prototype&&i.constructor?i.constructor.name:"objektas";case"null":return"nulinė reikšmė"}return r},qi=r=>r.charAt(0).toUpperCase()+r.slice(1);function YB(r){const i=Math.abs(r),u=i%10,E=i%100;return E>=11&&E<=19||u===0?"many":u===1?"one":"few"}const V4=()=>{const r={string:{unit:{one:"simbolis",few:"simboliai",many:"simbolių"},verb:{smaller:{inclusive:"turi būti ne ilgesnė kaip",notInclusive:"turi būti trumpesnė kaip"},bigger:{inclusive:"turi būti ne trumpesnė kaip",notInclusive:"turi būti ilgesnė kaip"}}},file:{unit:{one:"baitas",few:"baitai",many:"baitų"},verb:{smaller:{inclusive:"turi būti ne didesnis kaip",notInclusive:"turi būti mažesnis kaip"},bigger:{inclusive:"turi būti ne mažesnis kaip",notInclusive:"turi būti didesnis kaip"}}},array:{unit:{one:"elementą",few:"elementus",many:"elementų"},verb:{smaller:{inclusive:"turi turėti ne daugiau kaip",notInclusive:"turi turėti mažiau kaip"},bigger:{inclusive:"turi turėti ne mažiau kaip",notInclusive:"turi turėti daugiau kaip"}}},set:{unit:{one:"elementą",few:"elementus",many:"elementų"},verb:{smaller:{inclusive:"turi turėti ne daugiau kaip",notInclusive:"turi turėti mažiau kaip"},bigger:{inclusive:"turi turėti ne mažiau kaip",notInclusive:"turi turėti daugiau kaip"}}}};function i(E,g,a,h){const w=r[E]??null;return w===null?w:{unit:w.unit[g],verb:w.verb[h][a?"inclusive":"notInclusive"]}}const u={regex:"įvestis",email:"el. pašto adresas",url:"URL",emoji:"jaustukas",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO data ir laikas",date:"ISO data",time:"ISO laikas",duration:"ISO trukmė",ipv4:"IPv4 adresas",ipv6:"IPv6 adresas",cidrv4:"IPv4 tinklo prefiksas (CIDR)",cidrv6:"IPv6 tinklo prefiksas (CIDR)",base64:"base64 užkoduota eilutė",base64url:"base64url užkoduota eilutė",json_string:"JSON eilutė",e164:"E.164 numeris",jwt:"JWT",template_literal:"įvestis"};return E=>{switch(E.code){case"invalid_type":return`Gautas tipas ${q4(E.input)}, o tikėtasi - ${Wi(E.expected)}`;case"invalid_value":return E.values.length===1?`Privalo būti ${YA(E.values[0])}`:`Privalo būti vienas iš ${cA(E.values,"|")} pasirinkimų`;case"too_big":{const g=Wi(E.origin),a=i(E.origin,YB(Number(E.maximum)),E.inclusive??!1,"smaller");if(a?.verb)return`${qi(g??E.origin??"reikšmė")} ${a.verb} ${E.maximum.toString()} ${a.unit??"elementų"}`;const h=E.inclusive?"ne didesnis kaip":"mažesnis kaip";return`${qi(g??E.origin??"reikšmė")} turi būti ${h} ${E.maximum.toString()} ${a?.unit}`}case"too_small":{const g=Wi(E.origin),a=i(E.origin,YB(Number(E.minimum)),E.inclusive??!1,"bigger");if(a?.verb)return`${qi(g??E.origin??"reikšmė")} ${a.verb} ${E.minimum.toString()} ${a.unit??"elementų"}`;const h=E.inclusive?"ne mažesnis kaip":"didesnis kaip";return`${qi(g??E.origin??"reikšmė")} turi būti ${h} ${E.minimum.toString()} ${a?.unit}`}case"invalid_format":{const g=E;return g.format==="starts_with"?`Eilutė privalo prasidėti "${g.prefix}"`:g.format==="ends_with"?`Eilutė privalo pasibaigti "${g.suffix}"`:g.format==="includes"?`Eilutė privalo įtraukti "${g.includes}"`:g.format==="regex"?`Eilutė privalo atitikti ${g.pattern}`:`Neteisingas ${u[g.format]??E.format}`}case"not_multiple_of":return`Skaičius privalo būti ${E.divisor} kartotinis.`;case"unrecognized_keys":return`Neatpažint${E.keys.length>1?"i":"as"} rakt${E.keys.length>1?"ai":"as"}: ${cA(E.keys,", ")}`;case"invalid_key":return"Rastas klaidingas raktas";case"invalid_union":return"Klaidinga įvestis";case"invalid_element":{const g=Wi(E.origin);return`${qi(g??E.origin??"reikšmė")} turi klaidingą įvestį`}default:return"Klaidinga įvestis"}}};function Ay(){return{localeError:V4()}}const ey=()=>{const r={string:{unit:"знаци",verb:"да имаат"},file:{unit:"бајти",verb:"да имаат"},array:{unit:"ставки",verb:"да имаат"},set:{unit:"ставки",verb:"да имаат"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"број";case"object":{if(Array.isArray(g))return"низа";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"внес",email:"адреса на е-пошта",url:"URL",emoji:"емоџи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO датум и време",date:"ISO датум",time:"ISO време",duration:"ISO времетраење",ipv4:"IPv4 адреса",ipv6:"IPv6 адреса",cidrv4:"IPv4 опсег",cidrv6:"IPv6 опсег",base64:"base64-енкодирана низа",base64url:"base64url-енкодирана низа",json_string:"JSON низа",e164:"E.164 број",jwt:"JWT",template_literal:"внес"};return g=>{switch(g.code){case"invalid_type":return`Грешен внес: се очекува ${g.expected}, примено ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Invalid input: expected ${YA(g.values[0])}`:`Грешана опција: се очекува една ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Премногу голем: се очекува ${g.origin??"вредноста"} да има ${a}${g.maximum.toString()} ${h.unit??"елементи"}`:`Премногу голем: се очекува ${g.origin??"вредноста"} да биде ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Премногу мал: се очекува ${g.origin} да има ${a}${g.minimum.toString()} ${h.unit}`:`Премногу мал: се очекува ${g.origin} да биде ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Неважечка низа: мора да започнува со "${a.prefix}"`:a.format==="ends_with"?`Неважечка низа: мора да завршува со "${a.suffix}"`:a.format==="includes"?`Неважечка низа: мора да вклучува "${a.includes}"`:a.format==="regex"?`Неважечка низа: мора да одгоара на патернот ${a.pattern}`:`Invalid ${E[a.format]??g.format}`}case"not_multiple_of":return`Грешен број: мора да биде делив со ${g.divisor}`;case"unrecognized_keys":return`${g.keys.length>1?"Непрепознаени клучеви":"Непрепознаен клуч"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Грешен клуч во ${g.origin}`;case"invalid_union":return"Грешен внес";case"invalid_element":return`Грешна вредност во ${g.origin}`;default:return"Грешен внес"}}};function ty(){return{localeError:ey()}}const ry=()=>{const r={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"nombor";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"};return g=>{switch(g.code){case"invalid_type":return`Input tidak sah: dijangka ${g.expected}, diterima ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Input tidak sah: dijangka ${YA(g.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Terlalu besar: dijangka ${g.origin??"nilai"} ${h.verb} ${a}${g.maximum.toString()} ${h.unit??"elemen"}`:`Terlalu besar: dijangka ${g.origin??"nilai"} adalah ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Terlalu kecil: dijangka ${g.origin} ${h.verb} ${a}${g.minimum.toString()} ${h.unit}`:`Terlalu kecil: dijangka ${g.origin} adalah ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`String tidak sah: mesti bermula dengan "${a.prefix}"`:a.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${a.suffix}"`:a.format==="includes"?`String tidak sah: mesti mengandungi "${a.includes}"`:a.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${a.pattern}`:`${E[a.format]??g.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${g.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${cA(g.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${g.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${g.origin}`;default:return"Input tidak sah"}}};function ny(){return{localeError:ry()}}const iy=()=>{const r={string:{unit:"tekens",verb:"te hebben"},file:{unit:"bytes",verb:"te hebben"},array:{unit:"elementen",verb:"te hebben"},set:{unit:"elementen",verb:"te hebben"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"getal";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"};return g=>{switch(g.code){case"invalid_type":return`Ongeldige invoer: verwacht ${g.expected}, ontving ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Ongeldige invoer: verwacht ${YA(g.values[0])}`:`Ongeldige optie: verwacht één van ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Te groot: verwacht dat ${g.origin??"waarde"} ${h.verb} ${a}${g.maximum.toString()} ${h.unit??"elementen"}`:`Te groot: verwacht dat ${g.origin??"waarde"} ${a}${g.maximum.toString()} is`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Te klein: verwacht dat ${g.origin} ${h.verb} ${a}${g.minimum.toString()} ${h.unit}`:`Te klein: verwacht dat ${g.origin} ${a}${g.minimum.toString()} is`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Ongeldige tekst: moet met "${a.prefix}" beginnen`:a.format==="ends_with"?`Ongeldige tekst: moet op "${a.suffix}" eindigen`:a.format==="includes"?`Ongeldige tekst: moet "${a.includes}" bevatten`:a.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${a.pattern}`:`Ongeldig: ${E[a.format]??g.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${g.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${g.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${g.origin}`;default:return"Ongeldige invoer"}}};function oy(){return{localeError:iy()}}const ay=()=>{const r={string:{unit:"tegn",verb:"å ha"},file:{unit:"bytes",verb:"å ha"},array:{unit:"elementer",verb:"å inneholde"},set:{unit:"elementer",verb:"å inneholde"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"tall";case"object":{if(Array.isArray(g))return"liste";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-område",ipv6:"IPv6-område",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return g=>{switch(g.code){case"invalid_type":return`Ugyldig input: forventet ${g.expected}, fikk ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Ugyldig verdi: forventet ${YA(g.values[0])}`:`Ugyldig valg: forventet en av ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`For stor(t): forventet ${g.origin??"value"} til å ha ${a}${g.maximum.toString()} ${h.unit??"elementer"}`:`For stor(t): forventet ${g.origin??"value"} til å ha ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`For lite(n): forventet ${g.origin} til å ha ${a}${g.minimum.toString()} ${h.unit}`:`For lite(n): forventet ${g.origin} til å ha ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Ugyldig streng: må starte med "${a.prefix}"`:a.format==="ends_with"?`Ugyldig streng: må ende med "${a.suffix}"`:a.format==="includes"?`Ugyldig streng: må inneholde "${a.includes}"`:a.format==="regex"?`Ugyldig streng: må matche mønsteret ${a.pattern}`:`Ugyldig ${E[a.format]??g.format}`}case"not_multiple_of":return`Ugyldig tall: må være et multiplum av ${g.divisor}`;case"unrecognized_keys":return`${g.keys.length>1?"Ukjente nøkler":"Ukjent nøkkel"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Ugyldig nøkkel i ${g.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${g.origin}`;default:return"Ugyldig input"}}};function sy(){return{localeError:ay()}}const gy=()=>{const r={string:{unit:"harf",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"unsur",verb:"olmalıdır"},set:{unit:"unsur",verb:"olmalıdır"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"numara";case"object":{if(Array.isArray(g))return"saf";if(g===null)return"gayb";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"giren",email:"epostagâh",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO hengâmı",date:"ISO tarihi",time:"ISO zamanı",duration:"ISO müddeti",ipv4:"IPv4 nişânı",ipv6:"IPv6 nişânı",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-şifreli metin",base64url:"base64url-şifreli metin",json_string:"JSON metin",e164:"E.164 sayısı",jwt:"JWT",template_literal:"giren"};return g=>{switch(g.code){case"invalid_type":return`Fâsit giren: umulan ${g.expected}, alınan ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Fâsit giren: umulan ${YA(g.values[0])}`:`Fâsit tercih: mûteberler ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Fazla büyük: ${g.origin??"value"}, ${a}${g.maximum.toString()} ${h.unit??"elements"} sahip olmalıydı.`:`Fazla büyük: ${g.origin??"value"}, ${a}${g.maximum.toString()} olmalıydı.`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Fazla küçük: ${g.origin}, ${a}${g.minimum.toString()} ${h.unit} sahip olmalıydı.`:`Fazla küçük: ${g.origin}, ${a}${g.minimum.toString()} olmalıydı.`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Fâsit metin: "${a.prefix}" ile başlamalı.`:a.format==="ends_with"?`Fâsit metin: "${a.suffix}" ile bitmeli.`:a.format==="includes"?`Fâsit metin: "${a.includes}" ihtivâ etmeli.`:a.format==="regex"?`Fâsit metin: ${a.pattern} nakşına uymalı.`:`Fâsit ${E[a.format]??g.format}`}case"not_multiple_of":return`Fâsit sayı: ${g.divisor} katı olmalıydı.`;case"unrecognized_keys":return`Tanınmayan anahtar ${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`${g.origin} için tanınmayan anahtar var.`;case"invalid_union":return"Giren tanınamadı.";case"invalid_element":return`${g.origin} için tanınmayan kıymet var.`;default:return"Kıymet tanınamadı."}}};function cy(){return{localeError:gy()}}const uy=()=>{const r={string:{unit:"توکي",verb:"ولري"},file:{unit:"بایټس",verb:"ولري"},array:{unit:"توکي",verb:"ولري"},set:{unit:"توکي",verb:"ولري"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"عدد";case"object":{if(Array.isArray(g))return"ارې";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ورودي",email:"بریښنالیک",url:"یو آر ال",emoji:"ایموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"نیټه او وخت",date:"نېټه",time:"وخت",duration:"موده",ipv4:"د IPv4 پته",ipv6:"د IPv6 پته",cidrv4:"د IPv4 ساحه",cidrv6:"د IPv6 ساحه",base64:"base64-encoded متن",base64url:"base64url-encoded متن",json_string:"JSON متن",e164:"د E.164 شمېره",jwt:"JWT",template_literal:"ورودي"};return g=>{switch(g.code){case"invalid_type":return`ناسم ورودي: باید ${g.expected} وای, مګر ${u(g.input)} ترلاسه شو`;case"invalid_value":return g.values.length===1?`ناسم ورودي: باید ${YA(g.values[0])} وای`:`ناسم انتخاب: باید یو له ${cA(g.values,"|")} څخه وای`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`ډیر لوی: ${g.origin??"ارزښت"} باید ${a}${g.maximum.toString()} ${h.unit??"عنصرونه"} ولري`:`ډیر لوی: ${g.origin??"ارزښت"} باید ${a}${g.maximum.toString()} وي`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`ډیر کوچنی: ${g.origin} باید ${a}${g.minimum.toString()} ${h.unit} ولري`:`ډیر کوچنی: ${g.origin} باید ${a}${g.minimum.toString()} وي`}case"invalid_format":{const a=g;return a.format==="starts_with"?`ناسم متن: باید د "${a.prefix}" سره پیل شي`:a.format==="ends_with"?`ناسم متن: باید د "${a.suffix}" سره پای ته ورسيږي`:a.format==="includes"?`ناسم متن: باید "${a.includes}" ولري`:a.format==="regex"?`ناسم متن: باید د ${a.pattern} سره مطابقت ولري`:`${E[a.format]??g.format} ناسم دی`}case"not_multiple_of":return`ناسم عدد: باید د ${g.divisor} مضرب وي`;case"unrecognized_keys":return`ناسم ${g.keys.length>1?"کلیډونه":"کلیډ"}: ${cA(g.keys,", ")}`;case"invalid_key":return`ناسم کلیډ په ${g.origin} کې`;case"invalid_union":return"ناسمه ورودي";case"invalid_element":return`ناسم عنصر په ${g.origin} کې`;default:return"ناسمه ورودي"}}};function Iy(){return{localeError:uy()}}const Ey=()=>{const r={string:{unit:"znaków",verb:"mieć"},file:{unit:"bajtów",verb:"mieć"},array:{unit:"elementów",verb:"mieć"},set:{unit:"elementów",verb:"mieć"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"liczba";case"object":{if(Array.isArray(g))return"tablica";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"wyrażenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ciąg znaków zakodowany w formacie base64",base64url:"ciąg znaków zakodowany w formacie base64url",json_string:"ciąg znaków w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wejście"};return g=>{switch(g.code){case"invalid_type":return`Nieprawidłowe dane wejściowe: oczekiwano ${g.expected}, otrzymano ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Nieprawidłowe dane wejściowe: oczekiwano ${YA(g.values[0])}`:`Nieprawidłowa opcja: oczekiwano jednej z wartości ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Za duża wartość: oczekiwano, że ${g.origin??"wartość"} będzie mieć ${a}${g.maximum.toString()} ${h.unit??"elementów"}`:`Zbyt duż(y/a/e): oczekiwano, że ${g.origin??"wartość"} będzie wynosić ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Za mała wartość: oczekiwano, że ${g.origin??"wartość"} będzie mieć ${a}${g.minimum.toString()} ${h.unit??"elementów"}`:`Zbyt mał(y/a/e): oczekiwano, że ${g.origin??"wartość"} będzie wynosić ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Nieprawidłowy ciąg znaków: musi zaczynać się od "${a.prefix}"`:a.format==="ends_with"?`Nieprawidłowy ciąg znaków: musi kończyć się na "${a.suffix}"`:a.format==="includes"?`Nieprawidłowy ciąg znaków: musi zawierać "${a.includes}"`:a.format==="regex"?`Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${a.pattern}`:`Nieprawidłow(y/a/e) ${E[a.format]??g.format}`}case"not_multiple_of":return`Nieprawidłowa liczba: musi być wielokrotnością ${g.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Nieprawidłowy klucz w ${g.origin}`;case"invalid_union":return"Nieprawidłowe dane wejściowe";case"invalid_element":return`Nieprawidłowa wartość w ${g.origin}`;default:return"Nieprawidłowe dane wejściowe"}}};function ly(){return{localeError:Ey()}}const By=()=>{const r={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"número";case"object":{if(Array.isArray(g))return"array";if(g===null)return"nulo";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"padrão",email:"endereço de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"duração ISO",ipv4:"endereço IPv4",ipv6:"endereço IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"};return g=>{switch(g.code){case"invalid_type":return`Tipo inválido: esperado ${g.expected}, recebido ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Entrada inválida: esperado ${YA(g.values[0])}`:`Opção inválida: esperada uma das ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Muito grande: esperado que ${g.origin??"valor"} tivesse ${a}${g.maximum.toString()} ${h.unit??"elementos"}`:`Muito grande: esperado que ${g.origin??"valor"} fosse ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Muito pequeno: esperado que ${g.origin} tivesse ${a}${g.minimum.toString()} ${h.unit}`:`Muito pequeno: esperado que ${g.origin} fosse ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Texto inválido: deve começar com "${a.prefix}"`:a.format==="ends_with"?`Texto inválido: deve terminar com "${a.suffix}"`:a.format==="includes"?`Texto inválido: deve incluir "${a.includes}"`:a.format==="regex"?`Texto inválido: deve corresponder ao padrão ${a.pattern}`:`${E[a.format]??g.format} inválido`}case"not_multiple_of":return`Número inválido: deve ser múltiplo de ${g.divisor}`;case"unrecognized_keys":return`Chave${g.keys.length>1?"s":""} desconhecida${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Chave inválida em ${g.origin}`;case"invalid_union":return"Entrada inválida";case"invalid_element":return`Valor inválido em ${g.origin}`;default:return"Campo inválido"}}};function Cy(){return{localeError:By()}}function jB(r,i,u,E){const g=Math.abs(r),a=g%10,h=g%100;return h>=11&&h<=19?E:a===1?i:a>=2&&a<=4?u:E}const Qy=()=>{const r={string:{unit:{one:"символ",few:"символа",many:"символов"},verb:"иметь"},file:{unit:{one:"байт",few:"байта",many:"байт"},verb:"иметь"},array:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"},set:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"число";case"object":{if(Array.isArray(g))return"массив";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ввод",email:"email адрес",url:"URL",emoji:"эмодзи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата и время",date:"ISO дата",time:"ISO время",duration:"ISO длительность",ipv4:"IPv4 адрес",ipv6:"IPv6 адрес",cidrv4:"IPv4 диапазон",cidrv6:"IPv6 диапазон",base64:"строка в формате base64",base64url:"строка в формате base64url",json_string:"JSON строка",e164:"номер E.164",jwt:"JWT",template_literal:"ввод"};return g=>{switch(g.code){case"invalid_type":return`Неверный ввод: ожидалось ${g.expected}, получено ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Неверный ввод: ожидалось ${YA(g.values[0])}`:`Неверный вариант: ожидалось одно из ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);if(h){const w=Number(g.maximum),k=jB(w,h.unit.one,h.unit.few,h.unit.many);return`Слишком большое значение: ожидалось, что ${g.origin??"значение"} будет иметь ${a}${g.maximum.toString()} ${k}`}return`Слишком большое значение: ожидалось, что ${g.origin??"значение"} будет ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);if(h){const w=Number(g.minimum),k=jB(w,h.unit.one,h.unit.few,h.unit.many);return`Слишком маленькое значение: ожидалось, что ${g.origin} будет иметь ${a}${g.minimum.toString()} ${k}`}return`Слишком маленькое значение: ожидалось, что ${g.origin} будет ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Неверная строка: должна начинаться с "${a.prefix}"`:a.format==="ends_with"?`Неверная строка: должна заканчиваться на "${a.suffix}"`:a.format==="includes"?`Неверная строка: должна содержать "${a.includes}"`:a.format==="regex"?`Неверная строка: должна соответствовать шаблону ${a.pattern}`:`Неверный ${E[a.format]??g.format}`}case"not_multiple_of":return`Неверное число: должно быть кратным ${g.divisor}`;case"unrecognized_keys":return`Нераспознанн${g.keys.length>1?"ые":"ый"} ключ${g.keys.length>1?"и":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Неверный ключ в ${g.origin}`;case"invalid_union":return"Неверные входные данные";case"invalid_element":return`Неверное значение в ${g.origin}`;default:return"Неверные входные данные"}}};function fy(){return{localeError:Qy()}}const dy=()=>{const r={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"število";case"object":{if(Array.isArray(g))return"tabela";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"vnos",email:"e-poštni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in čas",date:"ISO datum",time:"ISO čas",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 številka",jwt:"JWT",template_literal:"vnos"};return g=>{switch(g.code){case"invalid_type":return`Neveljaven vnos: pričakovano ${g.expected}, prejeto ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Neveljaven vnos: pričakovano ${YA(g.values[0])}`:`Neveljavna možnost: pričakovano eno izmed ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Preveliko: pričakovano, da bo ${g.origin??"vrednost"} imelo ${a}${g.maximum.toString()} ${h.unit??"elementov"}`:`Preveliko: pričakovano, da bo ${g.origin??"vrednost"} ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Premajhno: pričakovano, da bo ${g.origin} imelo ${a}${g.minimum.toString()} ${h.unit}`:`Premajhno: pričakovano, da bo ${g.origin} ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Neveljaven niz: mora se začeti z "${a.prefix}"`:a.format==="ends_with"?`Neveljaven niz: mora se končati z "${a.suffix}"`:a.format==="includes"?`Neveljaven niz: mora vsebovati "${a.includes}"`:a.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${a.pattern}`:`Neveljaven ${E[a.format]??g.format}`}case"not_multiple_of":return`Neveljavno število: mora biti večkratnik ${g.divisor}`;case"unrecognized_keys":return`Neprepoznan${g.keys.length>1?"i ključi":" ključ"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Neveljaven ključ v ${g.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${g.origin}`;default:return"Neveljaven vnos"}}};function hy(){return{localeError:dy()}}const my=()=>{const r={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att innehålla"},set:{unit:"objekt",verb:"att innehålla"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"antal";case"object":{if(Array.isArray(g))return"lista";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"reguljärt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad sträng",base64url:"base64url-kodad sträng",json_string:"JSON-sträng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"};return g=>{switch(g.code){case"invalid_type":return`Ogiltig inmatning: förväntat ${g.expected}, fick ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Ogiltig inmatning: förväntat ${YA(g.values[0])}`:`Ogiltigt val: förväntade en av ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`För stor(t): förväntade ${g.origin??"värdet"} att ha ${a}${g.maximum.toString()} ${h.unit??"element"}`:`För stor(t): förväntat ${g.origin??"värdet"} att ha ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`För lite(t): förväntade ${g.origin??"värdet"} att ha ${a}${g.minimum.toString()} ${h.unit}`:`För lite(t): förväntade ${g.origin??"värdet"} att ha ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Ogiltig sträng: måste börja med "${a.prefix}"`:a.format==="ends_with"?`Ogiltig sträng: måste sluta med "${a.suffix}"`:a.format==="includes"?`Ogiltig sträng: måste innehålla "${a.includes}"`:a.format==="regex"?`Ogiltig sträng: måste matcha mönstret "${a.pattern}"`:`Ogiltig(t) ${E[a.format]??g.format}`}case"not_multiple_of":return`Ogiltigt tal: måste vara en multipel av ${g.divisor}`;case"unrecognized_keys":return`${g.keys.length>1?"Okända nycklar":"Okänd nyckel"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${g.origin??"värdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt värde i ${g.origin??"värdet"}`;default:return"Ogiltig input"}}};function py(){return{localeError:my()}}const yy=()=>{const r={string:{unit:"எழுத்துக்கள்",verb:"கொண்டிருக்க வேண்டும்"},file:{unit:"பைட்டுகள்",verb:"கொண்டிருக்க வேண்டும்"},array:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"},set:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"எண் அல்லாதது":"எண்";case"object":{if(Array.isArray(g))return"அணி";if(g===null)return"வெறுமை";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"உள்ளீடு",email:"மின்னஞ்சல் முகவரி",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO தேதி நேரம்",date:"ISO தேதி",time:"ISO நேரம்",duration:"ISO கால அளவு",ipv4:"IPv4 முகவரி",ipv6:"IPv6 முகவரி",cidrv4:"IPv4 வரம்பு",cidrv6:"IPv6 வரம்பு",base64:"base64-encoded சரம்",base64url:"base64url-encoded சரம்",json_string:"JSON சரம்",e164:"E.164 எண்",jwt:"JWT",template_literal:"input"};return g=>{switch(g.code){case"invalid_type":return`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${g.expected}, பெறப்பட்டது ${u(g.input)}`;case"invalid_value":return g.values.length===1?`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${YA(g.values[0])}`:`தவறான விருப்பம்: எதிர்பார்க்கப்பட்டது ${cA(g.values,"|")} இல் ஒன்று`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${g.origin??"மதிப்பு"} ${a}${g.maximum.toString()} ${h.unit??"உறுப்புகள்"} ஆக இருக்க வேண்டும்`:`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${g.origin??"மதிப்பு"} ${a}${g.maximum.toString()} ஆக இருக்க வேண்டும்`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${g.origin} ${a}${g.minimum.toString()} ${h.unit} ஆக இருக்க வேண்டும்`:`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${g.origin} ${a}${g.minimum.toString()} ஆக இருக்க வேண்டும்`}case"invalid_format":{const a=g;return a.format==="starts_with"?`தவறான சரம்: "${a.prefix}" இல் தொடங்க வேண்டும்`:a.format==="ends_with"?`தவறான சரம்: "${a.suffix}" இல் முடிவடைய வேண்டும்`:a.format==="includes"?`தவறான சரம்: "${a.includes}" ஐ உள்ளடக்க வேண்டும்`:a.format==="regex"?`தவறான சரம்: ${a.pattern} முறைபாட்டுடன் பொருந்த வேண்டும்`:`தவறான ${E[a.format]??g.format}`}case"not_multiple_of":return`தவறான எண்: ${g.divisor} இன் பலமாக இருக்க வேண்டும்`;case"unrecognized_keys":return`அடையாளம் தெரியாத விசை${g.keys.length>1?"கள்":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`${g.origin} இல் தவறான விசை`;case"invalid_union":return"தவறான உள்ளீடு";case"invalid_element":return`${g.origin} இல் தவறான மதிப்பு`;default:return"தவறான உள்ளீடு"}}};function by(){return{localeError:yy()}}const Dy=()=>{const r={string:{unit:"ตัวอักษร",verb:"ควรมี"},file:{unit:"ไบต์",verb:"ควรมี"},array:{unit:"รายการ",verb:"ควรมี"},set:{unit:"รายการ",verb:"ควรมี"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"ไม่ใช่ตัวเลข (NaN)":"ตัวเลข";case"object":{if(Array.isArray(g))return"อาร์เรย์ (Array)";if(g===null)return"ไม่มีค่า (null)";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ข้อมูลที่ป้อน",email:"ที่อยู่อีเมล",url:"URL",emoji:"อิโมจิ",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"วันที่เวลาแบบ ISO",date:"วันที่แบบ ISO",time:"เวลาแบบ ISO",duration:"ช่วงเวลาแบบ ISO",ipv4:"ที่อยู่ IPv4",ipv6:"ที่อยู่ IPv6",cidrv4:"ช่วง IP แบบ IPv4",cidrv6:"ช่วง IP แบบ IPv6",base64:"ข้อความแบบ Base64",base64url:"ข้อความแบบ Base64 สำหรับ URL",json_string:"ข้อความแบบ JSON",e164:"เบอร์โทรศัพท์ระหว่างประเทศ (E.164)",jwt:"โทเคน JWT",template_literal:"ข้อมูลที่ป้อน"};return g=>{switch(g.code){case"invalid_type":return`ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${g.expected} แต่ได้รับ ${u(g.input)}`;case"invalid_value":return g.values.length===1?`ค่าไม่ถูกต้อง: ควรเป็น ${YA(g.values[0])}`:`ตัวเลือกไม่ถูกต้อง: ควรเป็นหนึ่งใน ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"ไม่เกิน":"น้อยกว่า",h=i(g.origin);return h?`เกินกำหนด: ${g.origin??"ค่า"} ควรมี${a} ${g.maximum.toString()} ${h.unit??"รายการ"}`:`เกินกำหนด: ${g.origin??"ค่า"} ควรมี${a} ${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?"อย่างน้อย":"มากกว่า",h=i(g.origin);return h?`น้อยกว่ากำหนด: ${g.origin} ควรมี${a} ${g.minimum.toString()} ${h.unit}`:`น้อยกว่ากำหนด: ${g.origin} ควรมี${a} ${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`รูปแบบไม่ถูกต้อง: ข้อความต้องขึ้นต้นด้วย "${a.prefix}"`:a.format==="ends_with"?`รูปแบบไม่ถูกต้อง: ข้อความต้องลงท้ายด้วย "${a.suffix}"`:a.format==="includes"?`รูปแบบไม่ถูกต้อง: ข้อความต้องมี "${a.includes}" อยู่ในข้อความ`:a.format==="regex"?`รูปแบบไม่ถูกต้อง: ต้องตรงกับรูปแบบที่กำหนด ${a.pattern}`:`รูปแบบไม่ถูกต้อง: ${E[a.format]??g.format}`}case"not_multiple_of":return`ตัวเลขไม่ถูกต้อง: ต้องเป็นจำนวนที่หารด้วย ${g.divisor} ได้ลงตัว`;case"unrecognized_keys":return`พบคีย์ที่ไม่รู้จัก: ${cA(g.keys,", ")}`;case"invalid_key":return`คีย์ไม่ถูกต้องใน ${g.origin}`;case"invalid_union":return"ข้อมูลไม่ถูกต้อง: ไม่ตรงกับรูปแบบยูเนียนที่กำหนดไว้";case"invalid_element":return`ข้อมูลไม่ถูกต้องใน ${g.origin}`;default:return"ข้อมูลไม่ถูกต้อง"}}};function wy(){return{localeError:Dy()}}const ky=r=>{const i=typeof r;switch(i){case"number":return Number.isNaN(r)?"NaN":"number";case"object":{if(Array.isArray(r))return"array";if(r===null)return"null";if(Object.getPrototypeOf(r)!==Object.prototype&&r.constructor)return r.constructor.name}}return i},_y=()=>{const r={string:{unit:"karakter",verb:"olmalı"},file:{unit:"bayt",verb:"olmalı"},array:{unit:"öğe",verb:"olmalı"},set:{unit:"öğe",verb:"olmalı"}};function i(E){return r[E]??null}const u={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO süre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aralığı",cidrv6:"IPv6 aralığı",base64:"base64 ile şifrelenmiş metin",base64url:"base64url ile şifrelenmiş metin",json_string:"JSON dizesi",e164:"E.164 sayısı",jwt:"JWT",template_literal:"Şablon dizesi"};return E=>{switch(E.code){case"invalid_type":return`Geçersiz değer: beklenen ${E.expected}, alınan ${ky(E.input)}`;case"invalid_value":return E.values.length===1?`Geçersiz değer: beklenen ${YA(E.values[0])}`:`Geçersiz seçenek: aşağıdakilerden biri olmalı: ${cA(E.values,"|")}`;case"too_big":{const g=E.inclusive?"<=":"<",a=i(E.origin);return a?`Çok büyük: beklenen ${E.origin??"değer"} ${g}${E.maximum.toString()} ${a.unit??"öğe"}`:`Çok büyük: beklenen ${E.origin??"değer"} ${g}${E.maximum.toString()}`}case"too_small":{const g=E.inclusive?">=":">",a=i(E.origin);return a?`Çok küçük: beklenen ${E.origin} ${g}${E.minimum.toString()} ${a.unit}`:`Çok küçük: beklenen ${E.origin} ${g}${E.minimum.toString()}`}case"invalid_format":{const g=E;return g.format==="starts_with"?`Geçersiz metin: "${g.prefix}" ile başlamalı`:g.format==="ends_with"?`Geçersiz metin: "${g.suffix}" ile bitmeli`:g.format==="includes"?`Geçersiz metin: "${g.includes}" içermeli`:g.format==="regex"?`Geçersiz metin: ${g.pattern} desenine uymalı`:`Geçersiz ${u[g.format]??E.format}`}case"not_multiple_of":return`Geçersiz sayı: ${E.divisor} ile tam bölünebilmeli`;case"unrecognized_keys":return`Tanınmayan anahtar${E.keys.length>1?"lar":""}: ${cA(E.keys,", ")}`;case"invalid_key":return`${E.origin} içinde geçersiz anahtar`;case"invalid_union":return"Geçersiz değer";case"invalid_element":return`${E.origin} içinde geçersiz değer`;default:return"Geçersiz değer"}}};function Sy(){return{localeError:_y()}}const vy=()=>{const r={string:{unit:"символів",verb:"матиме"},file:{unit:"байтів",verb:"матиме"},array:{unit:"елементів",verb:"матиме"},set:{unit:"елементів",verb:"матиме"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"число";case"object":{if(Array.isArray(g))return"масив";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"вхідні дані",email:"адреса електронної пошти",url:"URL",emoji:"емодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"дата та час ISO",date:"дата ISO",time:"час ISO",duration:"тривалість ISO",ipv4:"адреса IPv4",ipv6:"адреса IPv6",cidrv4:"діапазон IPv4",cidrv6:"діапазон IPv6",base64:"рядок у кодуванні base64",base64url:"рядок у кодуванні base64url",json_string:"рядок JSON",e164:"номер E.164",jwt:"JWT",template_literal:"вхідні дані"};return g=>{switch(g.code){case"invalid_type":return`Неправильні вхідні дані: очікується ${g.expected}, отримано ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Неправильні вхідні дані: очікується ${YA(g.values[0])}`:`Неправильна опція: очікується одне з ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Занадто велике: очікується, що ${g.origin??"значення"} ${h.verb} ${a}${g.maximum.toString()} ${h.unit??"елементів"}`:`Занадто велике: очікується, що ${g.origin??"значення"} буде ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Занадто мале: очікується, що ${g.origin} ${h.verb} ${a}${g.minimum.toString()} ${h.unit}`:`Занадто мале: очікується, що ${g.origin} буде ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Неправильний рядок: повинен починатися з "${a.prefix}"`:a.format==="ends_with"?`Неправильний рядок: повинен закінчуватися на "${a.suffix}"`:a.format==="includes"?`Неправильний рядок: повинен містити "${a.includes}"`:a.format==="regex"?`Неправильний рядок: повинен відповідати шаблону ${a.pattern}`:`Неправильний ${E[a.format]??g.format}`}case"not_multiple_of":return`Неправильне число: повинно бути кратним ${g.divisor}`;case"unrecognized_keys":return`Нерозпізнаний ключ${g.keys.length>1?"і":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Неправильний ключ у ${g.origin}`;case"invalid_union":return"Неправильні вхідні дані";case"invalid_element":return`Неправильне значення у ${g.origin}`;default:return"Неправильні вхідні дані"}}};function JB(){return{localeError:vy()}}function Ry(){return JB()}const Ty=()=>{const r={string:{unit:"حروف",verb:"ہونا"},file:{unit:"بائٹس",verb:"ہونا"},array:{unit:"آئٹمز",verb:"ہونا"},set:{unit:"آئٹمز",verb:"ہونا"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"نمبر";case"object":{if(Array.isArray(g))return"آرے";if(g===null)return"نل";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ان پٹ",email:"ای میل ایڈریس",url:"یو آر ایل",emoji:"ایموجی",uuid:"یو یو آئی ڈی",uuidv4:"یو یو آئی ڈی وی 4",uuidv6:"یو یو آئی ڈی وی 6",nanoid:"نینو آئی ڈی",guid:"جی یو آئی ڈی",cuid:"سی یو آئی ڈی",cuid2:"سی یو آئی ڈی 2",ulid:"یو ایل آئی ڈی",xid:"ایکس آئی ڈی",ksuid:"کے ایس یو آئی ڈی",datetime:"آئی ایس او ڈیٹ ٹائم",date:"آئی ایس او تاریخ",time:"آئی ایس او وقت",duration:"آئی ایس او مدت",ipv4:"آئی پی وی 4 ایڈریس",ipv6:"آئی پی وی 6 ایڈریس",cidrv4:"آئی پی وی 4 رینج",cidrv6:"آئی پی وی 6 رینج",base64:"بیس 64 ان کوڈڈ سٹرنگ",base64url:"بیس 64 یو آر ایل ان کوڈڈ سٹرنگ",json_string:"جے ایس او این سٹرنگ",e164:"ای 164 نمبر",jwt:"جے ڈبلیو ٹی",template_literal:"ان پٹ"};return g=>{switch(g.code){case"invalid_type":return`غلط ان پٹ: ${g.expected} متوقع تھا، ${u(g.input)} موصول ہوا`;case"invalid_value":return g.values.length===1?`غلط ان پٹ: ${YA(g.values[0])} متوقع تھا`:`غلط آپشن: ${cA(g.values,"|")} میں سے ایک متوقع تھا`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`بہت بڑا: ${g.origin??"ویلیو"} کے ${a}${g.maximum.toString()} ${h.unit??"عناصر"} ہونے متوقع تھے`:`بہت بڑا: ${g.origin??"ویلیو"} کا ${a}${g.maximum.toString()} ہونا متوقع تھا`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`بہت چھوٹا: ${g.origin} کے ${a}${g.minimum.toString()} ${h.unit} ہونے متوقع تھے`:`بہت چھوٹا: ${g.origin} کا ${a}${g.minimum.toString()} ہونا متوقع تھا`}case"invalid_format":{const a=g;return a.format==="starts_with"?`غلط سٹرنگ: "${a.prefix}" سے شروع ہونا چاہیے`:a.format==="ends_with"?`غلط سٹرنگ: "${a.suffix}" پر ختم ہونا چاہیے`:a.format==="includes"?`غلط سٹرنگ: "${a.includes}" شامل ہونا چاہیے`:a.format==="regex"?`غلط سٹرنگ: پیٹرن ${a.pattern} سے میچ ہونا چاہیے`:`غلط ${E[a.format]??g.format}`}case"not_multiple_of":return`غلط نمبر: ${g.divisor} کا مضاعف ہونا چاہیے`;case"unrecognized_keys":return`غیر تسلیم شدہ کی${g.keys.length>1?"ز":""}: ${cA(g.keys,"، ")}`;case"invalid_key":return`${g.origin} میں غلط کی`;case"invalid_union":return"غلط ان پٹ";case"invalid_element":return`${g.origin} میں غلط ویلیو`;default:return"غلط ان پٹ"}}};function Fy(){return{localeError:Ty()}}const My=()=>{const r={string:{unit:"ký tự",verb:"có"},file:{unit:"byte",verb:"có"},array:{unit:"phần tử",verb:"có"},set:{unit:"phần tử",verb:"có"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"số";case"object":{if(Array.isArray(g))return"mảng";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"đầu vào",email:"địa chỉ email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ngày giờ ISO",date:"ngày ISO",time:"giờ ISO",duration:"khoảng thời gian ISO",ipv4:"địa chỉ IPv4",ipv6:"địa chỉ IPv6",cidrv4:"dải IPv4",cidrv6:"dải IPv6",base64:"chuỗi mã hóa base64",base64url:"chuỗi mã hóa base64url",json_string:"chuỗi JSON",e164:"số E.164",jwt:"JWT",template_literal:"đầu vào"};return g=>{switch(g.code){case"invalid_type":return`Đầu vào không hợp lệ: mong đợi ${g.expected}, nhận được ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Đầu vào không hợp lệ: mong đợi ${YA(g.values[0])}`:`Tùy chọn không hợp lệ: mong đợi một trong các giá trị ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Quá lớn: mong đợi ${g.origin??"giá trị"} ${h.verb} ${a}${g.maximum.toString()} ${h.unit??"phần tử"}`:`Quá lớn: mong đợi ${g.origin??"giá trị"} ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Quá nhỏ: mong đợi ${g.origin} ${h.verb} ${a}${g.minimum.toString()} ${h.unit}`:`Quá nhỏ: mong đợi ${g.origin} ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Chuỗi không hợp lệ: phải bắt đầu bằng "${a.prefix}"`:a.format==="ends_with"?`Chuỗi không hợp lệ: phải kết thúc bằng "${a.suffix}"`:a.format==="includes"?`Chuỗi không hợp lệ: phải bao gồm "${a.includes}"`:a.format==="regex"?`Chuỗi không hợp lệ: phải khớp với mẫu ${a.pattern}`:`${E[a.format]??g.format} không hợp lệ`}case"not_multiple_of":return`Số không hợp lệ: phải là bội số của ${g.divisor}`;case"unrecognized_keys":return`Khóa không được nhận dạng: ${cA(g.keys,", ")}`;case"invalid_key":return`Khóa không hợp lệ trong ${g.origin}`;case"invalid_union":return"Đầu vào không hợp lệ";case"invalid_element":return`Giá trị không hợp lệ trong ${g.origin}`;default:return"Đầu vào không hợp lệ"}}};function Oy(){return{localeError:My()}}const Ny=()=>{const r={string:{unit:"字符",verb:"包含"},file:{unit:"字节",verb:"包含"},array:{unit:"项",verb:"包含"},set:{unit:"项",verb:"包含"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"非数字(NaN)":"数字";case"object":{if(Array.isArray(g))return"数组";if(g===null)return"空值(null)";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"输入",email:"电子邮件",url:"URL",emoji:"表情符号",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日期时间",date:"ISO日期",time:"ISO时间",duration:"ISO时长",ipv4:"IPv4地址",ipv6:"IPv6地址",cidrv4:"IPv4网段",cidrv6:"IPv6网段",base64:"base64编码字符串",base64url:"base64url编码字符串",json_string:"JSON字符串",e164:"E.164号码",jwt:"JWT",template_literal:"输入"};return g=>{switch(g.code){case"invalid_type":return`无效输入:期望 ${g.expected},实际接收 ${u(g.input)}`;case"invalid_value":return g.values.length===1?`无效输入:期望 ${YA(g.values[0])}`:`无效选项:期望以下之一 ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`数值过大:期望 ${g.origin??"值"} ${a}${g.maximum.toString()} ${h.unit??"个元素"}`:`数值过大:期望 ${g.origin??"值"} ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`数值过小:期望 ${g.origin} ${a}${g.minimum.toString()} ${h.unit}`:`数值过小:期望 ${g.origin} ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`无效字符串:必须以 "${a.prefix}" 开头`:a.format==="ends_with"?`无效字符串:必须以 "${a.suffix}" 结尾`:a.format==="includes"?`无效字符串:必须包含 "${a.includes}"`:a.format==="regex"?`无效字符串:必须满足正则表达式 ${a.pattern}`:`无效${E[a.format]??g.format}`}case"not_multiple_of":return`无效数字:必须是 ${g.divisor} 的倍数`;case"unrecognized_keys":return`出现未知的键(key): ${cA(g.keys,", ")}`;case"invalid_key":return`${g.origin} 中的键(key)无效`;case"invalid_union":return"无效输入";case"invalid_element":return`${g.origin} 中包含无效值(value)`;default:return"无效输入"}}};function Uy(){return{localeError:Ny()}}const Gy=()=>{const r={string:{unit:"字元",verb:"擁有"},file:{unit:"位元組",verb:"擁有"},array:{unit:"項目",verb:"擁有"},set:{unit:"項目",verb:"擁有"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"輸入",email:"郵件地址",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 日期時間",date:"ISO 日期",time:"ISO 時間",duration:"ISO 期間",ipv4:"IPv4 位址",ipv6:"IPv6 位址",cidrv4:"IPv4 範圍",cidrv6:"IPv6 範圍",base64:"base64 編碼字串",base64url:"base64url 編碼字串",json_string:"JSON 字串",e164:"E.164 數值",jwt:"JWT",template_literal:"輸入"};return g=>{switch(g.code){case"invalid_type":return`無效的輸入值:預期為 ${g.expected},但收到 ${u(g.input)}`;case"invalid_value":return g.values.length===1?`無效的輸入值:預期為 ${YA(g.values[0])}`:`無效的選項:預期為以下其中之一 ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`數值過大:預期 ${g.origin??"值"} 應為 ${a}${g.maximum.toString()} ${h.unit??"個元素"}`:`數值過大:預期 ${g.origin??"值"} 應為 ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`數值過小:預期 ${g.origin} 應為 ${a}${g.minimum.toString()} ${h.unit}`:`數值過小:預期 ${g.origin} 應為 ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`無效的字串:必須以 "${a.prefix}" 開頭`:a.format==="ends_with"?`無效的字串:必須以 "${a.suffix}" 結尾`:a.format==="includes"?`無效的字串:必須包含 "${a.includes}"`:a.format==="regex"?`無效的字串:必須符合格式 ${a.pattern}`:`無效的 ${E[a.format]??g.format}`}case"not_multiple_of":return`無效的數字:必須為 ${g.divisor} 的倍數`;case"unrecognized_keys":return`無法識別的鍵值${g.keys.length>1?"們":""}:${cA(g.keys,"、")}`;case"invalid_key":return`${g.origin} 中有無效的鍵值`;case"invalid_union":return"無效的輸入值";case"invalid_element":return`${g.origin} 中有無效的值`;default:return"無效的輸入值"}}};function xy(){return{localeError:Gy()}}const Ly=()=>{const r={string:{unit:"àmi",verb:"ní"},file:{unit:"bytes",verb:"ní"},array:{unit:"nkan",verb:"ní"},set:{unit:"nkan",verb:"ní"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"nọ́mbà";case"object":{if(Array.isArray(g))return"akopọ";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ẹ̀rọ ìbáwọlé",email:"àdírẹ́sì ìmẹ́lì",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"àkókò ISO",date:"ọjọ́ ISO",time:"àkókò ISO",duration:"àkókò tó pé ISO",ipv4:"àdírẹ́sì IPv4",ipv6:"àdírẹ́sì IPv6",cidrv4:"àgbègbè IPv4",cidrv6:"àgbègbè IPv6",base64:"ọ̀rọ̀ tí a kọ́ ní base64",base64url:"ọ̀rọ̀ base64url",json_string:"ọ̀rọ̀ JSON",e164:"nọ́mbà E.164",jwt:"JWT",template_literal:"ẹ̀rọ ìbáwọlé"};return g=>{switch(g.code){case"invalid_type":return`Ìbáwọlé aṣìṣe: a ní láti fi ${g.expected}, àmọ̀ a rí ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Ìbáwọlé aṣìṣe: a ní láti fi ${YA(g.values[0])}`:`Àṣàyàn aṣìṣe: yan ọ̀kan lára ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Tó pọ̀ jù: a ní láti jẹ́ pé ${g.origin??"iye"} ${h.verb} ${a}${g.maximum} ${h.unit}`:`Tó pọ̀ jù: a ní láti jẹ́ ${a}${g.maximum}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Kéré ju: a ní láti jẹ́ pé ${g.origin} ${h.verb} ${a}${g.minimum} ${h.unit}`:`Kéré ju: a ní láti jẹ́ ${a}${g.minimum}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bẹ̀rẹ̀ pẹ̀lú "${a.prefix}"`:a.format==="ends_with"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ parí pẹ̀lú "${a.suffix}"`:a.format==="includes"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ ní "${a.includes}"`:a.format==="regex"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bá àpẹẹrẹ mu ${a.pattern}`:`Aṣìṣe: ${E[a.format]??g.format}`}case"not_multiple_of":return`Nọ́mbà aṣìṣe: gbọ́dọ̀ jẹ́ èyà pípín ti ${g.divisor}`;case"unrecognized_keys":return`Bọtìnì àìmọ̀: ${cA(g.keys,", ")}`;case"invalid_key":return`Bọtìnì aṣìṣe nínú ${g.origin}`;case"invalid_union":return"Ìbáwọlé aṣìṣe";case"invalid_element":return`Iye aṣìṣe nínú ${g.origin}`;default:return"Ìbáwọlé aṣìṣe"}}};function Py(){return{localeError:Ly()}}var ZB=Object.freeze({__proto__:null,ar:e4,az:r4,be:i4,bg:s4,ca:c4,cs:I4,da:l4,de:C4,en:LB,eo:m4,es:y4,fa:D4,fi:k4,fr:S4,frCA:R4,he:F4,hu:O4,id:U4,is:L4,it:Y4,ja:J4,ka:$4,kh:z4,km:PB,ko:W4,lt:Ay,mk:ty,ms:ny,nl:oy,no:sy,ota:cy,pl:ly,ps:Iy,pt:Cy,ru:fy,sl:hy,sv:py,ta:by,th:wy,tr:Sy,ua:Ry,uk:JB,ur:Fy,vi:Oy,yo:Py,zhCN:Uy,zhTW:xy}),HB;const $B=Symbol("ZodOutput"),XB=Symbol("ZodInput");class Ps{constructor(){this._map=new WeakMap,this._idmap=new Map}add(i,...u){const E=u[0];if(this._map.set(i,E),E&&typeof E=="object"&&"id"in E){if(this._idmap.has(E.id))throw new Error(`ID ${E.id} already exists in the registry`);this._idmap.set(E.id,i)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(i){const u=this._map.get(i);return u&&typeof u=="object"&&"id"in u&&this._idmap.delete(u.id),this._map.delete(i),this}get(i){const u=i._zod.parent;if(u){const E={...this.get(u)??{}};delete E.id;const g={...E,...this._map.get(i)};return Object.keys(g).length?g:void 0}return this._map.get(i)}has(i){return this._map.has(i)}}function Ys(){return new Ps}(HB=globalThis).__zod_globalRegistry??(HB.__zod_globalRegistry=Ys());const xt=globalThis.__zod_globalRegistry;function zB(r,i){return new r({type:"string",...tA(i)})}function KB(r,i){return new r({type:"string",coerce:!0,...tA(i)})}function js(r,i){return new r({type:"string",format:"email",check:"string_format",abort:!1,...tA(i)})}function ua(r,i){return new r({type:"string",format:"guid",check:"string_format",abort:!1,...tA(i)})}function Js(r,i){return new r({type:"string",format:"uuid",check:"string_format",abort:!1,...tA(i)})}function Zs(r,i){return new r({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...tA(i)})}function Hs(r,i){return new r({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...tA(i)})}function $s(r,i){return new r({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...tA(i)})}function Ia(r,i){return new r({type:"string",format:"url",check:"string_format",abort:!1,...tA(i)})}function Xs(r,i){return new r({type:"string",format:"emoji",check:"string_format",abort:!1,...tA(i)})}function zs(r,i){return new r({type:"string",format:"nanoid",check:"string_format",abort:!1,...tA(i)})}function Ks(r,i){return new r({type:"string",format:"cuid",check:"string_format",abort:!1,...tA(i)})}function Ws(r,i){return new r({type:"string",format:"cuid2",check:"string_format",abort:!1,...tA(i)})}function qs(r,i){return new r({type:"string",format:"ulid",check:"string_format",abort:!1,...tA(i)})}function Vs(r,i){return new r({type:"string",format:"xid",check:"string_format",abort:!1,...tA(i)})}function Ag(r,i){return new r({type:"string",format:"ksuid",check:"string_format",abort:!1,...tA(i)})}function eg(r,i){return new r({type:"string",format:"ipv4",check:"string_format",abort:!1,...tA(i)})}function tg(r,i){return new r({type:"string",format:"ipv6",check:"string_format",abort:!1,...tA(i)})}function WB(r,i){return new r({type:"string",format:"mac",check:"string_format",abort:!1,...tA(i)})}function rg(r,i){return new r({type:"string",format:"cidrv4",check:"string_format",abort:!1,...tA(i)})}function ng(r,i){return new r({type:"string",format:"cidrv6",check:"string_format",abort:!1,...tA(i)})}function ig(r,i){return new r({type:"string",format:"base64",check:"string_format",abort:!1,...tA(i)})}function og(r,i){return new r({type:"string",format:"base64url",check:"string_format",abort:!1,...tA(i)})}function ag(r,i){return new r({type:"string",format:"e164",check:"string_format",abort:!1,...tA(i)})}function sg(r,i){return new r({type:"string",format:"jwt",check:"string_format",abort:!1,...tA(i)})}const qB={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function VB(r,i){return new r({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...tA(i)})}function AC(r,i){return new r({type:"string",format:"date",check:"string_format",...tA(i)})}function eC(r,i){return new r({type:"string",format:"time",check:"string_format",precision:null,...tA(i)})}function tC(r,i){return new r({type:"string",format:"duration",check:"string_format",...tA(i)})}function rC(r,i){return new r({type:"number",checks:[],...tA(i)})}function nC(r,i){return new r({type:"number",coerce:!0,checks:[],...tA(i)})}function iC(r,i){return new r({type:"number",check:"number_format",abort:!1,format:"safeint",...tA(i)})}function oC(r,i){return new r({type:"number",check:"number_format",abort:!1,format:"float32",...tA(i)})}function aC(r,i){return new r({type:"number",check:"number_format",abort:!1,format:"float64",...tA(i)})}function sC(r,i){return new r({type:"number",check:"number_format",abort:!1,format:"int32",...tA(i)})}function gC(r,i){return new r({type:"number",check:"number_format",abort:!1,format:"uint32",...tA(i)})}function cC(r,i){return new r({type:"boolean",...tA(i)})}function uC(r,i){return new r({type:"boolean",coerce:!0,...tA(i)})}function IC(r,i){return new r({type:"bigint",...tA(i)})}function EC(r,i){return new r({type:"bigint",coerce:!0,...tA(i)})}function lC(r,i){return new r({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...tA(i)})}function BC(r,i){return new r({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...tA(i)})}function CC(r,i){return new r({type:"symbol",...tA(i)})}function QC(r,i){return new r({type:"undefined",...tA(i)})}function fC(r,i){return new r({type:"null",...tA(i)})}function dC(r){return new r({type:"any"})}function hC(r){return new r({type:"unknown"})}function mC(r,i){return new r({type:"never",...tA(i)})}function pC(r,i){return new r({type:"void",...tA(i)})}function yC(r,i){return new r({type:"date",...tA(i)})}function bC(r,i){return new r({type:"date",coerce:!0,...tA(i)})}function DC(r,i){return new r({type:"nan",...tA(i)})}function on(r,i){return new Rs({check:"less_than",...tA(i),value:r,inclusive:!1})}function Lt(r,i){return new Rs({check:"less_than",...tA(i),value:r,inclusive:!0})}function an(r,i){return new Ts({check:"greater_than",...tA(i),value:r,inclusive:!1})}function Qt(r,i){return new Ts({check:"greater_than",...tA(i),value:r,inclusive:!0})}function wC(r){return an(0,r)}function kC(r){return on(0,r)}function _C(r){return Lt(0,r)}function SC(r){return Qt(0,r)}function Vi(r,i){return new KE({check:"multiple_of",...tA(i),value:r})}function Ea(r,i){return new VE({check:"max_size",...tA(i),maximum:r})}function Ao(r,i){return new Al({check:"min_size",...tA(i),minimum:r})}function gg(r,i){return new el({check:"size_equals",...tA(i),size:r})}function la(r,i){return new tl({check:"max_length",...tA(i),maximum:r})}function zn(r,i){return new rl({check:"min_length",...tA(i),minimum:r})}function Ba(r,i){return new nl({check:"length_equals",...tA(i),length:r})}function cg(r,i){return new il({check:"string_format",format:"regex",...tA(i),pattern:r})}function ug(r){return new ol({check:"string_format",format:"lowercase",...tA(r)})}function Ig(r){return new al({check:"string_format",format:"uppercase",...tA(r)})}function Eg(r,i){return new sl({check:"string_format",format:"includes",...tA(i),includes:r})}function lg(r,i){return new gl({check:"string_format",format:"starts_with",...tA(i),prefix:r})}function Bg(r,i){return new cl({check:"string_format",format:"ends_with",...tA(i),suffix:r})}function vC(r,i,u){return new Il({check:"property",property:r,schema:i,...tA(u)})}function Cg(r,i){return new El({check:"mime_type",mime:r,...tA(i)})}function Mr(r){return new ll({check:"overwrite",tx:r})}function Qg(r){return Mr(i=>i.normalize(r))}function fg(){return Mr(r=>r.trim())}function dg(){return Mr(r=>r.toLowerCase())}function hg(){return Mr(r=>r.toUpperCase())}function mg(){return Mr(r=>HI(r))}function RC(r,i,u){return new r({type:"array",element:i,...tA(u)})}function Yy(r,i,u){return new r({type:"union",options:i,...tA(u)})}function jy(r,i,u,E){return new r({type:"union",options:u,discriminator:i,...tA(E)})}function Jy(r,i,u){return new r({type:"intersection",left:i,right:u})}function Zy(r,i,u,E){const g=u instanceof HA,a=g?E:u,h=g?u:null;return new r({type:"tuple",items:i,rest:h,...tA(a)})}function Hy(r,i,u,E){return new r({type:"record",keyType:i,valueType:u,...tA(E)})}function $y(r,i,u,E){return new r({type:"map",keyType:i,valueType:u,...tA(E)})}function Xy(r,i,u){return new r({type:"set",valueType:i,...tA(u)})}function zy(r,i,u){const E=Array.isArray(i)?Object.fromEntries(i.map(g=>[g,g])):i;return new r({type:"enum",entries:E,...tA(u)})}function Ky(r,i,u){return new r({type:"enum",entries:i,...tA(u)})}function Wy(r,i,u){return new r({type:"literal",values:Array.isArray(i)?i:[i],...tA(u)})}function TC(r,i){return new r({type:"file",...tA(i)})}function qy(r,i){return new r({type:"transform",transform:i})}function Vy(r,i){return new r({type:"optional",innerType:i})}function Ab(r,i){return new r({type:"nullable",innerType:i})}function eb(r,i,u){return new r({type:"default",innerType:i,get defaultValue(){return typeof u=="function"?u():ta(u)}})}function tb(r,i,u){return new r({type:"nonoptional",innerType:i,...tA(u)})}function rb(r,i){return new r({type:"success",innerType:i})}function nb(r,i,u){return new r({type:"catch",innerType:i,catchValue:typeof u=="function"?u:()=>u})}function ib(r,i,u){return new r({type:"pipe",in:i,out:u})}function ob(r,i){return new r({type:"readonly",innerType:i})}function ab(r,i,u){return new r({type:"template_literal",parts:i,...tA(u)})}function sb(r,i){return new r({type:"lazy",getter:i})}function gb(r,i){return new r({type:"promise",innerType:i})}function FC(r,i,u){const E=tA(u);return E.abort??(E.abort=!0),new r({type:"custom",check:"custom",fn:i,...E})}function MC(r,i,u){return new r({type:"custom",check:"custom",fn:i,...tA(u)})}function OC(r){const i=NC(u=>(u.addIssue=E=>{if(typeof E=="string")u.issues.push($n(E,u.value,i._zod.def));else{const g=E;g.fatal&&(g.continue=!1),g.code??(g.code="custom"),g.input??(g.input=u.value),g.inst??(g.inst=i),g.continue??(g.continue=!i._zod.def.abort),u.issues.push($n(g))}},r(u.value,u)));return i}function NC(r,i){const u=new we({check:"custom",...tA(i)});return u._zod.check=r,u}function UC(r){const i=new we({check:"describe"});return i._zod.onattach=[u=>{const E=xt.get(u)??{};xt.add(u,{...E,description:r})}],i._zod.check=()=>{},i}function GC(r){const i=new we({check:"meta"});return i._zod.onattach=[u=>{const E=xt.get(u)??{};xt.add(u,{...E,...r})}],i._zod.check=()=>{},i}function xC(r,i){const u=tA(i);let E=u.truthy??["true","1","yes","on","y","enabled"],g=u.falsy??["false","0","no","off","n","disabled"];u.case!=="sensitive"&&(E=E.map(j=>typeof j=="string"?j.toLowerCase():j),g=g.map(j=>typeof j=="string"?j.toLowerCase():j));const a=new Set(E),h=new Set(g),w=r.Codec??Ls,k=r.Boolean??Os,v=r.String??Ki,F=new v({type:"string",error:u.error}),x=new k({type:"boolean",error:u.error}),$=new w({type:"pipe",in:F,out:x,transform:(j,P)=>{let rA=j;return u.case!=="sensitive"&&(rA=rA.toLowerCase()),a.has(rA)?!0:h.has(rA)?!1:(P.issues.push({code:"invalid_value",expected:"stringbool",values:[...a,...h],input:P.value,inst:$,continue:!1}),{})},reverseTransform:(j,P)=>j===!0?E[0]||"true":g[0]||"false",error:u.error});return $}function eo(r,i,u,E={}){const g=tA(E),a={...tA(E),check:"string_format",type:"string",format:i,fn:typeof u=="function"?u:w=>u.test(w),...g};return u instanceof RegExp&&(a.pattern=u),new r(a)}class pg{constructor(i){this.counter=0,this.metadataRegistry=i?.metadata??xt,this.target=i?.target??"draft-2020-12",this.unrepresentable=i?.unrepresentable??"throw",this.override=i?.override??(()=>{}),this.io=i?.io??"output",this.seen=new Map}process(i,u={path:[],schemaPath:[]}){var E;const g=i._zod.def,a={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},h=this.seen.get(i);if(h)return h.count++,u.schemaPath.includes(i)&&(h.cycle=u.path),h.schema;const w={schema:{},count:1,cycle:void 0,path:u.path};this.seen.set(i,w);const k=i._zod.toJSONSchema?.();if(k)w.schema=k;else{const x={...u,schemaPath:[...u.schemaPath,i],path:u.path},$=i._zod.parent;if($)w.ref=$,this.process($,x),this.seen.get($).isParent=!0;else{const j=w.schema;switch(g.type){case"string":{const P=j;P.type="string";const{minimum:rA,maximum:iA,format:TA,patterns:pA,contentEncoding:MA}=i._zod.bag;if(typeof rA=="number"&&(P.minLength=rA),typeof iA=="number"&&(P.maxLength=iA),TA&&(P.format=a[TA]??TA,P.format===""&&delete P.format),MA&&(P.contentEncoding=MA),pA&&pA.size>0){const xA=[...pA];xA.length===1?P.pattern=xA[0].source:xA.length>1&&(w.schema.allOf=[...xA.map(ce=>({...this.target==="draft-7"||this.target==="draft-4"||this.target==="openapi-3.0"?{type:"string"}:{},pattern:ce.source}))])}break}case"number":{const P=j,{minimum:rA,maximum:iA,format:TA,multipleOf:pA,exclusiveMaximum:MA,exclusiveMinimum:xA}=i._zod.bag;typeof TA=="string"&&TA.includes("int")?P.type="integer":P.type="number",typeof xA=="number"&&(this.target==="draft-4"||this.target==="openapi-3.0"?(P.minimum=xA,P.exclusiveMinimum=!0):P.exclusiveMinimum=xA),typeof rA=="number"&&(P.minimum=rA,typeof xA=="number"&&this.target!=="draft-4"&&(xA>=rA?delete P.minimum:delete P.exclusiveMinimum)),typeof MA=="number"&&(this.target==="draft-4"||this.target==="openapi-3.0"?(P.maximum=MA,P.exclusiveMaximum=!0):P.exclusiveMaximum=MA),typeof iA=="number"&&(P.maximum=iA,typeof MA=="number"&&this.target!=="draft-4"&&(MA<=iA?delete P.maximum:delete P.exclusiveMaximum)),typeof pA=="number"&&(P.multipleOf=pA);break}case"boolean":{const P=j;P.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema");break}case"null":{this.target==="openapi-3.0"?(j.type="string",j.nullable=!0,j.enum=[null]):j.type="null";break}case"any":break;case"unknown":break;case"undefined":{if(this.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema");break}case"void":{if(this.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema");break}case"never":{j.not={};break}case"date":{if(this.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema");break}case"array":{const P=j,{minimum:rA,maximum:iA}=i._zod.bag;typeof rA=="number"&&(P.minItems=rA),typeof iA=="number"&&(P.maxItems=iA),P.type="array",P.items=this.process(g.element,{...x,path:[...x.path,"items"]});break}case"object":{const P=j;P.type="object",P.properties={};const rA=g.shape;for(const pA in rA)P.properties[pA]=this.process(rA[pA],{...x,path:[...x.path,"properties",pA]});const iA=new Set(Object.keys(rA)),TA=new Set([...iA].filter(pA=>{const MA=g.shape[pA]._zod;return this.io==="input"?MA.optin===void 0:MA.optout===void 0}));TA.size>0&&(P.required=Array.from(TA)),g.catchall?._zod.def.type==="never"?P.additionalProperties=!1:g.catchall?g.catchall&&(P.additionalProperties=this.process(g.catchall,{...x,path:[...x.path,"additionalProperties"]})):this.io==="output"&&(P.additionalProperties=!1);break}case"union":{const P=j,rA=g.discriminator!==void 0,iA=g.options.map((TA,pA)=>this.process(TA,{...x,path:[...x.path,rA?"oneOf":"anyOf",pA]}));rA?P.oneOf=iA:P.anyOf=iA;break}case"intersection":{const P=j,rA=this.process(g.left,{...x,path:[...x.path,"allOf",0]}),iA=this.process(g.right,{...x,path:[...x.path,"allOf",1]}),TA=MA=>"allOf"in MA&&Object.keys(MA).length===1,pA=[...TA(rA)?rA.allOf:[rA],...TA(iA)?iA.allOf:[iA]];P.allOf=pA;break}case"tuple":{const P=j;P.type="array";const rA=this.target==="draft-2020-12"?"prefixItems":"items",iA=this.target==="draft-2020-12"||this.target==="openapi-3.0"?"items":"additionalItems",TA=g.items.map((ce,se)=>this.process(ce,{...x,path:[...x.path,rA,se]})),pA=g.rest?this.process(g.rest,{...x,path:[...x.path,iA,...this.target==="openapi-3.0"?[g.items.length]:[]]}):null;this.target==="draft-2020-12"?(P.prefixItems=TA,pA&&(P.items=pA)):this.target==="openapi-3.0"?(P.items={anyOf:TA},pA&&P.items.anyOf.push(pA),P.minItems=TA.length,pA||(P.maxItems=TA.length)):(P.items=TA,pA&&(P.additionalItems=pA));const{minimum:MA,maximum:xA}=i._zod.bag;typeof MA=="number"&&(P.minItems=MA),typeof xA=="number"&&(P.maxItems=xA);break}case"record":{const P=j;P.type="object",(this.target==="draft-7"||this.target==="draft-2020-12")&&(P.propertyNames=this.process(g.keyType,{...x,path:[...x.path,"propertyNames"]})),P.additionalProperties=this.process(g.valueType,{...x,path:[...x.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema");break}case"enum":{const P=j,rA=Es(g.entries);rA.every(iA=>typeof iA=="number")&&(P.type="number"),rA.every(iA=>typeof iA=="string")&&(P.type="string"),P.enum=rA;break}case"literal":{const P=j,rA=[];for(const iA of g.values)if(iA===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof iA=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");rA.push(Number(iA))}else rA.push(iA);if(rA.length!==0)if(rA.length===1){const iA=rA[0];P.type=iA===null?"null":typeof iA,this.target==="draft-4"||this.target==="openapi-3.0"?P.enum=[iA]:P.const=iA}else rA.every(iA=>typeof iA=="number")&&(P.type="number"),rA.every(iA=>typeof iA=="string")&&(P.type="string"),rA.every(iA=>typeof iA=="boolean")&&(P.type="string"),rA.every(iA=>iA===null)&&(P.type="null"),P.enum=rA;break}case"file":{const P=j,rA={type:"string",format:"binary",contentEncoding:"binary"},{minimum:iA,maximum:TA,mime:pA}=i._zod.bag;iA!==void 0&&(rA.minLength=iA),TA!==void 0&&(rA.maxLength=TA),pA?pA.length===1?(rA.contentMediaType=pA[0],Object.assign(P,rA)):P.anyOf=pA.map(MA=>({...rA,contentMediaType:MA})):Object.assign(P,rA);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{const P=this.process(g.innerType,x);this.target==="openapi-3.0"?(w.ref=g.innerType,j.nullable=!0):j.anyOf=[P,{type:"null"}];break}case"nonoptional":{this.process(g.innerType,x),w.ref=g.innerType;break}case"success":{const P=j;P.type="boolean";break}case"default":{this.process(g.innerType,x),w.ref=g.innerType,j.default=JSON.parse(JSON.stringify(g.defaultValue));break}case"prefault":{this.process(g.innerType,x),w.ref=g.innerType,this.io==="input"&&(j._prefault=JSON.parse(JSON.stringify(g.defaultValue)));break}case"catch":{this.process(g.innerType,x),w.ref=g.innerType;let P;try{P=g.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}j.default=P;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{const P=j,rA=i._zod.pattern;if(!rA)throw new Error("Pattern not found in template literal");P.type="string",P.pattern=rA.source;break}case"pipe":{const P=this.io==="input"?g.in._zod.def.type==="transform"?g.out:g.in:g.out;this.process(P,x),w.ref=P;break}case"readonly":{this.process(g.innerType,x),w.ref=g.innerType,j.readOnly=!0;break}case"promise":{this.process(g.innerType,x),w.ref=g.innerType;break}case"optional":{this.process(g.innerType,x),w.ref=g.innerType;break}case"lazy":{const P=i._zod.innerType;this.process(P,x),w.ref=P;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}case"function":{if(this.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema");break}}}}const v=this.metadataRegistry.get(i);return v&&Object.assign(w.schema,v),this.io==="input"&&ot(i)&&(delete w.schema.examples,delete w.schema.default),this.io==="input"&&w.schema._prefault&&((E=w.schema).default??(E.default=w.schema._prefault)),delete w.schema._prefault,this.seen.get(i).schema}emit(i,u){const E={cycles:u?.cycles??"ref",reused:u?.reused??"inline",external:u?.external??void 0},g=this.seen.get(i);if(!g)throw new Error("Unprocessed schema. This is a bug in Zod.");const a=F=>{const x=this.target==="draft-2020-12"?"$defs":"definitions";if(E.external){const rA=E.external.registry.get(F[0])?.id,iA=E.external.uri??(pA=>pA);if(rA)return{ref:iA(rA)};const TA=F[1].defId??F[1].schema.id??`schema${this.counter++}`;return F[1].defId=TA,{defId:TA,ref:`${iA("__shared")}#/${x}/${TA}`}}if(F[1]===g)return{ref:"#"};const j=`#/${x}/`,P=F[1].schema.id??`__schema${this.counter++}`;return{defId:P,ref:j+P}},h=F=>{if(F[1].schema.$ref)return;const x=F[1],{ref:$,defId:j}=a(F);x.def={...x.schema},j&&(x.defId=j);const P=x.schema;for(const rA in P)delete P[rA];P.$ref=$};if(E.cycles==="throw")for(const F of this.seen.entries()){const x=F[1];if(x.cycle)throw new Error(`Cycle detected: #/${x.cycle?.join("/")}/ -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const F of this.seen.entries()){const x=F[1];if(i===F[0]){h(F);continue}if(E.external){const j=E.external.registry.get(F[0])?.id;if(i!==F[0]&&j){h(F);continue}}if(this.metadataRegistry.get(F[0])?.id){h(F);continue}if(x.cycle){h(F);continue}if(x.count>1&&E.reused==="ref"){h(F);continue}}const w=(F,x)=>{const $=this.seen.get(F),j=$.def??$.schema,P={...j};if($.ref===null)return;const rA=$.ref;if($.ref=null,rA){w(rA,x);const iA=this.seen.get(rA).schema;iA.$ref&&(x.target==="draft-7"||x.target==="draft-4"||x.target==="openapi-3.0")?(j.allOf=j.allOf??[],j.allOf.push(iA)):(Object.assign(j,iA),Object.assign(j,P))}$.isParent||this.override({zodSchema:F,jsonSchema:j,path:$.path??[]})};for(const F of[...this.seen.entries()].reverse())w(F[0],{target:this.target});const k={};if(this.target==="draft-2020-12"?k.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?k.$schema="http://json-schema.org/draft-07/schema#":this.target==="draft-4"?k.$schema="http://json-schema.org/draft-04/schema#":this.target==="openapi-3.0"||console.warn(`Invalid target: ${this.target}`),E.external?.uri){const F=E.external.registry.get(i)?.id;if(!F)throw new Error("Schema is missing an `id` property");k.$id=E.external.uri(F)}Object.assign(k,g.def);const v=E.external?.defs??{};for(const F of this.seen.entries()){const x=F[1];x.def&&x.defId&&(v[x.defId]=x.def)}E.external||Object.keys(v).length>0&&(this.target==="draft-2020-12"?k.$defs=v:k.definitions=v);try{return JSON.parse(JSON.stringify(k))}catch{throw new Error("Error converting schema to JSON.")}}}function LC(r,i){if(r instanceof Ps){const E=new pg(i),g={};for(const w of r._idmap.entries()){const[k,v]=w;E.process(v)}const a={},h={registry:r,uri:i?.uri,defs:g};for(const w of r._idmap.entries()){const[k,v]=w;a[k]=E.emit(v,{...i,external:h})}if(Object.keys(g).length>0){const w=E.target==="draft-2020-12"?"$defs":"definitions";a.__shared={[w]:g}}return{schemas:a}}const u=new pg(i);return u.process(r),u.emit(r,i)}function ot(r,i){const u=i??{seen:new Set};if(u.seen.has(r))return!1;u.seen.add(r);const E=r._zod.def;if(E.type==="transform")return!0;if(E.type==="array")return ot(E.element,u);if(E.type==="set")return ot(E.valueType,u);if(E.type==="lazy")return ot(E.getter(),u);if(E.type==="promise"||E.type==="optional"||E.type==="nonoptional"||E.type==="nullable"||E.type==="readonly"||E.type==="default"||E.type==="prefault")return ot(E.innerType,u);if(E.type==="intersection")return ot(E.left,u)||ot(E.right,u);if(E.type==="record"||E.type==="map")return ot(E.keyType,u)||ot(E.valueType,u);if(E.type==="pipe")return ot(E.in,u)||ot(E.out,u);if(E.type==="object"){for(const g in E.shape)if(ot(E.shape[g],u))return!0;return!1}if(E.type==="union"){for(const g of E.options)if(ot(g,u))return!0;return!1}if(E.type==="tuple"){for(const g of E.items)if(ot(g,u))return!0;return!!(E.rest&&ot(E.rest,u))}return!1}var cb=Object.freeze({__proto__:null}),ub=Object.freeze({__proto__:null,$ZodAny:zl,$ZodArray:eB,$ZodAsyncError:en,$ZodBase64:Ul,$ZodBase64URL:xl,$ZodBigInt:Ns,$ZodBigIntFormat:Zl,$ZodBoolean:Os,$ZodCIDRv4:Ol,$ZodCIDRv6:Nl,$ZodCUID:yl,$ZodCUID2:bl,$ZodCatch:_B,$ZodCheck:we,$ZodCheckBigIntFormat:qE,$ZodCheckEndsWith:cl,$ZodCheckGreaterThan:Ts,$ZodCheckIncludes:sl,$ZodCheckLengthEquals:nl,$ZodCheckLessThan:Rs,$ZodCheckLowerCase:ol,$ZodCheckMaxLength:tl,$ZodCheckMaxSize:VE,$ZodCheckMimeType:El,$ZodCheckMinLength:rl,$ZodCheckMinSize:Al,$ZodCheckMultipleOf:KE,$ZodCheckNumberFormat:WE,$ZodCheckOverwrite:ll,$ZodCheckProperty:Il,$ZodCheckRegex:il,$ZodCheckSizeEquals:el,$ZodCheckStartsWith:gl,$ZodCheckStringFormat:zi,$ZodCheckUpperCase:al,$ZodCodec:Ls,$ZodCustom:UB,$ZodCustomStringFormat:jl,$ZodDate:Vl,$ZodDefault:pB,$ZodDiscriminatedUnion:aB,$ZodE164:Ll,$ZodEmail:dl,$ZodEmoji:ml,$ZodEncodeError:qo,$ZodEnum:BB,$ZodError:Cs,$ZodFile:QB,$ZodFunction:MB,$ZodGUID:Ql,$ZodIPv4:Tl,$ZodIPv6:Fl,$ZodISODate:Sl,$ZodISODateTime:_l,$ZodISODuration:Rl,$ZodISOTime:vl,$ZodIntersection:sB,$ZodJWT:Yl,$ZodKSUID:kl,$ZodLazy:NB,$ZodLiteral:CB,$ZodMAC:Ml,$ZodMap:uB,$ZodNaN:SB,$ZodNanoID:pl,$ZodNever:Wl,$ZodNonOptional:DB,$ZodNull:Xl,$ZodNullable:mB,$ZodNumber:Ms,$ZodNumberFormat:Jl,$ZodObject:nB,$ZodObjectJIT:iB,$ZodOptional:hB,$ZodPipe:vB,$ZodPrefault:bB,$ZodPromise:OB,$ZodReadonly:RB,$ZodRealError:Ct,$ZodRecord:cB,$ZodRegistry:Ps,$ZodSet:EB,$ZodString:Ki,$ZodStringFormat:Qe,$ZodSuccess:kB,$ZodSymbol:Hl,$ZodTemplateLiteral:FB,$ZodTransform:fB,$ZodTuple:xs,$ZodType:HA,$ZodULID:Dl,$ZodURL:hl,$ZodUUID:fl,$ZodUndefined:$l,$ZodUnion:Us,$ZodUnknown:Kl,$ZodVoid:ql,$ZodXID:wl,$brand:jI,$constructor:H,$input:XB,$output:$B,Doc:Bl,JSONSchema:cb,JSONSchemaGenerator:pg,NEVER:YI,TimePrecision:qB,_any:dC,_array:RC,_base64:ig,_base64url:og,_bigint:IC,_boolean:cC,_catch:nb,_check:NC,_cidrv4:rg,_cidrv6:ng,_coercedBigint:EC,_coercedBoolean:uC,_coercedDate:bC,_coercedNumber:nC,_coercedString:KB,_cuid:Ks,_cuid2:Ws,_custom:FC,_date:yC,_decode:ps,_decodeAsync:bs,_default:eb,_discriminatedUnion:jy,_e164:ag,_email:js,_emoji:Xs,_encode:ms,_encodeAsync:ys,_endsWith:Bg,_enum:zy,_file:TC,_float32:oC,_float64:aC,_gt:an,_gte:Qt,_guid:ua,_includes:Eg,_int:iC,_int32:sC,_int64:lC,_intersection:Jy,_ipv4:eg,_ipv6:tg,_isoDate:AC,_isoDateTime:VB,_isoDuration:tC,_isoTime:eC,_jwt:sg,_ksuid:Ag,_lazy:sb,_length:Ba,_literal:Wy,_lowercase:ug,_lt:on,_lte:Lt,_mac:WB,_map:$y,_max:Lt,_maxLength:la,_maxSize:Ea,_mime:Cg,_min:Qt,_minLength:zn,_minSize:Ao,_multipleOf:Vi,_nan:DC,_nanoid:zs,_nativeEnum:Ky,_negative:kC,_never:mC,_nonnegative:SC,_nonoptional:tb,_nonpositive:_C,_normalize:Qg,_null:fC,_nullable:Ab,_number:rC,_optional:Vy,_overwrite:Mr,_parse:ji,_parseAsync:Ji,_pipe:ib,_positive:wC,_promise:gb,_property:vC,_readonly:ob,_record:Hy,_refine:MC,_regex:cg,_safeDecode:ws,_safeDecodeAsync:_s,_safeEncode:Ds,_safeEncodeAsync:ks,_safeParse:Zi,_safeParseAsync:Hi,_set:Xy,_size:gg,_slugify:mg,_startsWith:lg,_string:zB,_stringFormat:eo,_stringbool:xC,_success:rb,_superRefine:OC,_symbol:CC,_templateLiteral:ab,_toLowerCase:dg,_toUpperCase:hg,_transform:qy,_trim:fg,_tuple:Zy,_uint32:gC,_uint64:BC,_ulid:qs,_undefined:QC,_union:Yy,_unknown:hC,_uppercase:Ig,_url:Ia,_uuid:Js,_uuidv4:Zs,_uuidv6:Hs,_uuidv7:$s,_void:pC,_xid:Vs,clone:St,config:it,decode:Gp,decodeAsync:Lp,describe:UC,encode:Up,encodeAsync:xp,flattenError:Qs,formatError:fs,globalConfig:Vo,globalRegistry:xt,isValidBase64:Fs,isValidBase64URL:Gl,isValidJWT:Pl,locales:ZB,meta:GC,parse:ds,parseAsync:hs,prettifyError:uE,regexes:vs,registry:Ys,safeDecode:Yp,safeDecodeAsync:Jp,safeEncode:Pp,safeEncodeAsync:jp,safeParse:IE,safeParseAsync:EE,toDotPath:cE,toJSONSchema:LC,treeifyError:gE,util:aE,version:Cl});const yg=H("ZodISODateTime",(r,i)=>{_l.init(r,i),fe.init(r,i)});function PC(r){return VB(yg,r)}const bg=H("ZodISODate",(r,i)=>{Sl.init(r,i),fe.init(r,i)});function YC(r){return AC(bg,r)}const Dg=H("ZodISOTime",(r,i)=>{vl.init(r,i),fe.init(r,i)});function jC(r){return eC(Dg,r)}const wg=H("ZodISODuration",(r,i)=>{Rl.init(r,i),fe.init(r,i)});function JC(r){return tC(wg,r)}var Ib=Object.freeze({__proto__:null,ZodISODate:bg,ZodISODateTime:yg,ZodISODuration:wg,ZodISOTime:Dg,date:YC,datetime:PC,duration:JC,time:jC});const ZC=(r,i)=>{Cs.init(r,i),r.name="ZodError",Object.defineProperties(r,{format:{value:u=>fs(r,u)},flatten:{value:u=>Qs(r,u)},addIssue:{value:u=>{r.issues.push(u),r.message=JSON.stringify(r.issues,Aa,2)}},addIssues:{value:u=>{r.issues.push(...u),r.message=JSON.stringify(r.issues,Aa,2)}},isEmpty:{get(){return r.issues.length===0}}})},Eb=H("ZodError",ZC),ft=H("ZodError",ZC,{Parent:Error}),HC=ji(ft),$C=Ji(ft),XC=Zi(ft),zC=Hi(ft),KC=ms(ft),WC=ps(ft),qC=ys(ft),VC=bs(ft),AQ=Ds(ft),eQ=ws(ft),tQ=ks(ft),rQ=_s(ft),qA=H("ZodType",(r,i)=>(HA.init(r,i),r.def=i,r.type=i.type,Object.defineProperty(r,"_def",{value:i}),r.check=(...u)=>r.clone(lr(i,{checks:[...i.checks??[],...u.map(E=>typeof E=="function"?{_zod:{check:E,def:{check:"custom"},onattach:[]}}:E)]})),r.clone=(u,E)=>St(r,u,E),r.brand=()=>r,r.register=(u,E)=>(u.add(r,E),r),r.parse=(u,E)=>HC(r,u,E,{callee:r.parse}),r.safeParse=(u,E)=>XC(r,u,E),r.parseAsync=async(u,E)=>$C(r,u,E,{callee:r.parseAsync}),r.safeParseAsync=async(u,E)=>zC(r,u,E),r.spa=r.safeParseAsync,r.encode=(u,E)=>KC(r,u,E),r.decode=(u,E)=>WC(r,u,E),r.encodeAsync=async(u,E)=>qC(r,u,E),r.decodeAsync=async(u,E)=>VC(r,u,E),r.safeEncode=(u,E)=>AQ(r,u,E),r.safeDecode=(u,E)=>eQ(r,u,E),r.safeEncodeAsync=async(u,E)=>tQ(r,u,E),r.safeDecodeAsync=async(u,E)=>rQ(r,u,E),r.refine=(u,E)=>r.check(LQ(u,E)),r.superRefine=u=>r.check(PQ(u)),r.overwrite=u=>r.check(Mr(u)),r.optional=()=>ba(r),r.nullable=()=>dt(r),r.nullish=()=>ba(dt(r)),r.nonoptional=u=>kQ(r,u),r.array=()=>be(r),r.or=u=>ya([r,u]),r.and=u=>BQ(r,u),r.transform=u=>Da(r,qg(u)),r.default=u=>bQ(r,u),r.prefault=u=>wQ(r,u),r.catch=u=>vQ(r,u),r.pipe=u=>Da(r,u),r.readonly=()=>FQ(r),r.describe=u=>{const E=r.clone();return xt.add(E,{description:u}),E},Object.defineProperty(r,"description",{get(){return xt.get(r)?.description},configurable:!0}),r.meta=(...u)=>{if(u.length===0)return xt.get(r);const E=r.clone();return xt.add(E,u[0]),E},r.isOptional=()=>r.safeParse(void 0).success,r.isNullable=()=>r.safeParse(null).success,r)),kg=H("_ZodString",(r,i)=>{Ki.init(r,i),qA.init(r,i);const u=r._zod.bag;r.format=u.format??null,r.minLength=u.minimum??null,r.maxLength=u.maximum??null,r.regex=(...E)=>r.check(cg(...E)),r.includes=(...E)=>r.check(Eg(...E)),r.startsWith=(...E)=>r.check(lg(...E)),r.endsWith=(...E)=>r.check(Bg(...E)),r.min=(...E)=>r.check(zn(...E)),r.max=(...E)=>r.check(la(...E)),r.length=(...E)=>r.check(Ba(...E)),r.nonempty=(...E)=>r.check(zn(1,...E)),r.lowercase=E=>r.check(ug(E)),r.uppercase=E=>r.check(Ig(E)),r.trim=()=>r.check(fg()),r.normalize=(...E)=>r.check(Qg(...E)),r.toLowerCase=()=>r.check(dg()),r.toUpperCase=()=>r.check(hg()),r.slugify=()=>r.check(mg())}),Ca=H("ZodString",(r,i)=>{Ki.init(r,i),kg.init(r,i),r.email=u=>r.check(js(_g,u)),r.url=u=>r.check(Ia(fa,u)),r.jwt=u=>r.check(sg(jg,u)),r.emoji=u=>r.check(Xs(Sg,u)),r.guid=u=>r.check(ua(Qa,u)),r.uuid=u=>r.check(Js(Cr,u)),r.uuidv4=u=>r.check(Zs(Cr,u)),r.uuidv6=u=>r.check(Hs(Cr,u)),r.uuidv7=u=>r.check($s(Cr,u)),r.nanoid=u=>r.check(zs(vg,u)),r.guid=u=>r.check(ua(Qa,u)),r.cuid=u=>r.check(Ks(Rg,u)),r.cuid2=u=>r.check(Ws(Tg,u)),r.ulid=u=>r.check(qs(Fg,u)),r.base64=u=>r.check(ig(Lg,u)),r.base64url=u=>r.check(og(Pg,u)),r.xid=u=>r.check(Vs(Mg,u)),r.ksuid=u=>r.check(Ag(Og,u)),r.ipv4=u=>r.check(eg(Ng,u)),r.ipv6=u=>r.check(tg(Ug,u)),r.cidrv4=u=>r.check(rg(Gg,u)),r.cidrv6=u=>r.check(ng(xg,u)),r.e164=u=>r.check(ag(Yg,u)),r.datetime=u=>r.check(PC(u)),r.date=u=>r.check(YC(u)),r.time=u=>r.check(jC(u)),r.duration=u=>r.check(JC(u))});function GA(r){return zB(Ca,r)}const fe=H("ZodStringFormat",(r,i)=>{Qe.init(r,i),kg.init(r,i)}),_g=H("ZodEmail",(r,i)=>{dl.init(r,i),fe.init(r,i)});function lb(r){return js(_g,r)}const Qa=H("ZodGUID",(r,i)=>{Ql.init(r,i),fe.init(r,i)});function Bb(r){return ua(Qa,r)}const Cr=H("ZodUUID",(r,i)=>{fl.init(r,i),fe.init(r,i)});function Cb(r){return Js(Cr,r)}function Qb(r){return Zs(Cr,r)}function fb(r){return Hs(Cr,r)}function db(r){return $s(Cr,r)}const fa=H("ZodURL",(r,i)=>{hl.init(r,i),fe.init(r,i)});function hb(r){return Ia(fa,r)}function mb(r){return Ia(fa,{protocol:/^https?$/,hostname:TE,...tA(r)})}const Sg=H("ZodEmoji",(r,i)=>{ml.init(r,i),fe.init(r,i)});function pb(r){return Xs(Sg,r)}const vg=H("ZodNanoID",(r,i)=>{pl.init(r,i),fe.init(r,i)});function yb(r){return zs(vg,r)}const Rg=H("ZodCUID",(r,i)=>{yl.init(r,i),fe.init(r,i)});function bb(r){return Ks(Rg,r)}const Tg=H("ZodCUID2",(r,i)=>{bl.init(r,i),fe.init(r,i)});function Db(r){return Ws(Tg,r)}const Fg=H("ZodULID",(r,i)=>{Dl.init(r,i),fe.init(r,i)});function wb(r){return qs(Fg,r)}const Mg=H("ZodXID",(r,i)=>{wl.init(r,i),fe.init(r,i)});function kb(r){return Vs(Mg,r)}const Og=H("ZodKSUID",(r,i)=>{kl.init(r,i),fe.init(r,i)});function _b(r){return Ag(Og,r)}const Ng=H("ZodIPv4",(r,i)=>{Tl.init(r,i),fe.init(r,i)});function Sb(r){return eg(Ng,r)}const nQ=H("ZodMAC",(r,i)=>{Ml.init(r,i),fe.init(r,i)});function vb(r){return WB(nQ,r)}const Ug=H("ZodIPv6",(r,i)=>{Fl.init(r,i),fe.init(r,i)});function Rb(r){return tg(Ug,r)}const Gg=H("ZodCIDRv4",(r,i)=>{Ol.init(r,i),fe.init(r,i)});function Tb(r){return rg(Gg,r)}const xg=H("ZodCIDRv6",(r,i)=>{Nl.init(r,i),fe.init(r,i)});function Fb(r){return ng(xg,r)}const Lg=H("ZodBase64",(r,i)=>{Ul.init(r,i),fe.init(r,i)});function Mb(r){return ig(Lg,r)}const Pg=H("ZodBase64URL",(r,i)=>{xl.init(r,i),fe.init(r,i)});function Ob(r){return og(Pg,r)}const Yg=H("ZodE164",(r,i)=>{Ll.init(r,i),fe.init(r,i)});function Nb(r){return ag(Yg,r)}const jg=H("ZodJWT",(r,i)=>{Yl.init(r,i),fe.init(r,i)});function Ub(r){return sg(jg,r)}const to=H("ZodCustomStringFormat",(r,i)=>{jl.init(r,i),fe.init(r,i)});function Gb(r,i,u={}){return eo(to,r,i,u)}function xb(r){return eo(to,"hostname",RE,r)}function Lb(r){return eo(to,"hex",XE,r)}function Pb(r,i){const u=i?.enc??"hex",E=`${r}_${u}`,g=vs[E];if(!g)throw new Error(`Unrecognized hash format: ${E}`);return eo(to,E,g,i)}const da=H("ZodNumber",(r,i)=>{Ms.init(r,i),qA.init(r,i),r.gt=(E,g)=>r.check(an(E,g)),r.gte=(E,g)=>r.check(Qt(E,g)),r.min=(E,g)=>r.check(Qt(E,g)),r.lt=(E,g)=>r.check(on(E,g)),r.lte=(E,g)=>r.check(Lt(E,g)),r.max=(E,g)=>r.check(Lt(E,g)),r.int=E=>r.check(Jg(E)),r.safe=E=>r.check(Jg(E)),r.positive=E=>r.check(an(0,E)),r.nonnegative=E=>r.check(Qt(0,E)),r.negative=E=>r.check(on(0,E)),r.nonpositive=E=>r.check(Lt(0,E)),r.multipleOf=(E,g)=>r.check(Vi(E,g)),r.step=(E,g)=>r.check(Vi(E,g)),r.finite=()=>r;const u=r._zod.bag;r.minValue=Math.max(u.minimum??Number.NEGATIVE_INFINITY,u.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,r.maxValue=Math.min(u.maximum??Number.POSITIVE_INFINITY,u.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,r.isInt=(u.format??"").includes("int")||Number.isSafeInteger(u.multipleOf??.5),r.isFinite=!0,r.format=u.format??null});function G(r){return rC(da,r)}const Kn=H("ZodNumberFormat",(r,i)=>{Jl.init(r,i),da.init(r,i)});function Jg(r){return iC(Kn,r)}function Yb(r){return oC(Kn,r)}function jb(r){return aC(Kn,r)}function Jb(r){return sC(Kn,r)}function Zb(r){return gC(Kn,r)}const ha=H("ZodBoolean",(r,i)=>{Os.init(r,i),qA.init(r,i)});function Qr(r){return cC(ha,r)}const ma=H("ZodBigInt",(r,i)=>{Ns.init(r,i),qA.init(r,i),r.gte=(E,g)=>r.check(Qt(E,g)),r.min=(E,g)=>r.check(Qt(E,g)),r.gt=(E,g)=>r.check(an(E,g)),r.gte=(E,g)=>r.check(Qt(E,g)),r.min=(E,g)=>r.check(Qt(E,g)),r.lt=(E,g)=>r.check(on(E,g)),r.lte=(E,g)=>r.check(Lt(E,g)),r.max=(E,g)=>r.check(Lt(E,g)),r.positive=E=>r.check(an(BigInt(0),E)),r.negative=E=>r.check(on(BigInt(0),E)),r.nonpositive=E=>r.check(Lt(BigInt(0),E)),r.nonnegative=E=>r.check(Qt(BigInt(0),E)),r.multipleOf=(E,g)=>r.check(Vi(E,g));const u=r._zod.bag;r.minValue=u.minimum??null,r.maxValue=u.maximum??null,r.format=u.format??null});function Hb(r){return IC(ma,r)}const Zg=H("ZodBigIntFormat",(r,i)=>{Zl.init(r,i),ma.init(r,i)});function $b(r){return lC(Zg,r)}function Xb(r){return BC(Zg,r)}const iQ=H("ZodSymbol",(r,i)=>{Hl.init(r,i),qA.init(r,i)});function zb(r){return CC(iQ,r)}const oQ=H("ZodUndefined",(r,i)=>{$l.init(r,i),qA.init(r,i)});function Kb(r){return QC(oQ,r)}const aQ=H("ZodNull",(r,i)=>{Xl.init(r,i),qA.init(r,i)});function Hg(r){return fC(aQ,r)}const sQ=H("ZodAny",(r,i)=>{zl.init(r,i),qA.init(r,i)});function Wb(){return dC(sQ)}const gQ=H("ZodUnknown",(r,i)=>{Kl.init(r,i),qA.init(r,i)});function Wn(){return hC(gQ)}const cQ=H("ZodNever",(r,i)=>{Wl.init(r,i),qA.init(r,i)});function $g(r){return mC(cQ,r)}const uQ=H("ZodVoid",(r,i)=>{ql.init(r,i),qA.init(r,i)});function qb(r){return pC(uQ,r)}const Xg=H("ZodDate",(r,i)=>{Vl.init(r,i),qA.init(r,i),r.min=(E,g)=>r.check(Qt(E,g)),r.max=(E,g)=>r.check(Lt(E,g));const u=r._zod.bag;r.minDate=u.minimum?new Date(u.minimum):null,r.maxDate=u.maximum?new Date(u.maximum):null});function Vb(r){return yC(Xg,r)}const IQ=H("ZodArray",(r,i)=>{eB.init(r,i),qA.init(r,i),r.element=i.element,r.min=(u,E)=>r.check(zn(u,E)),r.nonempty=u=>r.check(zn(1,u)),r.max=(u,E)=>r.check(la(u,E)),r.length=(u,E)=>r.check(Ba(u,E)),r.unwrap=()=>r.element});function be(r,i){return RC(IQ,r,i)}function AD(r){const i=r._zod.def.shape;return vt(Object.keys(i))}const pa=H("ZodObject",(r,i)=>{iB.init(r,i),qA.init(r,i),te(r,"shape",()=>i.shape),r.keyof=()=>vt(Object.keys(r._zod.def.shape)),r.catchall=u=>r.clone({...r._zod.def,catchall:u}),r.passthrough=()=>r.clone({...r._zod.def,catchall:Wn()}),r.loose=()=>r.clone({...r._zod.def,catchall:Wn()}),r.strict=()=>r.clone({...r._zod.def,catchall:$g()}),r.strip=()=>r.clone({...r._zod.def,catchall:void 0}),r.extend=u=>AE(r,u),r.safeExtend=u=>eE(r,u),r.merge=u=>tE(r,u),r.pick=u=>qI(r,u),r.omit=u=>VI(r,u),r.partial=(...u)=>rE(Vg,r,u[0]),r.required=(...u)=>nE(Ac,r,u[0])});function NA(r,i){const u={type:"object",shape:r??{},...tA(i)};return new pa(u)}function eD(r,i){return new pa({type:"object",shape:r,catchall:$g(),...tA(i)})}function tD(r,i){return new pa({type:"object",shape:r,catchall:Wn(),...tA(i)})}const zg=H("ZodUnion",(r,i)=>{Us.init(r,i),qA.init(r,i),r.options=i.options});function ya(r,i){return new zg({type:"union",options:r,...tA(i)})}const EQ=H("ZodDiscriminatedUnion",(r,i)=>{zg.init(r,i),aB.init(r,i)});function fr(r,i,u){return new EQ({type:"union",options:i,discriminator:r,...tA(u)})}const lQ=H("ZodIntersection",(r,i)=>{sB.init(r,i),qA.init(r,i)});function BQ(r,i){return new lQ({type:"intersection",left:r,right:i})}const CQ=H("ZodTuple",(r,i)=>{xs.init(r,i),qA.init(r,i),r.rest=u=>r.clone({...r._zod.def,rest:u})});function Kg(r,i,u){const E=i instanceof HA,g=E?u:i,a=E?i:null;return new CQ({type:"tuple",items:r,rest:a,...tA(g)})}const Wg=H("ZodRecord",(r,i)=>{cB.init(r,i),qA.init(r,i),r.keyType=i.keyType,r.valueType=i.valueType});function ro(r,i,u){return new Wg({type:"record",keyType:r,valueType:i,...tA(u)})}function rD(r,i,u){const E=St(r);return E._zod.values=void 0,new Wg({type:"record",keyType:E,valueType:i,...tA(u)})}const QQ=H("ZodMap",(r,i)=>{uB.init(r,i),qA.init(r,i),r.keyType=i.keyType,r.valueType=i.valueType});function nD(r,i,u){return new QQ({type:"map",keyType:r,valueType:i,...tA(u)})}const fQ=H("ZodSet",(r,i)=>{EB.init(r,i),qA.init(r,i),r.min=(...u)=>r.check(Ao(...u)),r.nonempty=u=>r.check(Ao(1,u)),r.max=(...u)=>r.check(Ea(...u)),r.size=(...u)=>r.check(gg(...u))});function iD(r,i){return new fQ({type:"set",valueType:r,...tA(i)})}const no=H("ZodEnum",(r,i)=>{BB.init(r,i),qA.init(r,i),r.enum=i.entries,r.options=Object.values(i.entries);const u=new Set(Object.keys(i.entries));r.extract=(E,g)=>{const a={};for(const h of E)if(u.has(h))a[h]=i.entries[h];else throw new Error(`Key ${h} not found in enum`);return new no({...i,checks:[],...tA(g),entries:a})},r.exclude=(E,g)=>{const a={...i.entries};for(const h of E)if(u.has(h))delete a[h];else throw new Error(`Key ${h} not found in enum`);return new no({...i,checks:[],...tA(g),entries:a})}});function vt(r,i){const u=Array.isArray(r)?Object.fromEntries(r.map(E=>[E,E])):r;return new no({type:"enum",entries:u,...tA(i)})}function oD(r,i){return new no({type:"enum",entries:r,...tA(i)})}const dQ=H("ZodLiteral",(r,i)=>{CB.init(r,i),qA.init(r,i),r.values=new Set(i.values),Object.defineProperty(r,"value",{get(){if(i.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return i.values[0]}})});function DA(r,i){return new dQ({type:"literal",values:Array.isArray(r)?r:[r],...tA(i)})}const hQ=H("ZodFile",(r,i)=>{QB.init(r,i),qA.init(r,i),r.min=(u,E)=>r.check(Ao(u,E)),r.max=(u,E)=>r.check(Ea(u,E)),r.mime=(u,E)=>r.check(Cg(Array.isArray(u)?u:[u],E))});function aD(r){return TC(hQ,r)}const mQ=H("ZodTransform",(r,i)=>{fB.init(r,i),qA.init(r,i),r._zod.parse=(u,E)=>{if(E.direction==="backward")throw new qo(r.constructor.name);u.addIssue=a=>{if(typeof a=="string")u.issues.push($n(a,u.value,i));else{const h=a;h.fatal&&(h.continue=!1),h.code??(h.code="custom"),h.input??(h.input=u.value),h.inst??(h.inst=r),u.issues.push($n(h))}};const g=i.transform(u.value,u);return g instanceof Promise?g.then(a=>(u.value=a,u)):(u.value=g,u)}});function qg(r){return new mQ({type:"transform",transform:r})}const Vg=H("ZodOptional",(r,i)=>{hB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function ba(r){return new Vg({type:"optional",innerType:r})}const pQ=H("ZodNullable",(r,i)=>{mB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function dt(r){return new pQ({type:"nullable",innerType:r})}function sD(r){return ba(dt(r))}const yQ=H("ZodDefault",(r,i)=>{pB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType,r.removeDefault=r.unwrap});function bQ(r,i){return new yQ({type:"default",innerType:r,get defaultValue(){return typeof i=="function"?i():ta(i)}})}const DQ=H("ZodPrefault",(r,i)=>{bB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function wQ(r,i){return new DQ({type:"prefault",innerType:r,get defaultValue(){return typeof i=="function"?i():ta(i)}})}const Ac=H("ZodNonOptional",(r,i)=>{DB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function kQ(r,i){return new Ac({type:"nonoptional",innerType:r,...tA(i)})}const _Q=H("ZodSuccess",(r,i)=>{kB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function gD(r){return new _Q({type:"success",innerType:r})}const SQ=H("ZodCatch",(r,i)=>{_B.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType,r.removeCatch=r.unwrap});function vQ(r,i){return new SQ({type:"catch",innerType:r,catchValue:typeof i=="function"?i:()=>i})}const RQ=H("ZodNaN",(r,i)=>{SB.init(r,i),qA.init(r,i)});function cD(r){return DC(RQ,r)}const ec=H("ZodPipe",(r,i)=>{vB.init(r,i),qA.init(r,i),r.in=i.in,r.out=i.out});function Da(r,i){return new ec({type:"pipe",in:r,out:i})}const tc=H("ZodCodec",(r,i)=>{ec.init(r,i),Ls.init(r,i)});function uD(r,i,u){return new tc({type:"pipe",in:r,out:i,transform:u.decode,reverseTransform:u.encode})}const TQ=H("ZodReadonly",(r,i)=>{RB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function FQ(r){return new TQ({type:"readonly",innerType:r})}const MQ=H("ZodTemplateLiteral",(r,i)=>{FB.init(r,i),qA.init(r,i)});function ID(r,i){return new MQ({type:"template_literal",parts:r,...tA(i)})}const OQ=H("ZodLazy",(r,i)=>{NB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.getter()});function NQ(r){return new OQ({type:"lazy",getter:r})}const UQ=H("ZodPromise",(r,i)=>{OB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function ED(r){return new UQ({type:"promise",innerType:r})}const GQ=H("ZodFunction",(r,i)=>{MB.init(r,i),qA.init(r,i)});function xQ(r){return new GQ({type:"function",input:Array.isArray(r?.input)?Kg(r?.input):r?.input??be(Wn()),output:r?.output??Wn()})}const wa=H("ZodCustom",(r,i)=>{UB.init(r,i),qA.init(r,i)});function lD(r){const i=new we({check:"custom"});return i._zod.check=r,i}function BD(r,i){return FC(wa,r??(()=>!0),i)}function LQ(r,i={}){return MC(wa,r,i)}function PQ(r){return OC(r)}const CD=UC,QD=GC;function fD(r,i={error:`Input not instance of ${r.name}`}){const u=new wa({type:"custom",check:"custom",fn:E=>E instanceof r,abort:!0,...tA(i)});return u._zod.bag.Class=r,u}const dD=(...r)=>xC({Codec:tc,Boolean:ha,String:Ca},...r);function hD(r){const i=NQ(()=>ya([GA(r),G(),Qr(),Hg(),be(i),ro(GA(),i)]));return i}function YQ(r,i){return Da(qg(r),i)}const mD={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function pD(r){it({customError:r})}function yD(){return it().customError}var rc;rc||(rc={});function bD(r){return KB(Ca,r)}function Je(r){return nC(da,r)}function DD(r){return uC(ha,r)}function XA(r){return EC(ma,r)}function wD(r){return bC(Xg,r)}var kD=Object.freeze({__proto__:null,bigint:XA,boolean:DD,date:wD,number:Je,string:bD});it(LB());var _D=Object.freeze({__proto__:null,$brand:jI,$input:XB,$output:$B,NEVER:YI,TimePrecision:qB,ZodAny:sQ,ZodArray:IQ,ZodBase64:Lg,ZodBase64URL:Pg,ZodBigInt:ma,ZodBigIntFormat:Zg,ZodBoolean:ha,ZodCIDRv4:Gg,ZodCIDRv6:xg,ZodCUID:Rg,ZodCUID2:Tg,ZodCatch:SQ,ZodCodec:tc,ZodCustom:wa,ZodCustomStringFormat:to,ZodDate:Xg,ZodDefault:yQ,ZodDiscriminatedUnion:EQ,ZodE164:Yg,ZodEmail:_g,ZodEmoji:Sg,ZodEnum:no,ZodError:Eb,ZodFile:hQ,get ZodFirstPartyTypeKind(){return rc},ZodFunction:GQ,ZodGUID:Qa,ZodIPv4:Ng,ZodIPv6:Ug,ZodISODate:bg,ZodISODateTime:yg,ZodISODuration:wg,ZodISOTime:Dg,ZodIntersection:lQ,ZodIssueCode:mD,ZodJWT:jg,ZodKSUID:Og,ZodLazy:OQ,ZodLiteral:dQ,ZodMAC:nQ,ZodMap:QQ,ZodNaN:RQ,ZodNanoID:vg,ZodNever:cQ,ZodNonOptional:Ac,ZodNull:aQ,ZodNullable:pQ,ZodNumber:da,ZodNumberFormat:Kn,ZodObject:pa,ZodOptional:Vg,ZodPipe:ec,ZodPrefault:DQ,ZodPromise:UQ,ZodReadonly:TQ,ZodRealError:ft,ZodRecord:Wg,ZodSet:fQ,ZodString:Ca,ZodStringFormat:fe,ZodSuccess:_Q,ZodSymbol:iQ,ZodTemplateLiteral:MQ,ZodTransform:mQ,ZodTuple:CQ,ZodType:qA,ZodULID:Fg,ZodURL:fa,ZodUUID:Cr,ZodUndefined:oQ,ZodUnion:zg,ZodUnknown:gQ,ZodVoid:uQ,ZodXID:Mg,_ZodString:kg,_default:bQ,_function:xQ,any:Wb,array:be,base64:Mb,base64url:Ob,bigint:Hb,boolean:Qr,catch:vQ,check:lD,cidrv4:Tb,cidrv6:Fb,clone:St,codec:uD,coerce:kD,config:it,core:ub,cuid:bb,cuid2:Db,custom:BD,date:Vb,decode:WC,decodeAsync:VC,describe:CD,discriminatedUnion:fr,e164:Nb,email:lb,emoji:pb,encode:KC,encodeAsync:qC,endsWith:Bg,enum:vt,file:aD,flattenError:Qs,float32:Yb,float64:jb,formatError:fs,function:xQ,getErrorMap:yD,globalRegistry:xt,gt:an,gte:Qt,guid:Bb,hash:Pb,hex:Lb,hostname:xb,httpUrl:mb,includes:Eg,instanceof:fD,int:Jg,int32:Jb,int64:$b,intersection:BQ,ipv4:Sb,ipv6:Rb,iso:Ib,json:hD,jwt:Ub,keyof:AD,ksuid:_b,lazy:NQ,length:Ba,literal:DA,locales:ZB,looseObject:tD,lowercase:ug,lt:on,lte:Lt,mac:vb,map:nD,maxLength:la,maxSize:Ea,meta:QD,mime:Cg,minLength:zn,minSize:Ao,multipleOf:Vi,nan:cD,nanoid:yb,nativeEnum:oD,negative:kC,never:$g,nonnegative:SC,nonoptional:kQ,nonpositive:_C,normalize:Qg,null:Hg,nullable:dt,nullish:sD,number:G,object:NA,optional:ba,overwrite:Mr,parse:HC,parseAsync:$C,partialRecord:rD,pipe:Da,positive:wC,prefault:wQ,preprocess:YQ,prettifyError:uE,promise:ED,property:vC,readonly:FQ,record:ro,refine:LQ,regex:cg,regexes:vs,registry:Ys,safeDecode:eQ,safeDecodeAsync:rQ,safeEncode:AQ,safeEncodeAsync:tQ,safeParse:XC,safeParseAsync:zC,set:iD,setErrorMap:pD,size:gg,slugify:mg,startsWith:lg,strictObject:eD,string:GA,stringFormat:Gb,stringbool:dD,success:gD,superRefine:PQ,symbol:zb,templateLiteral:ID,toJSONSchema:LC,toLowerCase:dg,toUpperCase:hg,transform:qg,treeifyError:gE,trim:fg,tuple:Kg,uint32:Zb,uint64:Xb,ulid:wb,undefined:Kb,union:ya,unknown:Wn,uppercase:Ig,url:hb,util:aE,uuid:Cb,uuidv4:Qb,uuidv6:fb,uuidv7:db,void:qb,xid:kb});const jQ=vt(["Frankendancer","Firedancer"]),nc=jQ.enum,VA=NA({topic:DA("summary")}),JQ=NA({topic:DA("epoch")}),qn=NA({topic:DA("gossip")}),ZQ=NA({topic:DA("peers")}),Wt=NA({topic:DA("slot")}),HQ=NA({topic:DA("block_engine")}),ka=NA({topic:DA("wait_for_supermajority")});fr("topic",[VA,JQ,qn,ZQ,Wt,HQ,ka]);const SD=GA(),vD=vt(["development","mainnet-beta","devnet","testnet","pythtest","pythnet","unknown"]),RD=GA(),TD=GA(),FD=GA(),MD=XA(),$Q=vt(["perf","balanced","revenue"]);$Q.enum,vt(["sock","net","quic","bundle","verify","dedup","resolv","resolh","pack","execle","bank","poh","pohh","shred","store","snapct","snapld","snapdc","snapin","netlnk","metric","ipecho","gossvf","gossip","repair","replay","execrp","tower","txsend","sign","rpc","gui","http","plugin","cswtch","genesi","diag","event"]);const OD=NA({kind:GA(),kind_id:G()}),XQ=XA();XA();const ND=G(),UD=G(),GD=G(),xD=G().nullable(),LD=G().nullable(),PD=NA({repair:G().array(),turbine:G().array()}),YD=Je(),jD=G(),JD=G().nullable(),ZD=G().nullable(),HD=G(),$D=G().nullable(),XD=G(),zD=G(),KD=NA({total:G(),vote:G(),nonvote_success:G(),nonvote_failed:G()}),WD=NA({ingress:be(G()),egress:be(G())}),qD=NA({pack_cranked:G(),pack_retained:G(),resolv_retained:G(),quic:G(),udp:G(),gossip:G(),block_engine:G()}),VD=NA({net_overrun:G(),quic_overrun:G(),quic_frag_drop:G(),quic_abandoned:G(),tpu_quic_invalid:G(),tpu_udp_invalid:G(),verify_overrun:G(),verify_parse:G(),verify_failed:G(),verify_duplicate:G(),dedup_duplicate:G(),resolv_lut_failed:G(),resolv_expired:G(),resolv_no_ledger:G(),resolv_ancient:G(),resolv_retained:G(),pack_invalid:G(),pack_already_executed:G(),pack_invalid_bundle:G(),pack_retained:G(),pack_leader_slow:G(),pack_wait_full:G(),pack_expired:G(),bank_invalid:G(),bank_nonce_already_advanced:G(),bank_nonce_advance_failed:G(),bank_nonce_wrong_blockhash:G(),block_success:G(),block_fail:G()}),zQ=NA({in:qD,out:VD}),Aw=NA({next_leader_slot:G().nullable(),waterfall:zQ}),KQ=NA({net_in:G(),quic:G(),verify:G(),bundle_rtt_smoothed_millis:G(),bundle_rx_delay_millis_p90:G(),dedup:G(),pack:G(),bank:G(),poh:G(),shred:G(),store:G(),net_out:G()}),ew=NA({next_leader_slot:G().nullable(),tile_primary_metric:KQ}),tw=NA({timers:be(be(G()).nullable()),sched_timers:be(be(G()).nullable()),in_backp:be(Qr().nullable()),backp_msgs:be(G().nullable()),alive:be(G().nullable()),nvcsw:be(G().nullable()),nivcsw:be(G().nullable()),last_cpu:be(G().nullable()),minflt:be(G().nullable()),majflt:be(G().nullable())});NA({tile:GA(),kind_id:G(),idle:G()});const rw=vt(["initializing","searching_for_full_snapshot","downloading_full_snapshot","searching_for_incremental_snapshot","downloading_incremental_snapshot","cleaning_blockstore","cleaning_accounts","loading_ledger","processing_ledger","starting_services","halted","waiting_for_supermajority","running"]),nw=NA({phase:rw,downloading_full_snapshot_slot:G().nullable(),downloading_full_snapshot_peer:GA().nullable(),downloading_full_snapshot_elapsed_secs:G().nullable(),downloading_full_snapshot_remaining_secs:G().nullable(),downloading_full_snapshot_throughput:G().nullable(),downloading_full_snapshot_total_bytes:Je().nullable(),downloading_full_snapshot_current_bytes:Je().nullable(),downloading_incremental_snapshot_slot:G().nullable(),downloading_incremental_snapshot_peer:GA().nullable(),downloading_incremental_snapshot_elapsed_secs:G().nullable(),downloading_incremental_snapshot_remaining_secs:G().nullable(),downloading_incremental_snapshot_throughput:G().nullable(),downloading_incremental_snapshot_total_bytes:Je().nullable(),downloading_incremental_snapshot_current_bytes:Je().nullable(),ledger_slot:G().nullable(),ledger_max_slot:G().nullable(),waiting_for_supermajority_slot:G().nullable(),waiting_for_supermajority_stake_percent:G().nullable()}),WQ=vt(["joining_gossip","loading_full_snapshot","loading_incremental_snapshot","catching_up","waiting_for_supermajority","running"]);WQ.enum;const iw=NA({phase:WQ,joining_gossip_elapsed_seconds:G().nullable().optional(),loading_full_snapshot_elapsed_seconds:G().nullable().optional(),loading_full_snapshot_reset_count:G().nullable().optional(),loading_full_snapshot_slot:G().nullable().optional(),loading_full_snapshot_total_bytes_compressed:Je().nullable().optional(),loading_full_snapshot_read_bytes_compressed:Je().nullable().optional(),loading_full_snapshot_read_path:GA().nullable().optional(),loading_full_snapshot_decompress_bytes_decompressed:Je().nullable().optional(),loading_full_snapshot_decompress_bytes_compressed:Je().nullable().optional(),loading_full_snapshot_insert_bytes_decompressed:Je().nullable().optional(),loading_full_snapshot_insert_accounts:G().nullable().optional(),loading_incremental_snapshot_elapsed_seconds:G().nullable().optional(),loading_incremental_snapshot_reset_count:G().nullable().optional(),loading_incremental_snapshot_slot:G().nullable().optional(),loading_incremental_snapshot_total_bytes_compressed:Je().nullable().optional(),loading_incremental_snapshot_read_bytes_compressed:Je().nullable().optional(),loading_incremental_snapshot_read_path:GA().nullable().optional(),loading_incremental_snapshot_decompress_bytes_decompressed:Je().nullable().optional(),loading_incremental_snapshot_decompress_bytes_compressed:Je().nullable().optional(),loading_incremental_snapshot_insert_bytes_decompressed:Je().nullable().optional(),loading_incremental_snapshot_insert_accounts:G().nullable().optional(),wait_for_supermajority_bank_hash:GA().nullable().optional(),wait_for_supermajority_shred_version:GA().nullable().optional(),wait_for_supermajority_attempt:G().nullable().optional(),wait_for_supermajority_total_stake:XA().nullable().optional(),wait_for_supermajority_connected_stake:XA().nullable().optional(),wait_for_supermajority_total_peers:G().nullable().optional(),wait_for_supermajority_connected_peers:G().nullable().optional(),catching_up_elapsed_seconds:G().nullable().optional(),catching_up_first_replay_slot:G().nullable().optional()}),ow=YQ(r=>{if(!r||typeof r!="object"||Array.isArray(r))return r;const i=r;return{...i,txn_preload_end_timestamps_nanos:i.txn_preload_end_timestamps_nanos??i.txn_check_start_timestamps_nanos,txn_start_timestamps_nanos:i.txn_start_timestamps_nanos??i.txn_load_start_timestamps_nanos,txn_load_end_timestamps_nanos:i.txn_load_end_timestamps_nanos??i.txn_execute_start_timestamps_nanos,txn_end_timestamps_nanos:i.txn_end_timestamps_nanos??i.txn_commit_start_timestamps_nanos}},NA({start_timestamp_nanos:XA(),target_end_timestamp_nanos:XA(),txn_mb_start_timestamps_nanos:XA().array(),txn_mb_end_timestamps_nanos:XA().array(),txn_compute_units_requested:G().array(),txn_compute_units_consumed:G().array(),txn_transaction_fee:XA().array(),txn_priority_fee:XA().array(),txn_tips:XA().array(),txn_error_code:G().array(),txn_from_bundle:Qr().array(),txn_is_simple_vote:Qr().array(),txn_bank_idx:G().array(),txn_preload_end_timestamps_nanos:XA().array(),txn_start_timestamps_nanos:XA().array(),txn_load_end_timestamps_nanos:XA().array(),txn_end_timestamps_nanos:XA().array(),txn_commit_end_timestamps_nanos:XA().array().optional(),txn_arrival_timestamps_nanos:XA().array(),txn_microblock_id:G().array(),txn_landed:Qr().array(),txn_signature:GA().array(),txn_source_ipv4:GA().array(),txn_source_tpu:GA().array()})),aw=vt(["incomplete","completed","optimistically_confirmed","rooted","finalized"]),sw=NA({slot:G(),mine:Qr(),skipped:Qr(),level:aw,success_nonvote_transaction_cnt:G().nullable(),failed_nonvote_transaction_cnt:G().nullable(),success_vote_transaction_cnt:G().nullable(),failed_vote_transaction_cnt:G().nullable(),priority_fee:XA().nullable(),transaction_fee:XA().nullable(),tips:XA().nullable(),max_compute_units:G().nullable(),compute_units:G().nullable(),duration_nanos:G().nullable(),completed_time_nanos:XA().nullable(),vote_latency:G().nullable()}),gw=be(Kg([G(),G(),G(),G()])),cw=vt(["voting","non-voting","delinquent"]),uw=G(),Iw=NA({epoch:G(),skip_rate:G()}),Ew=NA({hits:G(),lookups:G(),insertions:G(),insertion_bytes:G(),evictions:G(),eviction_bytes:G(),spills:G(),spill_bytes:G(),free_bytes:G(),size_bytes:G()}),lw=fr("key",[VA.extend({key:DA("ping"),value:Hg(),id:G()}),VA.extend({key:DA("version"),value:SD}),VA.extend({key:DA("cluster"),value:vD}),VA.extend({key:DA("commit_hash"),value:RD}),VA.extend({key:DA("identity_key"),value:TD}),VA.extend({key:DA("vote_key"),value:FD}),VA.extend({key:DA("startup_time_nanos"),value:MD}),VA.extend({key:DA("schedule_strategy"),value:$Q}),VA.extend({key:DA("tiles"),value:OD.array()}),VA.extend({key:DA("identity_balance"),value:XQ}),VA.extend({key:DA("vote_balance"),value:XQ}),VA.extend({key:DA("root_slot"),value:ND}),VA.extend({key:DA("optimistically_confirmed_slot"),value:UD}),VA.extend({key:DA("completed_slot"),value:GD}),VA.extend({key:DA("estimated_slot"),value:jD}),VA.extend({key:DA("reset_slot"),value:JD}),VA.extend({key:DA("storage_slot"),value:ZD}),VA.extend({key:DA("vote_slot"),value:HD}),VA.extend({key:DA("slot_caught_up"),value:$D}),VA.extend({key:DA("active_fork_count"),value:XD}),VA.extend({key:DA("estimated_slot_duration_nanos"),value:zD}),VA.extend({key:DA("estimated_tps"),value:KD}),VA.extend({key:DA("live_network_metrics"),value:WD}),VA.extend({key:DA("live_txn_waterfall"),value:Aw}),VA.extend({key:DA("live_tile_primary_metric"),value:ew}),VA.extend({key:DA("live_tile_metrics"),value:tw}),VA.extend({key:DA("live_tile_timers"),value:G().array()}),VA.extend({key:DA("startup_progress"),value:nw}),VA.extend({key:DA("boot_progress"),value:iw}),VA.extend({key:DA("tps_history"),value:gw}),VA.extend({key:DA("vote_state"),value:cw}),VA.extend({key:DA("vote_distance"),value:uw}),VA.extend({key:DA("skip_rate"),value:Iw}),VA.extend({key:DA("turbine_slot"),value:xD}),VA.extend({key:DA("repair_slot"),value:LD}),VA.extend({key:DA("catch_up_history"),value:PD}),VA.extend({key:DA("server_time_nanos"),value:YD}),VA.extend({key:DA("live_program_cache"),value:Ew})]),Bw=NA({epoch:G(),start_time_nanos:GA().nullable(),end_time_nanos:GA().nullable(),start_slot:G(),end_slot:G(),excluded_stake_lamports:XA(),staked_pubkeys:GA().array(),staked_lamports:XA().array(),leader_slots:G().array()}),Cw=fr("key",[JQ.extend({key:DA("new"),value:Bw})]),Qw=NA({num_push_messages_rx_success:G(),num_push_messages_rx_failure:G(),num_push_entries_rx_success:G(),num_push_entries_rx_failure:G(),num_push_entries_rx_duplicate:G(),num_pull_response_messages_rx_success:G(),num_pull_response_messages_rx_failure:G(),num_pull_response_entries_rx_success:G(),num_pull_response_entries_rx_failure:G(),num_pull_response_entries_rx_duplicate:G(),total_peers:G(),total_stake:XA(),connected_stake:XA(),connected_staked_peers:G(),connected_unstaked_peers:G()}),qQ=NA({total_throughput:G(),peer_names:GA().array(),peer_identities:GA().array(),peer_throughput:G().array()}),fw=NA({capacity:G(),expired_count:G(),evicted_count:G(),count:G().array(),count_tx:G().array(),bytes_tx:G().array()}),dw=NA({num_bytes_rx:G().array(),num_bytes_tx:G().array(),num_messages_rx:G().array(),num_messages_tx:G().array()}),hw=NA({health:Qw,ingress:qQ,egress:qQ,storage:fw,messages:dw}),mw=G(),VQ=ya([GA(),G()]),Af=ro(GA(),ro(GA(),VQ)).nullable(),pw=NA({changes:be(NA({row_index:G(),column_name:GA(),new_value:VQ}))}),yw=fr("key",[qn.extend({key:DA("network_stats"),value:hw}),qn.extend({key:DA("peers_size_update"),value:mw}),qn.extend({key:DA("query_scroll"),value:Af}),qn.extend({key:DA("query_sort"),value:Af}),qn.extend({key:DA("view_update"),value:pw})]),bw=NA({client_id:G().nullable().optional(),wallclock:G(),shred_version:G(),version:GA().nullable(),feature_set:G().nullable(),sockets:ro(GA(),GA()),country_code:GA().nullable().optional(),city_name:GA().nullable().optional()}),Dw=NA({vote_account:GA(),activated_stake:XA(),last_vote:dt(G()),root_slot:dt(G()),epoch_credits:G(),commission:G(),delinquent:Qr()}),ef=NA({name:dt(GA()),details:dt(GA()),website:dt(GA()),icon_url:dt(GA()),keybase_username:dt(GA())}),tf=NA({identity_pubkey:GA(),gossip:dt(bw),vote:be(Dw),info:dt(ef)}),ww=NA({identity_pubkey:GA()}),kw=NA({add:be(tf).optional(),update:be(tf).optional(),remove:be(ww).optional()}),_w=fr("key",[ZQ.extend({key:DA("update"),value:kw})]),Sw=NA({timestamp_nanos:GA(),tile_timers:G().array()}),vw=NA({timestamp_nanos:XA(),regular:G(),votes:G(),conflicting:G(),bundles:G()}),Rw=NA({account:GA(),cost:G()}),Tw=NA({used_total_block_cost:G(),used_total_vote_cost:G(),used_account_write_costs:Rw.array(),used_total_bytes:G(),used_total_microblocks:G(),max_total_block_cost:G(),max_total_vote_cost:G(),max_account_write_cost:G(),max_total_bytes:G(),max_total_microblocks:G()}),Fw=NA({block_hash:GA().optional(),end_slot_reason:GA().optional(),slot_schedule_counts:G().array(),end_slot_schedule_counts:G().array(),pending_smallest_cost:G().nullable(),pending_smallest_bytes:G().nullable(),pending_vote_smallest_cost:G().nullable(),pending_vote_smallest_bytes:G().nullable()}),_a=NA({publish:sw,waterfall:zQ.nullable().optional(),tile_primary_metric:KQ.nullable().optional(),tile_timers:Sw.array().nullable().optional(),scheduler_counts:vw.array().nullable().optional(),transactions:ow.nullable().optional(),limits:Tw.nullable().optional(),scheduler_stats:Fw.nullable().optional()}),Mw=G().array(),Ow=G().array(),Nw=NA({slots_largest_tips:G().array(),vals_largest_tips:XA().array(),slots_smallest_tips:G().array(),vals_smallest_tips:XA().array(),slots_largest_fees:G().array(),vals_largest_fees:XA().array(),slots_smallest_fees:G().array(),vals_smallest_fees:XA().array(),slots_largest_rewards:G().array(),vals_largest_rewards:XA().array(),slots_smallest_rewards:G().array(),vals_smallest_rewards:XA().array(),slots_largest_duration:G().array(),vals_largest_duration:XA().array(),slots_smallest_duration:G().array(),vals_smallest_duration:XA().array(),slots_largest_compute_units:G().array(),vals_largest_compute_units:XA().array(),slots_smallest_compute_units:G().array(),vals_smallest_compute_units:XA().array(),slots_largest_skipped:G().array(),vals_largest_skipped:XA().array(),slots_smallest_skipped:G().array(),vals_smallest_skipped:XA().array()}),Uw=NA({reference_slot:G(),reference_ts:XA(),slot_delta:G().array(),shred_idx:G().nullable().array(),event:G().array(),event_ts_delta:Je().array()}),Gw=fr("key",[Wt.extend({key:DA("skipped_history"),value:Mw}),Wt.extend({key:DA("skipped_history_cluster"),value:Ow}),Wt.extend({key:DA("update"),value:_a}),Wt.extend({key:DA("query"),value:_a.nullable()}),Wt.extend({key:DA("query_detailed"),value:_a.nullable()}),Wt.extend({key:DA("query_transactions"),value:_a.nullable()}),Wt.extend({key:DA("query_rankings"),value:Nw}),Wt.extend({key:DA("live_shreds"),value:Uw}),Wt.extend({key:DA("late_votes_history"),value:NA({slot:G().array(),latency:G().nullable().array()})})]),xw=vt(["disconnected","connecting","connected"]),Lw=NA({name:GA(),url:GA(),ip:GA().optional(),status:xw}),Pw=fr("key",[HQ.extend({key:DA("update"),value:Lw})]),Yw=NA({staked_pubkeys:GA().array(),staked_lamports:XA().array(),infos:be(ef.nullable())}),jw=GA().array(),Jw=GA().array(),Zw=fr("key",[ka.extend({key:DA("stakes"),value:Yw}),ka.extend({key:DA("peer_add"),value:jw}),ka.extend({key:DA("peer_remove"),value:Jw})]),Hw=_D.discriminatedUnion("topic",[lw,Cw,yw,_w,Gw,Pw,Zw]);function ic(r){if(r<1)throw new Error("Ring buffer size must be at least 1");const i=new Array(r);let u=0,E=0;return{get length(){return E},push(g){i[u]=g,u=(u+1)%r,E"u")return!1;const r=navigator.userAgent.toLowerCase();return/iphone|android|windows phone|ipad|android|tablet/.test(r)||"ontouchstart"in window&&!!matchMedia?.("(hover: none)").matches}$w();var Xw={isEqual:!0,isMatchingKey:!0,isPromise:!0,maxSize:!0,onCacheAdd:!0,onCacheChange:!0,onCacheHit:!0,transformKey:!0},zw=Array.prototype.slice;function Sa(r){var i=r.length;return i?i===1?[r[0]]:i===2?[r[0],r[1]]:i===3?[r[0],r[1],r[2]]:zw.call(r,0):[]}function Kw(r){var i={};for(var u in r)Xw[u]||(i[u]=r[u]);return i}function Ww(r){return typeof r=="function"&&r.isMemoized}function qw(r,i){return r===i||r!==r&&i!==i}function rf(r,i){var u={};for(var E in r)u[E]=r[E];for(var E in i)u[E]=i[E];return u}var Vw=function(){function r(i){this.keys=[],this.values=[],this.options=i;var u=typeof i.isMatchingKey=="function";u?this.getKeyIndex=this._getKeyIndexFromMatchingKey:i.maxSize>1?this.getKeyIndex=this._getKeyIndexForMany:this.getKeyIndex=this._getKeyIndexForSingle,this.canTransformKey=typeof i.transformKey=="function",this.shouldCloneArguments=this.canTransformKey||u,this.shouldUpdateOnAdd=typeof i.onCacheAdd=="function",this.shouldUpdateOnChange=typeof i.onCacheChange=="function",this.shouldUpdateOnHit=typeof i.onCacheHit=="function"}return Object.defineProperty(r.prototype,"size",{get:function(){return this.keys.length},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"snapshot",{get:function(){return{keys:Sa(this.keys),size:this.size,values:Sa(this.values)}},enumerable:!1,configurable:!0}),r.prototype._getKeyIndexFromMatchingKey=function(i){var u=this.options,E=u.isMatchingKey,g=u.maxSize,a=this.keys,h=a.length;if(!h)return-1;if(E(a[0],i))return 0;if(g>1){for(var w=1;w1){for(var k=0;k1){for(var h=0;h=k&&(g.length=a.length=k)},r.prototype.updateAsyncCache=function(i){var u=this,E=this.options,g=E.onCacheChange,a=E.onCacheHit,h=this.keys[0],w=this.values[0];this.values[0]=w.then(function(k){return u.shouldUpdateOnHit&&a(u,u.options,i),u.shouldUpdateOnChange&&g(u,u.options,i),k},function(k){var v=u.getKeyIndex(h);throw v!==-1&&(u.keys.splice(v,1),u.values.splice(v,1)),k})},r}();function nf(r,i){if(i===void 0&&(i={}),Ww(r))return nf(r.fn,rf(r.options,i));if(typeof r!="function")throw new TypeError("You must pass a function to `memoize`.");var u=i.isEqual,E=u===void 0?qw:u,g=i.isMatchingKey,a=i.isPromise,h=a===void 0?!1:a,w=i.maxSize,k=w===void 0?1:w,v=i.onCacheAdd,F=i.onCacheChange,x=i.onCacheHit,$=i.transformKey,j=rf({isEqual:E,isMatchingKey:g,isPromise:h,maxSize:k,onCacheAdd:v,onCacheChange:F,onCacheHit:x,transformKey:$},Kw(i)),P=new Vw(j),rA=P.keys,iA=P.values,TA=P.canTransformKey,pA=P.shouldCloneArguments,MA=P.shouldUpdateOnAdd,xA=P.shouldUpdateOnChange,ce=P.shouldUpdateOnHit,se=function(){var Ue=pA?Sa(arguments):arguments;TA&&(Ue=$(Ue));var at=rA.length?P.getKeyIndex(Ue):-1;if(at!==-1)ce&&x(P,j,se),at&&(P.orderByLru(rA[at],iA[at],at),xA&&F(P,j,se));else{var OA=r.apply(this,arguments),je=pA?Ue:Sa(arguments);P.orderByLru(je,OA,rA.length),h&&P.updateAsyncCache(se),MA&&v(P,j,se),xA&&F(P,j,se)}return iA[0]};return se.cache=P,se.fn=r,se.isMemoized=!0,se.options=j,se}const of=jQ.safeParse("Frankendancer".trim()),af=of.error?nc.Frankendancer:of.data;nc.Frankendancer,nc.Firedancer,PA.now(),setInterval(()=>{PA.now()},1e3);function Ak(r){return r!==void 0}nf(r=>{if(r)return r.toUpperCase().split("").map(E=>String.fromCodePoint(E.charCodeAt(0)-65+127462)).join("")},{maxSize:100});function oc(r){const i=new Map;let u;function E(h,w){let k=i.get(h);return k||(k=r.createEntry(h,w),i.set(h,k)),k}function g(h){return h.lastPublishMs+h.publishIntervalMs}function a(){if(u)return;const h=performance.now();let w=1/0;for(const k of i.values()){if(!k.subscribed)continue;const v=Math.max(0,g(k)-h);v{u=void 0;const k=performance.now(),v=[];for(const F of i.values()){if(!F.subscribed||k{const k=E(h,w);k.subscribed||(k.subscribed=!0,a())},unsubscribe:h=>{const w=i.get(h);w&&(w.subscribed=!1);let k=!1;for(const v of i.values())if(v.subscribed){k=!0;break}!k&&u&&(clearTimeout(u),u=void 0)},get:h=>i.get(h),reset:h=>{const w=h?[i.get(h)].filter(Ak):i.values();for(const k of w)r.onReset?.(k),k.lastPublishMs=0},stop:()=>{u&&(clearTimeout(u),u=void 0);for(const h of i.values())h.subscribed=!1}}}function sf(r){const i=r.halfLifeMs/Math.log(2),{initMinSamples:u,warmupMs:E}=r;let g,a,h=0,w;function k(){a=void 0,h=0,g=void 0,w=void 0}function v(x){if(!E||!w)return i;const $=Math.max(.2,Math.min(1,(x-w)/E));return i*$}function F(x,$){if(!a)return x!=null&&(a={value:x,tsMs:$}),!1;x??=a.value;const j=$-a.tsMs;if(!isFinite(j)||j<=0)return!1;const P=x-a.value;if(!isFinite(P)||P<0)return k(),a={value:x,tsMs:$},!1;if(a={value:x,tsMs:$},g===void 0)return P<=0||(h+=1,hk.ema??0)),w}for(;i.lengthk.ema??0)),w}return{get ema(){return u},reset:E,tick:g}}function tk(r){const i=oc({createEntry:(u,E)=>{const g=Math.ceil(E.historyWindowMs/E.publishIntervalMs);return{key:u,subscribed:!1,lastPublishMs:0,publishIntervalMs:E.publishIntervalMs,calc:ek(E),history:ic(g)}},collect:(u,E)=>{if(u.calc.ema.length>0){const g=[...u.calc.ema];return u.history.push({ts:E,values:g}),{key:u.key,values:g,history:u.history.toArray()}}},post:r,onReset:u=>{u.calc.reset(),u.history.clear()}});return{...i,update(u,E,g){const a=i.get(u);a&&a.calc.tick(E,g)},get(u){return i.get(u)?.calc.ema}}}function rk(r){const i=oc({createEntry:(u,E)=>{const g=Math.ceil(E.historyWindowMs/E.publishIntervalMs);return{key:u,subscribed:!1,lastPublishMs:0,publishIntervalMs:E.publishIntervalMs,values:[],history:ic(g)}},collect:(u,E)=>{if(u.values.length>0){const g=[...u.values];return u.history.push({ts:E,values:g}),{key:u.key,values:g,history:u.history.toArray()}}},post:r,onReset:u=>{u.values=[],u.history.clear()}});return{...i,update(u,E){const g=i.get(u);g&&(g.values=E)},get(u){return i.get(u)?.values}}}function nk(r){function i(E){const g={};let a=!1;for(const h of E.fields)g[h]=E.calcs[h].ema??0,E.calcs[h].ema!==void 0&&(a=!0);return{value:g,hasValue:a}}const u=oc({createEntry:(E,g)=>{const a={};for(const w of g.fields)a[w]=sf(g);const h=Math.ceil(g.historyWindowMs/g.publishIntervalMs);return{key:E,subscribed:!1,lastPublishMs:0,publishIntervalMs:g.publishIntervalMs,fields:g.fields,calcs:a,history:ic(h)}},collect:(E,g)=>{const{value:a,hasValue:h}=i(E);if(h)return E.history.push({ts:g,value:a}),{key:E.key,value:a,history:E.history.toArray()}},post:r,onReset:E=>{for(const g of E.fields)E.calcs[g].reset();E.history.clear()}});return{...u,update(E,g,a){const h=u.get(E);if(h)for(const w of h.fields){const k=g[w];typeof k=="number"&&h.calcs[w].tick(k,a)}},get(E){const g=u.get(E);if(g){const{value:a,hasValue:h}=i(g);if(h)return a}}}}const ik=100,ok=3e4,ak=5e3,gf=500,cf=6e4,uf=5e3,If=["num_push_messages_rx_success","num_push_messages_rx_failure","num_push_entries_rx_success","num_push_entries_rx_failure","num_push_entries_rx_duplicate","num_pull_response_messages_rx_success","num_pull_response_messages_rx_failure","num_pull_response_entries_rx_success","num_pull_response_entries_rx_failure","num_pull_response_entries_rx_duplicate"];Object.fromEntries(If.map(r=>[r,0]));const sk={halfLifeMs:5e3,initMinSamples:10,warmupMs:1e4,publishIntervalMs:ik,historyWindowMs:ok+ak,fields:[...If]},Ef={halfLifeMs:1e3,initMinSamples:5,warmupMs:5e3,publishIntervalMs:gf,historyWindowMs:cf+uf},gk={publishIntervalMs:gf,historyWindowMs:cf+uf};function ac(r,i,u){return r.topic===i&&r.key===u}function ck(r){const i=tk(g=>r({type:"emaHistoryArray",items:g})),u=nk(g=>r({type:"emaHistoryObject",items:g})),E=rk(g=>r({type:"historyArray",items:g}));return{onMessage(g){const a=performance.now();ac(g,"gossip","network_stats")&&(u.subscribe("gossipHealth",sk),u.update("gossipHealth",g.value.health,a)),ac(g,"summary","live_network_metrics")&&(i.subscribe("ingress",Ef),i.subscribe("egress",Ef),i.update("ingress",g.value.ingress,a),i.update("egress",g.value.egress,a)),ac(g,"summary","live_tile_timers")&&(E.subscribe("tileTimers",gk),E.update("tileTimers",g.value))}}}const lf=3e3,uk=32,Vn=self;let It=null,sc,gc=!1;const io=new Map,Ik=ck(r=>Vn.postMessage(r));function Ek(r){Ik.onMessage(r);const i=`${r.topic}:${r.key}`;io.has(i)?io.get(i)?.push(r):io.set(i,[r]),gc||(gc=!0,setTimeout(lk,uk))}function lk(){gc=!1;const r=[];for(const i of io.values())for(const u of i)r.push(u);io.clear(),r.length&&Vn.postMessage({type:"kvb",items:r})}function Bf(r,i){Zn("WS",`Connecting to API WebSocket ${r.toString()}`),Vn.postMessage({type:"connecting"}),It=new WebSocket(r,i?["compress-zstd"]:void 0),It.binaryType="arraybuffer",It.onopen=function(){this===It&&(Zn("WS","Connected to API WebSocket"),Vn.postMessage({type:"connected"}))},It.onclose=function(){this===It&&(Zn("WS",`Disconnected API WebSocket, reconnecting in ${lf}ms`),Vn.postMessage({type:"disconnected"}),clearTimeout(sc),sc=setTimeout(()=>Bf(r,i),lf))};const u=new TextDecoder;It.onmessage=function(g){if(this===It)try{const a=g.data;let h;if(typeof a=="string"?h=JSON.parse(a):a instanceof ArrayBuffer&&i&&(h=JSON.parse(u.decode(i.ZstdStream.decompress(new Uint8Array(a))))),h!==void 0){const w=Hw.safeParse(h);if(!w.success){Zn("zod",h),Zn("Zod",w.error.message),Zn("Zod",w.error.issues);return}Ek(w.data)}}catch(a){Is("WS",a)}}}Vn.onmessage=r=>{const i=r.data;switch(i.type){case"connect":(async()=>{let u;if(i.compress)try{u=await dh()}catch(E){Is("WS","Failed to initialize Zstd, falling back to uncompressed",E)}Bf(i.websocketUrl,u)})();break;case"disconnect":if(clearTimeout(sc),It){try{It.close()}catch{Is("WS","Error closing WebSocket")}It=null}break;case"send":It&&It.readyState===WebSocket.OPEN?It.send(JSON.stringify(i.value)):Qp("WS","Attempting to send on closed WebSocket",i.value);break}}})(); +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const F of this.seen.entries()){const x=F[1];if(i===F[0]){h(F);continue}if(E.external){const j=E.external.registry.get(F[0])?.id;if(i!==F[0]&&j){h(F);continue}}if(this.metadataRegistry.get(F[0])?.id){h(F);continue}if(x.cycle){h(F);continue}if(x.count>1&&E.reused==="ref"){h(F);continue}}const w=(F,x)=>{const $=this.seen.get(F),j=$.def??$.schema,P={...j};if($.ref===null)return;const rA=$.ref;if($.ref=null,rA){w(rA,x);const iA=this.seen.get(rA).schema;iA.$ref&&(x.target==="draft-7"||x.target==="draft-4"||x.target==="openapi-3.0")?(j.allOf=j.allOf??[],j.allOf.push(iA)):(Object.assign(j,iA),Object.assign(j,P))}$.isParent||this.override({zodSchema:F,jsonSchema:j,path:$.path??[]})};for(const F of[...this.seen.entries()].reverse())w(F[0],{target:this.target});const k={};if(this.target==="draft-2020-12"?k.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?k.$schema="http://json-schema.org/draft-07/schema#":this.target==="draft-4"?k.$schema="http://json-schema.org/draft-04/schema#":this.target==="openapi-3.0"||console.warn(`Invalid target: ${this.target}`),E.external?.uri){const F=E.external.registry.get(i)?.id;if(!F)throw new Error("Schema is missing an `id` property");k.$id=E.external.uri(F)}Object.assign(k,g.def);const v=E.external?.defs??{};for(const F of this.seen.entries()){const x=F[1];x.def&&x.defId&&(v[x.defId]=x.def)}E.external||Object.keys(v).length>0&&(this.target==="draft-2020-12"?k.$defs=v:k.definitions=v);try{return JSON.parse(JSON.stringify(k))}catch{throw new Error("Error converting schema to JSON.")}}}function LC(r,i){if(r instanceof Ps){const E=new pg(i),g={};for(const w of r._idmap.entries()){const[k,v]=w;E.process(v)}const a={},h={registry:r,uri:i?.uri,defs:g};for(const w of r._idmap.entries()){const[k,v]=w;a[k]=E.emit(v,{...i,external:h})}if(Object.keys(g).length>0){const w=E.target==="draft-2020-12"?"$defs":"definitions";a.__shared={[w]:g}}return{schemas:a}}const u=new pg(i);return u.process(r),u.emit(r,i)}function ot(r,i){const u=i??{seen:new Set};if(u.seen.has(r))return!1;u.seen.add(r);const E=r._zod.def;if(E.type==="transform")return!0;if(E.type==="array")return ot(E.element,u);if(E.type==="set")return ot(E.valueType,u);if(E.type==="lazy")return ot(E.getter(),u);if(E.type==="promise"||E.type==="optional"||E.type==="nonoptional"||E.type==="nullable"||E.type==="readonly"||E.type==="default"||E.type==="prefault")return ot(E.innerType,u);if(E.type==="intersection")return ot(E.left,u)||ot(E.right,u);if(E.type==="record"||E.type==="map")return ot(E.keyType,u)||ot(E.valueType,u);if(E.type==="pipe")return ot(E.in,u)||ot(E.out,u);if(E.type==="object"){for(const g in E.shape)if(ot(E.shape[g],u))return!0;return!1}if(E.type==="union"){for(const g of E.options)if(ot(g,u))return!0;return!1}if(E.type==="tuple"){for(const g of E.items)if(ot(g,u))return!0;return!!(E.rest&&ot(E.rest,u))}return!1}var cb=Object.freeze({__proto__:null}),ub=Object.freeze({__proto__:null,$ZodAny:zl,$ZodArray:eB,$ZodAsyncError:en,$ZodBase64:Ul,$ZodBase64URL:xl,$ZodBigInt:Ns,$ZodBigIntFormat:Zl,$ZodBoolean:Os,$ZodCIDRv4:Ol,$ZodCIDRv6:Nl,$ZodCUID:yl,$ZodCUID2:bl,$ZodCatch:_B,$ZodCheck:we,$ZodCheckBigIntFormat:qE,$ZodCheckEndsWith:cl,$ZodCheckGreaterThan:Ts,$ZodCheckIncludes:sl,$ZodCheckLengthEquals:nl,$ZodCheckLessThan:Rs,$ZodCheckLowerCase:ol,$ZodCheckMaxLength:tl,$ZodCheckMaxSize:VE,$ZodCheckMimeType:El,$ZodCheckMinLength:rl,$ZodCheckMinSize:Al,$ZodCheckMultipleOf:KE,$ZodCheckNumberFormat:WE,$ZodCheckOverwrite:ll,$ZodCheckProperty:Il,$ZodCheckRegex:il,$ZodCheckSizeEquals:el,$ZodCheckStartsWith:gl,$ZodCheckStringFormat:zi,$ZodCheckUpperCase:al,$ZodCodec:Ls,$ZodCustom:UB,$ZodCustomStringFormat:jl,$ZodDate:Vl,$ZodDefault:pB,$ZodDiscriminatedUnion:aB,$ZodE164:Ll,$ZodEmail:dl,$ZodEmoji:ml,$ZodEncodeError:qo,$ZodEnum:BB,$ZodError:Cs,$ZodFile:QB,$ZodFunction:MB,$ZodGUID:Ql,$ZodIPv4:Tl,$ZodIPv6:Fl,$ZodISODate:Sl,$ZodISODateTime:_l,$ZodISODuration:Rl,$ZodISOTime:vl,$ZodIntersection:sB,$ZodJWT:Yl,$ZodKSUID:kl,$ZodLazy:NB,$ZodLiteral:CB,$ZodMAC:Ml,$ZodMap:uB,$ZodNaN:SB,$ZodNanoID:pl,$ZodNever:Wl,$ZodNonOptional:DB,$ZodNull:Xl,$ZodNullable:mB,$ZodNumber:Ms,$ZodNumberFormat:Jl,$ZodObject:nB,$ZodObjectJIT:iB,$ZodOptional:hB,$ZodPipe:vB,$ZodPrefault:bB,$ZodPromise:OB,$ZodReadonly:RB,$ZodRealError:Ct,$ZodRecord:cB,$ZodRegistry:Ps,$ZodSet:EB,$ZodString:Ki,$ZodStringFormat:Qe,$ZodSuccess:kB,$ZodSymbol:Hl,$ZodTemplateLiteral:FB,$ZodTransform:fB,$ZodTuple:xs,$ZodType:HA,$ZodULID:Dl,$ZodURL:hl,$ZodUUID:fl,$ZodUndefined:$l,$ZodUnion:Us,$ZodUnknown:Kl,$ZodVoid:ql,$ZodXID:wl,$brand:jI,$constructor:H,$input:XB,$output:$B,Doc:Bl,JSONSchema:cb,JSONSchemaGenerator:pg,NEVER:YI,TimePrecision:qB,_any:dC,_array:RC,_base64:ig,_base64url:og,_bigint:IC,_boolean:cC,_catch:nb,_check:NC,_cidrv4:rg,_cidrv6:ng,_coercedBigint:EC,_coercedBoolean:uC,_coercedDate:bC,_coercedNumber:nC,_coercedString:KB,_cuid:Ks,_cuid2:Ws,_custom:FC,_date:yC,_decode:ps,_decodeAsync:bs,_default:eb,_discriminatedUnion:jy,_e164:ag,_email:js,_emoji:Xs,_encode:ms,_encodeAsync:ys,_endsWith:Bg,_enum:zy,_file:TC,_float32:oC,_float64:aC,_gt:an,_gte:Qt,_guid:ua,_includes:Eg,_int:iC,_int32:sC,_int64:lC,_intersection:Jy,_ipv4:eg,_ipv6:tg,_isoDate:AC,_isoDateTime:VB,_isoDuration:tC,_isoTime:eC,_jwt:sg,_ksuid:Ag,_lazy:sb,_length:Ba,_literal:Wy,_lowercase:ug,_lt:on,_lte:Lt,_mac:WB,_map:$y,_max:Lt,_maxLength:la,_maxSize:Ea,_mime:Cg,_min:Qt,_minLength:zn,_minSize:Ao,_multipleOf:Vi,_nan:DC,_nanoid:zs,_nativeEnum:Ky,_negative:kC,_never:mC,_nonnegative:SC,_nonoptional:tb,_nonpositive:_C,_normalize:Qg,_null:fC,_nullable:Ab,_number:rC,_optional:Vy,_overwrite:Mr,_parse:ji,_parseAsync:Ji,_pipe:ib,_positive:wC,_promise:gb,_property:vC,_readonly:ob,_record:Hy,_refine:MC,_regex:cg,_safeDecode:ws,_safeDecodeAsync:_s,_safeEncode:Ds,_safeEncodeAsync:ks,_safeParse:Zi,_safeParseAsync:Hi,_set:Xy,_size:gg,_slugify:mg,_startsWith:lg,_string:zB,_stringFormat:eo,_stringbool:xC,_success:rb,_superRefine:OC,_symbol:CC,_templateLiteral:ab,_toLowerCase:dg,_toUpperCase:hg,_transform:qy,_trim:fg,_tuple:Zy,_uint32:gC,_uint64:BC,_ulid:qs,_undefined:QC,_union:Yy,_unknown:hC,_uppercase:Ig,_url:Ia,_uuid:Js,_uuidv4:Zs,_uuidv6:Hs,_uuidv7:$s,_void:pC,_xid:Vs,clone:St,config:it,decode:Gp,decodeAsync:Lp,describe:UC,encode:Up,encodeAsync:xp,flattenError:Qs,formatError:fs,globalConfig:Vo,globalRegistry:xt,isValidBase64:Fs,isValidBase64URL:Gl,isValidJWT:Pl,locales:ZB,meta:GC,parse:ds,parseAsync:hs,prettifyError:uE,regexes:vs,registry:Ys,safeDecode:Yp,safeDecodeAsync:Jp,safeEncode:Pp,safeEncodeAsync:jp,safeParse:IE,safeParseAsync:EE,toDotPath:cE,toJSONSchema:LC,treeifyError:gE,util:aE,version:Cl});const yg=H("ZodISODateTime",(r,i)=>{_l.init(r,i),fe.init(r,i)});function PC(r){return VB(yg,r)}const bg=H("ZodISODate",(r,i)=>{Sl.init(r,i),fe.init(r,i)});function YC(r){return AC(bg,r)}const Dg=H("ZodISOTime",(r,i)=>{vl.init(r,i),fe.init(r,i)});function jC(r){return eC(Dg,r)}const wg=H("ZodISODuration",(r,i)=>{Rl.init(r,i),fe.init(r,i)});function JC(r){return tC(wg,r)}var Ib=Object.freeze({__proto__:null,ZodISODate:bg,ZodISODateTime:yg,ZodISODuration:wg,ZodISOTime:Dg,date:YC,datetime:PC,duration:JC,time:jC});const ZC=(r,i)=>{Cs.init(r,i),r.name="ZodError",Object.defineProperties(r,{format:{value:u=>fs(r,u)},flatten:{value:u=>Qs(r,u)},addIssue:{value:u=>{r.issues.push(u),r.message=JSON.stringify(r.issues,Aa,2)}},addIssues:{value:u=>{r.issues.push(...u),r.message=JSON.stringify(r.issues,Aa,2)}},isEmpty:{get(){return r.issues.length===0}}})},Eb=H("ZodError",ZC),ft=H("ZodError",ZC,{Parent:Error}),HC=ji(ft),$C=Ji(ft),XC=Zi(ft),zC=Hi(ft),KC=ms(ft),WC=ps(ft),qC=ys(ft),VC=bs(ft),AQ=Ds(ft),eQ=ws(ft),tQ=ks(ft),rQ=_s(ft),qA=H("ZodType",(r,i)=>(HA.init(r,i),r.def=i,r.type=i.type,Object.defineProperty(r,"_def",{value:i}),r.check=(...u)=>r.clone(lr(i,{checks:[...i.checks??[],...u.map(E=>typeof E=="function"?{_zod:{check:E,def:{check:"custom"},onattach:[]}}:E)]})),r.clone=(u,E)=>St(r,u,E),r.brand=()=>r,r.register=(u,E)=>(u.add(r,E),r),r.parse=(u,E)=>HC(r,u,E,{callee:r.parse}),r.safeParse=(u,E)=>XC(r,u,E),r.parseAsync=async(u,E)=>$C(r,u,E,{callee:r.parseAsync}),r.safeParseAsync=async(u,E)=>zC(r,u,E),r.spa=r.safeParseAsync,r.encode=(u,E)=>KC(r,u,E),r.decode=(u,E)=>WC(r,u,E),r.encodeAsync=async(u,E)=>qC(r,u,E),r.decodeAsync=async(u,E)=>VC(r,u,E),r.safeEncode=(u,E)=>AQ(r,u,E),r.safeDecode=(u,E)=>eQ(r,u,E),r.safeEncodeAsync=async(u,E)=>tQ(r,u,E),r.safeDecodeAsync=async(u,E)=>rQ(r,u,E),r.refine=(u,E)=>r.check(LQ(u,E)),r.superRefine=u=>r.check(PQ(u)),r.overwrite=u=>r.check(Mr(u)),r.optional=()=>ba(r),r.nullable=()=>dt(r),r.nullish=()=>ba(dt(r)),r.nonoptional=u=>kQ(r,u),r.array=()=>be(r),r.or=u=>ya([r,u]),r.and=u=>BQ(r,u),r.transform=u=>Da(r,qg(u)),r.default=u=>bQ(r,u),r.prefault=u=>wQ(r,u),r.catch=u=>vQ(r,u),r.pipe=u=>Da(r,u),r.readonly=()=>FQ(r),r.describe=u=>{const E=r.clone();return xt.add(E,{description:u}),E},Object.defineProperty(r,"description",{get(){return xt.get(r)?.description},configurable:!0}),r.meta=(...u)=>{if(u.length===0)return xt.get(r);const E=r.clone();return xt.add(E,u[0]),E},r.isOptional=()=>r.safeParse(void 0).success,r.isNullable=()=>r.safeParse(null).success,r)),kg=H("_ZodString",(r,i)=>{Ki.init(r,i),qA.init(r,i);const u=r._zod.bag;r.format=u.format??null,r.minLength=u.minimum??null,r.maxLength=u.maximum??null,r.regex=(...E)=>r.check(cg(...E)),r.includes=(...E)=>r.check(Eg(...E)),r.startsWith=(...E)=>r.check(lg(...E)),r.endsWith=(...E)=>r.check(Bg(...E)),r.min=(...E)=>r.check(zn(...E)),r.max=(...E)=>r.check(la(...E)),r.length=(...E)=>r.check(Ba(...E)),r.nonempty=(...E)=>r.check(zn(1,...E)),r.lowercase=E=>r.check(ug(E)),r.uppercase=E=>r.check(Ig(E)),r.trim=()=>r.check(fg()),r.normalize=(...E)=>r.check(Qg(...E)),r.toLowerCase=()=>r.check(dg()),r.toUpperCase=()=>r.check(hg()),r.slugify=()=>r.check(mg())}),Ca=H("ZodString",(r,i)=>{Ki.init(r,i),kg.init(r,i),r.email=u=>r.check(js(_g,u)),r.url=u=>r.check(Ia(fa,u)),r.jwt=u=>r.check(sg(jg,u)),r.emoji=u=>r.check(Xs(Sg,u)),r.guid=u=>r.check(ua(Qa,u)),r.uuid=u=>r.check(Js(Cr,u)),r.uuidv4=u=>r.check(Zs(Cr,u)),r.uuidv6=u=>r.check(Hs(Cr,u)),r.uuidv7=u=>r.check($s(Cr,u)),r.nanoid=u=>r.check(zs(vg,u)),r.guid=u=>r.check(ua(Qa,u)),r.cuid=u=>r.check(Ks(Rg,u)),r.cuid2=u=>r.check(Ws(Tg,u)),r.ulid=u=>r.check(qs(Fg,u)),r.base64=u=>r.check(ig(Lg,u)),r.base64url=u=>r.check(og(Pg,u)),r.xid=u=>r.check(Vs(Mg,u)),r.ksuid=u=>r.check(Ag(Og,u)),r.ipv4=u=>r.check(eg(Ng,u)),r.ipv6=u=>r.check(tg(Ug,u)),r.cidrv4=u=>r.check(rg(Gg,u)),r.cidrv6=u=>r.check(ng(xg,u)),r.e164=u=>r.check(ag(Yg,u)),r.datetime=u=>r.check(PC(u)),r.date=u=>r.check(YC(u)),r.time=u=>r.check(jC(u)),r.duration=u=>r.check(JC(u))});function GA(r){return zB(Ca,r)}const fe=H("ZodStringFormat",(r,i)=>{Qe.init(r,i),kg.init(r,i)}),_g=H("ZodEmail",(r,i)=>{dl.init(r,i),fe.init(r,i)});function lb(r){return js(_g,r)}const Qa=H("ZodGUID",(r,i)=>{Ql.init(r,i),fe.init(r,i)});function Bb(r){return ua(Qa,r)}const Cr=H("ZodUUID",(r,i)=>{fl.init(r,i),fe.init(r,i)});function Cb(r){return Js(Cr,r)}function Qb(r){return Zs(Cr,r)}function fb(r){return Hs(Cr,r)}function db(r){return $s(Cr,r)}const fa=H("ZodURL",(r,i)=>{hl.init(r,i),fe.init(r,i)});function hb(r){return Ia(fa,r)}function mb(r){return Ia(fa,{protocol:/^https?$/,hostname:TE,...tA(r)})}const Sg=H("ZodEmoji",(r,i)=>{ml.init(r,i),fe.init(r,i)});function pb(r){return Xs(Sg,r)}const vg=H("ZodNanoID",(r,i)=>{pl.init(r,i),fe.init(r,i)});function yb(r){return zs(vg,r)}const Rg=H("ZodCUID",(r,i)=>{yl.init(r,i),fe.init(r,i)});function bb(r){return Ks(Rg,r)}const Tg=H("ZodCUID2",(r,i)=>{bl.init(r,i),fe.init(r,i)});function Db(r){return Ws(Tg,r)}const Fg=H("ZodULID",(r,i)=>{Dl.init(r,i),fe.init(r,i)});function wb(r){return qs(Fg,r)}const Mg=H("ZodXID",(r,i)=>{wl.init(r,i),fe.init(r,i)});function kb(r){return Vs(Mg,r)}const Og=H("ZodKSUID",(r,i)=>{kl.init(r,i),fe.init(r,i)});function _b(r){return Ag(Og,r)}const Ng=H("ZodIPv4",(r,i)=>{Tl.init(r,i),fe.init(r,i)});function Sb(r){return eg(Ng,r)}const nQ=H("ZodMAC",(r,i)=>{Ml.init(r,i),fe.init(r,i)});function vb(r){return WB(nQ,r)}const Ug=H("ZodIPv6",(r,i)=>{Fl.init(r,i),fe.init(r,i)});function Rb(r){return tg(Ug,r)}const Gg=H("ZodCIDRv4",(r,i)=>{Ol.init(r,i),fe.init(r,i)});function Tb(r){return rg(Gg,r)}const xg=H("ZodCIDRv6",(r,i)=>{Nl.init(r,i),fe.init(r,i)});function Fb(r){return ng(xg,r)}const Lg=H("ZodBase64",(r,i)=>{Ul.init(r,i),fe.init(r,i)});function Mb(r){return ig(Lg,r)}const Pg=H("ZodBase64URL",(r,i)=>{xl.init(r,i),fe.init(r,i)});function Ob(r){return og(Pg,r)}const Yg=H("ZodE164",(r,i)=>{Ll.init(r,i),fe.init(r,i)});function Nb(r){return ag(Yg,r)}const jg=H("ZodJWT",(r,i)=>{Yl.init(r,i),fe.init(r,i)});function Ub(r){return sg(jg,r)}const to=H("ZodCustomStringFormat",(r,i)=>{jl.init(r,i),fe.init(r,i)});function Gb(r,i,u={}){return eo(to,r,i,u)}function xb(r){return eo(to,"hostname",RE,r)}function Lb(r){return eo(to,"hex",XE,r)}function Pb(r,i){const u=i?.enc??"hex",E=`${r}_${u}`,g=vs[E];if(!g)throw new Error(`Unrecognized hash format: ${E}`);return eo(to,E,g,i)}const da=H("ZodNumber",(r,i)=>{Ms.init(r,i),qA.init(r,i),r.gt=(E,g)=>r.check(an(E,g)),r.gte=(E,g)=>r.check(Qt(E,g)),r.min=(E,g)=>r.check(Qt(E,g)),r.lt=(E,g)=>r.check(on(E,g)),r.lte=(E,g)=>r.check(Lt(E,g)),r.max=(E,g)=>r.check(Lt(E,g)),r.int=E=>r.check(Jg(E)),r.safe=E=>r.check(Jg(E)),r.positive=E=>r.check(an(0,E)),r.nonnegative=E=>r.check(Qt(0,E)),r.negative=E=>r.check(on(0,E)),r.nonpositive=E=>r.check(Lt(0,E)),r.multipleOf=(E,g)=>r.check(Vi(E,g)),r.step=(E,g)=>r.check(Vi(E,g)),r.finite=()=>r;const u=r._zod.bag;r.minValue=Math.max(u.minimum??Number.NEGATIVE_INFINITY,u.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,r.maxValue=Math.min(u.maximum??Number.POSITIVE_INFINITY,u.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,r.isInt=(u.format??"").includes("int")||Number.isSafeInteger(u.multipleOf??.5),r.isFinite=!0,r.format=u.format??null});function G(r){return rC(da,r)}const Kn=H("ZodNumberFormat",(r,i)=>{Jl.init(r,i),da.init(r,i)});function Jg(r){return iC(Kn,r)}function Yb(r){return oC(Kn,r)}function jb(r){return aC(Kn,r)}function Jb(r){return sC(Kn,r)}function Zb(r){return gC(Kn,r)}const ha=H("ZodBoolean",(r,i)=>{Os.init(r,i),qA.init(r,i)});function Qr(r){return cC(ha,r)}const ma=H("ZodBigInt",(r,i)=>{Ns.init(r,i),qA.init(r,i),r.gte=(E,g)=>r.check(Qt(E,g)),r.min=(E,g)=>r.check(Qt(E,g)),r.gt=(E,g)=>r.check(an(E,g)),r.gte=(E,g)=>r.check(Qt(E,g)),r.min=(E,g)=>r.check(Qt(E,g)),r.lt=(E,g)=>r.check(on(E,g)),r.lte=(E,g)=>r.check(Lt(E,g)),r.max=(E,g)=>r.check(Lt(E,g)),r.positive=E=>r.check(an(BigInt(0),E)),r.negative=E=>r.check(on(BigInt(0),E)),r.nonpositive=E=>r.check(Lt(BigInt(0),E)),r.nonnegative=E=>r.check(Qt(BigInt(0),E)),r.multipleOf=(E,g)=>r.check(Vi(E,g));const u=r._zod.bag;r.minValue=u.minimum??null,r.maxValue=u.maximum??null,r.format=u.format??null});function Hb(r){return IC(ma,r)}const Zg=H("ZodBigIntFormat",(r,i)=>{Zl.init(r,i),ma.init(r,i)});function $b(r){return lC(Zg,r)}function Xb(r){return BC(Zg,r)}const iQ=H("ZodSymbol",(r,i)=>{Hl.init(r,i),qA.init(r,i)});function zb(r){return CC(iQ,r)}const oQ=H("ZodUndefined",(r,i)=>{$l.init(r,i),qA.init(r,i)});function Kb(r){return QC(oQ,r)}const aQ=H("ZodNull",(r,i)=>{Xl.init(r,i),qA.init(r,i)});function Hg(r){return fC(aQ,r)}const sQ=H("ZodAny",(r,i)=>{zl.init(r,i),qA.init(r,i)});function Wb(){return dC(sQ)}const gQ=H("ZodUnknown",(r,i)=>{Kl.init(r,i),qA.init(r,i)});function Wn(){return hC(gQ)}const cQ=H("ZodNever",(r,i)=>{Wl.init(r,i),qA.init(r,i)});function $g(r){return mC(cQ,r)}const uQ=H("ZodVoid",(r,i)=>{ql.init(r,i),qA.init(r,i)});function qb(r){return pC(uQ,r)}const Xg=H("ZodDate",(r,i)=>{Vl.init(r,i),qA.init(r,i),r.min=(E,g)=>r.check(Qt(E,g)),r.max=(E,g)=>r.check(Lt(E,g));const u=r._zod.bag;r.minDate=u.minimum?new Date(u.minimum):null,r.maxDate=u.maximum?new Date(u.maximum):null});function Vb(r){return yC(Xg,r)}const IQ=H("ZodArray",(r,i)=>{eB.init(r,i),qA.init(r,i),r.element=i.element,r.min=(u,E)=>r.check(zn(u,E)),r.nonempty=u=>r.check(zn(1,u)),r.max=(u,E)=>r.check(la(u,E)),r.length=(u,E)=>r.check(Ba(u,E)),r.unwrap=()=>r.element});function be(r,i){return RC(IQ,r,i)}function AD(r){const i=r._zod.def.shape;return vt(Object.keys(i))}const pa=H("ZodObject",(r,i)=>{iB.init(r,i),qA.init(r,i),te(r,"shape",()=>i.shape),r.keyof=()=>vt(Object.keys(r._zod.def.shape)),r.catchall=u=>r.clone({...r._zod.def,catchall:u}),r.passthrough=()=>r.clone({...r._zod.def,catchall:Wn()}),r.loose=()=>r.clone({...r._zod.def,catchall:Wn()}),r.strict=()=>r.clone({...r._zod.def,catchall:$g()}),r.strip=()=>r.clone({...r._zod.def,catchall:void 0}),r.extend=u=>AE(r,u),r.safeExtend=u=>eE(r,u),r.merge=u=>tE(r,u),r.pick=u=>qI(r,u),r.omit=u=>VI(r,u),r.partial=(...u)=>rE(Vg,r,u[0]),r.required=(...u)=>nE(Ac,r,u[0])});function NA(r,i){const u={type:"object",shape:r??{},...tA(i)};return new pa(u)}function eD(r,i){return new pa({type:"object",shape:r,catchall:$g(),...tA(i)})}function tD(r,i){return new pa({type:"object",shape:r,catchall:Wn(),...tA(i)})}const zg=H("ZodUnion",(r,i)=>{Us.init(r,i),qA.init(r,i),r.options=i.options});function ya(r,i){return new zg({type:"union",options:r,...tA(i)})}const EQ=H("ZodDiscriminatedUnion",(r,i)=>{zg.init(r,i),aB.init(r,i)});function fr(r,i,u){return new EQ({type:"union",options:i,discriminator:r,...tA(u)})}const lQ=H("ZodIntersection",(r,i)=>{sB.init(r,i),qA.init(r,i)});function BQ(r,i){return new lQ({type:"intersection",left:r,right:i})}const CQ=H("ZodTuple",(r,i)=>{xs.init(r,i),qA.init(r,i),r.rest=u=>r.clone({...r._zod.def,rest:u})});function Kg(r,i,u){const E=i instanceof HA,g=E?u:i,a=E?i:null;return new CQ({type:"tuple",items:r,rest:a,...tA(g)})}const Wg=H("ZodRecord",(r,i)=>{cB.init(r,i),qA.init(r,i),r.keyType=i.keyType,r.valueType=i.valueType});function ro(r,i,u){return new Wg({type:"record",keyType:r,valueType:i,...tA(u)})}function rD(r,i,u){const E=St(r);return E._zod.values=void 0,new Wg({type:"record",keyType:E,valueType:i,...tA(u)})}const QQ=H("ZodMap",(r,i)=>{uB.init(r,i),qA.init(r,i),r.keyType=i.keyType,r.valueType=i.valueType});function nD(r,i,u){return new QQ({type:"map",keyType:r,valueType:i,...tA(u)})}const fQ=H("ZodSet",(r,i)=>{EB.init(r,i),qA.init(r,i),r.min=(...u)=>r.check(Ao(...u)),r.nonempty=u=>r.check(Ao(1,u)),r.max=(...u)=>r.check(Ea(...u)),r.size=(...u)=>r.check(gg(...u))});function iD(r,i){return new fQ({type:"set",valueType:r,...tA(i)})}const no=H("ZodEnum",(r,i)=>{BB.init(r,i),qA.init(r,i),r.enum=i.entries,r.options=Object.values(i.entries);const u=new Set(Object.keys(i.entries));r.extract=(E,g)=>{const a={};for(const h of E)if(u.has(h))a[h]=i.entries[h];else throw new Error(`Key ${h} not found in enum`);return new no({...i,checks:[],...tA(g),entries:a})},r.exclude=(E,g)=>{const a={...i.entries};for(const h of E)if(u.has(h))delete a[h];else throw new Error(`Key ${h} not found in enum`);return new no({...i,checks:[],...tA(g),entries:a})}});function vt(r,i){const u=Array.isArray(r)?Object.fromEntries(r.map(E=>[E,E])):r;return new no({type:"enum",entries:u,...tA(i)})}function oD(r,i){return new no({type:"enum",entries:r,...tA(i)})}const dQ=H("ZodLiteral",(r,i)=>{CB.init(r,i),qA.init(r,i),r.values=new Set(i.values),Object.defineProperty(r,"value",{get(){if(i.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return i.values[0]}})});function DA(r,i){return new dQ({type:"literal",values:Array.isArray(r)?r:[r],...tA(i)})}const hQ=H("ZodFile",(r,i)=>{QB.init(r,i),qA.init(r,i),r.min=(u,E)=>r.check(Ao(u,E)),r.max=(u,E)=>r.check(Ea(u,E)),r.mime=(u,E)=>r.check(Cg(Array.isArray(u)?u:[u],E))});function aD(r){return TC(hQ,r)}const mQ=H("ZodTransform",(r,i)=>{fB.init(r,i),qA.init(r,i),r._zod.parse=(u,E)=>{if(E.direction==="backward")throw new qo(r.constructor.name);u.addIssue=a=>{if(typeof a=="string")u.issues.push($n(a,u.value,i));else{const h=a;h.fatal&&(h.continue=!1),h.code??(h.code="custom"),h.input??(h.input=u.value),h.inst??(h.inst=r),u.issues.push($n(h))}};const g=i.transform(u.value,u);return g instanceof Promise?g.then(a=>(u.value=a,u)):(u.value=g,u)}});function qg(r){return new mQ({type:"transform",transform:r})}const Vg=H("ZodOptional",(r,i)=>{hB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function ba(r){return new Vg({type:"optional",innerType:r})}const pQ=H("ZodNullable",(r,i)=>{mB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function dt(r){return new pQ({type:"nullable",innerType:r})}function sD(r){return ba(dt(r))}const yQ=H("ZodDefault",(r,i)=>{pB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType,r.removeDefault=r.unwrap});function bQ(r,i){return new yQ({type:"default",innerType:r,get defaultValue(){return typeof i=="function"?i():ta(i)}})}const DQ=H("ZodPrefault",(r,i)=>{bB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function wQ(r,i){return new DQ({type:"prefault",innerType:r,get defaultValue(){return typeof i=="function"?i():ta(i)}})}const Ac=H("ZodNonOptional",(r,i)=>{DB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function kQ(r,i){return new Ac({type:"nonoptional",innerType:r,...tA(i)})}const _Q=H("ZodSuccess",(r,i)=>{kB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function gD(r){return new _Q({type:"success",innerType:r})}const SQ=H("ZodCatch",(r,i)=>{_B.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType,r.removeCatch=r.unwrap});function vQ(r,i){return new SQ({type:"catch",innerType:r,catchValue:typeof i=="function"?i:()=>i})}const RQ=H("ZodNaN",(r,i)=>{SB.init(r,i),qA.init(r,i)});function cD(r){return DC(RQ,r)}const ec=H("ZodPipe",(r,i)=>{vB.init(r,i),qA.init(r,i),r.in=i.in,r.out=i.out});function Da(r,i){return new ec({type:"pipe",in:r,out:i})}const tc=H("ZodCodec",(r,i)=>{ec.init(r,i),Ls.init(r,i)});function uD(r,i,u){return new tc({type:"pipe",in:r,out:i,transform:u.decode,reverseTransform:u.encode})}const TQ=H("ZodReadonly",(r,i)=>{RB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function FQ(r){return new TQ({type:"readonly",innerType:r})}const MQ=H("ZodTemplateLiteral",(r,i)=>{FB.init(r,i),qA.init(r,i)});function ID(r,i){return new MQ({type:"template_literal",parts:r,...tA(i)})}const OQ=H("ZodLazy",(r,i)=>{NB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.getter()});function NQ(r){return new OQ({type:"lazy",getter:r})}const UQ=H("ZodPromise",(r,i)=>{OB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function ED(r){return new UQ({type:"promise",innerType:r})}const GQ=H("ZodFunction",(r,i)=>{MB.init(r,i),qA.init(r,i)});function xQ(r){return new GQ({type:"function",input:Array.isArray(r?.input)?Kg(r?.input):r?.input??be(Wn()),output:r?.output??Wn()})}const wa=H("ZodCustom",(r,i)=>{UB.init(r,i),qA.init(r,i)});function lD(r){const i=new we({check:"custom"});return i._zod.check=r,i}function BD(r,i){return FC(wa,r??(()=>!0),i)}function LQ(r,i={}){return MC(wa,r,i)}function PQ(r){return OC(r)}const CD=UC,QD=GC;function fD(r,i={error:`Input not instance of ${r.name}`}){const u=new wa({type:"custom",check:"custom",fn:E=>E instanceof r,abort:!0,...tA(i)});return u._zod.bag.Class=r,u}const dD=(...r)=>xC({Codec:tc,Boolean:ha,String:Ca},...r);function hD(r){const i=NQ(()=>ya([GA(r),G(),Qr(),Hg(),be(i),ro(GA(),i)]));return i}function YQ(r,i){return Da(qg(r),i)}const mD={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function pD(r){it({customError:r})}function yD(){return it().customError}var rc;rc||(rc={});function bD(r){return KB(Ca,r)}function Je(r){return nC(da,r)}function DD(r){return uC(ha,r)}function XA(r){return EC(ma,r)}function wD(r){return bC(Xg,r)}var kD=Object.freeze({__proto__:null,bigint:XA,boolean:DD,date:wD,number:Je,string:bD});it(LB());var _D=Object.freeze({__proto__:null,$brand:jI,$input:XB,$output:$B,NEVER:YI,TimePrecision:qB,ZodAny:sQ,ZodArray:IQ,ZodBase64:Lg,ZodBase64URL:Pg,ZodBigInt:ma,ZodBigIntFormat:Zg,ZodBoolean:ha,ZodCIDRv4:Gg,ZodCIDRv6:xg,ZodCUID:Rg,ZodCUID2:Tg,ZodCatch:SQ,ZodCodec:tc,ZodCustom:wa,ZodCustomStringFormat:to,ZodDate:Xg,ZodDefault:yQ,ZodDiscriminatedUnion:EQ,ZodE164:Yg,ZodEmail:_g,ZodEmoji:Sg,ZodEnum:no,ZodError:Eb,ZodFile:hQ,get ZodFirstPartyTypeKind(){return rc},ZodFunction:GQ,ZodGUID:Qa,ZodIPv4:Ng,ZodIPv6:Ug,ZodISODate:bg,ZodISODateTime:yg,ZodISODuration:wg,ZodISOTime:Dg,ZodIntersection:lQ,ZodIssueCode:mD,ZodJWT:jg,ZodKSUID:Og,ZodLazy:OQ,ZodLiteral:dQ,ZodMAC:nQ,ZodMap:QQ,ZodNaN:RQ,ZodNanoID:vg,ZodNever:cQ,ZodNonOptional:Ac,ZodNull:aQ,ZodNullable:pQ,ZodNumber:da,ZodNumberFormat:Kn,ZodObject:pa,ZodOptional:Vg,ZodPipe:ec,ZodPrefault:DQ,ZodPromise:UQ,ZodReadonly:TQ,ZodRealError:ft,ZodRecord:Wg,ZodSet:fQ,ZodString:Ca,ZodStringFormat:fe,ZodSuccess:_Q,ZodSymbol:iQ,ZodTemplateLiteral:MQ,ZodTransform:mQ,ZodTuple:CQ,ZodType:qA,ZodULID:Fg,ZodURL:fa,ZodUUID:Cr,ZodUndefined:oQ,ZodUnion:zg,ZodUnknown:gQ,ZodVoid:uQ,ZodXID:Mg,_ZodString:kg,_default:bQ,_function:xQ,any:Wb,array:be,base64:Mb,base64url:Ob,bigint:Hb,boolean:Qr,catch:vQ,check:lD,cidrv4:Tb,cidrv6:Fb,clone:St,codec:uD,coerce:kD,config:it,core:ub,cuid:bb,cuid2:Db,custom:BD,date:Vb,decode:WC,decodeAsync:VC,describe:CD,discriminatedUnion:fr,e164:Nb,email:lb,emoji:pb,encode:KC,encodeAsync:qC,endsWith:Bg,enum:vt,file:aD,flattenError:Qs,float32:Yb,float64:jb,formatError:fs,function:xQ,getErrorMap:yD,globalRegistry:xt,gt:an,gte:Qt,guid:Bb,hash:Pb,hex:Lb,hostname:xb,httpUrl:mb,includes:Eg,instanceof:fD,int:Jg,int32:Jb,int64:$b,intersection:BQ,ipv4:Sb,ipv6:Rb,iso:Ib,json:hD,jwt:Ub,keyof:AD,ksuid:_b,lazy:NQ,length:Ba,literal:DA,locales:ZB,looseObject:tD,lowercase:ug,lt:on,lte:Lt,mac:vb,map:nD,maxLength:la,maxSize:Ea,meta:QD,mime:Cg,minLength:zn,minSize:Ao,multipleOf:Vi,nan:cD,nanoid:yb,nativeEnum:oD,negative:kC,never:$g,nonnegative:SC,nonoptional:kQ,nonpositive:_C,normalize:Qg,null:Hg,nullable:dt,nullish:sD,number:G,object:NA,optional:ba,overwrite:Mr,parse:HC,parseAsync:$C,partialRecord:rD,pipe:Da,positive:wC,prefault:wQ,preprocess:YQ,prettifyError:uE,promise:ED,property:vC,readonly:FQ,record:ro,refine:LQ,regex:cg,regexes:vs,registry:Ys,safeDecode:eQ,safeDecodeAsync:rQ,safeEncode:AQ,safeEncodeAsync:tQ,safeParse:XC,safeParseAsync:zC,set:iD,setErrorMap:pD,size:gg,slugify:mg,startsWith:lg,strictObject:eD,string:GA,stringFormat:Gb,stringbool:dD,success:gD,superRefine:PQ,symbol:zb,templateLiteral:ID,toJSONSchema:LC,toLowerCase:dg,toUpperCase:hg,transform:qg,treeifyError:gE,trim:fg,tuple:Kg,uint32:Zb,uint64:Xb,ulid:wb,undefined:Kb,union:ya,unknown:Wn,uppercase:Ig,url:hb,util:aE,uuid:Cb,uuidv4:Qb,uuidv6:fb,uuidv7:db,void:qb,xid:kb});const jQ=vt(["Frankendancer","Firedancer"]),nc=jQ.enum,VA=NA({topic:DA("summary")}),JQ=NA({topic:DA("epoch")}),qn=NA({topic:DA("gossip")}),ZQ=NA({topic:DA("peers")}),Wt=NA({topic:DA("slot")}),HQ=NA({topic:DA("block_engine")}),ka=NA({topic:DA("wait_for_supermajority")});fr("topic",[VA,JQ,qn,ZQ,Wt,HQ,ka]);const SD=GA(),vD=vt(["development","mainnet-beta","devnet","testnet","pythtest","pythnet","unknown"]),RD=GA(),TD=GA(),FD=GA(),MD=XA(),$Q=vt(["perf","balanced","revenue"]);$Q.enum,vt(["sock","net","quic","bundle","verify","dedup","resolv","resolh","pack","execle","bank","poh","pohh","shred","store","snapct","snapld","snapdc","snapin","netlnk","metric","ipecho","gossvf","gossip","repair","replay","execrp","tower","txsend","sign","rpc","gui","http","plugin","genesi","diag","event"]);const OD=NA({kind:GA(),kind_id:G()}),XQ=XA();XA();const ND=G(),UD=G(),GD=G(),xD=G().nullable(),LD=G().nullable(),PD=NA({repair:G().array(),turbine:G().array()}),YD=Je(),jD=G(),JD=G().nullable(),ZD=G().nullable(),HD=G(),$D=G().nullable(),XD=G(),zD=G(),KD=NA({total:G(),vote:G(),nonvote_success:G(),nonvote_failed:G()}),WD=NA({ingress:be(G()),egress:be(G())}),qD=NA({pack_cranked:G(),pack_retained:G(),resolv_retained:G(),quic:G(),udp:G(),gossip:G(),block_engine:G()}),VD=NA({net_overrun:G(),quic_overrun:G(),quic_frag_drop:G(),quic_abandoned:G(),tpu_quic_invalid:G(),tpu_udp_invalid:G(),verify_overrun:G(),verify_parse:G(),verify_failed:G(),verify_duplicate:G(),dedup_duplicate:G(),resolv_lut_failed:G(),resolv_expired:G(),resolv_no_ledger:G(),resolv_ancient:G(),resolv_retained:G(),pack_invalid:G(),pack_already_executed:G(),pack_invalid_bundle:G(),pack_retained:G(),pack_leader_slow:G(),pack_wait_full:G(),pack_expired:G(),bank_invalid:G(),bank_nonce_already_advanced:G(),bank_nonce_advance_failed:G(),bank_nonce_wrong_blockhash:G(),block_success:G(),block_fail:G()}),zQ=NA({in:qD,out:VD}),Aw=NA({next_leader_slot:G().nullable(),waterfall:zQ}),KQ=NA({net_in:G(),quic:G(),verify:G(),bundle_rtt_smoothed_millis:G(),bundle_rx_delay_millis_p90:G(),dedup:G(),pack:G(),bank:G(),poh:G(),shred:G(),store:G(),net_out:G()}),ew=NA({next_leader_slot:G().nullable(),tile_primary_metric:KQ}),tw=NA({timers:be(be(G()).nullable()),sched_timers:be(be(G()).nullable()),in_backp:be(Qr().nullable()),backp_msgs:be(G().nullable()),alive:be(G().nullable()),nvcsw:be(G().nullable()),nivcsw:be(G().nullable()),last_cpu:be(G().nullable()),minflt:be(G().nullable()),majflt:be(G().nullable())});NA({tile:GA(),kind_id:G(),idle:G()});const rw=vt(["initializing","searching_for_full_snapshot","downloading_full_snapshot","searching_for_incremental_snapshot","downloading_incremental_snapshot","cleaning_blockstore","cleaning_accounts","loading_ledger","processing_ledger","starting_services","halted","waiting_for_supermajority","running"]),nw=NA({phase:rw,downloading_full_snapshot_slot:G().nullable(),downloading_full_snapshot_peer:GA().nullable(),downloading_full_snapshot_elapsed_secs:G().nullable(),downloading_full_snapshot_remaining_secs:G().nullable(),downloading_full_snapshot_throughput:G().nullable(),downloading_full_snapshot_total_bytes:Je().nullable(),downloading_full_snapshot_current_bytes:Je().nullable(),downloading_incremental_snapshot_slot:G().nullable(),downloading_incremental_snapshot_peer:GA().nullable(),downloading_incremental_snapshot_elapsed_secs:G().nullable(),downloading_incremental_snapshot_remaining_secs:G().nullable(),downloading_incremental_snapshot_throughput:G().nullable(),downloading_incremental_snapshot_total_bytes:Je().nullable(),downloading_incremental_snapshot_current_bytes:Je().nullable(),ledger_slot:G().nullable(),ledger_max_slot:G().nullable(),waiting_for_supermajority_slot:G().nullable(),waiting_for_supermajority_stake_percent:G().nullable()}),WQ=vt(["joining_gossip","loading_full_snapshot","loading_incremental_snapshot","catching_up","waiting_for_supermajority","running"]);WQ.enum;const iw=NA({phase:WQ,joining_gossip_elapsed_seconds:G().nullable().optional(),loading_full_snapshot_elapsed_seconds:G().nullable().optional(),loading_full_snapshot_reset_count:G().nullable().optional(),loading_full_snapshot_slot:G().nullable().optional(),loading_full_snapshot_total_bytes_compressed:Je().nullable().optional(),loading_full_snapshot_read_bytes_compressed:Je().nullable().optional(),loading_full_snapshot_read_path:GA().nullable().optional(),loading_full_snapshot_decompress_bytes_decompressed:Je().nullable().optional(),loading_full_snapshot_decompress_bytes_compressed:Je().nullable().optional(),loading_full_snapshot_insert_bytes_decompressed:Je().nullable().optional(),loading_full_snapshot_insert_accounts:G().nullable().optional(),loading_incremental_snapshot_elapsed_seconds:G().nullable().optional(),loading_incremental_snapshot_reset_count:G().nullable().optional(),loading_incremental_snapshot_slot:G().nullable().optional(),loading_incremental_snapshot_total_bytes_compressed:Je().nullable().optional(),loading_incremental_snapshot_read_bytes_compressed:Je().nullable().optional(),loading_incremental_snapshot_read_path:GA().nullable().optional(),loading_incremental_snapshot_decompress_bytes_decompressed:Je().nullable().optional(),loading_incremental_snapshot_decompress_bytes_compressed:Je().nullable().optional(),loading_incremental_snapshot_insert_bytes_decompressed:Je().nullable().optional(),loading_incremental_snapshot_insert_accounts:G().nullable().optional(),wait_for_supermajority_bank_hash:GA().nullable().optional(),wait_for_supermajority_shred_version:GA().nullable().optional(),wait_for_supermajority_attempt:G().nullable().optional(),wait_for_supermajority_total_stake:XA().nullable().optional(),wait_for_supermajority_connected_stake:XA().nullable().optional(),wait_for_supermajority_total_peers:G().nullable().optional(),wait_for_supermajority_connected_peers:G().nullable().optional(),catching_up_elapsed_seconds:G().nullable().optional(),catching_up_first_replay_slot:G().nullable().optional()}),ow=YQ(r=>{if(!r||typeof r!="object"||Array.isArray(r))return r;const i=r;return{...i,txn_preload_end_timestamps_nanos:i.txn_preload_end_timestamps_nanos??i.txn_check_start_timestamps_nanos,txn_start_timestamps_nanos:i.txn_start_timestamps_nanos??i.txn_load_start_timestamps_nanos,txn_load_end_timestamps_nanos:i.txn_load_end_timestamps_nanos??i.txn_execute_start_timestamps_nanos,txn_end_timestamps_nanos:i.txn_end_timestamps_nanos??i.txn_commit_start_timestamps_nanos}},NA({start_timestamp_nanos:XA(),target_end_timestamp_nanos:XA(),txn_mb_start_timestamps_nanos:XA().array(),txn_mb_end_timestamps_nanos:XA().array(),txn_compute_units_requested:G().array(),txn_compute_units_consumed:G().array(),txn_transaction_fee:XA().array(),txn_priority_fee:XA().array(),txn_tips:XA().array(),txn_error_code:G().array(),txn_from_bundle:Qr().array(),txn_is_simple_vote:Qr().array(),txn_bank_idx:G().array(),txn_preload_end_timestamps_nanos:XA().array(),txn_start_timestamps_nanos:XA().array(),txn_load_end_timestamps_nanos:XA().array(),txn_end_timestamps_nanos:XA().array(),txn_commit_end_timestamps_nanos:XA().array().optional(),txn_arrival_timestamps_nanos:XA().array(),txn_microblock_id:G().array(),txn_landed:Qr().array(),txn_signature:GA().array(),txn_source_ipv4:GA().array(),txn_source_tpu:GA().array()})),aw=vt(["incomplete","completed","optimistically_confirmed","rooted","finalized"]),sw=NA({slot:G(),mine:Qr(),skipped:Qr(),level:aw,success_nonvote_transaction_cnt:G().nullable(),failed_nonvote_transaction_cnt:G().nullable(),success_vote_transaction_cnt:G().nullable(),failed_vote_transaction_cnt:G().nullable(),priority_fee:XA().nullable(),transaction_fee:XA().nullable(),tips:XA().nullable(),max_compute_units:G().nullable(),compute_units:G().nullable(),duration_nanos:G().nullable(),completed_time_nanos:XA().nullable(),vote_latency:G().nullable()}),gw=be(Kg([G(),G(),G(),G()])),cw=vt(["voting","non-voting","delinquent"]),uw=G(),Iw=NA({epoch:G(),skip_rate:G()}),Ew=NA({hits:G(),lookups:G(),insertions:G(),insertion_bytes:G(),evictions:G(),eviction_bytes:G(),spills:G(),spill_bytes:G(),free_bytes:G(),size_bytes:G()}),lw=fr("key",[VA.extend({key:DA("ping"),value:Hg(),id:G()}),VA.extend({key:DA("version"),value:SD}),VA.extend({key:DA("cluster"),value:vD}),VA.extend({key:DA("commit_hash"),value:RD}),VA.extend({key:DA("identity_key"),value:TD}),VA.extend({key:DA("vote_key"),value:FD}),VA.extend({key:DA("startup_time_nanos"),value:MD}),VA.extend({key:DA("schedule_strategy"),value:$Q}),VA.extend({key:DA("tiles"),value:OD.array()}),VA.extend({key:DA("identity_balance"),value:XQ}),VA.extend({key:DA("vote_balance"),value:XQ}),VA.extend({key:DA("root_slot"),value:ND}),VA.extend({key:DA("optimistically_confirmed_slot"),value:UD}),VA.extend({key:DA("completed_slot"),value:GD}),VA.extend({key:DA("estimated_slot"),value:jD}),VA.extend({key:DA("reset_slot"),value:JD}),VA.extend({key:DA("storage_slot"),value:ZD}),VA.extend({key:DA("vote_slot"),value:HD}),VA.extend({key:DA("slot_caught_up"),value:$D}),VA.extend({key:DA("active_fork_count"),value:XD}),VA.extend({key:DA("estimated_slot_duration_nanos"),value:zD}),VA.extend({key:DA("estimated_tps"),value:KD}),VA.extend({key:DA("live_network_metrics"),value:WD}),VA.extend({key:DA("live_txn_waterfall"),value:Aw}),VA.extend({key:DA("live_tile_primary_metric"),value:ew}),VA.extend({key:DA("live_tile_metrics"),value:tw}),VA.extend({key:DA("live_tile_timers"),value:G().array()}),VA.extend({key:DA("startup_progress"),value:nw}),VA.extend({key:DA("boot_progress"),value:iw}),VA.extend({key:DA("tps_history"),value:gw}),VA.extend({key:DA("vote_state"),value:cw}),VA.extend({key:DA("vote_distance"),value:uw}),VA.extend({key:DA("skip_rate"),value:Iw}),VA.extend({key:DA("turbine_slot"),value:xD}),VA.extend({key:DA("repair_slot"),value:LD}),VA.extend({key:DA("catch_up_history"),value:PD}),VA.extend({key:DA("server_time_nanos"),value:YD}),VA.extend({key:DA("live_program_cache"),value:Ew})]),Bw=NA({epoch:G(),start_time_nanos:GA().nullable(),end_time_nanos:GA().nullable(),start_slot:G(),end_slot:G(),excluded_stake_lamports:XA(),staked_pubkeys:GA().array(),staked_lamports:XA().array(),leader_slots:G().array()}),Cw=fr("key",[JQ.extend({key:DA("new"),value:Bw})]),Qw=NA({num_push_messages_rx_success:G(),num_push_messages_rx_failure:G(),num_push_entries_rx_success:G(),num_push_entries_rx_failure:G(),num_push_entries_rx_duplicate:G(),num_pull_response_messages_rx_success:G(),num_pull_response_messages_rx_failure:G(),num_pull_response_entries_rx_success:G(),num_pull_response_entries_rx_failure:G(),num_pull_response_entries_rx_duplicate:G(),total_peers:G(),total_stake:XA(),connected_stake:XA(),connected_staked_peers:G(),connected_unstaked_peers:G()}),qQ=NA({total_throughput:G(),peer_names:GA().array(),peer_identities:GA().array(),peer_throughput:G().array()}),fw=NA({capacity:G(),expired_count:G(),evicted_count:G(),count:G().array(),count_tx:G().array(),bytes_tx:G().array()}),dw=NA({num_bytes_rx:G().array(),num_bytes_tx:G().array(),num_messages_rx:G().array(),num_messages_tx:G().array()}),hw=NA({health:Qw,ingress:qQ,egress:qQ,storage:fw,messages:dw}),mw=G(),VQ=ya([GA(),G()]),Af=ro(GA(),ro(GA(),VQ)).nullable(),pw=NA({changes:be(NA({row_index:G(),column_name:GA(),new_value:VQ}))}),yw=fr("key",[qn.extend({key:DA("network_stats"),value:hw}),qn.extend({key:DA("peers_size_update"),value:mw}),qn.extend({key:DA("query_scroll"),value:Af}),qn.extend({key:DA("query_sort"),value:Af}),qn.extend({key:DA("view_update"),value:pw})]),bw=NA({client_id:G().nullable().optional(),wallclock:G(),shred_version:G(),version:GA().nullable(),feature_set:G().nullable(),sockets:ro(GA(),GA()),country_code:GA().nullable().optional(),city_name:GA().nullable().optional()}),Dw=NA({vote_account:GA(),activated_stake:XA(),last_vote:dt(G()),root_slot:dt(G()),epoch_credits:G(),commission:G(),delinquent:Qr()}),ef=NA({name:dt(GA()),details:dt(GA()),website:dt(GA()),icon_url:dt(GA()),keybase_username:dt(GA())}),tf=NA({identity_pubkey:GA(),gossip:dt(bw),vote:be(Dw),info:dt(ef)}),ww=NA({identity_pubkey:GA()}),kw=NA({add:be(tf).optional(),update:be(tf).optional(),remove:be(ww).optional()}),_w=fr("key",[ZQ.extend({key:DA("update"),value:kw})]),Sw=NA({timestamp_nanos:GA(),tile_timers:G().array()}),vw=NA({timestamp_nanos:XA(),regular:G(),votes:G(),conflicting:G(),bundles:G()}),Rw=NA({account:GA(),cost:G()}),Tw=NA({used_total_block_cost:G(),used_total_vote_cost:G(),used_account_write_costs:Rw.array(),used_total_bytes:G(),used_total_microblocks:G(),max_total_block_cost:G(),max_total_vote_cost:G(),max_account_write_cost:G(),max_total_bytes:G(),max_total_microblocks:G()}),Fw=NA({block_hash:GA().optional(),end_slot_reason:GA().optional(),slot_schedule_counts:G().array(),end_slot_schedule_counts:G().array(),pending_smallest_cost:G().nullable(),pending_smallest_bytes:G().nullable(),pending_vote_smallest_cost:G().nullable(),pending_vote_smallest_bytes:G().nullable()}),_a=NA({publish:sw,waterfall:zQ.nullable().optional(),tile_primary_metric:KQ.nullable().optional(),tile_timers:Sw.array().nullable().optional(),scheduler_counts:vw.array().nullable().optional(),transactions:ow.nullable().optional(),limits:Tw.nullable().optional(),scheduler_stats:Fw.nullable().optional()}),Mw=G().array(),Ow=G().array(),Nw=NA({slots_largest_tips:G().array(),vals_largest_tips:XA().array(),slots_smallest_tips:G().array(),vals_smallest_tips:XA().array(),slots_largest_fees:G().array(),vals_largest_fees:XA().array(),slots_smallest_fees:G().array(),vals_smallest_fees:XA().array(),slots_largest_rewards:G().array(),vals_largest_rewards:XA().array(),slots_smallest_rewards:G().array(),vals_smallest_rewards:XA().array(),slots_largest_duration:G().array(),vals_largest_duration:XA().array(),slots_smallest_duration:G().array(),vals_smallest_duration:XA().array(),slots_largest_compute_units:G().array(),vals_largest_compute_units:XA().array(),slots_smallest_compute_units:G().array(),vals_smallest_compute_units:XA().array(),slots_largest_skipped:G().array(),vals_largest_skipped:XA().array(),slots_smallest_skipped:G().array(),vals_smallest_skipped:XA().array()}),Uw=NA({reference_slot:G(),reference_ts:XA(),slot_delta:G().array(),shred_idx:G().nullable().array(),event:G().array(),event_ts_delta:Je().array()}),Gw=fr("key",[Wt.extend({key:DA("skipped_history"),value:Mw}),Wt.extend({key:DA("skipped_history_cluster"),value:Ow}),Wt.extend({key:DA("update"),value:_a}),Wt.extend({key:DA("query"),value:_a.nullable()}),Wt.extend({key:DA("query_detailed"),value:_a.nullable()}),Wt.extend({key:DA("query_transactions"),value:_a.nullable()}),Wt.extend({key:DA("query_rankings"),value:Nw}),Wt.extend({key:DA("live_shreds"),value:Uw}),Wt.extend({key:DA("late_votes_history"),value:NA({slot:G().array(),latency:G().nullable().array()})})]),xw=vt(["disconnected","connecting","connected","sleeping"]),Lw=NA({name:GA(),url:GA(),ip:GA().optional(),status:xw}),Pw=fr("key",[HQ.extend({key:DA("update"),value:Lw})]),Yw=NA({staked_pubkeys:GA().array(),staked_lamports:XA().array(),infos:be(ef.nullable())}),jw=GA().array(),Jw=GA().array(),Zw=fr("key",[ka.extend({key:DA("stakes"),value:Yw}),ka.extend({key:DA("peer_add"),value:jw}),ka.extend({key:DA("peer_remove"),value:Jw})]),Hw=_D.discriminatedUnion("topic",[lw,Cw,yw,_w,Gw,Pw,Zw]);function ic(r){if(r<1)throw new Error("Ring buffer size must be at least 1");const i=new Array(r);let u=0,E=0;return{get length(){return E},push(g){i[u]=g,u=(u+1)%r,E"u")return!1;const r=navigator.userAgent.toLowerCase();return/iphone|android|windows phone|ipad|android|tablet/.test(r)||"ontouchstart"in window&&!!matchMedia?.("(hover: none)").matches}$w();var Xw={isEqual:!0,isMatchingKey:!0,isPromise:!0,maxSize:!0,onCacheAdd:!0,onCacheChange:!0,onCacheHit:!0,transformKey:!0},zw=Array.prototype.slice;function Sa(r){var i=r.length;return i?i===1?[r[0]]:i===2?[r[0],r[1]]:i===3?[r[0],r[1],r[2]]:zw.call(r,0):[]}function Kw(r){var i={};for(var u in r)Xw[u]||(i[u]=r[u]);return i}function Ww(r){return typeof r=="function"&&r.isMemoized}function qw(r,i){return r===i||r!==r&&i!==i}function rf(r,i){var u={};for(var E in r)u[E]=r[E];for(var E in i)u[E]=i[E];return u}var Vw=function(){function r(i){this.keys=[],this.values=[],this.options=i;var u=typeof i.isMatchingKey=="function";u?this.getKeyIndex=this._getKeyIndexFromMatchingKey:i.maxSize>1?this.getKeyIndex=this._getKeyIndexForMany:this.getKeyIndex=this._getKeyIndexForSingle,this.canTransformKey=typeof i.transformKey=="function",this.shouldCloneArguments=this.canTransformKey||u,this.shouldUpdateOnAdd=typeof i.onCacheAdd=="function",this.shouldUpdateOnChange=typeof i.onCacheChange=="function",this.shouldUpdateOnHit=typeof i.onCacheHit=="function"}return Object.defineProperty(r.prototype,"size",{get:function(){return this.keys.length},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"snapshot",{get:function(){return{keys:Sa(this.keys),size:this.size,values:Sa(this.values)}},enumerable:!1,configurable:!0}),r.prototype._getKeyIndexFromMatchingKey=function(i){var u=this.options,E=u.isMatchingKey,g=u.maxSize,a=this.keys,h=a.length;if(!h)return-1;if(E(a[0],i))return 0;if(g>1){for(var w=1;w1){for(var k=0;k1){for(var h=0;h=k&&(g.length=a.length=k)},r.prototype.updateAsyncCache=function(i){var u=this,E=this.options,g=E.onCacheChange,a=E.onCacheHit,h=this.keys[0],w=this.values[0];this.values[0]=w.then(function(k){return u.shouldUpdateOnHit&&a(u,u.options,i),u.shouldUpdateOnChange&&g(u,u.options,i),k},function(k){var v=u.getKeyIndex(h);throw v!==-1&&(u.keys.splice(v,1),u.values.splice(v,1)),k})},r}();function nf(r,i){if(i===void 0&&(i={}),Ww(r))return nf(r.fn,rf(r.options,i));if(typeof r!="function")throw new TypeError("You must pass a function to `memoize`.");var u=i.isEqual,E=u===void 0?qw:u,g=i.isMatchingKey,a=i.isPromise,h=a===void 0?!1:a,w=i.maxSize,k=w===void 0?1:w,v=i.onCacheAdd,F=i.onCacheChange,x=i.onCacheHit,$=i.transformKey,j=rf({isEqual:E,isMatchingKey:g,isPromise:h,maxSize:k,onCacheAdd:v,onCacheChange:F,onCacheHit:x,transformKey:$},Kw(i)),P=new Vw(j),rA=P.keys,iA=P.values,TA=P.canTransformKey,pA=P.shouldCloneArguments,MA=P.shouldUpdateOnAdd,xA=P.shouldUpdateOnChange,ce=P.shouldUpdateOnHit,se=function(){var Ue=pA?Sa(arguments):arguments;TA&&(Ue=$(Ue));var at=rA.length?P.getKeyIndex(Ue):-1;if(at!==-1)ce&&x(P,j,se),at&&(P.orderByLru(rA[at],iA[at],at),xA&&F(P,j,se));else{var OA=r.apply(this,arguments),je=pA?Ue:Sa(arguments);P.orderByLru(je,OA,rA.length),h&&P.updateAsyncCache(se),MA&&v(P,j,se),xA&&F(P,j,se)}return iA[0]};return se.cache=P,se.fn=r,se.isMemoized=!0,se.options=j,se}const of=jQ.safeParse("Frankendancer".trim()),af=of.error?nc.Frankendancer:of.data;nc.Frankendancer,nc.Firedancer,PA.now(),setInterval(()=>{PA.now()},1e3);function Ak(r){return r!==void 0}nf(r=>{if(r)return r.toUpperCase().split("").map(E=>String.fromCodePoint(E.charCodeAt(0)-65+127462)).join("")},{maxSize:100});function oc(r){const i=new Map;let u;function E(h,w){let k=i.get(h);return k||(k=r.createEntry(h,w),i.set(h,k)),k}function g(h){return h.lastPublishMs+h.publishIntervalMs}function a(){if(u)return;const h=performance.now();let w=1/0;for(const k of i.values()){if(!k.subscribed)continue;const v=Math.max(0,g(k)-h);v{u=void 0;const k=performance.now(),v=[];for(const F of i.values()){if(!F.subscribed||k{const k=E(h,w);k.subscribed||(k.subscribed=!0,a())},unsubscribe:h=>{const w=i.get(h);w&&(w.subscribed=!1);let k=!1;for(const v of i.values())if(v.subscribed){k=!0;break}!k&&u&&(clearTimeout(u),u=void 0)},get:h=>i.get(h),reset:h=>{const w=h?[i.get(h)].filter(Ak):i.values();for(const k of w)r.onReset?.(k),k.lastPublishMs=0},stop:()=>{u&&(clearTimeout(u),u=void 0);for(const h of i.values())h.subscribed=!1}}}function sf(r){const i=r.halfLifeMs/Math.log(2),{initMinSamples:u,warmupMs:E}=r;let g,a,h=0,w;function k(){a=void 0,h=0,g=void 0,w=void 0}function v(x){if(!E||!w)return i;const $=Math.max(.2,Math.min(1,(x-w)/E));return i*$}function F(x,$){if(!a)return x!=null&&(a={value:x,tsMs:$}),!1;x??=a.value;const j=$-a.tsMs;if(!isFinite(j)||j<=0)return!1;const P=x-a.value;if(!isFinite(P)||P<0)return k(),a={value:x,tsMs:$},!1;if(a={value:x,tsMs:$},g===void 0)return P<=0||(h+=1,hk.ema??0)),w}for(;i.lengthk.ema??0)),w}return{get ema(){return u},reset:E,tick:g}}function tk(r){const i=oc({createEntry:(u,E)=>{const g=Math.ceil(E.historyWindowMs/E.publishIntervalMs);return{key:u,subscribed:!1,lastPublishMs:0,publishIntervalMs:E.publishIntervalMs,calc:ek(E),history:ic(g)}},collect:(u,E)=>{if(u.calc.ema.length>0){const g=[...u.calc.ema];return u.history.push({ts:E,values:g}),{key:u.key,values:g,history:u.history.toArray()}}},post:r,onReset:u=>{u.calc.reset(),u.history.clear()}});return{...i,update(u,E,g){const a=i.get(u);a&&a.calc.tick(E,g)},get(u){return i.get(u)?.calc.ema}}}function rk(r){const i=oc({createEntry:(u,E)=>{const g=Math.ceil(E.historyWindowMs/E.publishIntervalMs);return{key:u,subscribed:!1,lastPublishMs:0,publishIntervalMs:E.publishIntervalMs,values:[],history:ic(g)}},collect:(u,E)=>{if(u.values.length>0){const g=[...u.values];return u.history.push({ts:E,values:g}),{key:u.key,values:g,history:u.history.toArray()}}},post:r,onReset:u=>{u.values=[],u.history.clear()}});return{...i,update(u,E){const g=i.get(u);g&&(g.values=E)},get(u){return i.get(u)?.values}}}function nk(r){function i(E){const g={};let a=!1;for(const h of E.fields)g[h]=E.calcs[h].ema??0,E.calcs[h].ema!==void 0&&(a=!0);return{value:g,hasValue:a}}const u=oc({createEntry:(E,g)=>{const a={};for(const w of g.fields)a[w]=sf(g);const h=Math.ceil(g.historyWindowMs/g.publishIntervalMs);return{key:E,subscribed:!1,lastPublishMs:0,publishIntervalMs:g.publishIntervalMs,fields:g.fields,calcs:a,history:ic(h)}},collect:(E,g)=>{const{value:a,hasValue:h}=i(E);if(h)return E.history.push({ts:g,value:a}),{key:E.key,value:a,history:E.history.toArray()}},post:r,onReset:E=>{for(const g of E.fields)E.calcs[g].reset();E.history.clear()}});return{...u,update(E,g,a){const h=u.get(E);if(h)for(const w of h.fields){const k=g[w];typeof k=="number"&&h.calcs[w].tick(k,a)}},get(E){const g=u.get(E);if(g){const{value:a,hasValue:h}=i(g);if(h)return a}}}}const ik=100,ok=3e4,ak=5e3,gf=500,cf=6e4,uf=5e3,If=["num_push_messages_rx_success","num_push_messages_rx_failure","num_push_entries_rx_success","num_push_entries_rx_failure","num_push_entries_rx_duplicate","num_pull_response_messages_rx_success","num_pull_response_messages_rx_failure","num_pull_response_entries_rx_success","num_pull_response_entries_rx_failure","num_pull_response_entries_rx_duplicate"];Object.fromEntries(If.map(r=>[r,0]));const sk={halfLifeMs:5e3,initMinSamples:10,warmupMs:1e4,publishIntervalMs:ik,historyWindowMs:ok+ak,fields:[...If]},Ef={halfLifeMs:1e3,initMinSamples:5,warmupMs:5e3,publishIntervalMs:gf,historyWindowMs:cf+uf},gk={publishIntervalMs:gf,historyWindowMs:cf+uf};function ac(r,i,u){return r.topic===i&&r.key===u}function ck(r){const i=tk(g=>r({type:"emaHistoryArray",items:g})),u=nk(g=>r({type:"emaHistoryObject",items:g})),E=rk(g=>r({type:"historyArray",items:g}));return{onMessage(g){const a=performance.now();ac(g,"gossip","network_stats")&&(u.subscribe("gossipHealth",sk),u.update("gossipHealth",g.value.health,a)),ac(g,"summary","live_network_metrics")&&(i.subscribe("ingress",Ef),i.subscribe("egress",Ef),i.update("ingress",g.value.ingress,a),i.update("egress",g.value.egress,a)),ac(g,"summary","live_tile_timers")&&(E.subscribe("tileTimers",gk),E.update("tileTimers",g.value))}}}const lf=3e3,uk=32,Vn=self;let It=null,sc,gc=!1;const io=new Map,Ik=ck(r=>Vn.postMessage(r));function Ek(r){Ik.onMessage(r);const i=`${r.topic}:${r.key}`;io.has(i)?io.get(i)?.push(r):io.set(i,[r]),gc||(gc=!0,setTimeout(lk,uk))}function lk(){gc=!1;const r=[];for(const i of io.values())for(const u of i)r.push(u);io.clear(),r.length&&Vn.postMessage({type:"kvb",items:r})}function Bf(r,i){Zn("WS",`Connecting to API WebSocket ${r.toString()}`),Vn.postMessage({type:"connecting"}),It=new WebSocket(r,i?["compress-zstd"]:void 0),It.binaryType="arraybuffer",It.onopen=function(){this===It&&(Zn("WS","Connected to API WebSocket"),Vn.postMessage({type:"connected"}))},It.onclose=function(){this===It&&(Zn("WS",`Disconnected API WebSocket, reconnecting in ${lf}ms`),Vn.postMessage({type:"disconnected"}),clearTimeout(sc),sc=setTimeout(()=>Bf(r,i),lf))};const u=new TextDecoder;It.onmessage=function(g){if(this===It)try{const a=g.data;let h;if(typeof a=="string"?h=JSON.parse(a):a instanceof ArrayBuffer&&i&&(h=JSON.parse(u.decode(i.ZstdStream.decompress(new Uint8Array(a))))),h!==void 0){const w=Hw.safeParse(h);if(!w.success){Zn("zod",h),Zn("Zod",w.error.message),Zn("Zod",w.error.issues);return}Ek(w.data)}}catch(a){Is("WS",a)}}}Vn.onmessage=r=>{const i=r.data;switch(i.type){case"connect":(async()=>{let u;if(i.compress)try{u=await dh()}catch(E){Is("WS","Failed to initialize Zstd, falling back to uncompressed",E)}Bf(i.websocketUrl,u)})();break;case"disconnect":if(clearTimeout(sc),It){try{It.close()}catch{Is("WS","Error closing WebSocket")}It=null}break;case"send":It&&It.readyState===WebSocket.OPEN?It.send(JSON.stringify(i.value)):Qp("WS","Attempting to send on closed WebSocket",i.value);break}}})(); diff --git a/src/disco/gui/dist_stable/index.html b/src/discoh/guih/dist/index.html similarity index 92% rename from src/disco/gui/dist_stable/index.html rename to src/discoh/guih/dist/index.html index ec3f2de06e2..11707adbbfc 100644 --- a/src/disco/gui/dist_stable/index.html +++ b/src/discoh/guih/dist/index.html @@ -54,8 +54,8 @@ /> Frankendancer - - + + diff --git a/src/discoh/guih/dist/version b/src/discoh/guih/dist/version new file mode 100644 index 00000000000..8c5f8a3e00d --- /dev/null +++ b/src/discoh/guih/dist/version @@ -0,0 +1 @@ +bf17bea95d95e2484c35d3e69078dd8447b9a989 diff --git a/src/discoh/guih/fd_guih.c b/src/discoh/guih/fd_guih.c new file mode 100644 index 00000000000..f52a106a979 --- /dev/null +++ b/src/discoh/guih/fd_guih.c @@ -0,0 +1,2534 @@ +#include "fd_guih.h" +#include "fd_guih_printf.h" +#include "fd_guih_metrics.h" + +#include "../../disco/metrics/fd_metrics.h" +#include "../../discof/gossip/fd_gossip_tile.h" +#include "../../discoh/plugin/fd_plugin.h" +#include "../../disco/bundle/fd_bundle_tile.h" + +#include "../../ballet/base58/fd_base58.h" +#include "../../ballet/json/cJSON.h" +#include "../../disco/genesis/fd_genesis_cluster.h" +#include "../../disco/pack/fd_pack.h" +#include "../../disco/pack/fd_pack_cost.h" + +#include + +FD_FN_CONST ulong +fd_guih_align( void ) { + return 128UL; +} + +ulong +fd_guih_footprint( ulong tile_cnt ) { + FD_TEST( tile_cnt && tile_cnt <=FD_TOPO_MAX_TILES ); + + ulong l = FD_LAYOUT_INIT; + l = FD_LAYOUT_APPEND( l, fd_guih_align(), sizeof(fd_guih_t) ); + l = FD_LAYOUT_APPEND( l, alignof(fd_guih_tile_timers_t), FD_GUIH_TILE_TIMER_SNAP_CNT * tile_cnt * sizeof(fd_guih_tile_timers_t) ); + l = FD_LAYOUT_APPEND( l, alignof(fd_guih_tile_timers_t), FD_GUIH_LEADER_CNT * FD_GUIH_TILE_TIMER_LEADER_DOWNSAMPLE_CNT * tile_cnt * sizeof(fd_guih_tile_timers_t) ); + l = FD_LAYOUT_APPEND( l, fd_guih_rate_deque_align(), fd_guih_rate_deque_footprint() ); /* ingress_maxq */ + l = FD_LAYOUT_APPEND( l, fd_guih_rate_deque_align(), fd_guih_rate_deque_footprint() ); /* egress_maxq */ + return FD_LAYOUT_FINI( l, fd_guih_align() ); +} + +void * +fd_guih_new( void * shmem, + fd_http_server_t * http, + char const * version, + char const * cluster, + uchar const * identity_key, + int has_vote_key, + uchar const * vote_key, + int is_full_client, + int snapshots_enabled FD_PARAM_UNUSED, + int is_voting, + int schedule_strategy, + char const * wfs_expected_bank_hash_cstr FD_PARAM_UNUSED, + ushort expected_shred_version, + fd_topo_t const * topo, + long now ) { + + if( FD_UNLIKELY( !shmem ) ) { + FD_LOG_WARNING(( "NULL shmem" )); + return NULL; + } + + if( FD_UNLIKELY( !fd_ulong_is_aligned( (ulong)shmem, fd_guih_align() ) ) ) { + FD_LOG_WARNING(( "misaligned shmem" )); + return NULL; + } + + if( FD_UNLIKELY( topo->tile_cnt>FD_TOPO_MAX_TILES ) ) { + FD_LOG_WARNING(( "too many tiles" )); + return NULL; + } + + ulong tile_cnt = topo->tile_cnt; + + FD_SCRATCH_ALLOC_INIT( l, shmem ); + fd_guih_t * gui = FD_SCRATCH_ALLOC_APPEND( l, fd_guih_align(), sizeof(fd_guih_t) ); + fd_guih_tile_timers_t * tile_timers_snap_mem = FD_SCRATCH_ALLOC_APPEND( l, alignof(fd_guih_tile_timers_t), FD_GUIH_TILE_TIMER_SNAP_CNT * tile_cnt * sizeof(fd_guih_tile_timers_t) ); + fd_guih_tile_timers_t * leader_tt_mem = FD_SCRATCH_ALLOC_APPEND( l, alignof(fd_guih_tile_timers_t), FD_GUIH_LEADER_CNT * FD_GUIH_TILE_TIMER_LEADER_DOWNSAMPLE_CNT * tile_cnt * sizeof(fd_guih_tile_timers_t) ); + void * ingress_maxq_mem = FD_SCRATCH_ALLOC_APPEND( l, fd_guih_rate_deque_align(), fd_guih_rate_deque_footprint() ); + void * egress_maxq_mem = FD_SCRATCH_ALLOC_APPEND( l, fd_guih_rate_deque_align(), fd_guih_rate_deque_footprint() ); + + gui->http = http; + gui->topo = topo; + gui->tile_cnt = tile_cnt; + + gui->summary.tile_timers_snap = tile_timers_snap_mem; + gui->summary.ingress_maxq = fd_guih_rate_deque_join( fd_guih_rate_deque_new( ingress_maxq_mem ) ); + gui->summary.egress_maxq = fd_guih_rate_deque_join( fd_guih_rate_deque_new( egress_maxq_mem ) ); + + gui->summary.network_stats_has_prev = 0; + gui->summary.net_rate_ema_ready = 0; + gui->summary.net_rate_prev_ts = 0L; + fd_memset( gui->summary.ingress_ema, 0, sizeof(gui->summary.ingress_ema) ); + fd_memset( gui->summary.egress_ema, 0, sizeof(gui->summary.egress_ema) ); + + for( ulong i=0UL; ileader_slots[ i ]->tile_timers = leader_tt_mem + i * FD_GUIH_TILE_TIMER_LEADER_DOWNSAMPLE_CNT * tile_cnt; + + gui->leader_slot = ULONG_MAX; + gui->summary.schedule_strategy = schedule_strategy; + + + gui->next_sample_400millis = now; + gui->next_sample_100millis = now; + gui->next_sample_50millis = now; + gui->next_sample_25millis = now; + gui->next_sample_10millis = now; + + memcpy( gui->summary.identity_key->uc, identity_key, 32UL ); + fd_base58_encode_32( identity_key, NULL, gui->summary.identity_key_base58 ); + gui->summary.identity_key_base58[ FD_BASE58_ENCODED_32_SZ-1UL ] = '\0'; + + if( FD_LIKELY( has_vote_key ) ) { + gui->summary.has_vote_key = 1; + memcpy( gui->summary.vote_key->uc, vote_key, 32UL ); + fd_base58_encode_32( vote_key, NULL, gui->summary.vote_key_base58 ); + gui->summary.vote_key_base58[ FD_BASE58_ENCODED_32_SZ-1UL ] = '\0'; + } else { + gui->summary.has_vote_key = 0; + memset( gui->summary.vote_key_base58, 0, sizeof(gui->summary.vote_key_base58) ); + } + + gui->summary.is_full_client = is_full_client; + gui->summary.version = version; + gui->summary.cluster = cluster; + gui->summary.startup_time_nanos = gui->next_sample_400millis; + gui->summary.expected_shred_version = expected_shred_version; + gui->summary.wfs_enabled = 0; + gui->summary.wfs_bank_hash[ 0UL ] = '\0'; + + gui->summary.startup_progress.phase = FD_GUIH_START_PROGRESS_TYPE_INITIALIZING; + gui->summary.startup_progress.startup_got_full_snapshot = 0; + gui->summary.startup_progress.startup_full_snapshot_slot = 0; + gui->summary.startup_progress.startup_incremental_snapshot_slot = 0; + gui->summary.startup_progress.startup_waiting_for_supermajority_slot = ULONG_MAX; + gui->summary.startup_progress.startup_ledger_max_slot = ULONG_MAX; + + gui->summary.identity_account_balance = 0UL; + gui->summary.vote_account_balance = 0UL; + gui->summary.estimated_slot_duration_nanos = 0UL; + + gui->summary.vote_distance = 0UL; + gui->summary.vote_state = is_voting ? FD_GUIH_VOTE_STATE_VOTING : FD_GUIH_VOTE_STATE_NON_VOTING; + + gui->summary.sock_tile_cnt = fd_topo_tile_name_cnt( gui->topo, "sock" ); + gui->summary.net_tile_cnt = fd_topo_tile_name_cnt( gui->topo, "net" ); + gui->summary.quic_tile_cnt = fd_topo_tile_name_cnt( gui->topo, "quic" ); + gui->summary.verify_tile_cnt = fd_topo_tile_name_cnt( gui->topo, "verify" ); + gui->summary.resolh_tile_cnt = fd_topo_tile_name_cnt( gui->topo, "resolh" ); + gui->summary.resolv_tile_cnt = fd_topo_tile_name_cnt( gui->topo, "resolv" ); + gui->summary.bank_tile_cnt = fd_topo_tile_name_cnt( gui->topo, "bank" ); + gui->summary.execle_tile_cnt = fd_topo_tile_name_cnt( gui->topo, "execle" ); + gui->summary.execrp_tile_cnt = fd_topo_tile_name_cnt( gui->topo, "execrp" ); + gui->summary.shred_tile_cnt = fd_topo_tile_name_cnt( gui->topo, "shred" ); + + gui->summary.slot_rooted = ULONG_MAX; + gui->summary.slot_optimistically_confirmed = ULONG_MAX; + gui->summary.slot_completed = ULONG_MAX; + gui->summary.slot_estimated = ULONG_MAX; + gui->summary.slot_caught_up = ULONG_MAX; + gui->summary.slot_repair = ULONG_MAX; + gui->summary.slot_turbine = ULONG_MAX; + gui->summary.slot_reset = ULONG_MAX; + gui->summary.slot_storage = ULONG_MAX; + gui->summary.active_fork_cnt = 1UL; + + for( ulong i=0UL; i < (FD_GUIH_REPAIR_SLOT_HISTORY_SZ+1UL); i++ ) gui->summary.slots_max_repair[ i ].slot = ULONG_MAX; + for( ulong i=0UL; i < (FD_GUIH_TURBINE_SLOT_HISTORY_SZ+1UL); i++ ) gui->summary.slots_max_turbine[ i ].slot = ULONG_MAX; + + for( ulong i=0UL; i < FD_GUIH_TURBINE_RECV_TIMESTAMPS; i++ ) gui->turbine_slots[ i ].slot = ULONG_MAX; + + gui->summary.estimated_tps_history_idx = 0UL; + memset( gui->summary.estimated_tps_history, 0, sizeof(gui->summary.estimated_tps_history) ); + + memset( gui->summary.txn_waterfall_reference, 0, sizeof(gui->summary.txn_waterfall_reference) ); + memset( gui->summary.txn_waterfall_current, 0, sizeof(gui->summary.txn_waterfall_current) ); + + memset( gui->summary.tile_stats_reference, 0, sizeof(gui->summary.tile_stats_reference) ); + memset( gui->summary.tile_stats_current, 0, sizeof(gui->summary.tile_stats_current) ); + + gui->summary.progcache_history_idx = 0UL; + memset( gui->summary.progcache_hits_history, 0, sizeof(gui->summary.progcache_hits_history) ); + memset( gui->summary.progcache_lookups_history, 0, sizeof(gui->summary.progcache_lookups_history) ); + gui->summary.progcache_hits_1min = 0UL; + gui->summary.progcache_lookups_1min = 0UL; + + memset( gui->summary.tile_timers_snap, 0, tile_cnt * sizeof(fd_guih_tile_timers_t) ); + memset( gui->summary.tile_timers_snap + tile_cnt, 0, tile_cnt * sizeof(fd_guih_tile_timers_t) ); + gui->summary.tile_timers_snap_idx = 2UL; + + memset( gui->summary.scheduler_counts_snap[ 0 ], 0, sizeof(gui->summary.scheduler_counts_snap[ 0 ]) ); + memset( gui->summary.scheduler_counts_snap[ 1 ], 0, sizeof(gui->summary.scheduler_counts_snap[ 1 ]) ); + gui->summary.scheduler_counts_snap_idx = 2UL; + + for( ulong i=0UL; islots[ i ]->slot = ULONG_MAX; + for( ulong i=0UL; ileader_slots[ i ]->slot = ULONG_MAX; + gui->leader_slots_cnt = 0UL; + + gui->tower_cnt = 0UL; + + gui->block_engine.has_block_engine = 0; + + gui->epoch.has_epoch[ 0 ] = 0; + gui->epoch.has_epoch[ 1 ] = 0; + + gui->gossip.peer_cnt = 0UL; + gui->vote_account.vote_account_cnt = 0UL; + gui->validator_info.info_cnt = 0UL; + + gui->pack_txn_idx = 0UL; + + gui->shreds.leader_shred_cnt = 0UL; + gui->shreds.staged_next_broadcast = 0UL; + gui->shreds.staged_head = 0UL; + gui->shreds.staged_tail = 0UL; + gui->shreds.history_tail = 0UL; + gui->shreds.history_slot = ULONG_MAX; + gui->summary.catch_up_repair_sz = 0UL; + gui->summary.catch_up_turbine_sz = 0UL; + gui->summary.late_votes_sz = 0UL; + + return gui; +} + +fd_guih_t * +fd_guih_join( void * shmem ) { + return (fd_guih_t *)shmem; +} + +void +fd_guih_set_identity( fd_guih_t * gui, + uchar const * identity_pubkey ) { + memcpy( gui->summary.identity_key->uc, identity_pubkey, 32UL ); + fd_base58_encode_32( identity_pubkey, NULL, gui->summary.identity_key_base58 ); + gui->summary.identity_key_base58[ FD_BASE58_ENCODED_32_SZ-1UL ] = '\0'; + + fd_guih_printf_identity_key( gui ); + fd_http_server_ws_broadcast( gui->http ); +} + +void +fd_guih_ws_open( fd_guih_t * gui, + ulong ws_conn_id, + long now ) { + void (* printers[] )( fd_guih_t * gui ) = { + fd_guih_printf_startup_progress, + fd_guih_printf_version, + fd_guih_printf_cluster, + fd_guih_printf_commit_hash, + fd_guih_printf_identity_key, + fd_guih_printf_vote_key, + fd_guih_printf_startup_time_nanos, + fd_guih_printf_vote_state, + fd_guih_printf_vote_distance, + fd_guih_printf_turbine_slot, + fd_guih_printf_repair_slot, + fd_guih_printf_slot_caught_up, + fd_guih_printf_tps_history, + fd_guih_printf_tiles, + fd_guih_printf_schedule_strategy, + fd_guih_printf_identity_balance, + fd_guih_printf_vote_balance, + fd_guih_printf_estimated_slot_duration_nanos, + fd_guih_printf_root_slot, + fd_guih_printf_storage_slot, + fd_guih_printf_reset_slot, + fd_guih_printf_active_fork_cnt, + fd_guih_printf_optimistically_confirmed_slot, + fd_guih_printf_completed_slot, + fd_guih_printf_estimated_slot, + fd_guih_printf_live_tile_timers, + fd_guih_printf_live_tile_metrics, + fd_guih_printf_catch_up_history, + fd_guih_printf_vote_latency_history, + fd_guih_printf_late_votes_history, + fd_guih_printf_health + }; + + ulong printers_len = sizeof(printers) / sizeof(printers[0]); + for( ulong i=0UL; ihttp, ws_conn_id ) ); + } + + if( FD_LIKELY( gui->block_engine.has_block_engine ) ) { + fd_guih_printf_block_engine( gui ); + FD_TEST( !fd_http_server_ws_send( gui->http, ws_conn_id ) ); + } + + for( ulong i=0UL; i<2UL; i++ ) { + if( FD_LIKELY( gui->epoch.has_epoch[ i ] ) ) { + fd_guih_printf_skip_rate( gui, i ); + FD_TEST( !fd_http_server_ws_send( gui->http, ws_conn_id ) ); + fd_guih_printf_epoch( gui, i ); + FD_TEST( !fd_http_server_ws_send( gui->http, ws_conn_id ) ); + } + } + + ulong epoch_idx = fd_guih_current_epoch_idx( gui ); + if( FD_LIKELY( epoch_idx!=ULONG_MAX ) ) { + fd_guih_printf_skipped_history( gui, epoch_idx ); + FD_TEST( !fd_http_server_ws_send( gui->http, ws_conn_id ) ); + fd_guih_printf_skipped_history_cluster( gui, epoch_idx ); + FD_TEST( !fd_http_server_ws_send( gui->http, ws_conn_id ) ); + } + + /* Print peers last because it's the largest message and would + block other information. */ + fd_guih_printf_peers_all( gui ); + FD_TEST( !fd_http_server_ws_send( gui->http, ws_conn_id ) ); + + /* rebroadcast 10s of historical shred data */ + if( FD_LIKELY( gui->shreds.staged_next_broadcast!=ULONG_MAX ) ) { + fd_guih_printf_shred_rebroadcast( gui, now-(long)(10*1e9) ); + FD_TEST( !fd_http_server_ws_send( gui->http, ws_conn_id ) ); + } +} + +static void +fd_guih_tile_timers_snap( fd_guih_t * gui ) { + fd_guih_tile_timers_t * cur = gui->summary.tile_timers_snap + gui->summary.tile_timers_snap_idx * gui->tile_cnt; + gui->summary.tile_timers_snap_idx = (gui->summary.tile_timers_snap_idx+1UL)%FD_GUIH_TILE_TIMER_SNAP_CNT; + for( ulong i=0UL; itopo->tile_cnt; i++ ) { + fd_topo_tile_t const * tile = &gui->topo->tiles[ i ]; + if ( FD_UNLIKELY( !tile->metrics ) ) { + /* bench tiles might not have been booted initially. + This check shouldn't be necessary if all tiles barrier after boot. */ + // TODO(FIXME) this probably isn't the right fix but it makes fddev bench work for now + return; + } + volatile ulong const * tile_metrics = fd_metrics_tile( tile->metrics ); + + cur[ i ].timers[ FD_METRICS_ENUM_TILE_REGIME_V_CAUGHT_UP_HOUSEKEEPING_IDX ] = tile_metrics[ MIDX( COUNTER, TILE, REGIME_DURATION_NANOS_CAUGHT_UP_HOUSEKEEPING ) ]; + cur[ i ].timers[ FD_METRICS_ENUM_TILE_REGIME_V_PROCESSING_HOUSEKEEPING_IDX ] = tile_metrics[ MIDX( COUNTER, TILE, REGIME_DURATION_NANOS_PROCESSING_HOUSEKEEPING ) ]; + cur[ i ].timers[ FD_METRICS_ENUM_TILE_REGIME_V_BACKPRESSURE_HOUSEKEEPING_IDX ] = tile_metrics[ MIDX( COUNTER, TILE, REGIME_DURATION_NANOS_BACKPRESSURE_HOUSEKEEPING ) ]; + cur[ i ].timers[ FD_METRICS_ENUM_TILE_REGIME_V_CAUGHT_UP_PREFRAG_IDX ] = tile_metrics[ MIDX( COUNTER, TILE, REGIME_DURATION_NANOS_CAUGHT_UP_PREFRAG ) ]; + cur[ i ].timers[ FD_METRICS_ENUM_TILE_REGIME_V_PROCESSING_PREFRAG_IDX ] = tile_metrics[ MIDX( COUNTER, TILE, REGIME_DURATION_NANOS_PROCESSING_PREFRAG ) ]; + cur[ i ].timers[ FD_METRICS_ENUM_TILE_REGIME_V_BACKPRESSURE_PREFRAG_IDX ] = tile_metrics[ MIDX( COUNTER, TILE, REGIME_DURATION_NANOS_BACKPRESSURE_PREFRAG ) ]; + cur[ i ].timers[ FD_METRICS_ENUM_TILE_REGIME_V_CAUGHT_UP_POSTFRAG_IDX ] = tile_metrics[ MIDX( COUNTER, TILE, REGIME_DURATION_NANOS_CAUGHT_UP_POSTFRAG ) ]; + cur[ i ].timers[ FD_METRICS_ENUM_TILE_REGIME_V_PROCESSING_POSTFRAG_IDX ] = tile_metrics[ MIDX( COUNTER, TILE, REGIME_DURATION_NANOS_PROCESSING_POSTFRAG ) ]; + + cur[ i ].sched_timers[ FD_METRICS_ENUM_CPU_REGIME_V_WAIT_IDX ] = tile_metrics[ MIDX( COUNTER, TILE, CPU_DURATION_NANOS_WAIT ) ]; + cur[ i ].sched_timers[ FD_METRICS_ENUM_CPU_REGIME_V_USER_IDX ] = tile_metrics[ MIDX( COUNTER, TILE, CPU_DURATION_NANOS_USER ) ]; + cur[ i ].sched_timers[ FD_METRICS_ENUM_CPU_REGIME_V_SYSTEM_IDX ] = tile_metrics[ MIDX( COUNTER, TILE, CPU_DURATION_NANOS_SYSTEM ) ]; + cur[ i ].sched_timers[ FD_METRICS_ENUM_CPU_REGIME_V_IDLE_IDX ] = tile_metrics[ MIDX( COUNTER, TILE, CPU_DURATION_NANOS_IDLE ) ]; + + cur[ i ].in_backp = (int)tile_metrics[ MIDX(GAUGE, TILE, IN_BACKPRESSURE) ]; + cur[ i ].status = (uchar)tile_metrics[ MIDX( GAUGE, TILE, STATUS ) ]; + cur[ i ].heartbeat = tile_metrics[ MIDX( GAUGE, TILE, HEARTBEAT_TIMESTAMP_NANOS ) ]; + cur[ i ].backp_cnt = tile_metrics[ MIDX( COUNTER, TILE, BACKPRESSURE ) ]; + cur[ i ].nvcsw = tile_metrics[ MIDX( COUNTER, TILE, CONTEXT_SWITCH_VOLUNTARY ) ]; + cur[ i ].nivcsw = tile_metrics[ MIDX( COUNTER, TILE, CONTEXT_SWITCH_INVOLUNTARY ) ]; + cur[ i ].minflt = tile_metrics[ MIDX( COUNTER, TILE, PAGE_FAULT_MINOR ) ]; + cur[ i ].majflt = tile_metrics[ MIDX( COUNTER, TILE, PAGE_FAULT_MAJOR ) ]; + cur[ i ].last_cpu = (ushort)tile_metrics[ MIDX( GAUGE, TILE, LAST_CPU ) ]; + cur[ i ].interrupts = tile_metrics[ MIDX( COUNTER, TILE, IRQ_PREEMPTED ) ]; + } +} + +static void +fd_guih_scheduler_counts_snap( fd_guih_t * gui, long now ) { + ulong pack_tile_idx = fd_topo_find_tile( gui->topo, "pack", 0UL ); + if( FD_UNLIKELY( pack_tile_idx==ULONG_MAX ) ) return; + + fd_guih_scheduler_counts_t * cur = gui->summary.scheduler_counts_snap[ gui->summary.scheduler_counts_snap_idx ]; + gui->summary.scheduler_counts_snap_idx = (gui->summary.scheduler_counts_snap_idx+1UL)%FD_GUIH_SCHEDULER_COUNT_SNAP_CNT; + + fd_topo_tile_t const * pack = &gui->topo->tiles[ fd_topo_find_tile( gui->topo, "pack", 0UL ) ]; + volatile ulong const * pack_metrics = fd_metrics_tile( pack->metrics ); + + cur->sample_time_ns = now; + + cur->regular = pack_metrics[ MIDX( GAUGE, PACK, TXN_AVAILABLE_REGULAR ) ]; + cur->votes = pack_metrics[ MIDX( GAUGE, PACK, TXN_AVAILABLE_VOTES ) ]; + cur->conflicting = pack_metrics[ MIDX( GAUGE, PACK, TXN_AVAILABLE_CONFLICTING ) ]; + cur->bundles = pack_metrics[ MIDX( GAUGE, PACK, TXN_AVAILABLE_BUNDLES ) ]; +} + +static void +fd_guih_estimated_tps_snap( fd_guih_t * gui ) { + ulong vote_failed = 0UL; + ulong vote_success = 0UL; + ulong nonvote_success = 0UL; + ulong nonvote_failed = 0UL; + + if( FD_LIKELY( gui->summary.slot_completed==ULONG_MAX ) ) return; + for( ulong i=0UL; isummary.slot_completed+1UL, FD_GUIH_SLOTS_CNT ); i++ ) { + ulong _slot = gui->summary.slot_completed-i; + fd_guih_slot_t const * slot = fd_guih_get_slot_const( gui, _slot ); + if( FD_UNLIKELY( !slot ) ) break; /* Slot no longer exists, no TPS. */ + if( FD_UNLIKELY( slot->completed_time==LONG_MAX ) ) continue; /* Slot is on this fork but was never completed, must have been in root path on boot. */ + if( FD_UNLIKELY( slot->completed_time+FD_GUIH_TPS_HISTORY_WINDOW_DURATION_SECONDS*1000L*1000L*1000Lnext_sample_400millis ) ) break; /* Slot too old. */ + if( FD_UNLIKELY( slot->skipped ) ) continue; /* Skipped slots don't count to TPS. */ + if( FD_UNLIKELY( slot->vote_failed==UINT_MAX ) ) continue; /* Slot transaction counts not yet populated. */ + vote_failed += slot->vote_failed; + vote_success += slot->vote_success; + nonvote_success += slot->nonvote_success; + nonvote_failed += slot->nonvote_failed; + } + + gui->summary.estimated_tps_history[ gui->summary.estimated_tps_history_idx ].vote_failed = vote_failed; + gui->summary.estimated_tps_history[ gui->summary.estimated_tps_history_idx ].vote_success = vote_success; + gui->summary.estimated_tps_history[ gui->summary.estimated_tps_history_idx ].nonvote_success = nonvote_success; + gui->summary.estimated_tps_history[ gui->summary.estimated_tps_history_idx ].nonvote_failed = nonvote_failed; + gui->summary.estimated_tps_history_idx = (gui->summary.estimated_tps_history_idx+1UL) % FD_GUIH_TPS_HISTORY_SAMPLE_CNT; +} + +static void +fd_guih_network_stats_snap( fd_guih_t * gui, + fd_guih_network_stats_t * cur ) { + fd_topo_t const * topo = gui->topo; + ulong gossvf_tile_cnt = fd_topo_tile_name_cnt( topo, "gossvf" ); + ulong gossip_tile_cnt = fd_topo_tile_name_cnt( topo, "gossip" ); + ulong shred_tile_cnt = fd_topo_tile_name_cnt( topo, "shred" ); + ulong net_tile_cnt = fd_topo_tile_name_cnt( topo, "net" ); + ulong quic_tile_cnt = fd_topo_tile_name_cnt( topo, "quic" ); + + cur->in.gossip = fd_guih_metrics_gossip_total_ingress_bytes( topo, gossvf_tile_cnt ); + cur->out.gossip = fd_guih_metrics_gossip_total_egress_bytes( topo, gossip_tile_cnt ); + cur->in.turbine = fd_guih_metrics_sum_tiles_counter( topo, "shred", shred_tile_cnt, MIDX( COUNTER, SHRED, SHRED_TURBINE_RX_BYTES ) ); + + cur->out.turbine = 0UL; + cur->out.repair = 0UL; + cur->out.rserve = 0UL; /* rserve is not part of frankendancer */ + cur->out.tpu = 0UL; + for( ulong i=0UL; itiles[ net_tile_idx ]; + for( ulong j=0UL; jin_cnt; j++ ) { + if( FD_UNLIKELY( !strcmp( topo->links[ net->in_link_id[ j ] ].name, "shred_net" ) ) ) { + cur->out.turbine += fd_metrics_link_in( net->metrics, j )[ FD_METRICS_COUNTER_LINK_FRAG_CONSUMED_BYTES_OFF ]; + } + + if( FD_UNLIKELY( !strcmp( topo->links[ net->in_link_id[ j ] ].name, "repair_net" ) ) ) { + cur->out.repair += fd_metrics_link_in( net->metrics, j )[ FD_METRICS_COUNTER_LINK_FRAG_CONSUMED_BYTES_OFF ]; + } + + if( FD_UNLIKELY( !strcmp( topo->links[ net->in_link_id[ j ] ].name, "send_net" ) ) ) { + cur->out.tpu += fd_metrics_link_in( net->metrics, j )[ FD_METRICS_COUNTER_LINK_FRAG_CONSUMED_BYTES_OFF ]; + } + } + } + + cur->in.repair = fd_guih_metrics_sum_tiles_counter( topo, "shred", shred_tile_cnt, MIDX( COUNTER, SHRED, SHRED_REPAIR_RX_BYTES ) ); + ulong repair_tile_idx = fd_topo_find_tile( topo, "repair", 0UL ); + if( FD_LIKELY( repair_tile_idx!=ULONG_MAX ) ) { + fd_topo_tile_t const * repair = &topo->tiles[ repair_tile_idx ]; + + for( ulong i=0UL; iin_cnt; i++ ) { + if( FD_UNLIKELY( !strcmp( topo->links[ repair->in_link_id[ i ] ].name, "net_repair" ) ) ) { + cur->in.repair += fd_metrics_link_in( repair->metrics, i )[ FD_METRICS_COUNTER_LINK_FRAG_CONSUMED_BYTES_OFF ]; + } + } + } + + cur->in.rserve = 0UL; /* rserve is not part of frankendancer */ + + cur->in.tpu = 0UL; + for( ulong i=0UL; itiles[ quic_tile_idx ]; + volatile ulong * quic_metrics = fd_metrics_tile( quic->metrics ); + cur->in.tpu += quic_metrics[ MIDX( COUNTER, QUIC, PKT_RX_BYTES ) ]; + } + + ulong bundle_tile_idx = fd_topo_find_tile( topo, "bundle", 0UL ); + if( FD_LIKELY( bundle_tile_idx!=ULONG_MAX ) ) { + fd_topo_tile_t const * bundle = &topo->tiles[ bundle_tile_idx ]; + volatile ulong * bundle_metrics = fd_metrics_tile( bundle->metrics ); + cur->in.tpu += bundle_metrics[ MIDX( COUNTER, BUNDLE, PROTOBUF_RX_BYTES ) ]; + } + + ulong metric_tile_idx = fd_topo_find_tile( topo, "metric", 0UL ); + if( FD_LIKELY( metric_tile_idx!=ULONG_MAX ) ) { + fd_topo_tile_t const * metric = &topo->tiles[ metric_tile_idx ]; + volatile ulong * metric_metrics = fd_metrics_tile( metric->metrics ); + cur->in.metric = metric_metrics[ MIDX( COUNTER, METRIC, BYTES_READ ) ]; + cur->out.metric = metric_metrics[ MIDX( COUNTER, METRIC, BYTES_WRITTEN ) ]; + } else { + cur->in.metric = 0UL; + cur->out.metric = 0UL; + } +} + +static void +fd_guih_network_rate_max_update( fd_guih_t * gui, + long now ) { + fd_guih_network_stats_t * cur = gui->summary.network_stats_current; + fd_guih_network_stats_t * prev = gui->summary.network_stats_prev; + + /* On the first sample we have no previous value. */ + if( FD_UNLIKELY( !gui->summary.network_stats_has_prev ) ) { + *prev = *cur; + gui->summary.network_stats_has_prev = 1; + gui->summary.net_rate_prev_ts = now; + return; + } + + ulong d_in[ FD_GUIH_NET_PROTO_CNT ]; + d_in[ 0 ] = fd_ulong_sat_sub( cur->in.turbine, prev->in.turbine ); + d_in[ 1 ] = fd_ulong_sat_sub( cur->in.gossip, prev->in.gossip ); + d_in[ 2 ] = fd_ulong_sat_sub( cur->in.tpu, prev->in.tpu ); + d_in[ 3 ] = fd_ulong_sat_sub( cur->in.repair, prev->in.repair ); + d_in[ 4 ] = fd_ulong_sat_sub( cur->in.rserve, prev->in.rserve ); + d_in[ 5 ] = fd_ulong_sat_sub( cur->in.metric, prev->in.metric ); + + ulong d_out[ FD_GUIH_NET_PROTO_CNT ]; + d_out[ 0 ] = fd_ulong_sat_sub( cur->out.turbine, prev->out.turbine ); + d_out[ 1 ] = fd_ulong_sat_sub( cur->out.gossip, prev->out.gossip ); + d_out[ 2 ] = fd_ulong_sat_sub( cur->out.tpu, prev->out.tpu ); + d_out[ 3 ] = fd_ulong_sat_sub( cur->out.repair, prev->out.repair ); + d_out[ 4 ] = fd_ulong_sat_sub( cur->out.rserve, prev->out.rserve ); + d_out[ 5 ] = fd_ulong_sat_sub( cur->out.metric, prev->out.metric ); + + /* Compute per-protocol instantaneous bytes/sec rate and feed the EMA. */ + long dt_ns = now - gui->summary.net_rate_prev_ts; + if( FD_LIKELY( dt_ns>0L ) ) { + double dt_sec = (double)dt_ns / 1.0e9; + + for( ulong i=0UL; isummary.net_rate_ema_ready ) ) { + gui->summary.ingress_ema[ i ] = rate_in; + gui->summary.egress_ema[ i ] = rate_out; + } else { + gui->summary.ingress_ema[ i ] = fd_guih_ema( gui->summary.net_rate_prev_ts, now, rate_in, gui->summary.ingress_ema[ i ], FD_GUIH_NETWORK_EMA_HALF_LIFE_NS ); + gui->summary.egress_ema[ i ] = fd_guih_ema( gui->summary.net_rate_prev_ts, now, rate_out, gui->summary.egress_ema[ i ], FD_GUIH_NETWORK_EMA_HALF_LIFE_NS ); + } + } + gui->summary.net_rate_ema_ready = 1; + } + gui->summary.net_rate_prev_ts = now; + + /* Track max total EMA in a rolling 5-minute window using monotonic + deques. + + Invariant: deque entries are strictly decreasing in value from + head to tail. The head is always the current window maximum. + + Insert: pop tail entries whose value <= new value (they can + never become the maximum), then push the new entry. + Expire: pop head entries older than 5 minutes. */ + if( FD_LIKELY( gui->summary.net_rate_ema_ready ) ) { + double sum_in = 0.0; + double sum_out = 0.0; + for( ulong i=0UL; isummary.ingress_ema[ i ]; + sum_out += gui->summary.egress_ema[ i ]; + } + + while( !fd_guih_rate_deque_empty( gui->summary.ingress_maxq ) && fd_guih_rate_deque_peek_head_const( gui->summary.ingress_maxq )->ts_nanossummary.ingress_maxq ); + } + while( !fd_guih_rate_deque_empty( gui->summary.ingress_maxq ) && fd_guih_rate_deque_peek_tail_const( gui->summary.ingress_maxq )->value<=sum_in ) { + fd_guih_rate_deque_pop_tail( gui->summary.ingress_maxq ); + } + if( FD_UNLIKELY( fd_guih_rate_deque_full( gui->summary.ingress_maxq ) ) ) { + fd_guih_rate_deque_pop_tail( gui->summary.ingress_maxq ); + } + fd_guih_rate_deque_push_tail( gui->summary.ingress_maxq, (fd_guih_rate_entry_t){ .ts_nanos=now, .value=sum_in } ); + + while( !fd_guih_rate_deque_empty( gui->summary.egress_maxq ) && fd_guih_rate_deque_peek_head_const( gui->summary.egress_maxq )->ts_nanossummary.egress_maxq ); + } + while( !fd_guih_rate_deque_empty( gui->summary.egress_maxq ) && fd_guih_rate_deque_peek_tail_const( gui->summary.egress_maxq )->value<=sum_out ) { + fd_guih_rate_deque_pop_tail( gui->summary.egress_maxq ); + } + if( FD_UNLIKELY( fd_guih_rate_deque_full( gui->summary.egress_maxq ) ) ) { + fd_guih_rate_deque_pop_tail( gui->summary.egress_maxq ); + } + fd_guih_rate_deque_push_tail( gui->summary.egress_maxq, (fd_guih_rate_entry_t){ .ts_nanos=now, .value=sum_out } ); + } + + *prev = *cur; +} + +/* Snapshot all of the data from metrics to construct a view of the + transaction waterfall. + + Tiles are sampled in reverse pipeline order: this helps prevent data + discrepancies where a later tile has "seen" more transactions than an + earlier tile, which shouldn't typically happen. */ + +static void +fd_guih_txn_waterfall_snap( fd_guih_t * gui, + fd_guih_txn_waterfall_t * cur ) { + memset( cur, 0, sizeof(fd_guih_txn_waterfall_t) ); + fd_topo_t const * topo = gui->topo; + + for( ulong i=0UL; isummary.bank_tile_cnt; i++ ) { + fd_topo_tile_t const * bank = &topo->tiles[ fd_topo_find_tile( topo, "bank", i ) ]; + + volatile ulong const * bank_metrics = fd_metrics_tile( bank->metrics ); + cur->out.block_success += bank_metrics[ MIDX( COUNTER, BANK, TXN_EXECUTED_SUCCESS ) ]; + + cur->out.block_fail += + bank_metrics[ MIDX( COUNTER, BANK, TXN_EXECUTED_FAILED ) ] + + bank_metrics[ MIDX( COUNTER, BANK, TXN_FEE_ONLY ) ]; + + cur->out.bank_invalid += + bank_metrics[ MIDX( COUNTER, BANK, TXN_LOAD_ADDRESS_TABLE_ACCOUNT_UNINITIALIZED ) ] + + bank_metrics[ MIDX( COUNTER, BANK, TXN_LOAD_ADDRESS_TABLE_ACCOUNT_NOT_FOUND ) ] + + bank_metrics[ MIDX( COUNTER, BANK, TXN_LOAD_ADDRESS_TABLE_INVALID_ACCOUNT_OWNER ) ] + + bank_metrics[ MIDX( COUNTER, BANK, TXN_LOAD_ADDRESS_TABLE_INVALID_ACCOUNT_DATA ) ] + + bank_metrics[ MIDX( COUNTER, BANK, TXN_LOAD_ADDRESS_TABLE_INVALID_LOOKUP_INDEX ) ]; + + cur->out.bank_invalid += + bank_metrics[ MIDX( COUNTER, BANK, TXN_PROCESSING_FAILED ) ]; + } + + for( ulong i=0UL; isummary.execle_tile_cnt; i++ ) { + fd_topo_tile_t const * execle = &topo->tiles[ fd_topo_find_tile( topo, "execle", i ) ]; + + volatile ulong const * execle_metrics = fd_metrics_tile( execle->metrics ); + + cur->out.block_success += execle_metrics[ MIDX( COUNTER, EXECLE, TXN_LANDED_LANDED_SUCCESS ) ]; + cur->out.block_fail += + execle_metrics[ MIDX( COUNTER, EXECLE, TXN_LANDED_LANDED_FEES_ONLY ) ] + + execle_metrics[ MIDX( COUNTER, EXECLE, TXN_LANDED_LANDED_FAILED ) ]; + cur->out.bank_invalid += execle_metrics[ MIDX( COUNTER, EXECLE, TXN_LANDED_UNLANDED ) ]; + + cur->out.bank_nonce_already_advanced += execle_metrics[ MIDX( COUNTER, EXECLE, TXN_RESULT_NONCE_ALREADY_ADVANCED ) ]; + cur->out.bank_nonce_advance_failed += execle_metrics[ MIDX( COUNTER, EXECLE, TXN_RESULT_NONCE_ADVANCE_FAILED ) ]; + cur->out.bank_nonce_wrong_blockhash += execle_metrics[ MIDX( COUNTER, EXECLE, TXN_RESULT_NONCE_WRONG_BLOCKHASH ) ]; + } + + ulong pack_tile_idx = fd_topo_find_tile( topo, "pack", 0UL ); + if( pack_tile_idx!=ULONG_MAX ) { + fd_topo_tile_t const * pack = &topo->tiles[ pack_tile_idx ]; + volatile ulong const * pack_metrics = fd_metrics_tile( pack->metrics ); + + cur->out.pack_invalid_bundle = + pack_metrics[ MIDX( COUNTER, PACK, TXN_PARTIAL_BUNDLE ) ] + + pack_metrics[ MIDX( COUNTER, PACK, BUNDLE_CRANK_RESULT_INSERTION_FAILED ) ] + + pack_metrics[ MIDX( COUNTER, PACK, BUNDLE_CRANK_RESULT_CREATION_FAILED ) ]; + + cur->out.pack_invalid = + pack_metrics[ MIDX( COUNTER, PACK, TXN_INSERTED_INSTR_ACCT_CNT ) ] + + pack_metrics[ MIDX( COUNTER, PACK, TXN_INSERTED_NONCE_CONFLICT ) ] + + pack_metrics[ MIDX( COUNTER, PACK, TXN_INSERTED_BUNDLE_BLACKLIST ) ] + + pack_metrics[ MIDX( COUNTER, PACK, TXN_INSERTED_INVALID_NONCE ) ] + + pack_metrics[ MIDX( COUNTER, PACK, TXN_INSERTED_WRITE_SYSVAR ) ] + + pack_metrics[ MIDX( COUNTER, PACK, TXN_INSERTED_ESTIMATION_FAIL ) ] + + pack_metrics[ MIDX( COUNTER, PACK, TXN_INSERTED_DUPLICATE_ACCOUNT ) ] + + pack_metrics[ MIDX( COUNTER, PACK, TXN_INSERTED_TOO_MANY_ACCOUNTS ) ] + + pack_metrics[ MIDX( COUNTER, PACK, TXN_INSERTED_TOO_LARGE ) ] + + pack_metrics[ MIDX( COUNTER, PACK, TXN_INSERTED_ADDR_LUT ) ] + + pack_metrics[ MIDX( COUNTER, PACK, TXN_INSERTED_UNAFFORDABLE ) ] + + pack_metrics[ MIDX( COUNTER, PACK, TXN_INSERTED_DUPLICATE ) ] + - pack_metrics[ MIDX( COUNTER, PACK, BUNDLE_CRANK_RESULT_INSERTION_FAILED ) ]; /* so we don't double count this, since its already accounted for in invalid_bundle */ + + cur->out.pack_expired = pack_metrics[ MIDX( COUNTER, PACK, TXN_INSERTED_EXPIRED ) ] + + pack_metrics[ MIDX( COUNTER, PACK, TXN_EXPIRED ) ] + + pack_metrics[ MIDX( COUNTER, PACK, TXN_DELETED ) ] + + pack_metrics[ MIDX( COUNTER, PACK, TXN_INSERTED_NONCE_PRIORITY ) ]; + + cur->out.pack_already_executed = pack_metrics[ MIDX( COUNTER, PACK, TXN_ALREADY_EXECUTED ) ]; + + cur->out.pack_leader_slow = pack_metrics[ MIDX( COUNTER, PACK, TXN_INSERTED_PRIORITY ) ]; + + cur->out.pack_wait_full = + pack_metrics[ MIDX( COUNTER, PACK, TXN_EXTRA_DROPPED ) ]; + + cur->out.pack_retained = pack_metrics[ MIDX( GAUGE, PACK, TXN_AVAILABLE ) ]; + + ulong inserted_to_extra = pack_metrics[ MIDX( COUNTER, PACK, TXN_EXTRA_INSERTED ) ]; + ulong inserted_from_extra = pack_metrics[ MIDX( COUNTER, PACK, TXN_EXTRA_RETRIEVED ) ] + + pack_metrics[ MIDX( COUNTER, PACK, TXN_EXTRA_DROPPED ) ]; + cur->out.pack_retained += fd_ulong_if( inserted_to_extra>=inserted_from_extra, inserted_to_extra-inserted_from_extra, 0UL ); + + cur->in.pack_cranked = + pack_metrics[ MIDX( COUNTER, PACK, BUNDLE_CRANK_RESULT_INSERTED ) ] + + pack_metrics[ MIDX( COUNTER, PACK, BUNDLE_CRANK_RESULT_INSERTION_FAILED ) ] + + pack_metrics[ MIDX( COUNTER, PACK, BUNDLE_CRANK_RESULT_CREATION_FAILED ) ]; + } + + for( ulong i=0UL; isummary.resolh_tile_cnt; i++ ) { + fd_topo_tile_t const * resolv = &topo->tiles[ fd_topo_find_tile( topo, "resolh", i ) ]; + volatile ulong const * resolv_metrics = fd_metrics_tile( resolv->metrics ); + + cur->out.resolv_no_ledger += resolv_metrics[ MIDX( COUNTER, RESOLH, TXN_NO_BANK ) ]; + cur->out.resolv_expired += resolv_metrics[ MIDX( COUNTER, RESOLH, BLOCKHASH_EXPIRED ) ] + + resolv_metrics[ MIDX( COUNTER, RESOLH, TXN_BUNDLE_PEER_FAILED ) ]; + cur->out.resolv_lut_failed += resolv_metrics[ MIDX( COUNTER, RESOLH, LUT_RESOLVED_ACCOUNT_NOT_FOUND ) ] + + resolv_metrics[ MIDX( COUNTER, RESOLH, LUT_RESOLVED_INVALID_ACCOUNT_OWNER ) ] + + resolv_metrics[ MIDX( COUNTER, RESOLH, LUT_RESOLVED_INVALID_ACCOUNT_DATA ) ] + + resolv_metrics[ MIDX( COUNTER, RESOLH, LUT_RESOLVED_ACCOUNT_UNINITIALIZED ) ] + + resolv_metrics[ MIDX( COUNTER, RESOLH, LUT_RESOLVED_INVALID_LOOKUP_INDEX ) ]; + cur->out.resolv_ancient += resolv_metrics[ MIDX( COUNTER, RESOLH, STASH_OPERATION_OVERRUN ) ]; + + ulong inserted_to_resolv = resolv_metrics[ MIDX( COUNTER, RESOLH, STASH_OPERATION_INSERTED ) ]; + ulong removed_from_resolv = resolv_metrics[ MIDX( COUNTER, RESOLH, STASH_OPERATION_OVERRUN ) ] + + resolv_metrics[ MIDX( COUNTER, RESOLH, STASH_OPERATION_PUBLISHED ) ] + + resolv_metrics[ MIDX( COUNTER, RESOLH, STASH_OPERATION_REMOVED ) ]; + cur->out.resolv_retained += fd_ulong_if( inserted_to_resolv>=removed_from_resolv, inserted_to_resolv-removed_from_resolv, 0UL ); + } + + for( ulong i=0UL; isummary.resolv_tile_cnt; i++ ) { + fd_topo_tile_t const * resolv = &topo->tiles[ fd_topo_find_tile( topo, "resolv", i ) ]; + volatile ulong const * resolv_metrics = fd_metrics_tile( resolv->metrics ); + + cur->out.resolv_no_ledger += resolv_metrics[ MIDX( COUNTER, RESOLV, TXN_NO_BANK ) ]; + cur->out.resolv_expired += resolv_metrics[ MIDX( COUNTER, RESOLV, BLOCKHASH_EXPIRED ) ] + + resolv_metrics[ MIDX( COUNTER, RESOLV, TXN_BUNDLE_PEER_FAILED ) ]; + cur->out.resolv_lut_failed += resolv_metrics[ MIDX( COUNTER, RESOLV, LUT_RESOLVED_ACCOUNT_NOT_FOUND ) ] + + resolv_metrics[ MIDX( COUNTER, RESOLV, LUT_RESOLVED_INVALID_ACCOUNT_OWNER ) ] + + resolv_metrics[ MIDX( COUNTER, RESOLV, LUT_RESOLVED_INVALID_ACCOUNT_DATA ) ] + + resolv_metrics[ MIDX( COUNTER, RESOLV, LUT_RESOLVED_ACCOUNT_UNINITIALIZED ) ] + + resolv_metrics[ MIDX( COUNTER, RESOLV, LUT_RESOLVED_INVALID_LOOKUP_INDEX ) ]; + cur->out.resolv_ancient += resolv_metrics[ MIDX( COUNTER, RESOLV, STASH_OPERATION_OVERRUN ) ]; + + ulong inserted_to_resolv = resolv_metrics[ MIDX( COUNTER, RESOLV, STASH_OPERATION_INSERTED ) ]; + ulong removed_from_resolv = resolv_metrics[ MIDX( COUNTER, RESOLV, STASH_OPERATION_OVERRUN ) ] + + resolv_metrics[ MIDX( COUNTER, RESOLV, STASH_OPERATION_PUBLISHED ) ] + + resolv_metrics[ MIDX( COUNTER, RESOLV, STASH_OPERATION_REMOVED ) ]; + cur->out.resolv_retained += fd_ulong_if( inserted_to_resolv>=removed_from_resolv, inserted_to_resolv-removed_from_resolv, 0UL ); + } + + ulong dedup_tile_idx = fd_topo_find_tile( topo, "dedup", 0UL ); + if( FD_UNLIKELY( dedup_tile_idx!=ULONG_MAX ) ) { + fd_topo_tile_t const * dedup = &topo->tiles[ dedup_tile_idx ]; + volatile ulong const * dedup_metrics = fd_metrics_tile( dedup->metrics ); + + cur->out.dedup_duplicate = dedup_metrics[ MIDX( COUNTER, DEDUP, TXN_RESULT_DEDUP_FAILURE ) ] + + dedup_metrics[ MIDX( COUNTER, DEDUP, TXN_RESULT_BUNDLE_PEER_FAILURE ) ]; + } + + for( ulong i=0UL; isummary.verify_tile_cnt; i++ ) { + fd_topo_tile_t const * verify = &topo->tiles[ fd_topo_find_tile( topo, "verify", i ) ]; + volatile ulong const * verify_metrics = fd_metrics_tile( verify->metrics ); + + for( ulong j=0UL; jsummary.quic_tile_cnt; j++ ) { + /* TODO: Not precise... even if 1 frag gets skipped, it could have been for this verify tile. */ + cur->out.verify_overrun += fd_metrics_link_in( verify->metrics, j )[ FD_METRICS_COUNTER_LINK_FRAG_POLLING_OVERRUN_OFF ] / gui->summary.verify_tile_cnt; + cur->out.verify_overrun += fd_metrics_link_in( verify->metrics, j )[ FD_METRICS_COUNTER_LINK_FRAG_READING_OVERRUN_OFF ]; + } + + cur->out.verify_failed += verify_metrics[ MIDX( COUNTER, VERIFY, TXN_RESULT_VERIFY_FAILURE ) ] + + verify_metrics[ MIDX( COUNTER, VERIFY, TXN_RESULT_BUNDLE_PEER_FAILURE ) ]; + cur->out.verify_parse += verify_metrics[ MIDX( COUNTER, VERIFY, TXN_RESULT_PARSE_FAILURE ) ]; + cur->out.verify_duplicate += verify_metrics[ MIDX( COUNTER, VERIFY, TXN_RESULT_DEDUP_FAILURE ) ]; + } + + for( ulong i=0UL; isummary.quic_tile_cnt; i++ ) { + fd_topo_tile_t const * quic = &topo->tiles[ fd_topo_find_tile( topo, "quic", i ) ]; + volatile ulong * quic_metrics = fd_metrics_tile( quic->metrics ); + + cur->out.tpu_udp_invalid += quic_metrics[ MIDX( COUNTER, QUIC, LEGACY_TXN_UNDERSIZE ) ]; + cur->out.tpu_udp_invalid += quic_metrics[ MIDX( COUNTER, QUIC, LEGACY_TXN_OVERSIZE ) ]; + cur->out.tpu_quic_invalid += quic_metrics[ MIDX( COUNTER, QUIC, PKT_UNDERSIZE ) ]; + cur->out.tpu_quic_invalid += quic_metrics[ MIDX( COUNTER, QUIC, PKT_OVERSIZE ) ]; + cur->out.tpu_quic_invalid += quic_metrics[ MIDX( COUNTER, QUIC, TXN_OVERSIZE ) ]; + cur->out.tpu_quic_invalid += quic_metrics[ MIDX( COUNTER, QUIC, PKT_CRYPTO_FAILED ) ]; + cur->out.tpu_quic_invalid += quic_metrics[ MIDX( COUNTER, QUIC, PKT_NO_CONN ) ]; + cur->out.tpu_quic_invalid += quic_metrics[ MIDX( COUNTER, QUIC, PKT_SRC_INVALID ) ]; + cur->out.tpu_quic_invalid += quic_metrics[ MIDX( COUNTER, QUIC, PKT_NET_HEADER_INVALID ) ]; + cur->out.tpu_quic_invalid += quic_metrics[ MIDX( COUNTER, QUIC, PKT_HEADER_INVALID ) ]; + cur->out.quic_abandoned += quic_metrics[ MIDX( COUNTER, QUIC, TXN_ABANDONED ) ]; + cur->out.quic_frag_drop += quic_metrics[ MIDX( COUNTER, QUIC, TXN_OVERRUN ) ]; + + for( ulong j=0UL; jsummary.net_tile_cnt; j++ ) { + /* TODO: Not precise... net frags that were skipped might not have been destined for QUIC tile */ + /* TODO: Not precise... even if 1 frag gets skipped, it could have been for this QUIC tile */ + cur->out.quic_overrun += fd_metrics_link_in( quic->metrics, j )[ FD_METRICS_COUNTER_LINK_FRAG_POLLING_OVERRUN_OFF ] / gui->summary.quic_tile_cnt; + cur->out.quic_overrun += fd_metrics_link_in( quic->metrics, j )[ FD_METRICS_COUNTER_LINK_FRAG_READING_OVERRUN_OFF ]; + } + } + + for( ulong i=0UL; isummary.net_tile_cnt; i++ ) { + fd_topo_tile_t const * net = &topo->tiles[ fd_topo_find_tile( topo, "net", i ) ]; + volatile ulong * net_metrics = fd_metrics_tile( net->metrics ); + + cur->out.net_overrun += net_metrics[ MIDX( COUNTER, NET, XDP_RX_RING_FULL ) ]; + cur->out.net_overrun += net_metrics[ MIDX( COUNTER, NET, XDP_RX_OTHER_DROPPED ) ]; + cur->out.net_overrun += net_metrics[ MIDX( COUNTER, NET, XDP_RX_FILL_RING_EMPTY ) ]; + } + + ulong bundle_txns_received = 0UL; + ulong bundle_tile_idx = fd_topo_find_tile( topo, "bundle", 0UL ); + if( FD_LIKELY( bundle_tile_idx!=ULONG_MAX ) ) { + fd_topo_tile_t const * bundle = &topo->tiles[ bundle_tile_idx ]; + volatile ulong const * bundle_metrics = fd_metrics_tile( bundle->metrics ); + + bundle_txns_received = bundle_metrics[ MIDX( COUNTER, BUNDLE, TXN_RX ) ]; + } + + if( dedup_tile_idx!=ULONG_MAX ) { + fd_topo_tile_t const * dedup = &topo->tiles[ dedup_tile_idx ]; + volatile ulong const * dedup_metrics = fd_metrics_tile( dedup->metrics ); + cur->in.gossip = dedup_metrics[ MIDX( COUNTER, DEDUP, VOTE_GOSSIP_RX ) ]; + } + + cur->in.quic = cur->out.tpu_quic_invalid + + cur->out.quic_overrun + + cur->out.quic_frag_drop + + cur->out.quic_abandoned + + cur->out.net_overrun; + cur->in.udp = cur->out.tpu_udp_invalid; + cur->in.block_engine = bundle_txns_received; + for( ulong i=0UL; isummary.quic_tile_cnt; i++ ) { + fd_topo_tile_t const * quic = &topo->tiles[ fd_topo_find_tile( topo, "quic", i ) ]; + volatile ulong * quic_metrics = fd_metrics_tile( quic->metrics ); + + cur->in.quic += quic_metrics[ MIDX( COUNTER, QUIC, TXN_RX_QUIC_FAST ) ]; + cur->in.quic += quic_metrics[ MIDX( COUNTER, QUIC, TXN_RX_QUIC_FRAG ) ]; + cur->in.udp += quic_metrics[ MIDX( COUNTER, QUIC, TXN_RX_UDP ) ]; + } +} + +static void +fd_guih_tile_stats_snap( fd_guih_t * gui, + fd_guih_txn_waterfall_t const * waterfall, + fd_guih_tile_stats_t * stats, + long now ) { + memset( stats, 0, sizeof(fd_guih_tile_stats_t) ); + fd_topo_t const * topo = gui->topo; + + stats->sample_time_nanos = now; + + for( ulong i=0UL; isummary.net_tile_cnt; i++ ) { + fd_topo_tile_t const * net = &topo->tiles[ fd_topo_find_tile( topo, "net", i ) ]; + volatile ulong * net_metrics = fd_metrics_tile( net->metrics ); + + stats->net_in_rx_bytes += net_metrics[ MIDX( COUNTER, NET, PKT_RX_BYTES ) ]; + stats->net_out_tx_bytes += net_metrics[ MIDX( COUNTER, NET, PKT_TX_BYTES ) ]; + } + + for( ulong i=0UL; isummary.sock_tile_cnt; i++ ) { + fd_topo_tile_t const * sock = &topo->tiles[ fd_topo_find_tile( topo, "sock", i ) ]; + volatile ulong * sock_metrics = fd_metrics_tile( sock->metrics ); + + stats->net_in_rx_bytes += sock_metrics[ MIDX( COUNTER, SOCK, PKT_RX_BYTES ) ]; + stats->net_out_tx_bytes += sock_metrics[ MIDX( COUNTER, SOCK, PKT_TX_BYTES ) ]; + } + + for( ulong i=0UL; isummary.quic_tile_cnt; i++ ) { + fd_topo_tile_t const * quic = &topo->tiles[ fd_topo_find_tile( topo, "quic", i ) ]; + volatile ulong * quic_metrics = fd_metrics_tile( quic->metrics ); + + stats->quic_conn_cnt += quic_metrics[ MIDX( GAUGE, QUIC, CONN_IN_USE ) ]; + } + + ulong bundle_tile_idx = fd_topo_find_tile( topo, "bundle", 0UL ); + if( FD_LIKELY( bundle_tile_idx!=ULONG_MAX ) ) { + fd_topo_tile_t const * bundle = &topo->tiles[ bundle_tile_idx ]; + volatile ulong * bundle_metrics = fd_metrics_tile( bundle->metrics ); + stats->bundle_rtt_smoothed_nanos = bundle_metrics[ MIDX( GAUGE, BUNDLE, RTT_SMOOTHED_NANOS ) ]; + + fd_histf_new( &stats->bundle_rx_delay_hist, FD_MHIST_MIN( BUNDLE, MESSAGE_RX_DELAY_NANOS ), FD_MHIST_MAX( BUNDLE, MESSAGE_RX_DELAY_NANOS ) ); + stats->bundle_rx_delay_hist.sum = bundle_metrics[ MIDX( HISTOGRAM, BUNDLE, MESSAGE_RX_DELAY_NANOS ) + FD_HISTF_BUCKET_CNT ]; + for( ulong b=0; bbundle_rx_delay_hist.counts[ b ] = bundle_metrics[ MIDX( HISTOGRAM, BUNDLE, MESSAGE_RX_DELAY_NANOS ) + b ]; + } + + stats->verify_drop_cnt = waterfall->out.verify_duplicate + + waterfall->out.verify_parse + + waterfall->out.verify_failed; + stats->verify_total_cnt = waterfall->in.gossip + + waterfall->in.quic + + waterfall->in.udp - + waterfall->out.net_overrun - + waterfall->out.tpu_quic_invalid - + waterfall->out.tpu_udp_invalid - + waterfall->out.quic_abandoned - + waterfall->out.quic_frag_drop - + waterfall->out.quic_overrun - + waterfall->out.verify_overrun; + stats->dedup_drop_cnt = waterfall->out.dedup_duplicate; + stats->dedup_total_cnt = stats->verify_total_cnt - + waterfall->out.verify_duplicate - + waterfall->out.verify_parse - + waterfall->out.verify_failed; + + ulong pack_tile_idx = fd_topo_find_tile( topo, "pack", 0UL ); + if( pack_tile_idx!=ULONG_MAX ) { + fd_topo_tile_t const * pack = &topo->tiles[ pack_tile_idx ]; + volatile ulong const * pack_metrics = fd_metrics_tile( pack->metrics ); + stats->pack_buffer_cnt = pack_metrics[ MIDX( GAUGE, PACK, TXN_AVAILABLE ) ]; + stats->pack_buffer_capacity = pack->pack.max_pending_transactions; + } + + stats->bank_txn_exec_cnt = waterfall->out.block_fail + waterfall->out.block_success; +} + +static inline int +fd_guih_ephemeral_slots_contains( fd_guih_ephemeral_slot_t * slots, ulong slots_sz, ulong slot ) { + for( ulong i=0UL; i(b).timestamp_arrival_nanos, (a).slot>(b).slot ) ) ) +#include "../../util/tmpl/fd_sort.c" + +static inline void +fd_guih_try_insert_ephemeral_slot( fd_guih_ephemeral_slot_t * slots, ulong slots_sz, ulong slot, long now ) { + int already_present = 0; + for( ulong i=0UL; i4800000000L ) ) { + slots[ i ].slot = ULONG_MAX; + continue; + } + + /* if we've already seen this slot, just update the timestamp */ + if( FD_UNLIKELY( slots[ i ].slot==slot ) ) { + slots[ i ].timestamp_arrival_nanos = now; + already_present = 1; + } + } + if( FD_LIKELY( already_present ) ) return; + + /* Insert the new slot number, evicting a smaller slot if necessary */ + slots[ slots_sz ].timestamp_arrival_nanos = now; + slots[ slots_sz ].slot = slot; + fd_guih_ephemeral_slot_sort_insert( slots, slots_sz+1UL ); +} + +static inline void +fd_guih_try_insert_run_length_slot( ulong * slots, ulong capacity, ulong * slots_sz, ulong slot ) { + /* catch up history is run-length encoded */ + ulong range_idx = fd_sort_up_ulong_split( slots, *slots_sz, slot ); + if( FD_UNLIKELY( range_idx<(*slots_sz)-1UL && range_idx%2UL==0UL && slots[ range_idx ]<=slot && slots[ range_idx+1UL ]>=slot ) ) return; + if( FD_UNLIKELY( range_idx<(*slots_sz) && range_idx>0UL && range_idx%2UL==1UL && slots[ range_idx-1UL ]<=slot && slots[ range_idx ]>=slot ) ) return; + + slots[ (*slots_sz)++ ] = slot; + slots[ (*slots_sz)++ ] = slot; + + fd_sort_up_ulong_insert( slots, (*slots_sz) ); + + /* colesce ranges */ + ulong removed = 0UL; + for( ulong i=1UL; i<(*slots_sz)-1UL; i+=2 ) { + if( FD_UNLIKELY( slots[ i ]+1UL==slots[ i+1UL ] ) ) { + slots[ i ] = ULONG_MAX; + slots[ i+1UL ] = ULONG_MAX; + removed += 2; + } + } + + if( FD_UNLIKELY( (*slots_sz)>=removed+capacity-2UL && (*slots_sz)>=4UL ) ) { + /* We are at capacity, start coalescing earlier intervals. */ + slots[ 1 ] = ULONG_MAX; + slots[ 2 ] = ULONG_MAX; + removed += 2; + } + + fd_sort_up_ulong_insert( slots, (*slots_sz) ); + (*slots_sz) -= removed; +} + +void +fd_guih_handle_repair_slot( fd_guih_t * gui, ulong slot, long now ) { + int was_sent = fd_guih_ephemeral_slots_contains( gui->summary.slots_max_repair, FD_GUIH_REPAIR_SLOT_HISTORY_SZ, slot ); + fd_guih_try_insert_ephemeral_slot( gui->summary.slots_max_repair, FD_GUIH_REPAIR_SLOT_HISTORY_SZ, slot, now ); + + if( FD_UNLIKELY( !was_sent && slot!=gui->summary.slot_repair ) ) { + gui->summary.slot_repair = slot; + + fd_guih_printf_repair_slot( gui ); + fd_http_server_ws_broadcast( gui->http ); + + if( FD_UNLIKELY( gui->summary.slot_caught_up==ULONG_MAX ) ) fd_guih_try_insert_run_length_slot( gui->summary.catch_up_repair, FD_GUIH_REPAIR_CATCH_UP_HISTORY_SZ, &gui->summary.catch_up_repair_sz, slot ); + } +} + +int +fd_guih_poll( fd_guih_t * gui, long now ) { + if( FD_LIKELY( now>gui->next_sample_400millis ) ) { + fd_guih_estimated_tps_snap( gui ); + fd_guih_printf_estimated_tps( gui ); + fd_http_server_ws_broadcast( gui->http ); + + gui->next_sample_400millis += 400L*1000L*1000L; + return 1; + } + + if( FD_LIKELY( now>gui->next_sample_100millis ) ) { + fd_guih_txn_waterfall_snap( gui, gui->summary.txn_waterfall_current ); + fd_guih_printf_live_txn_waterfall( gui, gui->summary.txn_waterfall_reference, gui->summary.txn_waterfall_current, 0UL /* TODO: REAL NEXT LEADER SLOT */ ); + fd_http_server_ws_broadcast( gui->http ); + + fd_guih_network_stats_snap( gui, gui->summary.network_stats_current ); + fd_guih_network_rate_max_update( gui, now ); + fd_guih_printf_live_network_metrics( gui, gui->summary.network_stats_current ); + fd_http_server_ws_broadcast( gui->http ); + + *gui->summary.tile_stats_reference = *gui->summary.tile_stats_current; + fd_guih_tile_stats_snap( gui, gui->summary.txn_waterfall_current, gui->summary.tile_stats_current, now ); + fd_guih_printf_live_tile_stats( gui, gui->summary.tile_stats_reference, gui->summary.tile_stats_current ); + fd_http_server_ws_broadcast( gui->http ); + + ulong bundle_tile_idx = fd_topo_find_tile( gui->topo, "bundle", 0UL ); + if( FD_LIKELY( bundle_tile_idx!=ULONG_MAX ) ) { + volatile ulong const * bundle_metrics = fd_metrics_tile( gui->topo->tiles[ bundle_tile_idx ].metrics ); + int cur_state = (int)bundle_metrics[ MIDX( GAUGE, BUNDLE, STATE ) ]; + if( FD_UNLIKELY( cur_state != gui->block_engine.status ) ) { + gui->block_engine.status = cur_state; + fd_guih_printf_block_engine( gui ); + fd_http_server_ws_broadcast( gui->http ); + } + } + + fd_guih_printf_health( gui ); + fd_http_server_ws_broadcast( gui->http ); + + gui->next_sample_100millis += 100L*1000L*1000L; + return 1; + } + + if( FD_LIKELY( now>gui->next_sample_50millis ) ) { + /* We get the repair slot from the sampled metric after catching up + and from incoming shred data before catchup. This makes the + catchup progress bar look complete while also keeping the + overview slots vis correct. TODO: do this properly using frags + sent over a link */ + if( FD_LIKELY( gui->summary.slot_caught_up!=ULONG_MAX ) ) { + fd_topo_tile_t const * repair = &gui->topo->tiles[ fd_topo_find_tile( gui->topo, "repair", 0UL ) ]; + volatile ulong const * repair_metrics = fd_metrics_tile( repair->metrics ); + ulong slot = repair_metrics[ MIDX( GAUGE, REPAIR, SLOT_HIGHEST_REPAIRED ) ]; + fd_guih_handle_repair_slot( gui, slot, now ); + } + + gui->next_sample_50millis += 50L*1000L*1000L; + return 1; + } + + if( FD_LIKELY( now>gui->next_sample_25millis ) ) { + fd_guih_tile_timers_snap( gui ); + + fd_guih_printf_live_tile_timers( gui ); + fd_http_server_ws_broadcast( gui->http ); + + fd_guih_printf_live_tile_metrics( gui ); + fd_http_server_ws_broadcast( gui->http ); + + gui->next_sample_25millis += (long)(25*1000L*1000L); + return 1; + } + + + if( FD_LIKELY( now>gui->next_sample_10millis ) ) { + fd_guih_scheduler_counts_snap( gui, now ); + + fd_guih_printf_server_time_nanos( gui, now ); + fd_http_server_ws_broadcast( gui->http ); + + gui->next_sample_10millis += 10L*1000L*1000L; + return 1; + } + + return 0; +} + +static void +fd_guih_handle_gossip_update( fd_guih_t * gui, + uchar const * msg ) { + /* `gui->gossip.peer_cnt` is guaranteed to be in [0, FD_GUIH_MAX_PEER_CNT], because + `peer_cnt` is FD_TEST-ed to be less than or equal FD_GUIH_MAX_PEER_CNT. + For every new peer that is added an existing peer will be removed or was still free. + And adding a new peer is done at most `peer_cnt` times. */ + ulong peer_cnt = FD_LOAD( ulong, msg ); + + FD_TEST( peer_cnt<=FD_GUIH_MAX_PEER_CNT ); + + ulong added_cnt = 0UL; + ulong added[ FD_GUIH_MAX_PEER_CNT ] = {0}; + + ulong update_cnt = 0UL; + ulong updated[ FD_GUIH_MAX_PEER_CNT ] = {0}; + + ulong removed_cnt = 0UL; + fd_pubkey_t removed[ FD_GUIH_MAX_PEER_CNT ] = {0}; + + uchar const * data = msg + sizeof(ulong); + for( ulong i=0UL; igossip.peer_cnt; i++ ) { + int found = 0; + for( ulong j=0UL; jgossip.peers[ i ].pubkey, data+j*(58UL+12UL*6UL), 32UL ) ) ) { + found = 1; + break; + } + } + + if( FD_UNLIKELY( !found ) ) { + fd_memcpy( removed[ removed_cnt++ ].uc, gui->gossip.peers[ i ].pubkey->uc, 32UL ); + if( FD_LIKELY( i+1UL!=gui->gossip.peer_cnt ) ) { + gui->gossip.peers[ i ] = gui->gossip.peers[ gui->gossip.peer_cnt-1UL ]; + i--; + } + gui->gossip.peer_cnt--; + } + } + + ulong before_peer_cnt = gui->gossip.peer_cnt; + for( ulong i=0UL; igossip.peer_cnt; j++ ) { + if( FD_UNLIKELY( !memcmp( gui->gossip.peers[ j ].pubkey, data+i*(58UL+12UL*6UL), 32UL ) ) ) { + found_idx = j; + found = 1; + break; + } + } + + if( FD_UNLIKELY( !found ) ) { + fd_memcpy( gui->gossip.peers[ gui->gossip.peer_cnt ].pubkey->uc, data+i*(58UL+12UL*6UL), 32UL ); + gui->gossip.peers[ gui->gossip.peer_cnt ].wallclock = FD_LOAD( ulong, data+i*(58UL+12UL*6UL)+32UL ); + gui->gossip.peers[ gui->gossip.peer_cnt ].shred_version = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+40UL ); + gui->gossip.peers[ gui->gossip.peer_cnt ].has_version = FD_LOAD( uchar, data+i*(58UL+12UL*6UL)+42UL ); + if( FD_LIKELY( gui->gossip.peers[ gui->gossip.peer_cnt ].has_version ) ) { + gui->gossip.peers[ gui->gossip.peer_cnt ].version.major = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+43UL ); + gui->gossip.peers[ gui->gossip.peer_cnt ].version.minor = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+45UL ); + gui->gossip.peers[ gui->gossip.peer_cnt ].version.patch = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+47UL ); + gui->gossip.peers[ gui->gossip.peer_cnt ].version.has_commit = FD_LOAD( uchar, data+i*(58UL+12UL*6UL)+49UL ); + if( FD_LIKELY( gui->gossip.peers[ gui->gossip.peer_cnt ].version.has_commit ) ) { + gui->gossip.peers[ gui->gossip.peer_cnt ].version.commit = FD_LOAD( uint, data+i*(58UL+12UL*6UL)+50UL ); + } + gui->gossip.peers[ gui->gossip.peer_cnt ].version.feature_set = FD_LOAD( uint, data+i*(58UL+12UL*6UL)+54UL ); + } + + for( ulong j=0UL; j<12UL; j++ ) { + gui->gossip.peers[ gui->gossip.peer_cnt ].sockets[ j ].ipv4 = FD_LOAD( uint, data+i*(58UL+12UL*6UL)+58UL+j*6UL ); + gui->gossip.peers[ gui->gossip.peer_cnt ].sockets[ j ].port = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+58UL+j*6UL+4UL ); + } + + gui->gossip.peer_cnt++; + } else { + int peer_updated = gui->gossip.peers[ found_idx ].shred_version!=FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+40UL ) || + // gui->gossip.peers[ found_idx ].wallclock!=FD_LOAD( ulong, data+i*(58UL+12UL*6UL)+32UL ) || + gui->gossip.peers[ found_idx ].has_version!=FD_LOAD( uchar, data+i*(58UL+12UL*6UL)+42UL ); + + if( FD_LIKELY( !peer_updated && gui->gossip.peers[ found_idx ].has_version ) ) { + peer_updated = gui->gossip.peers[ found_idx ].version.major!=FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+43UL ) || + gui->gossip.peers[ found_idx ].version.minor!=FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+45UL ) || + gui->gossip.peers[ found_idx ].version.patch!=FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+47UL ) || + gui->gossip.peers[ found_idx ].version.has_commit!=FD_LOAD( uchar, data+i*(58UL+12UL*6UL)+49UL ) || + (gui->gossip.peers[ found_idx ].version.has_commit && gui->gossip.peers[ found_idx ].version.commit!=FD_LOAD( uint, data+i*(58UL+12UL*6UL)+50UL )) || + gui->gossip.peers[ found_idx ].version.feature_set!=FD_LOAD( uint, data+i*(58UL+12UL*6UL)+54UL ); + } + + if( FD_LIKELY( !peer_updated ) ) { + for( ulong j=0UL; j<12UL; j++ ) { + peer_updated = gui->gossip.peers[ found_idx ].sockets[ j ].ipv4!=FD_LOAD( uint, data+i*(58UL+12UL*6UL)+58UL+j*6UL ) || + gui->gossip.peers[ found_idx ].sockets[ j ].port!=FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+58UL+j*6UL+4UL ); + if( FD_LIKELY( peer_updated ) ) break; + } + } + + if( FD_UNLIKELY( peer_updated ) ) { + updated[ update_cnt++ ] = found_idx; + gui->gossip.peers[ found_idx ].shred_version = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+40UL ); + gui->gossip.peers[ found_idx ].wallclock = FD_LOAD( ulong, data+i*(58UL+12UL*6UL)+32UL ); + gui->gossip.peers[ found_idx ].has_version = FD_LOAD( uchar, data+i*(58UL+12UL*6UL)+42UL ); + if( FD_LIKELY( gui->gossip.peers[ found_idx ].has_version ) ) { + gui->gossip.peers[ found_idx ].version.major = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+43UL ); + gui->gossip.peers[ found_idx ].version.minor = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+45UL ); + gui->gossip.peers[ found_idx ].version.patch = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+47UL ); + gui->gossip.peers[ found_idx ].version.has_commit = FD_LOAD( uchar, data+i*(58UL+12UL*6UL)+49UL ); + if( FD_LIKELY( gui->gossip.peers[ found_idx ].version.has_commit ) ) { + gui->gossip.peers[ found_idx ].version.commit = FD_LOAD( uint, data+i*(58UL+12UL*6UL)+50UL ); + } + gui->gossip.peers[ found_idx ].version.feature_set = FD_LOAD( uint, data+i*(58UL+12UL*6UL)+54UL ); + } + + for( ulong j=0UL; j<12UL; j++ ) { + gui->gossip.peers[ found_idx ].sockets[ j ].ipv4 = FD_LOAD( uint, data+i*(58UL+12UL*6UL)+58UL+j*6UL ); + gui->gossip.peers[ found_idx ].sockets[ j ].port = FD_LOAD( ushort, data+i*(58UL+12UL*6UL)+58UL+j*6UL+4UL ); + } + } + } + } + + added_cnt = gui->gossip.peer_cnt - before_peer_cnt; + for( ulong i=before_peer_cnt; igossip.peer_cnt; i++ ) added[ i-before_peer_cnt ] = i; + + fd_guih_printf_peers_gossip_update( gui, updated, update_cnt, removed, removed_cnt, added, added_cnt ); + fd_http_server_ws_broadcast( gui->http ); +} + +static void +fd_guih_handle_vote_account_update( fd_guih_t * gui, + uchar const * msg ) { + /* See fd_guih_handle_gossip_update for why `gui->vote_account.vote_account_cnt` + is guaranteed to be in [0, FD_GUIH_MAX_PEER_CNT]. */ + ulong peer_cnt = FD_LOAD( ulong, msg ); + + FD_TEST( peer_cnt<=FD_GUIH_MAX_PEER_CNT ); + + ulong added_cnt = 0UL; + ulong added[ FD_GUIH_MAX_PEER_CNT ] = {0}; + + ulong update_cnt = 0UL; + ulong updated[ FD_GUIH_MAX_PEER_CNT ] = {0}; + + ulong removed_cnt = 0UL; + fd_pubkey_t removed[ FD_GUIH_MAX_PEER_CNT ] = {0}; + + uchar const * data = msg + sizeof(ulong); + for( ulong i=0UL; ivote_account.vote_account_cnt; i++ ) { + int found = 0; + for( ulong j=0UL; jvote_account.vote_accounts[ i ].vote_account, data+j*112UL, 32UL ) ) ) { + found = 1; + break; + } + } + + if( FD_UNLIKELY( !found ) ) { + fd_memcpy( removed[ removed_cnt++ ].uc, gui->vote_account.vote_accounts[ i ].vote_account->uc, 32UL ); + if( FD_LIKELY( i+1UL!=gui->vote_account.vote_account_cnt ) ) { + gui->vote_account.vote_accounts[ i ] = gui->vote_account.vote_accounts[ gui->vote_account.vote_account_cnt-1UL ]; + i--; + } + gui->vote_account.vote_account_cnt--; + } + } + + ulong before_peer_cnt = gui->vote_account.vote_account_cnt; + for( ulong i=0UL; ivote_account.vote_account_cnt; j++ ) { + if( FD_UNLIKELY( !memcmp( gui->vote_account.vote_accounts[ j ].vote_account, data+i*112UL, 32UL ) ) ) { + found_idx = j; + found = 1; + break; + } + } + + if( FD_UNLIKELY( !found ) ) { + fd_memcpy( gui->vote_account.vote_accounts[ gui->vote_account.vote_account_cnt ].vote_account->uc, data+i*112UL, 32UL ); + fd_memcpy( gui->vote_account.vote_accounts[ gui->vote_account.vote_account_cnt ].pubkey->uc, data+i*112UL+32UL, 32UL ); + + gui->vote_account.vote_accounts[ gui->vote_account.vote_account_cnt ].activated_stake = FD_LOAD( ulong, data+i*112UL+64UL ); + gui->vote_account.vote_accounts[ gui->vote_account.vote_account_cnt ].last_vote = FD_LOAD( ulong, data+i*112UL+72UL ); + gui->vote_account.vote_accounts[ gui->vote_account.vote_account_cnt ].root_slot = FD_LOAD( ulong, data+i*112UL+80UL ); + gui->vote_account.vote_accounts[ gui->vote_account.vote_account_cnt ].epoch_credits = FD_LOAD( ulong, data+i*112UL+88UL ); + gui->vote_account.vote_accounts[ gui->vote_account.vote_account_cnt ].commission = FD_LOAD( uchar, data+i*112UL+96UL ); + gui->vote_account.vote_accounts[ gui->vote_account.vote_account_cnt ].delinquent = FD_LOAD( uchar, data+i*112UL+97UL ); + + gui->vote_account.vote_account_cnt++; + } else { + int peer_updated = + memcmp( gui->vote_account.vote_accounts[ found_idx ].pubkey->uc, data+i*112UL+32UL, 32UL ) || + gui->vote_account.vote_accounts[ found_idx ].activated_stake != FD_LOAD( ulong, data+i*112UL+64UL ) || + // gui->vote_account.vote_accounts[ found_idx ].last_vote != FD_LOAD( ulong, data+i*112UL+72UL ) || + // gui->vote_account.vote_accounts[ found_idx ].root_slot != FD_LOAD( ulong, data+i*112UL+80UL ) || + // gui->vote_account.vote_accounts[ found_idx ].epoch_credits != FD_LOAD( ulong, data+i*112UL+88UL ) || + gui->vote_account.vote_accounts[ found_idx ].commission != FD_LOAD( uchar, data+i*112UL+96UL ) || + gui->vote_account.vote_accounts[ found_idx ].delinquent != FD_LOAD( uchar, data+i*112UL+97UL ); + + if( FD_UNLIKELY( peer_updated ) ) { + updated[ update_cnt++ ] = found_idx; + + fd_memcpy( gui->vote_account.vote_accounts[ found_idx ].pubkey->uc, data+i*112UL+32UL, 32UL ); + gui->vote_account.vote_accounts[ found_idx ].activated_stake = FD_LOAD( ulong, data+i*112UL+64UL ); + gui->vote_account.vote_accounts[ found_idx ].last_vote = FD_LOAD( ulong, data+i*112UL+72UL ); + gui->vote_account.vote_accounts[ found_idx ].root_slot = FD_LOAD( ulong, data+i*112UL+80UL ); + gui->vote_account.vote_accounts[ found_idx ].epoch_credits = FD_LOAD( ulong, data+i*112UL+88UL ); + gui->vote_account.vote_accounts[ found_idx ].commission = FD_LOAD( uchar, data+i*112UL+96UL ); + gui->vote_account.vote_accounts[ found_idx ].delinquent = FD_LOAD( uchar, data+i*112UL+97UL ); + } + } + } + + added_cnt = gui->vote_account.vote_account_cnt - before_peer_cnt; + for( ulong i=before_peer_cnt; ivote_account.vote_account_cnt; i++ ) added[ i-before_peer_cnt ] = i; + + fd_guih_printf_peers_vote_account_update( gui, updated, update_cnt, removed, removed_cnt, added, added_cnt ); + fd_http_server_ws_broadcast( gui->http ); +} + +static void +fd_guih_handle_validator_info_update( fd_guih_t * gui, + uchar const * msg ) { + if( FD_UNLIKELY( gui->validator_info.info_cnt == FD_GUIH_MAX_PEER_CNT ) ) { + FD_LOG_DEBUG(("validator info cnt exceeds 108000 %lu, ignoring additional entries", gui->validator_info.info_cnt )); + return; + } + uchar const * data = (uchar const *)fd_type_pun_const( msg ); + + ulong added_cnt = 0UL; + ulong added[ 1 ] = {0}; + + ulong update_cnt = 0UL; + ulong updated[ 1 ] = {0}; + + ulong removed_cnt = 0UL; + /* Unlike gossip or vote account updates, validator info messages come + in as info is discovered, and may contain as little as 1 validator + per message. Therefore, it doesn't make sense to use the remove + mechanism. */ + + ulong before_peer_cnt = gui->validator_info.info_cnt; + int found = 0; + ulong found_idx; + for( ulong j=0UL; jvalidator_info.info_cnt; j++ ) { + if( FD_UNLIKELY( !memcmp( gui->validator_info.info[ j ].pubkey, data, 32UL ) ) ) { + found_idx = j; + found = 1; + break; + } + } + + if( FD_UNLIKELY( !found ) ) { + fd_memcpy( gui->validator_info.info[ gui->validator_info.info_cnt ].pubkey->uc, data, 32UL ); + + strncpy( gui->validator_info.info[ gui->validator_info.info_cnt ].name, (char const *)(data+32UL), 64 ); + gui->validator_info.info[ gui->validator_info.info_cnt ].name[ 63 ] = '\0'; + + strncpy( gui->validator_info.info[ gui->validator_info.info_cnt ].website, (char const *)(data+96UL), 128 ); + gui->validator_info.info[ gui->validator_info.info_cnt ].website[ 127 ] = '\0'; + + strncpy( gui->validator_info.info[ gui->validator_info.info_cnt ].details, (char const *)(data+224UL), 256 ); + gui->validator_info.info[ gui->validator_info.info_cnt ].details[ 255 ] = '\0'; + + strncpy( gui->validator_info.info[ gui->validator_info.info_cnt ].icon_uri, (char const *)(data+480UL), 128 ); + gui->validator_info.info[ gui->validator_info.info_cnt ].icon_uri[ 127 ] = '\0'; + + gui->validator_info.info_cnt++; + } else { + int peer_updated = + memcmp( gui->validator_info.info[ found_idx ].pubkey->uc, data, 32UL ) || + strncmp( gui->validator_info.info[ found_idx ].name, (char const *)(data+32UL), 64 ) || + strncmp( gui->validator_info.info[ found_idx ].website, (char const *)(data+96UL), 128 ) || + strncmp( gui->validator_info.info[ found_idx ].details, (char const *)(data+224UL), 256 ) || + strncmp( gui->validator_info.info[ found_idx ].icon_uri, (char const *)(data+480UL), 128 ); + + if( FD_UNLIKELY( peer_updated ) ) { + updated[ update_cnt++ ] = found_idx; + + fd_memcpy( gui->validator_info.info[ found_idx ].pubkey->uc, data, 32UL ); + + strncpy( gui->validator_info.info[ found_idx ].name, (char const *)(data+32UL), 64 ); + gui->validator_info.info[ found_idx ].name[ 63 ] = '\0'; + + strncpy( gui->validator_info.info[ found_idx ].website, (char const *)(data+96UL), 128 ); + gui->validator_info.info[ found_idx ].website[ 127 ] = '\0'; + + strncpy( gui->validator_info.info[ found_idx ].details, (char const *)(data+224UL), 256 ); + gui->validator_info.info[ found_idx ].details[ 255 ] = '\0'; + + strncpy( gui->validator_info.info[ found_idx ].icon_uri, (char const *)(data+480UL), 128 ); + gui->validator_info.info[ found_idx ].icon_uri[ 127 ] = '\0'; + } + } + + added_cnt = gui->validator_info.info_cnt - before_peer_cnt; + for( ulong i=before_peer_cnt; ivalidator_info.info_cnt; i++ ) added[ i-before_peer_cnt ] = i; + + fd_guih_printf_peers_validator_info_update( gui, updated, update_cnt, NULL, removed_cnt, added, added_cnt ); + fd_http_server_ws_broadcast( gui->http ); +} + +int +fd_guih_request_slot( fd_guih_t * gui, + ulong ws_conn_id, + ulong request_id, + cJSON const * params ) { + const cJSON * slot_param = cJSON_GetObjectItemCaseSensitive( params, "slot" ); + if( FD_UNLIKELY( !cJSON_IsNumber( slot_param ) ) ) return FD_HTTP_SERVER_CONNECTION_CLOSE_BAD_REQUEST; + + ulong _slot = slot_param->valueulong; + fd_guih_slot_t const * slot = fd_guih_get_slot_const( gui, _slot ); + if( FD_UNLIKELY( !slot ) ) { + fd_guih_printf_null_query_response( gui->http, "slot", "query", request_id ); + FD_TEST( !fd_http_server_ws_send( gui->http, ws_conn_id ) ); + return 0; + } + + fd_guih_printf_slot_request( gui, _slot, request_id ); + FD_TEST( !fd_http_server_ws_send( gui->http, ws_conn_id ) ); + return 0; +} + +int +fd_guih_request_slot_transactions( fd_guih_t * gui, + ulong ws_conn_id, + ulong request_id, + cJSON const * params ) { + const cJSON * slot_param = cJSON_GetObjectItemCaseSensitive( params, "slot" ); + if( FD_UNLIKELY( !cJSON_IsNumber( slot_param ) ) ) return FD_HTTP_SERVER_CONNECTION_CLOSE_BAD_REQUEST; + + ulong _slot = slot_param->valueulong; + fd_guih_slot_t const * slot = fd_guih_get_slot_const( gui, _slot ); + if( FD_UNLIKELY( !slot ) ) { + fd_guih_printf_null_query_response( gui->http, "slot", "query_transactions", request_id ); + FD_TEST( !fd_http_server_ws_send( gui->http, ws_conn_id ) ); + return 0; + } + + fd_guih_printf_slot_transactions_request( gui, _slot, request_id ); + FD_TEST( !fd_http_server_ws_send( gui->http, ws_conn_id ) ); + return 0; +} + +int +fd_guih_request_slot_detailed( fd_guih_t * gui, + ulong ws_conn_id, + ulong request_id, + cJSON const * params ) { + const cJSON * slot_param = cJSON_GetObjectItemCaseSensitive( params, "slot" ); + if( FD_UNLIKELY( !cJSON_IsNumber( slot_param ) ) ) return FD_HTTP_SERVER_CONNECTION_CLOSE_BAD_REQUEST; + + ulong _slot = slot_param->valueulong; + fd_guih_slot_t const * slot = fd_guih_get_slot_const( gui, _slot ); + if( FD_UNLIKELY( !slot ) ) { + fd_guih_printf_null_query_response( gui->http, "slot", "query_detailed", request_id ); + FD_TEST( !fd_http_server_ws_send( gui->http, ws_conn_id ) ); + return 0; + } + + fd_guih_printf_slot_request_detailed( gui, _slot, request_id ); + FD_TEST( !fd_http_server_ws_send( gui->http, ws_conn_id ) ); + return 0; +} + +static inline ulong +fd_guih_slot_duration( fd_guih_t const * gui, fd_guih_slot_t const * cur ) { + fd_guih_slot_t const * prev = fd_guih_get_slot_const( gui, cur->slot-1UL ); + if( FD_UNLIKELY( !prev || + prev->skipped || + prev->completed_time == LONG_MAX || + prev->slot != (cur->slot - 1UL) || + cur->skipped || + cur->completed_time == LONG_MAX ) ) return ULONG_MAX; + + return (ulong)(cur->completed_time - prev->completed_time); +} + +/* All rankings are initialized / reset to ULONG_MAX. These sentinels + sort AFTER non-sentinel ranking entries. Equal slots are sorted by + oldest slot AFTER. Otherwise sort by value according to ranking + type. */ +#define SORT_NAME fd_guih_slot_ranking_sort +#define SORT_KEY_T fd_guih_slot_ranking_t +#define SORT_BEFORE(a,b) fd_int_if( (a).slot==ULONG_MAX, 0, fd_int_if( (b).slot==ULONG_MAX, 1, fd_int_if( (a).value==(b).value, (a).slot>(b).slot, fd_int_if( (a).type==FD_GUIH_SLOT_RANKING_TYPE_DESC, (a).value>(b).value, (a).value<(b).value ) ) ) ) +#include "../../util/tmpl/fd_sort.c" + +static inline void +fd_guih_try_insert_ranking( fd_guih_t * gui, + fd_guih_slot_rankings_t * rankings, + fd_guih_slot_t const * slot ) { + /* Rankings are inserted into an extra slot at the end of the ranking + array, then the array is sorted. */ +#define TRY_INSERT_SLOT( ranking_name, ranking_slot, ranking_value ) \ + do { \ + rankings->FD_CONCAT2(largest_, ranking_name) [ FD_GUIH_SLOT_RANKINGS_SZ ] = (fd_guih_slot_ranking_t){ .slot = (ranking_slot), .value = (ranking_value), .type = FD_GUIH_SLOT_RANKING_TYPE_DESC }; \ + fd_guih_slot_ranking_sort_insert( rankings->FD_CONCAT2(largest_, ranking_name), FD_GUIH_SLOT_RANKINGS_SZ+1UL ); \ + rankings->FD_CONCAT2(smallest_, ranking_name)[ FD_GUIH_SLOT_RANKINGS_SZ ] = (fd_guih_slot_ranking_t){ .slot = (ranking_slot), .value = (ranking_value), .type = FD_GUIH_SLOT_RANKING_TYPE_ASC }; \ + fd_guih_slot_ranking_sort_insert( rankings->FD_CONCAT2(smallest_, ranking_name), FD_GUIH_SLOT_RANKINGS_SZ+1UL ); \ + } while (0) + + if( slot->skipped ) { + TRY_INSERT_SLOT( skipped, slot->slot, slot->slot ); + return; + } + + ulong dur = fd_guih_slot_duration( gui, slot ); + if( FD_LIKELY( dur!=ULONG_MAX ) ) TRY_INSERT_SLOT( duration, slot->slot, dur ); + TRY_INSERT_SLOT( tips, slot->slot, slot->tips ); + TRY_INSERT_SLOT( fees, slot->slot, slot->priority_fee + slot->transaction_fee ); + TRY_INSERT_SLOT( rewards, slot->slot, slot->tips + slot->priority_fee + slot->transaction_fee ); + TRY_INSERT_SLOT( rewards_per_cu, slot->slot, slot->compute_units==0UL ? 0UL : (slot->tips + slot->priority_fee + slot->transaction_fee) / slot->compute_units ); + TRY_INSERT_SLOT( compute_units, slot->slot, slot->compute_units ); +#undef TRY_INSERT_SLOT +} + +static void +fd_guih_update_slot_rankings( fd_guih_t * gui ) { + ulong first_replay_slot = ULONG_MAX; + first_replay_slot = gui->summary.startup_progress.startup_ledger_max_slot; + if( FD_UNLIKELY( first_replay_slot==ULONG_MAX ) ) return; + if( FD_UNLIKELY( gui->summary.slot_rooted ==ULONG_MAX ) ) return; + + ulong epoch_idx = fd_guih_current_epoch_idx( gui ); + if( FD_UNLIKELY( epoch_idx==ULONG_MAX ) ) return; + + /* No new slots since the last update */ + if( FD_UNLIKELY( gui->epoch.epochs[ epoch_idx ].rankings_slot>gui->summary.slot_rooted ) ) return; + + /* Slots before first_replay_slot are unavailable. */ + gui->epoch.epochs[ epoch_idx ].rankings_slot = fd_ulong_max( gui->epoch.epochs[ epoch_idx ].rankings_slot, first_replay_slot ); + + /* Update the rankings. Only look through slots we haven't already. */ + for( ulong s = gui->summary.slot_rooted; s>=gui->epoch.epochs[ epoch_idx ].rankings_slot; s--) { + fd_guih_slot_t const * slot = fd_guih_get_slot_const( gui, s ); + if( FD_UNLIKELY( !slot ) ) break; + + fd_guih_try_insert_ranking( gui, gui->epoch.epochs[ epoch_idx ].rankings, slot ); + if( FD_UNLIKELY( slot->mine ) ) fd_guih_try_insert_ranking( gui, gui->epoch.epochs[ epoch_idx ].my_rankings, slot ); + } + + gui->epoch.epochs[ epoch_idx ].rankings_slot = gui->summary.slot_rooted + 1UL; +} + +int +fd_guih_request_slot_rankings( fd_guih_t * gui, + ulong ws_conn_id, + ulong request_id, + cJSON const * params ) { + const cJSON * slot_param = cJSON_GetObjectItemCaseSensitive( params, "mine" ); + if( FD_UNLIKELY( !cJSON_IsBool( slot_param ) ) ) return FD_HTTP_SERVER_CONNECTION_CLOSE_BAD_REQUEST; + + int mine = !!(slot_param->type & cJSON_True); + fd_guih_update_slot_rankings( gui ); + fd_guih_printf_slot_rankings_request( gui, request_id, mine ); + FD_TEST( !fd_http_server_ws_send( gui->http, ws_conn_id ) ); + return 0; +} + +int +fd_guih_request_slot_shreds( fd_guih_t * gui, + ulong ws_conn_id, + ulong request_id, + cJSON const * params ) { + const cJSON * slot_param = cJSON_GetObjectItemCaseSensitive( params, "slot" ); + if( FD_UNLIKELY( !cJSON_IsNumber( slot_param ) ) ) return FD_HTTP_SERVER_CONNECTION_CLOSE_BAD_REQUEST; + + ulong _slot = slot_param->valueulong; + + fd_guih_slot_t const * slot = fd_guih_get_slot_const( gui, _slot ); + if( FD_UNLIKELY( !slot || slot->shreds.start_offset==ULONG_MAX || slot->shreds.end_offset==ULONG_MAX || gui->shreds.history_tail >= slot->shreds.end_offset + FD_GUIH_SHREDS_HISTORY_SZ ) ) { + fd_guih_printf_null_query_response( gui->http, "slot", "query_shreds", request_id ); + FD_TEST( !fd_http_server_ws_send( gui->http, ws_conn_id ) ); + return 0; + } + + fd_guih_printf_slot_query_shreds( gui, _slot, request_id ); + FD_TEST( !fd_http_server_ws_send( gui->http, ws_conn_id ) ); + return 0; +} + +int +fd_guih_ws_message( fd_guih_t * gui, + ulong ws_conn_id, + uchar const * data, + ulong data_len ) { + /* TODO: cJSON allocates, might fail SIGSYS due to brk(2)... + switch off this (or use wksp allocator) */ + const char * parse_end; + cJSON * json = cJSON_ParseWithLengthOpts( (char *)data, data_len, &parse_end, 0 ); + if( FD_UNLIKELY( !json ) ) { + return FD_HTTP_SERVER_CONNECTION_CLOSE_BAD_REQUEST; + } + + const cJSON * node = cJSON_GetObjectItemCaseSensitive( json, "id" ); + if( FD_UNLIKELY( !cJSON_IsNumber( node ) ) ) { + cJSON_Delete( json ); + return FD_HTTP_SERVER_CONNECTION_CLOSE_BAD_REQUEST; + } + ulong id = node->valueulong; + + const cJSON * topic = cJSON_GetObjectItemCaseSensitive( json, "topic" ); + if( FD_UNLIKELY( !cJSON_IsString( topic ) || topic->valuestring==NULL ) ) { + cJSON_Delete( json ); + return FD_HTTP_SERVER_CONNECTION_CLOSE_BAD_REQUEST; + } + + const cJSON * key = cJSON_GetObjectItemCaseSensitive( json, "key" ); + if( FD_UNLIKELY( !cJSON_IsString( key ) || key->valuestring==NULL ) ) { + cJSON_Delete( json ); + return FD_HTTP_SERVER_CONNECTION_CLOSE_BAD_REQUEST; + } + + if( FD_LIKELY( !strcmp( topic->valuestring, "slot" ) && !strcmp( key->valuestring, "query" ) ) ) { + const cJSON * params = cJSON_GetObjectItemCaseSensitive( json, "params" ); + if( FD_UNLIKELY( !cJSON_IsObject( params ) ) ) { + cJSON_Delete( json ); + return FD_HTTP_SERVER_CONNECTION_CLOSE_BAD_REQUEST; + } + + int result = fd_guih_request_slot( gui, ws_conn_id, id, params ); + cJSON_Delete( json ); + return result; + } else if( FD_LIKELY( !strcmp( topic->valuestring, "slot" ) && !strcmp( key->valuestring, "query_detailed" ) ) ) { + const cJSON * params = cJSON_GetObjectItemCaseSensitive( json, "params" ); + if( FD_UNLIKELY( !cJSON_IsObject( params ) ) ) { + cJSON_Delete( json ); + return FD_HTTP_SERVER_CONNECTION_CLOSE_BAD_REQUEST; + } + + int result = fd_guih_request_slot_detailed( gui, ws_conn_id, id, params ); + cJSON_Delete( json ); + return result; + } else if( FD_LIKELY( !strcmp( topic->valuestring, "slot" ) && !strcmp( key->valuestring, "query_transactions" ) ) ) { + const cJSON * params = cJSON_GetObjectItemCaseSensitive( json, "params" ); + if( FD_UNLIKELY( !cJSON_IsObject( params ) ) ) { + cJSON_Delete( json ); + return FD_HTTP_SERVER_CONNECTION_CLOSE_BAD_REQUEST; + } + + int result = fd_guih_request_slot_transactions( gui, ws_conn_id, id, params ); + cJSON_Delete( json ); + return result; + } else if( FD_LIKELY( !strcmp( topic->valuestring, "slot" ) && !strcmp( key->valuestring, "query_rankings" ) ) ) { + const cJSON * params = cJSON_GetObjectItemCaseSensitive( json, "params" ); + if( FD_UNLIKELY( !cJSON_IsObject( params ) ) ) { + cJSON_Delete( json ); + return FD_HTTP_SERVER_CONNECTION_CLOSE_BAD_REQUEST; + } + + int result = fd_guih_request_slot_rankings( gui, ws_conn_id, id, params ); + cJSON_Delete( json ); + return result; + } else if( FD_LIKELY( !strcmp( topic->valuestring, "slot" ) && !strcmp( key->valuestring, "query_shreds" ) ) ) { + const cJSON * params = cJSON_GetObjectItemCaseSensitive( json, "params" ); + if( FD_UNLIKELY( !cJSON_IsObject( params ) ) ) { + cJSON_Delete( json ); + return FD_HTTP_SERVER_CONNECTION_CLOSE_BAD_REQUEST; + } + + int result = fd_guih_request_slot_shreds( gui, ws_conn_id, id, params ); + cJSON_Delete( json ); + return result; + } else if( FD_LIKELY( !strcmp( topic->valuestring, "summary" ) && !strcmp( key->valuestring, "ping" ) ) ) { + fd_guih_printf_summary_ping( gui, id ); + FD_TEST( !fd_http_server_ws_send( gui->http, ws_conn_id ) ); + + cJSON_Delete( json ); + return 0; + } + + cJSON_Delete( json ); + return FD_HTTP_SERVER_CONNECTION_CLOSE_UNKNOWN_METHOD; +} + +static fd_guih_slot_t * +fd_guih_clear_slot( fd_guih_t * gui, + ulong _slot, + ulong _parent_slot ) { + fd_guih_slot_t * slot = gui->slots[ _slot % FD_GUIH_SLOTS_CNT ]; + + int mine = 0; + ulong epoch_idx = 0UL; + for( ulong i=0UL; i<2UL; i++) { + if( FD_UNLIKELY( !gui->epoch.has_epoch[ i ] ) ) continue; + if( FD_LIKELY( _slot>=gui->epoch.epochs[ i ].start_slot && _slot<=gui->epoch.epochs[ i ].end_slot ) ) { + fd_pubkey_t const * slot_leader = fd_epoch_leaders_get( gui->epoch.epochs[ i ].lsched, _slot ); + mine = !memcmp( slot_leader->uc, gui->summary.identity_key->uc, 32UL ); + epoch_idx = i; + break; + } + } + + slot->slot = _slot; + slot->parent_slot = _parent_slot; + slot->vote_slot = ULONG_MAX; + slot->vote_latency = UCHAR_MAX; + slot->reset_slot = ULONG_MAX; + slot->max_compute_units = UINT_MAX; + slot->completed_time = LONG_MAX; + slot->mine = mine; + slot->skipped = 0; + slot->must_republish = 1; + slot->level = FD_GUIH_SLOT_LEVEL_INCOMPLETE; + slot->vote_failed = UINT_MAX; + slot->vote_success = UINT_MAX; + slot->nonvote_success = UINT_MAX; + slot->nonvote_failed = UINT_MAX; + slot->compute_units = UINT_MAX; + slot->transaction_fee = ULONG_MAX; + slot->priority_fee = ULONG_MAX; + slot->tips = ULONG_MAX; + slot->shred_cnt = UINT_MAX; + slot->shreds.start_offset = ULONG_MAX; + slot->shreds.end_offset = ULONG_MAX; + + if( FD_LIKELY( slot->mine ) ) { + /* All slots start off not skipped, until we see it get off the reset + chain. */ + gui->epoch.epochs[ epoch_idx ].my_total_slots++; + + slot->leader_history_idx = gui->leader_slots_cnt++; + fd_guih_leader_slot_t * lslot = gui->leader_slots[ slot->leader_history_idx % FD_GUIH_LEADER_CNT ]; + + lslot->slot = _slot; + memset( lslot->block_hash.uc, 0, sizeof(fd_hash_t) ); + lslot->leader_start_time = LONG_MAX; + lslot->leader_end_time = LONG_MAX; + lslot->tile_timers_sample_cnt = 0UL; + lslot->scheduler_counts_sample_cnt = 0UL; + lslot->txs.microblocks_upper_bound = UINT_MAX; + lslot->txs.begin_microblocks = 0U; + lslot->txs.end_microblocks = 0U; + lslot->txs.start_offset = ULONG_MAX; + lslot->txs.end_offset = ULONG_MAX; + lslot->max_microblocks = ULONG_MAX; + lslot->unbecame_leader = 0; + } + + if( FD_UNLIKELY( !_slot ) ) { + /* Slot 0 is always rooted */ + slot->level = FD_GUIH_SLOT_LEVEL_ROOTED; + } + + return slot; +} + +void +fd_guih_handle_leader_schedule( fd_guih_t * gui, + fd_stake_weight_msg_t const * leader_schedule, + long now ) { + FD_TEST( leader_schedule->staked_vote_cnt<=MAX_STAKED_LEADERS ); + FD_TEST( leader_schedule->slot_cnt<=MAX_SLOTS_PER_EPOCH ); + + ulong idx = leader_schedule->epoch % 2UL; + gui->epoch.has_epoch[ idx ] = 1; + + gui->epoch.epochs[ idx ].epoch = leader_schedule->epoch; + gui->epoch.epochs[ idx ].start_slot = leader_schedule->start_slot; + gui->epoch.epochs[ idx ].end_slot = leader_schedule->start_slot + leader_schedule->slot_cnt - 1; // end_slot is inclusive. + gui->epoch.epochs[ idx ].my_total_slots = 0UL; + gui->epoch.epochs[ idx ].my_skipped_slots = 0UL; + + memset( gui->epoch.epochs[ idx ].rankings, (int)(UINT_MAX), sizeof(gui->epoch.epochs[ idx ].rankings) ); + memset( gui->epoch.epochs[ idx ].my_rankings, (int)(UINT_MAX), sizeof(gui->epoch.epochs[ idx ].my_rankings) ); + + gui->epoch.epochs[ idx ].rankings_slot = leader_schedule->start_slot; + + fd_vote_stake_weight_t const * stake_weights = fd_stake_weight_msg_stake_weights( leader_schedule ); + fd_memcpy( gui->epoch.epochs[ idx ].stakes, stake_weights, leader_schedule->staked_vote_cnt*sizeof(fd_vote_stake_weight_t) ); + + fd_epoch_leaders_delete( fd_epoch_leaders_leave( gui->epoch.epochs[ idx ].lsched ) ); + gui->epoch.epochs[idx].lsched = fd_epoch_leaders_join( fd_epoch_leaders_new( gui->epoch.epochs[ idx ]._lsched, + leader_schedule->epoch, + gui->epoch.epochs[ idx ].start_slot, + leader_schedule->slot_cnt, + leader_schedule->staked_vote_cnt, + gui->epoch.epochs[ idx ].stakes, + 0UL ) ); + + if( FD_UNLIKELY( leader_schedule->start_slot==0UL ) ) { + gui->epoch.epochs[ 0 ].start_time = now; + } else { + gui->epoch.epochs[ idx ].start_time = LONG_MAX; + + for( ulong i=0UL; istart_slot-1UL, FD_GUIH_SLOTS_CNT ); i++ ) { + fd_guih_slot_t const * slot = fd_guih_get_slot_const( gui, leader_schedule->start_slot-i ); + if( FD_UNLIKELY( !slot ) ) break; + else if( FD_UNLIKELY( slot->skipped ) ) continue; + + gui->epoch.epochs[ idx ].start_time = slot->completed_time; + break; + } + } + + fd_guih_printf_epoch( gui, idx ); + fd_http_server_ws_broadcast( gui->http ); +} + +static void +fd_guih_handle_slot_start( fd_guih_t * gui, + ulong _slot, + ulong parent_slot, + long now ) { + FD_TEST( gui->leader_slot==ULONG_MAX ); + gui->leader_slot = _slot; + + fd_guih_slot_t * slot = fd_guih_get_slot( gui, _slot ); + if( FD_UNLIKELY( !slot ) ) slot = fd_guih_clear_slot( gui, _slot, parent_slot ); + + fd_guih_tile_timers_snap( gui ); + gui->summary.tile_timers_snap_idx_slot_start = (gui->summary.tile_timers_snap_idx+(FD_GUIH_TILE_TIMER_SNAP_CNT-1UL))%FD_GUIH_TILE_TIMER_SNAP_CNT; + + fd_guih_scheduler_counts_snap( gui, now ); + gui->summary.scheduler_counts_snap_idx_slot_start = (gui->summary.scheduler_counts_snap_idx+(FD_GUIH_SCHEDULER_COUNT_SNAP_CNT-1UL))%FD_GUIH_SCHEDULER_COUNT_SNAP_CNT; + + fd_guih_txn_waterfall_t waterfall[ 1 ]; + fd_guih_txn_waterfall_snap( gui, waterfall ); + fd_guih_tile_stats_snap( gui, waterfall, slot->tile_stats_begin, now ); +} + +static void +fd_guih_handle_slot_end( fd_guih_t * gui, + ulong _slot, + ulong _cus_used, + long now ) { + if( FD_UNLIKELY( gui->leader_slot!=_slot ) ) { + FD_LOG_ERR(( "gui->leader_slot %lu _slot %lu", gui->leader_slot, _slot )); + } + gui->leader_slot = ULONG_MAX; + + fd_guih_slot_t * slot = fd_guih_get_slot( gui, _slot ); + if( FD_UNLIKELY( !slot ) ) return; + + slot->compute_units = (uint)_cus_used; + + fd_guih_tile_timers_snap( gui ); + + fd_guih_scheduler_counts_snap( gui, now ); + + fd_guih_leader_slot_t * lslot = fd_guih_get_leader_slot( gui, _slot ); + if( FD_LIKELY( lslot ) ) { + fd_rng_t rng[ 1 ]; + fd_rng_new( rng, 0UL, 0UL); + +#define DOWNSAMPLE( a, a_start, a_end, a_capacity, b, b_sz, stride ) (__extension__({ \ + ulong __cnt = 0UL; \ + ulong __rsz = (stride); \ + ulong __a_sz = (fd_ulong_if( a_end (float)(b_sz-__cnt) / (float)(__a_sz-__cnt) ) ) continue; \ + fd_memcpy( (b) + __cnt * __rsz, (a) + ((a_start+a_idx)%a_capacity) * __rsz, __rsz * sizeof(*(b)) ); \ + __cnt++; \ + } \ + } \ + __cnt; })) + + lslot->tile_timers_sample_cnt = DOWNSAMPLE( + gui->summary.tile_timers_snap, + gui->summary.tile_timers_snap_idx_slot_start, + gui->summary.tile_timers_snap_idx, + FD_GUIH_TILE_TIMER_SNAP_CNT, + lslot->tile_timers, + FD_GUIH_TILE_TIMER_LEADER_DOWNSAMPLE_CNT, + gui->tile_cnt ); + + lslot->scheduler_counts_sample_cnt = DOWNSAMPLE( + gui->summary.scheduler_counts_snap, + gui->summary.scheduler_counts_snap_idx_slot_start, + gui->summary.scheduler_counts_snap_idx, + FD_GUIH_SCHEDULER_COUNT_SNAP_CNT, + lslot->scheduler_counts, + FD_GUIH_SCHEDULER_COUNT_LEADER_DOWNSAMPLE_CNT, + 1UL ); +#undef DOWNSAMPLE + } + + /* When a slot ends, snap the state of the waterfall and save it into + that slot, and also reset the reference counters to the end of the + slot. */ + + fd_guih_txn_waterfall_snap( gui, slot->waterfall_end ); + memcpy( slot->waterfall_begin, gui->summary.txn_waterfall_reference, sizeof(slot->waterfall_begin) ); + memcpy( gui->summary.txn_waterfall_reference, slot->waterfall_end, sizeof(gui->summary.txn_waterfall_reference) ); + + fd_guih_tile_stats_snap( gui, slot->waterfall_end, slot->tile_stats_end, now ); +} + +static void +fd_guih_handle_reset_slot_legacy( fd_guih_t * gui, + uchar const * msg, + long now ) { + ulong last_landed_vote = FD_LOAD( ulong, msg ); + + ulong parent_cnt = FD_LOAD( ulong, msg + 8UL ); + FD_TEST( parent_cnt<4096UL ); + + ulong _slot = FD_LOAD( ulong, msg + 16UL ); + + for( ulong i=0UL; isummary.vote_distance!=_slot-last_landed_vote ) ) { + gui->summary.vote_distance = _slot-last_landed_vote; + fd_guih_printf_vote_distance( gui ); + fd_http_server_ws_broadcast( gui->http ); + } + + if( FD_LIKELY( gui->summary.vote_state!=FD_GUIH_VOTE_STATE_NON_VOTING ) ) { + if( FD_UNLIKELY( last_landed_vote==ULONG_MAX || (last_landed_vote+150UL)<_slot ) ) { + if( FD_UNLIKELY( gui->summary.vote_state!=FD_GUIH_VOTE_STATE_DELINQUENT ) ) { + gui->summary.vote_state = FD_GUIH_VOTE_STATE_DELINQUENT; + fd_guih_printf_vote_state( gui ); + fd_http_server_ws_broadcast( gui->http ); + } + } else { + if( FD_UNLIKELY( gui->summary.vote_state!=FD_GUIH_VOTE_STATE_VOTING ) ) { + gui->summary.vote_state = FD_GUIH_VOTE_STATE_VOTING; + fd_guih_printf_vote_state( gui ); + fd_http_server_ws_broadcast( gui->http ); + } + } + } + + ulong parent_slot_idx = 0UL; + + int republish_skip_rate[ 2 ] = {0}; + + for( ulong i=0UL; ilevel>=FD_GUIH_SLOT_LEVEL_ROOTED ) ) break; + + int should_republish = slot->must_republish; + slot->must_republish = 0; + + if( FD_UNLIKELY( parent_slot!=FD_LOAD( ulong, msg + (2UL+parent_slot_idx)*8UL ) ) ) { + /* We are between two parents in the rooted chain, which means + we were skipped. */ + if( FD_UNLIKELY( !slot->skipped ) ) { + slot->skipped = 1; + should_republish = 1; + if( FD_LIKELY( slot->mine ) ) { + for( ulong i=0UL; i<2UL; i++ ) { + if( FD_LIKELY( parent_slot>=gui->epoch.epochs[ i ].start_slot && parent_slot<=gui->epoch.epochs[ i ].end_slot ) ) { + gui->epoch.epochs[ i ].my_skipped_slots++; + republish_skip_rate[ i ] = 1; + break; + } + } + } + } + } else { + /* Reached the next parent... */ + if( FD_UNLIKELY( slot->skipped ) ) { + slot->skipped = 0; + should_republish = 1; + if( FD_LIKELY( slot->mine ) ) { + for( ulong i=0UL; i<2UL; i++ ) { + if( FD_LIKELY( parent_slot>=gui->epoch.epochs[ i ].start_slot && parent_slot<=gui->epoch.epochs[ i ].end_slot ) ) { + gui->epoch.epochs[ i ].my_skipped_slots--; + republish_skip_rate[ i ] = 1; + break; + } + } + } + } + parent_slot_idx++; + } + + if( FD_LIKELY( should_republish ) ) { + fd_guih_printf_slot( gui, parent_slot ); + fd_http_server_ws_broadcast( gui->http ); + } + + /* We reached the last parent in the chain, everything above this + must have already been rooted, so we can exit. */ + + if( FD_UNLIKELY( parent_slot_idx>=parent_cnt ) ) break; + } + + ulong duration_sum = 0UL; + ulong slot_cnt = 0UL; + + /* If we've just caught up we should truncate our slot history to avoid including catch-up slots */ + int just_caught_up = gui->summary.slot_caught_up!=ULONG_MAX && _slot>gui->summary.slot_caught_up && _slotsummary.slot_caught_up+750UL; + ulong slot_duration_history_sz = fd_ulong_if( just_caught_up, _slot-gui->summary.slot_caught_up, 750UL ); + for( ulong i=0UL; islot!=parent_slot ) ) { + FD_LOG_ERR(( "_slot %lu i %lu we expect _slot-i %lu got slot->slot %lu", _slot, i, _slot-i, slot->slot )); + } + + ulong slot_duration = fd_guih_slot_duration( gui, slot ); + if( FD_LIKELY( slot_duration!=ULONG_MAX ) ) { + duration_sum += slot_duration; + slot_cnt++; + } + } + + if( FD_LIKELY( slot_cnt>0 ) ) { + gui->summary.estimated_slot_duration_nanos = (ulong)(duration_sum / slot_cnt); + fd_guih_printf_estimated_slot_duration_nanos( gui ); + fd_http_server_ws_broadcast( gui->http ); + } + + if( FD_LIKELY( gui->summary.slot_completed==ULONG_MAX || _slot!=gui->summary.slot_completed ) ) { + gui->summary.slot_completed = _slot; + fd_guih_printf_completed_slot( gui ); + fd_http_server_ws_broadcast( gui->http ); + + /* Also update slot_turbine which could be larger than the max + turbine slot if we are leader */ + if( FD_UNLIKELY( gui->summary.slots_max_turbine[ 0 ].slot!=ULONG_MAX && gui->summary.slot_completed!=ULONG_MAX && gui->summary.slot_completed>gui->summary.slots_max_turbine[ 0 ].slot ) ) { + fd_guih_try_insert_ephemeral_slot( gui->summary.slots_max_turbine, FD_GUIH_TURBINE_SLOT_HISTORY_SZ, gui->summary.slot_completed, now ); + } + + int slot_turbine_hist_full = gui->summary.slots_max_turbine[ FD_GUIH_TURBINE_SLOT_HISTORY_SZ-1UL ].slot!=ULONG_MAX; + if( FD_UNLIKELY( gui->summary.slot_caught_up==ULONG_MAX && slot_turbine_hist_full && gui->summary.slots_max_turbine[ 0 ].slot < (gui->summary.slot_completed + 3UL) ) ) { + gui->summary.slot_caught_up = gui->summary.slot_completed + 4UL; + + fd_guih_printf_slot_caught_up( gui ); + fd_http_server_ws_broadcast( gui->http ); + } + } + + for( ulong i=0UL; i<2UL; i++ ) { + if( FD_LIKELY( republish_skip_rate[ i ] ) ) { + fd_guih_printf_skip_rate( gui, i ); + fd_http_server_ws_broadcast( gui->http ); + } + } +} + +static void +fd_guih_handle_completed_slot( fd_guih_t * gui, + uchar const * msg, + long now ) { + + /* This is the slot used by frontend clients as the "startup slot". In + certain boot conditions, we don't receive this slot from Agave, so + we include a bit of a hacky assignment here to make sure it is + always present. */ + if( FD_UNLIKELY( gui->summary.startup_progress.startup_ledger_max_slot==ULONG_MAX ) ) { + gui->summary.startup_progress.startup_ledger_max_slot = FD_LOAD( ulong, msg ); + } + + ulong _slot = FD_LOAD( ulong, msg ); + uint total_txn_count = (uint)FD_LOAD( ulong, msg + 1UL*8UL ); + uint nonvote_txn_count = (uint)FD_LOAD( ulong, msg + 2UL*8UL ); + uint failed_txn_count = (uint)FD_LOAD( ulong, msg + 3UL*8UL ); + uint nonvote_failed_txn_count = (uint)FD_LOAD( ulong, msg + 4UL*8UL ); + uint compute_units = (uint)FD_LOAD( ulong, msg + 5UL*8UL ); + ulong transaction_fee = FD_LOAD( ulong, msg + 6UL*8UL ); + ulong priority_fee = FD_LOAD( ulong, msg + 7UL*8UL ); + ulong tips = FD_LOAD( ulong, msg + 8UL*8UL ); + ulong _parent_slot = FD_LOAD( ulong, msg + 9UL*8UL ); + ulong max_compute_units = FD_LOAD( ulong, msg + 10UL*8UL ); + + fd_guih_slot_t * slot = fd_guih_get_slot( gui, _slot ); + if( FD_UNLIKELY( !slot ) ) slot = fd_guih_clear_slot( gui, _slot, _parent_slot ); + + slot->completed_time = now; + slot->parent_slot = _parent_slot; + slot->max_compute_units = (uint)max_compute_units; + if( FD_LIKELY( slot->levelsummary.slot_optimistically_confirmed!=ULONG_MAX && _slotsummary.slot_optimistically_confirmed ) ) { + /* Cluster might have already optimistically confirmed by the time + we finish replaying it. */ + slot->level = FD_GUIH_SLOT_LEVEL_OPTIMISTICALLY_CONFIRMED; + } else { + slot->level = FD_GUIH_SLOT_LEVEL_COMPLETED; + } + } + + slot->nonvote_success = nonvote_txn_count - nonvote_failed_txn_count; + slot->nonvote_failed = nonvote_failed_txn_count; + slot->vote_failed = failed_txn_count - nonvote_failed_txn_count; + slot->vote_success = total_txn_count - nonvote_txn_count - slot->vote_failed; + + slot->transaction_fee = transaction_fee; + slot->priority_fee = priority_fee; + slot->tips = tips; + + /* In Frankendancer, CUs come from our own leader pipeline (the field + sent from the Agave codepath is zero'd out) */ + slot->compute_units = fd_uint_if( slot->mine, slot->compute_units, compute_units ); + + if( FD_UNLIKELY( gui->epoch.has_epoch[ 0 ] && _slot==gui->epoch.epochs[ 0 ].end_slot ) ) { + gui->epoch.epochs[ 0 ].end_time = slot->completed_time; + } else if( FD_UNLIKELY( gui->epoch.has_epoch[ 1 ] && _slot==gui->epoch.epochs[ 1 ].end_slot ) ) { + gui->epoch.epochs[ 1 ].end_time = slot->completed_time; + } + + /* Broadcast new skip rate if one of our slots got completed. */ + if( FD_LIKELY( slot->mine ) ) { + for( ulong i=0UL; i<2UL; i++ ) { + if( FD_LIKELY( _slot>=gui->epoch.epochs[ i ].start_slot && _slot<=gui->epoch.epochs[ i ].end_slot ) ) { + fd_guih_printf_skip_rate( gui, i ); + fd_http_server_ws_broadcast( gui->http ); + break; + } + } + } +} + +static void +fd_guih_handle_rooted_slot_legacy( fd_guih_t * gui, + uchar const * msg ) { + ulong _slot = FD_LOAD( ulong, msg ); + + // FD_LOG_WARNING(( "Got rooted slot %lu", _slot )); + + /* Slot 0 is always rooted. No need to iterate all the way back to + i==_slot */ + for( ulong i=0UL; islot!=parent_slot ) ) { + FD_LOG_ERR(( "_slot %lu i %lu we expect parent_slot %lu got slot->slot %lu", _slot, i, parent_slot, slot->slot )); + } + if( FD_UNLIKELY( slot->level>=FD_GUIH_SLOT_LEVEL_ROOTED ) ) break; + + slot->level = FD_GUIH_SLOT_LEVEL_ROOTED; + fd_guih_printf_slot( gui, parent_slot ); + fd_http_server_ws_broadcast( gui->http ); + } + + gui->summary.slot_rooted = _slot; + fd_guih_printf_root_slot( gui ); + fd_http_server_ws_broadcast( gui->http ); +} + +static void +fd_guih_handle_optimistically_confirmed_slot( fd_guih_t * gui, + ulong _slot ) { + /* Slot 0 is always rooted. No need to iterate all the way back to + i==_slot */ + for( ulong i=0UL; islot>parent_slot ) ) { + FD_LOG_ERR(( "_slot %lu i %lu we expect parent_slot %lu got slot->slot %lu", _slot, i, parent_slot, slot->slot )); + } else if( FD_UNLIKELY( slot->slotlevel>=FD_GUIH_SLOT_LEVEL_ROOTED ) ) break; + + if( FD_LIKELY( slot->levellevel = FD_GUIH_SLOT_LEVEL_OPTIMISTICALLY_CONFIRMED; + fd_guih_printf_slot( gui, parent_slot ); + fd_http_server_ws_broadcast( gui->http ); + } + } + + if( FD_UNLIKELY( gui->summary.slot_optimistically_confirmed!=ULONG_MAX && _slotsummary.slot_optimistically_confirmed ) ) { + /* Optimistically confirmed slot went backwards ... mark some slots as no + longer optimistically confirmed. */ + for( long i_=(long)gui->summary.slot_optimistically_confirmed; i_>=(long)_slot; i_-- ) { + ulong i = (ulong)i_; + fd_guih_slot_t * slot = fd_guih_get_slot( gui, i ); + if( FD_UNLIKELY( !slot ) ) break; + if( FD_LIKELY( slot->slot==i ) ) { + /* It's possible for the optimistically confirmed slot to skip + backwards between two slots that we haven't yet replayed. In + that case we don't need to change anything, since they will + get marked properly when they get completed. */ + slot->level = FD_GUIH_SLOT_LEVEL_COMPLETED; + fd_guih_printf_slot( gui, i ); + fd_http_server_ws_broadcast( gui->http ); + } + } + } + + gui->summary.slot_optimistically_confirmed = _slot; + fd_guih_printf_optimistically_confirmed_slot( gui ); + fd_http_server_ws_broadcast( gui->http ); +} + +static void +fd_guih_handle_balance_update( fd_guih_t * gui, + uchar const * msg ) { + switch( FD_LOAD( ulong, msg ) ) { + case 0UL: + gui->summary.identity_account_balance = FD_LOAD( ulong, msg + 8UL ); + fd_guih_printf_identity_balance( gui ); + fd_http_server_ws_broadcast( gui->http ); + break; + case 1UL: + gui->summary.vote_account_balance = FD_LOAD( ulong, msg + 8UL ); + fd_guih_printf_vote_balance( gui ); + fd_http_server_ws_broadcast( gui->http ); + break; + default: + FD_LOG_ERR(( "balance: unknown account type: %lu", FD_LOAD( ulong, msg ) )); + } +} + +static void +fd_guih_handle_start_progress( fd_guih_t * gui, + uchar const * msg ) { + uchar type = msg[ 0 ]; + + switch (type) { + case 0: + gui->summary.startup_progress.phase = FD_GUIH_START_PROGRESS_TYPE_INITIALIZING; + FD_LOG_INFO(( "progress: initializing" )); + break; + case 1: { + char const * snapshot_type; + if( FD_UNLIKELY( gui->summary.startup_progress.startup_got_full_snapshot ) ) { + gui->summary.startup_progress.phase = FD_GUIH_START_PROGRESS_TYPE_SEARCHING_FOR_INCREMENTAL_SNAPSHOT; + snapshot_type = "incremental"; + } else { + gui->summary.startup_progress.phase = FD_GUIH_START_PROGRESS_TYPE_SEARCHING_FOR_FULL_SNAPSHOT; + snapshot_type = "full"; + } + FD_LOG_INFO(( "progress: searching for %s snapshot", snapshot_type )); + break; + } + case 2: { + uchar is_full_snapshot = msg[ 1 ]; + if( FD_LIKELY( is_full_snapshot ) ) { + gui->summary.startup_progress.phase = FD_GUIH_START_PROGRESS_TYPE_DOWNLOADING_FULL_SNAPSHOT; + gui->summary.startup_progress.startup_full_snapshot_slot = FD_LOAD( ulong, msg + 2 ); + gui->summary.startup_progress.startup_full_snapshot_peer_ip_addr = FD_LOAD( uint, msg + 10 ); + gui->summary.startup_progress.startup_full_snapshot_peer_port = FD_LOAD( ushort, msg + 14 ); + gui->summary.startup_progress.startup_full_snapshot_total_bytes = FD_LOAD( ulong, msg + 16 ); + gui->summary.startup_progress.startup_full_snapshot_current_bytes = FD_LOAD( ulong, msg + 24 ); + gui->summary.startup_progress.startup_full_snapshot_elapsed_secs = FD_LOAD( double, msg + 32 ); + gui->summary.startup_progress.startup_full_snapshot_remaining_secs = FD_LOAD( double, msg + 40 ); + gui->summary.startup_progress.startup_full_snapshot_throughput = FD_LOAD( double, msg + 48 ); + FD_LOG_INFO(( "progress: downloading full snapshot: slot=%lu", gui->summary.startup_progress.startup_full_snapshot_slot )); + } else { + gui->summary.startup_progress.phase = FD_GUIH_START_PROGRESS_TYPE_DOWNLOADING_INCREMENTAL_SNAPSHOT; + gui->summary.startup_progress.startup_incremental_snapshot_slot = FD_LOAD( ulong, msg + 2 ); + gui->summary.startup_progress.startup_incremental_snapshot_peer_ip_addr = FD_LOAD( uint, msg + 10 ); + gui->summary.startup_progress.startup_incremental_snapshot_peer_port = FD_LOAD( ushort, msg + 14 ); + gui->summary.startup_progress.startup_incremental_snapshot_total_bytes = FD_LOAD( ulong, msg + 16 ); + gui->summary.startup_progress.startup_incremental_snapshot_current_bytes = FD_LOAD( ulong, msg + 24 ); + gui->summary.startup_progress.startup_incremental_snapshot_elapsed_secs = FD_LOAD( double, msg + 32 ); + gui->summary.startup_progress.startup_incremental_snapshot_remaining_secs = FD_LOAD( double, msg + 40 ); + gui->summary.startup_progress.startup_incremental_snapshot_throughput = FD_LOAD( double, msg + 48 ); + FD_LOG_INFO(( "progress: downloading incremental snapshot: slot=%lu", gui->summary.startup_progress.startup_incremental_snapshot_slot )); + } + break; + } + case 3: { + gui->summary.startup_progress.startup_got_full_snapshot = 1; + break; + } + case 4: + gui->summary.startup_progress.phase = FD_GUIH_START_PROGRESS_TYPE_CLEANING_BLOCK_STORE; + FD_LOG_INFO(( "progress: cleaning block store" )); + break; + case 5: + gui->summary.startup_progress.phase = FD_GUIH_START_PROGRESS_TYPE_CLEANING_ACCOUNTS; + FD_LOG_INFO(( "progress: cleaning accounts" )); + break; + case 6: + gui->summary.startup_progress.phase = FD_GUIH_START_PROGRESS_TYPE_LOADING_LEDGER; + FD_LOG_INFO(( "progress: loading ledger" )); + break; + case 7: { + gui->summary.startup_progress.phase = FD_GUIH_START_PROGRESS_TYPE_PROCESSING_LEDGER; + gui->summary.startup_progress.startup_ledger_slot = fd_ulong_load_8( msg + 1 ); + gui->summary.startup_progress.startup_ledger_max_slot = fd_ulong_load_8( msg + 9 ); + FD_LOG_INFO(( "progress: processing ledger: slot=%lu, max_slot=%lu", gui->summary.startup_progress.startup_ledger_slot, gui->summary.startup_progress.startup_ledger_max_slot )); + break; + } + case 8: + gui->summary.startup_progress.phase = FD_GUIH_START_PROGRESS_TYPE_STARTING_SERVICES; + FD_LOG_INFO(( "progress: starting services" )); + break; + case 9: + gui->summary.startup_progress.phase = FD_GUIH_START_PROGRESS_TYPE_HALTED; + FD_LOG_INFO(( "progress: halted" )); + break; + case 10: { + gui->summary.startup_progress.phase = FD_GUIH_START_PROGRESS_TYPE_WAITING_FOR_SUPERMAJORITY; + gui->summary.startup_progress.startup_waiting_for_supermajority_slot = fd_ulong_load_8( msg + 1 ); + gui->summary.startup_progress.startup_waiting_for_supermajority_stake_pct = fd_ulong_load_8( msg + 9 ); + FD_LOG_INFO(( "progress: waiting for supermajority: slot=%lu, gossip_stake_percent=%lu", gui->summary.startup_progress.startup_waiting_for_supermajority_slot, gui->summary.startup_progress.startup_waiting_for_supermajority_stake_pct )); + break; + } + case 11: + gui->summary.startup_progress.phase = FD_GUIH_START_PROGRESS_TYPE_RUNNING; + FD_LOG_INFO(( "progress: running" )); + break; + default: + FD_LOG_ERR(( "progress: unknown type: %u", type )); + } + + fd_guih_printf_startup_progress( gui ); + fd_http_server_ws_broadcast( gui->http ); +} + +void +fd_guih_handle_genesis_hash( fd_guih_t * gui, + fd_hash_t const * msg ) { + FD_BASE58_ENCODE_32_BYTES( msg->uc, hash_cstr ); + ulong cluster = fd_genesis_cluster_identify(hash_cstr); + char const * cluster_name = fd_genesis_cluster_name(cluster); + + if( FD_LIKELY( strcmp( gui->summary.cluster, cluster_name ) ) ) { + gui->summary.cluster = fd_genesis_cluster_name(cluster); + fd_guih_printf_cluster( gui ); + fd_http_server_ws_broadcast( gui->http ); + } +} + +void +fd_guih_handle_block_engine_update( fd_guih_t * gui, + fd_bundle_block_engine_update_t const * update ) { + gui->block_engine.has_block_engine = 1; + + /* copy strings and ensure null termination within bounds */ + FD_TEST( fd_cstr_nlen( update->name, sizeof(gui->block_engine.name ) ) < sizeof(gui->block_engine.name ) ); + FD_TEST( fd_cstr_nlen( update->url, sizeof(gui->block_engine.url ) ) < sizeof(gui->block_engine.url ) ); + FD_TEST( fd_cstr_nlen( update->ip_cstr, sizeof(gui->block_engine.ip_cstr) ) < sizeof(gui->block_engine.ip_cstr) ); + ulong name_len = fd_cstr_nlen( update->name, sizeof(gui->block_engine.name ) ); + ulong url_len = fd_cstr_nlen( update->url, sizeof(gui->block_engine.url ) ); + ulong ip_cstr_len = fd_cstr_nlen( update->ip_cstr, sizeof(gui->block_engine.ip_cstr) ); + fd_memcpy( gui->block_engine.name, update->name, name_len+1UL ); + fd_memcpy( gui->block_engine.url, update->url, url_len+1UL ); + fd_memcpy( gui->block_engine.ip_cstr, update->ip_cstr, ip_cstr_len+1UL ); + + fd_guih_printf_block_engine( gui ); + fd_http_server_ws_broadcast( gui->http ); +} + +void +fd_guih_plugin_message( fd_guih_t * gui, + ulong plugin_msg, + void const * msg, + long now ) { + + switch( plugin_msg ) { + case FD_PLUGIN_MSG_SLOT_ROOTED: + fd_guih_handle_rooted_slot_legacy( gui, msg ); + break; + case FD_PLUGIN_MSG_SLOT_OPTIMISTICALLY_CONFIRMED: + fd_guih_handle_optimistically_confirmed_slot( gui, FD_LOAD( ulong, msg ) ); + break; + case FD_PLUGIN_MSG_SLOT_COMPLETED: { + fd_guih_handle_completed_slot( gui, msg, now ); + break; + } + case FD_PLUGIN_MSG_LEADER_SCHEDULE: { + FD_STATIC_ASSERT( sizeof(fd_stake_weight_msg_t)==6*sizeof(ulong), "new fields breaks things" ); + fd_guih_handle_leader_schedule( gui, (fd_stake_weight_msg_t *)msg, now ); + break; + } + case FD_PLUGIN_MSG_SLOT_START: { + ulong slot = FD_LOAD( ulong, msg ); + ulong parent_slot = FD_LOAD( ulong, (uchar const *)msg + 8UL ); + fd_guih_handle_slot_start( gui, slot, parent_slot, now ); + break; + } + case FD_PLUGIN_MSG_SLOT_END: { + ulong slot = FD_LOAD( ulong, msg ); + ulong cus_used = FD_LOAD( ulong, (uchar const *)msg + 8UL ); + fd_guih_handle_slot_end( gui, slot, cus_used, now ); + break; + } + case FD_PLUGIN_MSG_GOSSIP_UPDATE: { + fd_guih_handle_gossip_update( gui, msg ); + break; + } + case FD_PLUGIN_MSG_VOTE_ACCOUNT_UPDATE: { + fd_guih_handle_vote_account_update( gui, msg ); + break; + } + case FD_PLUGIN_MSG_VALIDATOR_INFO: { + fd_guih_handle_validator_info_update( gui, msg ); + break; + } + case FD_PLUGIN_MSG_SLOT_RESET: { + fd_guih_handle_reset_slot_legacy( gui, msg, now ); + break; + } + case FD_PLUGIN_MSG_BALANCE: { + fd_guih_handle_balance_update( gui, msg ); + break; + } + case FD_PLUGIN_MSG_START_PROGRESS: { + fd_guih_handle_start_progress( gui, msg ); + break; + } + case FD_PLUGIN_MSG_GENESIS_HASH_KNOWN: { + fd_guih_handle_genesis_hash( gui, msg ); + break; + } + default: + FD_LOG_ERR(( "Unhandled plugin msg: 0x%lx", plugin_msg )); + break; + } +} + +void +fd_guih_became_leader( fd_guih_t * gui, + ulong _slot, + long start_time_nanos, + long end_time_nanos, + ulong max_compute_units, + ulong max_microblocks ) { + fd_guih_slot_t * slot = fd_guih_get_slot( gui, _slot ); + if( FD_UNLIKELY( !slot ) ) slot = fd_guih_clear_slot( gui, _slot, ULONG_MAX ); + fd_guih_leader_slot_t * lslot = fd_guih_get_leader_slot( gui, _slot ); + if( FD_UNLIKELY( !lslot ) ) return; + + slot->max_compute_units = (uint)max_compute_units; + lslot->leader_start_time = fd_long_if( lslot->leader_start_time==LONG_MAX, start_time_nanos, lslot->leader_start_time ); + lslot->leader_end_time = end_time_nanos; + lslot->max_microblocks = max_microblocks; + if( FD_LIKELY( lslot->txs.microblocks_upper_bound==UINT_MAX ) ) lslot->txs.microblocks_upper_bound = (uint)max_microblocks; +} + +void +fd_guih_unbecame_leader( fd_guih_t * gui, + ulong _slot, + fd_done_packing_t const * done_packing, + long now FD_PARAM_UNUSED ) { + fd_guih_slot_t * slot = fd_guih_get_slot( gui, _slot ); + if( FD_UNLIKELY( !slot ) ) slot = fd_guih_clear_slot( gui, _slot, ULONG_MAX ); + fd_guih_leader_slot_t * lslot = fd_guih_get_leader_slot( gui, _slot ); + if( FD_LIKELY( !lslot ) ) return; + lslot->txs.microblocks_upper_bound = (uint)done_packing->microblocks_in_slot; + fd_memcpy( lslot->scheduler_stats, done_packing, sizeof(fd_done_packing_t) ); + + lslot->unbecame_leader = 1; +} + +void +fd_guih_microblock_execution_begin( fd_guih_t * gui, + long tspub_ns, + ulong _slot, + fd_txn_e_t * txns, + ulong txn_cnt, + uint microblock_idx, + ulong pack_txn_idx ) { + fd_guih_slot_t * slot = fd_guih_get_slot( gui, _slot ); + if( FD_UNLIKELY( !slot ) ) slot = fd_guih_clear_slot( gui, _slot, ULONG_MAX ); + + fd_guih_leader_slot_t * lslot = fd_guih_get_leader_slot( gui, _slot ); + if( FD_UNLIKELY( !lslot ) ) return; + + lslot->leader_start_time = fd_long_if( lslot->leader_start_time==LONG_MAX, tspub_ns, lslot->leader_start_time ); + + if( FD_UNLIKELY( lslot->txs.start_offset==ULONG_MAX ) ) lslot->txs.start_offset = pack_txn_idx; + else lslot->txs.start_offset = fd_ulong_min( lslot->txs.start_offset, pack_txn_idx ); + + gui->pack_txn_idx = fd_ulong_max( gui->pack_txn_idx, pack_txn_idx+txn_cnt-1UL ); + + for( ulong i=0UL; isignature_cnt; + ulong priority_rewards = ULONG_MAX; + ulong requested_execution_cus = ULONG_MAX; + ulong precompile_sigs = ULONG_MAX; + ulong requested_loaded_accounts_data_cost = ULONG_MAX; + ulong allocated_data = ULONG_MAX; + uint _flags; + ulong cost_estimate = fd_pack_compute_cost( txn, txn_payload->payload, &_flags, &requested_execution_cus, &priority_rewards, &precompile_sigs, &requested_loaded_accounts_data_cost, &allocated_data ); + sig_rewards += FD_PACK_FEE_PER_SIGNATURE * precompile_sigs; + sig_rewards = sig_rewards * FD_PACK_TXN_FEE_BURN_PCT / 100UL; + + fd_guih_txn_t * txn_entry = gui->txs[ (pack_txn_idx + i)%FD_GUIH_TXN_HISTORY_SZ ]; + + /* If execution_end already ran for this txn, the arrival timestamp + it stamped will match. Preserve all existing flags. Otherwise + the entry is stale from a ring buffer wrap-around, so clear all + flags. */ + if( FD_LIKELY( txn_entry->timestamp_arrival_nanos!=txn_payload->scheduler_arrival_time_nanos ) ) txn_entry->flags = (uchar)0; + + fd_memcpy( txn_entry->signature, txn_payload->payload + txn->signature_off, FD_SHA512_HASH_SZ ); + txn_entry->timestamp_arrival_nanos = txn_payload->scheduler_arrival_time_nanos; + txn_entry->compute_units_requested = cost_estimate & 0x1FFFFFU; + txn_entry->priority_fee = priority_rewards; + txn_entry->transaction_fee = sig_rewards; + txn_entry->microblock_start_ns_dt = (float)(tspub_ns - lslot->leader_start_time); + txn_entry->source_ipv4 = txn_payload->source_ipv4; + txn_entry->source_tpu = txn_payload->source_tpu; + txn_entry->microblock_idx = microblock_idx; + txn_entry->flags |= (uchar)FD_GUIH_TXN_FLAGS_STARTED; + txn_entry->flags |= (uchar)fd_uint_if( !!(txn_payload->flags & FD_TXN_P_FLAGS_IS_SIMPLE_VOTE), FD_GUIH_TXN_FLAGS_IS_SIMPLE_VOTE, 0U ); + txn_entry->flags |= (uchar)fd_uint_if( (txn_payload->flags & FD_TXN_P_FLAGS_BUNDLE) || (txn_payload->flags & FD_TXN_P_FLAGS_INITIALIZER_BUNDLE), FD_GUIH_TXN_FLAGS_FROM_BUNDLE, 0U ); + } + + /* At the moment, bank publishes at most 1 transaction per microblock, + even if it received microblocks with multiple transactions + (i.e. a bundle). This means that we need to calculate microblock + count here based on the transaction count. */ + lslot->txs.begin_microblocks += (uint)txn_cnt; +} + +void +fd_guih_microblock_execution_end( fd_guih_t * gui, + long tspub_ns, + ulong bank_idx, + ulong _slot, + ulong txn_cnt, + fd_txn_p_t * txns, + ulong pack_txn_idx, + fd_txn_ns_dt_t txn_ns_dt, + ulong tips ) { + if( FD_UNLIKELY( 1UL!=txn_cnt ) ) FD_LOG_ERR(( "gui expects 1 txn per microblock from bank, found %lu", txn_cnt )); + + fd_guih_slot_t * slot = fd_guih_get_slot( gui, _slot ); + if( FD_UNLIKELY( !slot ) ) slot = fd_guih_clear_slot( gui, _slot, ULONG_MAX ); + + fd_guih_leader_slot_t * lslot = fd_guih_get_leader_slot( gui, _slot ); + if( FD_UNLIKELY( !lslot ) ) return; + + lslot->leader_start_time = fd_long_if( lslot->leader_start_time==LONG_MAX, tspub_ns, lslot->leader_start_time ); + + if( FD_UNLIKELY( lslot->txs.end_offset==ULONG_MAX ) ) lslot->txs.end_offset = pack_txn_idx + txn_cnt; + else lslot->txs.end_offset = fd_ulong_max( lslot->txs.end_offset, pack_txn_idx+txn_cnt ); + + gui->pack_txn_idx = fd_ulong_max( gui->pack_txn_idx, pack_txn_idx+txn_cnt-1UL ); + + for( ulong i=0UL; itxs[ (pack_txn_idx + i)%FD_GUIH_TXN_HISTORY_SZ ]; + + /* If execution_begin already ran for this txn, the arrival + timestamp it stamped will match. Preserve all existing flags. + Otherwise the entry is stale from a ring buffer wrap-around, so + clear all flags. */ + if( FD_UNLIKELY( txn_entry->timestamp_arrival_nanos!=txn_p->scheduler_arrival_time_nanos ) ) txn_entry->flags = (uchar)0; + + txn_entry->timestamp_arrival_nanos = txn_p->scheduler_arrival_time_nanos; + txn_entry->bank_idx = bank_idx & 0x3FU; + txn_entry->compute_units_consumed = txn_p->execle_cu.actual_consumed_cus & 0x1FFFFFU; + txn_entry->error_code = (txn_p->flags >> 24) & 0x3FU; + txn_entry->microblock_end_ns_dt = (float)(tspub_ns - lslot->leader_start_time); + txn_entry->txn_ns_dt = txn_ns_dt; + txn_entry->tips = tips; + txn_entry->flags |= (uchar)FD_GUIH_TXN_FLAGS_ENDED; + txn_entry->flags &= (uchar)(~(uchar)FD_GUIH_TXN_FLAGS_LANDED_IN_BLOCK); + txn_entry->flags |= (uchar)fd_uint_if( !!(txn_p->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS), FD_GUIH_TXN_FLAGS_LANDED_IN_BLOCK, 0U ); + } + + lslot->txs.end_microblocks = lslot->txs.end_microblocks + (uint)txn_cnt; +} diff --git a/src/discoh/guih/fd_guih.h b/src/discoh/guih/fd_guih.h new file mode 100644 index 00000000000..3e0a0ad8168 --- /dev/null +++ b/src/discoh/guih/fd_guih.h @@ -0,0 +1,1080 @@ +#ifndef HEADER_fd_src_discoh_guih_fd_guih_h +#define HEADER_fd_src_discoh_guih_fd_guih_h + +#include "../../disco/topo/fd_topo.h" + +#include "../../ballet/txn/fd_txn.h" +#include "../../disco/tiles.h" +#include "../../disco/fd_txn_p.h" +#include "../../disco/bundle/fd_bundle_tile.h" +#include "../../discof/restore/fd_snapct_tile.h" +#include "../../discof/restore/utils/fd_ssmsg.h" +#include "../../discof/tower/fd_tower_tile.h" +#include "../../discof/replay/fd_replay_tile.h" +#include "../../choreo/tower/fd_tower.h" +#include "../../choreo/tower/fd_tower_serdes.h" +#include "../../flamenco/leaders/fd_leaders.h" +#include "../../util/fd_util_base.h" +#include "../../util/hist/fd_histf.h" +#include "../../util/math/fd_stat.h" /* fd_sort_up_ulong_* */ +#include "../../waltz/http/fd_http_server.h" + +#include /* exp */ + +/* frankendancer only */ +#define FD_GUIH_MAX_PEER_CNT (108000UL) + +/* frankendancer only */ +#define FD_GUIH_START_PROGRESS_TYPE_INITIALIZING ( 0) +#define FD_GUIH_START_PROGRESS_TYPE_SEARCHING_FOR_FULL_SNAPSHOT ( 1) +#define FD_GUIH_START_PROGRESS_TYPE_DOWNLOADING_FULL_SNAPSHOT ( 2) +#define FD_GUIH_START_PROGRESS_TYPE_SEARCHING_FOR_INCREMENTAL_SNAPSHOT ( 3) +#define FD_GUIH_START_PROGRESS_TYPE_DOWNLOADING_INCREMENTAL_SNAPSHOT ( 4) +#define FD_GUIH_START_PROGRESS_TYPE_CLEANING_BLOCK_STORE ( 5) +#define FD_GUIH_START_PROGRESS_TYPE_CLEANING_ACCOUNTS ( 6) +#define FD_GUIH_START_PROGRESS_TYPE_LOADING_LEDGER ( 7) +#define FD_GUIH_START_PROGRESS_TYPE_PROCESSING_LEDGER ( 8) +#define FD_GUIH_START_PROGRESS_TYPE_STARTING_SERVICES ( 9) +#define FD_GUIH_START_PROGRESS_TYPE_HALTED (10) +#define FD_GUIH_START_PROGRESS_TYPE_WAITING_FOR_SUPERMAJORITY (11) +#define FD_GUIH_START_PROGRESS_TYPE_RUNNING (12) + +#define FD_GUIH_NETWORK_EMA_HALF_LIFE_NS (1000000000L) /* 1 second in nanoseconds */ +#define FD_GUIH_NET_PROTO_CNT (6UL) /* turbine, gossip, tpu, repair, rserve, metric */ +#define FD_GUIH_NET_RATE_MAX_WINDOW_NS (300L*1000L*1000L*1000L) /* 5 minutes in nanoseconds */ + +/* fd_guih_ema computes an adaptive exponential moving average tick. + Given the previous EMA value, a new sample, timestamps, and a + half-life (all in nanoseconds), returns the updated EMA. On the + first call (last_update_nanos==0) the new sample is returned as-is + to seed the series. */ + +static inline double +fd_guih_ema( long last_update_nanos, + long now_nanos, + double new_sample, + double prev_ema, + long half_life_ns ) { + if( FD_UNLIKELY( last_update_nanos==0L ) ) return new_sample; + + long dt = now_nanos - last_update_nanos; + if( FD_UNLIKELY( dt<=0L ) ) return prev_ema; + + double alpha = 1.0 - exp( -0.69314718055994 * (double)dt / (double)half_life_ns ); + return alpha * new_sample + (1.0 - alpha) * prev_ema; +} + +/* Monotonic deque element for sliding-window max tracking of + EMA-smoothed network throughput. */ +struct fd_guih_rate_entry { + long ts_nanos; + double value; +}; +typedef struct fd_guih_rate_entry fd_guih_rate_entry_t; + +/* At 100 ms sampling, 5 minutes = 3000 samples. */ +#define DEQUE_NAME fd_guih_rate_deque +#define DEQUE_T fd_guih_rate_entry_t +#define DEQUE_MAX 4096UL +#include "../../util/tmpl/fd_deque.c" + +/* frankendancer only */ +struct fd_guih_gossip_peer { + fd_pubkey_t pubkey[ 1 ]; + ulong wallclock; + ushort shred_version; + + int has_version; + struct { + ushort major; + ushort minor; + ushort patch; + + int has_commit; + uint commit; + + uint feature_set; + } version; + + struct { + uint ipv4; + ushort port; + } sockets[ 12 ]; +}; + +/* frankendancer only */ +struct fd_guih_vote_account { + fd_pubkey_t pubkey[ 1 ]; + fd_pubkey_t vote_account[ 1 ]; + + ulong activated_stake; + ulong last_vote; + ulong root_slot; + ulong epoch_credits; + uchar commission; + int delinquent; +}; + +/* frankendancer only */ +struct fd_guih_validator_info { + fd_pubkey_t pubkey[ 1 ]; + + char name[ 64 ]; + char website[ 128 ]; + char details[ 256 ]; + char icon_uri[ 128 ]; +}; + +/* frankendancer only */ +#define FD_GUIH_SLOT_LEADER_UNSTARTED (0UL) +#define FD_GUIH_SLOT_LEADER_STARTED (1UL) +#define FD_GUIH_SLOT_LEADER_ENDED (2UL) + +#define FD_GUIH_SLOTS_CNT (864000UL) /* 2x 432000 */ +#define FD_GUIH_LEADER_CNT (4096UL) + +#define FD_GUIH_TPS_HISTORY_WINDOW_DURATION_SECONDS (10L) +#define FD_GUIH_TPS_HISTORY_SAMPLE_CNT (150UL) + +#define FD_GUIH_PROGCACHE_HISTORY_CNT (600UL) /* 60s / 100ms */ + +#define FD_GUIH_TILE_TIMER_SNAP_CNT (512UL) +#define FD_GUIH_TILE_TIMER_LEADER_DOWNSAMPLE_CNT (50UL) /* 500ms / 10ms */ +#define FD_GUIH_SCHEDULER_COUNT_SNAP_CNT (512UL) +#define FD_GUIH_SCHEDULER_COUNT_LEADER_DOWNSAMPLE_CNT (50UL) /* 500ms / 10ms */ + +#define FD_GUIH_VOTE_STATE_NON_VOTING (0) +#define FD_GUIH_VOTE_STATE_VOTING (1) +#define FD_GUIH_VOTE_STATE_DELINQUENT (2) + +#define FD_GUIH_BOOT_PROGRESS_TYPE_JOINING_GOSSIP (1) +#define FD_GUIH_BOOT_PROGRESS_TYPE_LOADING_FULL_SNAPSHOT (2) +#define FD_GUIH_BOOT_PROGRESS_TYPE_LOADING_INCREMENTAL_SNAPSHOT (3) +#define FD_GUIH_BOOT_PROGRESS_TYPE_WAITING_FOR_SUPERMAJORITY (4) +#define FD_GUIH_BOOT_PROGRESS_TYPE_CATCHING_UP (5) +#define FD_GUIH_BOOT_PROGRESS_TYPE_RUNNING (6) + +#define FD_GUIH_BOOT_PROGRESS_FULL_SNAPSHOT_IDX (0UL) +#define FD_GUIH_BOOT_PROGRESS_INCREMENTAL_SNAPSHOT_IDX (1UL) +#define FD_GUIH_BOOT_PROGRESS_SNAPSHOT_CNT (2UL) + +#define FD_GUIH_SLOT_LEVEL_INCOMPLETE (0) +#define FD_GUIH_SLOT_LEVEL_COMPLETED (1) +#define FD_GUIH_SLOT_LEVEL_OPTIMISTICALLY_CONFIRMED (2) +#define FD_GUIH_SLOT_LEVEL_ROOTED (3) +#define FD_GUIH_SLOT_LEVEL_FINALIZED (4) + +/* Ideally, we would store an entire epoch's worth of transactions. If + we assume any given validator will have at most 5% stake, and average + transactions per slot is around 10_000, then an epoch will have about + 432_000*10_000*0.05 transactions (~2^28). + + Unfortunately, the transaction struct is 100+ bytes. If we sized the + array to 2^28 entries then the memory required would be ~26GB. In + order to keep memory usage to a more reasonable level, we'll + arbitrarily use a fourth of that size. */ +#define FD_GUIH_TXN_HISTORY_SZ (1UL<<26UL) + +#define FD_GUIH_TXN_FLAGS_STARTED ( 1U) +#define FD_GUIH_TXN_FLAGS_ENDED ( 2U) +#define FD_GUIH_TXN_FLAGS_IS_SIMPLE_VOTE ( 4U) +#define FD_GUIH_TXN_FLAGS_FROM_BUNDLE ( 8U) +#define FD_GUIH_TXN_FLAGS_LANDED_IN_BLOCK (16U) + +#define FD_GUIH_TURBINE_RECV_TIMESTAMPS (750UL) + +/* One use case for tracking ingress shred slot is to estimate when we + have caught up to the tip of the blockchain. A naive approach would + be to track the maximum seen slot. + + maximum_seen_slot = fd_ulong_max( maximum_seen_slot, new_slot_from_shred_tile ); + + Unfortunately, this doesn't always work because a validator can send + a slot number that is arbitrarily large on a false fork. Also, these + shreds can be for a repair response, which can be arbitrarily small. + + The prospects here seem bleak, but not all hope is lost! We know + that for a sufficiently large historical time window there is a high + probability that at least some of the slots we observe will be valid + recent turbine slots. For a sufficiently small window there is a high + probability that all the observed shred slots are non-malicious (i.e. + not arbitrarily large). + + In practice shred slots are almost always non-malicious. We can keep + a history of the 12 largest slots we've seen in the past 4.8 seconds. + We'll consider the "tip" of the blockchain to be the maximum slot in + our history. This way, if we receive maliciously large slot number, + it will be evicted after 4.8 seconds. If we receive a small slot from + a repair response it will be ignored because we've seen other larger + slots, meaning that our estimate is eventually consistent. For + monitoring purposes this is sufficient. + + The worst case scenario is that this validator receives an incorrect + shred slot slot more than once every 3 leader rotations. Before the + previous incorrect slot is evicted from the history, a new one takes + it's place and we wouldn't never get a correct estimate of the tip of + the chain. We also would indefinitely think that that we haven't + caught up. This would require the chain having perpetually malicious + leaders with adjacent rotations. If this happens, Solana has bigger + problems. */ +#define FD_GUIH_TURBINE_SLOT_HISTORY_SZ ( 12UL ) + +/* Like the turbine slot, the latest repair slot can also swing to + arbitrarily large values due to a malicious fork switch. The gui + provides the same guarantees for freshness and accuracy. This + history is somewhat larger to handle the increased repair bandwidth + during catch up. */ +#define FD_GUIH_REPAIR_SLOT_HISTORY_SZ ( 512UL ) + +/* FD_GUIH_*_CATCH_UP_HISTORY_SZ is the capacity of the record of slots + seen from repair or turbine during the catch up stage at startup. + These buffers are run-length encoded, so they will typically be very + small. The worst-case scenario is unbounded, so bounds here are + determined heuristically. */ +#define FD_GUIH_REPAIR_CATCH_UP_HISTORY_SZ (4096UL) +#define FD_GUIH_TURBINE_CATCH_UP_HISTORY_SZ (4096UL) + +/* FD_GUIH_SHREDS_STAGING_SZ is number of shred events we'll retain in + in a small staging area. The lifecycle of a shred looks something + like the following + + states] turbine -> repairing (optional) -> processing -> waiting_for_siblings -> slot_complete + events] ^-repair_requested ^-shred_received/shred_repaired ^-shred_replayed ^-max(shred_replayed) + + We're interested in recording timestamps for state transitions (which + these docs call "shred events"). Unfortunately, due to forking, + duplicate packets, etc we can't make any guarantees about ordering or + uniqueness for these event timestamps. Instead the GUI just records + timestamps for all events as they occur and put them into an array. + Newly recorded event timestamps are also broadcast live to WebSocket + consumers. + + The amount of shred events for non-finalized blocks can't really be + bounded, so we use generous estimates here to set a memory bound. */ +#define FD_GUIH_MAX_SHREDS_PER_BLOCK (32UL*1024UL) +#define FD_GUIH_MAX_EVENTS_PER_SHRED ( 32UL) +#define FD_GUIH_SHREDS_STAGING_SZ (32UL * FD_GUIH_MAX_SHREDS_PER_BLOCK * FD_GUIH_MAX_EVENTS_PER_SHRED) + +/* FD_GUIH_SHREDS_HISTORY_SZ the number of shred events in our historical + shred store. Shred events here belong to finalized slots which means + we won't record any additional shred updates for these slots. + + All shred events for a given slot will be places in a contiguous + chunk in the array, and the bounding indicies are stored in the + fd_guih_slot_t slot history. Within a slot chunk, shred events are + ordered in the ordered they were recorded by the gui tile. + + Ideally, we have enough space to store an epoch's worth of events, + but we are limited by realistic memory consumption. Instead, we pick + bound heuristically. */ +#define FD_GUIH_SHREDS_HISTORY_SZ (432000UL*2000UL*4UL / 12UL) + +#define FD_GUIH_SLOT_SHRED_REPAIR_REQUEST (0UL) +#define FD_GUIH_SLOT_SHRED_SHRED_RECEIVED_TURBINE (1UL) +#define FD_GUIH_SLOT_SHRED_SHRED_RECEIVED_REPAIR (2UL) +#define FD_GUIH_SLOT_SHRED_SHRED_REPLAY_EXEC_DONE (3UL) +#define FD_GUIH_SLOT_SHRED_SHRED_SLOT_COMPLETE (4UL) +/* #define FD_GUIH_SLOT_SHRED_SHRED_REPLAY_EXEC_START (5UL) // UNUSED */ +#define FD_GUIH_SLOT_SHRED_SHRED_PUBLISHED (6UL) + +#define FD_GUIH_SLOT_RANKINGS_SZ (100UL) +#define FD_GUIH_SLOT_RANKING_TYPE_ASC (0) +#define FD_GUIH_SLOT_RANKING_TYPE_DESC (1) + +struct fd_guih_tile_timers { + ulong timers[ FD_METRICS_ENUM_TILE_REGIME_CNT ]; + ulong sched_timers[ FD_METRICS_ENUM_CPU_REGIME_CNT ]; + + int in_backp; + ushort last_cpu; + uchar status; + ulong heartbeat; + ulong backp_cnt; + ulong nvcsw; + ulong nivcsw; + ulong minflt; + ulong majflt; + ulong interrupts; +}; + +typedef struct fd_guih_tile_timers fd_guih_tile_timers_t; + +struct fd_guih_scheduler_counts { + long sample_time_ns; + ulong regular; + ulong votes; + ulong conflicting; + ulong bundles; +}; + +typedef struct fd_guih_scheduler_counts fd_guih_scheduler_counts_t; + +struct fd_guih_network_stats { + /* total bytes accumulated */ + struct { + ulong turbine; + ulong gossip; + ulong tpu; + ulong repair; + ulong rserve; + ulong metric; + } in, out; +}; + +typedef struct fd_guih_network_stats fd_guih_network_stats_t; + +struct fd_guih_leader_slot { + ulong slot; + fd_hash_t block_hash; + long leader_start_time; /* UNIX timestamp of when we first became leader in this slot */ + long leader_end_time; /* UNIX timestamp of when we stopped being leader in this slot */ + + /* Stem tiles can exist in one of 8 distinct activity regimes at any + given moment. One of these regimes, caughtup_postfrag, is the + only regime where a tile is in a spin loop without doing any + useful work. This info is useful from a monitoring perspective + because it lets us estimate CPU utilization on a pinned core. + + Every 10ms, the gui tile samples the amount of time tiles spent + in each regime in the past 10ms. This sample is used to infer + the CPU utilization in the past 10ms. This utilization is + streamed live to WebSocket clients. + + In additional to live utilization, we are interested in recording + utilization during one of this validator's leader slots. The gui + tile is continuously recording samples to storage with capacity + FD_GUIH_TILE_TIMER_SNAP_CNT. The sample index is recorded at the + start and end of a leader slot, and the number of samples is + downsampled to be at most FD_GUIH_TILE_TIMER_LEADER_DOWNSAMPLE_CNT + samples (e.g. if there was an unusually long leader slot) and + inserted into historical storage with capacity FD_GUIH_LEADER_CNT. + + The tile_timers pointer references trailing storage allocated + in fd_guih_footprint, with gui->tile_cnt elements per sample. + Sized as tile_timers[ FD_GUIH_TILE_TIMER_LEADER_DOWNSAMPLE_CNT ][ tile_cnt ]. */ + fd_guih_tile_timers_t * tile_timers; + ulong tile_timers_sample_cnt; + + fd_guih_scheduler_counts_t scheduler_counts[ FD_GUIH_SCHEDULER_COUNT_LEADER_DOWNSAMPLE_CNT ][ 1 ]; + ulong scheduler_counts_sample_cnt; + + struct { + uint microblocks_upper_bound; /* An upper bound on the number of microblocks in the slot. If the number of + microblocks observed is equal to this, the slot can be considered over. + Generally, the bound is set to a "final" state by a done packing message, + which sets it to the exact number of microblocks, but sometimes this message + is not sent, if the max upper bound published by poh was already correct. */ + uint begin_microblocks; /* The number of microblocks we have seen be started (sent) from pack to banks. */ + uint end_microblocks; /* The number of microblocks we have seen be ended (sent) from banks to poh. The + slot is only considered over if the begin and end microblocks seen are both equal + to the microblock upper bound. */ + + ulong start_offset; /* The smallest pack transaction index for this slot. The first transaction for this slot will + be written to gui->txs[ start_offset%FD_GUIH_TXN_HISTORY_SZ ]. */ + ulong end_offset; /* The largest pack transaction index for this slot, plus 1. The last transaction for this + slot will be written to gui->txs[ (end_offset-1)%FD_GUIH_TXN_HISTORY_SZ ]. */ + } txs; + + fd_done_packing_t scheduler_stats[ 1 ]; + + /* The initial, maximum number of microblocks that could be packed + into this slot. */ + ulong max_microblocks; + + uchar unbecame_leader: 1; +}; + +typedef struct fd_guih_leader_slot fd_guih_leader_slot_t; + +struct fd_guih_turbine_slot { + ulong slot; + long timestamp; +}; + +typedef struct fd_guih_turbine_slot fd_guih_turbine_slot_t; + +struct fd_guih_slot_staged_shred_event { + long timestamp; + ulong slot; + ushort shred_idx; + uchar event; +}; + +typedef struct fd_guih_slot_staged_shred_event fd_guih_slot_staged_shred_event_t; + +struct __attribute__((packed)) fd_guih_slot_history_shred_event { + long timestamp; + ushort shred_idx; + uchar event; +}; + +typedef struct fd_guih_slot_history_shred_event fd_guih_slot_history_shred_event_t; + +struct fd_guih_slot_ranking { + ulong slot; + ulong value; + int type; +}; +typedef struct fd_guih_slot_ranking fd_guih_slot_ranking_t; + +struct fd_guih_slot_rankings { + fd_guih_slot_ranking_t largest_tips [ FD_GUIH_SLOT_RANKINGS_SZ+1UL ]; + fd_guih_slot_ranking_t largest_fees [ FD_GUIH_SLOT_RANKINGS_SZ+1UL ]; + fd_guih_slot_ranking_t largest_rewards [ FD_GUIH_SLOT_RANKINGS_SZ+1UL ]; + fd_guih_slot_ranking_t largest_duration [ FD_GUIH_SLOT_RANKINGS_SZ+1UL ]; + fd_guih_slot_ranking_t largest_compute_units [ FD_GUIH_SLOT_RANKINGS_SZ+1UL ]; + fd_guih_slot_ranking_t largest_skipped [ FD_GUIH_SLOT_RANKINGS_SZ+1UL ]; + fd_guih_slot_ranking_t largest_rewards_per_cu [ FD_GUIH_SLOT_RANKINGS_SZ+1UL ]; + fd_guih_slot_ranking_t smallest_tips [ FD_GUIH_SLOT_RANKINGS_SZ+1UL ]; + fd_guih_slot_ranking_t smallest_fees [ FD_GUIH_SLOT_RANKINGS_SZ+1UL ]; + fd_guih_slot_ranking_t smallest_rewards [ FD_GUIH_SLOT_RANKINGS_SZ+1UL ]; + fd_guih_slot_ranking_t smallest_rewards_per_cu[ FD_GUIH_SLOT_RANKINGS_SZ+1UL ]; + fd_guih_slot_ranking_t smallest_duration [ FD_GUIH_SLOT_RANKINGS_SZ+1UL ]; + fd_guih_slot_ranking_t smallest_compute_units [ FD_GUIH_SLOT_RANKINGS_SZ+1UL ]; + fd_guih_slot_ranking_t smallest_skipped [ FD_GUIH_SLOT_RANKINGS_SZ+1UL ]; +}; + +typedef struct fd_guih_slot_rankings fd_guih_slot_rankings_t; + +struct fd_guih_ephemeral_slot { + ulong slot; /* ULONG_MAX indicates invalid/evicted */ + long timestamp_arrival_nanos; +}; +typedef struct fd_guih_ephemeral_slot fd_guih_ephemeral_slot_t; + +struct __attribute__((packed)) fd_guih_txn { + uchar signature[ FD_TXN_SIGNATURE_SZ ]; + ulong transaction_fee; + ulong priority_fee; + ulong tips; + long timestamp_arrival_nanos; + + /* compute_units_requested has both execution and non-execution cus */ + uint compute_units_requested : 21; /* <= 1.4M */ + uint compute_units_consumed : 21; /* <= 1.4M */ + uint bank_idx : 6; /* in [0, 64) */ + uint error_code : 6; /* in [0, 64) */ + + /* relative to leader start */ + float microblock_start_ns_dt; + float microblock_end_ns_dt; + + /* relative to microblock_start */ + fd_txn_ns_dt_t txn_ns_dt; + + uchar flags; /* assigned with the FD_GUIH_TXN_FLAGS_* macros */ + uchar source_tpu; /* FD_TXN_M_TPU_SOURCE_* */ + uint source_ipv4; + uint microblock_idx; +}; + +typedef struct fd_guih_txn fd_guih_txn_t; + +struct fd_guih_txn_waterfall { + struct { + ulong quic; + ulong udp; + ulong gossip; + ulong block_engine; + ulong pack_cranked; + } in; + + struct { + ulong net_overrun; + ulong quic_overrun; + ulong quic_frag_drop; + ulong quic_abandoned; + ulong tpu_quic_invalid; + ulong tpu_udp_invalid; + ulong verify_overrun; + ulong verify_parse; + ulong verify_failed; + ulong verify_duplicate; + ulong dedup_duplicate; + ulong resolv_lut_failed; + ulong resolv_expired; + ulong resolv_ancient; + ulong resolv_no_ledger; + ulong resolv_retained; + ulong pack_invalid; + ulong pack_invalid_bundle; + ulong pack_expired; + ulong pack_already_executed; + ulong pack_retained; + ulong pack_wait_full; + ulong pack_leader_slow; + ulong bank_invalid; + ulong bank_nonce_already_advanced; + ulong bank_nonce_advance_failed; + ulong bank_nonce_wrong_blockhash; + ulong block_success; + ulong block_fail; + } out; +}; + +typedef struct fd_guih_txn_waterfall fd_guih_txn_waterfall_t; + +struct fd_guih_tile_stats { + long sample_time_nanos; + + ulong net_in_rx_bytes; /* Number of bytes received by the net or sock tile*/ + ulong quic_conn_cnt; /* Number of active QUIC connections */ + fd_histf_t bundle_rx_delay_hist; /* Histogram of bundle rx delay */ + ulong bundle_rtt_smoothed_nanos; /* RTT (nanoseconds) moving average */ + ulong verify_drop_cnt; /* Number of transactions dropped by verify tiles */ + ulong verify_total_cnt; /* Number of transactions received by verify tiles */ + ulong dedup_drop_cnt; /* Number of transactions dropped by dedup tile */ + ulong dedup_total_cnt; /* Number of transactions received by dedup tile */ + ulong pack_buffer_cnt; /* Number of buffered transactions in the pack tile */ + ulong pack_buffer_capacity; /* Total size of the pack transaction buffer */ + ulong bank_txn_exec_cnt; /* Number of transactions processed by the bank tile */ + ulong net_out_tx_bytes; /* Number of bytes sent by the net or sock tile */ +}; + +typedef struct fd_guih_tile_stats fd_guih_tile_stats_t; + +struct fd_guih_slot { + ulong slot; + ulong parent_slot; + ulong vote_slot; + ulong reset_slot; + long completed_time; + uint max_compute_units; + int mine; + int skipped; + int must_republish; + int level; + uint compute_units; + ulong transaction_fee; + ulong priority_fee; + ulong tips; + uint shred_cnt; + uchar vote_latency; + + uint vote_success; + uint vote_failed; + uint nonvote_success; + uint nonvote_failed; + + /* Some slot info is only tracked for our own leader slots. These + slots are kept in a separate buffer. */ + ulong leader_history_idx; + + fd_guih_txn_waterfall_t waterfall_begin[ 1 ]; + fd_guih_txn_waterfall_t waterfall_end[ 1 ]; + + fd_guih_tile_stats_t tile_stats_begin[ 1 ]; + fd_guih_tile_stats_t tile_stats_end[ 1 ]; + + struct { + ulong start_offset; /* gui->shreds.history[ start_offset % FD_GUIH_SHREDS_HISTORY_SZ ] is the first shred event in + contiguous chunk of events in the shred history corresponding to this slot. */ + ulong end_offset; /* One past the last shred event in the contiguous chunk of events in the shred history + corresponding to this slot. */ + } shreds; +}; + +typedef struct fd_guih_slot fd_guih_slot_t; + +struct fd_guih_boot_progress { + uchar phase; + long joining_gossip_time_nanos; + struct { + ulong slot; + uint peer_addr; + ushort peer_port; + ulong total_bytes_compressed; + long reset_time_nanos; /* UNIX nanosecond timestamp */ + long sample_time_nanos; + ulong reset_cnt; + + ulong read_bytes_compressed; + char read_path[ PATH_MAX+30UL ]; /* URL or filesystem path. 30 is fd_cstr_nlen( "https://255.255.255.255:12345/", ULONG_MAX ) */ + + ulong decompress_bytes_decompressed; + ulong decompress_bytes_compressed; + + ulong insert_bytes_decompressed; + char insert_path[ PATH_MAX ]; + ulong insert_accounts_current; + } loading_snapshot[ FD_GUIH_BOOT_PROGRESS_SNAPSHOT_CNT ]; + + ulong wfs_total_stake; + ulong wfs_connected_stake; + ulong wfs_total_peers; + ulong wfs_connected_peers; + ulong wfs_attempt; + + long catching_up_time_nanos; + ulong catching_up_first_replay_slot; +}; + +typedef struct fd_guih_boot_progress fd_guih_boot_progress_t; + +struct fd_guih { + fd_http_server_t * http; + fd_topo_t const * topo; + + ulong tile_cnt; + + long next_sample_400millis; + long next_sample_100millis; + long next_sample_50millis; + long next_sample_25millis; + long next_sample_10millis; + + ulong leader_slot; + + struct { + fd_pubkey_t identity_key[ 1 ]; + int has_vote_key; + fd_pubkey_t vote_key[ 1 ]; + char vote_key_base58[ FD_BASE58_ENCODED_32_SZ ]; + char identity_key_base58[ FD_BASE58_ENCODED_32_SZ ]; + + int is_full_client; + char const * version; + char const * cluster; + + char wfs_bank_hash[ FD_BASE58_ENCODED_32_SZ ]; + ushort expected_shred_version; + int wfs_enabled; + + ulong vote_distance; + int vote_state; + + long startup_time_nanos; + + union { + struct { /* frankendancer only */ + uchar phase; + int startup_got_full_snapshot; + + ulong startup_incremental_snapshot_slot; + uint startup_incremental_snapshot_peer_ip_addr; + ushort startup_incremental_snapshot_peer_port; + double startup_incremental_snapshot_elapsed_secs; + double startup_incremental_snapshot_remaining_secs; + double startup_incremental_snapshot_throughput; + ulong startup_incremental_snapshot_total_bytes; + ulong startup_incremental_snapshot_current_bytes; + + ulong startup_full_snapshot_slot; + uint startup_full_snapshot_peer_ip_addr; + ushort startup_full_snapshot_peer_port; + double startup_full_snapshot_elapsed_secs; + double startup_full_snapshot_remaining_secs; + double startup_full_snapshot_throughput; + ulong startup_full_snapshot_total_bytes; + ulong startup_full_snapshot_current_bytes; + + ulong startup_ledger_slot; + ulong startup_ledger_max_slot; + + ulong startup_waiting_for_supermajority_slot; + ulong startup_waiting_for_supermajority_stake_pct; + } startup_progress; + fd_guih_boot_progress_t boot_progress; + }; + + fd_guih_boot_progress_t prev_boot_progress; + + int schedule_strategy; + + ulong identity_account_balance; + ulong vote_account_balance; + ulong estimated_slot_duration_nanos; + + ulong sock_tile_cnt; + ulong net_tile_cnt; + ulong quic_tile_cnt; + ulong verify_tile_cnt; + ulong resolh_tile_cnt; + ulong resolv_tile_cnt; + ulong bank_tile_cnt; + ulong execle_tile_cnt; + ulong execrp_tile_cnt; + ulong shred_tile_cnt; + + ulong slot_rooted; + ulong slot_optimistically_confirmed; + ulong slot_completed; + ulong slot_estimated; + ulong slot_caught_up; + ulong slot_repair; + ulong slot_turbine; + ulong slot_reset; + ulong slot_storage; + ulong active_fork_cnt; + + fd_guih_ephemeral_slot_t slots_max_turbine[ FD_GUIH_TURBINE_SLOT_HISTORY_SZ+1UL ]; + fd_guih_ephemeral_slot_t slots_max_repair [ FD_GUIH_REPAIR_SLOT_HISTORY_SZ +1UL ]; + + /* catchup_* and late_votes are run-length encoded. i.e. adjacent + pairs represent contiguous runs */ + ulong catch_up_turbine[ FD_GUIH_TURBINE_CATCH_UP_HISTORY_SZ ]; + ulong catch_up_turbine_sz; + + ulong catch_up_repair[ FD_GUIH_REPAIR_CATCH_UP_HISTORY_SZ ]; + ulong catch_up_repair_sz; + + ulong late_votes[ MAX_SLOTS_PER_EPOCH ]; + ulong late_votes_sz; + + ulong estimated_tps_history_idx; + struct { + ulong vote_failed; + ulong vote_success; + ulong nonvote_success; + ulong nonvote_failed; + } estimated_tps_history[ FD_GUIH_TPS_HISTORY_SAMPLE_CNT ]; + + fd_guih_network_stats_t network_stats_current[ 1 ]; + fd_guih_network_stats_t network_stats_prev[ 1 ]; + int network_stats_has_prev; + + /* EMA-smoothed network throughput (bytes/sec) with a 1-second + half-life. */ + double ingress_ema[ FD_GUIH_NET_PROTO_CNT ]; + double egress_ema[ FD_GUIH_NET_PROTO_CNT ]; + long net_rate_prev_ts; + int net_rate_ema_ready; + fd_guih_rate_entry_t * ingress_maxq; + fd_guih_rate_entry_t * egress_maxq; + + fd_guih_txn_waterfall_t txn_waterfall_reference[ 1 ]; + fd_guih_txn_waterfall_t txn_waterfall_current[ 1 ]; + + fd_guih_tile_stats_t tile_stats_reference[ 1 ]; + fd_guih_tile_stats_t tile_stats_current[ 1 ]; + + ulong progcache_history_idx; + ulong progcache_hits_history [ FD_GUIH_PROGCACHE_HISTORY_CNT ]; + ulong progcache_lookups_history[ FD_GUIH_PROGCACHE_HISTORY_CNT ]; + ulong progcache_hits_1min; + ulong progcache_lookups_1min; + + ulong tile_timers_snap_idx; + ulong tile_timers_snap_idx_slot_start; + /* Temporary storage for samples. Will be downsampled into + leader history on slot end. Sized as + tile_timers_snap[ FD_GUIH_TILE_TIMER_SNAP_CNT ][ tile_cnt ] */ + fd_guih_tile_timers_t * tile_timers_snap; + + ulong scheduler_counts_snap_idx; + ulong scheduler_counts_snap_idx_slot_start; + /* Temporary storage for samples. Will be downsampled into leader history on slot end. */ + fd_guih_scheduler_counts_t scheduler_counts_snap[ FD_GUIH_SCHEDULER_COUNT_SNAP_CNT ][ 1 ]; + } summary; + + fd_guih_slot_t slots[ FD_GUIH_SLOTS_CNT ][ 1 ]; + + /* used for estimating slot duration */ + fd_guih_turbine_slot_t turbine_slots[ FD_GUIH_TURBINE_RECV_TIMESTAMPS ]; + + fd_guih_leader_slot_t leader_slots[ FD_GUIH_LEADER_CNT ][ 1 ]; + ulong leader_slots_cnt; + + fd_guih_txn_t txs[ FD_GUIH_TXN_HISTORY_SZ ][ 1 ]; + ulong pack_txn_idx; /* The pack index of the most recently received transaction */ + + ulong tower_cnt; + fd_vote_acc_vote_t tower[ FD_TOWER_VOTE_MAX ]; + + struct { + int has_block_engine; + char name[ 16 ]; + char url[ 256 ]; + char ip_cstr[ 40 ]; /* IPv4 or IPv6 cstr */ + int status; + } block_engine; + + struct { + int has_epoch[ 2 ]; + + struct { + ulong epoch; + long start_time; + long end_time; + + ulong my_total_slots; + ulong my_skipped_slots; + + ulong start_slot; + ulong end_slot; + fd_epoch_leaders_t * lsched; + uchar __attribute__((aligned(FD_EPOCH_LEADERS_ALIGN))) _lsched[ FD_EPOCH_LEADERS_FOOTPRINT(MAX_COMPRESSED_STAKE_WEIGHTS, MAX_SLOTS_PER_EPOCH) ]; + fd_vote_stake_weight_t stakes[ MAX_COMPRESSED_STAKE_WEIGHTS ]; + + ulong rankings_slot; /* One more than the largest slot we've processed into our rankings */ + fd_guih_slot_rankings_t rankings[ 1 ]; /* global slot rankings */ + fd_guih_slot_rankings_t my_rankings[ 1 ]; /* my slots only */ + } epochs[ 2 ]; + } epoch; + + struct { /* frankendancer only */ + ulong peer_cnt; + struct fd_guih_gossip_peer peers[ FD_GUIH_MAX_PEER_CNT ]; + } gossip; + + struct { /* frankendancer only */ + ulong vote_account_cnt; + struct fd_guih_vote_account vote_accounts[ FD_GUIH_MAX_PEER_CNT ]; + } vote_account; + + struct { /* frankendancer only */ + ulong info_cnt; + struct fd_guih_validator_info info[ FD_GUIH_MAX_PEER_CNT ]; + } validator_info; + + struct { + ulong leader_shred_cnt; /* A gauge counting the number of leader shreds seen on the SHRED_OUT link. Resets at + the end of a leader slot. This works because leader fecs are published in order. */ + ulong staged_next_broadcast; /* staged[ staged_next_broadcast % FD_GUIH_SHREDS_STAGING_SZ ] is the first shred event + that hasn't yet been broadcast to WebSocket clients */ + ulong staged_head; /* staged_head % FD_GUIH_SHREDS_STAGING_SZ is the first valid event in staged */ + ulong staged_tail; /* staged_tail % FD_GUIH_SHREDS_STAGING_SZ is one past the last valid event in staged */ + fd_guih_slot_staged_shred_event_t staged [ FD_GUIH_SHREDS_STAGING_SZ ]; + + ulong history_slot; /* the largest slot store in history */ + ulong history_tail; /* history_tail % FD_GUIH_SHREDS_HISTORY_SZ is one past the last valid event in history */ + fd_guih_slot_history_shred_event_t history[ FD_GUIH_SHREDS_HISTORY_SZ ]; + + /* scratch space for archiving staged events */ + fd_guih_slot_staged_shred_event_t _staged_scratch [ FD_GUIH_SHREDS_STAGING_SZ ]; + } shreds; /* full client */ +}; + +typedef struct fd_guih fd_guih_t; + +/* fd_guih_staged_push returns a pointer to the next free staging slot + and advances staged_tail. If the ring is full staged_head is + advanced first so the oldest entry is silently dropped. */ +static inline fd_guih_slot_staged_shred_event_t * +fd_guih_staged_push( fd_guih_t * gui ) { + if( FD_UNLIKELY( gui->shreds.staged_tail - gui->shreds.staged_head >= FD_GUIH_SHREDS_STAGING_SZ ) ) { + gui->shreds.staged_head = gui->shreds.staged_tail - FD_GUIH_SHREDS_STAGING_SZ + 1UL; + if( FD_UNLIKELY( gui->shreds.staged_next_broadcast < gui->shreds.staged_head ) ) { + gui->shreds.staged_next_broadcast = gui->shreds.staged_head; + } + } + fd_guih_slot_staged_shred_event_t * dst = + &gui->shreds.staged[ gui->shreds.staged_tail % FD_GUIH_SHREDS_STAGING_SZ ]; + gui->shreds.staged_tail++; + return dst; +} + +FD_PROTOTYPES_BEGIN + +FD_FN_CONST ulong +fd_guih_align( void ); + +ulong +fd_guih_footprint( ulong tile_cnt ); + +void * +fd_guih_new( void * shmem, + fd_http_server_t * http, + char const * version, + char const * cluster, + uchar const * identity_key, + int has_vote_key, + uchar const * vote_key, + int is_full_client, + int snapshots_enabled, + int is_voting, + int schedule_strategy, + char const * wfs_expected_bank_hash_cstr, + ushort expected_shred_version, + fd_topo_t const * topo, + long now ); + +fd_guih_t * +fd_guih_join( void * shmem ); + +void +fd_guih_set_identity( fd_guih_t * gui, + uchar const * identity_pubkey ); + +void +fd_guih_ws_open( fd_guih_t * gui, + ulong conn_id, + long now ); + +int +fd_guih_ws_message( fd_guih_t * gui, + ulong ws_conn_id, + uchar const * data, + ulong data_len ); + +void +fd_guih_plugin_message( fd_guih_t * gui, + ulong plugin_msg, + void const * msg, + long now ); + +void +fd_guih_became_leader( fd_guih_t * gui, + ulong slot, + long start_time_nanos, + long end_time_nanos, + ulong max_compute_units, + ulong max_microblocks ); + +void +fd_guih_unbecame_leader( fd_guih_t * gui, + ulong _slot, + fd_done_packing_t const * done_packing, + long now ); + +void +fd_guih_microblock_execution_begin( fd_guih_t * gui, + long tspub_ns, + ulong _slot, + fd_txn_e_t * txns, + ulong txn_cnt, + uint microblock_idx, + ulong pack_txn_idx ); + +void +fd_guih_microblock_execution_end( fd_guih_t * gui, + long tspub_ns, + ulong bank_idx, + ulong _slot, + ulong txn_cnt, + fd_txn_p_t * txns, + ulong pack_txn_idx, + fd_txn_ns_dt_t txn_ns_dt, + ulong tips ); + +int +fd_guih_poll( fd_guih_t * gui, long now ); + +void +fd_guih_handle_block_engine_update( fd_guih_t * gui, + fd_bundle_block_engine_update_t const * update ); + +void +fd_guih_handle_repair_slot( fd_guih_t * gui, ulong slot, long now ); + +void +fd_guih_handle_leader_schedule( fd_guih_t * gui, + fd_stake_weight_msg_t const * leader_schedule, + long now ); + +void +fd_guih_handle_genesis_hash( fd_guih_t * gui, + fd_hash_t const * msg ); + +static inline ulong +fd_guih_current_epoch_idx( fd_guih_t * gui ) { + ulong epoch_idx = ULONG_MAX; + ulong epoch = ULONG_MAX; + for( ulong i = 0UL; i<2UL; i++ ) { + if( FD_LIKELY( gui->epoch.has_epoch[ i ] ) ) { + /* the "current" epoch is the smaller one */ + if( FD_LIKELY( gui->epoch.epochs[ i ].epochepoch.epochs[ i ].epoch; + epoch_idx = i; + } + } + } + return epoch_idx; +} + +static inline fd_guih_slot_t * +fd_guih_get_slot( fd_guih_t const * gui, ulong _slot ) { + fd_guih_slot_t const * slot = gui->slots[ _slot % FD_GUIH_SLOTS_CNT ]; + if( FD_UNLIKELY( slot->slot==ULONG_MAX || _slot==ULONG_MAX || slot->slot!=_slot ) ) return NULL; + return (fd_guih_slot_t *)slot; +} + +static inline fd_guih_slot_t const * +fd_guih_get_slot_const( fd_guih_t const * gui, ulong _slot ) { + return fd_guih_get_slot( gui, _slot ); +} + +static inline fd_guih_leader_slot_t * +fd_guih_get_leader_slot( fd_guih_t const * gui, ulong _slot ) { + fd_guih_slot_t const * slot = fd_guih_get_slot( gui, _slot ); + if( FD_UNLIKELY( !slot + || !slot->mine + || slot->leader_history_idx==ULONG_MAX + || slot->leader_history_idx + FD_GUIH_LEADER_CNT < gui->leader_slots_cnt + || gui->leader_slots[ slot->leader_history_idx % FD_GUIH_LEADER_CNT ]->slot!=_slot ) ) return NULL; + return (fd_guih_leader_slot_t *)gui->leader_slots[ slot->leader_history_idx % FD_GUIH_LEADER_CNT ]; +} + +static inline fd_guih_leader_slot_t const * +fd_guih_get_leader_slot_const( fd_guih_t const * gui, ulong _slot ) { + return fd_guih_get_leader_slot( gui, _slot ); +} + +/* fd_guih_get_root_slot returns a handle to the closest ancestor of slot + that is a root, if available, otherwise NULL. */ +static inline fd_guih_slot_t * +fd_guih_get_root_slot( fd_guih_t const * gui, + ulong slot ) { + fd_guih_slot_t * c = fd_guih_get_slot( gui, slot ); + while( c ) { + if( FD_UNLIKELY( c->level>=FD_GUIH_SLOT_LEVEL_ROOTED ) ) return c; + c = fd_guih_get_slot( gui, c->parent_slot ); + } + return NULL; +} + +/* fd_guih_slot_is_ancestor returns 1 if anc is known to be an ancestor + of slot (on the same fork), 0 otherwise. */ +static inline int +fd_guih_slot_is_ancestor( fd_guih_t const * gui, + ulong anc, + ulong slot ) { + fd_guih_slot_t * c = fd_guih_get_slot( gui, slot ); + while( c ) { + if( FD_UNLIKELY( c->slot==anc ) ) return 1; + c = fd_guih_get_slot( gui, c->parent_slot ); + } + return 0; +} + +/* fd_guih_get_parent_slot_on_fork returns a handle to the parent of slot + on the fork ending on frontier_slot. If slot is unknown or skipped, + the closest (by slot number) valid parent on the fork is returned. + + NULL if slot is not an ancestor of frontier slot or if the parent is + unknown. */ +static inline fd_guih_slot_t * +fd_guih_get_parent_slot_on_fork( fd_guih_t const * gui, + ulong frontier_slot, + ulong slot ) { + fd_guih_slot_t * c = fd_guih_get_slot( gui, frontier_slot ); + while( c ) { + if( FD_UNLIKELY( c->slot<=slot ) ) return NULL; + fd_guih_slot_t * p = fd_guih_get_slot( gui, c->parent_slot ); + if( FD_UNLIKELY( p && p->slot<=slot-1UL ) ) return p; + c = p; + } + return NULL; +} + +/* fd_guih_is_skipped_on_fork returns 1 if slot is skipped on the fork + starting at anc and ending at des, 0 otherwise. */ +static inline int +fd_guih_is_skipped_on_fork( fd_guih_t const * gui, + ulong anc, + ulong des, + ulong slot ) { + fd_guih_slot_t const * c = fd_guih_get_slot( gui, des ); + while( c ) { + if( FD_UNLIKELY( anc==c->slot ) ) return 0; /* on the fork, not skipped */ + fd_guih_slot_t const * p = fd_guih_get_slot( gui, c->parent_slot ); + if( FD_UNLIKELY( p && p->slotslot>slot ) ) return 1; /* in-between two nodes, skipped */ + c = p; + } + + return 0; /* slot not between anc and des, or is unknown */ +} + +FD_PROTOTYPES_END + +#endif /* HEADER_fd_src_discoh_guih_fd_guih_h */ diff --git a/src/discoh/guih/fd_guih_metrics.h b/src/discoh/guih/fd_guih_metrics.h new file mode 100644 index 00000000000..e84b87847a1 --- /dev/null +++ b/src/discoh/guih/fd_guih_metrics.h @@ -0,0 +1,62 @@ +#ifndef HEADER_fd_src_discoh_guih_fd_guih_metrics_h +#define HEADER_fd_src_discoh_guih_fd_guih_metrics_h + +#include "../../util/fd_util_base.h" +#include "../../disco/topo/fd_topo.h" +#include "../../disco/metrics/fd_metrics.h" + +static inline ulong +fd_guih_metrics_sum_tiles_counter( fd_topo_t const * topo, + char const * name, + ulong tile_cnt, + ulong metric_idx ) { + ulong total = 0UL; + for( ulong i = 0UL; i < topo->tile_cnt; i++ ) { + if( FD_UNLIKELY( !strcmp( topo->tiles[ i ].name, name ) ) ) { + FD_TEST( topo->tiles[ i ].kind_id < tile_cnt ); + fd_topo_tile_t const * tile = &topo->tiles[ i ]; + volatile ulong const * tile_metrics = fd_metrics_tile( tile->metrics ); + total += tile_metrics[ metric_idx ]; + } + } + return total; +} + +static inline ulong +fd_guih_metrics_gossip_total_ingress_bytes( fd_topo_t const * topo, ulong gossvf_tile_cnt ) { + return fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_SUCCESS_PULL_REQUEST) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_SUCCESS_PULL_RESPONSE) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_SUCCESS_PUSH) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_SUCCESS_PRUNE) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_SUCCESS_PING) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_SUCCESS_PONG) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_UNPARSEABLE) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PULL_REQUEST_NOT_CONTACT_INFO) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PULL_REQUEST_LOOPBACK) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PULL_REQUEST_INACTIVE) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PULL_REQUEST_WALLCLOCK) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PULL_REQUEST_SIGNATURE) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PULL_REQUEST_SHRED_VERSION) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PULL_REQUEST_MASK_BITS) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PRUNE_DESTINATION) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PRUNE_WALLCLOCK) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PRUNE_SIGNATURE) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PUSH_LOOPBACK) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PUSH_NO_VALID_CRDS) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PULL_RESPONSE_LOOPBACK) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PULL_RESPONSE_NO_VALID_CRDS) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PING_SIGNATURE) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PONG_SIGNATURE) ); +} + +static inline ulong +fd_guih_metrics_gossip_total_egress_bytes( fd_topo_t const * topo, ulong gossip_tile_cnt ) { + return fd_guih_metrics_sum_tiles_counter( topo, "gossip", gossip_tile_cnt, MIDX( COUNTER, GOSSIP, MESSAGE_TX_BYTES_PING ) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossip", gossip_tile_cnt, MIDX( COUNTER, GOSSIP, MESSAGE_TX_BYTES_PONG ) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossip", gossip_tile_cnt, MIDX( COUNTER, GOSSIP, MESSAGE_TX_BYTES_PRUNE ) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossip", gossip_tile_cnt, MIDX( COUNTER, GOSSIP, MESSAGE_TX_BYTES_PULL_REQUEST ) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossip", gossip_tile_cnt, MIDX( COUNTER, GOSSIP, MESSAGE_TX_BYTES_PULL_RESPONSE ) ) + + fd_guih_metrics_sum_tiles_counter( topo, "gossip", gossip_tile_cnt, MIDX( COUNTER, GOSSIP, MESSAGE_TX_BYTES_PUSH ) ); +} + +#endif /* HEADER_fd_src_discoh_guih_fd_guih_metrics_h */ diff --git a/src/discoh/guih/fd_guih_printf.c b/src/discoh/guih/fd_guih_printf.c new file mode 100644 index 00000000000..f7054112efc --- /dev/null +++ b/src/discoh/guih/fd_guih_printf.c @@ -0,0 +1,2201 @@ +#include "fd_guih_printf.h" + +#include "../../disco/bundle/fd_bundle_tile.h" +#include "../../disco/diag/fd_diag_tile.h" +#include "../../waltz/http/fd_http_server_private.h" +#include "../../ballet/utf8/fd_utf8.h" +#include "../../disco/fd_txn_m.h" +#include "../../disco/metrics/fd_metrics.h" +#include "../../disco/topo/fd_topob.h" +#include "../../util/fd_version.h" + +static void +jsonp_strip_trailing_comma( fd_http_server_t * http ) { + if( FD_LIKELY( !http->stage_err && + http->stage_len>=1UL && + http->oring[ (http->stage_off%http->oring_sz)+http->stage_len-1UL ]==(uchar)',' ) ) { + http->stage_len--; + } +} + +static void +jsonp_open_object( fd_http_server_t * http, + char const * key ) { + if( FD_LIKELY( key ) ) fd_http_server_printf( http, "\"%s\":{", key ); + else fd_http_server_printf( http, "{" ); +} + +static void +jsonp_close_object( fd_http_server_t * http ) { + jsonp_strip_trailing_comma( http ); + fd_http_server_printf( http, "}," ); +} + +static void +jsonp_open_array( fd_http_server_t * http, + char const * key ) { + if( FD_LIKELY( key ) ) fd_http_server_printf( http, "\"%s\":[", key ); + else fd_http_server_printf( http, "[" ); +} + +static void +jsonp_close_array( fd_http_server_t * http ) { + jsonp_strip_trailing_comma( http ); + fd_http_server_printf( http, "]," ); +} + +static void +jsonp_ulong( fd_http_server_t * http, + char const * key, + ulong value ) { + if( FD_LIKELY( key ) ) fd_http_server_printf( http, "\"%s\":%lu,", key, value ); + else fd_http_server_printf( http, "%lu,", value ); +} + +static void +jsonp_long( fd_http_server_t * http, + char const * key, + long value ) { + if( FD_LIKELY( key ) ) fd_http_server_printf( http, "\"%s\":%ld,", key, value ); + else fd_http_server_printf( http, "%ld,", value ); +} + +static void +jsonp_double( fd_http_server_t * http, + char const * key, + double value ) { + if( FD_LIKELY( key ) ) fd_http_server_printf( http, "\"%s\":%.2f,", key, value ); + else fd_http_server_printf( http, "%.2f,", value ); +} + +static void +jsonp_ulong_as_str( fd_http_server_t * http, + char const * key, + ulong value ) { + if( FD_LIKELY( key ) ) fd_http_server_printf( http, "\"%s\":\"%lu\",", key, value ); + else fd_http_server_printf( http, "\"%lu\",", value ); +} + +static void +jsonp_long_as_str( fd_http_server_t * http, + char const * key, + long value ) { + if( FD_LIKELY( key ) ) fd_http_server_printf( http, "\"%s\":\"%ld\",", key, value ); + else fd_http_server_printf( http, "\"%ld\",", value ); +} + +static void +jsonp_sanitize_str( fd_http_server_t * http, + ulong start_len ) { + /* escape quotemark, reverse solidus, and control chars U+0000 through U+001F + just replace with a space */ + uchar * data = http->oring; + for( ulong i=start_len; istage_len; i++ ) { + if( FD_UNLIKELY( data[ (http->stage_off%http->oring_sz)+i ] < 0x20 || + data[ (http->stage_off%http->oring_sz)+i ] == '"' || + data[ (http->stage_off%http->oring_sz)+i ] == '\\' ) ) { + data[ (http->stage_off%http->oring_sz)+i ] = ' '; + } + } +} + +static void +jsonp_string( fd_http_server_t * http, + char const * key, + char const * value ) { + char * val = (void *)value; + if( FD_LIKELY( value ) ) { + if( FD_UNLIKELY( !fd_utf8_verify( value, strlen( value ) ) )) { + val = NULL; + } + } + if( FD_LIKELY( key ) ) fd_http_server_printf( http, "\"%s\":", key ); + if( FD_LIKELY( val ) ) { + fd_http_server_printf( http, "\"" ); + ulong start_len = http->stage_len; + fd_http_server_printf( http, "%s", val ); + jsonp_sanitize_str( http, start_len ); + fd_http_server_printf( http, "\"," ); + } else { + fd_http_server_printf( http, "null," ); + } +} + +static void +jsonp_bool( fd_http_server_t * http, + char const * key, + int value ) { + if( FD_LIKELY( key ) ) fd_http_server_printf( http, "\"%s\":%s,", key, value ? "true" : "false" ); + else fd_http_server_printf( http, "%s,", value ? "true" : "false" ); +} + +static void +jsonp_null( fd_http_server_t * http, + char const * key ) { + if( FD_LIKELY( key ) ) fd_http_server_printf( http, "\"%s\": null,", key ); + else fd_http_server_printf( http, "null," ); +} + +static void +jsonp_open_envelope( fd_http_server_t * http, + char const * topic, + char const * key ) { + jsonp_open_object( http, NULL ); + jsonp_string( http, "topic", topic ); + jsonp_string( http, "key", key ); +} + +static void +jsonp_close_envelope( fd_http_server_t * http ) { + jsonp_close_object( http ); + jsonp_strip_trailing_comma( http ); +} + +void +fd_guih_printf_open_query_response_envelope( fd_http_server_t * http, + char const * topic, + char const * key, + ulong id ) { + jsonp_open_object( http, NULL ); + jsonp_string( http, "topic", topic ); + jsonp_string( http, "key", key ); + jsonp_ulong( http, "id", id ); +} + +void +fd_guih_printf_close_query_response_envelope( fd_http_server_t * http ) { + jsonp_close_object( http ); + jsonp_strip_trailing_comma( http ); +} + +void +fd_guih_printf_null_query_response( fd_http_server_t * http, + char const * topic, + char const * key, + ulong id ) { + fd_guih_printf_open_query_response_envelope( http, topic, key, id ); + jsonp_null( http, "value" ); + fd_guih_printf_close_query_response_envelope( http ); +} + +void +fd_guih_printf_version( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "version" ); + jsonp_string( gui->http, "value", gui->summary.version ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_cluster( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "cluster" ); + jsonp_string( gui->http, "value", gui->summary.cluster ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_commit_hash( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "commit_hash" ); + jsonp_string( gui->http, "value", fd_commit_ref_cstr ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_identity_key( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "identity_key" ); + jsonp_string( gui->http, "value", gui->summary.identity_key_base58 ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_vote_key( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "vote_key" ); + if( FD_LIKELY( gui->summary.has_vote_key ) ) jsonp_string( gui->http, "value", gui->summary.vote_key_base58 ); + else jsonp_null( gui->http, "value" ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_startup_time_nanos( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "startup_time_nanos" ); + jsonp_long_as_str( gui->http, "value", gui->summary.startup_time_nanos ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_server_time_nanos( fd_guih_t * gui, long now ) { + jsonp_open_envelope( gui->http, "summary", "server_time_nanos" ); + jsonp_long_as_str( gui->http, "value", now ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_vote_distance( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "vote_distance" ); + jsonp_ulong( gui->http, "value", gui->summary.vote_distance ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_repair_slot( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "repair_slot" ); + if( FD_LIKELY( gui->summary.slot_repair!=ULONG_MAX ) ) jsonp_ulong( gui->http, "value", gui->summary.slot_repair ); + else jsonp_null ( gui->http, "value" ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_turbine_slot( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "turbine_slot" ); + if( FD_LIKELY( gui->summary.slot_turbine!=ULONG_MAX ) ) jsonp_ulong( gui->http, "value", gui->summary.slot_turbine ); + else jsonp_null ( gui->http, "value" ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_reset_slot( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "reset_slot" ); + if( FD_LIKELY( gui->summary.slot_reset!=ULONG_MAX ) ) jsonp_ulong( gui->http, "value", gui->summary.slot_reset ); + else jsonp_null ( gui->http, "value" ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_storage_slot( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "storage_slot" ); + if( FD_LIKELY( gui->summary.slot_storage!=ULONG_MAX ) ) jsonp_ulong( gui->http, "value", gui->summary.slot_storage ); + else jsonp_null ( gui->http, "value" ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_active_fork_cnt( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "active_fork_count" ); + if( FD_LIKELY( gui->summary.active_fork_cnt!=ULONG_MAX ) ) jsonp_ulong( gui->http, "value", gui->summary.active_fork_cnt ); + else jsonp_null ( gui->http, "value" ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_slot_caught_up( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "slot_caught_up" ); + if( FD_LIKELY( gui->summary.slot_caught_up!=ULONG_MAX ) ) jsonp_ulong( gui->http, "value", gui->summary.slot_caught_up ); + else jsonp_null ( gui->http, "value" ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_catch_up_history( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "catch_up_history" ); + jsonp_open_object( gui->http, "value" ); + jsonp_open_array( gui->http, "turbine" ); + for( ulong i=0UL; isummary.catch_up_turbine_sz; i+=2 ) { + for( ulong j=gui->summary.catch_up_turbine[ i ]; j<=gui->summary.catch_up_turbine[ i+1UL ]; j++ ) { + jsonp_ulong( gui->http, NULL, j ); + } + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "repair" ); + for( ulong i=0UL; isummary.catch_up_repair_sz; i+=2 ) { + for( ulong j=gui->summary.catch_up_repair[ i ]; j<=gui->summary.catch_up_repair[ i+1UL ]; j++ ) { + jsonp_ulong( gui->http, NULL, j ); + } + } + jsonp_close_array( gui->http ); + + if( FD_LIKELY( gui->summary.boot_progress.phase==FD_GUIH_BOOT_PROGRESS_TYPE_CATCHING_UP ) ) { + ulong min_slot = ULONG_MAX; + long min_ts = LONG_MAX; + +#define SHREDS_REV_ITER( age_ns, code_staged, code_archive ) \ + do { \ + if( FD_UNLIKELY( gui->summary.boot_progress.catching_up_time_nanos==0L ) ) break; \ + for( ulong i=gui->shreds.staged_tail; i>gui->shreds.staged_head; i-- ) { \ + fd_guih_slot_staged_shred_event_t * event = &gui->shreds.staged[ (i-1UL) % FD_GUIH_SHREDS_STAGING_SZ ]; \ + if( FD_UNLIKELY( event->timestamp < gui->summary.boot_progress.catching_up_time_nanos - age_ns ) ) break; \ + do { code_staged } while(0); \ + } \ + fd_guih_slot_t * s = fd_guih_get_slot( gui, gui->shreds.history_slot ); \ + while( s \ + && s->shreds.start_offset!=ULONG_MAX \ + && s->shreds.end_offset!=ULONG_MAX \ + && s->shreds.end_offset>s->shreds.start_offset \ + && gui->shreds.history[ (s->shreds.end_offset-1UL) % FD_GUIH_SHREDS_HISTORY_SZ ].timestamp + age_ns > gui->summary.boot_progress.catching_up_time_nanos ) { \ + for( ulong i=s->shreds.end_offset; i>s->shreds.start_offset; i-- ) { \ + fd_guih_slot_history_shred_event_t * event = &gui->shreds.history[ (i-1UL) % FD_GUIH_SHREDS_HISTORY_SZ ]; (void)event; \ + do { code_archive } while (0); \ + } \ + s = fd_guih_get_slot( gui, s->parent_slot ); \ + } \ + } while(0); + + SHREDS_REV_ITER( + 15000000000, + { + min_slot = fd_ulong_min( min_slot, event->slot ); + min_ts = fd_long_min( min_ts, event->timestamp ); + }, + { + min_slot = fd_ulong_min( min_slot, s->slot ); + min_ts = fd_long_min( min_ts, event->timestamp ); + } + ) + + jsonp_open_object( gui->http, "shreds" ); + jsonp_ulong ( gui->http, "reference_slot", min_slot ); + jsonp_long_as_str( gui->http, "reference_ts", min_ts ); + + jsonp_open_array( gui->http, "slot_delta" ); + SHREDS_REV_ITER( + 15000000000L, + { jsonp_ulong( gui->http, NULL, event->slot-min_slot ); }, + { jsonp_ulong( gui->http, NULL, s->slot-min_slot ); } + ) + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "shred_idx" ); + SHREDS_REV_ITER( + 15000000000L, + { + if( FD_LIKELY( event->shred_idx!=USHORT_MAX ) ) jsonp_ulong( gui->http, NULL, event->shred_idx ); + else jsonp_null ( gui->http, NULL ); + }, + { + if( FD_LIKELY( event->shred_idx!=USHORT_MAX ) ) jsonp_ulong( gui->http, NULL, event->shred_idx ); + else jsonp_null ( gui->http, NULL ); + } + ) + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "event" ); + SHREDS_REV_ITER( + 15000000000L, + { jsonp_ulong( gui->http, NULL, event->event ); }, + { jsonp_ulong( gui->http, NULL, event->event ); } + ) + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "event_ts_delta" ); + SHREDS_REV_ITER( + 15000000000L, + { jsonp_long_as_str( gui->http, NULL, event->timestamp-min_ts ); }, + { jsonp_long_as_str( gui->http, NULL, event->timestamp-min_ts ); } + ) + jsonp_close_array( gui->http ); + jsonp_close_object( gui->http ); + } else { + jsonp_null( gui->http, "shreds" ); + } + + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_vote_state( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "vote_state" ); + switch( gui->summary.vote_state ) { + case FD_GUIH_VOTE_STATE_NON_VOTING: + jsonp_string( gui->http, "value", "non-voting" ); + break; + case FD_GUIH_VOTE_STATE_VOTING: + jsonp_string( gui->http, "value", "voting" ); + break; + case FD_GUIH_VOTE_STATE_DELINQUENT: + jsonp_string( gui->http, "value", "delinquent" ); + break; + default: + FD_LOG_ERR(( "unknown vote state %d", gui->summary.vote_state )); + } + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_skipped_history( fd_guih_t * gui, ulong epoch_idx ) { + jsonp_open_envelope( gui->http, "slot", "skipped_history" ); + jsonp_open_array( gui->http, "value" ); + ulong start_slot = gui->epoch.epochs[ epoch_idx ].start_slot; + ulong end_slot = gui->epoch.epochs[ epoch_idx ].end_slot; + for( ulong s=start_slot; ssummary.slot_completed==ULONG_MAX ) ) break; + fd_guih_slot_t * slot = fd_guih_get_slot( gui, s ); + + if( FD_UNLIKELY( !slot ) ) continue; + if( FD_UNLIKELY( slot->mine && slot->skipped ) ) jsonp_ulong( gui->http, NULL, slot->slot ); + } + jsonp_close_array( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_skipped_history_cluster( fd_guih_t * gui, ulong epoch_idx ) { + jsonp_open_envelope( gui->http, "slot", "skipped_history_cluster" ); + jsonp_open_array( gui->http, "value" ); + ulong start_slot = gui->epoch.epochs[ epoch_idx ].start_slot; + ulong end_slot = gui->epoch.epochs[ epoch_idx ].end_slot; + for( ulong s=start_slot; ssummary.slot_completed==ULONG_MAX ) ) break; + fd_guih_slot_t * slot = fd_guih_get_slot( gui, s ); + + if( FD_UNLIKELY( !slot ) ) continue; + if( FD_UNLIKELY( slot->skipped ) ) jsonp_ulong( gui->http, NULL, slot->slot ); + } + jsonp_close_array( gui->http ); + jsonp_close_envelope( gui->http ); +} + +/* TODO: deprecated */ +void +fd_guih_printf_vote_latency_history( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "slot", "vote_latency_history" ); + jsonp_open_array( gui->http, "value" ); + FD_TEST( gui->summary.late_votes_sz % 2UL == 0UL ); + for( ulong i=0UL; isummary.late_votes_sz; i++ ) jsonp_ulong( gui->http, NULL, gui->summary.late_votes[ i ] ); + jsonp_close_array( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_late_votes_history( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "slot", "late_votes_history" ); + jsonp_open_object( gui->http, "value" ); + jsonp_open_array( gui->http, "slot" ); + for( ulong i=0UL; isummary.late_votes_sz; i++ ) jsonp_ulong( gui->http, NULL, gui->summary.late_votes[ i ] ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "latency" ); + for( long i=0UL; i<(long)gui->summary.late_votes_sz-1L; i+=2L ) { + FD_TEST( (ulong)i+1summary.late_votes_sz ); + ulong s = gui->summary.late_votes[ i ]; + ulong s2 = gui->summary.late_votes[ i + 1 ]; + for( ulong j=s; j<=fd_ulong_min( s2, s+FD_GUIH_SLOTS_CNT ); j++ ) { + fd_guih_slot_t * slot = fd_guih_get_slot( gui, j ); + if( FD_UNLIKELY( slot && slot->vote_latency!=UCHAR_MAX ) ) jsonp_ulong( gui->http, NULL, slot->vote_latency ); + else jsonp_null( gui->http, NULL ); + } + } + jsonp_close_array( gui->http ); + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_tps_history( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "tps_history" ); + jsonp_open_array( gui->http, "value" ); + + for( ulong i=0UL; isummary.estimated_tps_history_idx+i) % FD_GUIH_TPS_HISTORY_SAMPLE_CNT; + ulong vote_cnt = gui->summary.estimated_tps_history[ idx ].vote_failed + + gui->summary.estimated_tps_history[ idx ].vote_success; + ulong total_cnt = vote_cnt + + gui->summary.estimated_tps_history[ idx ].nonvote_success + + gui->summary.estimated_tps_history[ idx ].nonvote_failed; + jsonp_open_array( gui->http, NULL ); + jsonp_double( gui->http, NULL, (double)total_cnt/(double)FD_GUIH_TPS_HISTORY_WINDOW_DURATION_SECONDS ); + jsonp_double( gui->http, NULL, (double)vote_cnt/(double)FD_GUIH_TPS_HISTORY_WINDOW_DURATION_SECONDS ); + jsonp_double( gui->http, NULL, (double)gui->summary.estimated_tps_history[ idx ].nonvote_success/(double)FD_GUIH_TPS_HISTORY_WINDOW_DURATION_SECONDS ); + jsonp_double( gui->http, NULL, (double)gui->summary.estimated_tps_history[ idx ].nonvote_failed/(double)FD_GUIH_TPS_HISTORY_WINDOW_DURATION_SECONDS ); + jsonp_close_array( gui->http ); + } + + jsonp_close_array( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_startup_progress( fd_guih_t * gui ) { + char const * phase; + + switch( gui->summary.startup_progress.phase ) { + case FD_GUIH_START_PROGRESS_TYPE_INITIALIZING: + phase = "initializing"; + break; + case FD_GUIH_START_PROGRESS_TYPE_SEARCHING_FOR_FULL_SNAPSHOT: + phase = "searching_for_full_snapshot"; + break; + case FD_GUIH_START_PROGRESS_TYPE_DOWNLOADING_FULL_SNAPSHOT: + phase = "downloading_full_snapshot"; + break; + case FD_GUIH_START_PROGRESS_TYPE_SEARCHING_FOR_INCREMENTAL_SNAPSHOT: + phase = "searching_for_incremental_snapshot"; + break; + case FD_GUIH_START_PROGRESS_TYPE_DOWNLOADING_INCREMENTAL_SNAPSHOT: + phase = "downloading_incremental_snapshot"; + break; + case FD_GUIH_START_PROGRESS_TYPE_CLEANING_BLOCK_STORE: + phase = "cleaning_blockstore"; + break; + case FD_GUIH_START_PROGRESS_TYPE_CLEANING_ACCOUNTS: + phase = "cleaning_accounts"; + break; + case FD_GUIH_START_PROGRESS_TYPE_LOADING_LEDGER: + phase = "loading_ledger"; + break; + case FD_GUIH_START_PROGRESS_TYPE_PROCESSING_LEDGER: + phase = "processing_ledger"; + break; + case FD_GUIH_START_PROGRESS_TYPE_STARTING_SERVICES: + phase = "starting_services"; + break; + case FD_GUIH_START_PROGRESS_TYPE_HALTED: + phase = "halted"; + break; + case FD_GUIH_START_PROGRESS_TYPE_WAITING_FOR_SUPERMAJORITY: + phase = "waiting_for_supermajority"; + break; + case FD_GUIH_START_PROGRESS_TYPE_RUNNING: + phase = "running"; + break; + default: + FD_LOG_ERR(( "unknown phase %d", gui->summary.startup_progress.phase )); + } + + jsonp_open_envelope( gui->http, "summary", "startup_progress" ); + jsonp_open_object( gui->http, "value" ); + jsonp_string( gui->http, "phase", phase ); + if( FD_LIKELY( gui->summary.startup_progress.phase>=FD_GUIH_START_PROGRESS_TYPE_DOWNLOADING_FULL_SNAPSHOT) ) { + char peer_addr[ 64 ]; + FD_TEST( fd_cstr_printf_check( peer_addr, sizeof(peer_addr), NULL, FD_IP4_ADDR_FMT ":%u", FD_IP4_ADDR_FMT_ARGS(gui->summary.startup_progress.startup_full_snapshot_peer_ip_addr), gui->summary.startup_progress.startup_full_snapshot_peer_port ) ); + + jsonp_string( gui->http, "downloading_full_snapshot_peer", peer_addr ); + jsonp_ulong( gui->http, "downloading_full_snapshot_slot", gui->summary.startup_progress.startup_full_snapshot_slot ); + jsonp_double( gui->http, "downloading_full_snapshot_elapsed_secs", gui->summary.startup_progress.startup_full_snapshot_elapsed_secs ); + jsonp_double( gui->http, "downloading_full_snapshot_remaining_secs", gui->summary.startup_progress.startup_full_snapshot_remaining_secs ); + jsonp_double( gui->http, "downloading_full_snapshot_throughput", gui->summary.startup_progress.startup_full_snapshot_throughput ); + jsonp_ulong( gui->http, "downloading_full_snapshot_total_bytes", gui->summary.startup_progress.startup_full_snapshot_total_bytes ); + jsonp_ulong( gui->http, "downloading_full_snapshot_current_bytes", gui->summary.startup_progress.startup_full_snapshot_current_bytes ); + } else { + jsonp_null( gui->http, "downloading_full_snapshot_peer" ); + jsonp_null( gui->http, "downloading_full_snapshot_slot" ); + jsonp_null( gui->http, "downloading_full_snapshot_elapsed_secs" ); + jsonp_null( gui->http, "downloading_full_snapshot_remaining_secs" ); + jsonp_null( gui->http, "downloading_full_snapshot_throughput" ); + jsonp_null( gui->http, "downloading_full_snapshot_total_bytes" ); + jsonp_null( gui->http, "downloading_full_snapshot_current_bytes" ); + } + + if( FD_LIKELY( gui->summary.startup_progress.phase>=FD_GUIH_START_PROGRESS_TYPE_DOWNLOADING_INCREMENTAL_SNAPSHOT) ) { + char peer_addr[ 64 ]; + FD_TEST( fd_cstr_printf_check( peer_addr, sizeof(peer_addr), NULL, FD_IP4_ADDR_FMT ":%u", FD_IP4_ADDR_FMT_ARGS(gui->summary.startup_progress.startup_incremental_snapshot_peer_ip_addr), gui->summary.startup_progress.startup_incremental_snapshot_peer_port ) ); + + jsonp_string( gui->http, "downloading_incremental_snapshot_peer", peer_addr ); + jsonp_ulong( gui->http, "downloading_incremental_snapshot_slot", gui->summary.startup_progress.startup_incremental_snapshot_slot ); + jsonp_double( gui->http, "downloading_incremental_snapshot_elapsed_secs", gui->summary.startup_progress.startup_incremental_snapshot_elapsed_secs ); + jsonp_double( gui->http, "downloading_incremental_snapshot_remaining_secs", gui->summary.startup_progress.startup_incremental_snapshot_remaining_secs ); + jsonp_double( gui->http, "downloading_incremental_snapshot_throughput", gui->summary.startup_progress.startup_incremental_snapshot_throughput ); + jsonp_ulong( gui->http, "downloading_incremental_snapshot_total_bytes", gui->summary.startup_progress.startup_incremental_snapshot_total_bytes ); + jsonp_ulong( gui->http, "downloading_incremental_snapshot_current_bytes", gui->summary.startup_progress.startup_incremental_snapshot_current_bytes ); + } else { + jsonp_null( gui->http, "downloading_incremental_snapshot_peer" ); + jsonp_null( gui->http, "downloading_incremental_snapshot_slot" ); + jsonp_null( gui->http, "downloading_incremental_snapshot_elapsed_secs" ); + jsonp_null( gui->http, "downloading_incremental_snapshot_remaining_secs" ); + jsonp_null( gui->http, "downloading_incremental_snapshot_throughput" ); + jsonp_null( gui->http, "downloading_incremental_snapshot_total_bytes" ); + jsonp_null( gui->http, "downloading_incremental_snapshot_current_bytes" ); + } + + if( FD_LIKELY( gui->summary.startup_progress.phase>=FD_GUIH_START_PROGRESS_TYPE_PROCESSING_LEDGER) ) { + jsonp_ulong( gui->http, "ledger_slot", gui->summary.startup_progress.startup_ledger_slot ); + jsonp_ulong( gui->http, "ledger_max_slot", gui->summary.startup_progress.startup_ledger_max_slot ); + } else { + jsonp_null( gui->http, "ledger_slot" ); + jsonp_null( gui->http, "ledger_max_slot" ); + } + + if( FD_LIKELY( gui->summary.startup_progress.phase>=FD_GUIH_START_PROGRESS_TYPE_WAITING_FOR_SUPERMAJORITY ) && gui->summary.startup_progress.startup_waiting_for_supermajority_slot!=ULONG_MAX ) { + jsonp_ulong( gui->http, "waiting_for_supermajority_slot", gui->summary.startup_progress.startup_waiting_for_supermajority_slot ); + jsonp_ulong( gui->http, "waiting_for_supermajority_stake_percent", gui->summary.startup_progress.startup_waiting_for_supermajority_stake_pct ); + } else { + jsonp_null( gui->http, "waiting_for_supermajority_slot" ); + jsonp_null( gui->http, "waiting_for_supermajority_stake_percent" ); + } + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_block_engine( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "block_engine", "update" ); + jsonp_open_object( gui->http, "value" ); + jsonp_string( gui->http, "name", gui->block_engine.name ); + jsonp_string( gui->http, "url", gui->block_engine.url ); + jsonp_string( gui->http, "ip", gui->block_engine.ip_cstr ); + if( FD_LIKELY( gui->block_engine.status==FD_BUNDLE_STATE_CONNECTING ) ) jsonp_string( gui->http, "status", "connecting" ); + else if( FD_LIKELY( gui->block_engine.status==FD_BUNDLE_STATE_CONNECTED ) ) jsonp_string( gui->http, "status", "connected" ); + else if( FD_LIKELY( gui->block_engine.status==FD_BUNDLE_STATE_SLEEPING ) ) jsonp_string( gui->http, "status", "sleeping" ); + else jsonp_string( gui->http, "status", "disconnected" ); + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_tiles( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "tiles" ); + jsonp_open_array( gui->http, "value" ); + for( ulong i=0UL; itopo->tile_cnt; i++ ) { + fd_topo_tile_t const * tile = &gui->topo->tiles[ i ]; + + if( FD_UNLIKELY( !strncmp( tile->name, "bench", 5UL ) ) ) { + /* bench tiles not reported */ + continue; + } + + jsonp_open_object( gui->http, NULL ); + jsonp_string( gui->http, "kind", tile->name ); + jsonp_ulong( gui->http, "kind_id", tile->kind_id ); + jsonp_ulong( gui->http, "pid", fd_metrics_tile( tile->metrics )[ MIDX( GAUGE, TILE, PID ) ] ); + jsonp_close_object( gui->http ); + } + jsonp_close_array( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_schedule_strategy( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "schedule_strategy" ); + char mode[10]; + switch (gui->summary.schedule_strategy) { + case 0: strncpy( mode, "perf", sizeof(mode) ); break; + case 1: strncpy( mode, "balanced", sizeof(mode) ); break; + case 2: strncpy( mode, "revenue", sizeof(mode) ); break; + default: FD_LOG_ERR(("unexpected schedule_strategy %d", gui->summary.schedule_strategy)); + } + mode[ sizeof(mode) - 1] = '\0'; + jsonp_string( gui->http, "value", mode ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_identity_balance( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "identity_balance" ); + jsonp_ulong_as_str( gui->http, "value", gui->summary.identity_account_balance ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_vote_balance( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "vote_balance" ); + jsonp_ulong_as_str( gui->http, "value", gui->summary.vote_account_balance ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_estimated_slot_duration_nanos( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "estimated_slot_duration_nanos" ); + jsonp_ulong( gui->http, "value", gui->summary.estimated_slot_duration_nanos ); + jsonp_close_envelope( gui->http ); +} + + +void +fd_guih_printf_root_slot( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "root_slot" ); + jsonp_ulong( gui->http, "value", fd_ulong_if( gui->summary.slot_rooted!=ULONG_MAX, gui->summary.slot_rooted, 0UL ) ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_optimistically_confirmed_slot( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "optimistically_confirmed_slot" ); + jsonp_ulong( gui->http, "value", fd_ulong_if( gui->summary.slot_optimistically_confirmed!=ULONG_MAX, gui->summary.slot_optimistically_confirmed, 0UL ) ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_completed_slot( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "completed_slot" ); + jsonp_ulong( gui->http, "value", fd_ulong_if( gui->summary.slot_completed!=ULONG_MAX, gui->summary.slot_completed, 0UL ) ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_estimated_slot( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "estimated_slot" ); + jsonp_ulong( gui->http, "value", fd_ulong_if( gui->summary.slot_estimated!=ULONG_MAX, gui->summary.slot_estimated, 0UL ) ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_skip_rate( fd_guih_t * gui, + ulong epoch_idx ) { + jsonp_open_envelope( gui->http, "summary", "skip_rate" ); + jsonp_open_object( gui->http, "value" ); + jsonp_ulong( gui->http, "epoch", gui->epoch.epochs[ epoch_idx ].epoch ); + fd_http_server_printf( gui->http, "\"skip_rate\":%.7f,", !!gui->epoch.epochs[ epoch_idx ].my_total_slots ? (double)gui->epoch.epochs[ epoch_idx ].my_skipped_slots/(double)gui->epoch.epochs[ epoch_idx ].my_total_slots : 0.0 ); + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_epoch( fd_guih_t * gui, + ulong epoch_idx ) { + jsonp_open_envelope( gui->http, "epoch", "new" ); + jsonp_open_object( gui->http, "value" ); + jsonp_ulong( gui->http, "epoch", gui->epoch.epochs[ epoch_idx ].epoch ); + if( FD_LIKELY( gui->epoch.epochs[ epoch_idx ].start_time!=LONG_MAX ) ) jsonp_ulong_as_str( gui->http, "start_time_nanos", (ulong)gui->epoch.epochs[ epoch_idx ].start_time ); + else jsonp_null( gui->http, "start_time_nanos" ); + if( FD_LIKELY( gui->epoch.epochs[ epoch_idx ].end_time!=LONG_MAX ) ) jsonp_ulong_as_str( gui->http, "end_time_nanos", (ulong)gui->epoch.epochs[ epoch_idx ].end_time ); + else jsonp_null( gui->http, "end_time_nanos" ); + jsonp_ulong( gui->http, "start_slot", gui->epoch.epochs[ epoch_idx ].start_slot ); + jsonp_ulong( gui->http, "end_slot", gui->epoch.epochs[ epoch_idx ].end_slot ); + jsonp_ulong_as_str( gui->http, "excluded_stake_lamports", 0UL ); + jsonp_open_array( gui->http, "staked_pubkeys" ); + fd_epoch_leaders_t * lsched = gui->epoch.epochs[epoch_idx].lsched; + for( ulong i=0UL; ipub_cnt; i++ ) { + char identity_base58[ FD_BASE58_ENCODED_32_SZ ]; + fd_base58_encode_32( lsched->pub[ i ].uc, NULL, identity_base58 ); + jsonp_string( gui->http, NULL, identity_base58 ); + } + jsonp_close_array( gui->http ); + + jsonp_open_array( gui->http, "staked_lamports" ); + fd_vote_stake_weight_t * stakes = gui->epoch.epochs[epoch_idx].stakes; + for( ulong i=0UL; ipub_cnt; i++ ) jsonp_ulong_as_str( gui->http, NULL, stakes[ i ].stake ); + jsonp_close_array( gui->http ); + + jsonp_open_array( gui->http, "leader_slots" ); + for( ulong i = 0; i < lsched->sched_cnt; i++ ) jsonp_ulong( gui->http, NULL, lsched->sched[ i ] ); + jsonp_close_array( gui->http ); + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +static void +fd_guih_printf_waterfall( fd_guih_t * gui, + fd_guih_txn_waterfall_t const * prev, + fd_guih_txn_waterfall_t const * cur ) { + jsonp_open_object( gui->http, "waterfall" ); + jsonp_open_object( gui->http, "in" ); + jsonp_ulong( gui->http, "pack_cranked", cur->in.pack_cranked - prev->in.pack_cranked ); + jsonp_ulong( gui->http, "pack_retained", prev->out.pack_retained ); + jsonp_ulong( gui->http, "resolv_retained", prev->out.resolv_retained ); + jsonp_ulong( gui->http, "quic", cur->in.quic - prev->in.quic ); + jsonp_ulong( gui->http, "udp", cur->in.udp - prev->in.udp ); + jsonp_ulong( gui->http, "gossip", cur->in.gossip - prev->in.gossip ); + jsonp_ulong( gui->http, "block_engine", cur->in.block_engine - prev->in.block_engine ); + jsonp_close_object( gui->http ); + + jsonp_open_object( gui->http, "out" ); + jsonp_ulong( gui->http, "net_overrun", cur->out.net_overrun - prev->out.net_overrun ); + jsonp_ulong( gui->http, "quic_overrun", cur->out.quic_overrun - prev->out.quic_overrun ); + jsonp_ulong( gui->http, "quic_frag_drop", cur->out.quic_frag_drop - prev->out.quic_frag_drop ); + jsonp_ulong( gui->http, "quic_abandoned", cur->out.quic_abandoned - prev->out.quic_abandoned ); + jsonp_ulong( gui->http, "tpu_quic_invalid", cur->out.tpu_quic_invalid - prev->out.tpu_quic_invalid ); + jsonp_ulong( gui->http, "tpu_udp_invalid", cur->out.tpu_udp_invalid - prev->out.tpu_udp_invalid ); + jsonp_ulong( gui->http, "verify_overrun", cur->out.verify_overrun - prev->out.verify_overrun ); + jsonp_ulong( gui->http, "verify_parse", cur->out.verify_parse - prev->out.verify_parse ); + jsonp_ulong( gui->http, "verify_failed", cur->out.verify_failed - prev->out.verify_failed ); + jsonp_ulong( gui->http, "verify_duplicate", cur->out.verify_duplicate - prev->out.verify_duplicate ); + jsonp_ulong( gui->http, "dedup_duplicate", cur->out.dedup_duplicate - prev->out.dedup_duplicate ); + jsonp_ulong( gui->http, "resolv_lut_failed", cur->out.resolv_lut_failed - prev->out.resolv_lut_failed ); + jsonp_ulong( gui->http, "resolv_expired", cur->out.resolv_expired - prev->out.resolv_expired ); + jsonp_ulong( gui->http, "resolv_ancient", cur->out.resolv_ancient - prev->out.resolv_ancient ); + jsonp_ulong( gui->http, "resolv_no_ledger", cur->out.resolv_no_ledger - prev->out.resolv_no_ledger ); + jsonp_ulong( gui->http, "resolv_retained", cur->out.resolv_retained ); + jsonp_ulong( gui->http, "pack_invalid", cur->out.pack_invalid - prev->out.pack_invalid ); + jsonp_ulong( gui->http, "pack_invalid_bundle", cur->out.pack_invalid_bundle - prev->out.pack_invalid_bundle ); + jsonp_ulong( gui->http, "pack_expired", cur->out.pack_expired - prev->out.pack_expired ); + jsonp_ulong( gui->http, "pack_already_executed", cur->out.pack_already_executed - prev->out.pack_already_executed ); + jsonp_ulong( gui->http, "pack_retained", cur->out.pack_retained ); + jsonp_ulong( gui->http, "pack_wait_full", cur->out.pack_wait_full - prev->out.pack_wait_full ); + jsonp_ulong( gui->http, "pack_leader_slow", cur->out.pack_leader_slow - prev->out.pack_leader_slow ); + jsonp_ulong( gui->http, "bank_invalid", cur->out.bank_invalid - prev->out.bank_invalid ); + jsonp_ulong( gui->http, "bank_nonce_already_advanced", cur->out.bank_nonce_already_advanced - prev->out.bank_nonce_already_advanced ); + jsonp_ulong( gui->http, "bank_nonce_advance_failed", cur->out.bank_nonce_advance_failed - prev->out.bank_nonce_advance_failed ); + jsonp_ulong( gui->http, "bank_nonce_wrong_blockhash", cur->out.bank_nonce_wrong_blockhash - prev->out.bank_nonce_wrong_blockhash ); + jsonp_ulong( gui->http, "block_success", cur->out.block_success - prev->out.block_success ); + jsonp_ulong( gui->http, "block_fail", cur->out.block_fail - prev->out.block_fail ); + jsonp_close_object( gui->http ); + jsonp_close_object( gui->http ); +} + +void +fd_guih_printf_live_txn_waterfall( fd_guih_t * gui, + fd_guih_txn_waterfall_t const * prev, + fd_guih_txn_waterfall_t const * cur, + ulong next_leader_slot ) { + jsonp_open_envelope( gui->http, "summary", "live_txn_waterfall" ); + jsonp_open_object( gui->http, "value" ); + jsonp_ulong( gui->http, "next_leader_slot", next_leader_slot ); + fd_guih_printf_waterfall( gui, prev, cur ); + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +static void +fd_guih_printf_network_metrics( fd_guih_t * gui, + fd_guih_network_stats_t const * cur ) { + jsonp_open_array( gui->http, "ingress" ); + jsonp_ulong( gui->http, NULL, cur->in.turbine ); + jsonp_ulong( gui->http, NULL, cur->in.gossip ); + jsonp_ulong( gui->http, NULL, cur->in.tpu ); + jsonp_ulong( gui->http, NULL, cur->in.repair ); + jsonp_ulong( gui->http, NULL, cur->in.rserve ); + jsonp_ulong( gui->http, NULL, cur->in.metric ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "egress" ); + jsonp_ulong( gui->http, NULL, cur->out.turbine ); + jsonp_ulong( gui->http, NULL, cur->out.gossip ); + jsonp_ulong( gui->http, NULL, cur->out.tpu ); + jsonp_ulong( gui->http, NULL, cur->out.repair ); + jsonp_ulong( gui->http, NULL, cur->out.rserve ); + jsonp_ulong( gui->http, NULL, cur->out.metric ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "ingress_ema" ); + for( ulong i=0UL; ihttp, NULL, fd_double_if( gui->summary.net_rate_ema_ready, gui->summary.ingress_ema[ i ], 0.0 ) ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "egress_ema" ); + for( ulong i=0UL; ihttp, NULL, fd_double_if( gui->summary.net_rate_ema_ready, gui->summary.egress_ema[ i ], 0.0 ) ); + jsonp_close_array( gui->http ); + fd_guih_rate_entry_t const * ingress_max_head = fd_guih_rate_deque_empty( gui->summary.ingress_maxq ) ? NULL : fd_guih_rate_deque_peek_head_const( gui->summary.ingress_maxq ); + fd_guih_rate_entry_t const * egress_max_head = fd_guih_rate_deque_empty( gui->summary.egress_maxq ) ? NULL : fd_guih_rate_deque_peek_head_const( gui->summary.egress_maxq ); + jsonp_ulong( gui->http, "ingress_max_5m", ingress_max_head ? (ulong)ingress_max_head->value : 0UL ); + jsonp_ulong( gui->http, "egress_max_5m", egress_max_head ? (ulong)egress_max_head->value : 0UL ); +} + +void +fd_guih_printf_live_network_metrics( fd_guih_t * gui, + fd_guih_network_stats_t const * cur ) { + jsonp_open_envelope( gui->http, "summary", "live_network_metrics" ); + jsonp_open_object( gui->http, "value" ); + fd_guih_printf_network_metrics( gui, cur ); + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +static void +fd_guih_printf_tile_stats( fd_guih_t * gui, + fd_guih_tile_stats_t const * prev, + fd_guih_tile_stats_t const * cur ) { + jsonp_open_object( gui->http, "tile_primary_metric" ); + jsonp_ulong( gui->http, "quic", cur->quic_conn_cnt ); + jsonp_double( gui->http, "bundle_rtt_smoothed_millis", (double)(cur->bundle_rtt_smoothed_nanos) / 1000000.0 ); + + fd_histf_t bundle_rx_delay_hist_delta[ 1 ]; + fd_histf_subtract( &cur->bundle_rx_delay_hist, &prev->bundle_rx_delay_hist, bundle_rx_delay_hist_delta ); + ulong bundle_rx_delay_nanos_p90 = fd_histf_percentile( bundle_rx_delay_hist_delta, 90U, ULONG_MAX ); + jsonp_double( gui->http, "bundle_rx_delay_millis_p90", fd_double_if(bundle_rx_delay_nanos_p90==ULONG_MAX, 0.0, (double)(bundle_rx_delay_nanos_p90) / 1000000.0 )); + + if( FD_LIKELY( cur->sample_time_nanos>prev->sample_time_nanos ) ) { + jsonp_ulong( gui->http, "net_in", (ulong)((double)(cur->net_in_rx_bytes - prev->net_in_rx_bytes) * 1000000000.0 / (double)(cur->sample_time_nanos - prev->sample_time_nanos) )); + jsonp_ulong( gui->http, "net_out", (ulong)((double)(cur->net_out_tx_bytes - prev->net_out_tx_bytes) * 1000000000.0 / (double)(cur->sample_time_nanos - prev->sample_time_nanos) )); + } else { + jsonp_ulong( gui->http, "net_in", 0 ); + jsonp_ulong( gui->http, "net_out", 0 ); + } + if( FD_LIKELY( cur->verify_total_cnt>prev->verify_total_cnt ) ) { + jsonp_double( gui->http, "verify", (double)(cur->verify_drop_cnt-prev->verify_drop_cnt) / (double)(cur->verify_total_cnt-prev->verify_total_cnt) ); + } else { + jsonp_double( gui->http, "verify", 0.0 ); + } + if( FD_LIKELY( cur->dedup_total_cnt>prev->dedup_total_cnt ) ) { + jsonp_double( gui->http, "dedup", (double)(cur->dedup_drop_cnt-prev->dedup_drop_cnt) / (double)(cur->dedup_total_cnt-prev->dedup_total_cnt) ); + } else { + jsonp_double( gui->http, "dedup", 0.0 ); + } + jsonp_ulong( gui->http, "bank", cur->bank_txn_exec_cnt - prev->bank_txn_exec_cnt ); + jsonp_double( gui->http, "pack", !cur->pack_buffer_capacity ? 1.0 : (double)cur->pack_buffer_cnt/(double)cur->pack_buffer_capacity ); + jsonp_double( gui->http, "poh", 0.0 ); + jsonp_double( gui->http, "shred", 0.0 ); + jsonp_double( gui->http, "store", 0.0 ); + jsonp_close_object( gui->http ); +} + +void +fd_guih_printf_live_tile_stats( fd_guih_t * gui, + fd_guih_tile_stats_t const * prev, + fd_guih_tile_stats_t const * cur ) { + jsonp_open_envelope( gui->http, "summary", "live_tile_primary_metric" ); + jsonp_open_object( gui->http, "value" ); + jsonp_ulong( gui->http, "next_leader_slot", 0UL ); + fd_guih_printf_tile_stats( gui, prev, cur ); + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +static void +fd_guih_printf_tile_timers( fd_guih_t * gui, + fd_guih_tile_timers_t const * prev, + fd_guih_tile_timers_t const * cur ) { + for( ulong i=0UL; itopo->tile_cnt; i++ ) { + fd_topo_tile_t const * tile = &gui->topo->tiles[ i ]; + + if( FD_UNLIKELY( !strncmp( tile->name, "bench", 5UL ) ) ) { + /* bench tiles not reported */ + continue; + } + + ulong cur_total = 0UL; + for( ulong j=0UL; jhttp, NULL, idle_ratio ); + } +} + +static void +fd_guih_printf_tile_metrics( fd_guih_t * gui, + fd_guih_tile_timers_t const * prev, + fd_guih_tile_timers_t const * cur ) { + jsonp_open_array( gui->http, "timers" ); + for( ulong i=0UL; itopo->tile_cnt; i++ ) { + fd_topo_tile_t const * tile = &gui->topo->tiles[ i ]; + + if( FD_UNLIKELY( !strncmp( tile->name, "bench", 5UL ) ) ) { + /* bench tiles not reported */ + jsonp_null( gui->http, NULL ); + continue; + } + + ulong cur_total = 0UL; + for( ulong j=0UL; jhttp, NULL ); + } else { + jsonp_open_array( gui->http, NULL ); + for (ulong j = 0UL; jhttp, NULL, percent_trunc ); + } + jsonp_close_array( gui->http ); + } + } + jsonp_close_array( gui->http ); + + jsonp_open_array( gui->http, "sched_timers" ); + for( ulong i=0UL; itopo->tile_cnt; i++ ) { + fd_topo_tile_t const * tile = &gui->topo->tiles[ i ]; + + if( FD_UNLIKELY( !strncmp( tile->name, "bench", 5UL ) ) ) { + /* bench tiles not reported */ + jsonp_null( gui->http, NULL ); + continue; + } + + ulong cur_total = 0UL; + for( ulong j=0UL; jhttp, NULL ); + } else { + jsonp_open_array( gui->http, NULL ); + for (ulong j = 0UL; jhttp, NULL, percent_trunc ); + } + jsonp_close_array( gui->http ); + } + } + jsonp_close_array( gui->http ); + + jsonp_open_array( gui->http, "in_backp" ); + for( ulong i=0UL; itopo->tile_cnt; i++ ) { + jsonp_bool( gui->http, NULL, cur[ i ].in_backp ); + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "backp_msgs" ); + for( ulong i=0UL; itopo->tile_cnt; i++ ) { + jsonp_ulong( gui->http, NULL, cur[ i ].backp_cnt ); + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "alive" ); + for( ulong i=0UL; itopo->tile_cnt; i++ ) { + /* We use a longer sampling window for this metric to minimize + false positives */ + jsonp_ulong( gui->http, NULL, fd_ulong_if( cur[ i ].status==2U, 2UL, (ulong)(cur[ i ].heartbeat>prev[ i ].heartbeat) ) ); + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "nvcsw" ); + for( ulong i=0UL; itopo->tile_cnt; i++ ) { + jsonp_ulong( gui->http, NULL, cur[ i ].nvcsw ); + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "nivcsw" ); + for( ulong i=0UL; itopo->tile_cnt; i++ ) { + jsonp_ulong( gui->http, NULL, cur[ i ].nivcsw ); + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "minflt" ); + for( ulong i=0UL; itopo->tile_cnt; i++ ) { + jsonp_ulong( gui->http, NULL, cur[ i ].minflt ); + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "majflt" ); + for( ulong i=0UL; itopo->tile_cnt; i++ ) { + jsonp_ulong( gui->http, NULL, cur[ i ].majflt ); + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "last_cpu" ); + for( ulong i=0UL; itopo->tile_cnt; i++ ) { + jsonp_ulong( gui->http, NULL, cur[ i ].last_cpu ); + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "interrupts" ); + for( ulong i=0UL; itopo->tile_cnt; i++ ) { + jsonp_ulong( gui->http, NULL, cur[ i ].interrupts ); + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "priority" ); + for( ulong i=0UL; itopo->tile_cnt; i++ ) { + int priority = fd_topob_tile_priority_type( gui->topo->tiles[ i ].name ); + + char const * priority_type_str = "unknown"; + switch( priority ) { + case FD_TOPOB_PRIORITY_FLOATING: priority_type_str = "floating"; break; + case FD_TOPOB_PRIORITY_STARTUP: priority_type_str = "startup"; break; + case FD_TOPOB_PRIORITY_NORMAL: priority_type_str = "normal"; break; + case FD_TOPOB_PRIORITY_CRITICAL: priority_type_str = "critical"; break; + } + + jsonp_string( gui->http, NULL, priority_type_str ); + } + jsonp_close_array( gui->http ); +} + +void +fd_guih_printf_live_tile_timers( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "summary", "live_tile_timers" ); + jsonp_open_array( gui->http, "value" ); + fd_guih_tile_timers_t * cur = gui->summary.tile_timers_snap + ((gui->summary.tile_timers_snap_idx+(FD_GUIH_TILE_TIMER_SNAP_CNT-1UL))%FD_GUIH_TILE_TIMER_SNAP_CNT) * gui->tile_cnt; + fd_guih_tile_timers_t * prev = gui->summary.tile_timers_snap + ((gui->summary.tile_timers_snap_idx+(FD_GUIH_TILE_TIMER_SNAP_CNT-2UL))%FD_GUIH_TILE_TIMER_SNAP_CNT) * gui->tile_cnt; + fd_guih_printf_tile_timers( gui, prev, cur ); + jsonp_close_array( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_live_tile_metrics( fd_guih_t * gui ) { + fd_guih_tile_timers_t * cur = gui->summary.tile_timers_snap + ((gui->summary.tile_timers_snap_idx+(FD_GUIH_TILE_TIMER_SNAP_CNT-1UL))%FD_GUIH_TILE_TIMER_SNAP_CNT) * gui->tile_cnt; + fd_guih_tile_timers_t * prev = gui->summary.tile_timers_snap + ((gui->summary.tile_timers_snap_idx+(FD_GUIH_TILE_TIMER_SNAP_CNT-2UL))%FD_GUIH_TILE_TIMER_SNAP_CNT) * gui->tile_cnt; + jsonp_open_envelope( gui->http, "summary", "live_tile_metrics" ); + jsonp_open_object( gui->http, "value" ); + fd_guih_printf_tile_metrics( gui, prev, cur ); + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_estimated_tps( fd_guih_t * gui ) { + ulong idx = (gui->summary.estimated_tps_history_idx+FD_GUIH_TPS_HISTORY_SAMPLE_CNT-1UL) % FD_GUIH_TPS_HISTORY_SAMPLE_CNT; + + jsonp_open_envelope( gui->http, "summary", "estimated_tps" ); + jsonp_open_object( gui->http, "value" ); + ulong vote_cnt = gui->summary.estimated_tps_history[ idx ].vote_failed + + gui->summary.estimated_tps_history[ idx ].vote_success; + ulong total_cnt = vote_cnt + + gui->summary.estimated_tps_history[ idx ].nonvote_success + + gui->summary.estimated_tps_history[ idx ].nonvote_failed; + jsonp_double( gui->http, "total", (double)total_cnt/(double)FD_GUIH_TPS_HISTORY_WINDOW_DURATION_SECONDS ); + jsonp_double( gui->http, "vote", (double)vote_cnt/(double)FD_GUIH_TPS_HISTORY_WINDOW_DURATION_SECONDS ); + jsonp_double( gui->http, "nonvote_success", (double)gui->summary.estimated_tps_history[ idx ].nonvote_success/(double)FD_GUIH_TPS_HISTORY_WINDOW_DURATION_SECONDS ); + jsonp_double( gui->http, "nonvote_failed", (double)gui->summary.estimated_tps_history[ idx ].nonvote_failed/(double)FD_GUIH_TPS_HISTORY_WINDOW_DURATION_SECONDS ); + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_health( fd_guih_t * gui ) { + fd_topo_t const * topo = gui->topo; + + ulong diag_tile_idx = fd_topo_find_tile( topo, "diag", 0UL ); + + /* Default to disabled if no diag tile */ + ulong bundle_status = FD_DIAG_BUNDLE_STATUS_DISABLED; + ulong vote_status = FD_DIAG_VOTE_STATUS_DISABLED; + ulong replay_status = FD_DIAG_REPLAY_STATUS_DISABLED; + ulong turbine_status = FD_DIAG_TURBINE_STATUS_DISABLED; + + if( FD_LIKELY( diag_tile_idx!=ULONG_MAX ) ) { + volatile ulong const * metrics = fd_metrics_tile( topo->tiles[ diag_tile_idx ].metrics ); + bundle_status = metrics[ MIDX( GAUGE, DIAG, BUNDLE_STATUS ) ]; + vote_status = metrics[ MIDX( GAUGE, DIAG, VOTE_STATUS ) ]; + replay_status = metrics[ MIDX( GAUGE, DIAG, REPLAY_STATUS ) ]; + turbine_status = metrics[ MIDX( GAUGE, DIAG, TURBINE_STATUS ) ]; + } + + if( FD_UNLIKELY( !gui->summary.is_full_client ) ) { + switch( gui->summary.vote_state ) { + case FD_GUIH_VOTE_STATE_VOTING: vote_status = FD_DIAG_VOTE_STATUS_VOTING; break; + case FD_GUIH_VOTE_STATE_DELINQUENT: vote_status = FD_DIAG_VOTE_STATUS_DELINQUENT; break; + default: vote_status = FD_DIAG_VOTE_STATUS_DISABLED; break; + } + replay_status = FD_DIAG_REPLAY_STATUS_DISABLED; + turbine_status = FD_DIAG_TURBINE_STATUS_DISABLED; + } + + /* Map bundle status to string */ + char const * bundle_str; + switch( bundle_status ) { + case FD_DIAG_BUNDLE_STATUS_DISCONNECTED: bundle_str = "disconnected"; break; + case FD_DIAG_BUNDLE_STATUS_CONNECTING: bundle_str = "connecting"; break; + case FD_DIAG_BUNDLE_STATUS_CONNECTED: bundle_str = "connected"; break; + case FD_DIAG_BUNDLE_STATUS_SLEEPING: bundle_str = "sleeping"; break; + default: bundle_str = "disabled"; break; + } + + /* Map vote status to string */ + char const * vote_str; + switch( vote_status ) { + case FD_DIAG_VOTE_STATUS_NOT_STARTED: vote_str = "not_started"; break; + case FD_DIAG_VOTE_STATUS_DELINQUENT: vote_str = "delinquent"; break; + case FD_DIAG_VOTE_STATUS_VOTING: vote_str = "voting"; break; + default: vote_str = "disabled"; break; + } + + /* Map replay status to string */ + char const * replay_str; + switch( replay_status ) { + case FD_DIAG_REPLAY_STATUS_NOT_STARTED: replay_str = "not_started"; break; + case FD_DIAG_REPLAY_STATUS_BEHIND: replay_str = "behind"; break; + case FD_DIAG_REPLAY_STATUS_RUNNING: replay_str = "running"; break; + default: replay_str = "disabled"; break; + } + + /* Map turbine status to string */ + char const * turbine_str; + switch( turbine_status ) { + case FD_DIAG_TURBINE_STATUS_NOT_STARTED: turbine_str = "not_started"; break; + case FD_DIAG_TURBINE_STATUS_STALLED: turbine_str = "stalled"; break; + case FD_DIAG_TURBINE_STATUS_REPAIR_OUTPACING: turbine_str = "repair_outpacing"; break; + case FD_DIAG_TURBINE_STATUS_RUNNING: turbine_str = "running"; break; + default: turbine_str = "disabled"; break; + } + + jsonp_open_envelope( gui->http, "summary", "health" ); + jsonp_open_object( gui->http, "value" ); + jsonp_string( gui->http, "vote", vote_str ); + jsonp_string( gui->http, "bundle", bundle_str ); + jsonp_string( gui->http, "replay", replay_str ); + jsonp_string( gui->http, "turbine", turbine_str ); + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +static int +fd_guih_gossip_contains( fd_guih_t const * gui, + uchar const * pubkey ) { + for( ulong i=0UL; igossip.peer_cnt; i++ ) { + if( FD_UNLIKELY( !memcmp( gui->gossip.peers[ i ].pubkey->uc, pubkey, 32 ) ) ) return 1; + } + return 0; +} + +static int +fd_guih_vote_acct_contains( fd_guih_t const * gui, + uchar const * pubkey ) { + for( ulong i=0UL; ivote_account.vote_account_cnt; i++ ) { + if( FD_UNLIKELY( !memcmp( gui->vote_account.vote_accounts[ i ].pubkey, pubkey, 32 ) ) ) return 1; + } + return 0; +} + +static int +fd_guih_validator_info_contains( fd_guih_t const * gui, + uchar const * pubkey ) { + for( ulong i=0UL; ivalidator_info.info_cnt; i++ ) { + if( FD_UNLIKELY( !memcmp( gui->validator_info.info[ i ].pubkey, pubkey, 32 ) ) ) return 1; + } + return 0; +} + +static void +fd_guih_printf_peer( fd_guih_t * gui, + uchar const * identity_pubkey ) { + ulong gossip_idx = ULONG_MAX; + ulong info_idx = ULONG_MAX; + ulong vote_idxs[ FD_GUIH_MAX_PEER_CNT ] = {0}; + ulong vote_idx_cnt = 0UL; + + for( ulong i=0UL; igossip.peer_cnt; i++ ) { + if( FD_UNLIKELY( !memcmp( gui->gossip.peers[ i ].pubkey->uc, identity_pubkey, 32 ) ) ) { + gossip_idx = i; + break; + } + } + + for( ulong i=0UL; ivalidator_info.info_cnt; i++ ) { + if( FD_UNLIKELY( !memcmp( gui->validator_info.info[ i ].pubkey, identity_pubkey, 32 ) ) ) { + info_idx = i; + break; + } + } + + for( ulong i=0UL; ivote_account.vote_account_cnt; i++ ) { + if( FD_UNLIKELY( !memcmp( gui->vote_account.vote_accounts[ i ].pubkey, identity_pubkey, 32 ) ) ) { + vote_idxs[ vote_idx_cnt++ ] = i; + } + } + + jsonp_open_object( gui->http, NULL ); + + char identity_base58[ FD_BASE58_ENCODED_32_SZ ]; + fd_base58_encode_32( identity_pubkey, NULL, identity_base58 ); + jsonp_string( gui->http, "identity_pubkey", identity_base58 ); + + if( FD_UNLIKELY( gossip_idx==ULONG_MAX ) ) { + jsonp_string( gui->http, "gossip", NULL ); + } else { + jsonp_open_object( gui->http, "gossip" ); + + char version[ 64UL ]; + FD_TEST( fd_gossip_version_cstr( gui->gossip.peers[ gossip_idx ].version.major, gui->gossip.peers[ gossip_idx ].version.minor, gui->gossip.peers[ gossip_idx ].version.patch, version, sizeof( version ) ) ); + jsonp_string( gui->http, "version", version ); + jsonp_null( gui->http, "client_id" ); /* TODO: Frankendancer support */ + jsonp_ulong( gui->http, "feature_set", gui->gossip.peers[ gossip_idx ].version.feature_set ); + jsonp_ulong( gui->http, "wallclock", gui->gossip.peers[ gossip_idx ].wallclock ); + jsonp_ulong( gui->http, "shred_version", gui->gossip.peers[ gossip_idx ].shred_version ); + jsonp_open_object( gui->http, "sockets" ); + for( ulong j=0UL; j<12UL; j++ ) { + if( FD_LIKELY( !gui->gossip.peers[ gossip_idx ].sockets[ j ].ipv4 && !gui->gossip.peers[ gossip_idx ].sockets[ j ].port ) ) continue; + char const * tag; + switch( j ) { + case 0: tag = "gossip"; break; + case 1: tag = "rpc"; break; + case 2: tag = "rpc_pubsub"; break; + case 3: tag = "serve_repair"; break; + case 4: tag = "serve_repair_quic"; break; + case 5: tag = "tpu"; break; + case 6: tag = "tpu_quic"; break; + case 7: tag = "tvu"; break; + case 8: tag = "tvu_quic"; break; + case 9: tag = "tpu_forwards"; break; + case 10: tag = "tpu_forwards_quic"; break; + case 11: tag = "tpu_vote"; break; + } + char line[ 64 ]; + FD_TEST( fd_cstr_printf( line, sizeof( line ), NULL, FD_IP4_ADDR_FMT ":%u", FD_IP4_ADDR_FMT_ARGS(gui->gossip.peers[ gossip_idx ].sockets[ j ].ipv4 ), gui->gossip.peers[ gossip_idx ].sockets[ j ].port ) ); + jsonp_string( gui->http, tag, line ); + } + jsonp_close_object( gui->http ); + + jsonp_close_object( gui->http ); + } + + jsonp_open_array( gui->http, "vote" ); + ulong vote_idx_cnt_bounded = fd_ulong_min( vote_idx_cnt, 5UL ); + for( ulong i=0UL; ihttp, NULL ); + char vote_account_base58[ FD_BASE58_ENCODED_32_SZ ]; + fd_base58_encode_32( gui->vote_account.vote_accounts[ vote_idxs[ i ] ].vote_account->uc, NULL, vote_account_base58 ); + jsonp_string( gui->http, "vote_account", vote_account_base58 ); + jsonp_ulong_as_str( gui->http, "activated_stake", gui->vote_account.vote_accounts[ vote_idxs[ i ] ].activated_stake ); + jsonp_ulong( gui->http, "last_vote", gui->vote_account.vote_accounts[ vote_idxs[ i ] ].last_vote ); + jsonp_ulong( gui->http, "root_slot", gui->vote_account.vote_accounts[ vote_idxs[ i ] ].root_slot ); + jsonp_ulong( gui->http, "epoch_credits", gui->vote_account.vote_accounts[ vote_idxs[ i ] ].epoch_credits ); + jsonp_ulong( gui->http, "commission", gui->vote_account.vote_accounts[ vote_idxs[ i ] ].commission ); + jsonp_bool( gui->http, "delinquent", gui->vote_account.vote_accounts[ vote_idxs[ i ] ].delinquent ); + jsonp_close_object( gui->http ); + } + jsonp_close_array( gui->http ); + + if( FD_UNLIKELY( info_idx==ULONG_MAX ) ) { + jsonp_string( gui->http, "info", NULL ); + } else { + jsonp_open_object( gui->http, "info" ); + jsonp_string( gui->http, "name", gui->validator_info.info[ info_idx ].name ); + jsonp_string( gui->http, "details", gui->validator_info.info[ info_idx ].details ); + jsonp_string( gui->http, "website", gui->validator_info.info[ info_idx ].website ); + jsonp_string( gui->http, "icon_url", gui->validator_info.info[ info_idx ].icon_uri ); + jsonp_string( gui->http, "keybase_username", "" ); + jsonp_close_object( gui->http ); + } + + jsonp_close_object( gui->http ); +} + +void +fd_guih_printf_peers_gossip_update( fd_guih_t * gui, + ulong const * updated, + ulong updated_cnt, + fd_pubkey_t const * removed, + ulong removed_cnt, + ulong const * added, + ulong added_cnt ) { + jsonp_open_envelope( gui->http, "peers", "update" ); + jsonp_open_object( gui->http, "value" ); + jsonp_open_array( gui->http, "add" ); + for( ulong i=0UL; igossip.peers[ added[ i ] ].pubkey->uc ) && + !fd_guih_validator_info_contains( gui, gui->gossip.peers[ added[ i ] ].pubkey->uc ); + if( FD_LIKELY( !actually_added ) ) continue; + + fd_guih_printf_peer( gui, gui->gossip.peers[ added[ i ] ].pubkey->uc ); + } + jsonp_close_array( gui->http ); + + jsonp_open_array( gui->http, "update" ); + for( ulong i=0UL; igossip.peers[ added[ i ] ].pubkey->uc ) && + !fd_guih_validator_info_contains( gui, gui->gossip.peers[ added[ i ] ].pubkey->uc ); + if( FD_LIKELY( actually_added ) ) continue; + + fd_guih_printf_peer( gui, gui->gossip.peers[ added[ i ] ].pubkey->uc ); + } + for( ulong i=0UL; igossip.peers[ updated[ i ] ].pubkey->uc ); + } + jsonp_close_array( gui->http ); + + jsonp_open_array( gui->http, "remove" ); + for( ulong i=0UL; ihttp, NULL ); + char identity_base58[ FD_BASE58_ENCODED_32_SZ ]; + fd_base58_encode_32( removed[ i ].uc, NULL, identity_base58 ); + jsonp_string( gui->http, "identity_pubkey", identity_base58 ); + jsonp_close_object( gui->http ); + } + jsonp_close_array( gui->http ); + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_peers_vote_account_update( fd_guih_t * gui, + ulong const * updated, + ulong updated_cnt, + fd_pubkey_t const * removed, + ulong removed_cnt, + ulong const * added, + ulong added_cnt ) { + jsonp_open_envelope( gui->http, "peers", "update" ); + jsonp_open_object( gui->http, "value" ); + jsonp_open_array( gui->http, "add" ); + for( ulong i=0UL; ivote_account.vote_accounts[ added[ i ] ].pubkey->uc ) && + !fd_guih_validator_info_contains( gui, gui->vote_account.vote_accounts[ added[ i ] ].pubkey->uc ); + if( FD_LIKELY( !actually_added ) ) continue; + + fd_guih_printf_peer( gui, gui->vote_account.vote_accounts[ added[ i ] ].pubkey->uc ); + } + jsonp_close_array( gui->http ); + + jsonp_open_array( gui->http, "update" ); + for( ulong i=0UL; ivote_account.vote_accounts[ added[ i ] ].pubkey->uc ) && + !fd_guih_validator_info_contains( gui, gui->vote_account.vote_accounts[ added[ i ] ].pubkey->uc ); + if( FD_LIKELY( actually_added ) ) continue; + + fd_guih_printf_peer( gui, gui->vote_account.vote_accounts[ added[ i ] ].pubkey->uc ); + } + for( ulong i=0UL; ivote_account.vote_accounts[ updated[ i ] ].pubkey->uc ); + } + jsonp_close_array( gui->http ); + + jsonp_open_array( gui->http, "remove" ); + for( ulong i=0UL; ihttp, NULL ); + char identity_base58[ FD_BASE58_ENCODED_32_SZ ]; + fd_base58_encode_32( removed[ i ].uc, NULL, identity_base58 ); + jsonp_string( gui->http, "identity_pubkey", identity_base58 ); + jsonp_close_object( gui->http ); + } + jsonp_close_array( gui->http ); + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_peers_validator_info_update( fd_guih_t * gui, + ulong const * updated, + ulong updated_cnt, + fd_pubkey_t const * removed, + ulong removed_cnt, + ulong const * added, + ulong added_cnt ) { + jsonp_open_envelope( gui->http, "peers", "update" ); + jsonp_open_object( gui->http, "value" ); + jsonp_open_array( gui->http, "add" ); + for( ulong i=0UL; ivalidator_info.info[ added[ i ] ].pubkey->uc ) && + !fd_guih_vote_acct_contains( gui, gui->validator_info.info[ added[ i ] ].pubkey->uc ); + if( FD_LIKELY( !actually_added ) ) continue; + + fd_guih_printf_peer( gui, gui->validator_info.info[ added[ i ] ].pubkey->uc ); + } + jsonp_close_array( gui->http ); + + jsonp_open_array( gui->http, "update" ); + for( ulong i=0UL; ivalidator_info.info[ added[ i ] ].pubkey->uc ) && + !fd_guih_vote_acct_contains( gui, gui->validator_info.info[ added[ i ] ].pubkey->uc ); + if( FD_LIKELY( actually_added ) ) continue; + + fd_guih_printf_peer( gui, gui->validator_info.info[ added[ i ] ].pubkey->uc ); + } + for( ulong i=0UL; ivalidator_info.info[ updated[ i ] ].pubkey->uc ); + } + jsonp_close_array( gui->http ); + + jsonp_open_array( gui->http, "remove" ); + for( ulong i=0UL; ihttp, NULL ); + char identity_base58[ FD_BASE58_ENCODED_32_SZ ]; + fd_base58_encode_32( removed[ i ].uc, NULL, identity_base58 ); + jsonp_string( gui->http, "identity_pubkey", identity_base58 ); + jsonp_close_object( gui->http ); + } + jsonp_close_array( gui->http ); + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_peers_all( fd_guih_t * gui ) { + jsonp_open_envelope( gui->http, "peers", "update" ); + jsonp_open_object( gui->http, "value" ); + jsonp_open_array( gui->http, "add" ); + for( ulong i=0UL; igossip.peer_cnt; i++ ) { + fd_guih_printf_peer( gui, gui->gossip.peers[ i ].pubkey->uc ); + } + for( ulong i=0UL; ivote_account.vote_account_cnt; i++ ) { + int actually_added = !fd_guih_gossip_contains( gui, gui->vote_account.vote_accounts[ i ].pubkey->uc ); + if( FD_UNLIKELY( actually_added ) ) { + fd_guih_printf_peer( gui, gui->vote_account.vote_accounts[ i ].pubkey->uc ); + } + } + for( ulong i=0UL; ivalidator_info.info_cnt; i++ ) { + int actually_added = !fd_guih_gossip_contains( gui, gui->validator_info.info[ i ].pubkey->uc ) && + !fd_guih_vote_acct_contains( gui, gui->validator_info.info[ i ].pubkey->uc ); + if( FD_UNLIKELY( actually_added ) ) { + fd_guih_printf_peer( gui, gui->validator_info.info[ i ].pubkey->uc ); + } + } + jsonp_close_array( gui->http ); + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +static void +fd_guih_printf_ts_tile_timers( fd_guih_t * gui, + fd_guih_tile_timers_t const * prev, + fd_guih_tile_timers_t const * cur ) { + jsonp_open_object( gui->http, NULL ); + jsonp_ulong_as_str( gui->http, "timestamp_nanos", 0 ); + jsonp_open_array( gui->http, "tile_timers" ); + fd_guih_printf_tile_timers( gui, prev, cur ); + jsonp_close_array( gui->http ); + jsonp_close_object( gui->http ); +} + +void +fd_guih_printf_slot( fd_guih_t * gui, + ulong _slot ) { + fd_guih_slot_t * slot = fd_guih_get_slot( gui, _slot ); + + char const * level; + switch( slot->level ) { + case FD_GUIH_SLOT_LEVEL_INCOMPLETE: level = "incomplete"; break; + case FD_GUIH_SLOT_LEVEL_COMPLETED: level = "completed"; break; + case FD_GUIH_SLOT_LEVEL_OPTIMISTICALLY_CONFIRMED: level = "optimistically_confirmed"; break; + case FD_GUIH_SLOT_LEVEL_ROOTED: level = "rooted"; break; + case FD_GUIH_SLOT_LEVEL_FINALIZED: level = "finalized"; break; + default: level = "unknown"; break; + } + + fd_guih_slot_t * parent_slot = fd_guih_get_slot( gui, slot->parent_slot ); + long duration_nanos = LONG_MAX; + if( FD_LIKELY( slot->completed_time!=LONG_MAX && parent_slot && parent_slot->completed_time!=LONG_MAX ) ) { + duration_nanos = slot->completed_time - parent_slot->completed_time; + } + + jsonp_open_envelope( gui->http, "slot", "update" ); + jsonp_open_object( gui->http, "value" ); + fd_guih_leader_slot_t * lslot = fd_guih_get_leader_slot( gui, _slot ); + jsonp_open_object( gui->http, "publish" ); + jsonp_ulong( gui->http, "slot", _slot ); + jsonp_bool( gui->http, "mine", slot->mine ); + if( FD_UNLIKELY( slot->vote_slot!=ULONG_MAX ) ) jsonp_ulong( gui->http, "vote_slot", slot->vote_slot ); + else jsonp_null( gui->http, "vote_slot" ); + if( FD_UNLIKELY( slot->vote_latency!=UCHAR_MAX ) ) jsonp_ulong( gui->http, "vote_latency", slot->vote_latency ); + else jsonp_null( gui->http, "vote_latency" ); + + if( FD_UNLIKELY( lslot && lslot->leader_start_time!=LONG_MAX ) ) jsonp_long_as_str( gui->http, "start_timestamp_nanos", lslot->leader_start_time ); + else jsonp_null ( gui->http, "start_timestamp_nanos" ); + if( FD_UNLIKELY( lslot && lslot->leader_end_time!=LONG_MAX ) ) jsonp_long_as_str( gui->http, "target_end_timestamp_nanos", lslot->leader_end_time ); + else jsonp_null ( gui->http, "target_end_timestamp_nanos" ); + + jsonp_bool( gui->http, "skipped", slot->skipped ); + if( FD_UNLIKELY( duration_nanos==LONG_MAX ) ) jsonp_null( gui->http, "duration_nanos" ); + else jsonp_long( gui->http, "duration_nanos", duration_nanos ); + if( FD_UNLIKELY( slot->completed_time==LONG_MAX ) ) jsonp_null( gui->http, "completed_time_nanos" ); + else jsonp_long_as_str( gui->http, "completed_time_nanos", slot->completed_time ); + jsonp_string( gui->http, "level", level ); + if( FD_UNLIKELY( slot->nonvote_success==UINT_MAX ) ) jsonp_null( gui->http, "success_nonvote_transaction_cnt" ); + else jsonp_ulong( gui->http, "success_nonvote_transaction_cnt", slot->nonvote_success ); + if( FD_UNLIKELY( slot->nonvote_failed==UINT_MAX ) ) jsonp_null( gui->http, "failed_nonvote_transaction_cnt" ); + else jsonp_ulong( gui->http, "failed_nonvote_transaction_cnt", slot->nonvote_failed ); + if( FD_UNLIKELY( slot->vote_success==UINT_MAX ) ) jsonp_null( gui->http, "success_vote_transaction_cnt" ); + else jsonp_ulong( gui->http, "success_vote_transaction_cnt", slot->vote_success ); + if( FD_UNLIKELY( slot->vote_failed==UINT_MAX ) ) jsonp_null( gui->http, "failed_vote_transaction_cnt" ); + else jsonp_ulong( gui->http, "failed_vote_transaction_cnt", slot->vote_failed ); + if( FD_UNLIKELY( slot->max_compute_units==UINT_MAX ) ) jsonp_null( gui->http, "max_compute_units" ); + else jsonp_ulong( gui->http, "max_compute_units", slot->max_compute_units ); + if( FD_UNLIKELY( slot->compute_units==UINT_MAX ) ) jsonp_null( gui->http, "compute_units" ); + else jsonp_ulong( gui->http, "compute_units", slot->compute_units ); + if( FD_UNLIKELY( slot->shred_cnt==UINT_MAX ) ) jsonp_null( gui->http, "shreds" ); + else jsonp_ulong( gui->http, "shreds", slot->shred_cnt ); + if( FD_UNLIKELY( slot->transaction_fee==ULONG_MAX ) ) jsonp_null( gui->http, "transaction_fee" ); + else jsonp_ulong_as_str( gui->http, "transaction_fee", slot->transaction_fee ); + if( FD_UNLIKELY( slot->priority_fee==ULONG_MAX ) ) jsonp_null( gui->http, "priority_fee" ); + else jsonp_ulong_as_str( gui->http, "priority_fee", slot->priority_fee ); + if( FD_UNLIKELY( slot->tips==ULONG_MAX ) ) jsonp_null( gui->http, "tips" ); + else jsonp_ulong_as_str( gui->http, "tips", slot->tips ); + jsonp_close_object( gui->http ); + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_summary_ping( fd_guih_t * gui, + ulong id ) { + jsonp_open_envelope( gui->http, "summary", "ping" ); + jsonp_ulong( gui->http, "id", id ); + jsonp_null( gui->http, "value" ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_slot_rankings_request( fd_guih_t * gui, + ulong id, + int mine ) { + ulong epoch = ULONG_MAX; + for( ulong i = 0UL; i<2UL; i++ ) { + if( FD_LIKELY( gui->epoch.has_epoch[ i ] ) ) { + /* the "current" epoch is the smallest */ + epoch = fd_ulong_min( epoch, gui->epoch.epochs[ i ].epoch ); + } + } + ulong epoch_idx = epoch % 2UL; + + fd_guih_slot_rankings_t * rankings = fd_ptr_if( mine, (fd_guih_slot_rankings_t *)gui->epoch.epochs[ epoch_idx ].my_rankings, (fd_guih_slot_rankings_t *)gui->epoch.epochs[ epoch_idx ].rankings ); + + jsonp_open_envelope( gui->http, "slot", "query_rankings" ); + jsonp_ulong( gui->http, "id", id ); + jsonp_open_object( gui->http, "value" ); + +#define OUTPUT_RANKING_ARRAY(field) \ + jsonp_open_array( gui->http, "slots_" FD_STRINGIFY(field) ); \ + for( ulong i = 0UL; ifield[ i ].slot==ULONG_MAX ) ) break; \ + jsonp_ulong( gui->http, NULL, rankings->field[ i ].slot ); \ + } \ + jsonp_close_array( gui->http ); \ + jsonp_open_array( gui->http, "vals_" FD_STRINGIFY(field) ); \ + for( ulong i = 0UL; ifield[ i ].slot==ULONG_MAX ) ) break; \ + jsonp_ulong( gui->http, NULL, rankings->field[ i ].value ); \ + } \ + jsonp_close_array( gui->http ) + + OUTPUT_RANKING_ARRAY( largest_tips ); + OUTPUT_RANKING_ARRAY( largest_fees ); + OUTPUT_RANKING_ARRAY( largest_rewards ); + OUTPUT_RANKING_ARRAY( largest_rewards_per_cu ); + OUTPUT_RANKING_ARRAY( largest_duration ); + OUTPUT_RANKING_ARRAY( largest_compute_units ); + OUTPUT_RANKING_ARRAY( largest_skipped ); + OUTPUT_RANKING_ARRAY( smallest_tips ); + OUTPUT_RANKING_ARRAY( smallest_fees ); + OUTPUT_RANKING_ARRAY( smallest_rewards ); + OUTPUT_RANKING_ARRAY( smallest_rewards_per_cu ); + OUTPUT_RANKING_ARRAY( smallest_duration ); + OUTPUT_RANKING_ARRAY( smallest_compute_units ); + OUTPUT_RANKING_ARRAY( smallest_skipped ); + +#undef OUTPUT_RANKING_ARRAY + + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_slot_request( fd_guih_t * gui, + ulong _slot, + ulong id ) { + fd_guih_slot_t * slot = fd_guih_get_slot( gui, _slot ); + + char const * level; + switch( slot->level ) { + case FD_GUIH_SLOT_LEVEL_INCOMPLETE: level = "incomplete"; break; + case FD_GUIH_SLOT_LEVEL_COMPLETED: level = "completed"; break; + case FD_GUIH_SLOT_LEVEL_OPTIMISTICALLY_CONFIRMED: level = "optimistically_confirmed"; break; + case FD_GUIH_SLOT_LEVEL_ROOTED: level = "rooted"; break; + case FD_GUIH_SLOT_LEVEL_FINALIZED: level = "finalized"; break; + default: level = "unknown"; break; + } + + fd_guih_slot_t * parent_slot = fd_guih_get_slot( gui, slot->parent_slot ); + long duration_nanos = LONG_MAX; + if( FD_LIKELY( slot->completed_time!=LONG_MAX && parent_slot && parent_slot->completed_time!=LONG_MAX ) ) { + duration_nanos = slot->completed_time - parent_slot->completed_time; + } + + jsonp_open_envelope( gui->http, "slot", "query" ); + jsonp_ulong( gui->http, "id", id ); + jsonp_open_object( gui->http, "value" ); + fd_guih_leader_slot_t * lslot = fd_guih_get_leader_slot( gui, _slot ); + + jsonp_open_object( gui->http, "publish" ); + jsonp_ulong( gui->http, "slot", _slot ); + jsonp_bool( gui->http, "mine", slot->mine ); + if( FD_UNLIKELY( slot->vote_slot!=ULONG_MAX ) ) jsonp_ulong( gui->http, "vote_slot", slot->vote_slot ); + else jsonp_null( gui->http, "vote_slot" ); + if( FD_UNLIKELY( slot->vote_latency!=UCHAR_MAX ) ) jsonp_ulong( gui->http, "vote_latency", slot->vote_latency ); + else jsonp_null( gui->http, "vote_latency" ); + + if( FD_UNLIKELY( lslot && lslot->leader_start_time!=LONG_MAX ) ) jsonp_long_as_str( gui->http, "start_timestamp_nanos", lslot->leader_start_time ); + else jsonp_null ( gui->http, "start_timestamp_nanos" ); + if( FD_UNLIKELY( lslot && lslot->leader_end_time!=LONG_MAX ) ) jsonp_long_as_str( gui->http, "target_end_timestamp_nanos", lslot->leader_end_time ); + else jsonp_null ( gui->http, "target_end_timestamp_nanos" ); + + jsonp_bool( gui->http, "skipped", slot->skipped ); + jsonp_string( gui->http, "level", level ); + if( FD_UNLIKELY( duration_nanos==LONG_MAX ) ) jsonp_null( gui->http, "duration_nanos" ); + else jsonp_long( gui->http, "duration_nanos", duration_nanos ); + if( FD_UNLIKELY( slot->completed_time==LONG_MAX ) ) jsonp_null( gui->http, "completed_time_nanos" ); + else jsonp_long_as_str( gui->http, "completed_time_nanos", slot->completed_time ); + if( FD_UNLIKELY( slot->nonvote_success==UINT_MAX ) ) jsonp_null( gui->http, "success_nonvote_transaction_cnt" ); + else jsonp_ulong( gui->http, "success_nonvote_transaction_cnt", slot->nonvote_success ); + if( FD_UNLIKELY( slot->nonvote_failed==UINT_MAX ) ) jsonp_null( gui->http, "failed_nonvote_transaction_cnt" ); + else jsonp_ulong( gui->http, "failed_nonvote_transaction_cnt", slot->nonvote_failed ); + if( FD_UNLIKELY( slot->vote_success==UINT_MAX ) ) jsonp_null( gui->http, "success_vote_transaction_cnt" ); + else jsonp_ulong( gui->http, "success_vote_transaction_cnt", slot->vote_success ); + if( FD_UNLIKELY( slot->vote_failed==UINT_MAX ) ) jsonp_null( gui->http, "failed_vote_transaction_cnt" ); + else jsonp_ulong( gui->http, "failed_vote_transaction_cnt", slot->vote_failed ); + if( FD_UNLIKELY( slot->max_compute_units==UINT_MAX ) ) jsonp_null( gui->http, "max_compute_units" ); + else jsonp_ulong( gui->http, "max_compute_units", slot->max_compute_units ); + if( FD_UNLIKELY( slot->compute_units==UINT_MAX ) ) jsonp_null( gui->http, "compute_units" ); + else jsonp_ulong( gui->http, "compute_units", slot->compute_units ); + if( FD_UNLIKELY( slot->shred_cnt==UINT_MAX ) ) jsonp_null( gui->http, "shreds" ); + else jsonp_ulong( gui->http, "shreds", slot->shred_cnt ); + if( FD_UNLIKELY( slot->transaction_fee==ULONG_MAX ) ) jsonp_null( gui->http, "transaction_fee" ); + else jsonp_ulong( gui->http, "transaction_fee", slot->transaction_fee ); + if( FD_UNLIKELY( slot->priority_fee==ULONG_MAX ) ) jsonp_null( gui->http, "priority_fee" ); + else jsonp_ulong( gui->http, "priority_fee", slot->priority_fee ); + if( FD_UNLIKELY( slot->tips==ULONG_MAX ) ) jsonp_null( gui->http, "tips" ); + else jsonp_ulong( gui->http, "tips", slot->tips ); + jsonp_close_object( gui->http ); + + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_slot_transactions_request( fd_guih_t * gui, + ulong _slot, + ulong id ) { + fd_guih_slot_t * slot = fd_guih_get_slot( gui, _slot ); + + char const * level; + switch( slot->level ) { + case FD_GUIH_SLOT_LEVEL_INCOMPLETE: level = "incomplete"; break; + case FD_GUIH_SLOT_LEVEL_COMPLETED: level = "completed"; break; + case FD_GUIH_SLOT_LEVEL_OPTIMISTICALLY_CONFIRMED: level = "optimistically_confirmed"; break; + case FD_GUIH_SLOT_LEVEL_ROOTED: level = "rooted"; break; + case FD_GUIH_SLOT_LEVEL_FINALIZED: level = "finalized"; break; + default: level = "unknown"; break; + } + + fd_guih_slot_t * parent_slot = fd_guih_get_slot( gui, slot->parent_slot ); + long duration_nanos = LONG_MAX; + if( FD_LIKELY( slot->completed_time!=LONG_MAX && parent_slot && parent_slot->completed_time!=LONG_MAX ) ) { + duration_nanos = slot->completed_time - parent_slot->completed_time; + } + + jsonp_open_envelope( gui->http, "slot", "query_transactions" ); + jsonp_ulong( gui->http, "id", id ); + jsonp_open_object( gui->http, "value" ); + fd_guih_leader_slot_t * lslot = fd_guih_get_leader_slot( gui, _slot ); + + jsonp_open_object( gui->http, "publish" ); + jsonp_ulong( gui->http, "slot", _slot ); + jsonp_bool( gui->http, "mine", slot->mine ); + if( FD_UNLIKELY( slot->vote_slot!=ULONG_MAX ) ) jsonp_ulong( gui->http, "vote_slot", slot->vote_slot ); + else jsonp_null( gui->http, "vote_slot" ); + if( FD_UNLIKELY( slot->vote_latency!=UCHAR_MAX ) ) jsonp_ulong( gui->http, "vote_latency", slot->vote_latency ); + else jsonp_null( gui->http, "vote_latency" ); + + if( FD_UNLIKELY( lslot && lslot->leader_start_time!=LONG_MAX ) ) jsonp_long_as_str( gui->http, "start_timestamp_nanos", lslot->leader_start_time ); + else jsonp_null ( gui->http, "start_timestamp_nanos" ); + if( FD_UNLIKELY( lslot && lslot->leader_end_time!=LONG_MAX ) ) jsonp_long_as_str( gui->http, "target_end_timestamp_nanos", lslot->leader_end_time ); + else jsonp_null ( gui->http, "target_end_timestamp_nanos" ); + + jsonp_bool( gui->http, "skipped", slot->skipped ); + jsonp_string( gui->http, "level", level ); + if( FD_UNLIKELY( duration_nanos==LONG_MAX ) ) jsonp_null( gui->http, "duration_nanos" ); + else jsonp_long( gui->http, "duration_nanos", duration_nanos ); + if( FD_UNLIKELY( slot->completed_time==LONG_MAX ) ) jsonp_null( gui->http, "completed_time_nanos" ); + else jsonp_long_as_str( gui->http, "completed_time_nanos", slot->completed_time ); + if( FD_UNLIKELY( slot->nonvote_success==UINT_MAX ) ) jsonp_null( gui->http, "success_nonvote_transaction_cnt" ); + else jsonp_ulong( gui->http, "success_nonvote_transaction_cnt", slot->nonvote_success ); + if( FD_UNLIKELY( slot->nonvote_failed==UINT_MAX ) ) jsonp_null( gui->http, "failed_nonvote_transaction_cnt" ); + else jsonp_ulong( gui->http, "failed_nonvote_transaction_cnt", slot->nonvote_failed ); + if( FD_UNLIKELY( slot->vote_success==UINT_MAX ) ) jsonp_null( gui->http, "success_vote_transaction_cnt" ); + else jsonp_ulong( gui->http, "success_vote_transaction_cnt", slot->vote_success ); + if( FD_UNLIKELY( slot->vote_failed==UINT_MAX ) ) jsonp_null( gui->http, "failed_vote_transaction_cnt" ); + else jsonp_ulong( gui->http, "failed_vote_transaction_cnt", slot->vote_failed ); + if( FD_UNLIKELY( slot->max_compute_units==UINT_MAX ) ) jsonp_null( gui->http, "max_compute_units" ); + else jsonp_ulong( gui->http, "max_compute_units", slot->max_compute_units ); + if( FD_UNLIKELY( slot->compute_units==UINT_MAX ) ) jsonp_null( gui->http, "compute_units" ); + else jsonp_ulong( gui->http, "compute_units", slot->compute_units ); + if( FD_UNLIKELY( slot->shred_cnt==UINT_MAX ) ) jsonp_null( gui->http, "shreds" ); + else jsonp_ulong( gui->http, "shreds", slot->shred_cnt ); + if( FD_UNLIKELY( slot->transaction_fee==ULONG_MAX ) ) jsonp_null( gui->http, "transaction_fee" ); + else jsonp_ulong( gui->http, "transaction_fee", slot->transaction_fee ); + if( FD_UNLIKELY( slot->priority_fee==ULONG_MAX ) ) jsonp_null( gui->http, "priority_fee" ); + else jsonp_ulong( gui->http, "priority_fee", slot->priority_fee ); + if( FD_UNLIKELY( slot->tips==ULONG_MAX ) ) jsonp_null( gui->http, "tips" ); + else jsonp_ulong( gui->http, "tips", slot->tips ); + jsonp_close_object( gui->http ); + + if( FD_UNLIKELY( lslot && lslot->unbecame_leader ) ) { + jsonp_open_object( gui->http, "limits" ); + jsonp_ulong( gui->http, "used_total_block_cost", lslot->scheduler_stats->limits_usage->block_cost ); + jsonp_ulong( gui->http, "used_total_vote_cost", lslot->scheduler_stats->limits_usage->vote_cost ); + jsonp_ulong( gui->http, "used_total_bytes", lslot->scheduler_stats->limits_usage->block_data_bytes ); + jsonp_ulong( gui->http, "used_total_microblocks", lslot->scheduler_stats->limits_usage->microblocks ); + jsonp_open_array( gui->http, "used_account_write_costs" ); + for( ulong i = 0; ischeduler_stats->limits_usage->top_writers[ i ].key.b, ((fd_pubkey_t){ 0 }).uc, sizeof(fd_pubkey_t) ) ) ) break; + + jsonp_open_object( gui->http, NULL ); + char account_base58[ FD_BASE58_ENCODED_32_SZ ]; + fd_base58_encode_32( lslot->scheduler_stats->limits_usage->top_writers[ i ].key.b, NULL, account_base58 ); + jsonp_string( gui->http, "account", account_base58 ); + jsonp_ulong( gui->http, "cost", lslot->scheduler_stats->limits_usage->top_writers[ i ].total_cost ); + jsonp_close_object( gui->http ); + } + jsonp_close_array( gui->http ); + + jsonp_ulong( gui->http, "max_total_block_cost", lslot->scheduler_stats->limits->max_cost_per_block ); + jsonp_ulong( gui->http, "max_total_vote_cost", lslot->scheduler_stats->limits->max_vote_cost_per_block ); + jsonp_ulong( gui->http, "max_account_write_cost", lslot->scheduler_stats->limits->max_write_cost_per_acct ); + jsonp_ulong( gui->http, "max_total_bytes", lslot->scheduler_stats->limits->max_data_bytes_per_block ); + jsonp_ulong( gui->http, "max_total_microblocks", lslot->max_microblocks ); + jsonp_close_object( gui->http ); + + jsonp_open_object( gui->http, "scheduler_stats" ); + char block_hash_base58[ FD_BASE58_ENCODED_32_SZ ]; + fd_base58_encode_32( lslot->block_hash.uc, NULL, block_hash_base58 ); + jsonp_string( gui->http, "block_hash", block_hash_base58 ); + + switch( lslot->scheduler_stats->end_slot_reason ) { + case FD_PACK_END_SLOT_REASON_TIME: { + jsonp_string( gui->http, "end_slot_reason", "timeout" ); + break; + } + case FD_PACK_END_SLOT_REASON_MICROBLOCK: { + jsonp_string( gui->http, "end_slot_reason", "microblock_limit" ); + break; + } + case FD_PACK_END_SLOT_REASON_LEADER_SWITCH: { + jsonp_string( gui->http, "end_slot_reason", "leader_switch" ); + break; + } + default: FD_LOG_ERR(( "unreachable" )); + } + jsonp_open_array( gui->http, "slot_schedule_counts" ); + for( ulong i = 0; ihttp, NULL, lslot->scheduler_stats->block_results[ i ] ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "end_slot_schedule_counts" ); + for( ulong i = 0; ihttp, NULL, lslot->scheduler_stats->end_block_results[ i ] ); + jsonp_close_array( gui->http ); + + if( FD_LIKELY( lslot->scheduler_stats->pending_smallest->cus!=ULONG_MAX ) ) jsonp_ulong( gui->http, "pending_smallest_cost", lslot->scheduler_stats->pending_smallest->cus ); + else jsonp_null( gui->http, "pending_smallest_cost" ); + if( FD_LIKELY( lslot->scheduler_stats->pending_smallest->bytes!=ULONG_MAX ) ) jsonp_ulong( gui->http, "pending_smallest_bytes", lslot->scheduler_stats->pending_smallest->bytes ); + else jsonp_null( gui->http, "pending_smallest_bytes" ); + if( FD_LIKELY( lslot->scheduler_stats->pending_votes_smallest->cus!=ULONG_MAX ) ) jsonp_ulong( gui->http, "pending_vote_smallest_cost", lslot->scheduler_stats->pending_votes_smallest->cus ); + else jsonp_null( gui->http, "pending_vote_smallest_cost" ); + if( FD_LIKELY( lslot->scheduler_stats->pending_votes_smallest->bytes!=ULONG_MAX ) ) jsonp_ulong( gui->http, "pending_vote_smallest_bytes", lslot->scheduler_stats->pending_votes_smallest->bytes ); + else jsonp_null( gui->http, "pending_vote_smallest_bytes" ); + jsonp_close_object( gui->http ); + + } else { + jsonp_null( gui->http, "limits" ); + jsonp_null( gui->http, "scheduler_stats" ); + } + + int overwritten = lslot && (gui->pack_txn_idx - lslot->txs.start_offset)>FD_GUIH_TXN_HISTORY_SZ; + int processed_all_microblocks = lslot && lslot->unbecame_leader && + lslot->txs.start_offset!=ULONG_MAX && + lslot->txs.end_offset!=ULONG_MAX && + lslot->txs.microblocks_upper_bound!=UINT_MAX && + lslot->txs.begin_microblocks==lslot->txs.end_microblocks && + lslot->txs.begin_microblocks==lslot->txs.microblocks_upper_bound; + + if( FD_LIKELY( !overwritten && processed_all_microblocks ) ) { + ulong txn_cnt = lslot->txs.end_offset-lslot->txs.start_offset; + + jsonp_open_object( gui->http, "transactions" ); + jsonp_long_as_str( gui->http, "start_timestamp_nanos", lslot->leader_start_time ); + jsonp_long_as_str( gui->http, "target_end_timestamp_nanos", lslot->leader_end_time ); + jsonp_open_array( gui->http, "txn_mb_start_timestamps_nanos" ); + for( ulong i=0UL; ihttp, NULL, lslot->leader_start_time + (long)gui->txs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]->microblock_start_ns_dt ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_mb_end_timestamps_nanos" ); + for( ulong i=0UL; itxs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]->microblock_end_ns_dt, (long)gui->txs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]->microblock_start_ns_dt + 1L ); + jsonp_long_as_str( gui->http, NULL, lslot->leader_start_time + clamped_microblock_end_ns_dt ); + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_compute_units_requested" ); + for( ulong i=0UL; ihttp, NULL, gui->txs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]->compute_units_requested ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_compute_units_consumed" ); + for( ulong i=0UL; ihttp, NULL, gui->txs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]->compute_units_consumed ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_priority_fee" ); + for( ulong i=0UL; ihttp, NULL, gui->txs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]->priority_fee ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_transaction_fee" ); + for( ulong i=0UL; ihttp, NULL, gui->txs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]->transaction_fee ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_error_code" ); + for( ulong i=0UL; ihttp, NULL, gui->txs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]->error_code ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_from_bundle" ); + for( ulong i=0UL; ihttp, NULL, gui->txs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]->flags & FD_GUIH_TXN_FLAGS_FROM_BUNDLE ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_is_simple_vote" ); + for( ulong i=0UL; ihttp, NULL, gui->txs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]->flags & FD_GUIH_TXN_FLAGS_IS_SIMPLE_VOTE ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_bank_idx" ); + for( ulong i=0UL; ihttp, NULL, gui->txs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]->bank_idx ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_check_start_timestamps_nanos" ); + for( ulong i=0UL; itxs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]; + jsonp_long_as_str( gui->http, NULL, lslot->leader_start_time + (long)txn->microblock_start_ns_dt + (long)txn->txn_ns_dt.check_start ); + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_load_start_timestamps_nanos" ); + for( ulong i=0UL; itxs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]; + jsonp_long_as_str( gui->http, NULL, lslot->leader_start_time + (long)txn->microblock_start_ns_dt + (long)txn->txn_ns_dt.load_start ); + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_execute_start_timestamps_nanos" ); + for( ulong i=0UL; itxs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]; + jsonp_long_as_str( gui->http, NULL, lslot->leader_start_time + (long)txn->microblock_start_ns_dt + (long)txn->txn_ns_dt.exec_start ); + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_commit_start_timestamps_nanos" ); + for( ulong i=0UL; itxs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]; + jsonp_long_as_str( gui->http, NULL, lslot->leader_start_time + (long)txn->microblock_start_ns_dt + (long)txn->txn_ns_dt.commit_start ); + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_commit_end_timestamps_nanos" ); + for( ulong i=0UL; itxs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]; + jsonp_long_as_str( gui->http, NULL, lslot->leader_start_time + (long)txn->microblock_start_ns_dt + (long)txn->txn_ns_dt.commit_end ); + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_arrival_timestamps_nanos" ); + for( ulong i=0UL; ihttp, NULL, gui->txs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]->timestamp_arrival_nanos ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_tips" ); + for( ulong i=0UL; ihttp, NULL, gui->txs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]->tips ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_source_ipv4" ); + for( ulong i=0UL; itxs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]->source_ipv4 ) ); + jsonp_string( gui->http, NULL, addr ); + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_source_tpu" ); + for( ulong i=0UL; itxs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]->source_tpu ) { + case FD_TXN_M_TPU_SOURCE_QUIC: { + jsonp_string( gui->http, NULL, "quic"); + break; + } + case FD_TXN_M_TPU_SOURCE_UDP : { + jsonp_string( gui->http, NULL, "udp"); + break; + } + case FD_TXN_M_TPU_SOURCE_GOSSIP: { + jsonp_string( gui->http, NULL, "gossip"); + break; + } + case FD_TXN_M_TPU_SOURCE_BUNDLE: { + jsonp_string( gui->http, NULL, "bundle"); + break; + } + case FD_TXN_M_TPU_SOURCE_TXSEND: { + jsonp_string( gui->http, NULL, "send"); + break; + } + default: FD_LOG_ERR(("unknown tpu")); + } + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_microblock_id" ); + for( ulong i=0UL; ihttp, NULL, gui->txs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]->microblock_idx ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_landed" ); + for( ulong i=0UL; ihttp, NULL, gui->txs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]->flags & FD_GUIH_TXN_FLAGS_LANDED_IN_BLOCK ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "txn_signature" ); + for( ulong i=0UL; itxs[ (lslot->txs.start_offset + i)%FD_GUIH_TXN_HISTORY_SZ ]->signature, encoded_signature ); + jsonp_string( gui->http, NULL, encoded_signature ); + } + jsonp_close_array( gui->http ); + jsonp_close_object( gui->http ); + } else { + jsonp_null( gui->http, "transactions" ); + } + + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_slot_request_detailed( fd_guih_t * gui, + ulong _slot, + ulong id ) { + fd_guih_slot_t * slot = fd_guih_get_slot( gui, _slot ); + + char const * level; + switch( slot->level ) { + case FD_GUIH_SLOT_LEVEL_INCOMPLETE: level = "incomplete"; break; + case FD_GUIH_SLOT_LEVEL_COMPLETED: level = "completed"; break; + case FD_GUIH_SLOT_LEVEL_OPTIMISTICALLY_CONFIRMED: level = "optimistically_confirmed"; break; + case FD_GUIH_SLOT_LEVEL_ROOTED: level = "rooted"; break; + case FD_GUIH_SLOT_LEVEL_FINALIZED: level = "finalized"; break; + default: level = "unknown"; break; + } + + fd_guih_slot_t * parent_slot = fd_guih_get_slot( gui, slot->parent_slot ); + long duration_nanos = LONG_MAX; + if( FD_LIKELY( slot->completed_time!=LONG_MAX && parent_slot && parent_slot->completed_time!=LONG_MAX ) ) { + duration_nanos = slot->completed_time - parent_slot->completed_time; + } + + jsonp_open_envelope( gui->http, "slot", "query_detailed" ); + jsonp_ulong( gui->http, "id", id ); + jsonp_open_object( gui->http, "value" ); + fd_guih_leader_slot_t * lslot = fd_guih_get_leader_slot( gui, _slot ); + + jsonp_open_object( gui->http, "publish" ); + jsonp_ulong( gui->http, "slot", _slot ); + jsonp_bool( gui->http, "mine", slot->mine ); + if( FD_UNLIKELY( slot->vote_slot!=ULONG_MAX ) ) jsonp_ulong( gui->http, "vote_slot", slot->vote_slot ); + else jsonp_null( gui->http, "vote_slot" ); + if( FD_UNLIKELY( slot->vote_latency!=UCHAR_MAX ) ) jsonp_ulong( gui->http, "vote_latency", slot->vote_latency ); + else jsonp_null( gui->http, "vote_latency" ); + + if( FD_UNLIKELY( lslot && lslot->leader_start_time!=LONG_MAX ) ) jsonp_long_as_str( gui->http, "start_timestamp_nanos", lslot->leader_start_time ); + else jsonp_null ( gui->http, "start_timestamp_nanos" ); + if( FD_UNLIKELY( lslot && lslot->leader_end_time!=LONG_MAX ) ) jsonp_long_as_str( gui->http, "target_end_timestamp_nanos", lslot->leader_end_time ); + else jsonp_null ( gui->http, "target_end_timestamp_nanos" ); + + jsonp_bool( gui->http, "skipped", slot->skipped ); + jsonp_string( gui->http, "level", level ); + if( FD_UNLIKELY( duration_nanos==LONG_MAX ) ) jsonp_null( gui->http, "duration_nanos" ); + else jsonp_long( gui->http, "duration_nanos", duration_nanos ); + if( FD_UNLIKELY( slot->completed_time==LONG_MAX ) ) jsonp_null( gui->http, "completed_time_nanos" ); + else jsonp_long_as_str( gui->http, "completed_time_nanos", slot->completed_time ); + if( FD_UNLIKELY( slot->nonvote_success==UINT_MAX ) ) jsonp_null( gui->http, "success_nonvote_transaction_cnt" ); + else jsonp_ulong( gui->http, "success_nonvote_transaction_cnt", slot->nonvote_success ); + if( FD_UNLIKELY( slot->nonvote_failed==UINT_MAX ) ) jsonp_null( gui->http, "failed_nonvote_transaction_cnt" ); + else jsonp_ulong( gui->http, "failed_nonvote_transaction_cnt", slot->nonvote_failed ); + if( FD_UNLIKELY( slot->vote_success==UINT_MAX ) ) jsonp_null( gui->http, "success_vote_transaction_cnt" ); + else jsonp_ulong( gui->http, "success_vote_transaction_cnt", slot->vote_success ); + if( FD_UNLIKELY( slot->vote_failed==UINT_MAX ) ) jsonp_null( gui->http, "failed_vote_transaction_cnt" ); + else jsonp_ulong( gui->http, "failed_vote_transaction_cnt", slot->vote_failed ); + if( FD_UNLIKELY( slot->max_compute_units==UINT_MAX ) ) jsonp_null( gui->http, "max_compute_units" ); + else jsonp_ulong( gui->http, "max_compute_units", slot->max_compute_units ); + if( FD_UNLIKELY( slot->compute_units==UINT_MAX ) ) jsonp_null( gui->http, "compute_units" ); + else jsonp_ulong( gui->http, "compute_units", slot->compute_units ); + if( FD_UNLIKELY( slot->shred_cnt==UINT_MAX ) ) jsonp_null( gui->http, "shreds" ); + else jsonp_ulong( gui->http, "shreds", slot->shred_cnt ); + if( FD_UNLIKELY( slot->transaction_fee==ULONG_MAX ) ) jsonp_null( gui->http, "transaction_fee" ); + else jsonp_ulong( gui->http, "transaction_fee", slot->transaction_fee ); + if( FD_UNLIKELY( slot->priority_fee==ULONG_MAX ) ) jsonp_null( gui->http, "priority_fee" ); + else jsonp_ulong( gui->http, "priority_fee", slot->priority_fee ); + if( FD_UNLIKELY( slot->tips==ULONG_MAX ) ) jsonp_null( gui->http, "tips" ); + else jsonp_ulong( gui->http, "tips", slot->tips ); + jsonp_close_object( gui->http ); + + if( FD_LIKELY( gui->summary.slot_completed!=ULONG_MAX && gui->summary.slot_completed>_slot ) ) { + fd_guih_printf_waterfall( gui, slot->waterfall_begin, slot->waterfall_end ); + + fd_guih_leader_slot_t * lslot = fd_guih_get_leader_slot( gui, _slot ); + if( FD_LIKELY( lslot && lslot->unbecame_leader ) ) { + jsonp_open_array( gui->http, "tile_timers" ); + fd_guih_tile_timers_t const * prev_timer = lslot->tile_timers; + for( ulong i=1UL; itile_timers_sample_cnt; i++ ) { + fd_guih_tile_timers_t const * cur_timer = lslot->tile_timers + i * gui->tile_cnt; + fd_guih_printf_ts_tile_timers( gui, prev_timer, cur_timer ); + prev_timer = cur_timer; + } + jsonp_close_array( gui->http ); + } else { + /* Our tile timers were overwritten. */ + jsonp_null( gui->http, "tile_timers" ); + } + + if( FD_LIKELY( lslot && lslot->unbecame_leader ) ) { + jsonp_open_array( gui->http, "scheduler_counts" ); + /* Unlike tile timers (which are counters), scheduler counts + are a gauge and we don't take a diff. */ + for( ulong i=0UL; ischeduler_counts_sample_cnt; i++ ) { + fd_guih_scheduler_counts_t const * cur = lslot->scheduler_counts[ i ]; + jsonp_open_object( gui->http, NULL ); + jsonp_long_as_str( gui->http, "timestamp_nanos", cur->sample_time_ns ); + jsonp_ulong ( gui->http, "regular", cur->regular ); + jsonp_ulong ( gui->http, "votes", cur->votes ); + jsonp_ulong ( gui->http, "conflicting", cur->conflicting ); + jsonp_ulong ( gui->http, "bundles", cur->bundles ); + jsonp_close_object( gui->http ); + } + jsonp_close_array( gui->http ); + } else { + /* Our scheduler counts were overwritten. */ + jsonp_null( gui->http, "scheduler_counts" ); + } + + fd_guih_printf_tile_stats( gui, slot->tile_stats_begin, slot->tile_stats_end ); + } else { + jsonp_null( gui->http, "waterfall" ); + jsonp_null( gui->http, "tile_timers" ); + jsonp_null( gui->http, "tile_primary_metric" ); + } + + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_shreds_staged( fd_guih_t * gui, ulong start_offset, ulong end_offset ) { + ulong min_slot = ULONG_MAX; + long min_ts = LONG_MAX; + + for( ulong i=start_offset; ishreds.staged[ i % FD_GUIH_SHREDS_STAGING_SZ ].slot ); + min_ts = fd_long_min ( min_ts, gui->shreds.staged[ i % FD_GUIH_SHREDS_STAGING_SZ ].timestamp ); + } + + jsonp_ulong ( gui->http, "reference_slot", min_slot ); + jsonp_long_as_str( gui->http, "reference_ts", min_ts ); + + jsonp_open_array( gui->http, "slot_delta" ); + for( ulong i=start_offset; ihttp, NULL, gui->shreds.staged[ i % FD_GUIH_SHREDS_STAGING_SZ ].slot-min_slot ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "shred_idx" ); + for( ulong i=start_offset; ishreds.staged[ i % FD_GUIH_SHREDS_STAGING_SZ ].shred_idx!=USHORT_MAX ) ) jsonp_ulong( gui->http, NULL, gui->shreds.staged[ i % FD_GUIH_SHREDS_STAGING_SZ ].shred_idx ); + else jsonp_null ( gui->http, NULL ); + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "event" ); + for( ulong i=start_offset; ihttp, NULL, gui->shreds.staged[ i % FD_GUIH_SHREDS_STAGING_SZ ].event ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "event_ts_delta" ); + for( ulong i=start_offset; ihttp, NULL, gui->shreds.staged[ i % FD_GUIH_SHREDS_STAGING_SZ ].timestamp-min_ts ); + jsonp_close_array( gui->http ); +} + +void +fd_guih_printf_shreds_history( fd_guih_t * gui, ulong _slot ) { + fd_guih_slot_t * slot = fd_guih_get_slot( gui, _slot ); + FD_TEST( slot ); + ulong end_offset = slot->shreds.end_offset; + ulong start_offset = slot->shreds.start_offset; + FD_TEST( slot->shreds.end_offset + FD_GUIH_SHREDS_HISTORY_SZ > gui->shreds.history_tail ); + + long min_ts = LONG_MAX; + for( ulong i=start_offset; ishreds.history[ i % FD_GUIH_SHREDS_HISTORY_SZ ].timestamp ); + } + + jsonp_ulong ( gui->http, "reference_slot", _slot ); + jsonp_long_as_str( gui->http, "reference_ts", min_ts ); + + jsonp_open_array( gui->http, "slot_delta" ); + for( ulong i=start_offset; ihttp, NULL, 0UL ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "shred_idx" ); + for( ulong i=start_offset; ishreds.history[ i % FD_GUIH_SHREDS_HISTORY_SZ ].shred_idx!=USHORT_MAX ) ) jsonp_ulong( gui->http, NULL, gui->shreds.history[ i % FD_GUIH_SHREDS_HISTORY_SZ ].shred_idx ); + else jsonp_null ( gui->http, NULL ); + } + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "event" ); + for( ulong i=start_offset; ihttp, NULL, gui->shreds.history[ i % FD_GUIH_SHREDS_HISTORY_SZ ].event ); + jsonp_close_array( gui->http ); + jsonp_open_array( gui->http, "event_ts_delta" ); + for( ulong i=start_offset; ihttp, NULL, gui->shreds.history[ i % FD_GUIH_SHREDS_HISTORY_SZ ].timestamp-min_ts ); + jsonp_close_array( gui->http ); +} + + + +void +fd_guih_printf_shred_rebroadcast( fd_guih_t * gui, long after ) { + FD_TEST( gui->shreds.staged_next_broadcast!=ULONG_MAX ); + + ulong _start_offset = gui->shreds.staged_next_broadcast; + for( ulong i=gui->shreds.staged_head; ishreds.staged_next_broadcast; i++ ) { + if( FD_LIKELY( gui->shreds.staged[ i % FD_GUIH_SHREDS_STAGING_SZ ].timestamphttp, "slot", "live_shreds" ); + jsonp_open_object( gui->http, "value" ); + fd_guih_printf_shreds_staged( gui, _start_offset, gui->shreds.staged_next_broadcast ); + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} + +void +fd_guih_printf_slot_query_shreds( fd_guih_t * gui, + ulong _slot, + ulong id ) { + jsonp_open_envelope( gui->http, "slot", "query_shreds" ); + jsonp_ulong( gui->http, "id", id ); + jsonp_open_object( gui->http, "value" ); + fd_guih_printf_shreds_history( gui, _slot ); + jsonp_close_object( gui->http ); + jsonp_close_envelope( gui->http ); +} diff --git a/src/discoh/guih/fd_guih_printf.h b/src/discoh/guih/fd_guih_printf.h new file mode 100644 index 00000000000..e58af3295ce --- /dev/null +++ b/src/discoh/guih/fd_guih_printf.h @@ -0,0 +1,149 @@ +#ifndef HEADER_fd_src_discoh_guih_fd_guih_printf_h +#define HEADER_fd_src_discoh_guih_fd_guih_printf_h + +#include "fd_guih.h" + +/* These functions format the current state of the GUI as various JSON + messages into the GUI outgoing message buffer, where they can be sent + to a specific WebSocket client, or broadcast out to all clients. */ + +void fd_guih_printf_version( fd_guih_t * gui ); +void fd_guih_printf_cluster( fd_guih_t * gui ); +void fd_guih_printf_commit_hash( fd_guih_t * gui ); +void fd_guih_printf_identity_key( fd_guih_t * gui ); +void fd_guih_printf_vote_key( fd_guih_t * gui ); +void fd_guih_printf_startup_time_nanos( fd_guih_t * gui ); +void fd_guih_printf_server_time_nanos( fd_guih_t * gui, long now ); +void fd_guih_printf_vote_state( fd_guih_t * gui ); +void fd_guih_printf_vote_distance( fd_guih_t * gui ); +void fd_guih_printf_turbine_slot( fd_guih_t * gui ); +void fd_guih_printf_repair_slot( fd_guih_t * gui ); +void fd_guih_printf_slot_caught_up( fd_guih_t * gui ); +void fd_guih_printf_skipped_history( fd_guih_t * gui, ulong epoch_idx ); +void fd_guih_printf_skipped_history_cluster( fd_guih_t * gui, ulong epoch_idx ); +void fd_guih_printf_vote_latency_history( fd_guih_t * gui ); +void fd_guih_printf_late_votes_history( fd_guih_t * gui ); +void fd_guih_printf_tps_history( fd_guih_t * gui ); +void fd_guih_printf_startup_progress( fd_guih_t * gui ); +void fd_guih_printf_block_engine( fd_guih_t * gui ); +void fd_guih_printf_tiles( fd_guih_t * gui ); +void fd_guih_printf_schedule_strategy( fd_guih_t * gui ); +void fd_guih_printf_identity_balance( fd_guih_t * gui ); +void fd_guih_printf_vote_balance( fd_guih_t * gui ); +void fd_guih_printf_estimated_slot_duration_nanos( fd_guih_t * gui ); +void fd_guih_printf_root_slot( fd_guih_t * gui ); +void fd_guih_printf_optimistically_confirmed_slot( fd_guih_t * gui ); +void fd_guih_printf_completed_slot( fd_guih_t * gui ); +void fd_guih_printf_estimated_slot( fd_guih_t * gui ); +void fd_guih_printf_estimated_tps( fd_guih_t * gui ); +void fd_guih_printf_catch_up_history( fd_guih_t * gui ); +void fd_guih_printf_reset_slot( fd_guih_t * gui ); +void fd_guih_printf_storage_slot( fd_guih_t * gui ); +void fd_guih_printf_active_fork_cnt( fd_guih_t * gui ); + +void +fd_guih_printf_null_query_response( fd_http_server_t * http, + char const * topic, + char const * key, + ulong id ); + +void +fd_guih_printf_skip_rate( fd_guih_t * gui, + ulong epoch_idx ); + +void +fd_guih_printf_epoch( fd_guih_t * gui, + ulong epoch_idx ); + +void +fd_guih_printf_peers_gossip_update( fd_guih_t * gui, + ulong const * updated, + ulong updated_cnt, + fd_pubkey_t const * removed, + ulong removed_cnt, + ulong const * added, + ulong added_cnt ); + +void +fd_guih_printf_peers_vote_account_update( fd_guih_t * gui, + ulong const * updated, + ulong updated_cnt, + fd_pubkey_t const * removed, + ulong removed_cnt, + ulong const * added, + ulong added_cnt ); + +void +fd_guih_printf_peers_validator_info_update( fd_guih_t * gui, + ulong const * updated, + ulong updated_cnt, + fd_pubkey_t const * removed, + ulong removed_cnt, + ulong const * added, + ulong added_cnt ); + +void +fd_guih_printf_peers_all( fd_guih_t * gui ); + +void +fd_guih_printf_slot( fd_guih_t * gui, + ulong slot ); + +void +fd_guih_printf_summary_ping( fd_guih_t * gui, + ulong id ); + +void +fd_guih_printf_slot_request( fd_guih_t * gui, + ulong slot, + ulong id ); + +void +fd_guih_printf_slot_rankings_request( fd_guih_t * gui, + ulong id, + int mine ); + + +void +fd_guih_printf_slot_request_detailed( fd_guih_t * gui, + ulong slot, + ulong id ); + +void +fd_guih_printf_slot_transactions_request( fd_guih_t * gui, + ulong _slot, + ulong id ); + +void +fd_guih_printf_slot_query_shreds( fd_guih_t * gui, + ulong _slot, + ulong id ); + +void +fd_guih_printf_shred_rebroadcast( fd_guih_t * gui, long after ); + +void +fd_guih_printf_live_tile_timers( fd_guih_t * gui ); + +void +fd_guih_printf_live_network_metrics( fd_guih_t * gui, + fd_guih_network_stats_t const * cur ); + +void +fd_guih_printf_live_tile_metrics( fd_guih_t * gui ); + +void +fd_guih_printf_live_txn_waterfall( fd_guih_t * gui, + fd_guih_txn_waterfall_t const * prev, + fd_guih_txn_waterfall_t const * cur, + ulong next_leader_slot ); + +void +fd_guih_printf_live_tile_stats( fd_guih_t * gui, + fd_guih_tile_stats_t const * prev, + fd_guih_tile_stats_t const * cur ); + +void +fd_guih_printf_health( fd_guih_t * gui ); + +#endif /* HEADER_fd_src_discoh_guih_fd_guih_printf_h */ diff --git a/src/discoh/guih/fd_guih_tile.c b/src/discoh/guih/fd_guih_tile.c new file mode 100644 index 00000000000..fdfa2e15026 --- /dev/null +++ b/src/discoh/guih/fd_guih_tile.c @@ -0,0 +1,615 @@ +/* The frontend assets are pre-built and statically compiled into the + binary here. To regenerate them, run + + $ git clone https://github.com/firedancer-io/firedancer-frontend.git frontend + $ make frontend FRONTEND_CLIENT=Frankendancer + + from the repository root. */ + +#include "generated/http_import_dist.h" + +/* STATIC_FILES is the null-terminated list of frontend assets baked into + the binary. It is defined in generated/http_import_dist.c and accessed + in the gui_http_request callback. */ + +#include /* SOCK_CLOEXEC, SOCK_NONBLOCK needed for seccomp filter */ + +#include "generated/fd_guih_tile_seccomp.h" + +#include "../../disco/tiles.h" +#include "../../disco/keyguard/fd_keyload.h" +#include "../../disco/keyguard/fd_keyswitch.h" +#include "fd_guih.h" +#include "../../discoh/plugin/fd_plugin.h" +#include "../../discof/replay/fd_execrp.h" +#include "../../disco/metrics/fd_metrics.h" +#include "../../disco/net/fd_net_tile.h" +#include "../../disco/fd_clock_tile.h" +#include "../../discof/genesis/fd_genesi_tile.h" // TODO: Layering violation +#include "../../waltz/http/fd_http_server.h" +#include "../../waltz/http/fd_http_server_private.h" +#include "../../ballet/json/cJSON_alloc.h" +#include "../../discof/repair/fd_repair.h" +#include "../../discof/replay/fd_replay_tile.h" +#include "../../disco/shred/fd_shred_tile.h" + +#define IN_KIND_PLUGIN ( 0UL) +#define IN_KIND_POH_PACK ( 1UL) +#define IN_KIND_PACK_EXECLE ( 2UL) +#define IN_KIND_PACK_POH ( 3UL) +#define IN_KIND_EXECLE_POH ( 4UL) +#define IN_KIND_BUNDLE (17UL) + +FD_IMPORT_BINARY( firedancer_svg, "book/public/fire.svg" ); + +#define FD_HTTP_SERVER_GUI_MAX_REQUEST_LEN 65536 +#define FD_HTTP_SERVER_GUI_MAX_WS_RECV_FRAME_LEN 65536 +#define FD_HTTP_SERVER_GUI_MAX_WS_SEND_FRAME_CNT 8192 + +static fd_http_server_params_t +derive_http_params( fd_topo_tile_t const * tile ) { + return (fd_http_server_params_t) { + .max_connection_cnt = tile->gui.max_http_connections, + .max_ws_connection_cnt = tile->gui.max_websocket_connections, + .max_request_len = FD_HTTP_SERVER_GUI_MAX_REQUEST_LEN, + .max_ws_recv_frame_len = FD_HTTP_SERVER_GUI_MAX_WS_RECV_FRAME_LEN, + .max_ws_send_frame_cnt = FD_HTTP_SERVER_GUI_MAX_WS_SEND_FRAME_CNT, + .outgoing_buffer_sz = tile->gui.send_buffer_size_mb * (1UL<<20UL), + .compress_websocket = tile->gui.websocket_compression, + }; +} + +struct fd_guih_in_ctx { + fd_wksp_t * mem; + ulong mtu; + ulong chunk0; + ulong wmark; +}; + +typedef struct fd_guih_in_ctx fd_guih_in_ctx_t; + +struct fd_guih_out_ctx { + ulong idx; + fd_wksp_t * mem; + ulong chunk0; + ulong wmark; + ulong chunk; +}; + +typedef struct fd_guih_out_ctx fd_guih_out_ctx_t; + +typedef struct { + fd_topo_t const * topo; + + fd_guih_t * gui; + + ulong in_cnt; + ulong idle_cnt; + + /* Most of the gui tile uses fd_clock for timing, but some stem + timestamps still used tickcounts, so we keep separate timestamps + here to handle those cases until fd_clock is more widely adopted. */ + long ref_wallclock; + long ref_tickcount; + double tick_per_ns; + + fd_clock_tile_t clock[1]; + + ulong chunk; + + fd_http_server_t * gui_server; + + long next_poll_deadline; + + fd_keyswitch_t * keyswitch; + uchar const * identity_key; + + int has_vote_key; + fd_pubkey_t const vote_key[ 1UL ]; + + ulong in_kind[ 64UL ]; + int in_reliable[ 64UL ]; + ulong in_bank_idx[ 64UL ]; + fd_guih_in_ctx_t in[ 64UL ]; +} fd_guih_ctx_t; + +FD_FN_CONST static inline ulong +scratch_align( void ) { + ulong a = alignof( fd_guih_ctx_t ); + a = fd_ulong_max( a, fd_http_server_align() ); + a = fd_ulong_max( a, fd_guih_align() ); + a = fd_ulong_max( a, fd_alloc_align() ); + return a; +} + +static inline ulong +scratch_footprint( fd_topo_tile_t const * tile ) { + fd_http_server_params_t http_param = derive_http_params( tile ); + ulong http_fp = fd_http_server_footprint( http_param ); + if( FD_UNLIKELY( !http_fp ) ) FD_LOG_ERR(( "Invalid [tiles.gui] config parameters" )); + + ulong l = FD_LAYOUT_INIT; + l = FD_LAYOUT_APPEND( l, alignof( fd_guih_ctx_t ), sizeof( fd_guih_ctx_t ) ); + l = FD_LAYOUT_APPEND( l, fd_http_server_align(), http_fp ); + l = FD_LAYOUT_APPEND( l, fd_guih_align(), fd_guih_footprint( tile->gui.tile_cnt ) ); + l = FD_LAYOUT_APPEND( l, fd_alloc_align(), fd_alloc_footprint() ); + return FD_LAYOUT_FINI( l, scratch_align() ); +} + +FD_FN_PURE static inline ulong +loose_footprint( fd_topo_tile_t const * tile FD_PARAM_UNUSED ) { + return 256UL * (1UL<<20UL); /* 256MiB of heap space for the cJSON allocator */ +} + +static inline void +during_housekeeping( fd_guih_ctx_t * ctx ) { + ctx->ref_wallclock = fd_log_wallclock(); + ctx->ref_tickcount = fd_tickcount(); + + if( FD_UNLIKELY( fd_clock_tile_recal_due( ctx->clock ) ) ) { + fd_clock_tile_recal( ctx->clock ); + } + + if( FD_UNLIKELY( fd_keyswitch_state_query( ctx->keyswitch )==FD_KEYSWITCH_STATE_SWITCH_PENDING ) ) { + fd_guih_set_identity( ctx->gui, ctx->keyswitch->bytes ); + fd_keyswitch_state( ctx->keyswitch, FD_KEYSWITCH_STATE_COMPLETED ); + } +} + +static inline void +metrics_write( fd_guih_ctx_t * ctx ) { + FD_MGAUGE_SET( GUIH, CONN_ACTIVE, ctx->gui_server->metrics.connection_cnt ); + FD_MGAUGE_SET( GUIH, WEBSOCKET_CONN_ACTIVE, ctx->gui_server->metrics.ws_connection_cnt ); + + FD_MCNT_SET( GUIH, WEBSOCKET_FRAME_TX, ctx->gui_server->metrics.frames_written ); + FD_MCNT_SET( GUIH, WEBSOCKET_FRAME_RX, ctx->gui_server->metrics.frames_read ); + + FD_MCNT_SET( GUIH, BYTES_WRITTEN, ctx->gui_server->metrics.bytes_written ); + FD_MCNT_SET( GUIH, BYTES_READ, ctx->gui_server->metrics.bytes_read ); +} + +static void +before_credit( fd_guih_ctx_t * ctx, + fd_stem_context_t * stem, + int * charge_busy ) { + (void)stem; + + ctx->idle_cnt++; + if( FD_LIKELY( ctx->idle_cnt<2UL*ctx->in_cnt ) ) return; + ctx->idle_cnt = 0UL; + + int charge_busy_server = 0; + long now = fd_tickcount(); + if( FD_UNLIKELY( now>=ctx->next_poll_deadline ) ) { + charge_busy_server = fd_http_server_poll( ctx->gui_server, 0 ); + ctx->next_poll_deadline = fd_tickcount() + (long)(ctx->tick_per_ns * 128L * 1000L); + } + + int charge_poll = 0; + charge_poll |= fd_guih_poll( ctx->gui, fd_clock_tile_now( ctx->clock ) ); + + *charge_busy = charge_busy_server | charge_poll; +} + +static int +before_frag( fd_guih_ctx_t * ctx, + ulong in_idx, + ulong seq, + ulong sig ) { + (void)seq; + + /* Ignore "done draining banks" and "reduce microblock bound" signals from pack->poh */ + if( FD_LIKELY( ctx->in_kind[ in_idx ]==IN_KIND_PACK_POH && (sig==FD_PACK_MSG_DONE_DRAINING || sig==FD_PACK_MSG_REDUCE_MB_BOUND) ) ) return 1; + + return 0; +} + +static inline void +during_frag( fd_guih_ctx_t * ctx, + ulong in_idx, + ulong seq FD_PARAM_UNUSED, + ulong sig, + ulong chunk, + ulong sz, + ulong ctl FD_PARAM_UNUSED ) { + + uchar * src = (uchar *)fd_chunk_to_laddr( ctx->in[ in_idx ].mem, chunk ); + + if( FD_LIKELY( ctx->in_kind[ in_idx ]==IN_KIND_PLUGIN ) ) { + /* ... todo... sigh, sz is not correct since it's too big */ + if( FD_LIKELY( sig==FD_PLUGIN_MSG_GOSSIP_UPDATE ) ) { + ulong peer_cnt = FD_LOAD( ulong, src ); + FD_TEST( peer_cnt<=FD_GUIH_MAX_PEER_CNT ); + sz = 8UL + peer_cnt*FD_GOSSIP_LINK_MSG_SIZE; + } else if( FD_LIKELY( sig==FD_PLUGIN_MSG_VOTE_ACCOUNT_UPDATE ) ) { + ulong peer_cnt = FD_LOAD( ulong, src ); + FD_TEST( peer_cnt<=FD_GUIH_MAX_PEER_CNT ); + sz = 8UL + peer_cnt*112UL; + } else if( FD_UNLIKELY( sig==FD_PLUGIN_MSG_LEADER_SCHEDULE ) ) { + ulong staked_vote_cnt = FD_LOAD( ulong, src+8UL ); + ulong staked_id_cnt = FD_LOAD( ulong, src+16UL ); + FD_TEST( staked_vote_cnt<=MAX_COMPRESSED_STAKE_WEIGHTS ); + FD_TEST( staked_id_cnt<=MAX_SHRED_DESTS ); + sz = fd_stake_weight_msg_sz( staked_vote_cnt, staked_id_cnt ); + } + } + + if( FD_UNLIKELY( (sz>0UL && (chunkin[ in_idx ].chunk0 || chunk>ctx->in[ in_idx ].wmark)) || sz>ctx->in[ in_idx ].mtu ) ) + FD_LOG_ERR(( "in_kind %lu chunk %lu %lu corrupt, not in range [%lu,%lu] or too large (%lu)", ctx->in_kind[ in_idx ], chunk, sz, ctx->in[ in_idx ].chunk0, ctx->in[ in_idx ].wmark, ctx->in[ in_idx ].mtu )); + + ctx->chunk = chunk; +} + +static inline void +after_frag( fd_guih_ctx_t * ctx, + ulong in_idx, + ulong seq, + ulong sig, + ulong sz, + ulong tsorig FD_PARAM_UNUSED, + ulong tspub, + fd_stem_context_t * stem ) { + (void)seq; (void)stem; + + if( FD_LIKELY( ctx->in_reliable[ in_idx ] ) ) ctx->idle_cnt = 0UL; + + uchar * src = (uchar *)fd_chunk_to_laddr( ctx->in[ in_idx ].mem, ctx->chunk ); + + switch( ctx->in_kind[ in_idx ] ) { + case IN_KIND_PLUGIN: { + fd_guih_plugin_message( ctx->gui, sig, src, fd_clock_tile_now( ctx->clock ) ); + break; + } + case IN_KIND_POH_PACK: { + FD_TEST( fd_disco_poh_sig_pkt_type( sig )==POH_PKT_TYPE_BECAME_LEADER ); + fd_became_leader_t * became_leader = (fd_became_leader_t *)src; + fd_guih_became_leader( ctx->gui, fd_disco_poh_sig_slot( sig ), became_leader->slot_start_ns, became_leader->slot_end_ns, became_leader->limits.slot_max_cost, became_leader->max_microblocks_in_slot ); + break; + } + case IN_KIND_PACK_POH: { + fd_guih_unbecame_leader( ctx->gui, fd_disco_execle_sig_slot( sig ), (fd_done_packing_t const *)src, fd_clock_tile_now( ctx->clock ) ); + break; + } + case IN_KIND_PACK_EXECLE: { + FD_TEST( sz>=sizeof(fd_microblock_execle_trailer_t) ); + FD_TEST( (sz-sizeof(fd_microblock_execle_trailer_t))%sizeof(fd_txn_e_t)==0UL ); + + if( FD_LIKELY( fd_disco_poh_sig_pkt_type( sig )==POH_PKT_TYPE_MICROBLOCK ) ) { + fd_microblock_execle_trailer_t trailer[1]; + fd_memcpy( trailer, src+sz-sizeof(fd_microblock_execle_trailer_t), sizeof(fd_microblock_execle_trailer_t) ); + long tspub_ns = ctx->ref_wallclock + (long)((double)(fd_frag_meta_ts_decomp( tspub, fd_tickcount() ) - ctx->ref_tickcount) / ctx->tick_per_ns); + fd_guih_microblock_execution_begin( ctx->gui, + tspub_ns, + fd_disco_poh_sig_slot( sig ), + (fd_txn_e_t *)src, + (sz-sizeof( fd_microblock_execle_trailer_t ))/sizeof( fd_txn_e_t ), + (uint)trailer->microblock_idx, + trailer->pack_txn_idx ); + } else { + FD_LOG_ERR(( "unexpected poh packet type %lu", fd_disco_poh_sig_pkt_type( sig ) )); + } + break; + } + case IN_KIND_EXECLE_POH: { + FD_TEST( sz>=sizeof(fd_microblock_trailer_t) ); + FD_TEST( (sz-sizeof(fd_microblock_trailer_t))%sizeof(fd_txn_p_t)==0UL ); + + fd_microblock_trailer_t trailer[1]; + fd_memcpy( trailer, src+sz-sizeof(fd_microblock_trailer_t), sizeof(fd_microblock_trailer_t) ); + long tspub_ns = ctx->ref_wallclock + (long)((double)(fd_frag_meta_ts_decomp( tspub, fd_tickcount() ) - ctx->ref_tickcount) / ctx->tick_per_ns); + ulong txn_cnt = (sz-sizeof( fd_microblock_trailer_t ))/sizeof(fd_txn_p_t); + fd_guih_microblock_execution_end( ctx->gui, + tspub_ns, + ctx->in_bank_idx[ in_idx ], + fd_disco_execle_sig_slot( sig ), + txn_cnt, + (fd_txn_p_t *)src, + trailer->pack_txn_idx, + trailer->txn_ns_dt, + trailer->tips ); + break; + } + case IN_KIND_BUNDLE: { + fd_guih_handle_block_engine_update( ctx->gui, (fd_bundle_block_engine_update_t *)src ); + break; + } + default: FD_LOG_ERR(( "unexpected in_kind %lu", ctx->in_kind[ in_idx ] )); + } +} + +static fd_http_server_response_t +gui_http_request( fd_http_server_request_t const * request ) { + if( FD_UNLIKELY( request->method!=FD_HTTP_SERVER_METHOD_GET ) ) { + return (fd_http_server_response_t){ + .status = 405, + }; + } + + if( FD_LIKELY( !strcmp( request->path, "/websocket" ) ) ) { + return (fd_http_server_response_t){ + .status = 200, + .upgrade_websocket = 1, +#ifdef FD_HAS_ZSTD + .compress_websocket = request->headers.compress_websocket, +#else + .compress_websocket = 0, +#endif + }; + } else if( FD_LIKELY( !strcmp( request->path, "/favicon.svg" ) ) ) { + return (fd_http_server_response_t){ + .status = 200, + .static_body = firedancer_svg, + .static_body_len = firedancer_svg_sz, + .content_type = "image/svg+xml", + .upgrade_websocket = 0, + }; + } + + int is_vite_page = !strcmp( request->path, "/" ) || + !strcmp( request->path, "/slotDetails" ) || + !strcmp( request->path, "/leaderSchedule" ) || + !strcmp( request->path, "/gossip") || + !strncmp( request->path, "/?", strlen("/?") ) || + !strncmp( request->path, "/slotDetails?", strlen("/slotDetails?") ) || + !strncmp( request->path, "/leaderSchedule?", strlen("/leaderSchedule?") ) || + !strncmp( request->path, "/gossip?", strlen("/gossip?") ); + + for( fd_http_static_file_t const * f = STATIC_FILES; f->name; f++ ) { + if( !strcmp( request->path, f->name ) || + (!strcmp( f->name, "/index.html" ) && is_vite_page) ) { + char const * content_type = NULL; + + char const * ext = strrchr( f->name, '.' ); + if( FD_LIKELY( ext ) ) { + if( !strcmp( ext, ".html" ) ) content_type = "text/html; charset=utf-8"; + else if( !strcmp( ext, ".css" ) ) content_type = "text/css"; + else if( !strcmp( ext, ".js" ) ) content_type = "application/javascript"; + else if( !strcmp( ext, ".svg" ) ) content_type = "image/svg+xml"; + else if( !strcmp( ext, ".woff" ) ) content_type = "font/woff"; + else if( !strcmp( ext, ".woff2" ) ) content_type = "font/woff2"; + } + + char const * cache_control = NULL; + if( FD_LIKELY( !strncmp( request->path, "/assets", 7 ) ) ) cache_control = "public, max-age=31536000, immutable"; + else if( FD_LIKELY( !strcmp( f->name, "/index.html" ) ) ) cache_control = "no-cache"; + + const uchar * data = f->data; + ulong data_len = *(f->data_len); + + int accepts_zstd = 0; + if( FD_LIKELY( request->headers.accept_encoding ) ) { + accepts_zstd = !!strstr( request->headers.accept_encoding, "zstd" ); + } + + int accepts_gzip = 0; + if( FD_LIKELY( request->headers.accept_encoding ) ) { + accepts_gzip = !!strstr( request->headers.accept_encoding, "gzip" ); + } + + char const * content_encoding = NULL; + if( FD_LIKELY( accepts_zstd && f->zstd_data ) ) { + content_encoding = "zstd"; + data = f->zstd_data; + data_len = *(f->zstd_data_len); + } else if( FD_LIKELY( accepts_gzip && f->gzip_data ) ) { + content_encoding = "gzip"; + data = f->gzip_data; + data_len = *(f->gzip_data_len); + } + + return (fd_http_server_response_t){ + .status = 200, + .static_body = data, + .static_body_len = data_len, + .content_type = content_type, + .cache_control = cache_control, + .content_encoding = content_encoding, + .upgrade_websocket = 0, + }; + } + } + + return (fd_http_server_response_t){ + .status = 404, + }; +} + +static void +gui_ws_open( ulong conn_id, + void * _ctx ) { + fd_guih_ctx_t * ctx = (fd_guih_ctx_t *)_ctx; + + fd_guih_ws_open( ctx->gui, conn_id, fd_clock_tile_now( ctx->clock ) ); +} + +static void +gui_ws_close( ulong conn_id, + int reason, + void * _ctx ) { + (void) reason; + (void) conn_id; + (void) _ctx; +} + +static void +gui_ws_message( ulong ws_conn_id, + uchar const * data, + ulong data_len, + void * _ctx ) { + fd_guih_ctx_t * ctx = (fd_guih_ctx_t *)_ctx; + + int reason = fd_guih_ws_message( ctx->gui, ws_conn_id, data, data_len ); + + if( FD_UNLIKELY( reason<0 ) ) fd_http_server_ws_close( ctx->gui_server, ws_conn_id, reason ); +} + +static void +privileged_init( fd_topo_t const * topo, + fd_topo_tile_t const * tile ) { + void * scratch = fd_topo_obj_laddr( topo, tile->tile_obj_id ); + + FD_SCRATCH_ALLOC_INIT( l, scratch ); + fd_guih_ctx_t * ctx = FD_SCRATCH_ALLOC_APPEND( l, alignof( fd_guih_ctx_t ), sizeof( fd_guih_ctx_t ) ); + + fd_http_server_params_t http_param = derive_http_params( tile ); + fd_http_server_t * _gui = FD_SCRATCH_ALLOC_APPEND( l, fd_http_server_align(), fd_http_server_footprint( http_param ) ); + + fd_http_server_callbacks_t gui_callbacks = { + .request = gui_http_request, + .ws_open = gui_ws_open, + .ws_close = gui_ws_close, + .ws_message = gui_ws_message, + }; + ctx->gui_server = fd_http_server_join( fd_http_server_new( _gui, http_param, gui_callbacks, ctx ) ); + fd_http_server_listen( ctx->gui_server, tile->gui.listen_addr, tile->gui.listen_port ); + + FD_LOG_NOTICE(( "gui server listening at http://" FD_IP4_ADDR_FMT ":%u", FD_IP4_ADDR_FMT_ARGS( tile->gui.listen_addr ), tile->gui.listen_port )); + + if( FD_UNLIKELY( !strcmp( tile->gui.identity_key_path, "" ) ) ) + FD_LOG_ERR(( "identity_key_path not set" )); + + ctx->identity_key = fd_keyload_load( tile->gui.identity_key_path, /* pubkey only: */ 1 ); + + if( FD_UNLIKELY( !strcmp( tile->gui.vote_key_path, "" ) ) ) { + ctx->has_vote_key = 0; + } else { + ctx->has_vote_key = 1; + if( FD_UNLIKELY( !fd_base58_decode_32( tile->gui.vote_key_path, (uchar *)ctx->vote_key->uc ) ) ) { + const uchar * vote_key = fd_keyload_load( tile->gui.vote_key_path, /* pubkey only: */ 1 ); + fd_memcpy( (uchar *)ctx->vote_key->uc, vote_key, 32UL ); + } + } +} + +static void +unprivileged_init( fd_topo_t const * topo, + fd_topo_tile_t const * tile ) { + void * scratch = fd_topo_obj_laddr( topo, tile->tile_obj_id ); + + fd_http_server_params_t http_param = derive_http_params( tile ); + FD_SCRATCH_ALLOC_INIT( l, scratch ); + fd_guih_ctx_t * ctx = FD_SCRATCH_ALLOC_APPEND( l, alignof( fd_guih_ctx_t ), sizeof( fd_guih_ctx_t ) ); + FD_SCRATCH_ALLOC_APPEND( l, fd_http_server_align(), fd_http_server_footprint( http_param ) ); + void * _gui = FD_SCRATCH_ALLOC_APPEND( l, fd_guih_align(), fd_guih_footprint( tile->gui.tile_cnt ) ); + void * _alloc = FD_SCRATCH_ALLOC_APPEND( l, fd_alloc_align(), fd_alloc_footprint() ); + + fd_clock_tile_init( ctx->clock ); + + ctx->ref_wallclock = fd_log_wallclock(); + ctx->ref_tickcount = fd_tickcount(); + ctx->tick_per_ns = fd_tempo_tick_per_ns( NULL ); + + ctx->topo = topo; + ctx->gui = fd_guih_join( fd_guih_new( _gui, ctx->gui_server, fd_version_cstr, tile->gui.cluster, ctx->identity_key, ctx->has_vote_key, ctx->vote_key->uc, 0, 0, tile->gui.is_voting, tile->gui.schedule_strategy, tile->gui.wfs_bank_hash, tile->gui.expected_shred_version, ctx->topo, fd_clock_tile_now( ctx->clock ) ) ); + FD_TEST( ctx->gui ); + + ctx->keyswitch = fd_keyswitch_join( fd_topo_obj_laddr( topo, tile->id_keyswitch_obj_id ) ); + FD_TEST( ctx->keyswitch ); + + fd_alloc_t * alloc = fd_alloc_join( fd_alloc_new( _alloc, 1UL ), 1UL ); + FD_TEST( alloc ); + cJSON_alloc_install( alloc ); + + ctx->next_poll_deadline = fd_tickcount(); + + ctx->idle_cnt = 0UL; + ctx->in_cnt = tile->in_cnt; + + for( ulong i=0UL; iin_cnt; i++ ) { + fd_topo_link_t const * link = &topo->links[ tile->in_link_id[ i ] ]; + fd_topo_wksp_t const * link_wksp = &topo->workspaces[ topo->objs[ link->dcache_obj_id ].wksp_id ]; + + if( FD_LIKELY( !strcmp( link->name, "plugin_out" ) ) ) ctx->in_kind[ i ] = IN_KIND_PLUGIN; + else if( FD_LIKELY( !strcmp( link->name, "pohh_pack" ) ) ) ctx->in_kind[ i ] = IN_KIND_POH_PACK; + else if( FD_LIKELY( !strcmp( link->name, "pack_bank" ) ) ) ctx->in_kind[ i ] = IN_KIND_PACK_EXECLE; + else if( FD_LIKELY( !strcmp( link->name, "pack_pohh" ) ) ) ctx->in_kind[ i ] = IN_KIND_PACK_POH; + else if( FD_LIKELY( !strcmp( link->name, "bank_pohh" ) ) ) ctx->in_kind[ i ] = IN_KIND_EXECLE_POH; + else if( FD_LIKELY( !strcmp( link->name, "bundle_status" ) ) ) ctx->in_kind[ i ] = IN_KIND_BUNDLE; + else FD_LOG_ERR(( "gui tile has unexpected input link %lu %s", i, link->name )); + + if( FD_LIKELY( !strcmp( link->name, "bank_pohh" ) ) ) { + ulong producer = fd_topo_find_link_producer( topo, &topo->links[ tile->in_link_id[ i ] ] ); + ctx->in_bank_idx[ i ] = topo->tiles[ producer ].kind_id; + } + + ctx->in_reliable[ i ] = tile->in_link_reliable[ i ]; + ctx->in[ i ].mem = link_wksp->wksp; + ctx->in[ i ].mtu = link->mtu; + ctx->in[ i ].chunk0 = fd_dcache_compact_chunk0( ctx->in[ i ].mem, link->dcache ); + ctx->in[ i ].wmark = fd_dcache_compact_wmark ( ctx->in[ i ].mem, link->dcache, link->mtu ); + } + + ulong scratch_top = FD_SCRATCH_ALLOC_FINI( l, scratch_align() ); + if( FD_UNLIKELY( scratch_top > (ulong)scratch + scratch_footprint( tile ) ) ) + FD_LOG_ERR(( "scratch overflow %lu %lu %lu", scratch_top - (ulong)scratch - scratch_footprint( tile ), scratch_top, (ulong)scratch + scratch_footprint( tile ) )); +} + +static ulong +populate_allowed_seccomp( fd_topo_t const * topo, + fd_topo_tile_t const * tile, + ulong out_cnt, + struct sock_filter * out ) { + void * scratch = fd_topo_obj_laddr( topo, tile->tile_obj_id ); + FD_SCRATCH_ALLOC_INIT( l, scratch ); + fd_guih_ctx_t * ctx = FD_SCRATCH_ALLOC_APPEND( l, alignof( fd_guih_ctx_t ), sizeof( fd_guih_ctx_t ) ); + + populate_sock_filter_policy_fd_guih_tile( out_cnt, out, (uint)fd_log_private_logfile_fd(), (uint)fd_http_server_fd( ctx->gui_server ) ); + return sock_filter_policy_fd_guih_tile_instr_cnt; +} + +static ulong +populate_allowed_fds( fd_topo_t const * topo, + fd_topo_tile_t const * tile, + ulong out_fds_cnt, + int * out_fds ) { + void * scratch = fd_topo_obj_laddr( topo, tile->tile_obj_id ); + FD_SCRATCH_ALLOC_INIT( l, scratch ); + fd_guih_ctx_t * ctx = FD_SCRATCH_ALLOC_APPEND( l, alignof( fd_guih_ctx_t ), sizeof( fd_guih_ctx_t ) ); + + if( FD_UNLIKELY( out_fds_cnt<3UL ) ) FD_LOG_ERR(( "out_fds_cnt %lu", out_fds_cnt )); + + ulong out_cnt = 0UL; + out_fds[ out_cnt++ ] = 2; /* stderr */ + if( FD_LIKELY( -1!=fd_log_private_logfile_fd() ) ) + out_fds[ out_cnt++ ] = fd_log_private_logfile_fd(); /* logfile */ + out_fds[ out_cnt++ ] = fd_http_server_fd( ctx->gui_server ); /* gui listen socket */ + return out_cnt; +} + +static ulong +rlimit_file_cnt( fd_topo_t const * topo FD_PARAM_UNUSED, + fd_topo_tile_t const * tile ) { + /* pipefd, socket, stderr, logfile, and one spare for new accept() connections */ + ulong base = 5UL; + return base + tile->gui.max_http_connections + tile->gui.max_websocket_connections; +} + +#define STEM_BURST (2UL) + +/* See explanation in fd_pack */ +#define STEM_LAZY (128L*3000L) + +#define STEM_CALLBACK_CONTEXT_TYPE fd_guih_ctx_t +#define STEM_CALLBACK_CONTEXT_ALIGN alignof(fd_guih_ctx_t) + +#define STEM_CALLBACK_DURING_HOUSEKEEPING during_housekeeping +#define STEM_CALLBACK_METRICS_WRITE metrics_write +#define STEM_CALLBACK_BEFORE_CREDIT before_credit +#define STEM_CALLBACK_BEFORE_FRAG before_frag +#define STEM_CALLBACK_DURING_FRAG during_frag +#define STEM_CALLBACK_AFTER_FRAG after_frag + +#include "../../disco/stem/fd_stem.c" + +fd_topo_run_tile_t fd_tile_guih = { + .name = "guih", + .rlimit_file_cnt_fn = rlimit_file_cnt, + .populate_allowed_seccomp = populate_allowed_seccomp, + .populate_allowed_fds = populate_allowed_fds, + .scratch_align = scratch_align, + .scratch_footprint = scratch_footprint, + .loose_footprint = loose_footprint, + .privileged_init = privileged_init, + .unprivileged_init = unprivileged_init, + .run = stem_run, +}; diff --git a/src/discoh/guih/fd_guih_tile.seccomppolicy b/src/discoh/guih/fd_guih_tile.seccomppolicy new file mode 100644 index 00000000000..a891d32cbdc --- /dev/null +++ b/src/discoh/guih/fd_guih_tile.seccomppolicy @@ -0,0 +1,80 @@ +# logfile_fd: It can be disabled by configuration, but typically tiles +# will open a log file on boot and write all messages there. +# +# gui_socket_fd: The http tile serves a GUI over HTTP, which is over TCP +# and does not use our XDP program. It uses regular +# kernel sockets, so this is the socket file descriptor. +unsigned int logfile_fd, unsigned int gui_socket_fd + +# logging: all log messages are written to a file and/or pipe +# +# 'WARNING' and above are written to the STDERR pipe, while all messages +# are always written to the log file. +# +# arg 0 is the file descriptor to write to. The boot process ensures +# that descriptor 2 is always STDERR and descriptor 4 is the logfile. +write: (or (eq (arg 0) 2) + (eq (arg 0) logfile_fd)) + +# logging: 'WARNING' and above fsync the logfile to disk immediately +# +# arg 0 is the file descriptor to fsync. +fsync: (eq (arg 0) logfile_fd) + +# server: serving pages over HTTP requires accepting connections +# +# arg 0 is the listen socket file descriptor to accept connections on +accept4: (and (eq (arg 0) gui_socket_fd) + (eq (arg 1) 0) + (eq (arg 2) 0) + (eq (arg 3) "SOCK_CLOEXEC|SOCK_NONBLOCK")) + +# server: serving pages over HTTP requires reading from connections +# +# arg 0 is the file descriptor to read from. It can be any of the +# connected client sockets returned by accept4(2). To accomodate this, +# we allow any file descriptor except those which we know are not these +# connected clients, which are the log file, STDOUT, and the listening +# socket itself. +read: (not (or (eq (arg 0) 2) + (eq (arg 0) logfile_fd) + (eq (arg 0) gui_socket_fd))) + + +# server: serving pages over HTTP requires writing to connections +# +# arg 0 is the file descriptor to send to. It can be any of the +# connected client sockets returned by accept4(2). To accomodate this, +# we allow any file descriptor except those which we know are not these +# connected clients, which are the log file, STDOUT, and the listening +# socket itself. +sendto: (not (or (eq (arg 0) 2) + (eq (arg 0) logfile_fd) + (eq (arg 0) gui_socket_fd))) + +# server: serving websockets quickly requires gathered IO writes +# +# arg 0 is the file descriptor to send to. It can be any of the +# connected client sockets returned by accept4(2). To accomodate this, +# we allow any file descriptor except those which we know are not these +# connected clients, which are the log file, STDOUT, and the listening +# socket itself. +sendmmsg: (and (not (or (eq (arg 0) 2) + (eq (arg 0) logfile_fd) + (eq (arg 0) gui_socket_fd))) + (eq (arg 2) 1) + (eq (arg 3) "MSG_NOSIGNAL")) + +# server: serving pages over HTTP requires closing connections +# +# arg 0 is the file descriptor to close. It can be any of the connected +# client sockets returned by accept4(2). To accomodate this, we allow +# any file descriptor except those which we know are not these connected +# clients, which are the log file, STDOUT, and the listening socket +# itself. +close: (not (or (eq (arg 0) 2) + (eq (arg 0) logfile_fd) + (eq (arg 0) gui_socket_fd))) + +# server: serving pages over HTTP requires polling connections +ppoll diff --git a/src/discoh/guih/generated/fd_guih_tile_seccomp.h b/src/discoh/guih/generated/fd_guih_tile_seccomp.h new file mode 100644 index 00000000000..0999649cda4 --- /dev/null +++ b/src/discoh/guih/generated/fd_guih_tile_seccomp.h @@ -0,0 +1,151 @@ +/* THIS FILE WAS GENERATED BY generate_filters.py. DO NOT EDIT BY HAND! */ +#ifndef HEADER_fd_src_discoh_guih_generated_fd_guih_tile_seccomp_h +#define HEADER_fd_src_discoh_guih_generated_fd_guih_tile_seccomp_h + +#if defined(__linux__) + +#include "../../../../src/util/fd_util_base.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined(__i386__) +# define ARCH_NR AUDIT_ARCH_I386 +#elif defined(__x86_64__) +# define ARCH_NR AUDIT_ARCH_X86_64 +#elif defined(__aarch64__) +# define ARCH_NR AUDIT_ARCH_AARCH64 +#else +# error "Target architecture is unsupported by seccomp." +#endif +static const unsigned int sock_filter_policy_fd_guih_tile_instr_cnt = 56; + +static void populate_sock_filter_policy_fd_guih_tile( ulong out_cnt, struct sock_filter * out, unsigned int logfile_fd, unsigned int gui_socket_fd ) { + FD_TEST( out_cnt >= 56 ); + struct sock_filter filter[56] = { + /* Check: Jump to RET_KILL_PROCESS if the script's arch != the runtime arch */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, ( offsetof( struct seccomp_data, arch ) ) ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ARCH_NR, 0, /* RET_KILL_PROCESS */ 52 ), + /* loading syscall number in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, ( offsetof( struct seccomp_data, nr ) ) ), + /* allow write based on expression */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_write, /* check_write */ 8, 0 ), + /* allow fsync based on expression */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_fsync, /* check_fsync */ 11, 0 ), + /* allow accept4 based on expression */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_accept4, /* check_accept4 */ 12, 0 ), + /* allow read based on expression */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_read, /* check_read */ 19, 0 ), + /* allow sendto based on expression */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_sendto, /* check_sendto */ 24, 0 ), + /* allow sendmmsg based on expression */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_sendmmsg, /* check_sendmmsg */ 29, 0 ), + /* allow close based on expression */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_close, /* check_close */ 38, 0 ), + /* simply allow ppoll */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_ppoll, /* RET_ALLOW */ 44, 0 ), + /* none of the syscalls matched */ + { BPF_JMP | BPF_JA, 0, 0, /* RET_KILL_PROCESS */ 42 }, +// check_write: + /* load syscall argument 0 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 2, /* RET_ALLOW */ 41, /* lbl_1 */ 0 ), +// lbl_1: + /* load syscall argument 0 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, logfile_fd, /* RET_ALLOW */ 39, /* RET_KILL_PROCESS */ 38 ), +// check_fsync: + /* load syscall argument 0 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, logfile_fd, /* RET_ALLOW */ 37, /* RET_KILL_PROCESS */ 36 ), +// check_accept4: + /* load syscall argument 0 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, gui_socket_fd, /* lbl_2 */ 0, /* RET_KILL_PROCESS */ 34 ), +// lbl_2: + /* load syscall argument 1 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[1])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0, /* lbl_3 */ 0, /* RET_KILL_PROCESS */ 32 ), +// lbl_3: + /* load syscall argument 2 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[2])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0, /* lbl_4 */ 0, /* RET_KILL_PROCESS */ 30 ), +// lbl_4: + /* load syscall argument 3 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[3])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SOCK_CLOEXEC|SOCK_NONBLOCK, /* RET_ALLOW */ 29, /* RET_KILL_PROCESS */ 28 ), +// check_read: + /* load syscall argument 0 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 2, /* RET_KILL_PROCESS */ 26, /* lbl_5 */ 0 ), +// lbl_5: + /* load syscall argument 0 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, logfile_fd, /* RET_KILL_PROCESS */ 24, /* lbl_6 */ 0 ), +// lbl_6: + /* load syscall argument 0 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, gui_socket_fd, /* RET_KILL_PROCESS */ 22, /* RET_ALLOW */ 23 ), +// check_sendto: + /* load syscall argument 0 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 2, /* RET_KILL_PROCESS */ 20, /* lbl_7 */ 0 ), +// lbl_7: + /* load syscall argument 0 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, logfile_fd, /* RET_KILL_PROCESS */ 18, /* lbl_8 */ 0 ), +// lbl_8: + /* load syscall argument 0 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, gui_socket_fd, /* RET_KILL_PROCESS */ 16, /* RET_ALLOW */ 17 ), +// check_sendmmsg: + /* load syscall argument 0 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 2, /* RET_KILL_PROCESS */ 14, /* lbl_10 */ 0 ), +// lbl_10: + /* load syscall argument 0 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, logfile_fd, /* RET_KILL_PROCESS */ 12, /* lbl_11 */ 0 ), +// lbl_11: + /* load syscall argument 0 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, gui_socket_fd, /* RET_KILL_PROCESS */ 10, /* lbl_9 */ 0 ), +// lbl_9: + /* load syscall argument 2 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[2])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 1, /* lbl_12 */ 0, /* RET_KILL_PROCESS */ 8 ), +// lbl_12: + /* load syscall argument 3 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[3])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, MSG_NOSIGNAL, /* RET_ALLOW */ 7, /* RET_KILL_PROCESS */ 6 ), +// check_close: + /* load syscall argument 0 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 2, /* RET_KILL_PROCESS */ 4, /* lbl_13 */ 0 ), +// lbl_13: + /* load syscall argument 0 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, logfile_fd, /* RET_KILL_PROCESS */ 2, /* lbl_14 */ 0 ), +// lbl_14: + /* load syscall argument 0 in accumulator */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, gui_socket_fd, /* RET_KILL_PROCESS */ 0, /* RET_ALLOW */ 1 ), +// RET_KILL_PROCESS: + /* KILL_PROCESS is placed before ALLOW since it's the fallthrough case. */ + BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), +// RET_ALLOW: + /* ALLOW has to be reached by jumping */ + BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_ALLOW ), + }; + fd_memcpy( out, filter, sizeof( filter ) ); +} + +#endif /* defined(__linux__) */ + +#endif /* HEADER_fd_src_discoh_guih_generated_fd_guih_tile_seccomp_h */ diff --git a/src/discoh/guih/generated/http_import_dist.c b/src/discoh/guih/generated/http_import_dist.c new file mode 100644 index 00000000000..e40365a5fc5 --- /dev/null +++ b/src/discoh/guih/generated/http_import_dist.c @@ -0,0 +1,248 @@ +/* THIS FILE WAS GENERATED BY make frontend. DO NOT EDIT BY HAND! */ +#include "http_import_dist.h" + +FD_IMPORT_BINARY( file_0, "src/discoh/guih/dist/LICENSE_DEPENDENCIES" ); +FD_IMPORT_BINARY( file_0_zstd, "src/discoh/guih/dist_cmp/LICENSE_DEPENDENCIES.zst" ); +FD_IMPORT_BINARY( file_0_gzip, "src/discoh/guih/dist_cmp/LICENSE_DEPENDENCIES.gz" ); +FD_IMPORT_BINARY( file_1, "src/discoh/guih/dist/assets/NotoFlagsOnly.woff2" ); +FD_IMPORT_BINARY( file_1_zstd, "src/discoh/guih/dist_cmp/assets/NotoFlagsOnly.woff2.zst" ); +FD_IMPORT_BINARY( file_1_gzip, "src/discoh/guih/dist_cmp/assets/NotoFlagsOnly.woff2.gz" ); +FD_IMPORT_BINARY( file_2, "src/discoh/guih/dist/assets/firedancer-D_J0EzUc.svg" ); +FD_IMPORT_BINARY( file_2_zstd, "src/discoh/guih/dist_cmp/assets/firedancer-D_J0EzUc.svg.zst" ); +FD_IMPORT_BINARY( file_2_gzip, "src/discoh/guih/dist_cmp/assets/firedancer-D_J0EzUc.svg.gz" ); +FD_IMPORT_BINARY( file_3, "src/discoh/guih/dist/assets/firedancer_circle_logo-D9jlxCje.svg" ); +FD_IMPORT_BINARY( file_3_zstd, "src/discoh/guih/dist_cmp/assets/firedancer_circle_logo-D9jlxCje.svg.zst" ); +FD_IMPORT_BINARY( file_3_gzip, "src/discoh/guih/dist_cmp/assets/firedancer_circle_logo-D9jlxCje.svg.gz" ); +FD_IMPORT_BINARY( file_4, "src/discoh/guih/dist/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg" ); +FD_IMPORT_BINARY( file_4_zstd, "src/discoh/guih/dist_cmp/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg.zst" ); +FD_IMPORT_BINARY( file_4_gzip, "src/discoh/guih/dist_cmp/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg.gz" ); +FD_IMPORT_BINARY( file_5, "src/discoh/guih/dist/assets/firedancer_logo-CrgwxzPk.svg" ); +FD_IMPORT_BINARY( file_5_zstd, "src/discoh/guih/dist_cmp/assets/firedancer_logo-CrgwxzPk.svg.zst" ); +FD_IMPORT_BINARY( file_5_gzip, "src/discoh/guih/dist_cmp/assets/firedancer_logo-CrgwxzPk.svg.gz" ); +FD_IMPORT_BINARY( file_6, "src/discoh/guih/dist/assets/frankendancer-0Top5G94.svg" ); +FD_IMPORT_BINARY( file_6_zstd, "src/discoh/guih/dist_cmp/assets/frankendancer-0Top5G94.svg.zst" ); +FD_IMPORT_BINARY( file_6_gzip, "src/discoh/guih/dist_cmp/assets/frankendancer-0Top5G94.svg.gz" ); +FD_IMPORT_BINARY( file_7, "src/discoh/guih/dist/assets/frankendancer_circle_logo-D5z79vwQ.svg" ); +FD_IMPORT_BINARY( file_7_zstd, "src/discoh/guih/dist_cmp/assets/frankendancer_circle_logo-D5z79vwQ.svg.zst" ); +FD_IMPORT_BINARY( file_7_gzip, "src/discoh/guih/dist_cmp/assets/frankendancer_circle_logo-D5z79vwQ.svg.gz" ); +FD_IMPORT_BINARY( file_8, "src/discoh/guih/dist/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg" ); +FD_IMPORT_BINARY( file_8_zstd, "src/discoh/guih/dist_cmp/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg.zst" ); +FD_IMPORT_BINARY( file_8_gzip, "src/discoh/guih/dist_cmp/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg.gz" ); +FD_IMPORT_BINARY( file_9, "src/discoh/guih/dist/assets/frankendancer_logo-CHyfJ772.svg" ); +FD_IMPORT_BINARY( file_9_zstd, "src/discoh/guih/dist_cmp/assets/frankendancer_logo-CHyfJ772.svg.zst" ); +FD_IMPORT_BINARY( file_9_gzip, "src/discoh/guih/dist_cmp/assets/frankendancer_logo-CHyfJ772.svg.gz" ); +FD_IMPORT_BINARY( file_10, "src/discoh/guih/dist/assets/index-guHM0lzm.js" ); +FD_IMPORT_BINARY( file_10_zstd, "src/discoh/guih/dist_cmp/assets/index-guHM0lzm.js.zst" ); +FD_IMPORT_BINARY( file_10_gzip, "src/discoh/guih/dist_cmp/assets/index-guHM0lzm.js.gz" ); +FD_IMPORT_BINARY( file_11, "src/discoh/guih/dist/assets/index-qV0ZL8w9.css" ); +FD_IMPORT_BINARY( file_11_zstd, "src/discoh/guih/dist_cmp/assets/index-qV0ZL8w9.css.zst" ); +FD_IMPORT_BINARY( file_11_gzip, "src/discoh/guih/dist_cmp/assets/index-qV0ZL8w9.css.gz" ); +FD_IMPORT_BINARY( file_12, "src/discoh/guih/dist/assets/inter-tight-latin-400-normal-BLrFJfvD.woff" ); +FD_IMPORT_BINARY( file_12_zstd, "src/discoh/guih/dist_cmp/assets/inter-tight-latin-400-normal-BLrFJfvD.woff.zst" ); +FD_IMPORT_BINARY( file_12_gzip, "src/discoh/guih/dist_cmp/assets/inter-tight-latin-400-normal-BLrFJfvD.woff.gz" ); +FD_IMPORT_BINARY( file_13, "src/discoh/guih/dist/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2" ); +FD_IMPORT_BINARY( file_13_zstd, "src/discoh/guih/dist_cmp/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2.zst" ); +FD_IMPORT_BINARY( file_13_gzip, "src/discoh/guih/dist_cmp/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2.gz" ); +FD_IMPORT_BINARY( file_14, "src/discoh/guih/dist/assets/privateYou-DnAsYVZD.svg" ); +FD_IMPORT_BINARY( file_14_zstd, "src/discoh/guih/dist_cmp/assets/privateYou-DnAsYVZD.svg.zst" ); +FD_IMPORT_BINARY( file_14_gzip, "src/discoh/guih/dist_cmp/assets/privateYou-DnAsYVZD.svg.gz" ); +FD_IMPORT_BINARY( file_15, "src/discoh/guih/dist/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff" ); +FD_IMPORT_BINARY( file_15_zstd, "src/discoh/guih/dist_cmp/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff.zst" ); +FD_IMPORT_BINARY( file_15_gzip, "src/discoh/guih/dist_cmp/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff.gz" ); +FD_IMPORT_BINARY( file_16, "src/discoh/guih/dist/assets/roboto-mono-latin-400-normal-GekRknry.woff2" ); +FD_IMPORT_BINARY( file_16_zstd, "src/discoh/guih/dist_cmp/assets/roboto-mono-latin-400-normal-GekRknry.woff2.zst" ); +FD_IMPORT_BINARY( file_16_gzip, "src/discoh/guih/dist_cmp/assets/roboto-mono-latin-400-normal-GekRknry.woff2.gz" ); +FD_IMPORT_BINARY( file_17, "src/discoh/guih/dist/assets/wsWorker-CTAVpIxr.js" ); +FD_IMPORT_BINARY( file_17_zstd, "src/discoh/guih/dist_cmp/assets/wsWorker-CTAVpIxr.js.zst" ); +FD_IMPORT_BINARY( file_17_gzip, "src/discoh/guih/dist_cmp/assets/wsWorker-CTAVpIxr.js.gz" ); +FD_IMPORT_BINARY( file_18, "src/discoh/guih/dist/index.html" ); +FD_IMPORT_BINARY( file_18_zstd, "src/discoh/guih/dist_cmp/index.html.zst" ); +FD_IMPORT_BINARY( file_18_gzip, "src/discoh/guih/dist_cmp/index.html.gz" ); +FD_IMPORT_BINARY( file_19, "src/discoh/guih/dist/version" ); +FD_IMPORT_BINARY( file_19_zstd, "src/discoh/guih/dist_cmp/version.zst" ); +FD_IMPORT_BINARY( file_19_gzip, "src/discoh/guih/dist_cmp/version.gz" ); + +fd_http_static_file_t STATIC_FILES[] = { + { + .name = "/LICENSE_DEPENDENCIES", + .data = file_0, + .data_len = &file_0_sz, + .zstd_data = file_0_zstd, + .zstd_data_len = &file_0_zstd_sz, + .gzip_data = file_0_gzip, + .gzip_data_len = &file_0_gzip_sz, + }, + { + .name = "/assets/NotoFlagsOnly.woff2", + .data = file_1, + .data_len = &file_1_sz, + .zstd_data = file_1_zstd, + .zstd_data_len = &file_1_zstd_sz, + .gzip_data = file_1_gzip, + .gzip_data_len = &file_1_gzip_sz, + }, + { + .name = "/assets/firedancer-D_J0EzUc.svg", + .data = file_2, + .data_len = &file_2_sz, + .zstd_data = file_2_zstd, + .zstd_data_len = &file_2_zstd_sz, + .gzip_data = file_2_gzip, + .gzip_data_len = &file_2_gzip_sz, + }, + { + .name = "/assets/firedancer_circle_logo-D9jlxCje.svg", + .data = file_3, + .data_len = &file_3_sz, + .zstd_data = file_3_zstd, + .zstd_data_len = &file_3_zstd_sz, + .gzip_data = file_3_gzip, + .gzip_data_len = &file_3_gzip_sz, + }, + { + .name = "/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg", + .data = file_4, + .data_len = &file_4_sz, + .zstd_data = file_4_zstd, + .zstd_data_len = &file_4_zstd_sz, + .gzip_data = file_4_gzip, + .gzip_data_len = &file_4_gzip_sz, + }, + { + .name = "/assets/firedancer_logo-CrgwxzPk.svg", + .data = file_5, + .data_len = &file_5_sz, + .zstd_data = file_5_zstd, + .zstd_data_len = &file_5_zstd_sz, + .gzip_data = file_5_gzip, + .gzip_data_len = &file_5_gzip_sz, + }, + { + .name = "/assets/frankendancer-0Top5G94.svg", + .data = file_6, + .data_len = &file_6_sz, + .zstd_data = file_6_zstd, + .zstd_data_len = &file_6_zstd_sz, + .gzip_data = file_6_gzip, + .gzip_data_len = &file_6_gzip_sz, + }, + { + .name = "/assets/frankendancer_circle_logo-D5z79vwQ.svg", + .data = file_7, + .data_len = &file_7_sz, + .zstd_data = file_7_zstd, + .zstd_data_len = &file_7_zstd_sz, + .gzip_data = file_7_gzip, + .gzip_data_len = &file_7_gzip_sz, + }, + { + .name = "/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg", + .data = file_8, + .data_len = &file_8_sz, + .zstd_data = file_8_zstd, + .zstd_data_len = &file_8_zstd_sz, + .gzip_data = file_8_gzip, + .gzip_data_len = &file_8_gzip_sz, + }, + { + .name = "/assets/frankendancer_logo-CHyfJ772.svg", + .data = file_9, + .data_len = &file_9_sz, + .zstd_data = file_9_zstd, + .zstd_data_len = &file_9_zstd_sz, + .gzip_data = file_9_gzip, + .gzip_data_len = &file_9_gzip_sz, + }, + { + .name = "/assets/index-guHM0lzm.js", + .data = file_10, + .data_len = &file_10_sz, + .zstd_data = file_10_zstd, + .zstd_data_len = &file_10_zstd_sz, + .gzip_data = file_10_gzip, + .gzip_data_len = &file_10_gzip_sz, + }, + { + .name = "/assets/index-qV0ZL8w9.css", + .data = file_11, + .data_len = &file_11_sz, + .zstd_data = file_11_zstd, + .zstd_data_len = &file_11_zstd_sz, + .gzip_data = file_11_gzip, + .gzip_data_len = &file_11_gzip_sz, + }, + { + .name = "/assets/inter-tight-latin-400-normal-BLrFJfvD.woff", + .data = file_12, + .data_len = &file_12_sz, + .zstd_data = file_12_zstd, + .zstd_data_len = &file_12_zstd_sz, + .gzip_data = file_12_gzip, + .gzip_data_len = &file_12_gzip_sz, + }, + { + .name = "/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2", + .data = file_13, + .data_len = &file_13_sz, + .zstd_data = file_13_zstd, + .zstd_data_len = &file_13_zstd_sz, + .gzip_data = file_13_gzip, + .gzip_data_len = &file_13_gzip_sz, + }, + { + .name = "/assets/privateYou-DnAsYVZD.svg", + .data = file_14, + .data_len = &file_14_sz, + .zstd_data = file_14_zstd, + .zstd_data_len = &file_14_zstd_sz, + .gzip_data = file_14_gzip, + .gzip_data_len = &file_14_gzip_sz, + }, + { + .name = "/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff", + .data = file_15, + .data_len = &file_15_sz, + .zstd_data = file_15_zstd, + .zstd_data_len = &file_15_zstd_sz, + .gzip_data = file_15_gzip, + .gzip_data_len = &file_15_gzip_sz, + }, + { + .name = "/assets/roboto-mono-latin-400-normal-GekRknry.woff2", + .data = file_16, + .data_len = &file_16_sz, + .zstd_data = file_16_zstd, + .zstd_data_len = &file_16_zstd_sz, + .gzip_data = file_16_gzip, + .gzip_data_len = &file_16_gzip_sz, + }, + { + .name = "/assets/wsWorker-CTAVpIxr.js", + .data = file_17, + .data_len = &file_17_sz, + .zstd_data = file_17_zstd, + .zstd_data_len = &file_17_zstd_sz, + .gzip_data = file_17_gzip, + .gzip_data_len = &file_17_gzip_sz, + }, + { + .name = "/index.html", + .data = file_18, + .data_len = &file_18_sz, + .zstd_data = file_18_zstd, + .zstd_data_len = &file_18_zstd_sz, + .gzip_data = file_18_gzip, + .gzip_data_len = &file_18_gzip_sz, + }, + { + .name = "/version", + .data = file_19, + .data_len = &file_19_sz, + .zstd_data = file_19_zstd, + .zstd_data_len = &file_19_zstd_sz, + .gzip_data = file_19_gzip, + .gzip_data_len = &file_19_gzip_sz, + }, + {0} +}; + diff --git a/src/discoh/guih/generated/http_import_dist.h b/src/discoh/guih/generated/http_import_dist.h new file mode 100644 index 00000000000..a61eaa83434 --- /dev/null +++ b/src/discoh/guih/generated/http_import_dist.h @@ -0,0 +1,20 @@ +#ifndef HEADER_fd_src_discoh_guih_generated_http_import_dist_h +#define HEADER_fd_src_discoh_guih_generated_http_import_dist_h + +#include "../../../util/fd_util.h" + +struct fd_http_static_file { + char const * name; + uchar const * data; + ulong const * data_len; + uchar const * zstd_data; + ulong const * zstd_data_len; + uchar const * gzip_data; + ulong const * gzip_data_len; +}; + +typedef struct fd_http_static_file fd_http_static_file_t; + +extern fd_http_static_file_t STATIC_FILES[]; /* null terminated */ + +#endif /* HEADER_fd_src_discoh_guih_generated_http_import_dist_h */ From 6fd80f2da59fcd6b7b5f38448b729babd04f3d82 Mon Sep 17 00:00:00 2001 From: jherrera-jump Date: Sat, 13 Jun 2026 19:06:20 -0500 Subject: [PATCH 20/61] gui: reorder overview tiles card (#10217) --- src/disco/gui/fd_gui.c | 31 ++++++++++++++ src/disco/gui/fd_gui.h | 4 ++ src/disco/gui/fd_gui_printf.c | 80 ++++++++++++++++++----------------- 3 files changed, 77 insertions(+), 38 deletions(-) diff --git a/src/disco/gui/fd_gui.c b/src/disco/gui/fd_gui.c index c590400897e..ca7901bbae5 100644 --- a/src/disco/gui/fd_gui.c +++ b/src/disco/gui/fd_gui.c @@ -33,6 +33,35 @@ fd_gui_footprint( ulong tile_cnt ) { return FD_LAYOUT_FINI( l, fd_gui_align() ); } +static inline void +fd_gui_build_tile_order( fd_gui_t * gui ) { + ulong tile_cnt = gui->topo->tile_cnt; + ulong order_cnt = 0UL; + uchar placed[ FD_TOPO_MAX_TILES ] = {0}; + + char const * const tile_display_order[] = { + "gossvf", "gossip", "snapct", "snapld", "snapdc", "snapin", "snapwr", + "net", "shred", "repair", "replay", "execrp", "tower", "txsend", "sign", + "quic", "verify", "dedup", "pack", "execle", "poh" + }; + + for( ulong n=0UL; ntopo->tiles[ i ].name, tile_display_order[ n ] ) ) ) { + gui->summary.tile[ order_cnt++ ] = i; + placed[ i ] = 1; + } + } + } + + for( ulong i=0UL; isummary.tile[ order_cnt++ ] = i; + } + + gui->summary.tile_cnt = order_cnt; +} + void * fd_gui_new( void * shmem, fd_http_server_t * http, @@ -168,6 +197,8 @@ fd_gui_new( void * shmem, gui->summary.execrp_tile_cnt = fd_topo_tile_name_cnt( gui->topo, "execrp" ); gui->summary.shred_tile_cnt = fd_topo_tile_name_cnt( gui->topo, "shred" ); + fd_gui_build_tile_order( gui ); + gui->summary.slot_rooted = ULONG_MAX; gui->summary.slot_optimistically_confirmed = ULONG_MAX; gui->summary.slot_completed = ULONG_MAX; diff --git a/src/disco/gui/fd_gui.h b/src/disco/gui/fd_gui.h index a370362b147..019c853850b 100644 --- a/src/disco/gui/fd_gui.h +++ b/src/disco/gui/fd_gui.h @@ -932,6 +932,10 @@ struct fd_gui { ulong scheduler_counts_snap_idx_slot_start; /* Temporary storage for samples. Will be downsampled into leader history on slot end. */ fd_gui_scheduler_counts_t scheduler_counts_snap[ FD_GUI_SCHEDULER_COUNT_SNAP_CNT ][ 1 ]; + + /* Topo tile indices in display order, built once on init. */ + ulong tile[ FD_TOPO_MAX_TILES ]; + ulong tile_cnt; } summary; fd_gui_slot_t slots[ FD_GUI_SLOTS_CNT ][ 1 ]; diff --git a/src/disco/gui/fd_gui_printf.c b/src/disco/gui/fd_gui_printf.c index b884bac02de..9dbcfab1723 100644 --- a/src/disco/gui/fd_gui_printf.c +++ b/src/disco/gui/fd_gui_printf.c @@ -525,8 +525,8 @@ void fd_gui_printf_tiles( fd_gui_t * gui ) { jsonp_open_envelope( gui->http, "summary", "tiles" ); jsonp_open_array( gui->http, "value" ); - for( ulong i=0UL; itopo->tile_cnt; i++ ) { - fd_topo_tile_t const * tile = &gui->topo->tiles[ i ]; + for( ulong i=0UL; isummary.tile_cnt; i++ ) { + fd_topo_tile_t const * tile = &gui->topo->tiles[ gui->summary.tile[ i ] ]; if( FD_UNLIKELY( !strncmp( tile->name, "bench", 5UL ) ) ) { /* bench tiles not reported */ @@ -810,8 +810,9 @@ static void fd_gui_printf_tile_timers( fd_gui_t * gui, fd_gui_tile_timers_t const * prev, fd_gui_tile_timers_t const * cur ) { - for( ulong i=0UL; itopo->tile_cnt; i++ ) { - fd_topo_tile_t const * tile = &gui->topo->tiles[ i ]; + for( ulong i=0UL; isummary.tile_cnt; i++ ) { + ulong t = gui->summary.tile[ i ]; + fd_topo_tile_t const * tile = &gui->topo->tiles[ t ]; if( FD_UNLIKELY( !strncmp( tile->name, "bench", 5UL ) ) ) { /* bench tiles not reported */ @@ -819,10 +820,10 @@ fd_gui_printf_tile_timers( fd_gui_t * gui, } ulong cur_total = 0UL; - for( ulong j=0UL; jhttp, "timers" ); - for( ulong i=0UL; itopo->tile_cnt; i++ ) { - fd_topo_tile_t const * tile = &gui->topo->tiles[ i ]; + for( ulong i=0UL; isummary.tile_cnt; i++ ) { + ulong t = gui->summary.tile[ i ]; + fd_topo_tile_t const * tile = &gui->topo->tiles[ t ]; if( FD_UNLIKELY( !strncmp( tile->name, "bench", 5UL ) ) ) { /* bench tiles not reported */ @@ -855,17 +857,17 @@ fd_gui_printf_tile_metrics( fd_gui_t * gui, } ulong cur_total = 0UL; - for( ulong j=0UL; jhttp, NULL ); } else { jsonp_open_array( gui->http, NULL ); for (ulong j = 0UL; jhttp, NULL, percent_trunc ); } @@ -875,8 +877,9 @@ fd_gui_printf_tile_metrics( fd_gui_t * gui, jsonp_close_array( gui->http ); jsonp_open_array( gui->http, "sched_timers" ); - for( ulong i=0UL; itopo->tile_cnt; i++ ) { - fd_topo_tile_t const * tile = &gui->topo->tiles[ i ]; + for( ulong i=0UL; isummary.tile_cnt; i++ ) { + ulong t = gui->summary.tile[ i ]; + fd_topo_tile_t const * tile = &gui->topo->tiles[ t ]; if( FD_UNLIKELY( !strncmp( tile->name, "bench", 5UL ) ) ) { /* bench tiles not reported */ @@ -885,17 +888,17 @@ fd_gui_printf_tile_metrics( fd_gui_t * gui, } ulong cur_total = 0UL; - for( ulong j=0UL; jhttp, NULL ); } else { jsonp_open_array( gui->http, NULL ); for (ulong j = 0UL; jhttp, NULL, percent_trunc ); } @@ -905,55 +908,56 @@ fd_gui_printf_tile_metrics( fd_gui_t * gui, jsonp_close_array( gui->http ); jsonp_open_array( gui->http, "in_backp" ); - for( ulong i=0UL; itopo->tile_cnt; i++ ) { - jsonp_bool( gui->http, NULL, cur[ i ].in_backp ); + for( ulong i=0UL; isummary.tile_cnt; i++ ) { + jsonp_bool( gui->http, NULL, cur[ gui->summary.tile[ i ] ].in_backp ); } jsonp_close_array( gui->http ); jsonp_open_array( gui->http, "backp_msgs" ); - for( ulong i=0UL; itopo->tile_cnt; i++ ) { - jsonp_ulong( gui->http, NULL, cur[ i ].backp_cnt ); + for( ulong i=0UL; isummary.tile_cnt; i++ ) { + jsonp_ulong( gui->http, NULL, cur[ gui->summary.tile[ i ] ].backp_cnt ); } jsonp_close_array( gui->http ); jsonp_open_array( gui->http, "alive" ); - for( ulong i=0UL; itopo->tile_cnt; i++ ) { + for( ulong i=0UL; isummary.tile_cnt; i++ ) { + ulong t = gui->summary.tile[ i ]; /* We use a longer sampling window for this metric to minimize false positives */ - jsonp_ulong( gui->http, NULL, fd_ulong_if( cur[ i ].status==2U, 2UL, (ulong)(cur[ i ].heartbeat>prev[ i ].heartbeat) ) ); + jsonp_ulong( gui->http, NULL, fd_ulong_if( cur[ t ].status==2U, 2UL, (ulong)(cur[ t ].heartbeat>prev[ t ].heartbeat) ) ); } jsonp_close_array( gui->http ); jsonp_open_array( gui->http, "nvcsw" ); - for( ulong i=0UL; itopo->tile_cnt; i++ ) { - jsonp_ulong( gui->http, NULL, cur[ i ].nvcsw ); + for( ulong i=0UL; isummary.tile_cnt; i++ ) { + jsonp_ulong( gui->http, NULL, cur[ gui->summary.tile[ i ] ].nvcsw ); } jsonp_close_array( gui->http ); jsonp_open_array( gui->http, "nivcsw" ); - for( ulong i=0UL; itopo->tile_cnt; i++ ) { - jsonp_ulong( gui->http, NULL, cur[ i ].nivcsw ); + for( ulong i=0UL; isummary.tile_cnt; i++ ) { + jsonp_ulong( gui->http, NULL, cur[ gui->summary.tile[ i ] ].nivcsw ); } jsonp_close_array( gui->http ); jsonp_open_array( gui->http, "minflt" ); - for( ulong i=0UL; itopo->tile_cnt; i++ ) { - jsonp_ulong( gui->http, NULL, cur[ i ].minflt ); + for( ulong i=0UL; isummary.tile_cnt; i++ ) { + jsonp_ulong( gui->http, NULL, cur[ gui->summary.tile[ i ] ].minflt ); } jsonp_close_array( gui->http ); jsonp_open_array( gui->http, "majflt" ); - for( ulong i=0UL; itopo->tile_cnt; i++ ) { - jsonp_ulong( gui->http, NULL, cur[ i ].majflt ); + for( ulong i=0UL; isummary.tile_cnt; i++ ) { + jsonp_ulong( gui->http, NULL, cur[ gui->summary.tile[ i ] ].majflt ); } jsonp_close_array( gui->http ); jsonp_open_array( gui->http, "last_cpu" ); - for( ulong i=0UL; itopo->tile_cnt; i++ ) { - jsonp_ulong( gui->http, NULL, cur[ i ].last_cpu ); + for( ulong i=0UL; isummary.tile_cnt; i++ ) { + jsonp_ulong( gui->http, NULL, cur[ gui->summary.tile[ i ] ].last_cpu ); } jsonp_close_array( gui->http ); jsonp_open_array( gui->http, "interrupts" ); - for( ulong i=0UL; itopo->tile_cnt; i++ ) { - jsonp_ulong( gui->http, NULL, cur[ i ].interrupts ); + for( ulong i=0UL; isummary.tile_cnt; i++ ) { + jsonp_ulong( gui->http, NULL, cur[ gui->summary.tile[ i ] ].interrupts ); } jsonp_close_array( gui->http ); jsonp_open_array( gui->http, "priority" ); - for( ulong i=0UL; itopo->tile_cnt; i++ ) { - int priority = fd_topob_tile_priority_type( gui->topo->tiles[ i ].name ); + for( ulong i=0UL; isummary.tile_cnt; i++ ) { + int priority = fd_topob_tile_priority_type( gui->topo->tiles[ gui->summary.tile[ i ] ].name ); char const * priority_type_str = "unknown"; switch( priority ) { From 8c1705effc3de2814c05f43cf75566d154832348 Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Sun, 14 Jun 2026 00:43:24 +0000 Subject: [PATCH 21/61] rserve: drop startup log to INFO --- src/discof/repair/fd_rserve_tile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/discof/repair/fd_rserve_tile.c b/src/discof/repair/fd_rserve_tile.c index 0c61cbbc0d0..7b531772929 100644 --- a/src/discof/repair/fd_rserve_tile.c +++ b/src/discof/repair/fd_rserve_tile.c @@ -513,7 +513,7 @@ privileged_init( fd_topo_t const * topo, FD_TEST( fd_rng_secure( &ctx->seed, sizeof(ulong) ) ); - FD_LOG_NOTICE(( "creating shredb (size_limit=%luGiB)", size_limit )); + FD_LOG_INFO(( "creating shredb (size_limit=%luGiB)", size_limit )); ctx->shredb = fd_shredb_join( fd_shredb_new( ctx->shredb, size_limit, tile->rserve.shredb_path, ctx->seed ) ); if( FD_UNLIKELY( !ctx->shredb ) ) FD_LOG_ERR(( "failed to initialize shredb" )); From 9ad8de5c56f88424f4af4fa76aaa9bd23c366bdc Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Sun, 14 Jun 2026 00:02:34 +0000 Subject: [PATCH 22/61] rpc: add WebSocket support (voteSubscribe) Add support for subscribing to votes via the RPC tile. https://solana.com/docs/rpc/websocket/votesubscribe --- book/api/metrics-generated.md | 4 + src/app/firedancer/config/default.toml | 4 + src/app/firedancer/topology.c | 1 + src/app/shared/fd_config.h | 1 + src/app/shared/fd_config_parse.c | 1 + .../metrics/generated/fd_metrics_enums.h | 5 + src/disco/metrics/generated/fd_metrics_rpc.c | 4 + src/disco/metrics/generated/fd_metrics_rpc.h | 32 +- src/disco/metrics/metrics.xml | 8 + src/disco/topo/fd_topo.h | 1 + src/discof/rpc/fd_rpc_tile.c | 301 ++++++++++++++++-- src/discof/rpc/fd_rpc_tile.seccomppolicy | 13 + src/discof/rpc/fixtures/vote_tower_sync.bin | Bin 0 -> 448 bytes .../rpc/generated/fd_rpc_tile_seccomp.h | 54 +++- src/discof/rpc/test_rpc_tile.c | 159 ++++++++- 15 files changed, 546 insertions(+), 42 deletions(-) create mode 100644 src/discof/rpc/fixtures/vote_tower_sync.bin diff --git a/book/api/metrics-generated.md b/book/api/metrics-generated.md index f21654382c2..6bcbeabbc28 100644 --- a/book/api/metrics-generated.md +++ b/book/api/metrics-generated.md @@ -1623,6 +1623,10 @@ | rpc_​request_​served
{rpc_​method="getTransactionCount"} | counter | Number of RPC requests served (getTransactionCount) | | rpc_​request_​served
{rpc_​method="getVersion"} | counter | Number of RPC requests served (getVersion) | | rpc_​conn_​active | gauge | The number of active HTTP connections to the RPC service | +| rpc_​websocket_​conn_​active | gauge | The number of active WebSocket connections to the RPC service | +| rpc_​websocket_​subscription_​active
{rpc_​event_​type="vote"} | gauge | The number of active WebSocket subscriptions to the RPC service, broken down by subscription type (vote) | +| rpc_​websocket_​event_​unique_​sent
{rpc_​event_​type="vote"} | counter | Number of unique WebSocket events sent by the RPC service, before fanout to subscribed connections (vote) | +| rpc_​websocket_​event_​sent
{rpc_​event_​type="vote"} | counter | Number of WebSocket events sent by the RPC service across all subscribed connections (vote) | | rpc_​accdb_​account_​acquired
{accdb_​cache_​class="class0"} | counter | Number of accounts read from the account database, attributed to the cache size class of the account's current data size (0-128 B) | | rpc_​accdb_​account_​acquired
{accdb_​cache_​class="class1"} | counter | Number of accounts read from the account database, attributed to the cache size class of the account's current data size (129-512 B) | | rpc_​accdb_​account_​acquired
{accdb_​cache_​class="class2"} | counter | Number of accounts read from the account database, attributed to the cache size class of the account's current data size (513 B-2 KiB) | diff --git a/src/app/firedancer/config/default.toml b/src/app/firedancer/config/default.toml index e6404cbfe57..20ad3911c12 100644 --- a/src/app/firedancer/config/default.toml +++ b/src/app/firedancer/config/default.toml @@ -1642,6 +1642,10 @@ telemetry = true # memory usage. max_http_connections = 1024 + # Maximum number of simultaneous WebSocket connections which can + # be open. + max_websocket_connections = 128 + # Maximum length of an HTTP request including headers. max_http_request_length = 8192 diff --git a/src/app/firedancer/topology.c b/src/app/firedancer/topology.c index ebb7da55a33..c62ac76e8bf 100644 --- a/src/app/firedancer/topology.c +++ b/src/app/firedancer/topology.c @@ -1623,6 +1623,7 @@ fd_topo_configure_tile( fd_topo_tile_t * tile, tile->rpc.listen_port = config->tiles.rpc.rpc_listen_port; tile->rpc.delay_startup = config->tiles.rpc.delay_startup; tile->rpc.max_http_connections = config->tiles.rpc.max_http_connections; + tile->rpc.max_websocket_connections = config->tiles.rpc.max_websocket_connections; tile->rpc.max_http_request_length = config->tiles.rpc.max_http_request_length; tile->rpc.send_buffer_size_mb = config->tiles.rpc.send_buffer_size_mb; diff --git a/src/app/shared/fd_config.h b/src/app/shared/fd_config.h index 8b76a862820..675bdb73cbe 100644 --- a/src/app/shared/fd_config.h +++ b/src/app/shared/fd_config.h @@ -478,6 +478,7 @@ struct fd_config { char rpc_listen_address[ 16 ]; ushort rpc_listen_port; ulong max_http_connections; + ulong max_websocket_connections; ulong max_http_request_length; ulong send_buffer_size_mb; int delay_startup; diff --git a/src/app/shared/fd_config_parse.c b/src/app/shared/fd_config_parse.c index 6b88fcad5f7..41830c514d2 100644 --- a/src/app/shared/fd_config_parse.c +++ b/src/app/shared/fd_config_parse.c @@ -258,6 +258,7 @@ fd_config_extract_pod( uchar * pod, CFG_POP ( cstr, tiles.rpc.rpc_listen_address ); CFG_POP ( ushort, tiles.rpc.rpc_listen_port ); CFG_POP ( ulong, tiles.rpc.max_http_connections ); + CFG_POP ( ulong, tiles.rpc.max_websocket_connections ); CFG_POP ( ulong, tiles.rpc.max_http_request_length ); CFG_POP ( ulong, tiles.rpc.send_buffer_size_mb ); CFG_POP ( bool, tiles.rpc.delay_startup ); diff --git a/src/disco/metrics/generated/fd_metrics_enums.h b/src/disco/metrics/generated/fd_metrics_enums.h index 1a665048efa..ecafe3a1f74 100644 --- a/src/disco/metrics/generated/fd_metrics_enums.h +++ b/src/disco/metrics/generated/fd_metrics_enums.h @@ -897,6 +897,11 @@ #define FD_METRICS_ENUM_RPC_METHOD_V_GET_VERSION_IDX 16 #define FD_METRICS_ENUM_RPC_METHOD_V_GET_VERSION_NAME "getVersion" +#define FD_METRICS_ENUM_RPC_EVENT_TYPE_NAME "rpc_event_type" +#define FD_METRICS_ENUM_RPC_EVENT_TYPE_CNT (1UL) +#define FD_METRICS_ENUM_RPC_EVENT_TYPE_V_VOTE_IDX 0 +#define FD_METRICS_ENUM_RPC_EVENT_TYPE_V_VOTE_NAME "vote" + #define FD_METRICS_ENUM_SOFTIRQ_NAME "softirq" #define FD_METRICS_ENUM_SOFTIRQ_CNT (3UL) #define FD_METRICS_ENUM_SOFTIRQ_V_NET_IDX 0 diff --git a/src/disco/metrics/generated/fd_metrics_rpc.c b/src/disco/metrics/generated/fd_metrics_rpc.c index 4c90d5a44d6..49c4cabfd5e 100644 --- a/src/disco/metrics/generated/fd_metrics_rpc.c +++ b/src/disco/metrics/generated/fd_metrics_rpc.c @@ -21,6 +21,10 @@ const fd_metrics_meta_t FD_METRICS_RPC[FD_METRICS_RPC_TOTAL] = { DECLARE_METRIC_ENUM( RPC_REQUEST_SERVED, COUNTER, RPC_METHOD, GET_TRANSACTION_COUNT ), DECLARE_METRIC_ENUM( RPC_REQUEST_SERVED, COUNTER, RPC_METHOD, GET_VERSION ), DECLARE_METRIC( RPC_CONN_ACTIVE, GAUGE ), + DECLARE_METRIC( RPC_WEBSOCKET_CONN_ACTIVE, GAUGE ), + DECLARE_METRIC_ENUM( RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE, GAUGE, RPC_EVENT_TYPE, VOTE ), + DECLARE_METRIC_ENUM( RPC_WEBSOCKET_EVENT_UNIQUE_SENT, COUNTER, RPC_EVENT_TYPE, VOTE ), + DECLARE_METRIC_ENUM( RPC_WEBSOCKET_EVENT_SENT, COUNTER, RPC_EVENT_TYPE, VOTE ), DECLARE_METRIC_ENUM( RPC_ACCDB_ACCOUNT_ACQUIRED, COUNTER, ACCDB_CACHE_CLASS, CLASS0 ), DECLARE_METRIC_ENUM( RPC_ACCDB_ACCOUNT_ACQUIRED, COUNTER, ACCDB_CACHE_CLASS, CLASS1 ), DECLARE_METRIC_ENUM( RPC_ACCDB_ACCOUNT_ACQUIRED, COUNTER, ACCDB_CACHE_CLASS, CLASS2 ), diff --git a/src/disco/metrics/generated/fd_metrics_rpc.h b/src/disco/metrics/generated/fd_metrics_rpc.h index a12c193dd98..c95b33f5ad7 100644 --- a/src/disco/metrics/generated/fd_metrics_rpc.h +++ b/src/disco/metrics/generated/fd_metrics_rpc.h @@ -28,6 +28,13 @@ enum { FD_METRICS_COUNTER_RPC_REQUEST_SERVED_GET_TRANSACTION_COUNT_OFF, FD_METRICS_COUNTER_RPC_REQUEST_SERVED_GET_VERSION_OFF, FD_METRICS_GAUGE_RPC_CONN_ACTIVE_OFF, + FD_METRICS_GAUGE_RPC_WEBSOCKET_CONN_ACTIVE_OFF, + FD_METRICS_GAUGE_RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE_OFF, + FD_METRICS_GAUGE_RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE_VOTE_OFF = FD_METRICS_GAUGE_RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE_OFF, + FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_UNIQUE_SENT_OFF, + FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_UNIQUE_SENT_VOTE_OFF = FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_UNIQUE_SENT_OFF, + FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_SENT_OFF, + FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_SENT_VOTE_OFF = FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_SENT_OFF, FD_METRICS_COUNTER_RPC_ACCDB_ACCOUNT_ACQUIRED_OFF, FD_METRICS_COUNTER_RPC_ACCDB_ACCOUNT_ACQUIRED_CLASS0_OFF = FD_METRICS_COUNTER_RPC_ACCDB_ACCOUNT_ACQUIRED_OFF, FD_METRICS_COUNTER_RPC_ACCDB_ACCOUNT_ACQUIRED_CLASS1_OFF, @@ -71,6 +78,29 @@ enum { #define FD_METRICS_GAUGE_RPC_CONN_ACTIVE_DESC "The number of active HTTP connections to the RPC service" #define FD_METRICS_GAUGE_RPC_CONN_ACTIVE_CVT (FD_METRICS_CONVERTER_NONE) +#define FD_METRICS_GAUGE_RPC_WEBSOCKET_CONN_ACTIVE_NAME "rpc_websocket_conn_active" +#define FD_METRICS_GAUGE_RPC_WEBSOCKET_CONN_ACTIVE_TYPE (FD_METRICS_TYPE_GAUGE) +#define FD_METRICS_GAUGE_RPC_WEBSOCKET_CONN_ACTIVE_DESC "The number of active WebSocket connections to the RPC service" +#define FD_METRICS_GAUGE_RPC_WEBSOCKET_CONN_ACTIVE_CVT (FD_METRICS_CONVERTER_NONE) + +#define FD_METRICS_GAUGE_RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE_NAME "rpc_websocket_subscription_active" +#define FD_METRICS_GAUGE_RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE_TYPE (FD_METRICS_TYPE_GAUGE) +#define FD_METRICS_GAUGE_RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE_DESC "The number of active WebSocket subscriptions to the RPC service, broken down by subscription type" +#define FD_METRICS_GAUGE_RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE_CVT (FD_METRICS_CONVERTER_NONE) +#define FD_METRICS_GAUGE_RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE_CNT (1UL) + +#define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_UNIQUE_SENT_NAME "rpc_websocket_event_unique_sent" +#define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_UNIQUE_SENT_TYPE (FD_METRICS_TYPE_COUNTER) +#define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_UNIQUE_SENT_DESC "Number of unique WebSocket events sent by the RPC service, before fanout to subscribed connections" +#define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_UNIQUE_SENT_CVT (FD_METRICS_CONVERTER_NONE) +#define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_UNIQUE_SENT_CNT (1UL) + +#define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_SENT_NAME "rpc_websocket_event_sent" +#define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_SENT_TYPE (FD_METRICS_TYPE_COUNTER) +#define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_SENT_DESC "Number of WebSocket events sent by the RPC service across all subscribed connections" +#define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_SENT_CVT (FD_METRICS_CONVERTER_NONE) +#define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_SENT_CNT (1UL) + #define FD_METRICS_COUNTER_RPC_ACCDB_ACCOUNT_ACQUIRED_NAME "rpc_accdb_account_acquired" #define FD_METRICS_COUNTER_RPC_ACCDB_ACCOUNT_ACQUIRED_TYPE (FD_METRICS_TYPE_COUNTER) #define FD_METRICS_COUNTER_RPC_ACCDB_ACCOUNT_ACQUIRED_DESC "Number of accounts read from the account database, attributed to the cache size class of the account's current data size" @@ -108,7 +138,7 @@ enum { #define FD_METRICS_COUNTER_RPC_ACCDB_BYTES_COPIED_DESC "Number of bytes copied out of the account database cache on a cache hit" #define FD_METRICS_COUNTER_RPC_ACCDB_BYTES_COPIED_CVT (FD_METRICS_CONVERTER_NONE) -#define FD_METRICS_RPC_TOTAL (40UL) +#define FD_METRICS_RPC_TOTAL (44UL) extern const fd_metrics_meta_t FD_METRICS_RPC[FD_METRICS_RPC_TOTAL]; #endif /* HEADER_fd_src_disco_metrics_generated_fd_metrics_rpc_h */ diff --git a/src/disco/metrics/metrics.xml b/src/disco/metrics/metrics.xml index be55207c3a5..e720a9b6203 100644 --- a/src/disco/metrics/metrics.xml +++ b/src/disco/metrics/metrics.xml @@ -1653,12 +1653,20 @@ EXAMPLES + + + +

Duration spent in service + + + + diff --git a/src/disco/topo/fd_topo.h b/src/disco/topo/fd_topo.h index 0cb277766bf..e1fc7faa6fb 100644 --- a/src/disco/topo/fd_topo.h +++ b/src/disco/topo/fd_topo.h @@ -386,6 +386,7 @@ struct fd_topo_tile { ushort listen_port; ulong max_http_connections; + ulong max_websocket_connections; ulong send_buffer_size_mb; ulong max_http_request_length; diff --git a/src/discof/rpc/fd_rpc_tile.c b/src/discof/rpc/fd_rpc_tile.c index 92bcf7f5564..bb1aa73b574 100644 --- a/src/discof/rpc/fd_rpc_tile.c +++ b/src/discof/rpc/fd_rpc_tile.c @@ -17,6 +17,7 @@ #include "../../tango/fseq/fd_fseq.h" #include "../../flamenco/gossip/fd_gossip_message.h" #include "../../flamenco/genesis/fd_genesis_parse.h" +#include "../../flamenco/runtime/program/vote/fd_vote_codec.h" #include "../../util/net/fd_ip4.h" #include "../../waltz/http/fd_http_server.h" #include "../../waltz/http/fd_http_server_private.h" @@ -37,7 +38,8 @@ #define FD_RPC_AGAVE_API_VERSION "4.0.0-beta.6" -#define FD_HTTP_SERVER_RPC_MAX_REQUEST_LEN 8192UL +#define FD_HTTP_SERVER_RPC_MAX_REQUEST_LEN 8192UL +#define FD_HTTP_SERVER_RPC_MAX_WS_SEND_FRAME_CNT 128UL #define IN_KIND_REPLAY (0) #define IN_KIND_GENESI (1) @@ -158,10 +160,10 @@ static fd_http_server_params_t derive_http_params( fd_topo_tile_t const * tile ) { return (fd_http_server_params_t) { .max_connection_cnt = tile->rpc.max_http_connections, - .max_ws_connection_cnt = 0UL, + .max_ws_connection_cnt = tile->rpc.max_websocket_connections, .max_request_len = FD_HTTP_SERVER_RPC_MAX_REQUEST_LEN, - .max_ws_recv_frame_len = 0UL, - .max_ws_send_frame_cnt = 0UL, + .max_ws_recv_frame_len = FD_HTTP_SERVER_RPC_MAX_REQUEST_LEN, + .max_ws_send_frame_cnt = FD_HTTP_SERVER_RPC_MAX_WS_SEND_FRAME_CNT, .outgoing_buffer_sz = tile->rpc.send_buffer_size_mb * (1UL<<20UL), .compress_websocket = 0, }; @@ -235,6 +237,9 @@ struct fd_rpc_tile { int delay_startup; fd_http_server_t * http; + ulong * ws_subscribers_vote; + ulong ws_subscribers_vote_cnt; + fd_rpc_cluster_node_dlist_t * cluster_nodes_dlist; fd_rpc_cluster_node_t cluster_nodes[ FD_CONTACT_INFO_TABLE_SIZE ]; @@ -282,6 +287,30 @@ struct fd_rpc_tile { typedef struct fd_rpc_tile fd_rpc_tile_t; +static void +fd_rpc_ws_subscriber_vote_add( fd_rpc_tile_t * ctx, + ulong ws_conn_id ) { + for( ulong i=0UL; iws_subscribers_vote_cnt; i++ ) + if( FD_UNLIKELY( ctx->ws_subscribers_vote[ i ]==ws_conn_id ) ) return; + + FD_TEST( ctx->ws_subscribers_vote_cnthttp->max_ws_conns ); + ctx->ws_subscribers_vote[ ctx->ws_subscribers_vote_cnt++ ] = ws_conn_id; +} + +static int +fd_rpc_ws_subscriber_vote_remove( fd_rpc_tile_t * ctx, + ulong ws_conn_id ) { + for( ulong idx=0UL; idxws_subscribers_vote_cnt; idx++ ) { + if( FD_LIKELY( ctx->ws_subscribers_vote[ idx ]!=ws_conn_id ) ) continue; + + ctx->ws_subscribers_vote_cnt--; + ctx->ws_subscribers_vote[ idx ] = ctx->ws_subscribers_vote[ ctx->ws_subscribers_vote_cnt ]; + return 1; + } + + return 0; +} + static void * bz2_malloc( void * opaque, int items, @@ -366,17 +395,19 @@ scratch_align( void ) { static inline ulong scratch_footprint( fd_topo_tile_t const * tile ) { - ulong http_fp = fd_http_server_footprint( derive_http_params( tile ) ); + fd_http_server_params_t http_params = derive_http_params( tile ); + ulong http_fp = fd_http_server_footprint( http_params ); if( FD_UNLIKELY( !http_fp ) ) FD_LOG_ERR(( "Invalid [tiles.rpc] config parameters" )); ulong l = FD_LAYOUT_INIT; - l = FD_LAYOUT_APPEND( l, alignof( fd_rpc_tile_t ), sizeof( fd_rpc_tile_t ) ); - l = FD_LAYOUT_APPEND( l, fd_http_server_align(), http_fp ); - l = FD_LAYOUT_APPEND( l, fd_alloc_align(), fd_alloc_footprint() ); - l = FD_LAYOUT_APPEND( l, fd_alloc_align(), fd_alloc_footprint() ); - l = FD_LAYOUT_APPEND( l, alignof(bank_info_t), tile->rpc.max_live_slots*sizeof(bank_info_t) ); - l = FD_LAYOUT_APPEND( l, fd_rpc_cluster_node_dlist_align(), fd_rpc_cluster_node_dlist_footprint() ); - l = FD_LAYOUT_APPEND( l, fd_accdb_align(), fd_accdb_footprint( tile->rpc.max_live_slots ) ); + l = FD_LAYOUT_APPEND( l, alignof( fd_rpc_tile_t ), sizeof( fd_rpc_tile_t ) ); + l = FD_LAYOUT_APPEND( l, fd_http_server_align(), http_fp ); + l = FD_LAYOUT_APPEND( l, fd_alloc_align(), fd_alloc_footprint() ); + l = FD_LAYOUT_APPEND( l, fd_alloc_align(), fd_alloc_footprint() ); + l = FD_LAYOUT_APPEND( l, alignof(bank_info_t), tile->rpc.max_live_slots*sizeof(bank_info_t) ); + l = FD_LAYOUT_APPEND( l, fd_rpc_cluster_node_dlist_align(), fd_rpc_cluster_node_dlist_footprint() ); + l = FD_LAYOUT_APPEND( l, fd_accdb_align(), fd_accdb_footprint( tile->rpc.max_live_slots ) ); + l = FD_LAYOUT_APPEND( l, alignof(ulong), http_params.max_ws_connection_cnt*sizeof(ulong) ); return FD_LAYOUT_FINI( l, scratch_align() ); } @@ -395,8 +426,10 @@ during_housekeeping( fd_rpc_tile_t * ctx ) { static inline void metrics_write( fd_rpc_tile_t * ctx ) { - FD_MHIST_COPY( RPC, REQUEST_DURATION_SECONDS, ctx->request_duration ); - FD_MGAUGE_SET( RPC, CONN_ACTIVE, ctx->http->metrics.connection_cnt ); + FD_MHIST_COPY( RPC, REQUEST_DURATION_SECONDS, ctx->request_duration ); + FD_MGAUGE_SET( RPC, CONN_ACTIVE, ctx->http->metrics.connection_cnt ); + FD_MGAUGE_SET( RPC, WEBSOCKET_CONN_ACTIVE, ctx->http->metrics.ws_connection_cnt ); + FD_MGAUGE_SET( RPC, WEBSOCKET_SUBSCRIPTION_ACTIVE_VOTE, ctx->ws_subscribers_vote_cnt ); FD_ACCDB_METRICS_WRITE_RO( RPC, fd_accdb_metrics( ctx->accdb ) ); } @@ -421,12 +454,117 @@ before_frag( fd_rpc_tile_t * ctx, ulong sig ) { if( FD_UNLIKELY( ctx->in_kind[ in_idx ]==IN_KIND_GOSSIP_OUT ) ) { return sig!=FD_GOSSIP_UPDATE_TAG_CONTACT_INFO && - sig!=FD_GOSSIP_UPDATE_TAG_CONTACT_INFO_REMOVE; + sig!=FD_GOSSIP_UPDATE_TAG_CONTACT_INFO_REMOVE && + sig!=FD_GOSSIP_UPDATE_TAG_VOTE; } return 0; } +static int +fd_rpc_extract_vote_notification( fd_gossip_vote_t const * vote, + fd_pubkey_t * vote_pubkey, + fd_hash_t * hash, + long * timestamp, + uchar * has_timestamp, + fd_signature_t * signature, + ulong * slots, + ulong * slots_cnt ) { + uchar txn_mem[ FD_TXN_MAX_SZ ] __attribute__((aligned(alignof(fd_txn_t)))); + ulong txn_sz = fd_txn_parse( vote->transaction, vote->transaction_len, txn_mem, NULL ); + if( FD_UNLIKELY( !txn_sz ) ) return 0; + + fd_txn_t const * txn = (fd_txn_t const *)txn_mem; + if( FD_UNLIKELY( !fd_txn_is_simple_vote_transaction( txn, vote->transaction ) ) ) return 0; + if( FD_UNLIKELY( txn->instr_cnt!=1UL || txn->signature_cnt<1UL ) ) return 0; + + fd_txn_instr_t const * instr = &txn->instr[ 0 ]; + if( FD_UNLIKELY( !instr->acct_cnt ) ) return 0; + uchar const * instr_accts = fd_txn_get_instr_accts( instr, vote->transaction ); + uchar vote_pubkey_idx = instr_accts[ 0 ]; + if( FD_UNLIKELY( vote_pubkey_idx>=txn->acct_addr_cnt ) ) return 0; + + fd_pubkey_t const * acct_addrs = (fd_pubkey_t const *)fd_type_pun_const( vote->transaction + txn->acct_addr_off ); + *vote_pubkey = acct_addrs[ vote_pubkey_idx ]; + + fd_vote_instruction_t ix[1]; + if( FD_UNLIKELY( !fd_vote_instruction_deserialize( ix, fd_txn_get_instr_data( instr, vote->transaction ), instr->data_sz ) ) ) return 0; + + *slots_cnt = 0UL; + *has_timestamp = 0; + *timestamp = 0L; + + switch( ix->discriminant ) { + case fd_vote_instruction_enum_tower_sync: { + fd_tower_sync_t const * v = &ix->tower_sync; + for( ulong i=0UL; ilockouts_cnt; i++ ) slots[ (*slots_cnt)++ ] = + deq_fd_vote_lockout_t_peek_index_const( v->lockouts, i )->slot; + *hash = v->hash; + *has_timestamp = v->has_timestamp; + *timestamp = v->timestamp; + break; + } + case fd_vote_instruction_enum_tower_sync_switch: { + fd_tower_sync_t const * v = &ix->tower_sync_switch.tower_sync; + for( ulong i=0UL; ilockouts_cnt; i++ ) slots[ (*slots_cnt)++ ] = + deq_fd_vote_lockout_t_peek_index_const( v->lockouts, i )->slot; + *hash = v->hash; + *has_timestamp = v->has_timestamp; + *timestamp = v->timestamp; + break; + } + default: + /* Legacy vote instructions not supported */ + return 0; + } + + *signature = FD_LOAD( fd_signature_t, fd_txn_get_signatures( txn, vote->transaction ) ); + return *slots_cnt>0UL; +} + +static void +fd_rpc_publish_vote_event( fd_rpc_tile_t * ctx, + fd_gossip_vote_t const * vote ) { + if( FD_UNLIKELY( !ctx->ws_subscribers_vote_cnt ) ) return; + + fd_pubkey_t vote_pubkey[1]; + fd_hash_t hash[1]; + long timestamp = 0L; + uchar has_timestamp = 0; + fd_signature_t signature[1]; + ulong slots[ FD_VOTE_INSTR_MAX_LOCKOUT_OFFSETS_LEN ]; + ulong slots_cnt = 0UL; + + if( FD_UNLIKELY( !fd_rpc_extract_vote_notification( vote, vote_pubkey, hash, ×tamp, &has_timestamp, signature, slots, &slots_cnt ) ) ) return; + + FD_BASE58_ENCODE_32_BYTES( vote_pubkey->uc, vote_pubkey_b58 ); + FD_BASE58_ENCODE_32_BYTES( hash->uc, hash_b58 ); + FD_BASE58_ENCODE_64_BYTES( signature->uc, signature_b58 ); + + ulong sent_cnt = 0UL; + for( ulong i=0UL; iws_subscribers_vote_cnt; ) { + ulong ws_conn_id = ctx->ws_subscribers_vote[ i ]; + fd_http_server_printf( ctx->http, "{\"jsonrpc\":\"2.0\",\"method\":\"voteNotification\",\"params\":{\"result\":{\"votePubkey\":\"%s\",\"slots\":[", vote_pubkey_b58 ); + for( ulong j=0UL; jhttp, "%s%lu", j ? "," : "", slots[ j ] ); + fd_http_server_printf( ctx->http, "],\"hash\":\"%s\",", hash_b58 ); + if( FD_LIKELY( has_timestamp ) ) fd_http_server_printf( ctx->http, "\"timestamp\":%ld,", timestamp ); + else fd_http_server_printf( ctx->http, "\"timestamp\":null," ); + fd_http_server_printf( ctx->http, "\"signature\":\"%s\"},\"subscription\":0}}\n", signature_b58 ); + + if( FD_UNLIKELY( fd_http_server_ws_send( ctx->http, ws_conn_id ) ) ) { + fd_rpc_ws_subscriber_vote_remove( ctx, ws_conn_id ); + fd_http_server_ws_close( ctx->http, ws_conn_id, FD_HTTP_SERVER_CONNECTION_CLOSE_TOO_SLOW ); + continue; + } + if( FD_UNLIKELY( i>=ctx->ws_subscribers_vote_cnt || ctx->ws_subscribers_vote[ i ]!=ws_conn_id ) ) continue; + sent_cnt++; + i++; + } + + FD_MCNT_INC( RPC, WEBSOCKET_EVENT_UNIQUE_SENT_VOTE, !!sent_cnt ); + FD_MCNT_INC( RPC, WEBSOCKET_EVENT_SENT_VOTE, sent_cnt ); +} + static inline int returnable_frag( fd_rpc_tile_t * ctx, ulong in_idx, @@ -524,6 +662,10 @@ returnable_frag( fd_rpc_tile_t * ctx, fd_rpc_cluster_node_dlist_idx_remove( ctx->cluster_nodes_dlist, update->contact_info_remove->idx, ctx->cluster_nodes ); break; } + case FD_GOSSIP_UPDATE_TAG_VOTE: { + fd_rpc_publish_vote_event( ctx, update->vote->value ); + break; + } default: break; } } else if( ctx->in_kind[ in_idx ]==IN_KIND_GENESI ) { @@ -1738,6 +1880,51 @@ getVersion( fd_rpc_tile_t * ctx, return PRINTF_JSON( ctx, "{\"jsonrpc\":\"2.0\",\"result\":{\"solana-core\":\"%s\",\"feature-set\":%u},\"id\":%s}\n", fd_version_cstr, FD_FEATURE_SET_ID, id_cstr ); } +static fd_http_server_response_t +voteSubscribe( fd_rpc_tile_t * ctx, + cJSON const * id, + cJSON const * params, + ulong ws_conn_id ) { + fd_http_server_response_t response; + if( FD_UNLIKELY( !fd_rpc_validate_params( ctx, id, params, 0, 0, &response ) ) ) return response; + + CSTR_JSON( id, id_cstr ); + if( FD_UNLIKELY( ws_conn_id==ULONG_MAX ) ) { + return PRINTF_JSON( ctx, "{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32601,\"message\":\"Method not found\"},\"id\":%s}\n", id_cstr ); + } + FD_CHECK_CRIT( ws_conn_id < ctx->http->max_ws_conns, "OOB ws_conn_id" ); + + fd_rpc_ws_subscriber_vote_add( ctx, ws_conn_id ); + + return PRINTF_JSON( ctx, "{\"jsonrpc\":\"2.0\",\"result\":0,\"id\":%s}\n", id_cstr ); +} + +static fd_http_server_response_t +voteUnsubscribe( fd_rpc_tile_t * ctx, + cJSON const * id, + cJSON const * params, + ulong ws_conn_id ) { + fd_http_server_response_t response; + if( FD_UNLIKELY( !fd_rpc_validate_params( ctx, id, params, 1, 1, &response ) ) ) return response; + + CSTR_JSON( id, id_cstr ); + if( FD_UNLIKELY( ws_conn_id==ULONG_MAX ) ) { + return PRINTF_JSON( ctx, "{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32601,\"message\":\"Method not found\"},\"id\":%s}\n", id_cstr ); + } + FD_CHECK_CRIT( ws_conn_id < ctx->http->max_ws_conns, "OOB ws_conn_id" ); + + cJSON const * subscription = cJSON_GetArrayItem( params, 0 ); + if( FD_UNLIKELY( !fd_rpc_cjson_is_integer( subscription ) || subscription->valueint<0 ) ) { + return PRINTF_JSON( ctx, "{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32602,\"message\":\"Invalid params: invalid type: %s, expected usize.\"},\"id\":%s}\n", fd_rpc_cjson_type_to_cstr( subscription ), id_cstr ); + } + + int unsubscribed = 0; + if( FD_LIKELY( subscription->valueint==0 ) ) + unsubscribed = fd_rpc_ws_subscriber_vote_remove( ctx, ws_conn_id ); + + return PRINTF_JSON( ctx, "{\"jsonrpc\":\"2.0\",\"result\":%s,\"id\":%s}\n", unsubscribed ? "true" : "false", id_cstr ); +} + UNIMPLEMENTED(getVoteAccounts) // TODO: Used by solana-exporter UNIMPLEMENTED(isBlockhashValid) UNIMPLEMENTED(minimumLedgerSlot) // TODO: Used by solana-exporter @@ -1745,9 +1932,25 @@ UNIMPLEMENTED(requestAirdrop) UNIMPLEMENTED(sendTransaction) UNIMPLEMENTED(simulateTransaction) +static fd_http_server_response_t +rpc_json_request( fd_rpc_tile_t * ctx, + uchar const * body, + ulong body_len, + ulong ws_conn_id ); + static fd_http_server_response_t rpc_http_request1( fd_rpc_tile_t * ctx, fd_http_server_request_t const * request ) { + if( FD_UNLIKELY( request->method==FD_HTTP_SERVER_METHOD_GET && + request->headers.upgrade_websocket && + (!strcmp( request->path, "/" ) || !strcmp( request->path, "/websocket" )) ) ) { + if( FD_UNLIKELY( !ctx->http->max_ws_conns ) ) return (fd_http_server_response_t){ .status = 404 }; + return (fd_http_server_response_t){ + .status = 200, + .upgrade_websocket = 1, + }; + } + if( FD_UNLIKELY( request->method==FD_HTTP_SERVER_METHOD_GET && !strcmp( request->path, "/health" ) ) ) { int health_status = _getHealth( ctx ); @@ -1777,8 +1980,16 @@ rpc_http_request1( fd_rpc_tile_t * ctx, return (fd_http_server_response_t){ .status = 405 }; } + return rpc_json_request( ctx, request->post.body, request->post.body_len, ULONG_MAX ); +} + +static fd_http_server_response_t +rpc_json_request( fd_rpc_tile_t * ctx, + uchar const * body, + ulong body_len, + ulong ws_conn_id ) { /* ULONG_MAX implies HTTP */ const char * parse_end; - cJSON * json = cJSON_ParseWithLengthOpts( (char *)request->post.body, request->post.body_len, &parse_end, 0 ); + cJSON * json = cJSON_ParseWithLengthOpts( (char const *)body, body_len, &parse_end, 0 ); if( FD_UNLIKELY( cJSON_IsArray( json ) && cJSON_GetArraySize( json )==0UL ) ) { /* A bug in Agave ¯\_(ツ)_/¯ */ @@ -1913,6 +2124,8 @@ rpc_http_request1( fd_rpc_tile_t * ctx, else if( FD_LIKELY( !strcmp( _method->valuestring, "getTransactionCount" ) ) ) response = getTransactionCount( ctx, id, params ); else if( FD_LIKELY( !strcmp( _method->valuestring, "getVersion" ) ) ) response = getVersion( ctx, id, params ); else if( FD_LIKELY( !strcmp( _method->valuestring, "getVoteAccounts" ) ) ) response = getVoteAccounts( ctx, id, params ); + else if( FD_LIKELY( !strcmp( _method->valuestring, "voteSubscribe" ) ) ) response = voteSubscribe( ctx, id, params, ws_conn_id ); + else if( FD_LIKELY( !strcmp( _method->valuestring, "voteUnsubscribe" ) ) ) response = voteUnsubscribe( ctx, id, params, ws_conn_id ); else if( FD_LIKELY( !strcmp( _method->valuestring, "isBlockhashValid" ) ) ) response = isBlockhashValid( ctx, id, params ); else if( FD_LIKELY( !strcmp( _method->valuestring, "minimumLedgerSlot" ) ) ) response = minimumLedgerSlot( ctx, id, params ); else if( FD_LIKELY( !strcmp( _method->valuestring, "requestAirdrop" ) ) ) response = requestAirdrop( ctx, id, params ); @@ -1938,6 +2151,47 @@ rpc_http_request( fd_http_server_request_t const * request ) { return response; } +static void +rpc_ws_open( ulong ws_conn_id, + void * ctx ) { + (void)ws_conn_id; (void)ctx; +} + +static void +rpc_ws_close( ulong ws_conn_id, + int reason FD_PARAM_UNUSED, + void * _ctx ) { + fd_rpc_tile_t * ctx = (fd_rpc_tile_t *)_ctx; + if( FD_UNLIKELY( ws_conn_id>=ctx->http->max_ws_conns ) ) return; + fd_rpc_ws_subscriber_vote_remove( ctx, ws_conn_id ); +} + +static void +rpc_ws_message( ulong ws_conn_id, + uchar const * data, + ulong data_len, + void * _ctx ) { + fd_rpc_tile_t * ctx = (fd_rpc_tile_t *)_ctx; + + fd_http_server_unstage( ctx->http ); + + long dt = -fd_tickcount(); + fd_http_server_response_t response = rpc_json_request( ctx, data, data_len, ws_conn_id ); + dt += fd_tickcount(); + fd_histf_sample( ctx->request_duration, (ulong)dt ); + + if( FD_UNLIKELY( response.status!=200UL ) ) { + fd_http_server_ws_close( ctx->http, ws_conn_id, FD_HTTP_SERVER_CONNECTION_CLOSE_BAD_REQUEST ); + return; + } + + if( FD_LIKELY( response._body_len ) ) { + fd_http_server_memcpy( ctx->http, ctx->http->oring+(response._body_off%ctx->http->oring_sz), response._body_len ); + if( FD_UNLIKELY( fd_http_server_ws_send( ctx->http, ws_conn_id ) ) ) + fd_http_server_ws_close( ctx->http, ws_conn_id, FD_HTTP_SERVER_CONNECTION_CLOSE_TOO_SLOW ); + } +} + static void privileged_init( fd_topo_t const * topo, fd_topo_tile_t const * tile ) { @@ -1958,7 +2212,10 @@ privileged_init( fd_topo_t const * topo, fd_memcpy( ctx->identity_pubkey, identity_key, 32UL ); fd_http_server_callbacks_t callbacks = { - .request = rpc_http_request, + .request = rpc_http_request, + .ws_open = rpc_ws_open, + .ws_close = rpc_ws_close, + .ws_message = rpc_ws_message, }; ctx->http = fd_http_server_join( fd_http_server_new( _http, http_params, callbacks, ctx ) ); fd_http_server_listen( ctx->http, tile->rpc.listen_addr, tile->rpc.listen_port ); @@ -1997,20 +2254,26 @@ unprivileged_init( fd_topo_t const * topo, fd_topo_tile_t const * tile ) { void * scratch = fd_topo_obj_laddr( topo, tile->tile_obj_id ); + fd_http_server_params_t http_params = derive_http_params( tile ); + FD_SCRATCH_ALLOC_INIT( l, scratch ); fd_rpc_tile_t * ctx = FD_SCRATCH_ALLOC_APPEND( l, alignof( fd_rpc_tile_t ), sizeof( fd_rpc_tile_t ) ); - FD_SCRATCH_ALLOC_APPEND( l, fd_http_server_align(), fd_http_server_footprint( derive_http_params( tile ) ) ); + FD_SCRATCH_ALLOC_APPEND( l, fd_http_server_align(), fd_http_server_footprint( http_params ) ); void * _alloc = FD_SCRATCH_ALLOC_APPEND( l, fd_alloc_align(), fd_alloc_footprint() ); void * _bz2_alloc = FD_SCRATCH_ALLOC_APPEND( l, fd_alloc_align(), fd_alloc_footprint() ); void * _banks = FD_SCRATCH_ALLOC_APPEND( l, alignof(bank_info_t), tile->rpc.max_live_slots*sizeof(bank_info_t) ); void * _nodes_dlist = FD_SCRATCH_ALLOC_APPEND( l, fd_rpc_cluster_node_dlist_align(), fd_rpc_cluster_node_dlist_footprint() ); void * _accdb_join = FD_SCRATCH_ALLOC_APPEND( l, fd_accdb_align(), fd_accdb_footprint( tile->rpc.max_live_slots ) ); + void * _ws_sub_vote = FD_SCRATCH_ALLOC_APPEND( l, alignof(ulong), http_params.max_ws_connection_cnt*sizeof(ulong) ); fd_alloc_t * alloc = fd_alloc_join( fd_alloc_new( _alloc, 1UL ), 1UL ); FD_TEST( alloc ); cJSON_alloc_install( alloc ); ctx->delay_startup = tile->rpc.delay_startup; + ctx->ws_subscribers_vote = _ws_sub_vote; + ctx->ws_subscribers_vote_cnt = 0UL; + ctx->keyswitch = fd_keyswitch_join( fd_topo_obj_laddr( topo, tile->id_keyswitch_obj_id ) ); FD_TEST( ctx->keyswitch ); @@ -2108,7 +2371,7 @@ rlimit_file_cnt( fd_topo_t const * topo FD_PARAM_UNUSED, fd_topo_tile_t const * tile ) { /* pipefd, socket, stderr, logfile, and one spare for new accept() connections */ ulong base = 5UL; - return base+tile->rpc.max_http_connections; + return base + tile->rpc.max_http_connections + tile->rpc.max_websocket_connections; } #define STEM_BURST (1UL) diff --git a/src/discof/rpc/fd_rpc_tile.seccomppolicy b/src/discof/rpc/fd_rpc_tile.seccomppolicy index 457de9b239c..ec1544e72c6 100644 --- a/src/discof/rpc/fd_rpc_tile.seccomppolicy +++ b/src/discof/rpc/fd_rpc_tile.seccomppolicy @@ -55,6 +55,19 @@ sendto: (not (or (eq (arg 0) 2) (eq (arg 0) logfile_fd) (eq (arg 0) rpc_socket_fd))) +# server: serving websockets quickly requires gathered IO writes +# +# arg 0 is the file descriptor to send to. It can be any of the +# connected client sockets returned by accept4(2). To accomodate this, +# we allow any file descriptor except those which we know are not these +# connected clients, which are the log file, STDOUT, and the listening +# socket itself. +sendmmsg: (and (not (or (eq (arg 0) 2) + (eq (arg 0) logfile_fd) + (eq (arg 0) rpc_socket_fd))) + (eq (arg 2) 1) + (eq (arg 3) "MSG_NOSIGNAL")) + # server: serving RPC over HTTP requires closing connections # # arg 0 is the file descriptor to close. It can be any of the connected diff --git a/src/discof/rpc/fixtures/vote_tower_sync.bin b/src/discof/rpc/fixtures/vote_tower_sync.bin new file mode 100644 index 0000000000000000000000000000000000000000..3a351ca15fafa68cd9b2cf5c22f18e7a8a98efa5 GIT binary patch literal 448 zcmZSb?|R05yZLdZ%-btI?=PGYKT*ft>vc}O=MzW#vsRZiL3@On((=y4UCU9>pD4;H zpvCg#dCZXwoip7cUOKuxzRtx!Az)%;WLcqfCsEB#Yf|RXkljGWu+YsL57Q6 zvTet(+?*LC-;DOE3K&X)Wf60q+iBQp~d;}k|dpwctj;v_*@ z)wr&Iy{2WJt?>VF^UaQrk7s||$oTY`W){ev n<4er0oZEE%_zNDEIRZ1cKfmpInQMZ2(NmB6l5M|NFI^1)zs->z literal 0 HcmV?d00001 diff --git a/src/discof/rpc/generated/fd_rpc_tile_seccomp.h b/src/discof/rpc/generated/fd_rpc_tile_seccomp.h index 0e43c4bc8d1..e92611be796 100644 --- a/src/discof/rpc/generated/fd_rpc_tile_seccomp.h +++ b/src/discof/rpc/generated/fd_rpc_tile_seccomp.h @@ -31,32 +31,34 @@ #define FD_SECCOMP_ARG_LO(x) ((uint)(((ulong)(uint)(int)(x) ) & 0xffffffffUL)) #define FD_SECCOMP_ARG_HI(x) ((uint)(((ulong)(x) >> 32) & 0xffffffffUL)) -static const uint sock_filter_policy_fd_rpc_tile_instr_cnt = 58; +static const uint sock_filter_policy_fd_rpc_tile_instr_cnt = 69; -static void populate_sock_filter_policy_fd_rpc_tile( ulong out_cnt, struct sock_filter out[ static 58 ], uint logfile_fd, uint rpc_socket_fd, uint accdb_ro_fd ) { - FD_TEST( out_cnt >= 58 ); - struct sock_filter filter[58] = { +static void populate_sock_filter_policy_fd_rpc_tile( ulong out_cnt, struct sock_filter out[ static 69 ], uint logfile_fd, uint rpc_socket_fd, uint accdb_ro_fd ) { + FD_TEST( out_cnt >= 69 ); + struct sock_filter filter[69] = { /* validate architecture */ BPF_STMT( BPF_LD | BPF_W | BPF_ABS, ( offsetof( struct seccomp_data, arch ) )), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ARCH_NR, 0, /* RET_KILL_PROCESS */ 9 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ARCH_NR, 0, /* RET_KILL_PROCESS */ 10 ), /* load syscall number */ BPF_STMT( BPF_LD | BPF_W | BPF_ABS, ( offsetof( struct seccomp_data, nr ) )), /* check write */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_write, /* check_write */ 9, 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_write, /* check_write */ 10, 0 ), /* check fsync */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_fsync, /* check_fsync */ 13, 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_fsync, /* check_fsync */ 14, 0 ), /* check accept4 */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_accept4, /* check_accept4 */ 16, 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_accept4, /* check_accept4 */ 17, 0 ), /* check read */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_read, /* check_read */ 29, 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_read, /* check_read */ 30, 0 ), /* check sendto */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_sendto, /* check_sendto */ 34, 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_sendto, /* check_sendto */ 35, 0 ), + /* check sendmmsg */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_sendmmsg, /* check_sendmmsg */ 40, 0 ), /* check close */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_close, /* check_close */ 39, 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_close, /* check_close */ 49, 0 ), /* allow ppoll */ BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_ppoll, /* RET_ALLOW */ 2, 0 ), /* check preadv2 */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_preadv2, /* check_preadv2 */ 43, 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_preadv2, /* check_preadv2 */ 53, 0 ), // RET_KILL_PROCESS: /* default deny */ BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), @@ -133,13 +135,33 @@ static void populate_sock_filter_policy_fd_rpc_tile( ulong out_cnt, struct sock_ BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), // sendto_ALLOW: BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_ALLOW ), -// check_close: +// check_sendmmsg: /* arg 0 low 32 bits */ BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(0)), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* close_KILL */ 2, /* or_eq_next_lo_11 */ 0 ), -// or_eq_next_lo_11: - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* close_KILL */ 1, /* or_eq_next_lo_12 */ 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* sendmmsg_KILL */ 6, /* or_eq_next_lo_12 */ 0 ), // or_eq_next_lo_12: + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* sendmmsg_KILL */ 5, /* or_eq_next_lo_13 */ 0 ), +// or_eq_next_lo_13: + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(rpc_socket_fd)), /* sendmmsg_KILL */ 4, /* and_11 */ 0 ), +// and_11: + /* arg 2 low 32 bits */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(2)), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000001U, /* and_14 */ 0, /* sendmmsg_KILL */ 2 ), +// and_14: + /* arg 3 low 32 bits */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(3)), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, FD_SECCOMP_ARG_LO(MSG_NOSIGNAL), /* sendmmsg_ALLOW */ 1, /* sendmmsg_KILL */ 0 ), +// sendmmsg_KILL: + BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), +// sendmmsg_ALLOW: + BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_ALLOW ), +// check_close: + /* arg 0 low 32 bits */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(0)), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* close_KILL */ 2, /* or_eq_next_lo_15 */ 0 ), +// or_eq_next_lo_15: + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* close_KILL */ 1, /* or_eq_next_lo_16 */ 0 ), +// or_eq_next_lo_16: BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(rpc_socket_fd)), /* close_KILL */ 0, /* close_ALLOW */ 1 ), // close_KILL: BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), diff --git a/src/discof/rpc/test_rpc_tile.c b/src/discof/rpc/test_rpc_tile.c index b3feb1d50af..3663d38b58f 100644 --- a/src/discof/rpc/test_rpc_tile.c +++ b/src/discof/rpc/test_rpc_tile.c @@ -6,9 +6,12 @@ #include "../../tango/fseq/fd_fseq.h" #include #include +#include #include #include +FD_IMPORT_BINARY( vote_tower_sync_txn, "src/discof/rpc/fixtures/vote_tower_sync.bin" ); + static fd_wksp_t * fd_wksp_new_lazy( ulong footprint ) { footprint = fd_ulong_align_up( footprint, FD_SHMEM_NORMAL_PAGE_SZ ); @@ -110,11 +113,76 @@ expect_rpc_response( fd_rpc_tile_t * ctx, cJSON_Delete( got ); } +static void +expect_ws_rpc_response( fd_rpc_tile_t * ctx, + ulong ws_conn_id, + char const * rpc_req, + char const * rpc_res ) { + struct fd_http_server_ws_connection * conn = &ctx->http->ws_conns[ ws_conn_id ]; + ulong prev_send_frame_cnt = conn->send_frame_cnt; + + ctx->http->pollfds[ ctx->http->max_conns+ws_conn_id ].fd = 0; + rpc_ws_message( ws_conn_id, (uchar const *)rpc_req, strlen( rpc_req ), ctx ); + + FD_TEST( conn->send_frame_cnt==prev_send_frame_cnt+1UL ); + + ulong frame_idx = (conn->send_frame_idx+conn->send_frame_cnt-1UL) % ctx->http->max_ws_send_frame_cnt; + fd_http_server_ws_frame_t const * frame = &conn->send_frames[ frame_idx ]; + FD_TEST( !frame->compressed ); + uchar const * got_json = ctx->http->oring + (frame->off % ctx->http->oring_sz); + ulong got_json_sz = frame->len; + + cJSON * got = cJSON_ParseWithLength( (char const *)got_json, got_json_sz ); + FD_TEST( got ); + + cJSON * expected = cJSON_Parse( rpc_res ); + FD_TEST( expected ); + + char * got_reserialized = cJSON_Print( got ); FD_TEST( got_reserialized ); + char * exp_reserialized = cJSON_Print( expected ); FD_TEST( exp_reserialized ); + if( 0!=strcmp( got_reserialized, exp_reserialized ) ) { + FD_LOG_WARNING(( "Expected websocket RPC response:\n---\n%s\n---", exp_reserialized )); + FD_LOG_WARNING(( "Got websocket RPC response:\n---\n%s\n---", got_reserialized )); + FD_LOG_ERR(( "websocket RPC response did not match expected" )); + } + + cJSON_free( got_reserialized ); + cJSON_free( exp_reserialized ); + cJSON_Delete( expected ); + cJSON_Delete( got ); +} + +static void +test_websocket_disabled( fd_rpc_tile_t * ctx ) { + fd_http_server_request_t http_req = { + .method = FD_HTTP_SERVER_METHOD_GET, + .path = "/websocket", + .ctx = ctx, + .headers = { + .upgrade_websocket = 1, + }, + }; + + fd_http_server_response_t http_res = rpc_http_request1( ctx, &http_req ); + FD_TEST( http_res.status==200UL ); + FD_TEST( http_res.upgrade_websocket ); + + ulong const max_ws_conns = ctx->http->max_ws_conns; + ctx->http->max_ws_conns = 0UL; + http_res = rpc_http_request1( ctx, &http_req ); + FD_TEST( http_res.status==404UL ); + FD_TEST( !http_res.upgrade_websocket ); + ctx->http->max_ws_conns = max_ws_conns; +} + int main( int argc, char ** argv ) { fd_boot( &argc, &argv ); + uchar metrics_scratch[ FD_METRICS_FOOTPRINT( 0UL ) ] __attribute__((aligned(FD_METRICS_ALIGN))); + fd_metrics_register( (ulong *)fd_metrics_new( metrics_scratch, 0UL ) ); + fd_wksp_t * wksp = fd_wksp_new_lazy( 4UL<<30 ); static fd_topo_t topo[1]; fd_topob_new( topo, "topo" ); @@ -179,17 +247,21 @@ main( int argc, fd_topo_link_t * link_rpc_replay = create_link( topo, wksp, "rpc_replay", 4UL, 0UL, 1UL ); (void)link_rpc_replay; + fd_topo_link_t * link_gossip_out = create_link( topo, wksp, "gossip_out", 4UL, FD_GOSSIP_UPDATE_SZ_VOTE, 1UL ); fd_topo_tile_t * tile = fd_topob_tile( topo, "rpc", "wksp", "wksp", 0UL, 0, 0, 0 ); fd_topo_obj_t * tile_obj = &topo->objs[ tile->tile_obj_id ]; strcpy( tile->name, "rpc" ); - tile->rpc.max_live_slots = max_live_slots; - tile->rpc.send_buffer_size_mb = 64UL; - tile->rpc.accdb_obj_id = accdb_shmem_obj->id; - tile->rpc.accdb_epoch_fseq_obj_id = fseq_obj->id; - tile->id_keyswitch_obj_id = keyswitch_obj->id; + tile->rpc.max_live_slots = max_live_slots; + tile->rpc.max_http_request_length = FD_HTTP_SERVER_RPC_MAX_REQUEST_LEN; + tile->rpc.max_websocket_connections = 2UL; + tile->rpc.send_buffer_size_mb = 64UL; + tile->rpc.accdb_obj_id = accdb_shmem_obj->id; + tile->rpc.accdb_epoch_fseq_obj_id = fseq_obj->id; + tile->id_keyswitch_obj_id = keyswitch_obj->id; fd_topob_tile_out( topo, "rpc", 0UL, "rpc_replay", 0UL ); + fd_topob_tile_in( topo, "rpc", 0UL, "wksp", "gossip_out", 0UL, 0, 1 ); void * scratch = fd_wksp_alloc_laddr( wksp, scratch_align(), scratch_footprint( tile ), 1UL ); fd_http_server_params_t http_params = derive_http_params( tile ); @@ -199,13 +271,88 @@ main( int argc, tile_obj->offset = fd_wksp_gaddr_fast( wksp, ctx ); memset( ctx, 0, sizeof(fd_rpc_tile_t) ); static fd_http_server_callbacks_t const callbacks = { - .request = rpc_http_request, + .request = rpc_http_request, + .ws_open = rpc_ws_open, + .ws_close = rpc_ws_close, + .ws_message = rpc_ws_message, }; ctx->http = fd_http_server_join( fd_http_server_new( http_mem, http_params, callbacks, ctx ) ); FD_TEST( ctx->http ); FD_TEST( ctx->http->oring_sz ); unprivileged_init( topo, tile ); + test_websocket_disabled( ctx ); + + expect_ws_rpc_response( ctx, 0UL, + "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"voteSubscribe\"}", + "{\"jsonrpc\":\"2.0\",\"result\":0,\"id\":1}" + ); + FD_TEST( ctx->ws_subscribers_vote_cnt==1UL ); + FD_TEST( ctx->ws_subscribers_vote[ 0 ]==0UL ); + expect_ws_rpc_response( ctx, 0UL, + "{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"voteSubscribe\"}", + "{\"jsonrpc\":\"2.0\",\"result\":0,\"id\":2}" + ); + FD_TEST( ctx->ws_subscribers_vote_cnt==1UL ); + FD_TEST( ctx->ws_subscribers_vote[ 0 ]==0UL ); + FD_TEST( vote_tower_sync_txn_sz<=sizeof( ((fd_gossip_vote_t *)0)->transaction ) ); + { + fd_gossip_update_message_t * update = fd_chunk_to_laddr( wksp, fd_dcache_compact_chunk0( wksp, link_gossip_out->dcache ) ); + memset( update, 0, FD_GOSSIP_UPDATE_SZ_VOTE ); + update->tag = FD_GOSSIP_UPDATE_TAG_VOTE; + update->vote->value->transaction_len = vote_tower_sync_txn_sz; + memcpy( update->vote->value->transaction, vote_tower_sync_txn, vote_tower_sync_txn_sz ); + + ctx->http->pollfds[ ctx->http->max_conns ].fd = 0; + FD_TEST( !returnable_frag( ctx, 0UL, 0UL, FD_GOSSIP_UPDATE_TAG_VOTE, fd_laddr_to_chunk( wksp, update ), FD_GOSSIP_UPDATE_SZ_VOTE, 0UL, 0UL, 0UL, NULL ) ); + struct fd_http_server_ws_connection * conn = &ctx->http->ws_conns[ 0 ]; + FD_TEST( conn->send_frame_cnt>0UL ); + + ulong frame_idx = (conn->send_frame_idx+conn->send_frame_cnt-1UL) % ctx->http->max_ws_send_frame_cnt; + fd_http_server_ws_frame_t const * frame = &conn->send_frames[ frame_idx ]; + FD_TEST( !frame->compressed ); + char const expected[] = + "{\"jsonrpc\":\"2.0\",\"method\":\"voteNotification\",\"params\":{\"result\":{\"votePubkey\":\"9Diao4uo6NpeMud7t5wvGnJ3WxDM7iaYxkGtJM36T4dy\"," + "\"slots\":[425637581,425637582,425637583,425637584,425637585,425637586,425637587,425637588,425637589,425637590,425637591,425637592,425637593,425637594,425637595,425637596,425637597,425637598,425637599,425637600,425637601,425637602,425637603,425637604,425637605,425637606,425637607,425637608,425637609,425637610,425637611]," + "\"hash\":\"GFiLqndBXPMfvM18KP1ow35cgL8vitqFeKCU3xFogCxx\",\"timestamp\":1781130981," + "\"signature\":\"2bEoikscia2UbcJhwBY8112BZQuS1icVuNiruAXzZ53qxvbsSg9aiLzHU5JBnW6rXakPjTTjt14cqxdMmUd3qZaq\"},\"subscription\":0}}\n"; + char const * got = (char const *)( ctx->http->oring + (frame->off % ctx->http->oring_sz) ); + if( FD_UNLIKELY( frame->len!=strlen( expected ) || memcmp( got, expected, frame->len ) ) ) { + FD_LOG_WARNING(( "Expected vote notification:\n---\n%s---", expected )); + FD_LOG_WARNING(( "Got vote notification:\n---\n%.*s---", (int)frame->len, got )); + FD_LOG_ERR(( "vote notification did not match expected" )); + } + + fd_rpc_ws_subscriber_vote_add( ctx, 1UL ); + FD_TEST( ctx->ws_subscribers_vote_cnt==2UL ); + FD_TEST( ctx->ws_subscribers_vote[ 0 ]==0UL ); + FD_TEST( ctx->ws_subscribers_vote[ 1 ]==1UL ); + + int ws0_fd = open( "/dev/null", O_RDONLY ); + int ws1_fd = open( "/dev/null", O_RDONLY ); + FD_TEST( ws0_fd!=-1 ); + FD_TEST( ws1_fd!=-1 ); + ctx->http->pollfds[ ctx->http->max_conns ].fd = ws0_fd; + ctx->http->pollfds[ ctx->http->max_conns+1UL ].fd = ws1_fd; + + conn->send_frame_cnt = ctx->http->max_ws_send_frame_cnt; + struct fd_http_server_ws_connection * conn1 = &ctx->http->ws_conns[ 1 ]; + ulong conn1_send_frame_cnt = conn1->send_frame_cnt; + FD_TEST( !returnable_frag( ctx, 0UL, 0UL, FD_GOSSIP_UPDATE_TAG_VOTE, fd_laddr_to_chunk( wksp, update ), FD_GOSSIP_UPDATE_SZ_VOTE, 0UL, 0UL, 0UL, NULL ) ); + FD_TEST( ctx->ws_subscribers_vote_cnt==1UL ); + FD_TEST( ctx->ws_subscribers_vote[ 0 ]==1UL ); + FD_TEST( conn1->send_frame_cnt==conn1_send_frame_cnt+1UL ); + FD_TEST( ctx->http->pollfds[ ctx->http->max_conns ].fd==-1 ); + FD_TEST( ctx->http->pollfds[ ctx->http->max_conns+1UL ].fd==ws1_fd ); + FD_TEST( !close( ws1_fd ) ); + ctx->http->pollfds[ ctx->http->max_conns ].fd = -1; + } + expect_ws_rpc_response( ctx, 1UL, + "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"voteUnsubscribe\",\"params\":[0]}", + "{\"jsonrpc\":\"2.0\",\"result\":true,\"id\":1}" + ); + FD_TEST( ctx->ws_subscribers_vote_cnt==0UL ); + expect_rpc_response( ctx, "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"getHealth\"}", "{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32005,\"message\":\"Node is unhealthy\",\"data\":{\"slotsBehind\":null}},\"id\":1}" From fbce935aab51cf44fb44091aa10d69845d7fea9c Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Sun, 14 Jun 2026 00:40:04 +0000 Subject: [PATCH 23/61] http: use sendmsg instead of sendmmsg sendmmsg was only ever sending to one dest, might as well use the simpler sendmsg syscall then --- src/disco/gui/fd_gui_tile.seccomppolicy | 17 ++++---- src/disco/gui/generated/fd_gui_tile_seccomp.h | 38 ++++++++---------- .../metrics/fd_metric_tile.seccomppolicy | 6 +-- src/discof/rpc/fd_rpc_tile.seccomppolicy | 17 ++++---- .../rpc/generated/fd_rpc_tile_seccomp.h | 40 +++++++++---------- src/waltz/http/fd_http_server.c | 18 ++++----- 6 files changed, 62 insertions(+), 74 deletions(-) diff --git a/src/disco/gui/fd_gui_tile.seccomppolicy b/src/disco/gui/fd_gui_tile.seccomppolicy index 64df69deb8a..28c42047733 100644 --- a/src/disco/gui/fd_gui_tile.seccomppolicy +++ b/src/disco/gui/fd_gui_tile.seccomppolicy @@ -34,7 +34,7 @@ accept4: (and (eq (arg 0) gui_socket_fd) # arg 0 is the file descriptor to read from. It can be any of the # connected client sockets returned by accept4(2). To accomodate this, # we allow any file descriptor except those which we know are not these -# connected clients, which are the log file, STDOUT, and the listening +# connected clients, which are the log file, STDERR, and the listening # socket itself. read: (not (or (eq (arg 0) 2) (eq (arg 0) logfile_fd) @@ -46,7 +46,7 @@ read: (not (or (eq (arg 0) 2) # arg 0 is the file descriptor to send to. It can be any of the # connected client sockets returned by accept4(2). To accomodate this, # we allow any file descriptor except those which we know are not these -# connected clients, which are the log file, STDOUT, and the listening +# connected clients, which are the log file, STDERR, and the listening # socket itself. sendto: (not (or (eq (arg 0) 2) (eq (arg 0) logfile_fd) @@ -57,20 +57,19 @@ sendto: (not (or (eq (arg 0) 2) # arg 0 is the file descriptor to send to. It can be any of the # connected client sockets returned by accept4(2). To accomodate this, # we allow any file descriptor except those which we know are not these -# connected clients, which are the log file, STDOUT, and the listening +# connected clients, which are the log file, STDERR, and the listening # socket itself. -sendmmsg: (and (not (or (eq (arg 0) 2) - (eq (arg 0) logfile_fd) - (eq (arg 0) gui_socket_fd))) - (eq (arg 2) 1) - (eq (arg 3) "MSG_NOSIGNAL")) +sendmsg: (and (not (or (eq (arg 0) 2) + (eq (arg 0) logfile_fd) + (eq (arg 0) gui_socket_fd))) + (eq (arg 2) "MSG_NOSIGNAL")) # server: serving pages over HTTP requires closing connections # # arg 0 is the file descriptor to close. It can be any of the connected # client sockets returned by accept4(2). To accomodate this, we allow # any file descriptor except those which we know are not these connected -# clients, which are the log file, STDOUT, and the listening socket +# clients, which are the log file, STDERR, and the listening socket # itself. close: (not (or (eq (arg 0) 2) (eq (arg 0) logfile_fd) diff --git a/src/disco/gui/generated/fd_gui_tile_seccomp.h b/src/disco/gui/generated/fd_gui_tile_seccomp.h index 25f58a1fc7f..e2a02dc7996 100644 --- a/src/disco/gui/generated/fd_gui_tile_seccomp.h +++ b/src/disco/gui/generated/fd_gui_tile_seccomp.h @@ -31,11 +31,11 @@ #define FD_SECCOMP_ARG_LO(x) ((uint)(((ulong)(uint)(int)(x) ) & 0xffffffffUL)) #define FD_SECCOMP_ARG_HI(x) ((uint)(((ulong)(x) >> 32) & 0xffffffffUL)) -static const uint sock_filter_policy_fd_gui_tile_instr_cnt = 64; +static const uint sock_filter_policy_fd_gui_tile_instr_cnt = 62; -static void populate_sock_filter_policy_fd_gui_tile( ulong out_cnt, struct sock_filter out[ static 64 ], uint logfile_fd, uint gui_socket_fd ) { - FD_TEST( out_cnt >= 64 ); - struct sock_filter filter[64] = { +static void populate_sock_filter_policy_fd_gui_tile( ulong out_cnt, struct sock_filter out[ static 62 ], uint logfile_fd, uint gui_socket_fd ) { + FD_TEST( out_cnt >= 62 ); + struct sock_filter filter[62] = { /* validate architecture */ BPF_STMT( BPF_LD | BPF_W | BPF_ABS, ( offsetof( struct seccomp_data, arch ) )), BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ARCH_NR, 0, /* RET_KILL_PROCESS */ 9 ), @@ -51,10 +51,10 @@ static void populate_sock_filter_policy_fd_gui_tile( ulong out_cnt, struct sock_ BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_read, /* check_read */ 29, 0 ), /* check sendto */ BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_sendto, /* check_sendto */ 34, 0 ), - /* check sendmmsg */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_sendmmsg, /* check_sendmmsg */ 39, 0 ), + /* check sendmsg */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_sendmsg, /* check_sendmsg */ 39, 0 ), /* check close */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_close, /* check_close */ 48, 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_close, /* check_close */ 46, 0 ), /* allow ppoll */ BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_ppoll, /* RET_ALLOW */ 1, 0 ), // RET_KILL_PROCESS: @@ -133,33 +133,29 @@ static void populate_sock_filter_policy_fd_gui_tile( ulong out_cnt, struct sock_ BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), // sendto_ALLOW: BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_ALLOW ), -// check_sendmmsg: +// check_sendmsg: /* arg 0 low 32 bits */ BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(0)), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* sendmmsg_KILL */ 6, /* or_eq_next_lo_12 */ 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* sendmsg_KILL */ 4, /* or_eq_next_lo_12 */ 0 ), // or_eq_next_lo_12: - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* sendmmsg_KILL */ 5, /* or_eq_next_lo_13 */ 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* sendmsg_KILL */ 3, /* or_eq_next_lo_13 */ 0 ), // or_eq_next_lo_13: - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(gui_socket_fd)), /* sendmmsg_KILL */ 4, /* and_11 */ 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(gui_socket_fd)), /* sendmsg_KILL */ 2, /* and_11 */ 0 ), // and_11: /* arg 2 low 32 bits */ BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(2)), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000001U, /* and_14 */ 0, /* sendmmsg_KILL */ 2 ), -// and_14: - /* arg 3 low 32 bits */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(3)), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, FD_SECCOMP_ARG_LO(MSG_NOSIGNAL), /* sendmmsg_ALLOW */ 1, /* sendmmsg_KILL */ 0 ), -// sendmmsg_KILL: + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, FD_SECCOMP_ARG_LO(MSG_NOSIGNAL), /* sendmsg_ALLOW */ 1, /* sendmsg_KILL */ 0 ), +// sendmsg_KILL: BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), -// sendmmsg_ALLOW: +// sendmsg_ALLOW: BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_ALLOW ), // check_close: /* arg 0 low 32 bits */ BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(0)), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* close_KILL */ 2, /* or_eq_next_lo_15 */ 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* close_KILL */ 2, /* or_eq_next_lo_14 */ 0 ), +// or_eq_next_lo_14: + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* close_KILL */ 1, /* or_eq_next_lo_15 */ 0 ), // or_eq_next_lo_15: - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* close_KILL */ 1, /* or_eq_next_lo_16 */ 0 ), -// or_eq_next_lo_16: BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(gui_socket_fd)), /* close_KILL */ 0, /* close_ALLOW */ 1 ), // close_KILL: BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), diff --git a/src/disco/metrics/fd_metric_tile.seccomppolicy b/src/disco/metrics/fd_metric_tile.seccomppolicy index ffd69f36f14..b7ead2b6b8a 100644 --- a/src/disco/metrics/fd_metric_tile.seccomppolicy +++ b/src/disco/metrics/fd_metric_tile.seccomppolicy @@ -35,7 +35,7 @@ accept4: (and (eq (arg 0) metrics_socket_fd) # arg 0 is the file descriptor to read from. It can be any of the # connected client sockets returned by accept4(2). To accomodate this, # we allow any file descriptor except those which we know are not these -# connected clients, which are the log file, STDOUT, and the listening +# connected clients, which are the log file, STDERR, and the listening # socket itself. read: (not (or (eq (arg 0) 2) (eq (arg 0) logfile_fd) @@ -46,7 +46,7 @@ read: (not (or (eq (arg 0) 2) # arg 0 is the file descriptor to send to. It can be any of the # connected client sockets returned by accept4(2). To accomodate this, # we allow any file descriptor except those which we know are not these -# connected clients, which are the log file, STDOUT, and the listening +# connected clients, which are the log file, STDERR, and the listening # socket itself. sendto: (not (or (eq (arg 0) 2) (eq (arg 0) logfile_fd) @@ -57,7 +57,7 @@ sendto: (not (or (eq (arg 0) 2) # arg 0 is the file descriptor to close. It can be any of the connected # client sockets returned by accept4(2). To accomodate this, we allow # any file descriptor except those which we know are not these connected -# clients, which are the log file, STDOUT, and the listening socket +# clients, which are the log file, STDERR, and the listening socket # itself. close: (not (or (eq (arg 0) 2) (eq (arg 0) logfile_fd) diff --git a/src/discof/rpc/fd_rpc_tile.seccomppolicy b/src/discof/rpc/fd_rpc_tile.seccomppolicy index ec1544e72c6..f8a82acf025 100644 --- a/src/discof/rpc/fd_rpc_tile.seccomppolicy +++ b/src/discof/rpc/fd_rpc_tile.seccomppolicy @@ -38,7 +38,7 @@ accept4: (and (eq (arg 0) rpc_socket_fd) # arg 0 is the file descriptor to read from. It can be any of the # connected client sockets returned by accept4(2). To accomodate this, # we allow any file descriptor except those which we know are not these -# connected clients, which are the log file, STDOUT, and the listening +# connected clients, which are the log file, STDERR, and the listening # socket itself. read: (not (or (eq (arg 0) 2) (eq (arg 0) logfile_fd) @@ -49,7 +49,7 @@ read: (not (or (eq (arg 0) 2) # arg 0 is the file descriptor to send to. It can be any of the # connected client sockets returned by accept4(2). To accomodate this, # we allow any file descriptor except those which we know are not these -# connected clients, which are the log file, STDOUT, and the listening +# connected clients, which are the log file, STDERR, and the listening # socket itself. sendto: (not (or (eq (arg 0) 2) (eq (arg 0) logfile_fd) @@ -60,20 +60,19 @@ sendto: (not (or (eq (arg 0) 2) # arg 0 is the file descriptor to send to. It can be any of the # connected client sockets returned by accept4(2). To accomodate this, # we allow any file descriptor except those which we know are not these -# connected clients, which are the log file, STDOUT, and the listening +# connected clients, which are the log file, STDERR, and the listening # socket itself. -sendmmsg: (and (not (or (eq (arg 0) 2) - (eq (arg 0) logfile_fd) - (eq (arg 0) rpc_socket_fd))) - (eq (arg 2) 1) - (eq (arg 3) "MSG_NOSIGNAL")) +sendmsg: (and (not (or (eq (arg 0) 2) + (eq (arg 0) logfile_fd) + (eq (arg 0) rpc_socket_fd))) + (eq (arg 2) "MSG_NOSIGNAL")) # server: serving RPC over HTTP requires closing connections # # arg 0 is the file descriptor to close. It can be any of the connected # client sockets returned by accept4(2). To accomodate this, we allow # any file descriptor except those which we know are not these connected -# clients, which are the log file, STDOUT, and the listening socket +# clients, which are the log file, STDERR, and the listening socket # itself. close: (not (or (eq (arg 0) 2) (eq (arg 0) logfile_fd) diff --git a/src/discof/rpc/generated/fd_rpc_tile_seccomp.h b/src/discof/rpc/generated/fd_rpc_tile_seccomp.h index e92611be796..ed4253c24e4 100644 --- a/src/discof/rpc/generated/fd_rpc_tile_seccomp.h +++ b/src/discof/rpc/generated/fd_rpc_tile_seccomp.h @@ -31,11 +31,11 @@ #define FD_SECCOMP_ARG_LO(x) ((uint)(((ulong)(uint)(int)(x) ) & 0xffffffffUL)) #define FD_SECCOMP_ARG_HI(x) ((uint)(((ulong)(x) >> 32) & 0xffffffffUL)) -static const uint sock_filter_policy_fd_rpc_tile_instr_cnt = 69; +static const uint sock_filter_policy_fd_rpc_tile_instr_cnt = 67; -static void populate_sock_filter_policy_fd_rpc_tile( ulong out_cnt, struct sock_filter out[ static 69 ], uint logfile_fd, uint rpc_socket_fd, uint accdb_ro_fd ) { - FD_TEST( out_cnt >= 69 ); - struct sock_filter filter[69] = { +static void populate_sock_filter_policy_fd_rpc_tile( ulong out_cnt, struct sock_filter out[ static 67 ], uint logfile_fd, uint rpc_socket_fd, uint accdb_ro_fd ) { + FD_TEST( out_cnt >= 67 ); + struct sock_filter filter[67] = { /* validate architecture */ BPF_STMT( BPF_LD | BPF_W | BPF_ABS, ( offsetof( struct seccomp_data, arch ) )), BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ARCH_NR, 0, /* RET_KILL_PROCESS */ 10 ), @@ -51,14 +51,14 @@ static void populate_sock_filter_policy_fd_rpc_tile( ulong out_cnt, struct sock_ BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_read, /* check_read */ 30, 0 ), /* check sendto */ BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_sendto, /* check_sendto */ 35, 0 ), - /* check sendmmsg */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_sendmmsg, /* check_sendmmsg */ 40, 0 ), + /* check sendmsg */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_sendmsg, /* check_sendmsg */ 40, 0 ), /* check close */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_close, /* check_close */ 49, 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_close, /* check_close */ 47, 0 ), /* allow ppoll */ BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_ppoll, /* RET_ALLOW */ 2, 0 ), /* check preadv2 */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_preadv2, /* check_preadv2 */ 53, 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_preadv2, /* check_preadv2 */ 51, 0 ), // RET_KILL_PROCESS: /* default deny */ BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), @@ -135,33 +135,29 @@ static void populate_sock_filter_policy_fd_rpc_tile( ulong out_cnt, struct sock_ BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), // sendto_ALLOW: BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_ALLOW ), -// check_sendmmsg: +// check_sendmsg: /* arg 0 low 32 bits */ BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(0)), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* sendmmsg_KILL */ 6, /* or_eq_next_lo_12 */ 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* sendmsg_KILL */ 4, /* or_eq_next_lo_12 */ 0 ), // or_eq_next_lo_12: - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* sendmmsg_KILL */ 5, /* or_eq_next_lo_13 */ 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* sendmsg_KILL */ 3, /* or_eq_next_lo_13 */ 0 ), // or_eq_next_lo_13: - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(rpc_socket_fd)), /* sendmmsg_KILL */ 4, /* and_11 */ 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(rpc_socket_fd)), /* sendmsg_KILL */ 2, /* and_11 */ 0 ), // and_11: /* arg 2 low 32 bits */ BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(2)), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000001U, /* and_14 */ 0, /* sendmmsg_KILL */ 2 ), -// and_14: - /* arg 3 low 32 bits */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(3)), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, FD_SECCOMP_ARG_LO(MSG_NOSIGNAL), /* sendmmsg_ALLOW */ 1, /* sendmmsg_KILL */ 0 ), -// sendmmsg_KILL: + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, FD_SECCOMP_ARG_LO(MSG_NOSIGNAL), /* sendmsg_ALLOW */ 1, /* sendmsg_KILL */ 0 ), +// sendmsg_KILL: BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), -// sendmmsg_ALLOW: +// sendmsg_ALLOW: BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_ALLOW ), // check_close: /* arg 0 low 32 bits */ BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(0)), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* close_KILL */ 2, /* or_eq_next_lo_15 */ 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* close_KILL */ 2, /* or_eq_next_lo_14 */ 0 ), +// or_eq_next_lo_14: + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* close_KILL */ 1, /* or_eq_next_lo_15 */ 0 ), // or_eq_next_lo_15: - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* close_KILL */ 1, /* or_eq_next_lo_16 */ 0 ), -// or_eq_next_lo_16: BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(rpc_socket_fd)), /* close_KILL */ 0, /* close_ALLOW */ 1 ), // close_KILL: BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), diff --git a/src/waltz/http/fd_http_server.c b/src/waltz/http/fd_http_server.c index c83daf849ee..2c1e69ef907 100644 --- a/src/waltz/http/fd_http_server.c +++ b/src/waltz/http/fd_http_server.c @@ -1137,21 +1137,19 @@ write_conn_ws( fd_http_server_t * http, out_idx++; } - struct mmsghdr msg = {0}; - msg.msg_hdr.msg_iov = iovecs; - msg.msg_hdr.msg_iovlen = out_idx; + struct msghdr msg = {0}; + msg.msg_iov = iovecs; + msg.msg_iovlen = out_idx; - int result = sendmmsg( http->pollfds[ conn_idx ].fd, &msg, 1U, MSG_NOSIGNAL ); - if( FD_UNLIKELY( -1==result && errno==EAGAIN ) ) return; /* No data was written, continue. */ - else if( FD_UNLIKELY( -1==result && is_expected_network_error( errno ) ) ) { + long sz = sendmsg( http->pollfds[ conn_idx ].fd, &msg, MSG_NOSIGNAL ); + if( FD_UNLIKELY( -1==sz && errno==EAGAIN ) ) return; /* No data was written, continue. */ + else if( FD_UNLIKELY( -1==sz && is_expected_network_error( errno ) ) ) { close_conn( http, conn_idx, FD_HTTP_SERVER_CONNECTION_CLOSE_PEER_RESET ); return; } - else if( FD_UNLIKELY( -1==result ) ) FD_LOG_ERR(( "write failed (%i-%s)", errno, fd_io_strerror( errno ) )); /* Unexpected programmer error, abort */ - - FD_TEST( result==1 ); + else if( FD_UNLIKELY( -1==sz ) ) FD_LOG_ERR(( "write failed (%i-%s)", errno, fd_io_strerror( errno ) )); /* Unexpected programmer error, abort */ - ulong sent = (ulong)msg.msg_len; + ulong sent = (ulong)sz; http->metrics.bytes_written += sent; for( ulong i=0UL; i Date: Sun, 14 Jun 2026 00:57:24 +0000 Subject: [PATCH 24/61] rpc: serve raw txns for voteSubscribe --- src/discof/rpc/fd_rpc_tile.c | 7 +++++-- src/discof/rpc/test_rpc_tile.c | 5 +++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/discof/rpc/fd_rpc_tile.c b/src/discof/rpc/fd_rpc_tile.c index bb1aa73b574..09f44161ccb 100644 --- a/src/discof/rpc/fd_rpc_tile.c +++ b/src/discof/rpc/fd_rpc_tile.c @@ -541,15 +541,18 @@ fd_rpc_publish_vote_event( fd_rpc_tile_t * ctx, FD_BASE58_ENCODE_32_BYTES( hash->uc, hash_b58 ); FD_BASE58_ENCODE_64_BYTES( signature->uc, signature_b58 ); + char txn_base64[ FD_BASE64_ENC_SZ( sizeof(vote->transaction) ) ]; + ulong txn_base64_len = fd_base64_encode( txn_base64, vote->transaction, vote->transaction_len ); + ulong sent_cnt = 0UL; for( ulong i=0UL; iws_subscribers_vote_cnt; ) { ulong ws_conn_id = ctx->ws_subscribers_vote[ i ]; - fd_http_server_printf( ctx->http, "{\"jsonrpc\":\"2.0\",\"method\":\"voteNotification\",\"params\":{\"result\":{\"votePubkey\":\"%s\",\"slots\":[", vote_pubkey_b58 ); + fd_http_server_printf( ctx->http, "{\"jsonrpc\":\"2.0\",\"method\":\"voteNotification\",\"params\":{\"subscription\":0,\"result\":{\"votePubkey\":\"%s\",\"slots\":[", vote_pubkey_b58 ); for( ulong j=0UL; jhttp, "%s%lu", j ? "," : "", slots[ j ] ); fd_http_server_printf( ctx->http, "],\"hash\":\"%s\",", hash_b58 ); if( FD_LIKELY( has_timestamp ) ) fd_http_server_printf( ctx->http, "\"timestamp\":%ld,", timestamp ); else fd_http_server_printf( ctx->http, "\"timestamp\":null," ); - fd_http_server_printf( ctx->http, "\"signature\":\"%s\"},\"subscription\":0}}\n", signature_b58 ); + fd_http_server_printf( ctx->http, "\"signature\":\"%s\",\"transaction\":[\"%.*s\",\"base64\"]}}}\n", signature_b58, (int)txn_base64_len, txn_base64 ); if( FD_UNLIKELY( fd_http_server_ws_send( ctx->http, ws_conn_id ) ) ) { fd_rpc_ws_subscriber_vote_remove( ctx, ws_conn_id ); diff --git a/src/discof/rpc/test_rpc_tile.c b/src/discof/rpc/test_rpc_tile.c index 3663d38b58f..4c17b3975f7 100644 --- a/src/discof/rpc/test_rpc_tile.c +++ b/src/discof/rpc/test_rpc_tile.c @@ -312,10 +312,11 @@ main( int argc, fd_http_server_ws_frame_t const * frame = &conn->send_frames[ frame_idx ]; FD_TEST( !frame->compressed ); char const expected[] = - "{\"jsonrpc\":\"2.0\",\"method\":\"voteNotification\",\"params\":{\"result\":{\"votePubkey\":\"9Diao4uo6NpeMud7t5wvGnJ3WxDM7iaYxkGtJM36T4dy\"," + "{\"jsonrpc\":\"2.0\",\"method\":\"voteNotification\",\"params\":{\"subscription\":0,\"result\":{\"votePubkey\":\"9Diao4uo6NpeMud7t5wvGnJ3WxDM7iaYxkGtJM36T4dy\"," "\"slots\":[425637581,425637582,425637583,425637584,425637585,425637586,425637587,425637588,425637589,425637590,425637591,425637592,425637593,425637594,425637595,425637596,425637597,425637598,425637599,425637600,425637601,425637602,425637603,425637604,425637605,425637606,425637607,425637608,425637609,425637610,425637611]," "\"hash\":\"GFiLqndBXPMfvM18KP1ow35cgL8vitqFeKCU3xFogCxx\",\"timestamp\":1781130981," - "\"signature\":\"2bEoikscia2UbcJhwBY8112BZQuS1icVuNiruAXzZ53qxvbsSg9aiLzHU5JBnW6rXakPjTTjt14cqxdMmUd3qZaq\"},\"subscription\":0}}\n"; + "\"signature\":\"2bEoikscia2UbcJhwBY8112BZQuS1icVuNiruAXzZ53qxvbsSg9aiLzHU5JBnW6rXakPjTTjt14cqxdMmUd3qZaq\"," + "\"transaction\":[\"Ak+K5gfbg+NpHO3UTO/QzBfIfgeNSs4njPIIX+aFRKxSvBKCZm7MXtZsIC+RFQkQKgT051zEsImZRljpQUbj1woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEBBKgi3FMRExpaRO6SOLvtJElE8QFMt3sk6+UDD5+fLvfft827Ax4np8ywG8B+HFowmxhhKhboEAC4ke6NRg0zZwB6H3uXqqwwUjGjRR9ELjwRK5RPAOeVvcAe35GPwVDg7AdhSB01dHS7fE12JOvTvbPYNV5z0RBD/A2jU4AAAAAAGxVqmLLaYBv9BcHpi++/hhQK10e1ZHromZsZ81RQvskBAwICAZQBDgAAAMy2XhkAAAAAHwEfAR4BHQEcARsBGgEZARgBFwEWARUBFAETARIBEQEQAQ8BDgENAQwBCwEKAQkBCAEHAQYBBQEEAQMBAgEB4qQuTZIXKp1u6K5KsnxFr+ushJ49E/9XN7NB48dr9rEB5eYpagAAAADHpDbUzrLPx+gMBJwQmbfn20XTCpAncuVI3xmG+6ulqw==\",\"base64\"]}}}\n"; char const * got = (char const *)( ctx->http->oring + (frame->off % ctx->http->oring_sz) ); if( FD_UNLIKELY( frame->len!=strlen( expected ) || memcmp( got, expected, frame->len ) ) ) { FD_LOG_WARNING(( "Expected vote notification:\n---\n%s---", expected )); From 28d1a1f9ccc8df1d8917917666b6eae3c34b88f3 Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Sun, 14 Jun 2026 14:56:39 +0000 Subject: [PATCH 25/61] rpc: implement slotSubscribe --- book/api/metrics-generated.md | 7 +- .../metrics/generated/fd_metrics_enums.h | 4 +- src/disco/metrics/generated/fd_metrics_rpc.c | 3 + src/disco/metrics/generated/fd_metrics_rpc.h | 15 ++- src/disco/metrics/metrics.xml | 1 + src/discof/rpc/fd_rpc_tile.c | 109 ++++++++++++++++++ src/discof/rpc/test_rpc_tile.c | 56 +++++++++ 7 files changed, 186 insertions(+), 9 deletions(-) diff --git a/book/api/metrics-generated.md b/book/api/metrics-generated.md index 6bcbeabbc28..500b411aed6 100644 --- a/book/api/metrics-generated.md +++ b/book/api/metrics-generated.md @@ -1625,8 +1625,11 @@ | rpc_​conn_​active | gauge | The number of active HTTP connections to the RPC service | | rpc_​websocket_​conn_​active | gauge | The number of active WebSocket connections to the RPC service | | rpc_​websocket_​subscription_​active
{rpc_​event_​type="vote"} | gauge | The number of active WebSocket subscriptions to the RPC service, broken down by subscription type (vote) | -| rpc_​websocket_​event_​unique_​sent
{rpc_​event_​type="vote"} | counter | Number of unique WebSocket events sent by the RPC service, before fanout to subscribed connections (vote) | -| rpc_​websocket_​event_​sent
{rpc_​event_​type="vote"} | counter | Number of WebSocket events sent by the RPC service across all subscribed connections (vote) | +| rpc_​websocket_​subscription_​active
{rpc_​event_​type="slot"} | gauge | The number of active WebSocket subscriptions to the RPC service, broken down by subscription type (slot) | +| rpc_​websocket_​event_​unique_​sent
{rpc_​event_​type="vote"} | counter | Number of unique WebSocket events sent by the RPC service (vote) | +| rpc_​websocket_​event_​unique_​sent
{rpc_​event_​type="slot"} | counter | Number of unique WebSocket events sent by the RPC service (slot) | +| rpc_​websocket_​event_​sent
{rpc_​event_​type="vote"} | counter | Number of WebSocket events sent by the RPC service across all subscriptions (vote) | +| rpc_​websocket_​event_​sent
{rpc_​event_​type="slot"} | counter | Number of WebSocket events sent by the RPC service across all subscriptions (slot) | | rpc_​accdb_​account_​acquired
{accdb_​cache_​class="class0"} | counter | Number of accounts read from the account database, attributed to the cache size class of the account's current data size (0-128 B) | | rpc_​accdb_​account_​acquired
{accdb_​cache_​class="class1"} | counter | Number of accounts read from the account database, attributed to the cache size class of the account's current data size (129-512 B) | | rpc_​accdb_​account_​acquired
{accdb_​cache_​class="class2"} | counter | Number of accounts read from the account database, attributed to the cache size class of the account's current data size (513 B-2 KiB) | diff --git a/src/disco/metrics/generated/fd_metrics_enums.h b/src/disco/metrics/generated/fd_metrics_enums.h index ecafe3a1f74..0945b95eabf 100644 --- a/src/disco/metrics/generated/fd_metrics_enums.h +++ b/src/disco/metrics/generated/fd_metrics_enums.h @@ -898,9 +898,11 @@ #define FD_METRICS_ENUM_RPC_METHOD_V_GET_VERSION_NAME "getVersion" #define FD_METRICS_ENUM_RPC_EVENT_TYPE_NAME "rpc_event_type" -#define FD_METRICS_ENUM_RPC_EVENT_TYPE_CNT (1UL) +#define FD_METRICS_ENUM_RPC_EVENT_TYPE_CNT (2UL) #define FD_METRICS_ENUM_RPC_EVENT_TYPE_V_VOTE_IDX 0 #define FD_METRICS_ENUM_RPC_EVENT_TYPE_V_VOTE_NAME "vote" +#define FD_METRICS_ENUM_RPC_EVENT_TYPE_V_SLOT_IDX 1 +#define FD_METRICS_ENUM_RPC_EVENT_TYPE_V_SLOT_NAME "slot" #define FD_METRICS_ENUM_SOFTIRQ_NAME "softirq" #define FD_METRICS_ENUM_SOFTIRQ_CNT (3UL) diff --git a/src/disco/metrics/generated/fd_metrics_rpc.c b/src/disco/metrics/generated/fd_metrics_rpc.c index 49c4cabfd5e..28782ffd979 100644 --- a/src/disco/metrics/generated/fd_metrics_rpc.c +++ b/src/disco/metrics/generated/fd_metrics_rpc.c @@ -23,8 +23,11 @@ const fd_metrics_meta_t FD_METRICS_RPC[FD_METRICS_RPC_TOTAL] = { DECLARE_METRIC( RPC_CONN_ACTIVE, GAUGE ), DECLARE_METRIC( RPC_WEBSOCKET_CONN_ACTIVE, GAUGE ), DECLARE_METRIC_ENUM( RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE, GAUGE, RPC_EVENT_TYPE, VOTE ), + DECLARE_METRIC_ENUM( RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE, GAUGE, RPC_EVENT_TYPE, SLOT ), DECLARE_METRIC_ENUM( RPC_WEBSOCKET_EVENT_UNIQUE_SENT, COUNTER, RPC_EVENT_TYPE, VOTE ), + DECLARE_METRIC_ENUM( RPC_WEBSOCKET_EVENT_UNIQUE_SENT, COUNTER, RPC_EVENT_TYPE, SLOT ), DECLARE_METRIC_ENUM( RPC_WEBSOCKET_EVENT_SENT, COUNTER, RPC_EVENT_TYPE, VOTE ), + DECLARE_METRIC_ENUM( RPC_WEBSOCKET_EVENT_SENT, COUNTER, RPC_EVENT_TYPE, SLOT ), DECLARE_METRIC_ENUM( RPC_ACCDB_ACCOUNT_ACQUIRED, COUNTER, ACCDB_CACHE_CLASS, CLASS0 ), DECLARE_METRIC_ENUM( RPC_ACCDB_ACCOUNT_ACQUIRED, COUNTER, ACCDB_CACHE_CLASS, CLASS1 ), DECLARE_METRIC_ENUM( RPC_ACCDB_ACCOUNT_ACQUIRED, COUNTER, ACCDB_CACHE_CLASS, CLASS2 ), diff --git a/src/disco/metrics/generated/fd_metrics_rpc.h b/src/disco/metrics/generated/fd_metrics_rpc.h index c95b33f5ad7..01fc6105ec9 100644 --- a/src/disco/metrics/generated/fd_metrics_rpc.h +++ b/src/disco/metrics/generated/fd_metrics_rpc.h @@ -31,10 +31,13 @@ enum { FD_METRICS_GAUGE_RPC_WEBSOCKET_CONN_ACTIVE_OFF, FD_METRICS_GAUGE_RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE_OFF, FD_METRICS_GAUGE_RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE_VOTE_OFF = FD_METRICS_GAUGE_RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE_OFF, + FD_METRICS_GAUGE_RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE_SLOT_OFF, FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_UNIQUE_SENT_OFF, FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_UNIQUE_SENT_VOTE_OFF = FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_UNIQUE_SENT_OFF, + FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_UNIQUE_SENT_SLOT_OFF, FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_SENT_OFF, FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_SENT_VOTE_OFF = FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_SENT_OFF, + FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_SENT_SLOT_OFF, FD_METRICS_COUNTER_RPC_ACCDB_ACCOUNT_ACQUIRED_OFF, FD_METRICS_COUNTER_RPC_ACCDB_ACCOUNT_ACQUIRED_CLASS0_OFF = FD_METRICS_COUNTER_RPC_ACCDB_ACCOUNT_ACQUIRED_OFF, FD_METRICS_COUNTER_RPC_ACCDB_ACCOUNT_ACQUIRED_CLASS1_OFF, @@ -87,19 +90,19 @@ enum { #define FD_METRICS_GAUGE_RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE_TYPE (FD_METRICS_TYPE_GAUGE) #define FD_METRICS_GAUGE_RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE_DESC "The number of active WebSocket subscriptions to the RPC service, broken down by subscription type" #define FD_METRICS_GAUGE_RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE_CVT (FD_METRICS_CONVERTER_NONE) -#define FD_METRICS_GAUGE_RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE_CNT (1UL) +#define FD_METRICS_GAUGE_RPC_WEBSOCKET_SUBSCRIPTION_ACTIVE_CNT (2UL) #define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_UNIQUE_SENT_NAME "rpc_websocket_event_unique_sent" #define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_UNIQUE_SENT_TYPE (FD_METRICS_TYPE_COUNTER) -#define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_UNIQUE_SENT_DESC "Number of unique WebSocket events sent by the RPC service, before fanout to subscribed connections" +#define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_UNIQUE_SENT_DESC "Number of unique WebSocket events sent by the RPC service" #define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_UNIQUE_SENT_CVT (FD_METRICS_CONVERTER_NONE) -#define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_UNIQUE_SENT_CNT (1UL) +#define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_UNIQUE_SENT_CNT (2UL) #define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_SENT_NAME "rpc_websocket_event_sent" #define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_SENT_TYPE (FD_METRICS_TYPE_COUNTER) -#define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_SENT_DESC "Number of WebSocket events sent by the RPC service across all subscribed connections" +#define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_SENT_DESC "Number of WebSocket events sent by the RPC service across all subscriptions" #define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_SENT_CVT (FD_METRICS_CONVERTER_NONE) -#define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_SENT_CNT (1UL) +#define FD_METRICS_COUNTER_RPC_WEBSOCKET_EVENT_SENT_CNT (2UL) #define FD_METRICS_COUNTER_RPC_ACCDB_ACCOUNT_ACQUIRED_NAME "rpc_accdb_account_acquired" #define FD_METRICS_COUNTER_RPC_ACCDB_ACCOUNT_ACQUIRED_TYPE (FD_METRICS_TYPE_COUNTER) @@ -138,7 +141,7 @@ enum { #define FD_METRICS_COUNTER_RPC_ACCDB_BYTES_COPIED_DESC "Number of bytes copied out of the account database cache on a cache hit" #define FD_METRICS_COUNTER_RPC_ACCDB_BYTES_COPIED_CVT (FD_METRICS_CONVERTER_NONE) -#define FD_METRICS_RPC_TOTAL (44UL) +#define FD_METRICS_RPC_TOTAL (47UL) extern const fd_metrics_meta_t FD_METRICS_RPC[FD_METRICS_RPC_TOTAL]; #endif /* HEADER_fd_src_disco_metrics_generated_fd_metrics_rpc_h */ diff --git a/src/disco/metrics/metrics.xml b/src/disco/metrics/metrics.xml index e720a9b6203..a648281916b 100644 --- a/src/disco/metrics/metrics.xml +++ b/src/disco/metrics/metrics.xml @@ -1655,6 +1655,7 @@ EXAMPLES + diff --git a/src/discof/rpc/fd_rpc_tile.c b/src/discof/rpc/fd_rpc_tile.c index 09f44161ccb..dc0a512c2a6 100644 --- a/src/discof/rpc/fd_rpc_tile.c +++ b/src/discof/rpc/fd_rpc_tile.c @@ -239,6 +239,8 @@ struct fd_rpc_tile { ulong * ws_subscribers_vote; ulong ws_subscribers_vote_cnt; + ulong * ws_subscribers_slot; + ulong ws_subscribers_slot_cnt; fd_rpc_cluster_node_dlist_t * cluster_nodes_dlist; fd_rpc_cluster_node_t cluster_nodes[ FD_CONTACT_INFO_TABLE_SIZE ]; @@ -311,6 +313,30 @@ fd_rpc_ws_subscriber_vote_remove( fd_rpc_tile_t * ctx, return 0; } +static void +fd_rpc_ws_subscriber_slot_add( fd_rpc_tile_t * ctx, + ulong ws_conn_id ) { + for( ulong i=0UL; iws_subscribers_slot_cnt; i++ ) + if( FD_UNLIKELY( ctx->ws_subscribers_slot[ i ]==ws_conn_id ) ) return; + + FD_TEST( ctx->ws_subscribers_slot_cnthttp->max_ws_conns ); + ctx->ws_subscribers_slot[ ctx->ws_subscribers_slot_cnt++ ] = ws_conn_id; +} + +static int +fd_rpc_ws_subscriber_slot_remove( fd_rpc_tile_t * ctx, + ulong ws_conn_id ) { + for( ulong idx=0UL; idxws_subscribers_slot_cnt; idx++ ) { + if( FD_LIKELY( ctx->ws_subscribers_slot[ idx ]!=ws_conn_id ) ) continue; + + ctx->ws_subscribers_slot_cnt--; + ctx->ws_subscribers_slot[ idx ] = ctx->ws_subscribers_slot[ ctx->ws_subscribers_slot_cnt ]; + return 1; + } + + return 0; +} + static void * bz2_malloc( void * opaque, int items, @@ -408,6 +434,7 @@ scratch_footprint( fd_topo_tile_t const * tile ) { l = FD_LAYOUT_APPEND( l, fd_rpc_cluster_node_dlist_align(), fd_rpc_cluster_node_dlist_footprint() ); l = FD_LAYOUT_APPEND( l, fd_accdb_align(), fd_accdb_footprint( tile->rpc.max_live_slots ) ); l = FD_LAYOUT_APPEND( l, alignof(ulong), http_params.max_ws_connection_cnt*sizeof(ulong) ); + l = FD_LAYOUT_APPEND( l, alignof(ulong), http_params.max_ws_connection_cnt*sizeof(ulong) ); return FD_LAYOUT_FINI( l, scratch_align() ); } @@ -430,6 +457,7 @@ metrics_write( fd_rpc_tile_t * ctx ) { FD_MGAUGE_SET( RPC, CONN_ACTIVE, ctx->http->metrics.connection_cnt ); FD_MGAUGE_SET( RPC, WEBSOCKET_CONN_ACTIVE, ctx->http->metrics.ws_connection_cnt ); FD_MGAUGE_SET( RPC, WEBSOCKET_SUBSCRIPTION_ACTIVE_VOTE, ctx->ws_subscribers_vote_cnt ); + FD_MGAUGE_SET( RPC, WEBSOCKET_SUBSCRIPTION_ACTIVE_SLOT, ctx->ws_subscribers_slot_cnt ); FD_ACCDB_METRICS_WRITE_RO( RPC, fd_accdb_metrics( ctx->accdb ) ); } @@ -568,6 +596,34 @@ fd_rpc_publish_vote_event( fd_rpc_tile_t * ctx, FD_MCNT_INC( RPC, WEBSOCKET_EVENT_SENT_VOTE, sent_cnt ); } +static void +fd_rpc_publish_slot_event( fd_rpc_tile_t * ctx, + fd_replay_slot_completed_t const * slot_completed ) { + if( FD_UNLIKELY( !ctx->ws_subscribers_slot_cnt ) ) return; + + ulong sent_cnt = 0UL; + for( ulong i=0UL; iws_subscribers_slot_cnt; ) { + ulong ws_conn_id = ctx->ws_subscribers_slot[ i ]; + fd_http_server_printf( ctx->http, + "{\"jsonrpc\":\"2.0\",\"method\":\"slotNotification\",\"params\":{\"subscription\":0,\"result\":{\"parent\":%lu,\"root\":%lu,\"slot\":%lu}}}\n", + slot_completed->parent_slot, + slot_completed->root_slot, + slot_completed->slot ); + + if( FD_UNLIKELY( fd_http_server_ws_send( ctx->http, ws_conn_id ) ) ) { + fd_rpc_ws_subscriber_slot_remove( ctx, ws_conn_id ); + fd_http_server_ws_close( ctx->http, ws_conn_id, FD_HTTP_SERVER_CONNECTION_CLOSE_TOO_SLOW ); + continue; + } + if( FD_UNLIKELY( i>=ctx->ws_subscribers_slot_cnt || ctx->ws_subscribers_slot[ i ]!=ws_conn_id ) ) continue; + sent_cnt++; + i++; + } + + FD_MCNT_INC( RPC, WEBSOCKET_EVENT_UNIQUE_SENT_SLOT, !!sent_cnt ); + FD_MCNT_INC( RPC, WEBSOCKET_EVENT_SENT_SLOT, sent_cnt ); +} + static inline int returnable_frag( fd_rpc_tile_t * ctx, ulong in_idx, @@ -606,6 +662,8 @@ returnable_frag( fd_rpc_tile_t * ctx, bank->rent.exemption_threshold = slot_completed->rent.exemption_threshold; bank->rent.burn_percent = slot_completed->rent.burn_percent; + fd_rpc_publish_slot_event( ctx, slot_completed ); + /* In Agave, "processed" confirmation is the bank we've just voted for (handle_votable_bank), which is also guaranteed to have been replayed. @@ -1902,6 +1960,25 @@ voteSubscribe( fd_rpc_tile_t * ctx, return PRINTF_JSON( ctx, "{\"jsonrpc\":\"2.0\",\"result\":0,\"id\":%s}\n", id_cstr ); } +static fd_http_server_response_t +slotSubscribe( fd_rpc_tile_t * ctx, + cJSON const * id, + cJSON const * params, + ulong ws_conn_id ) { + fd_http_server_response_t response; + if( FD_UNLIKELY( !fd_rpc_validate_params( ctx, id, params, 0, 0, &response ) ) ) return response; + + CSTR_JSON( id, id_cstr ); + if( FD_UNLIKELY( ws_conn_id==ULONG_MAX ) ) { + return PRINTF_JSON( ctx, "{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32601,\"message\":\"Method not found\"},\"id\":%s}\n", id_cstr ); + } + FD_CHECK_CRIT( ws_conn_id < ctx->http->max_ws_conns, "OOB ws_conn_id" ); + + fd_rpc_ws_subscriber_slot_add( ctx, ws_conn_id ); + + return PRINTF_JSON( ctx, "{\"jsonrpc\":\"2.0\",\"result\":0,\"id\":%s}\n", id_cstr ); +} + static fd_http_server_response_t voteUnsubscribe( fd_rpc_tile_t * ctx, cJSON const * id, @@ -1928,6 +2005,32 @@ voteUnsubscribe( fd_rpc_tile_t * ctx, return PRINTF_JSON( ctx, "{\"jsonrpc\":\"2.0\",\"result\":%s,\"id\":%s}\n", unsubscribed ? "true" : "false", id_cstr ); } +static fd_http_server_response_t +slotUnsubscribe( fd_rpc_tile_t * ctx, + cJSON const * id, + cJSON const * params, + ulong ws_conn_id ) { + fd_http_server_response_t response; + if( FD_UNLIKELY( !fd_rpc_validate_params( ctx, id, params, 1, 1, &response ) ) ) return response; + + CSTR_JSON( id, id_cstr ); + if( FD_UNLIKELY( ws_conn_id==ULONG_MAX ) ) { + return PRINTF_JSON( ctx, "{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32601,\"message\":\"Method not found\"},\"id\":%s}\n", id_cstr ); + } + FD_CHECK_CRIT( ws_conn_id < ctx->http->max_ws_conns, "OOB ws_conn_id" ); + + cJSON const * subscription = cJSON_GetArrayItem( params, 0 ); + if( FD_UNLIKELY( !fd_rpc_cjson_is_integer( subscription ) || subscription->valueint<0 ) ) { + return PRINTF_JSON( ctx, "{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32602,\"message\":\"Invalid params: invalid type: %s, expected usize.\"},\"id\":%s}\n", fd_rpc_cjson_type_to_cstr( subscription ), id_cstr ); + } + + int unsubscribed = 0; + if( FD_LIKELY( subscription->valueint==0 ) ) + unsubscribed = fd_rpc_ws_subscriber_slot_remove( ctx, ws_conn_id ); + + return PRINTF_JSON( ctx, "{\"jsonrpc\":\"2.0\",\"result\":%s,\"id\":%s}\n", unsubscribed ? "true" : "false", id_cstr ); +} + UNIMPLEMENTED(getVoteAccounts) // TODO: Used by solana-exporter UNIMPLEMENTED(isBlockhashValid) UNIMPLEMENTED(minimumLedgerSlot) // TODO: Used by solana-exporter @@ -2127,6 +2230,8 @@ rpc_json_request( fd_rpc_tile_t * ctx, else if( FD_LIKELY( !strcmp( _method->valuestring, "getTransactionCount" ) ) ) response = getTransactionCount( ctx, id, params ); else if( FD_LIKELY( !strcmp( _method->valuestring, "getVersion" ) ) ) response = getVersion( ctx, id, params ); else if( FD_LIKELY( !strcmp( _method->valuestring, "getVoteAccounts" ) ) ) response = getVoteAccounts( ctx, id, params ); + else if( FD_LIKELY( !strcmp( _method->valuestring, "slotSubscribe" ) ) ) response = slotSubscribe( ctx, id, params, ws_conn_id ); + else if( FD_LIKELY( !strcmp( _method->valuestring, "slotUnsubscribe" ) ) ) response = slotUnsubscribe( ctx, id, params, ws_conn_id ); else if( FD_LIKELY( !strcmp( _method->valuestring, "voteSubscribe" ) ) ) response = voteSubscribe( ctx, id, params, ws_conn_id ); else if( FD_LIKELY( !strcmp( _method->valuestring, "voteUnsubscribe" ) ) ) response = voteUnsubscribe( ctx, id, params, ws_conn_id ); else if( FD_LIKELY( !strcmp( _method->valuestring, "isBlockhashValid" ) ) ) response = isBlockhashValid( ctx, id, params ); @@ -2167,6 +2272,7 @@ rpc_ws_close( ulong ws_conn_id, fd_rpc_tile_t * ctx = (fd_rpc_tile_t *)_ctx; if( FD_UNLIKELY( ws_conn_id>=ctx->http->max_ws_conns ) ) return; fd_rpc_ws_subscriber_vote_remove( ctx, ws_conn_id ); + fd_rpc_ws_subscriber_slot_remove( ctx, ws_conn_id ); } static void @@ -2268,6 +2374,7 @@ unprivileged_init( fd_topo_t const * topo, void * _nodes_dlist = FD_SCRATCH_ALLOC_APPEND( l, fd_rpc_cluster_node_dlist_align(), fd_rpc_cluster_node_dlist_footprint() ); void * _accdb_join = FD_SCRATCH_ALLOC_APPEND( l, fd_accdb_align(), fd_accdb_footprint( tile->rpc.max_live_slots ) ); void * _ws_sub_vote = FD_SCRATCH_ALLOC_APPEND( l, alignof(ulong), http_params.max_ws_connection_cnt*sizeof(ulong) ); + void * _ws_sub_slot = FD_SCRATCH_ALLOC_APPEND( l, alignof(ulong), http_params.max_ws_connection_cnt*sizeof(ulong) ); fd_alloc_t * alloc = fd_alloc_join( fd_alloc_new( _alloc, 1UL ), 1UL ); FD_TEST( alloc ); @@ -2276,6 +2383,8 @@ unprivileged_init( fd_topo_t const * topo, ctx->delay_startup = tile->rpc.delay_startup; ctx->ws_subscribers_vote = _ws_sub_vote; ctx->ws_subscribers_vote_cnt = 0UL; + ctx->ws_subscribers_slot = _ws_sub_slot; + ctx->ws_subscribers_slot_cnt = 0UL; ctx->keyswitch = fd_keyswitch_join( fd_topo_obj_laddr( topo, tile->id_keyswitch_obj_id ) ); FD_TEST( ctx->keyswitch ); diff --git a/src/discof/rpc/test_rpc_tile.c b/src/discof/rpc/test_rpc_tile.c index 4c17b3975f7..341806d27de 100644 --- a/src/discof/rpc/test_rpc_tile.c +++ b/src/discof/rpc/test_rpc_tile.c @@ -283,12 +283,68 @@ main( int argc, test_websocket_disabled( ctx ); + expect_ws_rpc_response( ctx, 0UL, + "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"slotSubscribe\"}", + "{\"jsonrpc\":\"2.0\",\"result\":0,\"id\":1}" + ); + FD_TEST( ctx->ws_subscribers_slot_cnt==1UL ); + FD_TEST( ctx->ws_subscribers_slot[ 0 ]==0UL ); + metrics_write( ctx ); + FD_TEST( FD_MGAUGE_GET( RPC, WEBSOCKET_SUBSCRIPTION_ACTIVE_SLOT )==1UL ); + FD_TEST( FD_MGAUGE_GET( RPC, WEBSOCKET_SUBSCRIPTION_ACTIVE_VOTE )==0UL ); + expect_ws_rpc_response( ctx, 0UL, + "{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"slotSubscribe\"}", + "{\"jsonrpc\":\"2.0\",\"result\":0,\"id\":2}" + ); + FD_TEST( ctx->ws_subscribers_slot_cnt==1UL ); + FD_TEST( ctx->ws_subscribers_slot[ 0 ]==0UL ); + { + fd_replay_slot_completed_t slot_completed = { + .slot = 123UL, + .root_slot = 120UL, + .parent_slot = 122UL, + }; + + struct fd_http_server_ws_connection * conn = &ctx->http->ws_conns[ 0 ]; + ulong prev_send_frame_cnt = conn->send_frame_cnt; + ctx->http->pollfds[ ctx->http->max_conns ].fd = 0; + fd_rpc_publish_slot_event( ctx, &slot_completed ); + FD_TEST( conn->send_frame_cnt==prev_send_frame_cnt+1UL ); + + ulong frame_idx = (conn->send_frame_idx+conn->send_frame_cnt-1UL) % ctx->http->max_ws_send_frame_cnt; + fd_http_server_ws_frame_t const * frame = &conn->send_frames[ frame_idx ]; + FD_TEST( !frame->compressed ); + char const expected[] = "{\"jsonrpc\":\"2.0\",\"method\":\"slotNotification\",\"params\":{\"subscription\":0,\"result\":{\"parent\":122,\"root\":120,\"slot\":123}}}\n"; + char const * got = (char const *)( ctx->http->oring + (frame->off % ctx->http->oring_sz) ); + if( FD_UNLIKELY( frame->len!=strlen( expected ) || memcmp( got, expected, frame->len ) ) ) { + FD_LOG_WARNING(( "Expected slot notification:\n---\n%s---", expected )); + FD_LOG_WARNING(( "Got slot notification:\n---\n%.*s---", (int)frame->len, got )); + FD_LOG_ERR(( "slot notification did not match expected" )); + } + + rpc_ws_close( 0UL, 0, ctx ); + FD_TEST( ctx->ws_subscribers_slot_cnt==0UL ); + } + + expect_ws_rpc_response( ctx, 0UL, + "{\"jsonrpc\":\"2.0\",\"id\":3,\"method\":\"slotSubscribe\"}", + "{\"jsonrpc\":\"2.0\",\"result\":0,\"id\":3}" + ); + expect_ws_rpc_response( ctx, 0UL, + "{\"jsonrpc\":\"2.0\",\"id\":4,\"method\":\"slotUnsubscribe\",\"params\":[0]}", + "{\"jsonrpc\":\"2.0\",\"result\":true,\"id\":4}" + ); + FD_TEST( ctx->ws_subscribers_slot_cnt==0UL ); + expect_ws_rpc_response( ctx, 0UL, "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"voteSubscribe\"}", "{\"jsonrpc\":\"2.0\",\"result\":0,\"id\":1}" ); FD_TEST( ctx->ws_subscribers_vote_cnt==1UL ); FD_TEST( ctx->ws_subscribers_vote[ 0 ]==0UL ); + metrics_write( ctx ); + FD_TEST( FD_MGAUGE_GET( RPC, WEBSOCKET_SUBSCRIPTION_ACTIVE_SLOT )==0UL ); + FD_TEST( FD_MGAUGE_GET( RPC, WEBSOCKET_SUBSCRIPTION_ACTIVE_VOTE )==1UL ); expect_ws_rpc_response( ctx, 0UL, "{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"voteSubscribe\"}", "{\"jsonrpc\":\"2.0\",\"result\":0,\"id\":2}" From 5eefd79adc44c47618cb76a66ad8a87b09ad1f3a Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Sun, 14 Jun 2026 15:06:47 +0000 Subject: [PATCH 26/61] rpc: fix double memcpy on WebSocket send --- src/discof/rpc/fd_rpc_tile.c | 11 +++++++++-- src/discof/rpc/test_rpc_tile.c | 3 +++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/discof/rpc/fd_rpc_tile.c b/src/discof/rpc/fd_rpc_tile.c index dc0a512c2a6..2e6d7dcb894 100644 --- a/src/discof/rpc/fd_rpc_tile.c +++ b/src/discof/rpc/fd_rpc_tile.c @@ -2295,8 +2295,15 @@ rpc_ws_message( ulong ws_conn_id, } if( FD_LIKELY( response._body_len ) ) { - fd_http_server_memcpy( ctx->http, ctx->http->oring+(response._body_off%ctx->http->oring_sz), response._body_len ); - if( FD_UNLIKELY( fd_http_server_ws_send( ctx->http, ws_conn_id ) ) ) + ulong response_body_end = response._body_off + response._body_len; + + ctx->http->stage_off = response._body_off; + ctx->http->stage_len = response._body_len; + ctx->http->stage_comp_len = 0UL; + + int err = fd_http_server_ws_send( ctx->http, ws_conn_id ); + if( FD_UNLIKELY( ctx->http->stage_offhttp->stage_off = response_body_end; + if( FD_UNLIKELY( err ) ) fd_http_server_ws_close( ctx->http, ws_conn_id, FD_HTTP_SERVER_CONNECTION_CLOSE_TOO_SLOW ); } } diff --git a/src/discof/rpc/test_rpc_tile.c b/src/discof/rpc/test_rpc_tile.c index 341806d27de..c52098b9fa8 100644 --- a/src/discof/rpc/test_rpc_tile.c +++ b/src/discof/rpc/test_rpc_tile.c @@ -120,6 +120,7 @@ expect_ws_rpc_response( fd_rpc_tile_t * ctx, char const * rpc_res ) { struct fd_http_server_ws_connection * conn = &ctx->http->ws_conns[ ws_conn_id ]; ulong prev_send_frame_cnt = conn->send_frame_cnt; + ulong prev_stage_off = ctx->http->stage_off; ctx->http->pollfds[ ctx->http->max_conns+ws_conn_id ].fd = 0; rpc_ws_message( ws_conn_id, (uchar const *)rpc_req, strlen( rpc_req ), ctx ); @@ -129,6 +130,8 @@ expect_ws_rpc_response( fd_rpc_tile_t * ctx, ulong frame_idx = (conn->send_frame_idx+conn->send_frame_cnt-1UL) % ctx->http->max_ws_send_frame_cnt; fd_http_server_ws_frame_t const * frame = &conn->send_frames[ frame_idx ]; FD_TEST( !frame->compressed ); + FD_TEST( frame->off==prev_stage_off ); + FD_TEST( ctx->http->stage_off==prev_stage_off+frame->len ); uchar const * got_json = ctx->http->oring + (frame->off % ctx->http->oring_sz); ulong got_json_sz = frame->len; From 8000ce70fefb4aa123a7ab7c0267758ca6dcd2f9 Mon Sep 17 00:00:00 2001 From: Michael McGee Date: Sun, 14 Jun 2026 19:06:12 +0000 Subject: [PATCH 27/61] events: generate bounds checks --- src/disco/events/gen_events.py | 14 ++++++++++++++ src/disco/events/generated/fd_event_gen.c | 3 +++ 2 files changed, 17 insertions(+) diff --git a/src/disco/events/gen_events.py b/src/disco/events/gen_events.py index a5cd473e3ba..c9154bc8825 100644 --- a/src/disco/events/gen_events.py +++ b/src/disco/events/gen_events.py @@ -502,6 +502,19 @@ def generate_c_source(schemas: List[Schema]) -> str: " fd_pb_push_uint64( encoder, 2U, event_id );", " fd_pb_push_uint64( encoder, 3U, (ulong)timestamp_nanos );", "", + ] + # Bound the variable-length fields against the generated struct + # capacity before any encoder loop dereferences them, so a caller that + # sets *_len / *_cnt above capacity is caught rather than reading OOB. + bound_checks = [] + for name, f in s.fields.items(): + if f.chtype in (ClickHouseType.Bytes, ClickHouseType.String): + bound_checks.append(f" FD_TEST( msg->{name}_len<={f.max_len}UL );") + elif f.chtype == ClickHouseType.Array: + bound_checks.append(f" FD_TEST( msg->{name}_cnt<={f.max_len}UL );") + if bound_checks: + lines += bound_checks + [""] + lines += [ " fd_pb_submsg_open( encoder, 4U ); /* Event */", f" fd_pb_submsg_open( encoder, {s.id}U ); /* {to_pascal_case(s.name)} */", ] @@ -553,6 +566,7 @@ def main() -> None: print(f"Protobuf generated successfully from {len(schemas)} schemas") gen_dir = Path(__file__).parent / "generated" + gen_dir.mkdir(exist_ok=True) (gen_dir / "fd_event_gen.h").write_text(generate_c_header(schemas)) (gen_dir / "fd_event_gen.c").write_text(generate_c_source(schemas)) eligible = [s.name for s in schemas if schema_is_supported(s)] diff --git a/src/disco/events/generated/fd_event_gen.c b/src/disco/events/generated/fd_event_gen.c index b2e3a4a939f..e55cc77d09a 100644 --- a/src/disco/events/generated/fd_event_gen.c +++ b/src/disco/events/generated/fd_event_gen.c @@ -20,6 +20,9 @@ fd_event_signed_vote_serialize( fd_circq_t * circq, fd_pb_push_uint64( encoder, 2U, event_id ); fd_pb_push_uint64( encoder, 3U, (ulong)timestamp_nanos ); + FD_TEST( msg->signed_txn_len<=1232UL ); + FD_TEST( msg->tower_cnt<=31UL ); + fd_pb_submsg_open( encoder, 4U ); /* Event */ fd_pb_submsg_open( encoder, 3U ); /* SignedVote */ if( msg->signed_txn_len ) fd_pb_push_bytes ( encoder, 1U, msg->signed_txn, msg->signed_txn_len ); From d4f869a97a135e49d3a306263a91b71c50af84f7 Mon Sep 17 00:00:00 2001 From: Michael McGee Date: Sun, 14 Jun 2026 19:31:21 +0000 Subject: [PATCH 28/61] events: wire event reporting topology automatically --- src/app/firedancer/config/default.toml | 2 +- src/app/firedancer/topology.c | 39 ++++- src/disco/events/Local.mk | 4 +- src/disco/events/fd_event_report.c | 33 ++++ src/disco/events/fd_event_report.h | 80 ++++++++++ src/disco/events/fd_event_tile.c | 182 ++++++---------------- src/disco/events/gen_events.py | 76 ++++++++- src/disco/events/generated/fd_event_gen.c | 23 ++- src/disco/events/generated/fd_event_gen.h | 24 +++ src/disco/events/schema/event.proto | 6 +- src/disco/topo/fd_topo.h | 6 + src/disco/topo/fd_topo_run.c | 2 + src/disco/topo/fd_topob.c | 1 + src/discof/txsend/fd_txsend_tile.c | 58 +++++++ 14 files changed, 391 insertions(+), 145 deletions(-) create mode 100644 src/disco/events/fd_event_report.c create mode 100644 src/disco/events/fd_event_report.h diff --git a/src/app/firedancer/config/default.toml b/src/app/firedancer/config/default.toml index 20ad3911c12..77d362a9e4e 100644 --- a/src/app/firedancer/config/default.toml +++ b/src/app/firedancer/config/default.toml @@ -1571,7 +1571,7 @@ telemetry = true # If no URL is provided, event reporting is disabled, although # it is suggested to leave the default URL in place and set # `telemetry` to false to disable event reporting. - url = "http://events-in.firedancer.io" + url = "https://events-in.firedancer.io" # The gui tile receives data from the validator and serves an HTTP # endpoint to clients to view it. diff --git a/src/app/firedancer/topology.c b/src/app/firedancer/topology.c index c62ac76e8bf..797436d2c0a 100644 --- a/src/app/firedancer/topology.c +++ b/src/app/firedancer/topology.c @@ -33,6 +33,42 @@ #include extern fd_topo_obj_callbacks_t * CALLBACKS[]; +extern fd_topo_run_tile_t * TILES[]; + +static ulong +tile_max_event_sz( char const * name ) { + for( fd_topo_run_tile_t ** t=TILES; *t; t++ ) { + if( FD_UNLIKELY( !strcmp( (*t)->name, name ) ) ) return (*t)->max_event_sz; + } + return 0UL; +} + +static void +wire_event_links( fd_topo_t * topo ) { + fd_topob_wksp( topo, "event_in" ); + + ulong tile_cnt = topo->tile_cnt; + for( ulong i=0UL; itiles[ i ]; + if( FD_UNLIKELY( !strcmp( tile->name, "event" ) ) ) continue; + + ulong max_sz = tile_max_event_sz( tile->name ); + if( FD_LIKELY( !max_sz ) ) continue; + + char link_name[ sizeof(((fd_topo_link_t *)0)->name) ]; + FD_TEST( fd_cstr_printf_check( link_name, sizeof(link_name), NULL, "%s_event", tile->name ) ); + + fd_topo_link_t * link = fd_topob_link( topo, link_name, "event_in", 128UL, max_sz, 1UL ); + link->permit_no_producers = 1; /* written outside fd_stem; topo sees no producer */ + + tile->event_link_id = link->id; + + fd_topob_tile_uses( topo, tile, &topo->objs[ link->mcache_obj_id ], FD_SHMEM_JOIN_MODE_READ_WRITE ); + fd_topob_tile_uses( topo, tile, &topo->objs[ link->dcache_obj_id ], FD_SHMEM_JOIN_MODE_READ_WRITE ); + + fd_topob_tile_in( topo, "event", 0UL, "metric_in", link_name, link->kind_id, FD_TOPOB_UNRELIABLE, FD_TOPOB_POLLED ); + } +} static void parse_ip_port( const char * name, const char * ip_port, fd_topo_ip_port_t *parsed_ip_port) { @@ -829,7 +865,6 @@ fd_topo_initialize( config_t * config ) { fd_topob_tile( topo, "event", "event", "metric_in", tile_to_cpu[ topo->tile_cnt ], 0, 1, 0 ); fd_topob_tile_in( topo, "event", 0UL, "metric_in", "genesi_out", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); fd_topob_tile_in( topo, "event", 0UL, "metric_in", "ipecho_out", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); - fd_topob_tile_in( topo, "event", 0UL, "metric_in", "txsend_out", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); if( FD_UNLIKELY( config->development.event.report_shreds ) ) { /* TODO: This needs to be reliable, else we could miss shreds that @@ -846,6 +881,8 @@ fd_topo_initialize( config_t * config ) { fd_topob_tile_out( topo, "event", 0UL, "event_sign", 0UL ); fd_topob_tile_in( topo, "event", 0UL, "metric_in", "sign_event", 0UL, FD_TOPOB_UNRELIABLE, FD_TOPOB_UNPOLLED ); fd_topob_tile_out( topo, "sign", 0UL, "sign_event", 0UL ); + + wire_event_links( topo ); } if( FD_UNLIKELY( config->tiles.bundle.enabled ) ) { diff --git a/src/disco/events/Local.mk b/src/disco/events/Local.mk index ee65af11c97..10ec87a786c 100644 --- a/src/disco/events/Local.mk +++ b/src/disco/events/Local.mk @@ -1,7 +1,7 @@ ifdef FD_HAS_HOSTED -$(call add-hdrs,fd_circq.h) +$(call add-hdrs,fd_circq.h fd_event_report.h) $(call add-hdrs,generated/fd_event_gen.h) -$(call add-objs,fd_circq fd_event_client,fd_disco) +$(call add-objs,fd_circq fd_event_client fd_event_report,fd_disco) $(call add-objs,generated/fd_event_gen,fd_disco) $(call add-objs,fd_event_tile,fd_disco) diff --git a/src/disco/events/fd_event_report.c b/src/disco/events/fd_event_report.c new file mode 100644 index 00000000000..c02f360b418 --- /dev/null +++ b/src/disco/events/fd_event_report.c @@ -0,0 +1,33 @@ +#include "fd_event_report.h" + +/* Thread-local reporter state. fd_event_tl points at fd_event_tl_storage + for tiles that have an event link, else stays NULL. */ + +FD_TL fd_event_reporter_t * fd_event_tl = NULL; + +static FD_TL fd_event_reporter_t fd_event_tl_storage[1]; + +void +fd_event_register( fd_topo_t const * topo, + fd_topo_tile_t const * tile ) { + fd_event_tl = NULL; + + if( FD_LIKELY( tile->event_link_id==ULONG_MAX ) ) return; /* no event link */ + + fd_topo_link_t const * link = &topo->links[ tile->event_link_id ]; + FD_TEST( link->mcache ); + FD_TEST( link->dcache ); + + fd_event_reporter_t * r = fd_event_tl_storage; + r->mcache = link->mcache; + r->depth = fd_mcache_depth( link->mcache ); + r->seq = 0UL; + r->mem = fd_wksp_containing( link->dcache ); + FD_TEST( r->mem ); + r->chunk0 = fd_dcache_compact_chunk0( r->mem, link->dcache ); + r->wmark = fd_dcache_compact_wmark ( r->mem, link->dcache, link->mtu ); + r->chunk = r->chunk0; + r->mtu = link->mtu; + + fd_event_tl = r; +} diff --git a/src/disco/events/fd_event_report.h b/src/disco/events/fd_event_report.h new file mode 100644 index 00000000000..f6fe5a2cc92 --- /dev/null +++ b/src/disco/events/fd_event_report.h @@ -0,0 +1,80 @@ +#ifndef HEADER_fd_src_disco_events_fd_event_report_h +#define HEADER_fd_src_disco_events_fd_event_report_h + +/* fd_event_report.h provides a thread-local, fire-and-forget path for a + tile to report a telemetry event to the event tile, mirroring how the + metrics thread-local (fd_metrics_tl / FD_MCNT_*) works. + + A tile opts in by setting fd_topo_run_tile_t.max_event_sz; the topology + then auto-wires a dedicated unreliable link from the tile to the event + tile (see topology construction). At tile boot, fd_event_register() + sets up the thread-local reporter from that link. Generated code emits + one fd_event_report_( msg ) macro per event schema (see + generated/fd_event_gen.h) which forwards to fd_event_report_(). + + The link is written directly via fd_mcache_publish (outside fd_stem); it + is unreliable, so events are dropped if the event tile falls behind. + When a tile has no event link (telemetry off / max_event_sz==0), + fd_event_tl is NULL and reporting is a no-op. */ + +#include "../topo/fd_topo.h" +#include "../../tango/mcache/fd_mcache.h" +#include "../../tango/dcache/fd_dcache.h" + +struct fd_event_reporter { + fd_frag_meta_t * mcache; /* mcache of the event link (joined) */ + ulong depth; /* mcache depth */ + ulong seq; /* next sequence number to publish */ + + fd_wksp_t * mem; /* workspace containing the dcache (chunk base) */ + ulong chunk; /* current write chunk */ + ulong chunk0; /* first chunk */ + ulong wmark; /* wrap watermark */ + ulong mtu; /* link mtu (== max_event_sz) */ +}; + +typedef struct fd_event_reporter fd_event_reporter_t; + +/* The thread-local reporter for the currently running tile, or NULL if the + tile has no event link. */ + +extern FD_TL fd_event_reporter_t * fd_event_tl; + +FD_PROTOTYPES_BEGIN + +/* fd_event_register sets up fd_event_tl for the calling tile. If the tile + has an event link (tile->event_link_id != ULONG_MAX) it joins the link's + mcache/dcache; otherwise fd_event_tl is left NULL and reporting is a + no-op. Must be called once, after the tile's tango objects are joined + (i.e. after fd_topo_fill_tile), before the run loop. */ + +void +fd_event_register( fd_topo_t const * topo, + fd_topo_tile_t const * tile ); + +/* fd_event_report_ publishes a single event of sz bytes (the serialized + fd_event__t struct) to the event link. type is the event schema + id, carried in the frag sig so the event tile can dispatch. No-op when + fd_event_tl is NULL. The generated fd_event_report_() macros call + this with the right type and sizeof. */ + +static inline void +fd_event_report_( ulong type, + void const * event, + ulong sz ) { + fd_event_reporter_t * r = fd_event_tl; + if( FD_UNLIKELY( !r ) ) return; /* no event link / telemetry off */ + + FD_TEST( sz<=r->mtu ); + + ulong tspub = fd_frag_meta_ts_comp( fd_tickcount() ); + + fd_memcpy( fd_chunk_to_laddr( r->mem, r->chunk ), event, sz ); + fd_mcache_publish( r->mcache, r->depth, r->seq, type, r->chunk, sz, 0UL, 0UL, tspub ); + r->seq = fd_seq_inc( r->seq, 1UL ); + r->chunk = fd_dcache_compact_next( r->chunk, sz, r->chunk0, r->wmark ); +} + +FD_PROTOTYPES_END + +#endif /* HEADER_fd_src_disco_events_fd_event_report_h */ diff --git a/src/disco/events/fd_event_tile.c b/src/disco/events/fd_event_tile.c index b30893f177f..e19979b1f81 100644 --- a/src/disco/events/fd_event_tile.c +++ b/src/disco/events/fd_event_tile.c @@ -11,11 +11,8 @@ #include "../keyguard/fd_keyload.h" #include "../keyguard/fd_keyswitch.h" #include "../topo/fd_topo.h" -#include "../../choreo/tower/fd_tower_serdes.h" -#include "../../flamenco/runtime/fd_system_ids.h" #include "../../waltz/resolv/fd_netdb.h" #include "../../waltz/http/fd_url.h" -#include "../../util/cstr/fd_cstr.h" #include "../../ballet/lthash/fd_lthash.h" #include "../../ballet/pb/fd_pb_encode.h" #include "../../tango/tempo/fd_tempo.h" @@ -45,7 +42,7 @@ #define IN_KIND_SIGN (2) #define IN_KIND_GENESI (3) #define IN_KIND_IPECHO (4) -#define IN_KIND_TXSEND (5) +#define IN_KIND_EVENT (5) #define FD_EVENT_TYPE_TXN 1 #define FD_EVENT_TYPE_SHRED 2 @@ -86,8 +83,9 @@ struct fd_event_tile { ulong shred_buf_sz; uchar shred_buf[ FD_NET_MTU ]; - uchar txn_buf[ FD_TPU_RAW_MTU ]; /* txsend_out mtu */ - ulong txn_buf_sz; + ulong event_type; + ulong event_sz; + uchar event_buf[ FD_EVENT_GEN_STRUCT_MAX ]; uchar identity_pubkey[ 32UL ]; @@ -177,95 +175,6 @@ before_credit( fd_event_tile_t * ctx, fd_event_client_poll( ctx->client, charge_busy ); } -/* on_txsend_frag translates a txsend_out frag (a signed vote) into a - signed_vote event. This involves deserializing the generated vote to - recover metadata. Keep in sync with fd_tower_to_vote_txn. */ - -static int -on_txsend_frag( fd_event_tile_t * ctx, - ulong tsorig_comp ) { - - /* txsend_out holds vote transactions */ - - fd_txn_m_t const * txnm = fd_type_pun_const( ctx->txn_buf ); - uchar const * payload = fd_txn_m_payload_const( txnm ); - ulong payload_sz = txnm->payload_sz; - if( FD_UNLIKELY( payload_sz + ( (ulong)payload - (ulong)txnm ) > ctx->txn_buf_sz ) ) { - FD_LOG_CRIT(( "txsend_out frag corrupt" )); - } - - union { - uchar __attribute__((aligned(alignof(fd_txn_t)))) mem[ FD_TXN_MAX_SZ ]; - fd_txn_t t; - } txn; - if( FD_UNLIKELY( !fd_txn_parse( payload, payload_sz, txn.mem, NULL ) ) ) return 0; - fd_txn_t const * t = &txn.t; - - /* validate vote transaction 'shape' */ - - if( FD_UNLIKELY( t->instr_cnt!=1UL ) ) return 0; - if( FD_UNLIKELY( t->acct_addr_cnt<3UL || t->acct_addr_cnt>4UL ) ) return 0; - fd_txn_instr_t const * instr = &t->instr[ 0 ]; - fd_acct_addr_t const * addrs = fd_txn_get_acct_addrs( t, payload ); - if( FD_UNLIKELY( 0!=memcmp( addrs[ instr->program_id ].b, fd_solana_vote_program_id.uc, sizeof(fd_pubkey_t) ) ) ) return 0; - if( FD_UNLIKELY( instr->acct_cnt!=2UL ) ) return 0; - uchar const * instr_addrs = fd_txn_get_instr_accts( instr, payload ); - fd_ed25519_sig_t const * sigs = fd_txn_get_signatures( t, payload ); - uchar const * instr_data = payload + instr->data_off; - ulong instr_data_sz = instr->data_sz; - if( FD_UNLIKELY( instr_data_sz < sizeof(uint) ) ) return 0; - uint instr_kind = FD_LOAD( uint, instr_data ); - if( FD_UNLIKELY( instr_kind!=FD_VOTE_IX_KIND_TOWER_SYNC ) ) return 0; - instr_data += 4; instr_data_sz -= 4; - - /* deserialize vote instruction data */ - - fd_compact_tower_sync_serde_t sync[1]; - if( FD_UNLIKELY( 0!=fd_compact_tower_sync_de( sync, instr_data, instr_data_sz ) ) ) return 0; - if( FD_UNLIKELY( sync->lockouts_cnt==0 ) ) return 0; - if( FD_UNLIKELY( sync->lockouts_cnt>32 ) ) return 0; - - fd_acct_addr_t const * fee_payer = &addrs[ 0 ]; - fd_acct_addr_t const * vote_acct_addr = &addrs[ instr_addrs[ 0 ] ]; - fd_acct_addr_t const * vote_auth_addr = &addrs[ instr_addrs[ 1 ] ]; - uchar const * rbh = fd_txn_get_recent_blockhash( t, payload ); - - /* Deriving the vote slot is tricky */ - ulong root_slot = fd_ulong_if( sync->root==ULONG_MAX, 0, sync->root ); - ulong vote_slot = root_slot; - for( ulong i=0UL; ilockouts_cnt; i++ ) { - if( FD_UNLIKELY( __builtin_uaddl_overflow( vote_slot, sync->lockouts[ i ].offset, &vote_slot ) ) ) return 0; - } - - fd_event_signed_vote_t ev = {0}; - FD_TEST( payload_sz<=sizeof(ev.signed_txn) ); - fd_memcpy( ev.signed_txn, payload, payload_sz ); - ev.signed_txn_len = payload_sz; - fd_memcpy( ev.vote_account, vote_acct_addr, sizeof(fd_acct_addr_t) ); - fd_memcpy( ev.vote_authority, vote_auth_addr, sizeof(fd_acct_addr_t) ); - fd_memcpy( ev.fee_payer, fee_payer, sizeof(fd_acct_addr_t) ); - fd_memcpy( ev.signature, sigs[ 0 ], sizeof(fd_ed25519_sig_t) ); - ev.vote_slot = vote_slot; - fd_memcpy( ev.vote_bank_hash, sync->hash.uc, sizeof(fd_hash_t) ); - fd_memcpy( ev.vote_block_id, sync->block_id.uc, sizeof(fd_hash_t) ); - fd_memcpy( ev.txn_blockhash, rbh, sizeof(fd_hash_t) ); - - ulong slot = root_slot; - FD_TEST( sync->lockouts_cnt<=sizeof(ev.tower)/sizeof(ev.tower[0]) ); - for( ulong i=0UL; ilockouts_cnt; i++ ) { - slot += sync->lockouts[ i ].offset; - ev.tower[ i ].slot = slot; - ev.tower[ i ].confirmation_count = (uchar)sync->lockouts[ i ].confirmation_count; - } - ev.tower_cnt = sync->lockouts_cnt; - - long timestamp_nanos = fd_clock_tile_tickcount_to_wallclock( ctx->clock, - fd_clock_tile_tickcount_decomp( ctx->clock, tsorig_comp ) ); - fd_event_signed_vote_serialize( ctx->circq, ctx->client, timestamp_nanos, &ev ); - - return 1; -} - static void during_frag( fd_event_tile_t * ctx, ulong in_idx, @@ -274,7 +183,7 @@ during_frag( fd_event_tile_t * ctx, ulong chunk, ulong sz, ulong ctl ) { - (void)seq; (void)sig; (void)ctl; + (void)seq; (void)ctl; fd_event_tile_in_t const * in = &ctx->in[ in_idx ]; switch( ctx->in_kind[ in_idx ] ) { @@ -296,14 +205,12 @@ during_frag( fd_event_tile_t * ctx, FD_LOG_CRIT(( "chunk %lu %lu corrupt, not in range [%lu,%lu]", chunk, sz, in->chunk0, in->wmark )); ctx->chunk = chunk; break; - case IN_KIND_TXSEND: { + case IN_KIND_EVENT: { if( FD_UNLIKELY( chunkchunk0 || chunk>in->wmark || sz>in->mtu ) ) FD_LOG_CRIT(( "chunk %lu corrupt, not in range [%lu,%lu]", chunk, in->chunk0, in->wmark )); - if( FD_UNLIKELY( sz > sizeof(ctx->txn_buf ) ) ) - FD_LOG_CRIT(( "txsend_out frag sz %lu exceeds buf sz %lu", sz, sizeof(ctx->txn_buf) )); - uchar const * buf = fd_chunk_to_laddr_const( in->mem, chunk ); - fd_memcpy( ctx->txn_buf, buf, sz ); - ctx->txn_buf_sz = sz; + fd_memcpy( ctx->event_buf, fd_chunk_to_laddr_const( in->mem, chunk ), sz ); + ctx->event_type = sig; + ctx->event_sz = sz; break; } default: @@ -320,7 +227,7 @@ after_frag( fd_event_tile_t * ctx, ulong tsorig, ulong tspub, fd_stem_context_t * stem ) { - (void)seq; (void)sz; (void)stem; + (void)sz; (void)tsorig; (void)stem; switch( ctx->in_kind[ in_idx ] ) { case IN_KIND_SHRED: { @@ -434,9 +341,11 @@ after_frag( fd_event_tile_t * ctx, FD_TEST( sig && sig<=USHORT_MAX ); fd_event_client_init_shred_version( ctx->client, (ushort)sig ); break; - case IN_KIND_TXSEND: - on_txsend_frag( ctx, tsorig ); + case IN_KIND_EVENT: { + long timestamp_nanos = fd_clock_tile_tickcount_to_wallclock( ctx->clock, fd_clock_tile_tickcount_decomp( ctx->clock, tspub ) ); + fd_event_serialize_by_type( ctx->event_type, ctx->circq, ctx->client, timestamp_nanos, seq, ctx->event_buf, ctx->event_sz ); break; + } default: FD_LOG_ERR(( "unexpected in_kind %d", ctx->in_kind[ in_idx ] )); } @@ -529,6 +438,15 @@ privileged_init( fd_topo_t const * topo, # endif } +static int +link_is_event_report( fd_topo_t const * topo, + ulong link_id ) { + for( ulong i=0UL; itile_cnt; i++ ) { + if( FD_UNLIKELY( topo->tiles[ i ].event_link_id==link_id ) ) return 1; + } + return 0; +} + static void unprivileged_init( fd_topo_t const * topo, fd_topo_tile_t const * tile ) { @@ -569,26 +487,12 @@ unprivileged_init( fd_topo_t const * topo, ssl_ctx_ptr = ctx->ssl_ctx; # endif - /* Rewrite the URL to hardcode port 7878 regardless of the port in - the configured URL. */ - fd_url_t _url[ 1UL ]; - ushort _port; - _Bool _is_ssl = 0; - if( FD_UNLIKELY( fd_url_parse_endpoint( _url, tile->event.url, strlen( tile->event.url ), &_port, &_is_ssl, "[tiles.event.url]" ) ) ) { - FD_LOG_ERR(( "Could not parse [tiles.event.url]" )); - } - char url_buf[ 512UL ]; - FD_TEST( fd_cstr_printf_check( url_buf, sizeof(url_buf), NULL, "%.*s%.*s:7878%.*s", - (int)_url->scheme_len, _url->scheme, - (int)_url->host_len, _url->host, - (int)_url->tail_len, _url->tail ) ); - ctx->client = fd_event_client_join( fd_event_client_new( _event_client, ctx->keyguard_client, ctx->rng, ctx->circq, 2*(1UL<<20UL) /* 2 MiB */, - url_buf, + tile->event.url, ctx->identity_pubkey, fd_version_cstr, fd_commit_ref_cstr, @@ -606,33 +510,41 @@ unprivileged_init( fd_topo_t const * topo, ctx->idle_cnt = 0UL; - ctx->in_cnt = tile->in_cnt; + FD_TEST( tile->in_cnt<=sizeof(ctx->in_kind)/sizeof(ctx->in_kind[0]) ); + ulong polled_in_idx = 0UL; for( ulong i=0UL; iin_cnt; i++ ) { + if( FD_UNLIKELY( !tile->in_link_poll[ i ] ) ) continue; + fd_topo_link_t const * link = &topo->links[ tile->in_link_id[ i ] ]; fd_topo_wksp_t const * link_wksp = &topo->workspaces[ topo->objs[ link->dcache_obj_id ].wksp_id ]; if( FD_LIKELY( !strcmp( link->name, "net_shred" ) ) ) { - fd_net_rx_bounds_init( &ctx->in[ i ].net_rx, link->dcache ); - ctx->in_kind[ i ] = IN_KIND_SHRED; + fd_net_rx_bounds_init( &ctx->in[ polled_in_idx ].net_rx, link->dcache ); + ctx->in_kind[ polled_in_idx ] = IN_KIND_SHRED; + polled_in_idx++; continue; /* only net_rx needs to be set in this case. */ } - else if( FD_LIKELY( !strcmp( link->name, "dedup_resolv" ) ) ) ctx->in_kind[ i ] = IN_KIND_DEDUP; - else if( FD_LIKELY( !strcmp( link->name, "sign_event" ) ) ) ctx->in_kind[ i ] = IN_KIND_SIGN; - else if( FD_LIKELY( !strcmp( link->name, "genesi_out" ) ) ) ctx->in_kind[ i ] = IN_KIND_GENESI; - else if( FD_LIKELY( !strcmp( link->name, "ipecho_out" ) ) ) ctx->in_kind[ i ] = IN_KIND_IPECHO; - else if( FD_LIKELY( !strcmp( link->name, "txsend_out" ) ) ) ctx->in_kind[ i ] = IN_KIND_TXSEND; + else if( FD_LIKELY( !strcmp( link->name, "dedup_resolv" ) ) ) ctx->in_kind[ polled_in_idx ] = IN_KIND_DEDUP; + else if( FD_LIKELY( !strcmp( link->name, "genesi_out" ) ) ) ctx->in_kind[ polled_in_idx ] = IN_KIND_GENESI; + else if( FD_LIKELY( !strcmp( link->name, "ipecho_out" ) ) ) ctx->in_kind[ polled_in_idx ] = IN_KIND_IPECHO; + else if( FD_LIKELY( link_is_event_report( topo, link->id ) ) ) { + ctx->in_kind[ polled_in_idx ] = IN_KIND_EVENT; + FD_TEST( link->mtu<=sizeof(ctx->event_buf) ); + } else FD_LOG_ERR(( "event tile has unexpected input link %lu %s", i, link->name )); - ctx->in[ i ].mem = link_wksp->wksp; - ctx->in[ i ].mtu = link->mtu; - if( FD_UNLIKELY( ctx->in[ i ].mtu ) ) { - ctx->in[ i ].chunk0 = fd_dcache_compact_chunk0( ctx->in[ i ].mem, link->dcache ); - ctx->in[ i ].wmark = fd_dcache_compact_wmark ( ctx->in[ i ].mem, link->dcache, link->mtu ); + ctx->in[ polled_in_idx ].mem = link_wksp->wksp; + ctx->in[ polled_in_idx ].mtu = link->mtu; + if( FD_UNLIKELY( ctx->in[ polled_in_idx ].mtu ) ) { + ctx->in[ polled_in_idx ].chunk0 = fd_dcache_compact_chunk0( ctx->in[ polled_in_idx ].mem, link->dcache ); + ctx->in[ polled_in_idx ].wmark = fd_dcache_compact_wmark ( ctx->in[ polled_in_idx ].mem, link->dcache, link->mtu ); } else { - ctx->in[ i ].chunk0 = 0UL; - ctx->in[ i ].wmark = 0UL; + ctx->in[ polled_in_idx ].chunk0 = 0UL; + ctx->in[ polled_in_idx ].wmark = 0UL; } + polled_in_idx++; } + ctx->in_cnt = polled_in_idx; fd_clock_tile_init( ctx->clock ); diff --git a/src/disco/events/gen_events.py b/src/disco/events/gen_events.py index c9154bc8825..f305201cae6 100644 --- a/src/disco/events/gen_events.py +++ b/src/disco/events/gen_events.py @@ -329,6 +329,7 @@ def serializer_signature(s: Schema, terminator: str) -> List[str]: ("fd_circq_t *", "circq"), ("fd_event_client_t *", "client"), ("long", "timestamp_nanos"), + ("ulong", "link_seq"), (f"fd_event_{s.name}_t const *", "msg"), ] tw = max(len(t) for t, _ in params) @@ -348,9 +349,12 @@ def generate_c_header(schemas: List[Schema]) -> str: "", '#include "../fd_circq.h"', '#include "../fd_event_client.h"', + '#include "../fd_event_report.h"', "", ] + struct_max_names = [f"sizeof(fd_event_{s.name}_t)" for s in eligible] + # Enum #defines, structs, and per-event buffer sizes. for s in eligible: # Enums for LowCardinality(String) fields. Values match the proto @@ -424,6 +428,18 @@ def generate_c_header(schemas: List[Schema]) -> str: "", ] + # Max sizeof over all generated event structs. + if struct_max_names: + expr = struct_max_names[0] + for n in struct_max_names[1:]: + expr = f"fd_ulong_max( {n}, {expr} )" + lines += [ + "/* Largest generated event struct; a consumer can stage any incoming", + " event in a buffer of this size. */", + f"#define FD_EVENT_GEN_STRUCT_MAX ({expr})", + "", + ] + # Serializer prototypes. lines += ["FD_PROTOTYPES_BEGIN", ""] for s in eligible: @@ -433,6 +449,35 @@ def generate_c_header(schemas: List[Schema]) -> str: " the hand-written fd_pb_* path. */", ] + serializer_signature( s, " );" ) + [""] + # Dispatch by event type id (the frag sig set by fd_event_report_*). + lines += [ + "/* Serialize an event of the given type id (the schema id carried in the", + " report frag's sig) from a fully-formed fd_event__t at ev. */", + "void", + "fd_event_serialize_by_type( ulong type,", + " fd_circq_t * circq,", + " fd_event_client_t * client,", + " long timestamp_nanos,", + " ulong link_seq,", + " void const * ev,", + " ulong ev_sz );", + "", + ] + + # Per-event report helpers: type-safe wrappers over fd_event_report_ that + # ship a fully-formed event struct to the event tile via the thread-local + # reporter. No-op when the calling tile has no event link. + for s in eligible: + lines += [ + f"/* Report a {s.name} event ({to_pascal_case(s.name)}, id {s.id}) to the event tile via", + " the thread-local reporter (no-op when the tile has no event link). */", + "static inline void", + f"fd_event_report_{s.name}( fd_event_{s.name}_t const * msg ) {{", + f" fd_event_report_( {s.id}UL, msg, sizeof(fd_event_{s.name}_t) );", + "}", + "", + ] + lines += ["FD_PROTOTYPES_END", "", "#endif", ""] return "\n".join(lines) @@ -500,7 +545,8 @@ def generate_c_source(schemas: List[Schema]) -> str: " FD_TEST( circq->cursor_push_seq );", " fd_pb_push_uint64( encoder, 1U, circq->cursor_push_seq-1UL );", " fd_pb_push_uint64( encoder, 2U, event_id );", - " fd_pb_push_uint64( encoder, 3U, (ulong)timestamp_nanos );", + " fd_pb_push_uint64( encoder, 3U, link_seq );", + " fd_pb_push_uint64( encoder, 4U, (ulong)timestamp_nanos );", "", ] # Bound the variable-length fields against the generated struct @@ -515,7 +561,7 @@ def generate_c_source(schemas: List[Schema]) -> str: if bound_checks: lines += bound_checks + [""] lines += [ - " fd_pb_submsg_open( encoder, 4U ); /* Event */", + " fd_pb_submsg_open( encoder, 5U ); /* Event */", f" fd_pb_submsg_open( encoder, {s.id}U ); /* {to_pascal_case(s.name)} */", ] # Encode each field. proto3 omits scalar fields at their default @@ -531,6 +577,32 @@ def generate_c_source(schemas: List[Schema]) -> str: "}", "", ] + + # Dispatch by event type id. + lines += [ + "void", + "fd_event_serialize_by_type( ulong type,", + " fd_circq_t * circq,", + " fd_event_client_t * client,", + " long timestamp_nanos,", + " ulong link_seq,", + " void const * ev,", + " ulong ev_sz ) {", + " switch( type ) {", + ] + for s in eligible: + lines += [ + f" case {s.id}UL:", + f" FD_TEST( ev_sz==sizeof(fd_event_{s.name}_t) );", + f" fd_event_{s.name}_serialize( circq, client, timestamp_nanos, link_seq, (fd_event_{s.name}_t const *)ev );", + " break;", + ] + lines += [ + ' default: FD_LOG_ERR(( "unexpected event type %lu", type ));', + " }", + "}", + "", + ] return "\n".join(lines) def check_breaking_changes(schema_dir: Path) -> None: diff --git a/src/disco/events/generated/fd_event_gen.c b/src/disco/events/generated/fd_event_gen.c index e55cc77d09a..1d4c08650c4 100644 --- a/src/disco/events/generated/fd_event_gen.c +++ b/src/disco/events/generated/fd_event_gen.c @@ -6,6 +6,7 @@ void fd_event_signed_vote_serialize( fd_circq_t * circq, fd_event_client_t * client, long timestamp_nanos, + ulong link_seq, fd_event_signed_vote_t const * msg ) { uchar * buffer = fd_circq_push_back( circq, 1UL, FD_EVENT_SIGNED_VOTE_BUF_MAX ); FD_TEST( buffer ); @@ -18,12 +19,13 @@ fd_event_signed_vote_serialize( fd_circq_t * circq, FD_TEST( circq->cursor_push_seq ); fd_pb_push_uint64( encoder, 1U, circq->cursor_push_seq-1UL ); fd_pb_push_uint64( encoder, 2U, event_id ); - fd_pb_push_uint64( encoder, 3U, (ulong)timestamp_nanos ); + fd_pb_push_uint64( encoder, 3U, link_seq ); + fd_pb_push_uint64( encoder, 4U, (ulong)timestamp_nanos ); FD_TEST( msg->signed_txn_len<=1232UL ); FD_TEST( msg->tower_cnt<=31UL ); - fd_pb_submsg_open( encoder, 4U ); /* Event */ + fd_pb_submsg_open( encoder, 5U ); /* Event */ fd_pb_submsg_open( encoder, 3U ); /* SignedVote */ if( msg->signed_txn_len ) fd_pb_push_bytes ( encoder, 1U, msg->signed_txn, msg->signed_txn_len ); fd_pb_push_bytes ( encoder, 2U, msg->vote_account, 32UL ); @@ -44,3 +46,20 @@ fd_event_signed_vote_serialize( fd_circq_t * circq, fd_pb_submsg_close( encoder ); fd_circq_resize_back( circq, fd_pb_encoder_out_sz( encoder ) ); } + +void +fd_event_serialize_by_type( ulong type, + fd_circq_t * circq, + fd_event_client_t * client, + long timestamp_nanos, + ulong link_seq, + void const * ev, + ulong ev_sz ) { + switch( type ) { + case 3UL: + FD_TEST( ev_sz==sizeof(fd_event_signed_vote_t) ); + fd_event_signed_vote_serialize( circq, client, timestamp_nanos, link_seq, (fd_event_signed_vote_t const *)ev ); + break; + default: FD_LOG_ERR(( "unexpected event type %lu", type )); + } +} diff --git a/src/disco/events/generated/fd_event_gen.h b/src/disco/events/generated/fd_event_gen.h index 54a8c83532d..04ad966ca13 100644 --- a/src/disco/events/generated/fd_event_gen.h +++ b/src/disco/events/generated/fd_event_gen.h @@ -4,6 +4,7 @@ #include "../fd_circq.h" #include "../fd_event_client.h" +#include "../fd_event_report.h" /* Slot that was voted on */ struct fd_event_signed_vote_tower { @@ -33,6 +34,10 @@ typedef struct fd_event_signed_vote fd_event_signed_vote_t; submsg + inner submsg + all fields, padded for encoder slack). */ #define FD_EVENT_SIGNED_VOTE_BUF_MAX (2765UL) +/* Largest generated event struct; a consumer can stage any incoming + event in a buffer of this size. */ +#define FD_EVENT_GEN_STRUCT_MAX (sizeof(fd_event_signed_vote_t)) + FD_PROTOTYPES_BEGIN /* Serialize a signed_vote event into the circq, reserving an event id @@ -42,8 +47,27 @@ void fd_event_signed_vote_serialize( fd_circq_t * circq, fd_event_client_t * client, long timestamp_nanos, + ulong link_seq, fd_event_signed_vote_t const * msg ); +/* Serialize an event of the given type id (the schema id carried in the + report frag's sig) from a fully-formed fd_event__t at ev. */ +void +fd_event_serialize_by_type( ulong type, + fd_circq_t * circq, + fd_event_client_t * client, + long timestamp_nanos, + ulong link_seq, + void const * ev, + ulong ev_sz ); + +/* Report a signed_vote event (SignedVote, id 3) to the event tile via + the thread-local reporter (no-op when the tile has no event link). */ +static inline void +fd_event_report_signed_vote( fd_event_signed_vote_t const * msg ) { + fd_event_report_( 3UL, msg, sizeof(fd_event_signed_vote_t) ); +} + FD_PROTOTYPES_END #endif diff --git a/src/disco/events/schema/event.proto b/src/disco/events/schema/event.proto index 7d6e865042c..74b1cbdefb6 100644 --- a/src/disco/events/schema/event.proto +++ b/src/disco/events/schema/event.proto @@ -10,10 +10,12 @@ message StreamEventsRequest { uint64 nonce = 1; // The unique ID of the event from this application, monotonically increasing from zero, may have gaps if events get dropped uint64 event_id = 2; + // The producer's per-link sequence number, monotonically increasing from zero, gaps indicate the producer's link to the event tile overran and dropped events + uint64 link_seq = 3; // The wall clock time when the event was recorded, in nanoseconds since the Unix epoch - uint64 timestamp_nanos = 3; + uint64 timestamp_nanos = 4; // The actual event - Event event = 4; + Event event = 5; } // Acknowledgement of an event received by the server diff --git a/src/disco/topo/fd_topo.h b/src/disco/topo/fd_topo.h index e1fc7faa6fb..127fe9a30a2 100644 --- a/src/disco/topo/fd_topo.h +++ b/src/disco/topo/fd_topo.h @@ -144,6 +144,10 @@ struct fd_topo_tile { ulong out_cnt; /* The number of links that this tile writes to. */ ulong out_link_id[ FD_TOPO_MAX_TILE_OUT_LINKS ]; /* The link_id of each link that this tile writes to, indexed in [0, link_cnt). */ + ulong event_link_id; /* If not ULONG_MAX, the link_id of a dedicated unreliable link to the event tile that this tile reports + telemetry events on via the thread-local fd_event_report_* macros. This link is deliberately NOT part + of out_link_id[] / out_cnt: it is written directly (outside fd_stem) by the thread-local reporter. */ + ulong tile_obj_id; ulong metrics_obj_id; ulong id_keyswitch_obj_id; /* keyswitch object id for identity key updates */ @@ -726,6 +730,8 @@ typedef struct { ulong rlimit_nproc; int for_tpool; + ulong max_event_sz; + ulong (*populate_allowed_seccomp)( fd_topo_t const * topo, fd_topo_tile_t const * tile, ulong out_cnt, struct sock_filter * out ); ulong (*populate_allowed_fds )( fd_topo_t const * topo, fd_topo_tile_t const * tile, ulong out_fds_sz, int * out_fds ); ulong (*scratch_align )( void ); diff --git a/src/disco/topo/fd_topo_run.c b/src/disco/topo/fd_topo_run.c index b5061b07d4f..e4ce4fa8a3f 100644 --- a/src/disco/topo/fd_topo_run.c +++ b/src/disco/topo/fd_topo_run.c @@ -2,6 +2,7 @@ #include "fd_topo.h" #include "../metrics/fd_metrics.h" +#include "../events/fd_event_report.h" #include "../../util/tile/fd_tile_private.h" #include @@ -124,6 +125,7 @@ fd_topo_run_tile( fd_topo_t * topo, FD_TEST( tile->metrics ); fd_metrics_register( tile->metrics ); + fd_event_register( topo, tile ); FD_MGAUGE_SET( TILE, PID, pid ); FD_MGAUGE_SET( TILE, TID, tid ); diff --git a/src/disco/topo/fd_topob.c b/src/disco/topo/fd_topob.c index 39ee5c8cb60..e64ee8edca1 100644 --- a/src/disco/topo/fd_topob.c +++ b/src/disco/topo/fd_topob.c @@ -172,6 +172,7 @@ fd_topob_tile( fd_topo_t * topo, tile->cpu_idx = cpu_idx; tile->in_cnt = 0UL; tile->out_cnt = 0UL; + tile->event_link_id = ULONG_MAX; tile->uses_obj_cnt = 0UL; fd_topo_obj_t * tile_obj = fd_topob_obj( topo, "tile", tile_wksp ); diff --git a/src/discof/txsend/fd_txsend_tile.c b/src/discof/txsend/fd_txsend_tile.c index 80cc9ffe643..a2cc6300edd 100644 --- a/src/discof/txsend/fd_txsend_tile.c +++ b/src/discof/txsend/fd_txsend_tile.c @@ -21,6 +21,10 @@ #include "../../disco/topo/fd_topo.h" #include "../../disco/fd_txn_m.h" #include "../../disco/metrics/fd_metrics.h" +#include "../../disco/events/generated/fd_event_gen.h" +#include "../../disco/events/fd_event_report.h" +#include "../../choreo/tower/fd_tower_serdes.h" +#include "../../flamenco/runtime/fd_system_ids.h" #include "../../disco/keyguard/fd_keyguard.h" #include "../../disco/keyguard/fd_keyload.h" #include "../fd_startup.h" @@ -506,6 +510,57 @@ handle_contact_info_update( fd_txsend_tile_t * ctx, } } +static void +report_signed_vote( uchar const * payload, + fd_txn_t const * txn, + uchar const * signatures, + ulong vote_txn_sz ) { + if( FD_LIKELY( !fd_event_tl ) ) return; + + if( FD_UNLIKELY( txn->instr_cnt!=1UL ) ) return; + if( FD_UNLIKELY( txn->acct_addr_cnt<3UL || txn->acct_addr_cnt>4UL ) ) return; + fd_txn_instr_t const * instr = &txn->instr[ 0 ]; + fd_acct_addr_t const * addrs = fd_txn_get_acct_addrs( txn, payload ); + if( FD_UNLIKELY( 0!=memcmp( addrs[ instr->program_id ].b, fd_solana_vote_program_id.uc, sizeof(fd_pubkey_t) ) ) ) return; + if( FD_UNLIKELY( instr->acct_cnt!=2UL ) ) return; + uchar const * instr_addrs = fd_txn_get_instr_accts( instr, payload ); + uchar const * instr_data = payload + instr->data_off; + ulong instr_data_sz = instr->data_sz; + if( FD_UNLIKELY( instr_data_szlockouts_cnt==0 || sync->lockouts_cnt>31 ) ) return; + + uchar const * rbh = fd_txn_get_recent_blockhash( txn, payload ); + + fd_event_signed_vote_t ev = {0}; + FD_TEST( vote_txn_sz<=sizeof(ev.signed_txn) ); + fd_memcpy( ev.signed_txn, payload, vote_txn_sz ); + ev.signed_txn_len = vote_txn_sz; + fd_memcpy( ev.vote_account, addrs[ instr_addrs[ 0 ] ].b, sizeof(fd_pubkey_t) ); + fd_memcpy( ev.vote_authority, addrs[ instr_addrs[ 1 ] ].b, sizeof(fd_pubkey_t) ); + fd_memcpy( ev.fee_payer, addrs[ 0 ].b, sizeof(fd_pubkey_t) ); + fd_memcpy( ev.signature, signatures, sizeof(fd_ed25519_sig_t) ); + fd_memcpy( ev.vote_bank_hash, sync->hash.uc, sizeof(fd_hash_t) ); + fd_memcpy( ev.vote_block_id, sync->block_id.uc, sizeof(fd_hash_t) ); + fd_memcpy( ev.txn_blockhash, rbh, sizeof(fd_hash_t) ); + + ulong root_slot = fd_ulong_if( sync->root==ULONG_MAX, 0UL, sync->root ); + ulong slot = root_slot; + for( ulong i=0UL; ilockouts_cnt; i++ ) { + slot += sync->lockouts[ i ].offset; + ev.tower[ i ].slot = slot; + ev.tower[ i ].confirmation_count = (uchar)sync->lockouts[ i ].confirmation_count; + } + ev.tower_cnt = sync->lockouts_cnt; + ev.vote_slot = slot; /* top of tower */ + + fd_event_report_signed_vote( &ev ); +} + static void handle_vote_msg( fd_txsend_tile_t * ctx, fd_stem_context_t * stem, @@ -538,6 +593,8 @@ handle_vote_msg( fd_txsend_tile_t * ctx, FD_BASE58_ENCODE_64_BYTES( signatures, vote_sig_b58 ); FD_LOG_INFO(( "vote txn for slot %lu created: %s", slot_done->vote_slot, vote_sig_b58 )); + report_signed_vote( payload, txn, signatures, slot_done->vote_txn_sz ); + for( ulong i=0UL; i<3UL; i++ ) { ulong target_slot = slot_done->vote_slot+1UL + i*FD_EPOCH_SLOTS_PER_ROTATION; fd_pubkey_t const * leader = fd_multi_epoch_leaders_get_leader_for_slot( ctx->mleaders, target_slot ); @@ -815,6 +872,7 @@ populate_allowed_fds( fd_topo_t const * topo FD_PARAM_UNUSED, fd_topo_run_tile_t fd_tile_txsend = { .name = "txsend", + .max_event_sz = sizeof(fd_event_signed_vote_t), .populate_allowed_seccomp = populate_allowed_seccomp, .populate_allowed_fds = populate_allowed_fds, .scratch_align = scratch_align, From 4d84396d4cc112c1bcacf49aba0d8387468ca631 Mon Sep 17 00:00:00 2001 From: mjain-jump <150074777+mjain-jump@users.noreply.github.com> Date: Mon, 15 Jun 2026 10:05:04 -0500 Subject: [PATCH 29/61] feature: clean up warp_timestamp_again (#10234) --- src/flamenco/features/fd_features_generated.c | 2 +- src/flamenco/features/feature_map.json | 2 +- src/flamenco/runtime/sysvar/fd_sysvar_clock.c | 9 +-------- src/flamenco/runtime/test_vat_refresh_vote_accounts.c | 1 - 4 files changed, 3 insertions(+), 11 deletions(-) diff --git a/src/flamenco/features/fd_features_generated.c b/src/flamenco/features/fd_features_generated.c index 0f83db512f9..bcd69db2fb7 100644 --- a/src/flamenco/features/fd_features_generated.c +++ b/src/flamenco/features/fd_features_generated.c @@ -82,7 +82,7 @@ fd_feature_id_t const ids[] = { .id = {"\xec\x81\xa2\x94\x94\x89\xa4\xfa\xeb\xca\x4d\xb5\x9a\x5f\x29\x03\x7b\xbb\x84\x7e\x8a\x53\xfb\x72\xe2\x35\x5d\xce\xa5\xdc\x04\xb2"}, /* GvDsGDkH5gyzwpDhxNixx8vtx1kwYHH13RiNAPw27zXb */ .name = "warp_timestamp_again", - .cleaned_up = 0, + .cleaned_up = 1, .hardcode_for_fuzzing = 1 }, { .index = offsetof(fd_features_t, check_init_vote_data)>>3, diff --git a/src/flamenco/features/feature_map.json b/src/flamenco/features/feature_map.json index d94aa35800b..c805f434529 100644 --- a/src/flamenco/features/feature_map.json +++ b/src/flamenco/features/feature_map.json @@ -10,7 +10,7 @@ {"name":"filter_stake_delegation_accounts","pubkey":"GE7fRxmW46K6EmCD9AMZSbnaJ2e3LfqCZzdHi9hmYAgi","cleaned_up":1,"hardcode_for_fuzzing":1}, {"name":"require_custodian_for_locked_stake_authorize","pubkey":"D4jsDcXaqdW8tDAWn8H4R25Cdns2YwLneujSL1zvjW6R","cleaned_up":1,"hardcode_for_fuzzing":1}, {"name":"spl_token_v2_self_transfer_fix","pubkey":"BL99GYhdjjcv6ys22C9wPgn2aTVERDbPHHo4NbS3hgp7","cleaned_up":1,"hardcode_for_fuzzing":1}, - {"name":"warp_timestamp_again","pubkey":"GvDsGDkH5gyzwpDhxNixx8vtx1kwYHH13RiNAPw27zXb","hardcode_for_fuzzing":1}, + {"name":"warp_timestamp_again","pubkey":"GvDsGDkH5gyzwpDhxNixx8vtx1kwYHH13RiNAPw27zXb","cleaned_up":1,"hardcode_for_fuzzing":1}, {"name":"check_init_vote_data","pubkey":"3ccR6QpxGYsAbWyfevEtBNGfWV4xBffxRj2tD6A9i39F","cleaned_up":1,"hardcode_for_fuzzing":1}, {"name":"secp256k1_recover_syscall_enabled","pubkey":"6RvdSWHh8oh72Dp7wMTS2DBkf3fRPtChfNrAo3cZZoXJ","cleaned_up":1,"hardcode_for_fuzzing":1}, {"name":"system_transfer_zero_check","pubkey":"BrTR9hzw4WBGFP65AJMbpAo64DcA3U6jdPSga9fMV5cS","cleaned_up":1,"hardcode_for_fuzzing":1}, diff --git a/src/flamenco/runtime/sysvar/fd_sysvar_clock.c b/src/flamenco/runtime/sysvar/fd_sysvar_clock.c index 9986e620da4..a93bfc3f0d4 100644 --- a/src/flamenco/runtime/sysvar/fd_sysvar_clock.c +++ b/src/flamenco/runtime/sysvar/fd_sysvar_clock.c @@ -328,8 +328,6 @@ get_timestamp_estimate( fd_bank_t * bank, } } - int const fix_estimate_into_u64 = FD_FEATURE_ACTIVE_BANK( bank, warp_timestamp_again ); - /* Bound estimate by `max_allowable_drift` since the start of the epoch. https://github.com/anza-xyz/agave/blob/v2.3.7/runtime/src/stake_weighted_timestamp.rs#L69-L99 */ @@ -341,12 +339,7 @@ get_timestamp_estimate( fd_bank_t * bank, ulong poh_estimate_offset = fd_ulong_sat_mul( slot_duration, fd_ulong_sat_sub( current_slot, epoch_start_slot ) ); /* https://github.com/anza-xyz/agave/blob/v2.3.7/runtime/src/stake_weighted_timestamp.rs#L73-L77 */ - ulong estimate_offset; - if( fix_estimate_into_u64 ) { - estimate_offset = fd_ulong_sat_mul( NS_IN_S, fd_ulong_sat_sub( (ulong)estimate, (ulong)epoch_start_timestamp ) ); - } else { - estimate_offset = fd_ulong_sat_mul( NS_IN_S, (ulong)fd_long_sat_sub( estimate, epoch_start_timestamp ) ); - } + ulong estimate_offset = fd_ulong_sat_mul( NS_IN_S, fd_ulong_sat_sub( (ulong)estimate, (ulong)epoch_start_timestamp ) ); /* https://github.com/anza-xyz/agave/blob/v2.3.7/runtime/src/stake_weighted_timestamp.rs#L78-L81 */ ulong max_allowable_drift_fast = fd_ulong_sat_mul( poh_estimate_offset, MAX_ALLOWABLE_DRIFT_FAST_PERCENT ) / 100UL; diff --git a/src/flamenco/runtime/test_vat_refresh_vote_accounts.c b/src/flamenco/runtime/test_vat_refresh_vote_accounts.c index edbd46a257e..0ca80ef4ea4 100644 --- a/src/flamenco/runtime/test_vat_refresh_vote_accounts.c +++ b/src/flamenco/runtime/test_vat_refresh_vote_accounts.c @@ -410,7 +410,6 @@ test_env_create_vat( test_env_t * env, fd_wksp_t * wksp, ulong vat_activation_sl enable_feature( env, offsetof( fd_features_t, delay_commission_updates ), 0UL ); enable_feature( env, offsetof( fd_features_t, commission_rate_in_basis_points ), 0UL ); - enable_feature( env, offsetof( fd_features_t, warp_timestamp_again ), 0UL ); enable_feature( env, offsetof( fd_features_t, validator_admission_ticket ), vat_activation_slot ); /* The fork created by attach_child(SENTINEL) is already the root; it From cbe13bec077d8f6ab6c644f89c8b8b76d282d70a Mon Sep 17 00:00:00 2001 From: mjain-jump <150074777+mjain-jump@users.noreply.github.com> Date: Mon, 15 Jun 2026 10:07:44 -0500 Subject: [PATCH 30/61] loader v3: fix non-conformant logs (#10235) --- src/flamenco/runtime/program/fd_bpf_loader_program.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/flamenco/runtime/program/fd_bpf_loader_program.c b/src/flamenco/runtime/program/fd_bpf_loader_program.c index 7821175ab30..d3503d7bc80 100644 --- a/src/flamenco/runtime/program/fd_bpf_loader_program.c +++ b/src/flamenco/runtime/program/fd_bpf_loader_program.c @@ -739,7 +739,7 @@ common_extend_program( fd_exec_instr_ctx_t * instr_ctx, if( program_state->discriminant==FD_BPF_STATE_PROGRAM ) { if( FD_UNLIKELY( memcmp( &program_state->inner.program.programdata_address, programdata_key, sizeof(fd_pubkey_t) ) ) ) { - fd_log_collector_msg_literal( instr_ctx, "Program account does not match ProgramData account" ); + fd_log_collector_msg_literal( instr_ctx, "ProgramData account does not match ProgramData account" ); return FD_EXECUTOR_INSTR_ERR_INVALID_ARG; } } else { @@ -2050,7 +2050,7 @@ process_loader_upgradeable_instruction( fd_exec_instr_ctx_t * instr_ctx ) { is looked up. */ } else { - fd_log_collector_msg_literal( instr_ctx, "Invalid program account" ); + fd_log_collector_msg_literal( instr_ctx, "Invalid Program account" ); return FD_EXECUTOR_INSTR_ERR_INVALID_ARG; } From 7809f37e78e891ff82e9a51a88ceab451bb2349f Mon Sep 17 00:00:00 2001 From: Alex Peng <125332243+alpeng-jump@users.noreply.github.com> Date: Mon, 15 Jun 2026 23:33:09 +0800 Subject: [PATCH 31/61] agave: upgrade submodule to v4.1.0-rc.0 (#10233) --- agave | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agave b/agave index 64729f012bb..a53b15ebfb0 160000 --- a/agave +++ b/agave @@ -1 +1 @@ -Subproject commit 64729f012bb81891fbb2f1ec367fded32a0a5f41 +Subproject commit a53b15ebfb01024790a8bfe56915e615ed660139 From 739d8dff4ca957d4d5b1abe51f5496dbc6ae4b0c Mon Sep 17 00:00:00 2001 From: mjain-jump <150074777+mjain-jump@users.noreply.github.com> Date: Mon, 15 Jun 2026 12:02:53 -0500 Subject: [PATCH 32/61] fuzz(txn): only capture writable accounts (#10238) --- src/flamenco/runtime/tests/fd_dump_pb.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/flamenco/runtime/tests/fd_dump_pb.c b/src/flamenco/runtime/tests/fd_dump_pb.c index 3c9653be81a..3e40a1d0818 100644 --- a/src/flamenco/runtime/tests/fd_dump_pb.c +++ b/src/flamenco/runtime/tests/fd_dump_pb.c @@ -1231,10 +1231,9 @@ create_txn_result_protobuf_from_txn( fd_exec_test_txn_result_t ** txn_result_out } if( !txn_out->err.is_fees_only ) { - /* Executed: capture fee payer and writable accounts. */ + /* Executed: writable accounts. */ for( ulong j=0UL; jaccounts.cnt; j++ ) { - if( !( fd_runtime_account_is_writable_idx( txn_in, txn_out, (ushort)j ) || - j==FD_FEE_PAYER_TXN_IDX ) ) { + if( !fd_runtime_account_is_writable_idx( txn_in, txn_out, (ushort)j ) ) { continue; } From 50b0024181f0088c6d22fd4b55ae5732008005b6 Mon Sep 17 00:00:00 2001 From: David Rubin Date: Mon, 15 Jun 2026 17:51:14 +0000 Subject: [PATCH 33/61] gui: add rserve ema metrics --- src/disco/gui/fd_gui.c | 6 ++++-- src/disco/gui/fd_gui.h | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/disco/gui/fd_gui.c b/src/disco/gui/fd_gui.c index ca7901bbae5..527a4c87fb4 100644 --- a/src/disco/gui/fd_gui.c +++ b/src/disco/gui/fd_gui.c @@ -676,14 +676,16 @@ fd_gui_network_rate_max_update( fd_gui_t * gui, d_in[ 1 ] = fd_ulong_sat_sub( cur->in.gossip, prev->in.gossip ); d_in[ 2 ] = fd_ulong_sat_sub( cur->in.tpu, prev->in.tpu ); d_in[ 3 ] = fd_ulong_sat_sub( cur->in.repair, prev->in.repair ); - d_in[ 4 ] = fd_ulong_sat_sub( cur->in.metric, prev->in.metric ); + d_in[ 4 ] = fd_ulong_sat_sub( cur->in.rserve, prev->in.rserve ); + d_in[ 5 ] = fd_ulong_sat_sub( cur->in.metric, prev->in.metric ); ulong d_out[ FD_GUI_NET_PROTO_CNT ]; d_out[ 0 ] = fd_ulong_sat_sub( cur->out.turbine, prev->out.turbine ); d_out[ 1 ] = fd_ulong_sat_sub( cur->out.gossip, prev->out.gossip ); d_out[ 2 ] = fd_ulong_sat_sub( cur->out.tpu, prev->out.tpu ); d_out[ 3 ] = fd_ulong_sat_sub( cur->out.repair, prev->out.repair ); - d_out[ 4 ] = fd_ulong_sat_sub( cur->out.metric, prev->out.metric ); + d_out[ 4 ] = fd_ulong_sat_sub( cur->out.rserve, prev->out.rserve ); + d_out[ 5 ] = fd_ulong_sat_sub( cur->out.metric, prev->out.metric ); /* Compute per-protocol instantaneous bytes/sec rate and feed the EMA. */ long dt_ns = now - gui->summary.net_rate_prev_ts; diff --git a/src/disco/gui/fd_gui.h b/src/disco/gui/fd_gui.h index 019c853850b..d2e29557483 100644 --- a/src/disco/gui/fd_gui.h +++ b/src/disco/gui/fd_gui.h @@ -41,7 +41,7 @@ #define FD_GUI_START_PROGRESS_TYPE_RUNNING (12) #define FD_GUI_NETWORK_EMA_HALF_LIFE_NS (1000000000L) /* 1 second in nanoseconds */ -#define FD_GUI_NET_PROTO_CNT (5UL) /* turbine, gossip, tpu, repair, metric */ +#define FD_GUI_NET_PROTO_CNT (6UL) /* turbine, gossip, tpu, repair, rserve, metric */ #define FD_GUI_NET_RATE_MAX_WINDOW_NS (300L*1000L*1000L*1000L) /* 5 minutes in nanoseconds */ /* Monotonic deque element for sliding-window max tracking of From f715e32d68e20d9b8dba72b77054ce88f87692c6 Mon Sep 17 00:00:00 2001 From: Liam <12869538+two-heart@users.noreply.github.com> Date: Mon, 15 Jun 2026 21:08:42 +0200 Subject: [PATCH 34/61] fuzz: move sched/rdisp fuzzer to pre/lazy-allocations exec/s improve ~5x --- src/discof/replay/fuzz_sched_rdisp.c | 51 +++++++++++++++------------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/src/discof/replay/fuzz_sched_rdisp.c b/src/discof/replay/fuzz_sched_rdisp.c index 81133e757d1..1757e20abdf 100644 --- a/src/discof/replay/fuzz_sched_rdisp.c +++ b/src/discof/replay/fuzz_sched_rdisp.c @@ -30,8 +30,13 @@ does not need production-sized capacity. */ #define TEST_RDISP_DEPTH 32UL #define TEST_RDISP_BLOCK_DEPTH 4UL + +#define TEST_SCHED_DEPTH 512UL +#define TEST_SCHED_BLOCK_CNT_MAX ( TEST_MAX_BLOCKS + 1UL ) + #define TEST_ROOT_SLOT 1000UL #define TEST_ROOT_TICK_HEIGHT 5000UL + #define TEST_FAIL_NONE 0 #define TEST_FAIL_EXEC 1 #define TEST_FAIL_SIG 2 @@ -716,6 +721,10 @@ ingest_next_segment( case_t * tc, } } +#define TEST_SCHED_MEM_SZ ( 27UL*1024UL*1024UL ) +#define TEST_SCHED_MEM_ALIGN 128UL +static uchar g_sched_mem[ TEST_SCHED_MEM_SZ ] __attribute__((aligned(TEST_SCHED_MEM_ALIGN))); + /* build_case turns one fuzz input into a complete scheduler test case. It initializes a small fd_sched instance, seeds bank 0 as a @@ -746,16 +755,13 @@ build_case( case_t * tc, uchar const * data, ulong data_sz ) { /* Production uses a much deeper scheduler. The fuzzer keeps this small so each case is cheaper to build and run. */ - ulong depth = 512UL; - ulong block_cnt_max = TEST_MAX_BLOCKS + 1UL; - ulong footprint = fd_sched_footprint( depth, block_cnt_max ); - tc->mem = aligned_alloc( fd_sched_align(), footprint ); - FD_TEST( tc->mem ); + ulong depth = TEST_SCHED_DEPTH; + ulong block_cnt_max = TEST_SCHED_BLOCK_CNT_MAX; + tc->mem = g_sched_mem; fd_rng_t rng[1]; fd_rng_join( fd_rng_new( rng, 0U, 0UL ) ); tc->sched = fd_sched_join( fd_sched_new( tc->mem, rng, depth, block_cnt_max, TEST_EXEC_CNT ) ); - FD_TEST( tc->sched ); /* Seed the scheduler with bank 0 as a completed snapshot root. The notify/advance pair is a no-op for the current root, but using the @@ -820,7 +826,6 @@ static void destroy_case( case_t * tc ) { if( FD_UNLIKELY( !tc->mem ) ) return; fd_sched_delete( fd_sched_leave( tc->sched ) ); - free( tc->mem ); tc->mem = NULL; tc->sched = NULL; } @@ -951,13 +956,13 @@ rdisp_mirror_verify( mirror_t * mirror, fd_rdisp_verify( mirror->disp[ slot ], mirror->verify_scratch[ slot ] ); } +static void * g_rdisp_mem[ TEST_MAX_BLOCKS ] = { 0 }; static void rdisp_mirror_destroy( mirror_t * mirror ) { for( ulong slot=0UL; slotmem[ slot ] ) ) continue; + if( FD_UNLIKELY( !mirror->disp[ slot ] ) ) continue; fd_rdisp_delete( fd_rdisp_leave( mirror->disp[ slot ] ) ); - free( mirror->mem[ slot ] ); mirror->mem [ slot ] = NULL; mirror->disp[ slot ] = NULL; } @@ -968,13 +973,13 @@ rdisp_mirror_ensure_block( mirror_t * mirror, block_t const * block ) { ulong slot = block->bank_idx-1UL; if( FD_UNLIKELY( !mirror->mem[ slot ] ) ) { - ulong footprint = fd_rdisp_footprint( TEST_RDISP_DEPTH, TEST_RDISP_BLOCK_DEPTH ); - mirror->mem[ slot ] = aligned_alloc( fd_rdisp_align(), footprint ); - FD_TEST( mirror->mem[ slot ] ); - mirror->disp[ slot ] = fd_rdisp_join( fd_rdisp_new( mirror->mem[ slot ], - TEST_RDISP_DEPTH, - TEST_RDISP_BLOCK_DEPTH, - 0x51a0f95dUL + block->bank_idx ) ); + if( FD_UNLIKELY( !g_rdisp_mem[ slot ] ) ) { + ulong footprint = fd_rdisp_footprint( TEST_RDISP_DEPTH, TEST_RDISP_BLOCK_DEPTH ); + g_rdisp_mem[ slot ] = aligned_alloc( fd_rdisp_align(), footprint ); + FD_TEST( g_rdisp_mem[ slot ] ); + } + mirror->mem[ slot ] = g_rdisp_mem[ slot ]; + mirror->disp[ slot ] = fd_rdisp_join( fd_rdisp_new( g_rdisp_mem[ slot ], TEST_RDISP_DEPTH, TEST_RDISP_BLOCK_DEPTH, 0x51a0f95dUL + block->bank_idx ) ); FD_TEST( mirror->disp[ slot ] ); } @@ -1153,9 +1158,7 @@ run_bad_tick_case( fd_hash_t const * start_poh, the parent, the child under test, and one spare slot. */ ulong depth = fd_ulong_max( FD_SCHED_MIN_DEPTH, 512UL ); ulong block_cnt_max = 4UL; - ulong footprint = fd_sched_footprint( depth, block_cnt_max ); - void * mem = aligned_alloc( fd_sched_align(), footprint ); - FD_TEST( mem ); + void * mem = g_sched_mem; fd_rng_t rng[1]; fd_rng_join( fd_rng_new( rng, 0U, 0UL ) ); fd_sched_t * sched = fd_sched_join( fd_sched_new( mem, rng, depth, block_cnt_max, TEST_EXEC_CNT ) ); @@ -1226,7 +1229,6 @@ run_bad_tick_case( fd_hash_t const * start_poh, while( fd_sched_pruned_block_next( sched )!=ULONG_MAX ) {} fd_sched_delete( fd_sched_leave( sched ) ); - free( mem ); } static void @@ -1280,9 +1282,7 @@ run_lane_policy_case( uchar const * data, and a handful of synthetic branches. */ ulong depth = fd_ulong_max( FD_SCHED_MIN_DEPTH, 512UL ); ulong block_cnt_max = 8UL; - ulong footprint = fd_sched_footprint( depth, block_cnt_max ); - void * mem = aligned_alloc( fd_sched_align(), footprint ); - FD_TEST( mem ); + void * mem = g_sched_mem; fd_rng_t rng[1]; fd_rng_join( fd_rng_new( rng, 0U, 0UL ) ); fd_sched_t * sched = fd_sched_join( fd_sched_new( mem, rng, depth, block_cnt_max, TEST_EXEC_CNT ) ); @@ -1372,7 +1372,6 @@ run_lane_policy_case( uchar const * data, FD_TEST( strstr( state, expect_active ) ); fd_sched_delete( fd_sched_leave( sched ) ); - free( mem ); } static void @@ -1583,6 +1582,10 @@ LLVMFuzzerInitialize( int * argc, fd_boot( argc, argv ); fd_log_level_core_set( 3 ); atexit( fd_halt ); + + FD_TEST( fd_sched_footprint( TEST_SCHED_DEPTH, TEST_SCHED_BLOCK_CNT_MAX )<=sizeof(g_sched_mem) ); + FD_TEST( fd_sched_align()==TEST_SCHED_MEM_ALIGN ); + return 0; } From bd5158402393a3e419919792569dfc57afbb5638 Mon Sep 17 00:00:00 2001 From: Liam <12869538+two-heart@users.noreply.github.com> Date: Mon, 15 Jun 2026 21:51:30 +0200 Subject: [PATCH 35/61] quic: use correct type for tpu_reasm allocations no security/correctness impact, just a consistency nit --- src/disco/quic/fd_tpu_reasm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/disco/quic/fd_tpu_reasm.c b/src/disco/quic/fd_tpu_reasm.c index 159042a42db..fa1cfb199bb 100644 --- a/src/disco/quic/fd_tpu_reasm.c +++ b/src/disco/quic/fd_tpu_reasm.c @@ -56,7 +56,7 @@ fd_tpu_reasm_new( void * shmem, FD_SCRATCH_ALLOC_INIT( l, shmem ); fd_tpu_reasm_t * reasm = FD_SCRATCH_ALLOC_APPEND( l, fd_tpu_reasm_align(), sizeof(fd_tpu_reasm_t) ); - ulong * pub_slots = FD_SCRATCH_ALLOC_APPEND( l, alignof(uint), depth*sizeof(uint) ); + uint * pub_slots = FD_SCRATCH_ALLOC_APPEND( l, alignof(uint), depth*sizeof(uint) ); fd_tpu_reasm_slot_t * slots = FD_SCRATCH_ALLOC_APPEND( l, alignof(fd_tpu_reasm_slot_t), slot_cnt*sizeof(fd_tpu_reasm_slot_t) ); void * map_mem = FD_SCRATCH_ALLOC_APPEND( l, fd_tpu_reasm_map_align(), fd_tpu_reasm_map_footprint( chain_cnt ) ); FD_SCRATCH_ALLOC_FINI( l, fd_tpu_reasm_align() ); From d36c1798aabf8c4214fdc90f97027f10aa2d28e2 Mon Sep 17 00:00:00 2001 From: Liam <12869538+two-heart@users.noreply.github.com> Date: Mon, 15 Jun 2026 21:52:09 +0200 Subject: [PATCH 36/61] fuzz: split sched/rdisp fuzzer unit-test+fuzzer Move non-parametric tests to new scheduler unit test. Improves fuzzers exec/s by ~30% --- src/discof/replay/Local.mk | 2 + src/discof/replay/fuzz_sched_rdisp.c | 259 ------------------------- src/discof/replay/test_sched.c | 280 +++++++++++++++++++++++++++ 3 files changed, 282 insertions(+), 259 deletions(-) create mode 100644 src/discof/replay/test_sched.c diff --git a/src/discof/replay/Local.mk b/src/discof/replay/Local.mk index 2ac526e5405..97841c54975 100644 --- a/src/discof/replay/Local.mk +++ b/src/discof/replay/Local.mk @@ -3,6 +3,8 @@ $(call add-objs,fd_rdisp,fd_discof) $(call make-unit-test,test_rdisp,test_rdisp,fd_discof fd_ballet fd_tango fd_util) $(call run-unit-test,test_rdisp) $(call add-objs,fd_sched,fd_discof) +$(call make-unit-test,test_sched,test_sched,fd_discof fd_disco fd_flamenco fd_ballet fd_tango fd_util) +$(call run-unit-test,test_sched) ifdef FD_HAS_HOSTED $(call make-fuzz-test,fuzz_sched_rdisp,fuzz_sched_rdisp,fd_discof fd_disco fd_flamenco fd_ballet fd_tango fd_util) endif diff --git a/src/discof/replay/fuzz_sched_rdisp.c b/src/discof/replay/fuzz_sched_rdisp.c index 1757e20abdf..78dc6762ed7 100644 --- a/src/discof/replay/fuzz_sched_rdisp.c +++ b/src/discof/replay/fuzz_sched_rdisp.c @@ -1117,263 +1117,6 @@ rdisp_mirror_fini( case_t const * tc, } } -static void -encode_tick_block( uchar * encoded, - ulong * encoded_sz, - fd_hash_t const * start_poh, - ulong const * tick_hashcnt, - ulong tick_cnt ) { - FD_STORE( ulong, encoded, tick_cnt ); - ulong cursor = sizeof(ulong); - - fd_hash_t prev_hash[ 1 ]; - fd_memcpy( prev_hash, start_poh, sizeof(fd_hash_t) ); - - for( ulong i=0UL; ihash, sizeof(fd_hash_t) ); - fd_memcpy( encoded + cursor, &hdr, sizeof(fd_microblock_hdr_t) ); - cursor += sizeof(fd_microblock_hdr_t); - fd_memcpy( prev_hash, end_hash, sizeof(fd_hash_t) ); - } - - *encoded_sz = cursor; -} - -static void -run_bad_tick_case( fd_hash_t const * start_poh, - ulong const * tick_hashcnt, - ulong tick_cnt, - ulong max_tick_height, - ulong hashes_per_tick, - int expect_mark_dead, - int expect_poh_fail ) { - /* Reuse the reduced fuzz depth here; this test only needs the root, - the parent, the child under test, and one spare slot. */ - ulong depth = fd_ulong_max( FD_SCHED_MIN_DEPTH, 512UL ); - ulong block_cnt_max = 4UL; - void * mem = g_sched_mem; - - fd_rng_t rng[1]; fd_rng_join( fd_rng_new( rng, 0U, 0UL ) ); - fd_sched_t * sched = fd_sched_join( fd_sched_new( mem, rng, depth, block_cnt_max, TEST_EXEC_CNT ) ); - FD_TEST( sched ); - - fd_sched_block_add_done( sched, 1UL, ULONG_MAX, TEST_ROOT_SLOT ); - - uchar encoded[ sizeof(ulong) + 4UL*sizeof(fd_microblock_hdr_t) ] = {0}; - ulong encoded_sz = 0UL; - encode_tick_block( encoded, &encoded_sz, start_poh, tick_hashcnt, tick_cnt ); - - fd_store_fec_t store_fec[ 1 ] __attribute__((aligned(alignof(fd_store_fec_t)))); - fd_memset( store_fec, 0, sizeof(fd_store_fec_t) ); - store_fec->data_sz = encoded_sz; - store_fec->shred_offs[0] = (uint)encoded_sz; - - fd_sched_fec_t fec[ 1 ] = {{ - .bank_idx = 2UL, - .parent_bank_idx = 1UL, - .slot = TEST_ROOT_SLOT + 1UL, - .parent_slot = TEST_ROOT_SLOT, - .fec = store_fec, - .data = encoded, - .shred_cnt = 1U, - .is_last_in_batch = 1U, - .is_last_in_block = 1U, - .is_first_in_block = 1U - }}; - FD_TEST( fd_sched_fec_can_ingest( sched, fec ) ); - FD_TEST( fd_sched_fec_ingest( sched, fec ) ); - fd_sched_set_poh_params( sched, 2UL, TEST_ROOT_TICK_HEIGHT, max_tick_height, hashes_per_tick, start_poh ); - - fd_sched_task_t task[ 1 ]; - while( fd_sched_pruned_block_next( sched )!=ULONG_MAX ) {} - FD_TEST( 1UL==fd_sched_task_next_ready( sched, task ) ); - FD_TEST( task->task_type==FD_SCHED_TT_BLOCK_START ); - FD_TEST( task->block_start->bank_idx==2UL ); - FD_TEST( 0==fd_sched_task_done( sched, FD_SCHED_TT_BLOCK_START, ULONG_MAX, ULONG_MAX, NULL ) ); - - int seen_mark_dead = 0; - int seen_poh_fail = 0; - for(;;) { - while( fd_sched_pruned_block_next( sched )!=ULONG_MAX ) {} - if( FD_UNLIKELY( !fd_sched_task_next_ready( sched, task ) ) ) break; - switch( task->task_type ) { - case FD_SCHED_TT_MARK_DEAD: - FD_TEST( task->mark_dead->bank_idx==2UL ); - seen_mark_dead = 1; - break; - case FD_SCHED_TT_POH_HASH: { - fd_execrp_poh_hash_done_msg_t msg[ 1 ]; - msg->mblk_idx = task->poh_hash->mblk_idx; - msg->hashcnt = task->poh_hash->hashcnt; - repeat_hash( msg->hash, task->poh_hash->hash, task->poh_hash->hashcnt ); - int rc = fd_sched_task_done( sched, FD_SCHED_TT_POH_HASH, ULONG_MAX, task->poh_hash->exec_idx, msg ); - if( FD_UNLIKELY( rc==-1 ) ) seen_poh_fail = 1; - else FD_TEST( rc==0 ); - break; - } - default: - FD_LOG_ERR(( "unexpected task_type %lu in bad tick case", task->task_type )); - } - } - - FD_TEST( seen_mark_dead==expect_mark_dead ); - FD_TEST( seen_poh_fail ==expect_poh_fail ); - FD_TEST( fd_sched_is_drained( sched ) ); - while( fd_sched_pruned_block_next( sched )!=ULONG_MAX ) {} - - fd_sched_delete( fd_sched_leave( sched ) ); -} - -static void -run_bad_tick_cases( uchar const * data, - ulong data_sz ) { - (void)data; - - fd_hash_t start_poh[ 1 ]; - hash_from_seed( start_poh, 0x4d85f12e7a9b3105UL ^ data_sz ); - - { - ulong tick_hashcnt[ 1 ] = { 1UL }; - run_bad_tick_case( start_poh, - tick_hashcnt, - 1UL, - TEST_ROOT_TICK_HEIGHT + 2UL, - 1UL, - 1, - 0 ); - } - - { - ulong tick_hashcnt[ 2 ] = { 1UL, 1UL }; - run_bad_tick_case( start_poh, - tick_hashcnt, - 2UL, - TEST_ROOT_TICK_HEIGHT + 1UL, - 1UL, - 0, - 1 ); - } - - { - ulong tick_hashcnt[ 2 ] = { 1UL, 2UL }; - run_bad_tick_case( start_poh, - tick_hashcnt, - 2UL, - TEST_ROOT_TICK_HEIGHT + 2UL, - 2UL, - 0, - 1 ); - } -} - -static void -run_lane_policy_case( uchar const * data, - ulong data_sz ) { - (void)data; - - /* Reuse the reduced fuzz depth here; this test only needs the root - and a handful of synthetic branches. */ - ulong depth = fd_ulong_max( FD_SCHED_MIN_DEPTH, 512UL ); - ulong block_cnt_max = 8UL; - void * mem = g_sched_mem; - - fd_rng_t rng[1]; fd_rng_join( fd_rng_new( rng, 0U, 0UL ) ); - fd_sched_t * sched = fd_sched_join( fd_sched_new( mem, rng, depth, block_cnt_max, TEST_EXEC_CNT ) ); - FD_TEST( sched ); - - fd_sched_block_add_done( sched, 1UL, ULONG_MAX, TEST_ROOT_SLOT ); - FD_TEST( fd_sched_is_drained( sched ) ); - (void)fd_sched_can_ingest_cnt( sched ); - - fd_hash_t start_poh[ 1 ]; - hash_from_seed( start_poh, 0x91b53d8a74f2c601UL ^ data_sz ); - - for( ulong bank_idx=2UL; bank_idx<=5UL; bank_idx++ ) { - fd_store_fec_t store_fec[ 1 ] __attribute__((aligned(alignof(fd_store_fec_t)))); - fd_memset( store_fec, 0, sizeof(fd_store_fec_t) ); - - fd_sched_fec_t fec[ 1 ] = {{ - .bank_idx = bank_idx, - .parent_bank_idx = 1UL, - .slot = TEST_ROOT_SLOT + bank_idx - 1UL, - .parent_slot = TEST_ROOT_SLOT, - .fec = store_fec, - .shred_cnt = 1U, - .is_last_in_batch = 0U, - .is_last_in_block = 0U, - .is_first_in_block = 1U - }}; - FD_TEST( fd_sched_fec_can_ingest( sched, fec ) ); - FD_TEST( fd_sched_fec_ingest( sched, fec ) ); - fd_sched_set_poh_params( sched, bank_idx, TEST_ROOT_TICK_HEIGHT + bank_idx, TEST_ROOT_TICK_HEIGHT + bank_idx + 1UL, 1UL, start_poh ); - - fd_sched_task_t task[ 1 ]; - FD_TEST( 1UL==fd_sched_task_next_ready( sched, task ) ); - FD_TEST( task->task_type==FD_SCHED_TT_BLOCK_START ); - FD_TEST( task->block_start->bank_idx==bank_idx ); - FD_TEST( 0==fd_sched_task_done( sched, FD_SCHED_TT_BLOCK_START, ULONG_MAX, ULONG_MAX, NULL ) ); - FD_TEST( fd_sched_is_drained( sched ) ); - } - - char * state = fd_sched_get_state_cstr( sched ); - FD_TEST( strstr( state, "staged_bitset 15," ) ); - - { - ulong bank_idx = 6UL; - fd_store_fec_t store_fec[ 1 ] __attribute__((aligned(alignof(fd_store_fec_t)))); - fd_memset( store_fec, 0, sizeof(fd_store_fec_t) ); - - fd_sched_fec_t fec[ 1 ] = {{ - .bank_idx = bank_idx, - .parent_bank_idx = 1UL, - .slot = TEST_ROOT_SLOT + bank_idx - 1UL, - .parent_slot = TEST_ROOT_SLOT, - .fec = store_fec, - .shred_cnt = 1U, - .is_last_in_batch = 0U, - .is_last_in_block = 0U, - .is_first_in_block = 1U - }}; - FD_TEST( fd_sched_fec_can_ingest( sched, fec ) ); - FD_TEST( fd_sched_fec_ingest( sched, fec ) ); - fd_sched_set_poh_params( sched, bank_idx, TEST_ROOT_TICK_HEIGHT + bank_idx, TEST_ROOT_TICK_HEIGHT + bank_idx + 1UL, 1UL, start_poh ); - } - - state = fd_sched_get_state_cstr( sched ); - FD_TEST( strstr( state, "active_idx 6, staged_bitset 1," ) ); - FD_TEST( strstr( state, "block_added_staged_cnt 4," ) ); - FD_TEST( strstr( state, "block_added_unstaged_cnt 1," ) ); - FD_TEST( strstr( state, "block_promoted_cnt 1," ) ); - FD_TEST( strstr( state, "block_demoted_cnt 4," ) ); - FD_TEST( strstr( state, "lane_promoted_cnt 1," ) ); - FD_TEST( strstr( state, "lane_demoted_cnt 4," ) ); - - fd_sched_task_t task[ 1 ]; - FD_TEST( 1UL==fd_sched_task_next_ready( sched, task ) ); - FD_TEST( task->task_type==FD_SCHED_TT_BLOCK_START ); - FD_TEST( task->block_start->bank_idx==6UL ); - FD_TEST( 0==fd_sched_task_done( sched, FD_SCHED_TT_BLOCK_START, ULONG_MAX, ULONG_MAX, NULL ) ); - FD_TEST( fd_sched_is_drained( sched ) ); - - state = fd_sched_get_state_cstr( sched ); - /* Block 6 finished its start-of-block work but, being an empty - partial block, has nothing more to dispatch, so it is deactivated - (active_bank_idx==ULONG_MAX) while staying staged on its lane - (staged_bitset 1). */ - char expect_active[ 64 ]; - fd_cstr_printf( expect_active, sizeof(expect_active), NULL, "active_idx %lu, staged_bitset 1,", ULONG_MAX ); - FD_TEST( strstr( state, expect_active ) ); - - fd_sched_delete( fd_sched_leave( sched ) ); -} - static void run_sched_rdisp_case( uchar const * data, ulong data_sz ) { case_t tc[ 1 ]; @@ -1570,8 +1313,6 @@ run_sched_rdisp_case( uchar const * data, ulong data_sz ) { rdisp_mirror_fini( tc, mirror ); rdisp_mirror_destroy( mirror ); destroy_case( tc ); - run_lane_policy_case( data, data_sz ); - run_bad_tick_cases( data, data_sz ); } int diff --git a/src/discof/replay/test_sched.c b/src/discof/replay/test_sched.c new file mode 100644 index 00000000000..ebee4d030ee --- /dev/null +++ b/src/discof/replay/test_sched.c @@ -0,0 +1,280 @@ +#include +#include + +#include "../../util/fd_util.h" +#include "fd_execrp.h" +#include "fd_sched.h" +#include "../../ballet/sha256/fd_sha256.h" + +#define TEST_EXEC_CNT 4UL +#define TEST_ROOT_SLOT 1000UL +#define TEST_ROOT_TICK_HEIGHT 5000UL + +static void +hash_from_seed( fd_hash_t * out, + ulong seed ) { + for( ulong i=0UL; i<4UL; i++ ) out->ul[ i ] = seed ^ (0x9e3779b97f4a7c15UL * (i+1UL)); +} + +/* repeat_hash is fd_sha256_hash( fd_sha256_hash( ... start ) ) + repeated cnt times. */ +static void +repeat_hash( fd_hash_t * out, + fd_hash_t const * start, + ulong cnt ) { + uchar cur[ 32 ]; + fd_memcpy( cur, start->hash, 32UL ); + for( ulong i=0UL; ihash, cur, 32UL ); +} + +static void +encode_tick_block( uchar * encoded, + ulong * encoded_sz, + fd_hash_t const * start_poh, + ulong const * tick_hashcnt, + ulong tick_cnt ) { + FD_STORE( ulong, encoded, tick_cnt ); + ulong cursor = sizeof(ulong); + + fd_hash_t prev_hash[ 1 ]; + fd_memcpy( prev_hash, start_poh, sizeof(fd_hash_t) ); + + for( ulong i=0UL; ihash, sizeof(fd_hash_t) ); + fd_memcpy( encoded + cursor, &hdr, sizeof(fd_microblock_hdr_t) ); + cursor += sizeof(fd_microblock_hdr_t); + fd_memcpy( prev_hash, end_hash, sizeof(fd_hash_t) ); + } + + *encoded_sz = cursor; +} + +static void +run_bad_tick_case( fd_hash_t const * start_poh, + ulong const * tick_hashcnt, + ulong tick_cnt, + ulong max_tick_height, + ulong hashes_per_tick, + int expect_mark_dead, + int expect_poh_fail ) { + /* This test only needs the root, the parent, the child under test, and + one spare slot. */ + ulong depth = fd_ulong_max( FD_SCHED_MIN_DEPTH, 512UL ); + ulong block_cnt_max = 4UL; + ulong footprint = fd_sched_footprint( depth, block_cnt_max ); + void * mem = aligned_alloc( fd_sched_align(), footprint ); + FD_TEST( mem ); + + fd_rng_t rng[1]; fd_rng_join( fd_rng_new( rng, 0U, 0UL ) ); + fd_sched_t * sched = fd_sched_join( fd_sched_new( mem, rng, depth, block_cnt_max, TEST_EXEC_CNT ) ); + FD_TEST( sched ); + + fd_sched_block_add_done( sched, 1UL, ULONG_MAX, TEST_ROOT_SLOT ); + + uchar encoded[ sizeof(ulong) + 4UL*sizeof(fd_microblock_hdr_t) ] = {0}; + ulong encoded_sz = 0UL; + encode_tick_block( encoded, &encoded_sz, start_poh, tick_hashcnt, tick_cnt ); + + fd_store_fec_t store_fec[ 1 ] __attribute__((aligned(alignof(fd_store_fec_t)))); + fd_memset( store_fec, 0, sizeof(fd_store_fec_t) ); + store_fec->data_sz = encoded_sz; + store_fec->shred_offs[0] = (uint)encoded_sz; + + fd_sched_fec_t fec[ 1 ] = {{ + .bank_idx = 2UL, + .parent_bank_idx = 1UL, + .slot = TEST_ROOT_SLOT + 1UL, + .parent_slot = TEST_ROOT_SLOT, + .fec = store_fec, + .data = encoded, + .shred_cnt = 1U, + .is_last_in_batch = 1U, + .is_last_in_block = 1U, + .is_first_in_block = 1U + }}; + FD_TEST( fd_sched_fec_can_ingest( sched, fec ) ); + FD_TEST( fd_sched_fec_ingest( sched, fec ) ); + fd_sched_set_poh_params( sched, 2UL, TEST_ROOT_TICK_HEIGHT, max_tick_height, hashes_per_tick, start_poh ); + + fd_sched_task_t task[ 1 ]; + while( fd_sched_pruned_block_next( sched )!=ULONG_MAX ) {} + FD_TEST( 1UL==fd_sched_task_next_ready( sched, task ) ); + FD_TEST( task->task_type==FD_SCHED_TT_BLOCK_START ); + FD_TEST( task->block_start->bank_idx==2UL ); + FD_TEST( 0==fd_sched_task_done( sched, FD_SCHED_TT_BLOCK_START, ULONG_MAX, ULONG_MAX, NULL ) ); + + int seen_mark_dead = 0; + int seen_poh_fail = 0; + for(;;) { + while( fd_sched_pruned_block_next( sched )!=ULONG_MAX ) {} + if( FD_UNLIKELY( !fd_sched_task_next_ready( sched, task ) ) ) break; + switch( task->task_type ) { + case FD_SCHED_TT_MARK_DEAD: + FD_TEST( task->mark_dead->bank_idx==2UL ); + seen_mark_dead = 1; + break; + case FD_SCHED_TT_POH_HASH: { + fd_execrp_poh_hash_done_msg_t msg[ 1 ]; + msg->mblk_idx = task->poh_hash->mblk_idx; + msg->hashcnt = task->poh_hash->hashcnt; + repeat_hash( msg->hash, task->poh_hash->hash, task->poh_hash->hashcnt ); + int rc = fd_sched_task_done( sched, FD_SCHED_TT_POH_HASH, ULONG_MAX, task->poh_hash->exec_idx, msg ); + if( FD_UNLIKELY( rc==-1 ) ) seen_poh_fail = 1; + else FD_TEST( rc==0 ); + break; + } + default: + FD_LOG_ERR(( "unexpected task_type %lu in bad tick case", task->task_type )); + } + } + + FD_TEST( seen_mark_dead==expect_mark_dead ); + FD_TEST( seen_poh_fail ==expect_poh_fail ); + FD_TEST( fd_sched_is_drained( sched ) ); + while( fd_sched_pruned_block_next( sched )!=ULONG_MAX ) {} + + fd_sched_delete( fd_sched_leave( sched ) ); + free( mem ); +} + +static void +run_bad_tick_cases( void ) { + fd_hash_t start_poh[ 1 ]; + hash_from_seed( start_poh, 0x4d85f12e7a9b3105UL ); + + { + ulong tick_hashcnt[ 1 ] = { 1UL }; + run_bad_tick_case( start_poh, tick_hashcnt, 1UL, TEST_ROOT_TICK_HEIGHT + 2UL, 1UL, 1, 0 ); + } + + { + ulong tick_hashcnt[ 2 ] = { 1UL, 1UL }; + run_bad_tick_case( start_poh, tick_hashcnt, 2UL, TEST_ROOT_TICK_HEIGHT + 1UL, 1UL, 0, 1 ); + } + + { + ulong tick_hashcnt[ 2 ] = { 1UL, 2UL }; + run_bad_tick_case( start_poh, tick_hashcnt, 2UL, TEST_ROOT_TICK_HEIGHT + 2UL, 2UL, 0, 1 ); + } +} + +static void +run_lane_policy_case( void ) { + /* This test only needs the root and a handful of synthetic branches. */ + ulong depth = fd_ulong_max( FD_SCHED_MIN_DEPTH, 512UL ); + ulong block_cnt_max = 8UL; + ulong footprint = fd_sched_footprint( depth, block_cnt_max ); + void * mem = aligned_alloc( fd_sched_align(), footprint ); + FD_TEST( mem ); + + fd_rng_t rng[1]; fd_rng_join( fd_rng_new( rng, 0U, 0UL ) ); + fd_sched_t * sched = fd_sched_join( fd_sched_new( mem, rng, depth, block_cnt_max, TEST_EXEC_CNT ) ); + FD_TEST( sched ); + + fd_sched_block_add_done( sched, 1UL, ULONG_MAX, TEST_ROOT_SLOT ); + FD_TEST( fd_sched_is_drained( sched ) ); + (void)fd_sched_can_ingest_cnt( sched ); + + fd_hash_t start_poh[ 1 ]; + hash_from_seed( start_poh, 0x91b53d8a74f2c601UL ); + + for( ulong bank_idx=2UL; bank_idx<=5UL; bank_idx++ ) { + fd_store_fec_t store_fec[ 1 ] __attribute__((aligned(alignof(fd_store_fec_t)))); + fd_memset( store_fec, 0, sizeof(fd_store_fec_t) ); + + fd_sched_fec_t fec[ 1 ] = {{ + .bank_idx = bank_idx, + .parent_bank_idx = 1UL, + .slot = TEST_ROOT_SLOT + bank_idx - 1UL, + .parent_slot = TEST_ROOT_SLOT, + .fec = store_fec, + .shred_cnt = 1U, + .is_last_in_batch = 0U, + .is_last_in_block = 0U, + .is_first_in_block = 1U + }}; + FD_TEST( fd_sched_fec_can_ingest( sched, fec ) ); + FD_TEST( fd_sched_fec_ingest( sched, fec ) ); + fd_sched_set_poh_params( sched, bank_idx, TEST_ROOT_TICK_HEIGHT + bank_idx, TEST_ROOT_TICK_HEIGHT + bank_idx + 1UL, 1UL, start_poh ); + + fd_sched_task_t task[ 1 ]; + FD_TEST( 1UL==fd_sched_task_next_ready( sched, task ) ); + FD_TEST( task->task_type==FD_SCHED_TT_BLOCK_START ); + FD_TEST( task->block_start->bank_idx==bank_idx ); + FD_TEST( 0==fd_sched_task_done( sched, FD_SCHED_TT_BLOCK_START, ULONG_MAX, ULONG_MAX, NULL ) ); + FD_TEST( fd_sched_is_drained( sched ) ); + } + + char * state = fd_sched_get_state_cstr( sched ); + FD_TEST( strstr( state, "staged_bitset 15," ) ); + + { + ulong bank_idx = 6UL; + fd_store_fec_t store_fec[ 1 ] __attribute__((aligned(alignof(fd_store_fec_t)))); + fd_memset( store_fec, 0, sizeof(fd_store_fec_t) ); + + fd_sched_fec_t fec[ 1 ] = {{ + .bank_idx = bank_idx, + .parent_bank_idx = 1UL, + .slot = TEST_ROOT_SLOT + bank_idx - 1UL, + .parent_slot = TEST_ROOT_SLOT, + .fec = store_fec, + .shred_cnt = 1U, + .is_last_in_batch = 0U, + .is_last_in_block = 0U, + .is_first_in_block = 1U + }}; + FD_TEST( fd_sched_fec_can_ingest( sched, fec ) ); + FD_TEST( fd_sched_fec_ingest( sched, fec ) ); + fd_sched_set_poh_params( sched, bank_idx, TEST_ROOT_TICK_HEIGHT + bank_idx, TEST_ROOT_TICK_HEIGHT + bank_idx + 1UL, 1UL, start_poh ); + } + + state = fd_sched_get_state_cstr( sched ); + FD_TEST( strstr( state, "active_idx 6, staged_bitset 1," ) ); + FD_TEST( strstr( state, "block_added_staged_cnt 4," ) ); + FD_TEST( strstr( state, "block_added_unstaged_cnt 1," ) ); + FD_TEST( strstr( state, "block_promoted_cnt 1," ) ); + FD_TEST( strstr( state, "block_demoted_cnt 4," ) ); + FD_TEST( strstr( state, "lane_promoted_cnt 1," ) ); + FD_TEST( strstr( state, "lane_demoted_cnt 4," ) ); + + fd_sched_task_t task[ 1 ]; + FD_TEST( 1UL==fd_sched_task_next_ready( sched, task ) ); + FD_TEST( task->task_type==FD_SCHED_TT_BLOCK_START ); + FD_TEST( task->block_start->bank_idx==6UL ); + FD_TEST( 0==fd_sched_task_done( sched, FD_SCHED_TT_BLOCK_START, ULONG_MAX, ULONG_MAX, NULL ) ); + FD_TEST( fd_sched_is_drained( sched ) ); + + state = fd_sched_get_state_cstr( sched ); + /* Block 6 finished its start-of-block work but, being an empty + partial block, has nothing more to dispatch, so it is deactivated + (active_bank_idx==ULONG_MAX) while staying staged on its lane + (staged_bitset 1). */ + char expect_active[ 64 ]; + fd_cstr_printf( expect_active, sizeof(expect_active), NULL, "active_idx %lu, staged_bitset 1,", ULONG_MAX ); + FD_TEST( strstr( state, expect_active ) ); + + fd_sched_delete( fd_sched_leave( sched ) ); + free( mem ); +} + +int +main( int argc, + char ** argv ) { + fd_boot( &argc, &argv ); + + run_lane_policy_case(); + run_bad_tick_cases(); + + FD_LOG_NOTICE(( "pass" )); + fd_halt(); + return 0; +} From 640c802409198a839ff616135a485bad966f2279 Mon Sep 17 00:00:00 2001 From: two-heart <12869538+two-heart@users.noreply.github.com> Date: Mon, 15 Jun 2026 22:26:27 +0200 Subject: [PATCH 37/61] repair: fix tile union member type confusion --- src/discof/repair/fd_repair_tile.c | 10 +++------- src/discof/repair/fd_rserve_tile.c | 2 +- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/discof/repair/fd_repair_tile.c b/src/discof/repair/fd_repair_tile.c index 494648baa33..056a23c3459 100644 --- a/src/discof/repair/fd_repair_tile.c +++ b/src/discof/repair/fd_repair_tile.c @@ -333,7 +333,6 @@ struct ctx { int halt_signing; fd_ip4_port_t repair_intake_addr; - fd_ip4_port_t repair_serve_addr; fd_forest_t * forest; fd_policy_t * policy; @@ -382,7 +381,6 @@ struct ctx { ulong snap_out_chunk; /* store second to last chunk for snap_out */ fd_ip4_udp_hdrs_t intake_hdr[1]; - fd_ip4_udp_hdrs_t serve_hdr [1]; fd_rnonce_ss_t repair_nonce_ss[1]; @@ -1452,19 +1450,17 @@ unprivileged_init( fd_topo_t const * topo, ctx->wksp = topo->workspaces[ topo->objs[ tile->tile_obj_id ].wksp_id ].wksp; ctx->repair_intake_addr.port = fd_ushort_bswap( tile->repair.repair_client_listen_port ); - ctx->repair_serve_addr.port = fd_ushort_bswap( tile->rserve.repair_serve_listen_port ); /* TODO clean these up */ ctx->net_id = (ushort)0; fd_ip4_udp_hdr_init( ctx->intake_hdr, 0, 0, tile->repair.repair_client_listen_port ); - fd_ip4_udp_hdr_init( ctx->serve_hdr, 0, 0, tile->rserve.repair_serve_listen_port ); /* Repair set up */ ctx->turbine_slot0 = ULONG_MAX; - FD_LOG_INFO(( "repair my addr - intake addr: " FD_IP4_ADDR_FMT ":%u, serve_addr: " FD_IP4_ADDR_FMT ":%u", - FD_IP4_ADDR_FMT_ARGS( ctx->repair_intake_addr.addr ), fd_ushort_bswap( ctx->repair_intake_addr.port ), - FD_IP4_ADDR_FMT_ARGS( ctx->repair_serve_addr.addr ), fd_ushort_bswap( ctx->repair_serve_addr.port ) )); + FD_LOG_INFO(( "repair my addr - intake addr: " FD_IP4_ADDR_FMT ":%u", + FD_IP4_ADDR_FMT_ARGS( ctx->repair_intake_addr.addr ), fd_ushort_bswap( ctx->repair_intake_addr.port ) + )); memset( ctx->metrics, 0, sizeof(ctx->metrics) ); diff --git a/src/discof/repair/fd_rserve_tile.c b/src/discof/repair/fd_rserve_tile.c index 7b531772929..ed15fa68060 100644 --- a/src/discof/repair/fd_rserve_tile.c +++ b/src/discof/repair/fd_rserve_tile.c @@ -517,7 +517,7 @@ privileged_init( fd_topo_t const * topo, ctx->shredb = fd_shredb_join( fd_shredb_new( ctx->shredb, size_limit, tile->rserve.shredb_path, ctx->seed ) ); if( FD_UNLIKELY( !ctx->shredb ) ) FD_LOG_ERR(( "failed to initialize shredb" )); - uchar const * identity_public_key = fd_keyload_load( tile->repair.identity_key_path, /* pubkey only: */ 1 ); + uchar const * identity_public_key = fd_keyload_load( tile->rserve.identity_key_path, /* pubkey only: */ 1 ); fd_memcpy( ctx->identity_public_key.uc, identity_public_key, sizeof(fd_pubkey_t) ); } From 1a92ae486dda1b39f1e0455d54a3a000e907f619 Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Mon, 15 Jun 2026 21:12:40 +0000 Subject: [PATCH 38/61] diag: add TLB shootdowns to metrics This is algorithmically a fairly sloppy way to ingest /proc/interrupts, but it doesn't matter, this monitoring code barely uses any CPU. --- book/api/metrics-generated.md | 1 + src/disco/diag/fd_diag_tile.c | 21 +- src/disco/diag/fd_proc_interrupts.c | 55 ++++ src/disco/diag/fd_proc_interrupts.h | 8 + src/disco/diag/test_proc_interrupts.c | 33 +++ src/disco/metrics/generated/fd_metrics_all.c | 1 + src/disco/metrics/generated/fd_metrics_all.h | 10 +- .../metrics/generated/fd_metrics_enums.h | 2 +- src/disco/metrics/metrics.xml | 1 + src/disco/quic/test_quic_metrics.txt | 264 +++++++++--------- 10 files changed, 260 insertions(+), 136 deletions(-) diff --git a/book/api/metrics-generated.md b/book/api/metrics-generated.md index 500b411aed6..df88a84f104 100644 --- a/book/api/metrics-generated.md +++ b/book/api/metrics-generated.md @@ -48,6 +48,7 @@ | tile_​cpu_​duration_​nanos
{cpu_​regime="user"} | counter | CPU time spent in each CPU regime, in nanoseconds (User (task was scheduled and executing in user mode)) | | tile_​cpu_​duration_​nanos
{cpu_​regime="system"} | counter | CPU time spent in each CPU regime, in nanoseconds (System (task was scheduled and executing in kernel mode)) | | tile_​irq_​preempted | counter | Times the tile was interrupted by an IRQ (fixed tiles only) | +| tile_​tlb_​shootdown | counter | TLB shootdowns observed on the tile CPU (fixed tiles only) | diff --git a/src/disco/diag/fd_diag_tile.c b/src/disco/diag/fd_diag_tile.c index ea218420e97..967339debbd 100644 --- a/src/disco/diag/fd_diag_tile.c +++ b/src/disco/diag/fd_diag_tile.c @@ -44,6 +44,7 @@ struct fd_diag_tile { int proc_interrupts_fd; int proc_softirqs_fd; ulong device_irq_baseline[ FD_TILE_MAX ]; + ulong tlb_baseline[ FD_TILE_MAX ]; ulong softirq_baseline[ FD_METRICS_ENUM_SOFTIRQ_CNT ][ FD_TILE_MAX ]; ulong volatile * metrics [ FD_TILE_MAX ]; @@ -399,6 +400,19 @@ irq_metrics( fd_diag_tile_t * ctx ) { } FD_MCNT_SET( DIAG, DEVICE_IRQ, tot_cnt ); FD_MCNT_SET( DIAG, DEVICE_IRQ_UNDESIRED, undesired_cnt ); + + ulong * cpu_tlb = ctx->irq_cnt[ 0 ]; /* re-use as scratch memory */ + if( FD_UNLIKELY( -1==lseek( ctx->proc_interrupts_fd, 0, SEEK_SET ) ) ) FD_LOG_ERR(( "lseek failed (%i-%s)", errno, strerror( errno ) )); + ulong tlb_cpu_cnt = fd_proc_interrupts_tlb( ctx->proc_interrupts_fd, cpu_tlb ); + if( FD_UNLIKELY( !tlb_cpu_cnt ) ) return; /* parse fail */ + + for( ulong i=0UL; icpu_to_tile[ i ]; + if( tile_id!=USHORT_MAX ) { + ulong since = fd_ulong_sat_sub( cpu_tlb[ i ], ctx->tlb_baseline[ i ] ); + ctx->metrics[ tile_id ][ FD_METRICS_COUNTER_TILE_TLB_SHOOTDOWN_OFF ] = since; + } + } } static void @@ -593,8 +607,9 @@ unprivileged_init( fd_topo_t const * topo, /* Snapshot the cumulative-since-boot /proc interrupt/softirq counters so the metrics we report are counted since process startup. */ - memset( ctx->softirq_baseline, 0, sizeof( ctx->softirq_baseline ) ); + memset( ctx->softirq_baseline, 0, sizeof( ctx->softirq_baseline ) ); memset( ctx->device_irq_baseline, 0, sizeof( ctx->device_irq_baseline ) ); + memset( ctx->tlb_baseline, 0, sizeof( ctx->tlb_baseline ) ); if( FD_UNLIKELY( -1==lseek( ctx->proc_softirqs_fd, 0, SEEK_SET ) ) ) FD_LOG_ERR(( "lseek failed (%i-%s)", errno, strerror( errno ) )); ulong softirq_cpu_cnt = fd_proc_softirqs_sum( ctx->proc_softirqs_fd, ctx->softirq_baseline ); if( FD_UNLIKELY( !softirq_cpu_cnt ) ) FD_LOG_WARNING(( "failed to read softirq baseline from /proc/softirqs" )); @@ -603,6 +618,10 @@ unprivileged_init( fd_topo_t const * topo, ulong device_cpu_cnt = fd_proc_interrupts_colwise( ctx->proc_interrupts_fd, ctx->device_irq_baseline ); if( FD_UNLIKELY( !device_cpu_cnt ) ) FD_LOG_WARNING(( "failed to read device IRQ baseline from /proc/interrupts" )); + if( FD_UNLIKELY( -1==lseek( ctx->proc_interrupts_fd, 0, SEEK_SET ) ) ) FD_LOG_ERR(( "lseek failed (%i-%s)", errno, strerror( errno ) )); + ulong tlb_cpu_cnt = fd_proc_interrupts_tlb( ctx->proc_interrupts_fd, ctx->tlb_baseline ); + if( FD_UNLIKELY( !tlb_cpu_cnt ) ) FD_LOG_WARNING(( "failed to read TLB baseline from /proc/interrupts" )); + /* Read starttime (field 22) once at init for idle time calculation. CLK_TCK is always 100, so 1 tick = 10ms = 10,000,000 ns. */ for( ulong i=0UL; itile_cnt; i++ ) { diff --git a/src/disco/diag/fd_proc_interrupts.c b/src/disco/diag/fd_proc_interrupts.c index a5caa858a33..808aa5aa908 100644 --- a/src/disco/diag/fd_proc_interrupts.c +++ b/src/disco/diag/fd_proc_interrupts.c @@ -222,6 +222,61 @@ fd_proc_interrupts_colwise( int fd, return 0UL; } +ulong +fd_proc_interrupts_tlb( int fd, + ulong per_cpu[ FD_TILE_MAX ] ) { + fd_io_buffered_istream_t is[1]; + char buf[ 4096 ]; + fd_io_buffered_istream_init( is, fd, buf, sizeof(buf) ); + + ushort col_cpu[ FD_TILE_MAX ]; + ulong col_cnt; + ulong cpu_cnt; + int err = read_cpu_map( is, &col_cnt, &cpu_cnt, col_cpu ); + if( FD_UNLIKELY( err!=0 ) ) goto failed; + if( FD_UNLIKELY( !col_cnt || !cpu_cnt ) ) return 0UL; + + for( ulong cpu=0UL; cpu=4UL && fd_memeq( prefix, "TLB:", 4UL ) ) ) { + err = read_until( is, 0UL, skip_token ); + if( FD_UNLIKELY( err!=0 ) ) goto failed; + + for( ulong col_idx=0UL; col_idx=0 ); + + ulong write_sz; + FD_TEST( 0==fd_io_write( memfd, example_interrupts, example_interrupts_sz, example_interrupts_sz, &write_sz ) ); + FD_TEST( write_sz==example_interrupts_sz ); + FD_TEST( 0==lseek( memfd, 0, SEEK_SET ) ); + + ulong cpu_cnt = fd_proc_interrupts_tlb( memfd, per_cpu[0] ); + FD_TEST( 0==close( memfd ) ); + + FD_TEST( cpu_cnt==64 ); + for( ulong cpu=0; cpu + diff --git a/src/disco/quic/test_quic_metrics.txt b/src/disco/quic/test_quic_metrics.txt index ab0fcc03db8..24f952e86e7 100644 --- a/src/disco/quic/test_quic_metrics.txt +++ b/src/disco/quic/test_quic_metrics.txt @@ -1,275 +1,275 @@ # HELP quic_txn_overrun_total Txns overrun before reassembled (too small txn_reassembly_count) # TYPE quic_txn_overrun_total counter -quic_txn_overrun_total{kind="quic",kind_id="0"} 24 +quic_txn_overrun_total{kind="quic",kind_id="0"} 25 # HELP quic_txn_reassembly_started_total Fragmented txn receive ops started # TYPE quic_txn_reassembly_started_total counter -quic_txn_reassembly_started_total{kind="quic",kind_id="0"} 25 +quic_txn_reassembly_started_total{kind="quic",kind_id="0"} 26 # HELP quic_txn_reassembly_active Fragmented txn receive ops currently active # TYPE quic_txn_reassembly_active gauge -quic_txn_reassembly_active{kind="quic",kind_id="0"} 26 +quic_txn_reassembly_active{kind="quic",kind_id="0"} 27 # HELP quic_frag_rx_total Txn frags received # TYPE quic_frag_rx_total counter -quic_frag_rx_total{kind="quic",kind_id="0"} 27 +quic_frag_rx_total{kind="quic",kind_id="0"} 28 # HELP quic_frag_gap_total Txn frags dropped due to data gap # TYPE quic_frag_gap_total counter -quic_frag_gap_total{kind="quic",kind_id="0"} 28 +quic_frag_gap_total{kind="quic",kind_id="0"} 29 # HELP quic_frag_duplicate_total Txn frags dropped due to duplicate (stream already completed) # TYPE quic_frag_duplicate_total counter -quic_frag_duplicate_total{kind="quic",kind_id="0"} 29 +quic_frag_duplicate_total{kind="quic",kind_id="0"} 30 # HELP quic_txn_rx_total Txns received via TPU # TYPE quic_txn_rx_total counter -quic_txn_rx_total{kind="quic",kind_id="0",tpu_rx_type="udp"} 30 -quic_txn_rx_total{kind="quic",kind_id="0",tpu_rx_type="quic_fast"} 31 -quic_txn_rx_total{kind="quic",kind_id="0",tpu_rx_type="quic_frag"} 32 +quic_txn_rx_total{kind="quic",kind_id="0",tpu_rx_type="udp"} 31 +quic_txn_rx_total{kind="quic",kind_id="0",tpu_rx_type="quic_fast"} 32 +quic_txn_rx_total{kind="quic",kind_id="0",tpu_rx_type="quic_frag"} 33 # HELP quic_txn_abandoned_total Txns abandoned because a connection was lost # TYPE quic_txn_abandoned_total counter -quic_txn_abandoned_total{kind="quic",kind_id="0"} 33 +quic_txn_abandoned_total{kind="quic",kind_id="0"} 34 # HELP quic_txn_undersize_total Txns received via QUIC dropped because they were too small # TYPE quic_txn_undersize_total counter -quic_txn_undersize_total{kind="quic",kind_id="0"} 34 +quic_txn_undersize_total{kind="quic",kind_id="0"} 35 # HELP quic_txn_oversize_total Txns received via QUIC dropped because they were too large # TYPE quic_txn_oversize_total counter -quic_txn_oversize_total{kind="quic",kind_id="0"} 35 +quic_txn_oversize_total{kind="quic",kind_id="0"} 36 # HELP quic_legacy_txn_undersize_total Packets received on the non-QUIC port that were too small to be a valid IP packet # TYPE quic_legacy_txn_undersize_total counter -quic_legacy_txn_undersize_total{kind="quic",kind_id="0"} 36 +quic_legacy_txn_undersize_total{kind="quic",kind_id="0"} 37 # HELP quic_legacy_txn_oversize_total Packets received on the non-QUIC port that were too large to be a valid transaction # TYPE quic_legacy_txn_oversize_total counter -quic_legacy_txn_oversize_total{kind="quic",kind_id="0"} 37 +quic_legacy_txn_oversize_total{kind="quic",kind_id="0"} 38 # HELP quic_pkt_rx_total IP packets received # TYPE quic_pkt_rx_total counter -quic_pkt_rx_total{kind="quic",kind_id="0"} 38 +quic_pkt_rx_total{kind="quic",kind_id="0"} 39 # HELP quic_pkt_rx_bytes_total Bytes received (including IP, UDP, QUIC headers) # TYPE quic_pkt_rx_bytes_total counter -quic_pkt_rx_bytes_total{kind="quic",kind_id="0"} 39 +quic_pkt_rx_bytes_total{kind="quic",kind_id="0"} 40 # HELP quic_pkt_tx_total IP packets sent # TYPE quic_pkt_tx_total counter -quic_pkt_tx_total{kind="quic",kind_id="0"} 40 +quic_pkt_tx_total{kind="quic",kind_id="0"} 41 # HELP quic_pkt_tx_bytes_total Bytes sent (including IP, UDP, QUIC headers) # TYPE quic_pkt_tx_bytes_total counter -quic_pkt_tx_bytes_total{kind="quic",kind_id="0"} 41 +quic_pkt_tx_bytes_total{kind="quic",kind_id="0"} 42 # HELP quic_conn_in_use QUIC connection slots currently in use (allocated from connection create until free, including handshaking connections) # TYPE quic_conn_in_use gauge -quic_conn_in_use{kind="quic",kind_id="0"} 42 +quic_conn_in_use{kind="quic",kind_id="0"} 43 # HELP quic_conn_state QUIC connections in each state # TYPE quic_conn_state gauge -quic_conn_state{kind="quic",kind_id="0",quic_conn_state="invalid"} 43 -quic_conn_state{kind="quic",kind_id="0",quic_conn_state="handshake"} 44 -quic_conn_state{kind="quic",kind_id="0",quic_conn_state="handshake_complete"} 45 -quic_conn_state{kind="quic",kind_id="0",quic_conn_state="active"} 46 -quic_conn_state{kind="quic",kind_id="0",quic_conn_state="peer_close"} 47 -quic_conn_state{kind="quic",kind_id="0",quic_conn_state="abort"} 48 -quic_conn_state{kind="quic",kind_id="0",quic_conn_state="close_pending"} 49 -quic_conn_state{kind="quic",kind_id="0",quic_conn_state="dead"} 50 +quic_conn_state{kind="quic",kind_id="0",quic_conn_state="invalid"} 44 +quic_conn_state{kind="quic",kind_id="0",quic_conn_state="handshake"} 45 +quic_conn_state{kind="quic",kind_id="0",quic_conn_state="handshake_complete"} 46 +quic_conn_state{kind="quic",kind_id="0",quic_conn_state="active"} 47 +quic_conn_state{kind="quic",kind_id="0",quic_conn_state="peer_close"} 48 +quic_conn_state{kind="quic",kind_id="0",quic_conn_state="abort"} 49 +quic_conn_state{kind="quic",kind_id="0",quic_conn_state="close_pending"} 50 +quic_conn_state{kind="quic",kind_id="0",quic_conn_state="dead"} 51 # HELP quic_conn_created_total Connections created # TYPE quic_conn_created_total counter -quic_conn_created_total{kind="quic",kind_id="0"} 51 +quic_conn_created_total{kind="quic",kind_id="0"} 52 # HELP quic_conn_closed_total Connections gracefully closed # TYPE quic_conn_closed_total counter -quic_conn_closed_total{kind="quic",kind_id="0"} 52 +quic_conn_closed_total{kind="quic",kind_id="0"} 53 # HELP quic_conn_aborted_total Connections aborted # TYPE quic_conn_aborted_total counter -quic_conn_aborted_total{kind="quic",kind_id="0"} 53 +quic_conn_aborted_total{kind="quic",kind_id="0"} 54 # HELP quic_conn_timed_out_total Connections timed out # TYPE quic_conn_timed_out_total counter -quic_conn_timed_out_total{kind="quic",kind_id="0"} 54 +quic_conn_timed_out_total{kind="quic",kind_id="0"} 55 # HELP quic_conn_retried_total Connections established with retry # TYPE quic_conn_retried_total counter -quic_conn_retried_total{kind="quic",kind_id="0"} 55 +quic_conn_retried_total{kind="quic",kind_id="0"} 56 # HELP quic_conn_error_no_slots_total Connections that failed to create due to lack of slots # TYPE quic_conn_error_no_slots_total counter -quic_conn_error_no_slots_total{kind="quic",kind_id="0"} 56 +quic_conn_error_no_slots_total{kind="quic",kind_id="0"} 57 # HELP quic_conn_error_retry_failed_total Connections that failed during retry (e.g. invalid token) # TYPE quic_conn_error_retry_failed_total counter -quic_conn_error_retry_failed_total{kind="quic",kind_id="0"} 57 +quic_conn_error_retry_failed_total{kind="quic",kind_id="0"} 58 # HELP quic_pkt_no_conn_total Packets with an unknown connection ID # TYPE quic_pkt_no_conn_total counter -quic_pkt_no_conn_total{kind="quic",kind_id="0",quic_pkt_handle="initial"} 58 -quic_pkt_no_conn_total{kind="quic",kind_id="0",quic_pkt_handle="retry"} 59 -quic_pkt_no_conn_total{kind="quic",kind_id="0",quic_pkt_handle="handshake"} 60 -quic_pkt_no_conn_total{kind="quic",kind_id="0",quic_pkt_handle="one_rtt"} 61 +quic_pkt_no_conn_total{kind="quic",kind_id="0",quic_pkt_handle="initial"} 59 +quic_pkt_no_conn_total{kind="quic",kind_id="0",quic_pkt_handle="retry"} 60 +quic_pkt_no_conn_total{kind="quic",kind_id="0",quic_pkt_handle="handshake"} 61 +quic_pkt_no_conn_total{kind="quic",kind_id="0",quic_pkt_handle="one_rtt"} 62 # HELP quic_pkt_src_invalid_total Packets dropped due to a wrong source IP # TYPE quic_pkt_src_invalid_total counter -quic_pkt_src_invalid_total{kind="quic",kind_id="0"} 62 +quic_pkt_src_invalid_total{kind="quic",kind_id="0"} 63 # HELP quic_frame_meta_acquired_total Attempts to acquire QUIC frame metadata # TYPE quic_frame_meta_acquired_total counter -quic_frame_meta_acquired_total{kind="quic",kind_id="0",frame_tx_alloc_result="success"} 63 -quic_frame_meta_acquired_total{kind="quic",kind_id="0",frame_tx_alloc_result="fail_empty_pool"} 64 -quic_frame_meta_acquired_total{kind="quic",kind_id="0",frame_tx_alloc_result="fail_connection_max"} 65 +quic_frame_meta_acquired_total{kind="quic",kind_id="0",frame_tx_alloc_result="success"} 64 +quic_frame_meta_acquired_total{kind="quic",kind_id="0",frame_tx_alloc_result="fail_empty_pool"} 65 +quic_frame_meta_acquired_total{kind="quic",kind_id="0",frame_tx_alloc_result="fail_connection_max"} 66 # HELP quic_initial_pkt_rx_total Initial packets grouped by token length # TYPE quic_initial_pkt_rx_total counter -quic_initial_pkt_rx_total{kind="quic",kind_id="0",quic_initial_token_length="zero"} 66 -quic_initial_pkt_rx_total{kind="quic",kind_id="0",quic_initial_token_length="fd_quic_length"} 67 -quic_initial_pkt_rx_total{kind="quic",kind_id="0",quic_initial_token_length="invalid_length"} 68 +quic_initial_pkt_rx_total{kind="quic",kind_id="0",quic_initial_token_length="zero"} 67 +quic_initial_pkt_rx_total{kind="quic",kind_id="0",quic_initial_token_length="fd_quic_length"} 68 +quic_initial_pkt_rx_total{kind="quic",kind_id="0",quic_initial_token_length="invalid_length"} 69 # HELP quic_handshake_created_total Handshake flows created # TYPE quic_handshake_created_total counter -quic_handshake_created_total{kind="quic",kind_id="0"} 69 +quic_handshake_created_total{kind="quic",kind_id="0"} 70 # HELP quic_handshake_error_alloc_fail_total Handshakes dropped due to alloc fail # TYPE quic_handshake_error_alloc_fail_total counter -quic_handshake_error_alloc_fail_total{kind="quic",kind_id="0"} 70 +quic_handshake_error_alloc_fail_total{kind="quic",kind_id="0"} 71 # HELP quic_handshake_evicted_total Handshakes dropped due to eviction # TYPE quic_handshake_evicted_total counter -quic_handshake_evicted_total{kind="quic",kind_id="0"} 71 +quic_handshake_evicted_total{kind="quic",kind_id="0"} 72 # HELP quic_stream_rx_total Stream receive events # TYPE quic_stream_rx_total counter -quic_stream_rx_total{kind="quic",kind_id="0"} 72 +quic_stream_rx_total{kind="quic",kind_id="0"} 73 # HELP quic_stream_rx_bytes_total Stream payload bytes received # TYPE quic_stream_rx_bytes_total counter -quic_stream_rx_bytes_total{kind="quic",kind_id="0"} 73 +quic_stream_rx_bytes_total{kind="quic",kind_id="0"} 74 # HELP quic_frame_rx_total QUIC frames received # TYPE quic_frame_rx_total counter -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="unknown"} 74 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="ack"} 75 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="reset_stream"} 76 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="stop_sending"} 77 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="crypto"} 78 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="new_token"} 79 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="stream"} 80 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="max_data"} 81 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="max_stream_data"} 82 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="max_streams"} 83 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="data_blocked"} 84 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="stream_data_blocked"} 85 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="streams_blocked"} 86 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="new_connection_id"} 87 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="retire_connection_id"} 88 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="path_challenge"} 89 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="path_response"} 90 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="connection_close_quic"} 91 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="connection_close_app"} 92 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="handshake_done"} 93 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="ping"} 94 -quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="padding"} 95 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="unknown"} 75 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="ack"} 76 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="reset_stream"} 77 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="stop_sending"} 78 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="crypto"} 79 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="new_token"} 80 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="stream"} 81 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="max_data"} 82 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="max_stream_data"} 83 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="max_streams"} 84 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="data_blocked"} 85 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="stream_data_blocked"} 86 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="streams_blocked"} 87 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="new_connection_id"} 88 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="retire_connection_id"} 89 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="path_challenge"} 90 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="path_response"} 91 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="connection_close_quic"} 92 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="connection_close_app"} 93 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="handshake_done"} 94 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="ping"} 95 +quic_frame_rx_total{kind="quic",kind_id="0",quic_frame_type="padding"} 96 # HELP quic_ack_tx_total ACK events # TYPE quic_ack_tx_total counter -quic_ack_tx_total{kind="quic",kind_id="0",quic_ack_tx="noop"} 96 -quic_ack_tx_total{kind="quic",kind_id="0",quic_ack_tx="new"} 97 -quic_ack_tx_total{kind="quic",kind_id="0",quic_ack_tx="merged"} 98 -quic_ack_tx_total{kind="quic",kind_id="0",quic_ack_tx="drop"} 99 -quic_ack_tx_total{kind="quic",kind_id="0",quic_ack_tx="cancel"} 100 +quic_ack_tx_total{kind="quic",kind_id="0",quic_ack_tx="noop"} 97 +quic_ack_tx_total{kind="quic",kind_id="0",quic_ack_tx="new"} 98 +quic_ack_tx_total{kind="quic",kind_id="0",quic_ack_tx="merged"} 99 +quic_ack_tx_total{kind="quic",kind_id="0",quic_ack_tx="drop"} 100 +quic_ack_tx_total{kind="quic",kind_id="0",quic_ack_tx="cancel"} 101 # HELP quic_service_duration_seconds Duration spent in service # TYPE quic_service_duration_seconds histogram -quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="8.9999999999999995e-09"} 101 -quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="3.1e-08"} 203 -quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="9.9999999999999995e-08"} 306 -quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="3.1800000000000002e-07"} 410 -quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="1.0070000000000001e-06"} 515 -quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="3.1839999999999999e-06"} 621 -quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="1.0063e-05"} 728 -quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="3.1798999999999998e-05"} 836 -quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="0.000100479"} 945 -quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="0.00031749099999999999"} 1055 -quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="0.001003196"} 1166 -quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="0.003169856"} 1278 -quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="0.010015971"} 1391 -quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="0.031648018999999999"} 1505 -quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="0.099999999000000006"} 1620 -quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="+Inf"} 1736 -quic_service_duration_seconds_sum{kind="quic",kind_id="0"} 1.17e-07 -quic_service_duration_seconds_count{kind="quic",kind_id="0"} 1736 +quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="8.9999999999999995e-09"} 102 +quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="3.1e-08"} 205 +quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="9.9999999999999995e-08"} 309 +quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="3.1800000000000002e-07"} 414 +quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="1.0070000000000001e-06"} 520 +quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="3.1839999999999999e-06"} 627 +quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="1.0063e-05"} 735 +quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="3.1798999999999998e-05"} 844 +quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="0.000100479"} 954 +quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="0.00031749099999999999"} 1065 +quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="0.001003196"} 1177 +quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="0.003169856"} 1290 +quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="0.010015971"} 1404 +quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="0.031648018999999999"} 1519 +quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="0.099999999000000006"} 1635 +quic_service_duration_seconds_bucket{kind="quic",kind_id="0",le="+Inf"} 1752 +quic_service_duration_seconds_sum{kind="quic",kind_id="0"} 1.18e-07 +quic_service_duration_seconds_count{kind="quic",kind_id="0"} 1752 # HELP quic_rx_duration_seconds Duration spent processing packets # TYPE quic_rx_duration_seconds histogram -quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="8.9999999999999995e-09"} 118 -quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="3.1e-08"} 237 -quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="9.9999999999999995e-08"} 357 -quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="3.1800000000000002e-07"} 478 -quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="1.0070000000000001e-06"} 600 -quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="3.1839999999999999e-06"} 723 -quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="1.0063e-05"} 847 -quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="3.1798999999999998e-05"} 972 -quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="0.000100479"} 1098 -quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="0.00031749099999999999"} 1225 -quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="0.001003196"} 1353 -quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="0.003169856"} 1482 -quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="0.010015971"} 1612 -quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="0.031648018999999999"} 1743 -quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="0.099999999000000006"} 1875 -quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="+Inf"} 2008 -quic_rx_duration_seconds_sum{kind="quic",kind_id="0"} 1.3400000000000001e-07 -quic_rx_duration_seconds_count{kind="quic",kind_id="0"} 2008 +quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="8.9999999999999995e-09"} 119 +quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="3.1e-08"} 239 +quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="9.9999999999999995e-08"} 360 +quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="3.1800000000000002e-07"} 482 +quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="1.0070000000000001e-06"} 605 +quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="3.1839999999999999e-06"} 729 +quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="1.0063e-05"} 854 +quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="3.1798999999999998e-05"} 980 +quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="0.000100479"} 1107 +quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="0.00031749099999999999"} 1235 +quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="0.001003196"} 1364 +quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="0.003169856"} 1494 +quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="0.010015971"} 1625 +quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="0.031648018999999999"} 1757 +quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="0.099999999000000006"} 1890 +quic_rx_duration_seconds_bucket{kind="quic",kind_id="0",le="+Inf"} 2024 +quic_rx_duration_seconds_sum{kind="quic",kind_id="0"} 1.35e-07 +quic_rx_duration_seconds_count{kind="quic",kind_id="0"} 2024 # HELP quic_frame_parse_failed_total QUIC frames that failed to parse # TYPE quic_frame_parse_failed_total counter -quic_frame_parse_failed_total{kind="quic",kind_id="0"} 135 +quic_frame_parse_failed_total{kind="quic",kind_id="0"} 136 # HELP quic_pkt_crypto_failed_total Packets that failed decryption # TYPE quic_pkt_crypto_failed_total counter -quic_pkt_crypto_failed_total{kind="quic",kind_id="0",quic_encryption_level="initial"} 136 -quic_pkt_crypto_failed_total{kind="quic",kind_id="0",quic_encryption_level="early"} 137 -quic_pkt_crypto_failed_total{kind="quic",kind_id="0",quic_encryption_level="handshake"} 138 -quic_pkt_crypto_failed_total{kind="quic",kind_id="0",quic_encryption_level="app"} 139 +quic_pkt_crypto_failed_total{kind="quic",kind_id="0",quic_encryption_level="initial"} 137 +quic_pkt_crypto_failed_total{kind="quic",kind_id="0",quic_encryption_level="early"} 138 +quic_pkt_crypto_failed_total{kind="quic",kind_id="0",quic_encryption_level="handshake"} 139 +quic_pkt_crypto_failed_total{kind="quic",kind_id="0",quic_encryption_level="app"} 140 # HELP quic_pkt_no_key_total Packets that failed decryption due to missing key # TYPE quic_pkt_no_key_total counter -quic_pkt_no_key_total{kind="quic",kind_id="0",quic_encryption_level="initial"} 140 -quic_pkt_no_key_total{kind="quic",kind_id="0",quic_encryption_level="early"} 141 -quic_pkt_no_key_total{kind="quic",kind_id="0",quic_encryption_level="handshake"} 142 -quic_pkt_no_key_total{kind="quic",kind_id="0",quic_encryption_level="app"} 143 +quic_pkt_no_key_total{kind="quic",kind_id="0",quic_encryption_level="initial"} 141 +quic_pkt_no_key_total{kind="quic",kind_id="0",quic_encryption_level="early"} 142 +quic_pkt_no_key_total{kind="quic",kind_id="0",quic_encryption_level="handshake"} 143 +quic_pkt_no_key_total{kind="quic",kind_id="0",quic_encryption_level="app"} 144 # HELP quic_pkt_net_header_invalid_total Packets dropped due to weird IP or UDP header # TYPE quic_pkt_net_header_invalid_total counter -quic_pkt_net_header_invalid_total{kind="quic",kind_id="0"} 144 +quic_pkt_net_header_invalid_total{kind="quic",kind_id="0"} 145 # HELP quic_pkt_header_invalid_total Packets dropped due to weird QUIC header # TYPE quic_pkt_header_invalid_total counter -quic_pkt_header_invalid_total{kind="quic",kind_id="0"} 145 +quic_pkt_header_invalid_total{kind="quic",kind_id="0"} 146 # HELP quic_pkt_undersize_total QUIC packets dropped due to being too small # TYPE quic_pkt_undersize_total counter -quic_pkt_undersize_total{kind="quic",kind_id="0"} 146 +quic_pkt_undersize_total{kind="quic",kind_id="0"} 147 # HELP quic_pkt_oversize_total QUIC packets dropped due to being too large # TYPE quic_pkt_oversize_total counter -quic_pkt_oversize_total{kind="quic",kind_id="0"} 147 +quic_pkt_oversize_total{kind="quic",kind_id="0"} 148 # HELP quic_pkt_rx_version_negotiation_total QUIC version negotiation packets received # TYPE quic_pkt_rx_version_negotiation_total counter -quic_pkt_rx_version_negotiation_total{kind="quic",kind_id="0"} 148 +quic_pkt_rx_version_negotiation_total{kind="quic",kind_id="0"} 149 # HELP quic_pkt_tx_retry_total QUIC Retry packets sent # TYPE quic_pkt_tx_retry_total counter -quic_pkt_tx_retry_total{kind="quic",kind_id="0"} 149 +quic_pkt_tx_retry_total{kind="quic",kind_id="0"} 150 # HELP quic_pkt_tx_retransmitted_total QUIC packets retransmitted # TYPE quic_pkt_tx_retransmitted_total counter -quic_pkt_tx_retransmitted_total{kind="quic",kind_id="0",quic_encryption_level="initial"} 150 -quic_pkt_tx_retransmitted_total{kind="quic",kind_id="0",quic_encryption_level="early"} 151 -quic_pkt_tx_retransmitted_total{kind="quic",kind_id="0",quic_encryption_level="handshake"} 152 -quic_pkt_tx_retransmitted_total{kind="quic",kind_id="0",quic_encryption_level="app"} 153 +quic_pkt_tx_retransmitted_total{kind="quic",kind_id="0",quic_encryption_level="initial"} 151 +quic_pkt_tx_retransmitted_total{kind="quic",kind_id="0",quic_encryption_level="early"} 152 +quic_pkt_tx_retransmitted_total{kind="quic",kind_id="0",quic_encryption_level="handshake"} 153 +quic_pkt_tx_retransmitted_total{kind="quic",kind_id="0",quic_encryption_level="app"} 154 From 31a687b23d71c90ae5aa830aad8528b1b66ba2e7 Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Mon, 15 Jun 2026 21:00:25 +0000 Subject: [PATCH 39/61] backtest: better warning if RocksDB missing --- src/discof/backtest/fd_backtest_src.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/discof/backtest/fd_backtest_src.c b/src/discof/backtest/fd_backtest_src.c index 1b0f8e3d9b7..8f9226f9865 100644 --- a/src/discof/backtest/fd_backtest_src.c +++ b/src/discof/backtest/fd_backtest_src.c @@ -4,7 +4,6 @@ #include #include #include -#include "../../util/net/fd_pcap.h" #include "../../util/net/fd_pcapng_private.h" #if FD_HAS_ZSTD #include @@ -152,8 +151,12 @@ fd_backtest_src_create( fd_backtest_src_opts_t const * opts ) { } switch( fmt ) { + case FD_BACKT_SRC_FMT_ROCKSDB: # if FD_HAS_ROCKSDB - case FD_BACKT_SRC_FMT_ROCKSDB: return fd_backt_src_rocksdb_create( opts ); + return fd_backt_src_rocksdb_create( opts ); +# else + FD_LOG_WARNING(( "this firedancer build does not support RocksDB (run ./deps.sh +dev; make clean; make -j firedancer-dev)" )); + return NULL; # endif case FD_BACKT_SRC_FMT_PCAP: case FD_BACKT_SRC_FMT_PCAPNG: return fd_backt_src_pcap_create( opts, fmt, flags ); From 31d8334776614e3794842d86c876ca75d89e31fc Mon Sep 17 00:00:00 2001 From: two-heart <12869538+two-heart@users.noreply.github.com> Date: Mon, 15 Jun 2026 22:54:37 +0200 Subject: [PATCH 40/61] codeql: reduce noise in Security and Quality --- contrib/codeql/src/{nightly => dev}/LargeStackVariable.ql | 0 .../codeql/src/{nightly => dev}/SuspiciousIndexMaxComparison.ql | 0 contrib/codeql/src/{nightly => dev}/TrivialMemcpy.ql | 0 contrib/codeql/src/nightly/NoSeccompPolicy.ql | 1 + 4 files changed, 1 insertion(+) rename contrib/codeql/src/{nightly => dev}/LargeStackVariable.ql (100%) rename contrib/codeql/src/{nightly => dev}/SuspiciousIndexMaxComparison.ql (100%) rename contrib/codeql/src/{nightly => dev}/TrivialMemcpy.ql (100%) diff --git a/contrib/codeql/src/nightly/LargeStackVariable.ql b/contrib/codeql/src/dev/LargeStackVariable.ql similarity index 100% rename from contrib/codeql/src/nightly/LargeStackVariable.ql rename to contrib/codeql/src/dev/LargeStackVariable.ql diff --git a/contrib/codeql/src/nightly/SuspiciousIndexMaxComparison.ql b/contrib/codeql/src/dev/SuspiciousIndexMaxComparison.ql similarity index 100% rename from contrib/codeql/src/nightly/SuspiciousIndexMaxComparison.ql rename to contrib/codeql/src/dev/SuspiciousIndexMaxComparison.ql diff --git a/contrib/codeql/src/nightly/TrivialMemcpy.ql b/contrib/codeql/src/dev/TrivialMemcpy.ql similarity index 100% rename from contrib/codeql/src/nightly/TrivialMemcpy.ql rename to contrib/codeql/src/dev/TrivialMemcpy.ql diff --git a/contrib/codeql/src/nightly/NoSeccompPolicy.ql b/contrib/codeql/src/nightly/NoSeccompPolicy.ql index 8ca635cfc28..59aeb04543e 100644 --- a/contrib/codeql/src/nightly/NoSeccompPolicy.ql +++ b/contrib/codeql/src/nightly/NoSeccompPolicy.ql @@ -37,6 +37,7 @@ predicate alwaysCalls(Function caller, Function callee) { predicate isRelevantTile(FdTopoRunTileVariable tileVar) { not tileVar.getLocation().getFile().getBaseName().matches("fd_bench%.c") and not tileVar.getLocation().getFile().getBaseName() = "fd_backtest_tile.c" and + not tileVar.getLocation().getFile().getBaseName() = "fd_forktest_tile.c" and not tileVar.getLocation().getFile().getAbsolutePath().matches("%/src/app/shared_dev/%") and not tileVar.getLocation().getFile().getAbsolutePath().matches("%/src/discoh/%") } From c145ee897a70db9d8fa826251dbf3945557d039f Mon Sep 17 00:00:00 2001 From: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com> Date: Mon, 15 Jun 2026 17:58:09 +0000 Subject: [PATCH 41/61] seccomp: actually fail if filter generation failed find -exec returns 0 even if one of the commands failed. This would mask actual errors. --- config/everything.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/everything.mk b/config/everything.mk index 3c3c4a84d23..708105bb3cd 100644 --- a/config/everything.mk +++ b/config/everything.mk @@ -417,7 +417,7 @@ run-solcap-tests: bin unit-test contrib/test/run_solcap_tests.sh seccomp-policies: - $(FIND) . -name '*.seccomppolicy' -exec $(PYTHON) contrib/codegen/generate_filters.py {} \; + $(FIND) . -name '*.seccomppolicy' -print0 | xargs -0 -n 1 $(PYTHON) contrib/codegen/generate_filters.py ############################## # LLVM Coverage From bd4e22b8eae81f761f9a6c570e388f48d21d08f1 Mon Sep 17 00:00:00 2001 From: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com> Date: Mon, 15 Jun 2026 17:59:35 +0000 Subject: [PATCH 42/61] guih: fix and regenerate seccomp policy --- src/discoh/guih/fd_guih_tile.seccomppolicy | 2 +- .../guih/generated/fd_guih_tile_seccomp.h | 239 ++++++++++-------- 2 files changed, 132 insertions(+), 109 deletions(-) diff --git a/src/discoh/guih/fd_guih_tile.seccomppolicy b/src/discoh/guih/fd_guih_tile.seccomppolicy index a891d32cbdc..64df69deb8a 100644 --- a/src/discoh/guih/fd_guih_tile.seccomppolicy +++ b/src/discoh/guih/fd_guih_tile.seccomppolicy @@ -4,7 +4,7 @@ # gui_socket_fd: The http tile serves a GUI over HTTP, which is over TCP # and does not use our XDP program. It uses regular # kernel sockets, so this is the socket file descriptor. -unsigned int logfile_fd, unsigned int gui_socket_fd +uint logfile_fd, uint gui_socket_fd # logging: all log messages are written to a file and/or pipe # diff --git a/src/discoh/guih/generated/fd_guih_tile_seccomp.h b/src/discoh/guih/generated/fd_guih_tile_seccomp.h index 0999649cda4..5f8464d4ed4 100644 --- a/src/discoh/guih/generated/fd_guih_tile_seccomp.h +++ b/src/discoh/guih/generated/fd_guih_tile_seccomp.h @@ -24,123 +24,146 @@ #else # error "Target architecture is unsupported by seccomp." #endif -static const unsigned int sock_filter_policy_fd_guih_tile_instr_cnt = 56; -static void populate_sock_filter_policy_fd_guih_tile( ulong out_cnt, struct sock_filter * out, unsigned int logfile_fd, unsigned int gui_socket_fd ) { - FD_TEST( out_cnt >= 56 ); - struct sock_filter filter[56] = { - /* Check: Jump to RET_KILL_PROCESS if the script's arch != the runtime arch */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, ( offsetof( struct seccomp_data, arch ) ) ), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ARCH_NR, 0, /* RET_KILL_PROCESS */ 52 ), - /* loading syscall number in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, ( offsetof( struct seccomp_data, nr ) ) ), - /* allow write based on expression */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_write, /* check_write */ 8, 0 ), - /* allow fsync based on expression */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_fsync, /* check_fsync */ 11, 0 ), - /* allow accept4 based on expression */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_accept4, /* check_accept4 */ 12, 0 ), - /* allow read based on expression */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_read, /* check_read */ 19, 0 ), - /* allow sendto based on expression */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_sendto, /* check_sendto */ 24, 0 ), - /* allow sendmmsg based on expression */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_sendmmsg, /* check_sendmmsg */ 29, 0 ), - /* allow close based on expression */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_close, /* check_close */ 38, 0 ), - /* simply allow ppoll */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_ppoll, /* RET_ALLOW */ 44, 0 ), - /* none of the syscalls matched */ - { BPF_JMP | BPF_JA, 0, 0, /* RET_KILL_PROCESS */ 42 }, +#define FD_SECCOMP_ARG_LO_OFFSET(argno) ( offsetof( struct seccomp_data, args[(argno)] ) ) +#define FD_SECCOMP_ARG_HI_OFFSET(argno) ( offsetof( struct seccomp_data, args[(argno)] ) + 4U ) + +#define FD_SECCOMP_ARG_LO(x) ((uint)(((ulong)(uint)(int)(x) ) & 0xffffffffUL)) +#define FD_SECCOMP_ARG_HI(x) ((uint)(((ulong)(x) >> 32) & 0xffffffffUL)) + +static const uint sock_filter_policy_fd_guih_tile_instr_cnt = 64; + +static void populate_sock_filter_policy_fd_guih_tile( ulong out_cnt, struct sock_filter out[ static 64 ], uint logfile_fd, uint gui_socket_fd ) { + FD_TEST( out_cnt >= 64 ); + struct sock_filter filter[64] = { + /* validate architecture */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, ( offsetof( struct seccomp_data, arch ) )), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ARCH_NR, 0, /* RET_KILL_PROCESS */ 9 ), + /* load syscall number */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, ( offsetof( struct seccomp_data, nr ) )), + /* check write */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_write, /* check_write */ 9, 0 ), + /* check fsync */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_fsync, /* check_fsync */ 13, 0 ), + /* check accept4 */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_accept4, /* check_accept4 */ 16, 0 ), + /* check read */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_read, /* check_read */ 29, 0 ), + /* check sendto */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_sendto, /* check_sendto */ 34, 0 ), + /* check sendmmsg */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_sendmmsg, /* check_sendmmsg */ 39, 0 ), + /* check close */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_close, /* check_close */ 48, 0 ), + /* allow ppoll */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_ppoll, /* RET_ALLOW */ 1, 0 ), +// RET_KILL_PROCESS: + /* default deny */ + BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), +// RET_ALLOW: + /* allow */ + BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_ALLOW ), // check_write: - /* load syscall argument 0 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 2, /* RET_ALLOW */ 41, /* lbl_1 */ 0 ), -// lbl_1: - /* load syscall argument 0 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, logfile_fd, /* RET_ALLOW */ 39, /* RET_KILL_PROCESS */ 38 ), + /* arg 0 low 32 bits */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(0)), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* write_ALLOW */ 2, /* or_eq_next_lo_1 */ 0 ), +// or_eq_next_lo_1: + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* write_ALLOW */ 1, /* write_KILL */ 0 ), +// write_KILL: + BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), +// write_ALLOW: + BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_ALLOW ), // check_fsync: - /* load syscall argument 0 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, logfile_fd, /* RET_ALLOW */ 37, /* RET_KILL_PROCESS */ 36 ), + /* arg 0 low 32 bits */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(0)), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* fsync_ALLOW */ 1, /* fsync_KILL */ 0 ), +// fsync_KILL: + BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), +// fsync_ALLOW: + BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_ALLOW ), // check_accept4: - /* load syscall argument 0 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, gui_socket_fd, /* lbl_2 */ 0, /* RET_KILL_PROCESS */ 34 ), -// lbl_2: - /* load syscall argument 1 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[1])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0, /* lbl_3 */ 0, /* RET_KILL_PROCESS */ 32 ), -// lbl_3: - /* load syscall argument 2 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[2])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0, /* lbl_4 */ 0, /* RET_KILL_PROCESS */ 30 ), -// lbl_4: - /* load syscall argument 3 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[3])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SOCK_CLOEXEC|SOCK_NONBLOCK, /* RET_ALLOW */ 29, /* RET_KILL_PROCESS */ 28 ), + /* arg 0 low 32 bits */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(0)), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(gui_socket_fd)), /* and_2 */ 0, /* accept4_KILL */ 10 ), +// and_2: + /* arg 1 high 32 bits */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_HI_OFFSET(1)), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000000U, /* arg_hi_eq_4 */ 0, /* accept4_KILL */ 8 ), +// arg_hi_eq_4: + /* arg 1 low 32 bits */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(1)), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000000U, /* and_3 */ 0, /* accept4_KILL */ 6 ), +// and_3: + /* arg 2 high 32 bits */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_HI_OFFSET(2)), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000000U, /* arg_hi_eq_6 */ 0, /* accept4_KILL */ 4 ), +// arg_hi_eq_6: + /* arg 2 low 32 bits */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(2)), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000000U, /* and_5 */ 0, /* accept4_KILL */ 2 ), +// and_5: + /* arg 3 low 32 bits */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(3)), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, FD_SECCOMP_ARG_LO(SOCK_CLOEXEC|SOCK_NONBLOCK), /* accept4_ALLOW */ 1, /* accept4_KILL */ 0 ), +// accept4_KILL: + BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), +// accept4_ALLOW: + BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_ALLOW ), // check_read: - /* load syscall argument 0 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 2, /* RET_KILL_PROCESS */ 26, /* lbl_5 */ 0 ), -// lbl_5: - /* load syscall argument 0 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, logfile_fd, /* RET_KILL_PROCESS */ 24, /* lbl_6 */ 0 ), -// lbl_6: - /* load syscall argument 0 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, gui_socket_fd, /* RET_KILL_PROCESS */ 22, /* RET_ALLOW */ 23 ), + /* arg 0 low 32 bits */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(0)), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* read_KILL */ 2, /* or_eq_next_lo_7 */ 0 ), +// or_eq_next_lo_7: + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* read_KILL */ 1, /* or_eq_next_lo_8 */ 0 ), +// or_eq_next_lo_8: + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(gui_socket_fd)), /* read_KILL */ 0, /* read_ALLOW */ 1 ), +// read_KILL: + BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), +// read_ALLOW: + BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_ALLOW ), // check_sendto: - /* load syscall argument 0 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 2, /* RET_KILL_PROCESS */ 20, /* lbl_7 */ 0 ), -// lbl_7: - /* load syscall argument 0 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, logfile_fd, /* RET_KILL_PROCESS */ 18, /* lbl_8 */ 0 ), -// lbl_8: - /* load syscall argument 0 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, gui_socket_fd, /* RET_KILL_PROCESS */ 16, /* RET_ALLOW */ 17 ), + /* arg 0 low 32 bits */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(0)), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* sendto_KILL */ 2, /* or_eq_next_lo_9 */ 0 ), +// or_eq_next_lo_9: + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* sendto_KILL */ 1, /* or_eq_next_lo_10 */ 0 ), +// or_eq_next_lo_10: + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(gui_socket_fd)), /* sendto_KILL */ 0, /* sendto_ALLOW */ 1 ), +// sendto_KILL: + BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), +// sendto_ALLOW: + BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_ALLOW ), // check_sendmmsg: - /* load syscall argument 0 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 2, /* RET_KILL_PROCESS */ 14, /* lbl_10 */ 0 ), -// lbl_10: - /* load syscall argument 0 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, logfile_fd, /* RET_KILL_PROCESS */ 12, /* lbl_11 */ 0 ), -// lbl_11: - /* load syscall argument 0 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, gui_socket_fd, /* RET_KILL_PROCESS */ 10, /* lbl_9 */ 0 ), -// lbl_9: - /* load syscall argument 2 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[2])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 1, /* lbl_12 */ 0, /* RET_KILL_PROCESS */ 8 ), -// lbl_12: - /* load syscall argument 3 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[3])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, MSG_NOSIGNAL, /* RET_ALLOW */ 7, /* RET_KILL_PROCESS */ 6 ), + /* arg 0 low 32 bits */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(0)), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* sendmmsg_KILL */ 6, /* or_eq_next_lo_12 */ 0 ), +// or_eq_next_lo_12: + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* sendmmsg_KILL */ 5, /* or_eq_next_lo_13 */ 0 ), +// or_eq_next_lo_13: + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(gui_socket_fd)), /* sendmmsg_KILL */ 4, /* and_11 */ 0 ), +// and_11: + /* arg 2 low 32 bits */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(2)), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000001U, /* and_14 */ 0, /* sendmmsg_KILL */ 2 ), +// and_14: + /* arg 3 low 32 bits */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(3)), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, FD_SECCOMP_ARG_LO(MSG_NOSIGNAL), /* sendmmsg_ALLOW */ 1, /* sendmmsg_KILL */ 0 ), +// sendmmsg_KILL: + BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), +// sendmmsg_ALLOW: + BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_ALLOW ), // check_close: - /* load syscall argument 0 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 2, /* RET_KILL_PROCESS */ 4, /* lbl_13 */ 0 ), -// lbl_13: - /* load syscall argument 0 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, logfile_fd, /* RET_KILL_PROCESS */ 2, /* lbl_14 */ 0 ), -// lbl_14: - /* load syscall argument 0 in accumulator */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, args[0])), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, gui_socket_fd, /* RET_KILL_PROCESS */ 0, /* RET_ALLOW */ 1 ), -// RET_KILL_PROCESS: - /* KILL_PROCESS is placed before ALLOW since it's the fallthrough case. */ + /* arg 0 low 32 bits */ + BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(0)), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* close_KILL */ 2, /* or_eq_next_lo_15 */ 0 ), +// or_eq_next_lo_15: + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* close_KILL */ 1, /* or_eq_next_lo_16 */ 0 ), +// or_eq_next_lo_16: + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(gui_socket_fd)), /* close_KILL */ 0, /* close_ALLOW */ 1 ), +// close_KILL: BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), -// RET_ALLOW: - /* ALLOW has to be reached by jumping */ +// close_ALLOW: BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_ALLOW ), }; fd_memcpy( out, filter, sizeof( filter ) ); From 08cb1a55f2df60aa049a292808f3fb83e5b65205 Mon Sep 17 00:00:00 2001 From: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com> Date: Mon, 15 Jun 2026 18:41:39 +0000 Subject: [PATCH 43/61] seccomp: align guih with gui seccomp policy Fixes https://github.com/firedancer-io/auditor-internal/issues/548 https://github.com/firedancer-io/firedancer/commit/fbce935aab51cf44fb44091aa10d69845d7fea9c#diff-725910c06d7e8290a109300bb0f66f23ef1907eb48880b379901588299d35b5e didn't update the guih policy. --- src/discoh/guih/fd_guih_tile.seccomppolicy | 17 ++++----- .../guih/generated/fd_guih_tile_seccomp.h | 38 +++++++++---------- 2 files changed, 25 insertions(+), 30 deletions(-) diff --git a/src/discoh/guih/fd_guih_tile.seccomppolicy b/src/discoh/guih/fd_guih_tile.seccomppolicy index 64df69deb8a..28c42047733 100644 --- a/src/discoh/guih/fd_guih_tile.seccomppolicy +++ b/src/discoh/guih/fd_guih_tile.seccomppolicy @@ -34,7 +34,7 @@ accept4: (and (eq (arg 0) gui_socket_fd) # arg 0 is the file descriptor to read from. It can be any of the # connected client sockets returned by accept4(2). To accomodate this, # we allow any file descriptor except those which we know are not these -# connected clients, which are the log file, STDOUT, and the listening +# connected clients, which are the log file, STDERR, and the listening # socket itself. read: (not (or (eq (arg 0) 2) (eq (arg 0) logfile_fd) @@ -46,7 +46,7 @@ read: (not (or (eq (arg 0) 2) # arg 0 is the file descriptor to send to. It can be any of the # connected client sockets returned by accept4(2). To accomodate this, # we allow any file descriptor except those which we know are not these -# connected clients, which are the log file, STDOUT, and the listening +# connected clients, which are the log file, STDERR, and the listening # socket itself. sendto: (not (or (eq (arg 0) 2) (eq (arg 0) logfile_fd) @@ -57,20 +57,19 @@ sendto: (not (or (eq (arg 0) 2) # arg 0 is the file descriptor to send to. It can be any of the # connected client sockets returned by accept4(2). To accomodate this, # we allow any file descriptor except those which we know are not these -# connected clients, which are the log file, STDOUT, and the listening +# connected clients, which are the log file, STDERR, and the listening # socket itself. -sendmmsg: (and (not (or (eq (arg 0) 2) - (eq (arg 0) logfile_fd) - (eq (arg 0) gui_socket_fd))) - (eq (arg 2) 1) - (eq (arg 3) "MSG_NOSIGNAL")) +sendmsg: (and (not (or (eq (arg 0) 2) + (eq (arg 0) logfile_fd) + (eq (arg 0) gui_socket_fd))) + (eq (arg 2) "MSG_NOSIGNAL")) # server: serving pages over HTTP requires closing connections # # arg 0 is the file descriptor to close. It can be any of the connected # client sockets returned by accept4(2). To accomodate this, we allow # any file descriptor except those which we know are not these connected -# clients, which are the log file, STDOUT, and the listening socket +# clients, which are the log file, STDERR, and the listening socket # itself. close: (not (or (eq (arg 0) 2) (eq (arg 0) logfile_fd) diff --git a/src/discoh/guih/generated/fd_guih_tile_seccomp.h b/src/discoh/guih/generated/fd_guih_tile_seccomp.h index 5f8464d4ed4..9fb979f5c26 100644 --- a/src/discoh/guih/generated/fd_guih_tile_seccomp.h +++ b/src/discoh/guih/generated/fd_guih_tile_seccomp.h @@ -31,11 +31,11 @@ #define FD_SECCOMP_ARG_LO(x) ((uint)(((ulong)(uint)(int)(x) ) & 0xffffffffUL)) #define FD_SECCOMP_ARG_HI(x) ((uint)(((ulong)(x) >> 32) & 0xffffffffUL)) -static const uint sock_filter_policy_fd_guih_tile_instr_cnt = 64; +static const uint sock_filter_policy_fd_guih_tile_instr_cnt = 62; -static void populate_sock_filter_policy_fd_guih_tile( ulong out_cnt, struct sock_filter out[ static 64 ], uint logfile_fd, uint gui_socket_fd ) { - FD_TEST( out_cnt >= 64 ); - struct sock_filter filter[64] = { +static void populate_sock_filter_policy_fd_guih_tile( ulong out_cnt, struct sock_filter out[ static 62 ], uint logfile_fd, uint gui_socket_fd ) { + FD_TEST( out_cnt >= 62 ); + struct sock_filter filter[62] = { /* validate architecture */ BPF_STMT( BPF_LD | BPF_W | BPF_ABS, ( offsetof( struct seccomp_data, arch ) )), BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ARCH_NR, 0, /* RET_KILL_PROCESS */ 9 ), @@ -51,10 +51,10 @@ static void populate_sock_filter_policy_fd_guih_tile( ulong out_cnt, struct sock BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_read, /* check_read */ 29, 0 ), /* check sendto */ BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_sendto, /* check_sendto */ 34, 0 ), - /* check sendmmsg */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_sendmmsg, /* check_sendmmsg */ 39, 0 ), + /* check sendmsg */ + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_sendmsg, /* check_sendmsg */ 39, 0 ), /* check close */ - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_close, /* check_close */ 48, 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_close, /* check_close */ 46, 0 ), /* allow ppoll */ BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, SYS_ppoll, /* RET_ALLOW */ 1, 0 ), // RET_KILL_PROCESS: @@ -133,33 +133,29 @@ static void populate_sock_filter_policy_fd_guih_tile( ulong out_cnt, struct sock BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), // sendto_ALLOW: BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_ALLOW ), -// check_sendmmsg: +// check_sendmsg: /* arg 0 low 32 bits */ BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(0)), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* sendmmsg_KILL */ 6, /* or_eq_next_lo_12 */ 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* sendmsg_KILL */ 4, /* or_eq_next_lo_12 */ 0 ), // or_eq_next_lo_12: - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* sendmmsg_KILL */ 5, /* or_eq_next_lo_13 */ 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* sendmsg_KILL */ 3, /* or_eq_next_lo_13 */ 0 ), // or_eq_next_lo_13: - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(gui_socket_fd)), /* sendmmsg_KILL */ 4, /* and_11 */ 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(gui_socket_fd)), /* sendmsg_KILL */ 2, /* and_11 */ 0 ), // and_11: /* arg 2 low 32 bits */ BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(2)), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000001U, /* and_14 */ 0, /* sendmmsg_KILL */ 2 ), -// and_14: - /* arg 3 low 32 bits */ - BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(3)), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, FD_SECCOMP_ARG_LO(MSG_NOSIGNAL), /* sendmmsg_ALLOW */ 1, /* sendmmsg_KILL */ 0 ), -// sendmmsg_KILL: + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, FD_SECCOMP_ARG_LO(MSG_NOSIGNAL), /* sendmsg_ALLOW */ 1, /* sendmsg_KILL */ 0 ), +// sendmsg_KILL: BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), -// sendmmsg_ALLOW: +// sendmsg_ALLOW: BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_ALLOW ), // check_close: /* arg 0 low 32 bits */ BPF_STMT( BPF_LD | BPF_W | BPF_ABS, FD_SECCOMP_ARG_LO_OFFSET(0)), - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* close_KILL */ 2, /* or_eq_next_lo_15 */ 0 ), + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 0x00000002U, /* close_KILL */ 2, /* or_eq_next_lo_14 */ 0 ), +// or_eq_next_lo_14: + BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* close_KILL */ 1, /* or_eq_next_lo_15 */ 0 ), // or_eq_next_lo_15: - BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(logfile_fd)), /* close_KILL */ 1, /* or_eq_next_lo_16 */ 0 ), -// or_eq_next_lo_16: BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, ((uint)(gui_socket_fd)), /* close_KILL */ 0, /* close_ALLOW */ 1 ), // close_KILL: BPF_STMT( BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS ), From fdd2a335a4012fd6d0b6a995c247067bc581a2eb Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Mon, 15 Jun 2026 21:46:20 +0000 Subject: [PATCH 44/61] add diag tile to backtest and snapshot-load topos --- src/app/firedancer-dev/commands/backtest.c | 3 +++ src/app/firedancer-dev/commands/snapshot_load.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/app/firedancer-dev/commands/backtest.c b/src/app/firedancer-dev/commands/backtest.c index 2817787e830..bfb85334c7e 100644 --- a/src/app/firedancer-dev/commands/backtest.c +++ b/src/app/firedancer-dev/commands/backtest.c @@ -113,6 +113,9 @@ backtest_topo( config_t * config ) { fd_topob_tile( topo, "solcap", "solcap", "metric_in", cpu_idx++, 0, 0, 0 ); } + fd_topob_wksp( topo, "diag" ); + fd_topob_tile( topo, "diag", "diag", "metric_in", ULONG_MAX, 0, 0, 0 ); + /**********************************************************************/ /* Add the snapshot tiles to topo */ /**********************************************************************/ diff --git a/src/app/firedancer-dev/commands/snapshot_load.c b/src/app/firedancer-dev/commands/snapshot_load.c index ac74d92f312..37f4279f149 100644 --- a/src/app/firedancer-dev/commands/snapshot_load.c +++ b/src/app/firedancer-dev/commands/snapshot_load.c @@ -83,6 +83,9 @@ snapshot_load_topo( config_t * config ) { fd_topo_tile_t * snapwr_tile = fd_topob_tile( topo, "snapwr", "snapwr", "metric_in", ULONG_MAX, 0, 0, 0 ); snapwr_tile->allow_shutdown = 1; + fd_topob_wksp( topo, "diag" ); + fd_topob_tile( topo, "diag", "diag", "metric_in", ULONG_MAX, 0, 0, 0 ); + fd_topob_wksp( topo, "snapct_ld" ); fd_topob_wksp( topo, "snapld_dc" ); fd_topob_wksp( topo, "snapdc_in" ); From fcc3486258fddefe14bec197e209969e1495614d Mon Sep 17 00:00:00 2001 From: Michael McGee Date: Tue, 16 Jun 2026 00:07:06 +0000 Subject: [PATCH 45/61] events: fix connection race --- src/disco/events/fd_event_client.c | 35 ++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/src/disco/events/fd_event_client.c b/src/disco/events/fd_event_client.c index b77e103de9a..4ccfc7b2f58 100644 --- a/src/disco/events/fd_event_client.c +++ b/src/disco/events/fd_event_client.c @@ -62,6 +62,8 @@ struct fd_event_client { int defer_disconnect; ulong consecutive_failure_count; + int auth_send_pending; + ulong state; union { struct { @@ -192,6 +194,7 @@ fd_event_client_new( void * shmem, } #endif client->auth_deadline = LONG_MAX; + client->auth_send_pending = 0; client->state = FD_EVENT_CLIENT_STATE_DISCONNECTED; client->disconnected.reconnect_deadline = 0L; @@ -291,6 +294,7 @@ disconnect( fd_event_client_t * client, fd_circq_reset_cursor( client->circq ); } client->auth_deadline = LONG_MAX; + client->auth_send_pending = 0; switch( reason ) { case DISCONNECT_REASON_IDENTITY_CHANGED: @@ -439,9 +443,9 @@ reconnect( fd_event_client_t * client, client->connecting.connect_deadline = now+(long)1L*(long)1e9; /* 1 second to connect */ } -static void -fd_event_client_grpc_conn_established( void * app_ctx ) { - fd_event_client_t * client = app_ctx; +static int +fd_event_client_try_send_authenticate( fd_event_client_t * client ) { + if( FD_UNLIKELY( fd_grpc_client_request_is_blocked( client->grpc_client ) ) ) return 0; fd_pb_encoder_t auth_req[1]; uchar buffer[ 256UL ]; @@ -465,20 +469,29 @@ fd_event_client_grpc_conn_established( void * app_ctx ) { NULL, 0UL, 0 /* not streaming */ ); - if( FD_UNLIKELY( !stream ) ) { - FD_LOG_WARNING(( "Failed to start Authenticate request" )); - return; - } + if( FD_UNLIKELY( !stream ) ) return 0; long now = fd_log_wallclock(); fd_grpc_client_deadline_set( stream, FD_GRPC_DEADLINE_HEADER, now+(long)5e9 /* 5s */ ); fd_grpc_client_deadline_set( stream, FD_GRPC_DEADLINE_RX_END, now+(long)5e9 /* 5s */ ); - client->state = FD_EVENT_CLIENT_STATE_AUTHENTICATING; - client->auth_deadline = now + (long)5e9; /* 5s */ + client->auth_send_pending = 0; FD_LOG_INFO(( "Requesting auth challenge from event server " FD_IP4_ADDR_FMT ":%u (%.*s)", FD_IP4_ADDR_FMT_ARGS( client->server_ip4_addr ), client->server_tcp_port, (int)client->server_fqdn_len, client->server_fqdn )); + return 1; +} + +static void +fd_event_client_grpc_conn_established( void * app_ctx ) { + fd_event_client_t * client = app_ctx; + + long now = fd_log_wallclock(); + client->state = FD_EVENT_CLIENT_STATE_AUTHENTICATING; + client->auth_deadline = now + (long)5e9; /* 5s */ + client->auth_send_pending = 1; + + fd_event_client_try_send_authenticate( client ); } static void @@ -799,6 +812,10 @@ fd_event_client_poll( fd_event_client_t * client, } } + if( FD_UNLIKELY( client->state==FD_EVENT_CLIENT_STATE_AUTHENTICATING && client->auth_send_pending ) ) { + fd_event_client_try_send_authenticate( client ); + } + if( FD_UNLIKELY( client->defer_disconnect!=INT_MAX ) ) { int reason = client->defer_disconnect; client->defer_disconnect = INT_MAX; From b58c597c3cd988e2fe65991d716bcec2880b30ba Mon Sep 17 00:00:00 2001 From: jvarela-jump Date: Mon, 8 Jun 2026 20:09:16 +0000 Subject: [PATCH 46/61] restore: pipeline recovery under new accdb --- .../firedancer-dev/commands/snapshot_load.c | 5 +- src/discof/restore/fd_snapct_tile.c | 225 +++++++----- src/discof/restore/fd_snapin_tile.c | 50 ++- src/discof/restore/fd_snapwr_tile.c | 21 +- src/flamenco/accdb/fd_accdb.c | 331 ++++++++++++++++-- src/flamenco/accdb/fd_accdb.h | 89 ++++- src/flamenco/accdb/fd_accdb_private.h | 12 +- src/flamenco/accdb/fd_accdb_shmem.c | 1 + src/flamenco/accdb/test_accdb.c | 214 +++++++++++ 9 files changed, 821 insertions(+), 127 deletions(-) diff --git a/src/app/firedancer-dev/commands/snapshot_load.c b/src/app/firedancer-dev/commands/snapshot_load.c index 37f4279f149..0e8909e9369 100644 --- a/src/app/firedancer-dev/commands/snapshot_load.c +++ b/src/app/firedancer-dev/commands/snapshot_load.c @@ -30,6 +30,7 @@ fdctl_tile_run( fd_topo_tile_t const * tile ); static void snapshot_load_topo( config_t * config ) { + config->firedancer.layout.resolv_tile_count = 0; fd_topo_t * topo = &config->topo; fd_topob_new( &config->topo, config->name ); topo->max_page_size = fd_cstr_to_shmem_page_sz( config->hugetlbfs.max_page_size ); @@ -49,7 +50,7 @@ snapshot_load_topo( config_t * config ) { 1UL<<35UL, config->firedancer.accounts.cache_size_gib*(1UL<<30UL), config->tiles.bundle.enabled, - 1UL ); + 2UL ); FD_TEST( fd_pod_insertf_ulong( topo->props, accdb_obj->id, "accdb" ) ); #define FOR(cnt) for( ulong i=0UL; isnapin.accdb_obj_id = accdb_obj->id; snapin_tile->snapin.txncache_obj_id = txncache_obj->id; snapin_tile->snapin.max_live_slots = config->firedancer.runtime.max_live_slots; diff --git a/src/discof/restore/fd_snapct_tile.c b/src/discof/restore/fd_snapct_tile.c index 020728a613d..4e20aa2dfa6 100644 --- a/src/discof/restore/fd_snapct_tile.c +++ b/src/discof/restore/fd_snapct_tile.c @@ -865,8 +865,6 @@ after_credit( fd_snapct_tile_t * ctx, /* ============================================================== */ case FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_FILE_FINI: - if( ctx->flush_ack < ctx->flush_ack_cnt ) break; - if( FD_UNLIKELY( ctx->malformed ) ) { ctx->malformed = 0; fd_stem_publish( stem, ctx->out_ld.idx, FD_SNAPSHOT_MSG_CTRL_FAIL, 0UL, 0UL, 0UL, 0UL, 0UL ); @@ -877,6 +875,8 @@ after_credit( fd_snapct_tile_t * ctx, break; } + if( ctx->flush_ack < ctx->flush_ack_cnt ) break; + ctx->state = FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_FILE_DONE; fd_stem_publish( stem, ctx->out_ld.idx, FD_SNAPSHOT_MSG_CTRL_DONE, 0UL, 0UL, 0UL, 0UL, 0UL ); ctx->flush_ack = 0; @@ -884,8 +884,6 @@ after_credit( fd_snapct_tile_t * ctx, /* ============================================================== */ case FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_FILE_DONE: - if( ctx->flush_ack < ctx->flush_ack_cnt ) break; - if( FD_UNLIKELY( ctx->malformed ) ) { ctx->malformed = 0; fd_stem_publish( stem, ctx->out_ld.idx, FD_SNAPSHOT_MSG_CTRL_FAIL, 0UL, 0UL, 0UL, 0UL, 0UL ); @@ -896,6 +894,8 @@ after_credit( fd_snapct_tile_t * ctx, break; } + if( ctx->flush_ack < ctx->flush_ack_cnt ) break; + log_completion( ctx, 0/*incr*/ ); ctx->state = FD_SNAPCT_STATE_SHUTDOWN; fd_stem_publish( stem, ctx->out_ld.idx, FD_SNAPSHOT_MSG_CTRL_SHUTDOWN, 0UL, 0UL, 0UL, 0UL, 0UL ); @@ -903,8 +903,6 @@ after_credit( fd_snapct_tile_t * ctx, /* ============================================================== */ case FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_HTTP_FINI: - if( ctx->flush_ack < ctx->flush_ack_cnt ) break; - if( FD_UNLIKELY( ctx->malformed ) ) { ctx->malformed = 0; fd_stem_publish( stem, ctx->out_ld.idx, FD_SNAPSHOT_MSG_CTRL_FAIL, 0UL, 0UL, 0UL, 0UL, 0UL ); @@ -918,6 +916,8 @@ after_credit( fd_snapct_tile_t * ctx, break; } + if( ctx->flush_ack < ctx->flush_ack_cnt ) break; + ctx->state = FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_HTTP_DONE; fd_stem_publish( stem, ctx->out_ld.idx, FD_SNAPSHOT_MSG_CTRL_DONE, 0UL, 0UL, 0UL, 0UL, 0UL ); ctx->flush_ack = 0; @@ -925,8 +925,6 @@ after_credit( fd_snapct_tile_t * ctx, /* ============================================================== */ case FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_HTTP_DONE: - if( ctx->flush_ack < ctx->flush_ack_cnt ) break; - if( FD_UNLIKELY( ctx->malformed ) ) { ctx->malformed = 0; fd_stem_publish( stem, ctx->out_ld.idx, FD_SNAPSHOT_MSG_CTRL_FAIL, 0UL, 0UL, 0UL, 0UL, 0UL ); @@ -940,6 +938,8 @@ after_credit( fd_snapct_tile_t * ctx, break; } + if( ctx->flush_ack < ctx->flush_ack_cnt ) break; + log_completion( ctx, 0/*incr*/ ); ctx->state = FD_SNAPCT_STATE_SHUTDOWN; rename_incr_snapshot( ctx ); @@ -948,8 +948,6 @@ after_credit( fd_snapct_tile_t * ctx, /* ============================================================== */ case FD_SNAPCT_STATE_FLUSHING_FULL_FILE_FINI: - if( ctx->flush_ack < ctx->flush_ack_cnt ) break; - if( FD_UNLIKELY( ctx->malformed ) ) { ctx->malformed = 0; fd_stem_publish( stem, ctx->out_ld.idx, FD_SNAPSHOT_MSG_CTRL_FAIL, 0UL, 0UL, 0UL, 0UL, 0UL ); @@ -960,6 +958,8 @@ after_credit( fd_snapct_tile_t * ctx, break; } + if( ctx->flush_ack < ctx->flush_ack_cnt ) break; + ctx->state = FD_SNAPCT_STATE_FLUSHING_FULL_FILE_DONE; ulong sig = ctx->config.incremental_snapshots && (ctx->local_in.incremental_snapshot_slot!=ULONG_MAX || ctx->download_enabled) ? FD_SNAPSHOT_MSG_CTRL_NEXT : FD_SNAPSHOT_MSG_CTRL_DONE; @@ -977,8 +977,6 @@ after_credit( fd_snapct_tile_t * ctx, /* ============================================================== */ case FD_SNAPCT_STATE_FLUSHING_FULL_FILE_DONE: - if( ctx->flush_ack < ctx->flush_ack_cnt ) break; - if( FD_UNLIKELY( ctx->malformed ) ) { ctx->malformed = 0; fd_stem_publish( stem, ctx->out_ld.idx, FD_SNAPSHOT_MSG_CTRL_FAIL, 0UL, 0UL, 0UL, 0UL, 0UL ); @@ -989,6 +987,8 @@ after_credit( fd_snapct_tile_t * ctx, break; } + if( ctx->flush_ack < ctx->flush_ack_cnt ) break; + log_completion( ctx, 1/*full*/ ); if( FD_LIKELY( !ctx->config.incremental_snapshots ) ) { ctx->state = FD_SNAPCT_STATE_SHUTDOWN; @@ -1008,8 +1008,6 @@ after_credit( fd_snapct_tile_t * ctx, /* ============================================================== */ case FD_SNAPCT_STATE_FLUSHING_FULL_HTTP_FINI: - if( ctx->flush_ack < ctx->flush_ack_cnt ) break; - if( FD_UNLIKELY( ctx->malformed ) ) { ctx->malformed = 0; fd_stem_publish( stem, ctx->out_ld.idx, FD_SNAPSHOT_MSG_CTRL_FAIL, 0UL, 0UL, 0UL, 0UL, 0UL ); @@ -1023,6 +1021,8 @@ after_credit( fd_snapct_tile_t * ctx, break; } + if( ctx->flush_ack < ctx->flush_ack_cnt ) break; + ctx->state = FD_SNAPCT_STATE_FLUSHING_FULL_HTTP_DONE; fd_stem_publish( stem, ctx->out_ld.idx, ctx->config.incremental_snapshots ? FD_SNAPSHOT_MSG_CTRL_NEXT : FD_SNAPSHOT_MSG_CTRL_DONE, 0UL, 0UL, 0UL, 0UL, 0UL ); ctx->flush_ack = 0; @@ -1030,8 +1030,6 @@ after_credit( fd_snapct_tile_t * ctx, /* ============================================================== */ case FD_SNAPCT_STATE_FLUSHING_FULL_HTTP_DONE: - if( ctx->flush_ack < ctx->flush_ack_cnt ) break; - if( FD_UNLIKELY( ctx->malformed ) ) { ctx->malformed = 0; fd_stem_publish( stem, ctx->out_ld.idx, FD_SNAPSHOT_MSG_CTRL_FAIL, 0UL, 0UL, 0UL, 0UL, 0UL ); @@ -1045,6 +1043,8 @@ after_credit( fd_snapct_tile_t * ctx, break; } + if( ctx->flush_ack < ctx->flush_ack_cnt ) break; + rename_full_snapshot( ctx ); log_completion( ctx, 1/*full*/ ); @@ -1133,7 +1133,6 @@ after_credit( fd_snapct_tile_t * ctx, /* ============================================================== */ case FD_SNAPCT_STATE_READING_FULL_FILE: - if( FD_UNLIKELY( ctx->flush_ack < ctx->flush_ack_cnt ) ) break; if( FD_UNLIKELY( ctx->malformed ) ) { ctx->malformed = 0; fd_stem_publish( stem, ctx->out_ld.idx, FD_SNAPSHOT_MSG_CTRL_FAIL, 0UL, 0UL, 0UL, 0UL, 0UL ); @@ -1143,6 +1142,7 @@ after_credit( fd_snapct_tile_t * ctx, ctx->local_in.full_snapshot_slot, ctx->local_in.full_snapshot_path )); break; } + if( FD_UNLIKELY( ctx->flush_ack < ctx->flush_ack_cnt ) ) break; if( FD_UNLIKELY( ctx->load_complete ) ) { ctx->load_complete = 0; fd_stem_publish( stem, ctx->out_ld.idx, FD_SNAPSHOT_MSG_CTRL_FINI, 0UL, 0UL, 0UL, 0UL, 0UL ); @@ -1153,7 +1153,6 @@ after_credit( fd_snapct_tile_t * ctx, /* ============================================================== */ case FD_SNAPCT_STATE_READING_INCREMENTAL_FILE: - if( FD_UNLIKELY( ctx->flush_ack < ctx->flush_ack_cnt ) ) break; if( FD_UNLIKELY( ctx->malformed ) ) { ctx->malformed = 0; fd_stem_publish( stem, ctx->out_ld.idx, FD_SNAPSHOT_MSG_CTRL_FAIL, 0UL, 0UL, 0UL, 0UL, 0UL ); @@ -1163,6 +1162,7 @@ after_credit( fd_snapct_tile_t * ctx, ctx->local_in.incremental_snapshot_slot, ctx->local_in.incremental_snapshot_path )); break; } + if( FD_UNLIKELY( ctx->flush_ack < ctx->flush_ack_cnt ) ) break; if( FD_UNLIKELY( ctx->load_complete ) ) { ctx->load_complete = 0; fd_stem_publish( stem, ctx->out_ld.idx, FD_SNAPSHOT_MSG_CTRL_FINI, 0UL, 0UL, 0UL, 0UL, 0UL ); @@ -1173,7 +1173,6 @@ after_credit( fd_snapct_tile_t * ctx, /* ============================================================== */ case FD_SNAPCT_STATE_READING_FULL_HTTP: - if( FD_UNLIKELY( ctx->flush_ack < ctx->flush_ack_cnt ) ) break; if( FD_UNLIKELY( ctx->malformed ) ) { ctx->malformed = 0; fd_stem_publish( stem, ctx->out_ld.idx, FD_SNAPSHOT_MSG_CTRL_FAIL, 0UL, 0UL, 0UL, 0UL, 0UL ); @@ -1186,6 +1185,7 @@ after_credit( fd_snapct_tile_t * ctx, blacklist_peer( ctx ); break; } + if( FD_UNLIKELY( ctx->flush_ack < ctx->flush_ack_cnt ) ) break; if( FD_UNLIKELY( ctx->load_complete ) ) { ctx->load_complete = 0; fd_stem_publish( stem, ctx->out_ld.idx, FD_SNAPSHOT_MSG_CTRL_FINI, 0UL, 0UL, 0UL, 0UL, 0UL ); @@ -1196,7 +1196,6 @@ after_credit( fd_snapct_tile_t * ctx, /* ============================================================== */ case FD_SNAPCT_STATE_READING_INCREMENTAL_HTTP: - if( FD_UNLIKELY( ctx->flush_ack < ctx->flush_ack_cnt ) ) break; if( FD_UNLIKELY( ctx->malformed ) ) { ctx->malformed = 0; fd_stem_publish( stem, ctx->out_ld.idx, FD_SNAPSHOT_MSG_CTRL_FAIL, 0UL, 0UL, 0UL, 0UL, 0UL ); @@ -1209,6 +1208,7 @@ after_credit( fd_snapct_tile_t * ctx, blacklist_peer( ctx ); break; } + if( FD_UNLIKELY( ctx->flush_ack < ctx->flush_ack_cnt ) ) break; if( FD_UNLIKELY( ctx->load_complete ) ) { ctx->load_complete = 0; fd_stem_publish( stem, ctx->out_ld.idx, FD_SNAPSHOT_MSG_CTRL_FINI, 0UL, 0UL, 0UL, 0UL, 0UL ); @@ -1374,6 +1374,81 @@ gossip_frag( fd_snapct_tile_t * ctx, } } +/* Validate and handle a pipeline control ack for INIT_{FULL,INCR}, + NEXT, DONE, and FINI. Returns 0 on success, and -1 if the sig was + unrecognized or the state was unexpected. */ +static int +process_ctrl_ack( fd_snapct_tile_t * ctx, + ulong sig ) { + switch( sig ) { + case FD_SNAPSHOT_MSG_CTRL_INIT_FULL: + if( FD_LIKELY( ctx->state==FD_SNAPCT_STATE_READING_FULL_HTTP || + ctx->state==FD_SNAPCT_STATE_READING_FULL_FILE ) ) { + ctx->flush_ack++; + FD_TEST( ctx->flush_ack <= ctx->flush_ack_cnt ); + } else if( FD_UNLIKELY( ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_HTTP_RESET || + ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_FILE_RESET ) ) { + /* Safe to ignore -- stale ack from before RESET. */ + } else return -1; + return 0; + + case FD_SNAPSHOT_MSG_CTRL_INIT_INCR: + if( FD_LIKELY( ctx->state==FD_SNAPCT_STATE_READING_INCREMENTAL_HTTP || + ctx->state==FD_SNAPCT_STATE_READING_INCREMENTAL_FILE ) ) { + ctx->flush_ack++; + FD_TEST( ctx->flush_ack <= ctx->flush_ack_cnt ); + } else if( FD_UNLIKELY( ctx->state==FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_HTTP_RESET || + ctx->state==FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_FILE_RESET ) ) { + /* Safe to ignore -- stale ack from before RESET. */ + } else return -1; + return 0; + + case FD_SNAPSHOT_MSG_CTRL_NEXT: + if( FD_LIKELY( ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_HTTP_DONE || + ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_FILE_DONE ) ) { + ctx->flush_ack++; + FD_TEST( ctx->flush_ack <= ctx->flush_ack_cnt ); + } else if( FD_UNLIKELY( ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_HTTP_RESET || + ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_FILE_RESET ) ) { + /* Safe to ignore -- stale ack from before RESET. */ + } else return -1; + return 0; + + case FD_SNAPSHOT_MSG_CTRL_DONE: + if( FD_LIKELY( ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_HTTP_DONE || + ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_FILE_DONE || + ctx->state==FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_HTTP_DONE || + ctx->state==FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_FILE_DONE ) ) { + ctx->flush_ack++; + FD_TEST( ctx->flush_ack <= ctx->flush_ack_cnt ); + } else if( FD_UNLIKELY( ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_HTTP_RESET || + ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_FILE_RESET || + ctx->state==FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_HTTP_RESET || + ctx->state==FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_FILE_RESET ) ) { + /* Safe to ignore -- stale ack from before RESET. */ + } else return -1; + return 0; + + case FD_SNAPSHOT_MSG_CTRL_FINI: + if( FD_LIKELY( ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_HTTP_FINI || + ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_FILE_FINI || + ctx->state==FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_HTTP_FINI || + ctx->state==FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_FILE_FINI ) ) { + ctx->flush_ack++; + FD_TEST( ctx->flush_ack <= ctx->flush_ack_cnt ); + } else if( FD_UNLIKELY( ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_HTTP_RESET || + ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_FILE_RESET || + ctx->state==FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_HTTP_RESET || + ctx->state==FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_FILE_RESET ) ) { + /* Safe to ignore -- stale ack from before RESET. */ + } else return -1; + return 0; + + default: + return -1; + } +} + static void snapld_frag( fd_snapct_tile_t * ctx, ulong sig, @@ -1413,15 +1488,39 @@ snapld_frag( fd_snapct_tile_t * ctx, return; } if( FD_UNLIKELY( sig==FD_SNAPSHOT_MSG_CTRL_FAIL ) ) { - /* When snapld receives FAIL from snapct, it forwards it on - snapld_dc. This forwarded FAIL is the last fragment snapld - will publish for this load attempt. */ - if( FD_LIKELY( ctx->state!=FD_SNAPCT_STATE_FLUSHING_FULL_HTTP_RESET && - ctx->state!=FD_SNAPCT_STATE_FLUSHING_FULL_FILE_RESET && - ctx->state!=FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_HTTP_RESET && - ctx->state!=FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_FILE_RESET ) ) { - FD_LOG_ERR(( "invalid control frag %lu in state %s", sig, fd_snapct_state_str( ctx->state ) )); - ctx->flush_ack = ctx->flush_ack_cnt; + if( FD_LIKELY( ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_HTTP_RESET || + ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_FILE_RESET || + ctx->state==FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_HTTP_RESET || + ctx->state==FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_FILE_RESET ) ) { + ctx->flush_ack++; + FD_TEST( ctx->flush_ack <= ctx->flush_ack_cnt ); + } else { + FD_LOG_ERR(( "unexpected control frag %lu (%s) in state %d (%s)", sig, fd_ssctrl_msg_ctrl_str( sig ), ctx->state, fd_snapct_state_str( ctx->state ) )); + } + return; + } + if( FD_UNLIKELY( sig==FD_SNAPSHOT_MSG_CTRL_ERROR ) ) { + /* CTRL_ERROR message directly from snapld can be snapld-generated + or snapct-generated-and-forwarded. */ + switch( ctx->state ) { + case FD_SNAPCT_STATE_READING_FULL_FILE: + case FD_SNAPCT_STATE_FLUSHING_FULL_FILE_FINI: + case FD_SNAPCT_STATE_FLUSHING_FULL_FILE_DONE: + case FD_SNAPCT_STATE_READING_INCREMENTAL_FILE: + case FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_FILE_FINI: + case FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_FILE_DONE: + case FD_SNAPCT_STATE_READING_FULL_HTTP: + case FD_SNAPCT_STATE_FLUSHING_FULL_HTTP_FINI: + case FD_SNAPCT_STATE_FLUSHING_FULL_HTTP_DONE: + case FD_SNAPCT_STATE_READING_INCREMENTAL_HTTP: + case FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_HTTP_FINI: + case FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_HTTP_DONE: + FD_LOG_WARNING(( "received error from snapld in state %d (%s)", + ctx->state, fd_snapct_state_str( ctx->state ) )); + ctx->malformed = 1; + break; + default: + break; } return; } @@ -1455,7 +1554,12 @@ snapld_frag( fd_snapct_tile_t * ctx, ctx->load_complete = 1; return; } - if( FD_UNLIKELY( sig!=FD_SNAPSHOT_MSG_DATA ) ) return; + if( FD_UNLIKELY( sig!=FD_SNAPSHOT_MSG_DATA ) ) { + if( process_ctrl_ack( ctx, sig ) ) { + FD_LOG_ERR(( "unexpected control frag %lu (%s) in state %d (%s)", sig, fd_ssctrl_msg_ctrl_str( sig ), ctx->state, fd_snapct_state_str( ctx->state ) )); + } + return; + } int full, file; switch( ctx->state ) { @@ -1562,50 +1666,6 @@ static void ctrl_ack_frag( fd_snapct_tile_t * ctx, ulong sig ) { switch( sig ) { - case FD_SNAPSHOT_MSG_CTRL_INIT_FULL: - if( FD_LIKELY( ctx->state==FD_SNAPCT_STATE_READING_FULL_HTTP || - ctx->state==FD_SNAPCT_STATE_READING_FULL_FILE ) ) { - ctx->flush_ack++; - FD_TEST( ctx->flush_ack <= ctx->flush_ack_cnt ); - } else FD_LOG_ERR(( "invalid control frag %lu in state %d", sig, ctx->state )); - break; - - case FD_SNAPSHOT_MSG_CTRL_INIT_INCR: - if( FD_LIKELY( ctx->state==FD_SNAPCT_STATE_READING_INCREMENTAL_HTTP || - ctx->state==FD_SNAPCT_STATE_READING_INCREMENTAL_FILE ) ) { - ctx->flush_ack++; - FD_TEST( ctx->flush_ack <= ctx->flush_ack_cnt ); - } else FD_LOG_ERR(( "invalid control frag %lu in state %d", sig, ctx->state )); - break; - - case FD_SNAPSHOT_MSG_CTRL_NEXT: - if( FD_LIKELY( ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_HTTP_DONE || - ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_FILE_DONE ) ) { - ctx->flush_ack++; - FD_TEST( ctx->flush_ack <= ctx->flush_ack_cnt ); - } else FD_LOG_ERR(( "invalid control frag %lu in state %d", sig, ctx->state )); - break; - - case FD_SNAPSHOT_MSG_CTRL_DONE: - if( FD_LIKELY( ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_HTTP_DONE || - ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_FILE_DONE || - ctx->state==FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_HTTP_DONE || - ctx->state==FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_FILE_DONE ) ) { - ctx->flush_ack++; - FD_TEST( ctx->flush_ack <= ctx->flush_ack_cnt ); - } else FD_LOG_ERR(( "invalid control frag %lu in state %d", sig, ctx->state )); - break; - - case FD_SNAPSHOT_MSG_CTRL_FINI: - if( FD_LIKELY( ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_HTTP_FINI || - ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_FILE_FINI || - ctx->state==FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_HTTP_FINI || - ctx->state==FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_FILE_FINI ) ) { - ctx->flush_ack++; - FD_TEST( ctx->flush_ack <= ctx->flush_ack_cnt ); - } else FD_LOG_ERR(( "invalid control frag %lu in state %d", sig, ctx->state )); - break; - case FD_SNAPSHOT_MSG_CTRL_FAIL: if( FD_LIKELY( ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_HTTP_RESET || ctx->state==FD_SNAPCT_STATE_FLUSHING_FULL_FILE_RESET || @@ -1613,11 +1673,13 @@ ctrl_ack_frag( fd_snapct_tile_t * ctx, ctx->state==FD_SNAPCT_STATE_FLUSHING_INCREMENTAL_FILE_RESET ) ) { ctx->flush_ack++; FD_TEST( ctx->flush_ack <= ctx->flush_ack_cnt ); - } else FD_LOG_ERR(( "invalid control frag %lu in state %d", sig, ctx->state )); - break; + } else { + FD_LOG_ERR(( "unexpected control frag %lu (%s) in state %d (%s)", sig, fd_ssctrl_msg_ctrl_str( sig ), ctx->state, fd_snapct_state_str( ctx->state ) )); + } + return; case FD_SNAPSHOT_MSG_CTRL_SHUTDOWN: - break; + return; case FD_SNAPSHOT_MSG_CTRL_ERROR: switch( ctx->state ) { @@ -1639,13 +1701,18 @@ ctrl_ack_frag( fd_snapct_tile_t * ctx, FD_LOG_WARNING(( "received error from downstream tile while in state %s", fd_snapct_state_str( ctx->state ) )); ctx->malformed = 1; - ctx->flush_ack = ctx->flush_ack_cnt; break; default: break; } + return; + + default: break; } + if( process_ctrl_ack( ctx, sig ) ) { + FD_LOG_ERR(( "unexpected control frag %lu (%s) in state %d (%s)", sig, fd_ssctrl_msg_ctrl_str( sig ), ctx->state, fd_snapct_state_str( ctx->state ) )); + } } static int @@ -1888,7 +1955,7 @@ unprivileged_init( fd_topo_t const * topo, } } FD_TEST( has_snapld_dc && ack_cnt>0 ); - ctx->flush_ack_cnt = ack_cnt; + ctx->flush_ack_cnt = ack_cnt + 1; /* +1 for snapld (acks via snapld_dc) */ FD_TEST( ctx->gossip_enabled==(ctx->gossip_in_mem!=NULL) ); ctx->predicted_incremental.full_slot = FD_SSPEER_SLOT_UNKNOWN; diff --git a/src/discof/restore/fd_snapin_tile.c b/src/discof/restore/fd_snapin_tile.c index 587efa53753..0d9469fe106 100644 --- a/src/discof/restore/fd_snapin_tile.c +++ b/src/discof/restore/fd_snapin_tile.c @@ -106,8 +106,9 @@ struct fd_snapin_tile { ulong manifest_capitalization; /* capitalization according to the current snapshot manifest */ struct { - ulong capitalization; - } recovery; /* stores the capitalization value from the last full snapshot */ + ulong capitalization; + fd_accdb_snapshot_recovery_t accdb_metadata; + } recovery; /* stores state from the last full snapshot for incremental revert */ ulong blockhash_offsets_len; blockhash_group_t * blockhash_offsets; @@ -116,6 +117,7 @@ struct fd_snapin_tile { fd_sstxncache_entry_t * txncache_entries; fd_accdb_fork_id_t accdb_root_fork_id; + fd_accdb_fork_id_t accdb_incr_fork_id; /* child fork for incremental writes (purge on failure) */ fd_txncache_fork_id_t txncache_root_fork_id; struct { @@ -206,10 +208,10 @@ scratch_align( void ) { static ulong scratch_footprint( fd_topo_tile_t const * tile ) { - (void)tile; ulong l = FD_LAYOUT_INIT; l = FD_LAYOUT_APPEND( l, alignof(fd_snapin_tile_t), sizeof(fd_snapin_tile_t) ); l = FD_LAYOUT_APPEND( l, fd_txncache_align(), fd_txncache_footprint( tile->snapin.max_live_slots ) ); + l = FD_LAYOUT_APPEND( l, fd_accdb_align(), fd_accdb_footprint( tile->snapin.max_live_slots ) ); l = FD_LAYOUT_APPEND( l, fd_ssmanifest_parser_align(), fd_ssmanifest_parser_footprint() ); l = FD_LAYOUT_APPEND( l, fd_slot_delta_parser_align(), fd_slot_delta_parser_footprint() ); l = FD_LAYOUT_APPEND( l, alignof(blockhash_group_t), sizeof(blockhash_group_t)*FD_SNAPIN_MAX_SLOT_DELTA_GROUPS ); @@ -792,7 +794,12 @@ process_account_batch( fd_snapin_tile_t * ctx, } ulong accounts_ignored, accounts_replaced, accounts_loaded, replaced_lamports, ignored_lamports; - if( FD_UNLIKELY( fd_accdb_snapshot_write_batch( ctx->accdb, cnt, pubkeys, slots, lamports, data_lens, executables, &accounts_ignored, &accounts_replaced, &accounts_loaded, &replaced_lamports, &ignored_lamports ) ) ) return -1; + fd_accdb_fork_id_t fork_id = ctx->full ? (fd_accdb_fork_id_t){ .val = USHORT_MAX } : ctx->accdb_incr_fork_id; + if( FD_UNLIKELY( 0!=fd_accdb_snapshot_write_batch( ctx->accdb, fork_id, cnt, pubkeys, slots, lamports, data_lens, + executables, &accounts_ignored, &accounts_replaced, &accounts_loaded, + &replaced_lamports, &ignored_lamports ) ) ) { + return -1; + } ctx->metrics.accounts_ignored += accounts_ignored; ctx->metrics.accounts_replaced += accounts_replaced; ctx->metrics.accounts_loaded += accounts_loaded; @@ -817,7 +824,9 @@ process_account_header( fd_snapin_tile_t * ctx, ctx->metrics.total_account_batches_processed++; ctx->metrics.total_accounts_processed++; ulong replaced_lamports = 0UL; + fd_accdb_fork_id_t fork_id = ctx->full ? (fd_accdb_fork_id_t){ .val = USHORT_MAX } : ctx->accdb_incr_fork_id; int account = fd_accdb_snapshot_write_one( ctx->accdb, + fork_id, result->account_header.pubkey, result->account_header.slot, result->account_header.lamports, @@ -1116,6 +1125,7 @@ handle_control_frag( fd_snapin_tile_t * ctx, ctx->dup_capitalization = 0UL; ctx->recovery.capitalization = 0UL; + fd_accdb_reset( ctx->accdb ); fd_accdb_fork_id_t null_fork_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; ctx->accdb_root_fork_id = fd_accdb_attach_child( ctx->accdb, null_fork_id ); @@ -1131,6 +1141,15 @@ handle_control_frag( fd_snapin_tile_t * ctx, ctx->capitalization = ctx->recovery.capitalization; ctx->dup_capitalization = 0UL; + + /* Discard stale capture so the retry's sysvar is snooped fresh */ + ctx->slot_history.captured = 0; + ctx->slot_history.capturing = 0; + + /* Create a child fork for incremental writes. On failure, + fd_accdb_purge(child) reverts just the incremental changes. + On success, fd_accdb_advance_root(child) promotes them. */ + ctx->accdb_incr_fork_id = fd_accdb_attach_child( ctx->accdb, ctx->accdb_root_fork_id ); } /* Save the slot advertised by the snapshot peer and verify it @@ -1178,6 +1197,7 @@ handle_control_frag( fd_snapin_tile_t * ctx, } ctx->recovery.capitalization = ctx->capitalization; + fd_accdb_snapshot_save_whead( ctx->accdb, &ctx->recovery.accdb_metadata ); /* Backup metric counters */ ctx->metrics.full_accounts_loaded = ctx->metrics.accounts_loaded; @@ -1205,6 +1225,12 @@ handle_control_frag( fd_snapin_tile_t * ctx, break; } + if( !ctx->full ) { + fd_accdb_advance_root( ctx->accdb, ctx->accdb_incr_fork_id ); + ctx->accdb_root_fork_id = ctx->accdb_incr_fork_id; + ctx->accdb_incr_fork_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; + } + fd_accdb_snapshot_load_end( ctx->accdb ); /* Notify replay when snapshot is fully loaded and verified. */ @@ -1220,8 +1246,16 @@ handle_control_frag( fd_snapin_tile_t * ctx, case FD_SNAPSHOT_MSG_CTRL_FAIL: { FD_TEST( ctx->state!=FD_SNAPSHOT_STATE_SHUTDOWN ); + if( ctx->full ) { + fd_accdb_reset( ctx->accdb ); + ctx->accdb_root_fork_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; + ctx->accdb_incr_fork_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; + } else { + fd_accdb_purge( ctx->accdb, ctx->accdb_incr_fork_id ); /* this fork and subsequent children */ + fd_accdb_snapshot_revert_whead( ctx->accdb, &ctx->recovery.accdb_metadata ); + ctx->accdb_incr_fork_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; + } ctx->state = FD_SNAPSHOT_STATE_IDLE; - FD_LOG_ERR((( "TODO: UNIMPLEMENTED: snapshot load failure handling (TODO: reset accdb to last known good state, etc)" ))); break; } @@ -1390,7 +1424,11 @@ unprivileged_init( fd_topo_t const * topo, ctx->manifest_capitalization = 0UL; ctx->capitalization = 0UL; ctx->dup_capitalization = 0UL; - ctx->recovery.capitalization = 0UL; + ctx->recovery.capitalization = 0UL; + memset( &ctx->recovery.accdb_metadata, 0, sizeof(ctx->recovery.accdb_metadata) ); + + ctx->accdb_root_fork_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; + ctx->accdb_incr_fork_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; fd_memset( &ctx->flags, 0, sizeof(ctx->flags) ); ctx->boot_timestamp = fd_log_wallclock(); diff --git a/src/discof/restore/fd_snapwr_tile.c b/src/discof/restore/fd_snapwr_tile.c index 152d0408e23..e3a266c1600 100644 --- a/src/discof/restore/fd_snapwr_tile.c +++ b/src/discof/restore/fd_snapwr_tile.c @@ -54,6 +54,11 @@ struct fd_snapwr_tile { fd_snapwr_out_t ct_out; + struct { + ulong accounts_off; + ulong flush_off; + } recovery; + struct { ulong full_bytes_read; ulong incremental_bytes_read; @@ -287,6 +292,8 @@ handle_control_frag( fd_snapwr_tile_t * ctx, case FD_SNAPSHOT_MSG_CTRL_NEXT: { FD_TEST( ctx->state==FD_SNAPSHOT_STATE_FINISHING ); ctx->state = FD_SNAPSHOT_STATE_IDLE; + ctx->recovery.accounts_off = ctx->accounts_off; + ctx->recovery.flush_off = ctx->flush_off; break; } @@ -304,8 +311,10 @@ handle_control_frag( fd_snapwr_tile_t * ctx, case FD_SNAPSHOT_MSG_CTRL_FAIL: { FD_TEST( ctx->state!=FD_SNAPSHOT_STATE_SHUTDOWN ); + ctx->write_buf_used = 0UL; + ctx->accounts_off = ctx->full ? 0UL : ctx->recovery.accounts_off; + ctx->flush_off = ctx->full ? 0UL : ctx->recovery.flush_off; ctx->state = FD_SNAPSHOT_STATE_IDLE; - FD_LOG_ERR((( "TODO: UNIMPLEMENTED: snapshot load failure handling (TODO: reset accdb to last known good state, etc)" ))); break; } @@ -413,10 +422,12 @@ unprivileged_init( fd_topo_t const * topo, ctx->partition_sz = tile->snapwr.partition_sz; if( FD_UNLIKELY( !ctx->partition_sz ) ) FD_LOG_ERR(( "tile `" NAME "` partition_sz is 0" )); - ctx->accounts_off = 0UL; - ctx->flush_off = 0UL; - ctx->write_buf = _write_buf; - ctx->write_buf_used = 0UL; + ctx->accounts_off = 0UL; + ctx->flush_off = 0UL; + ctx->recovery.accounts_off = 0UL; + ctx->recovery.flush_off = 0UL; + ctx->write_buf = _write_buf; + ctx->write_buf_used = 0UL; ctx->manifest_parser = fd_ssmanifest_parser_join( fd_ssmanifest_parser_new( _manifest_parser ) ); FD_TEST( ctx->manifest_parser ); diff --git a/src/flamenco/accdb/fd_accdb.c b/src/flamenco/accdb/fd_accdb.c index 6f95301bbf3..b3ac55917fd 100644 --- a/src/flamenco/accdb/fd_accdb.c +++ b/src/flamenco/accdb/fd_accdb.c @@ -292,6 +292,119 @@ fd_accdb_new( void * ljoin, return accdb; } +static inline void wait_cmd( fd_accdb_t * accdb ); +static inline void submit_cmd( fd_accdb_t * accdb, uint op, ushort fork_id ); + +void +fd_accdb_reset( fd_accdb_t * accdb ) { + fd_accdb_shmem_t * shmem = accdb->shmem; + + /* Wait for any pending background command (advance_root / purge) on + T2 to finish before clobbering shared state. */ + wait_cmd( accdb ); + + /* Reset pools through the joiner's existing pointers. acc_pool and + txn_pool use POOL_LAZY=1 so reset is O(1). fork_pool and + partition_pool rebuild their free lists in O(max_live_slots) and + O(partition_cnt), both small. */ + acc_pool_reset( accdb->acc_pool_join ); + txn_pool_reset( accdb->txn_pool ); + fork_pool_reset( accdb->fork_shmem_pool ); + partition_pool_reset( accdb->partition_pool ); + + /* Clear hash chains */ + fd_memset( accdb->acc_map, 0xFF, shmem->chain_cnt*sizeof(uint) ); + + /* Empty dlists */ + for( ulong k=0UL; kcompaction_dlist[ k ], accdb->partition_pool ); + } + deferred_free_dlist_remove_all( accdb->deferred_free_dlist, accdb->partition_pool ); + + /* Null descends_sets. */ + for( ulong i=0UL; imax_live_slots; i++ ) { + descends_set_null( accdb->fork_pool[ i ].descends ); + } + + /* Reset shmem scalar fields. */ + shmem->root_fork_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; + shmem->generation = 0U; + shmem->partition_lock = 0; + shmem->partition_max = 0UL; + + /* Write heads: sentinel values that force partition-switch on first + write. */ + for( ulong k=0UL; kwhead[ k ] = accdb_offset( shmem->partition_cnt, shmem->partition_sz ); + shmem->has_partition[ k ] = 0; + } + + /* Cache state */ + for( ulong c=0UL; cclock_hand[ c ].val = 0UL; + shmem->cache_free[ c ].ver_top = (ulong)UINT_MAX; + shmem->cache_free_cnt[ c ].val = 0UL; + shmem->cache_class_init[ c ].val = 0UL; + if( shmem->cache_class_max[ c ]>=shmem->cache_min_reserved*shmem->joiner_cnt_max ) + shmem->cache_class_used[ c ].val = ULONG_MAX; + else + shmem->cache_class_used[ c ].val = 0UL; + } + + /* Reset every cache slot's metadata to empty sentinels. */ + for( ulong c=0UL; ccache_class_max[ c ]; i++ ) { + fd_accdb_cache_line_t * line = (fd_accdb_cache_line_t *)( accdb->cache[ c ] + i*slot_sz ); + line->key.generation = UINT_MAX; + line->acc_idx = UINT_MAX; + line->refcnt = 0U; + line->referenced = 0; + line->persisted = 1; + } + } + + /* Epoch system: reset epoch and all slot values to idle, but + preserve joiner_cnt and each tile's my_epoch_slot pointer so that + tiles which joined during init keep their original slot indices. */ + shmem->epoch = 1UL; + for( ulong i=0UL; ijoiner_epochs[ i ].val = ULONG_MAX; + + /* Deferred acc buffer. */ + shmem->deferred_acc_buf_cnt = 0UL; + shmem->deferred_acc_epoch = 0UL; + + /* Shared metrics: zero gauges that reflect current state (now empty) + but preserve counters and accounts_capacity. */ + shmem->shmetrics->accounts_total = 0UL; + shmem->shmetrics->disk_allocated_bytes = 0UL; + shmem->shmetrics->disk_current_bytes = 0UL; + shmem->shmetrics->disk_used_bytes = 0UL; + shmem->shmetrics->in_compaction = 0; + + /* Command slot */ + shmem->cmd_op = FD_ACCDB_CMD_IDLE; + shmem->cmd_fork_id = USHORT_MAX; + + shmem->snapshot_loading = 0; + + FD_COMPILER_MFENCE(); + + /* Tell the accdb tile to clear its stale deferred fork chain. + Its deferred_fork_head/tail now reference recycled pool elements; + it must discard them before processing any future advance_root or + purge command. The command is asynchronous; the next advance_root + or purge call will wait for it to complete via wait_cmd. */ + submit_cmd( accdb, FD_ACCDB_CMD_CLEAR_DEFERRED, 0 ); + + /* Reset local state */ + accdb->deferred_fork_head = NULL; + accdb->deferred_fork_tail = NULL; + accdb->deferred_fork_epoch = 0UL; + accdb->snapshot_loading = 0; + accdb->acquire_state = FD_ACCDB_ACQUIRE_STATE_IDLE; +} + void fd_accdb_snapshot_load_begin( fd_accdb_t * accdb ) { accdb->snapshot_loading = 1; @@ -338,6 +451,84 @@ fd_accdb_snapshot_load_end( fd_accdb_t * accdb ) { spin_lock_release( &accdb->shmem->partition_lock ); } +void +fd_accdb_snapshot_save_whead( fd_accdb_t * accdb, + fd_accdb_snapshot_recovery_t * out ) { + out->whead_val = FD_VOLATILE_CONST( accdb->shmem->whead[ 0 ].val ); + out->has_partition = FD_VOLATILE_CONST( accdb->shmem->has_partition[ 0 ] ); + out->partition_max = FD_VOLATILE_CONST( accdb->shmem->partition_max ); + out->disk_current_bytes = FD_VOLATILE_CONST( accdb->shmem->shmetrics->disk_current_bytes ); + + if( out->has_partition ) { + accdb_offset_t whead = { .val = out->whead_val }; + ulong idx = packed_partition_idx( &whead ); + fd_accdb_partition_t * part = partition_pool_ele( accdb->partition_pool, idx ); + out->savepoint_bytes_freed = FD_VOLATILE_CONST( part->bytes_freed ); + } else { + out->savepoint_bytes_freed = 0UL; + } +} + +void +fd_accdb_snapshot_revert_whead( fd_accdb_t * accdb, + fd_accdb_snapshot_recovery_t const * recover ) { + fd_accdb_shmem_t * shmem = accdb->shmem; + + /* Wait for any pending background command (purge) on T2 to finish + before releasing partitions. */ + wait_cmd( accdb ); + + ulong cur_partition_max = shmem->partition_max; + + /* Materialize the active partition's write_offset from the whead + before releasing. Closed partitions have write_offset set by + change_partition, but the last active partition still has + write_offset == 0 from its initialization. The real byte offset + is encoded in whead[0]. */ + if( shmem->has_partition[ 0 ] && cur_partition_max>recover->partition_max ) { + ulong active_idx = packed_partition_idx( &shmem->whead[ 0 ] ); + if( active_idx>=recover->partition_max && active_idxpartition_pool, active_idx ); + active->write_offset = packed_partition_offset( &shmem->whead[ 0 ] ); + } + } + + /* Release partitions that have been previously allocated. Must hold + partition_lock because partition_pool_ele_release mutates the + pool free list. Before releasing, unlink any partition that sits + on a compaction dlist (queued flag). */ + spin_lock_acquire( &shmem->partition_lock ); + for( ulong p=recover->partition_max; ppartition_pool, p ); + if( FD_UNLIKELY( part->queued ) ) { + compaction_dlist_ele_remove( accdb->compaction_dlist[ part->layer ], part, accdb->partition_pool ); + } + partition_pool_ele_release( accdb->partition_pool, part ); + } + + shmem->whead[ 0 ].val = recover->whead_val; + shmem->has_partition[ 0 ] = recover->has_partition; + shmem->partition_max = recover->partition_max; + + /* disk_used_bytes is NOT saved/restored here. It is implicitly + reverted by purge_inner -> acc_unlink, which decrements + disk_used_bytes for each unlinked entry. The caller must + complete the purge before calling revert_whead. */ + + shmem->shmetrics->disk_current_bytes = recover->disk_current_bytes; + shmem->shmetrics->disk_allocated_bytes = recover->partition_max * shmem->partition_sz; + + if( recover->has_partition ) { + accdb_offset_t sp_off = (accdb_offset_t){ .val = recover->whead_val }; + ulong sp_idx = packed_partition_idx( &sp_off ); + fd_accdb_partition_t * sp = partition_pool_ele( accdb->partition_pool, sp_idx ); + sp->bytes_freed = recover->savepoint_bytes_freed; + sp->write_offset = 0UL; + } + + spin_lock_release( &shmem->partition_lock ); +} + fd_accdb_t * fd_accdb_join( void * shaccdb ) { if( FD_UNLIKELY( !shaccdb ) ) { @@ -3476,22 +3667,33 @@ background_preevict( fd_accdb_t * accdb, } int -fd_accdb_snapshot_write_one( fd_accdb_t * accdb, - uchar const * pubkey, - ulong slot, - ulong lamports, - ulong data_len, - int executable, - ulong * out_replaced_lamports ) { +fd_accdb_snapshot_write_one( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + ulong slot, + ulong lamports, + ulong data_len, + int executable, + ulong * out_replaced_lamports ) { /* Snapshot slots are stored in the 32-bit cache_idx scratch field during loading. Reject anything that would truncate. */ if( FD_UNLIKELY( slot>UINT_MAX ) ) FD_LOG_ERR(( "snapshot slot %lu exceeds 2^32-1, accdb format must be widened", slot )); + int incremental = fork_id.val!=USHORT_MAX; + + fd_accdb_fork_t * fork = NULL; + uint fork_gen = 0U; + if( FD_UNLIKELY( incremental ) ) { + fork = &accdb->fork_pool[ fork_id.val ]; + fork_gen = fork->shmem->generation; + } + ulong hash = fd_accdb_hash( pubkey, accdb->shmem->seed )&(accdb->shmem->chain_cnt-1UL); *out_replaced_lamports = 0UL; fd_accdb_accmeta_t * accmeta = NULL; + int cross_fork = 0; /* incremental only: existing entry from different fork */ ulong next_acc = accdb->acc_map[ hash ]; while( next_acc!=UINT_MAX ) { @@ -3506,10 +3708,17 @@ fd_accdb_snapshot_write_one( fd_accdb_t * accdb, ulong dead_off = allocate_next_write( accdb, dead_sz ); fd_accdb_shmem_bytes_freed( accdb->shmem, dead_off, dead_sz ); return -1; + } + if( FD_UNLIKELY( incremental ) && candidate_acc->key.generation!=fork_gen ) { + /* Cross-snapshot override: don't replace in-place; insert a + new entry alongside the old one so purge can revert. */ + cross_fork = 1; + *out_replaced_lamports = candidate_acc->lamports; } else { + /* Same-fork duplicate (or full-snapshot mode): replace in-place */ accmeta = candidate_acc; - break; } + break; } next_acc = candidate_acc->map.next; } @@ -3520,10 +3729,27 @@ fd_accdb_snapshot_write_one( fd_accdb_t * accdb, accmeta = acc_pool_acquire( accdb->acc_pool_join ); if( FD_UNLIKELY( !accmeta ) ) FD_LOG_ERR(( "accounts database ran out of space during snapshot loading, increase [accounts.max_accounts], current value is %lu", acc_pool_ele_max( accdb->acc_pool_join ) )); + uint acc_idx = (uint)acc_pool_idx( accdb->acc_pool_join, accmeta ); + fd_memcpy( accmeta->key.pubkey, pubkey, 32UL ); - accmeta->key.generation = accdb->shmem->generation; + if( FD_UNLIKELY( !incremental && accdb->shmem->root_fork_id.val==USHORT_MAX ) ) { + FD_LOG_ERR(( "snapshot_write_one called without a root fork attached" )); + } + accmeta->key.generation = incremental ? fork_gen : accdb->fork_pool[ accdb->shmem->root_fork_id.val ].shmem->generation; accmeta->map.next = accdb->acc_map[ hash ]; - accdb->acc_map[ hash ] = (uint)acc_pool_idx( accdb->acc_pool_join, accmeta ); + accdb->acc_map[ hash ] = acc_idx; + + /* In incremental mode, record this insert in the fork's txn list + so purge can find and unlink it on failure. */ + if( FD_UNLIKELY( incremental ) ) { + fd_accdb_txn_t * txn = txn_pool_acquire( accdb->txn_pool ); + if( FD_UNLIKELY( !txn ) ) FD_LOG_ERR(( "txn pool exhausted during incremental snapshot loading" )); + txn->acc_map_idx = (uint)hash; + txn->acc_pool_idx = acc_idx; + uint txn_idx = (uint)txn_pool_idx( accdb->txn_pool, txn ); + txn->fork.next = fork->shmem->txn_head; + fork->shmem->txn_head = txn_idx; + } } if( FD_UNLIKELY( replace ) ) { @@ -3538,18 +3764,20 @@ fd_accdb_snapshot_write_one( fd_accdb_t * accdb, accmeta->lamports = lamports; accmeta->executable_size = FD_ACCDB_SIZE_PACK( (uint)data_len, executable ); ulong entry_sz = sizeof(fd_accdb_disk_meta_t)+data_len; - accmeta->offset_fork = allocate_next_write( accdb, entry_sz ); + ulong file_off = allocate_next_write( accdb, entry_sz ); + accmeta->offset_fork = incremental ? fd_accdb_acc_pack_offset_fork( file_off, fork_id.val ) : file_off; accdb->shmem->shmetrics->disk_used_bytes += entry_sz; if( !replace ) accdb->shmem->shmetrics->accounts_total++; - return replace ? 2 : 1; + return ( replace || cross_fork ) ? 2 : 1; } int fd_accdb_snapshot_write_batch( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, ulong cnt, uchar const * const pubkeys[], - ulong const slots[], + ulong const slots[], ulong const lamports[], ulong const data_lens[], int const executables[], @@ -3558,13 +3786,26 @@ fd_accdb_snapshot_write_batch( fd_accdb_t * accdb, ulong * accounts_loaded, ulong * out_replaced_lamports, ulong * out_ignored_lamports ) { + int incremental = fork_id.val!=USHORT_MAX; + + fd_accdb_fork_t * fork = NULL; + uint fork_gen = 0U; + if( FD_UNLIKELY( incremental ) ) { + fork = &accdb->fork_pool[ fork_id.val ]; + fork_gen = fork->shmem->generation; + } + ulong seed = accdb->shmem->seed; ulong chain_msk = accdb->shmem->chain_cnt - 1UL; - uint gen = accdb->shmem->generation; + if( FD_UNLIKELY( !incremental && accdb->shmem->root_fork_id.val==USHORT_MAX ) ) { + FD_LOG_ERR(( "snapshot_write_batch called without a root fork attached" )); + } + uint gen = incremental ? 0U : accdb->fork_pool[ accdb->shmem->root_fork_id.val ].shmem->generation; ulong ignored = 0UL; ulong replaced = 0UL; ulong loaded = 0UL; + ulong cross_replaced = 0UL; /* cross-fork overrides (subset of replaced) */ ulong replaced_lamports = 0UL; ulong ignored_lamports = 0UL; @@ -3577,13 +3818,15 @@ fd_accdb_snapshot_write_batch( fd_accdb_t * accdb, /* Phase 1: compute hashes and prefetch chain heads. */ ulong hashes[ 8 ]; - fd_accdb_accmeta_t * existing[ 8 ]; + fd_accdb_accmeta_t * existing[ 8 ]; /* same-fork dup or full-snapshot replace */ + fd_accdb_accmeta_t * cross_existing[ 8 ]; /* cross-fork dup (incremental only) */ int skip[ 8 ]; for( ulong i=0UL; iacc_map[ hashes[ i ] ], 1, 1 ); @@ -3592,7 +3835,9 @@ fd_accdb_snapshot_write_batch( fd_accdb_t * accdb, /* Phase 2: walk chains looking for duplicates. By now the chain heads prefetched above should be warm in L1/L2. If the existing entry has a higher slot, mark skip. Otherwise, save the existing - entry pointer for in-place update (matching write_one semantics). */ + entry pointer for in-place update (matching write_one semantics). + In incremental mode, cross-fork entries are saved separately so + they can be left in place while a new entry is inserted. */ for( ulong i=0UL; iacc_map[ hashes[ i ] ]; @@ -3611,6 +3856,8 @@ fd_accdb_snapshot_write_batch( fd_accdb_t * accdb, if( FD_UNLIKELY( !memcmp( pubkeys[ i ], candidate->key.pubkey, 32UL ) ) ) { if( FD_LIKELY( (ulong)candidate->cache_idx>slots[ i ] ) ) { skip[ i ] = 1; + } else if( FD_UNLIKELY( incremental ) && candidate->key.generation!=fork_gen ) { + cross_existing[ i ] = candidate; } else { existing[ i ] = candidate; } @@ -3670,22 +3917,48 @@ fd_accdb_snapshot_write_batch( fd_accdb_t * accdb, } else { accmeta = acc_pool_acquire( accdb->acc_pool_join ); if( FD_UNLIKELY( !accmeta ) ) FD_LOG_ERR(( "accounts database ran out of space during snapshot loading" )); + + uint acc_idx = (uint)acc_pool_idx( accdb->acc_pool_join, accmeta ); + fd_memcpy( accmeta->key.pubkey, pubkeys[ i ], 32UL ); - accmeta->key.generation = gen; + accmeta->key.generation = incremental ? fork_gen : gen; accmeta->map.next = accdb->acc_map[ hashes[ i ] ]; - accdb->acc_map[ hashes[ i ] ] = (uint)acc_pool_idx( accdb->acc_pool_join, accmeta ); - loaded++; + accdb->acc_map[ hashes[ i ] ] = acc_idx; + + if( FD_UNLIKELY( incremental ) ) { + fd_accdb_txn_t * txn = txn_pool_acquire( accdb->txn_pool ); + if( FD_UNLIKELY( !txn ) ) FD_LOG_ERR(( "txn pool exhausted during incremental snapshot loading" )); + txn->acc_map_idx = (uint)hashes[ i ]; + txn->acc_pool_idx = acc_idx; + uint txn_idx = (uint)txn_pool_idx( accdb->txn_pool, txn ); + txn->fork.next = fork->shmem->txn_head; + fork->shmem->txn_head = txn_idx; + } + + if( cross_existing[ i ] ) { + replaced_lamports += cross_existing[ i ]->lamports; + replaced++; + cross_replaced++; + } else { + loaded++; + } } accmeta->cache_idx = (uint)slots[ i ]; accmeta->lamports = lamports[ i ]; accmeta->executable_size = FD_ACCDB_SIZE_PACK( (uint)data_lens[ i ], executables[ i ] ); ulong entry_sz = sizeof(fd_accdb_disk_meta_t)+data_lens[ i ]; - accmeta->offset_fork = allocate_next_write( accdb, entry_sz ); + ulong file_off = allocate_next_write( accdb, entry_sz ); + accmeta->offset_fork = incremental ? fd_accdb_acc_pack_offset_fork( file_off, fork_id.val ) : file_off; accdb->shmem->shmetrics->disk_used_bytes += entry_sz; } - accdb->shmem->shmetrics->accounts_total += loaded; + /* accounts_total tracks acc_pool entries: increment for every new + allocation (both genuinely new accounts and cross-fork overrides + that insert a second pool entry). The output counter + *accounts_loaded excludes cross-fork overrides to match + snapshot_write_one semantics (cross-fork returns 2 = replaced). */ + accdb->shmem->shmetrics->accounts_total += loaded + cross_replaced; *accounts_ignored = ignored; *accounts_replaced = replaced; @@ -3711,6 +3984,16 @@ fd_accdb_background( fd_accdb_t * accdb, case FD_ACCDB_CMD_PURGE: background_purge( accdb, fork_id ); break; + case FD_ACCDB_CMD_CLEAR_DEFERRED: { + /* Posted by fd_accdb_reset after it clobbers shared pools. + T2's deferred fork chain now points at recycled elements; + discard the stale pointers. Epoch slots are preserved + across reset so no re-join is needed. */ + accdb->deferred_fork_head = NULL; + accdb->deferred_fork_tail = NULL; + accdb->deferred_fork_epoch = 0UL; + break; + } default: FD_LOG_ERR(( "unexpected accdb cmd_op %u", op )); } diff --git a/src/flamenco/accdb/fd_accdb.h b/src/flamenco/accdb/fd_accdb.h index c2a943234dd..20c0995fde1 100644 --- a/src/flamenco/accdb/fd_accdb.h +++ b/src/flamenco/accdb/fd_accdb.h @@ -186,6 +186,46 @@ fd_accdb_snapshot_load_begin( fd_accdb_t * accdb ); void fd_accdb_snapshot_load_end( fd_accdb_t * accdb ); +/* fd_accdb_snapshot_recovery_t captures layer-0 write head metadata. + Used by fd_accdb_snapshot_{save,revert}_whead to save and restore + accdb state across an incremental snapshot attempt. */ + +struct fd_accdb_snapshot_recovery { + ulong whead_val; /* whead[0].val */ + int has_partition; /* has_partition[0] */ + ulong partition_max; /* partition_max */ + ulong disk_current_bytes; /* disk_current_bytes metric */ + ulong savepoint_bytes_freed; /* bytes_freed of the save-point partition */ +}; + +typedef struct fd_accdb_snapshot_recovery fd_accdb_snapshot_recovery_t; + +/* fd_accdb_snapshot_save_whead captures the current layer-0 write head, + partition state, and disk_current_bytes metric into the provided + recovery struct. Also captures the save-point partition's + bytes_freed. */ + +void +fd_accdb_snapshot_save_whead( fd_accdb_t * accdb, + fd_accdb_snapshot_recovery_t * out ); + +/* fd_accdb_snapshot_revert_whead restores the layer-0 write head to a + previously saved position. + + It internally waits for the pending background purge command to + complete on T2 before releasing partitions, so the caller does not + need to insert a separate wait_cmd barrier. + + Previously allocated partitions (with indices in the range + [saved_partition_max, current partition_max)) are released back + to the partition pool. disk_current_bytes is restored to the saved + value rather than computed per-partition, and the save-point + partition's bytes_freed and write_offset are reset. */ + +void +fd_accdb_snapshot_revert_whead( fd_accdb_t * accdb, + fd_accdb_snapshot_recovery_t const * recover ); + /* fd_accdb_attach_child allocates a new fork as a child of parent_fork_id and returns the new fork's id. This must be done any time a new fork is being inserted into the accounts database, @@ -438,6 +478,17 @@ fd_accdb_lamports( fd_accdb_t * accdb, fd_accdb_fork_id_t fork_id, uchar const * pubkey ); +/* fd_accdb_reset reinitializes the accdb to the state immediately after + fd_accdb_new. All in-memory index state is cleared and all pool + joins are re-established. The caller is responsible for truncating + the on-disk file separately (e.g. via the snapwr tile). + + The caller must guarantee that no other thread is concurrently + accessing the accdb (no outstanding acquires, no background work). */ + +void +fd_accdb_reset( fd_accdb_t * accdb ); + /* fd_accdb_snapshot_write_one inserts or replaces an account during snapshot loading. Returns -1 if the write was ignored (an existing acc has a higher slot), 1 if a new acc was inserted, 2 if an @@ -448,16 +499,31 @@ fd_accdb_lamports( fd_accdb_t * accdb, slot must be <= UINT_MAX. The slot is held in a 32-bit scratch field during snapshot loading; the accdb format must be widened before Solana reaches slot 2^32. Passing a larger slot crashes the - process. */ + process. + + fork_id controls recovery behavior: + + USHORT_MAX, full-snapshot mode. Existing entries with the same + pubkey are replaced in-place. No txn entries are + created. + + other, incremental-snapshot mode. Cross-snapshot overrides + (existing entry from a different fork) insert a NEW + acc_pool entry alongside the old one and create a txn + record on fork_id, so fd_accdb_purge can revert the + incremental writes on failure. Intra-fork duplicates + (same pubkey from the same fork) are still replaced + in-place. */ int -fd_accdb_snapshot_write_one( fd_accdb_t * accdb, - uchar const * pubkey, - ulong slot, - ulong lamports, - ulong data_len, - int executable, - ulong * out_replaced_lamports ); +fd_accdb_snapshot_write_one( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + ulong slot, + ulong lamports, + ulong data_len, + int executable, + ulong * out_replaced_lamports ); /* fd_accdb_snapshot_write_batch processes up to 8 accounts at once, using software prefetching to overlap hash chain memory latency with @@ -473,10 +539,15 @@ fd_accdb_snapshot_write_one( fd_accdb_t * accdb, malformed). Output counters are not meaningful when -1 is returned. Each slots[i] must be <= UINT_MAX (see fd_accdb_snapshot_write_one - for the rationale). Passing a larger slot crashes the process. */ + for the rationale). Passing a larger slot crashes the process. + + fork_id has the same semantics as in fd_accdb_snapshot_write_one: + USHORT_MAX for full-snapshot mode, otherwise incremental mode with + txn tracking on the specified fork. */ int fd_accdb_snapshot_write_batch( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, ulong cnt, uchar const * const pubkeys[], ulong const slots[], diff --git a/src/flamenco/accdb/fd_accdb_private.h b/src/flamenco/accdb/fd_accdb_private.h index 6358d564bb7..a07e69a030a 100644 --- a/src/flamenco/accdb/fd_accdb_private.h +++ b/src/flamenco/accdb/fd_accdb_private.h @@ -490,6 +490,11 @@ struct fd_accdb_shmem_private { joiner_cnt, every reservation succeeds trivially). */ ulong joiner_cnt_max; + /* Per-joiner worst-case cache reservation, set at construction. + Used by fd_accdb_reset to replicate the cache_class_used sentinel + logic from fd_accdb_shmem_new. */ + ulong cache_min_reserved; + ulong partition_pool_off; /* compaction_dlist_off[k] is the byte offset (from shmem base) of @@ -529,9 +534,10 @@ struct fd_accdb_shmem_private { Padded to its own cache line to avoid false sharing with the hot epoch / joiner_epochs fields above. */ -#define FD_ACCDB_CMD_IDLE (0U) -#define FD_ACCDB_CMD_ADVANCE_ROOT (1U) -#define FD_ACCDB_CMD_PURGE (2U) +#define FD_ACCDB_CMD_IDLE (0U) +#define FD_ACCDB_CMD_ADVANCE_ROOT (1U) +#define FD_ACCDB_CMD_PURGE (2U) +#define FD_ACCDB_CMD_CLEAR_DEFERRED (3U) uint cmd_op __attribute__((aligned(64))); /* FD_ACCDB_CMD_* */ ushort cmd_fork_id; /* argument */ diff --git a/src/flamenco/accdb/fd_accdb_shmem.c b/src/flamenco/accdb/fd_accdb_shmem.c index b395c5b3006..eb424e44f2e 100644 --- a/src/flamenco/accdb/fd_accdb_shmem.c +++ b/src/flamenco/accdb/fd_accdb_shmem.c @@ -369,6 +369,7 @@ fd_accdb_shmem_new( void * shmem, accdb->max_accounts = max_accounts; accdb->max_account_writes_per_slot = max_account_writes_per_slot; accdb->joiner_cnt_max = joiner_cnt; + accdb->cache_min_reserved = cache_min_reserved; accdb->partition_cnt = partition_cnt; accdb->partition_sz = partition_sz; accdb->partition_max = 0UL; diff --git a/src/flamenco/accdb/test_accdb.c b/src/flamenco/accdb/test_accdb.c index b573680b130..0e019b460ed 100644 --- a/src/flamenco/accdb/test_accdb.c +++ b/src/flamenco/accdb/test_accdb.c @@ -1010,6 +1010,211 @@ test_acquire_b_refund_accounting( void ) { test_teardown( accdb, fd ); } +/* test_reset: after populating accounts across forks, fd_accdb_reset + must zero the gauges (except accounts_capacity), make old accounts + invisible, and leave the accdb fully operational for new writes. */ +static void +test_reset( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + + uchar pk_a[ 32UL ] = { 0xA1 }; + uchar pk_b[ 32UL ] = { 0xA2 }; + uchar pk_c[ 32UL ] = { 0xA3 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + accdb_write( accdb, root, pk_a, 100UL, NULL, 0UL, owner2 ); + accdb_write( accdb, root, pk_b, 200UL, NULL, 0UL, owner2 ); + + fd_accdb_fork_id_t child = fd_accdb_attach_child( accdb, root ); + accdb_write( accdb, child, pk_c, 300UL, NULL, 0UL, owner3 ); + + fd_accdb_shmem_metrics_t const * shmetrics = fd_accdb_shmetrics( accdb ); + FD_TEST( shmetrics->accounts_total>0UL ); + FD_TEST( shmetrics->accounts_capacity==1024UL ); + + /* Reset the accdb. */ + fd_accdb_reset( accdb ); + drain_background( accdb ); + + /* Post-reset invariants. */ + FD_TEST( shmetrics->accounts_total == 0UL ); + FD_TEST( shmetrics->accounts_capacity == 1024UL ); + FD_TEST( shmetrics->disk_current_bytes == 0UL ); + FD_TEST( shmetrics->disk_allocated_bytes== 0UL ); + FD_TEST( shmetrics->disk_used_bytes == 0UL ); + FD_TEST( shmetrics->in_compaction == 0 ); + + /* Create a new root fork and verify old accounts are gone. */ + fd_accdb_fork_id_t new_root = fd_accdb_attach_child( accdb, SENTINEL ); + FD_TEST( !accdb_read( accdb, new_root, pk_a, NULL, NULL, NULL, owner ) ); + FD_TEST( !accdb_read( accdb, new_root, pk_b, NULL, NULL, NULL, owner ) ); + FD_TEST( !accdb_read( accdb, new_root, pk_c, NULL, NULL, NULL, owner ) ); + + /* Write a new account and read it back, accdb is operational. */ + uchar pk_new[ 32UL ] = { 0xBE }; + accdb_write( accdb, new_root, pk_new, 999UL, NULL, 0UL, owner3 ); + FD_TEST( accdb_read( accdb, new_root, pk_new, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==999UL ); + FD_TEST( !memcmp( owner, owner3, 32UL ) ); + + test_teardown( accdb, fd ); +} + +/* test_revert_whead: revert_whead releases partitions and restores + disk_current_bytes. Use a partition size close to the minimum and + large account writes to deterministically allocate additional + partitions during the incremental phase so the partition release + logic is exercised. */ +static void +test_revert_whead( void ) { + int fd; + ulong psz = 11UL<<20UL; /* 11 MiB, just above ~10 MiB minimum */ + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, psz ); + fd_accdb_shmem_metrics_t const * shmetrics = fd_accdb_shmetrics( accdb ); + + /* Create root fork. */ + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + + /* Full-snapshot load: write 5 accounts with 4 MiB data each. + Total ~20 MiB spans multiple 11 MiB partitions, so + partition_max grows beyond 1. */ + fd_accdb_snapshot_load_begin( accdb ); + uchar snap_pks[ 5 ][ 32UL ]; + ulong replaced = 0UL; + for( ulong i=0UL; i<5UL; i++ ) { + fd_memset( snap_pks[ i ], 0, 32UL ); + snap_pks[ i ][ 0 ] = (uchar)( 0xF0+i ); + fd_accdb_snapshot_write_one( accdb, SENTINEL, snap_pks[ i ], + 10UL, (i+1UL)*100UL, 4UL<<20UL, 0, &replaced ); + } + fd_accdb_snapshot_load_end( accdb ); + + /* Capture savepoint. */ + fd_accdb_snapshot_recovery_t recovery; + fd_accdb_snapshot_save_whead( accdb, &recovery ); + ulong saved_partition_max = recovery.partition_max; + ulong saved_disk_current = recovery.disk_current_bytes; + + FD_TEST( saved_partition_max>0UL ); + FD_TEST( saved_disk_current>0UL ); + + /* Create an incremental fork. */ + fd_accdb_fork_id_t incr_fork = fd_accdb_attach_child( accdb, root ); + + /* Incremental snapshot load: write 5 more 4 MiB accounts. + Forces allocation of additional partitions beyond the savepoint. */ + fd_accdb_snapshot_load_begin( accdb ); + uchar incr_pks[ 5 ][ 32UL ]; + for( ulong i=0UL; i<5UL; i++ ) { + fd_memset( incr_pks[ i ], 0, 32UL ); + incr_pks[ i ][ 0 ] = (uchar)( 0xE0+i ); + fd_accdb_snapshot_write_one( accdb, incr_fork, incr_pks[ i ], + 20UL, (i+1UL)*1000UL, 4UL<<20UL, 0, &replaced ); + } + fd_accdb_snapshot_load_end( accdb ); + + /* Verify disk_current_bytes grew from the incremental writes. */ + FD_TEST( shmetrics->disk_current_bytes>saved_disk_current ); + + /* Purge the incremental fork, then drain to process the purge + command. drain_background only calls fd_accdb_background once, + which processes the purge and returns before reaching compaction. */ + fd_accdb_purge( accdb, incr_fork ); + drain_background( accdb ); + + /* Revert. */ + fd_accdb_snapshot_revert_whead( accdb, &recovery ); + + /* Post-revert invariants. */ + FD_TEST( fd_accdb_shmem_partition_max( test_shmem_mem ) == saved_partition_max ); + FD_TEST( shmetrics->disk_current_bytes == saved_disk_current ); + FD_TEST( shmetrics->disk_allocated_bytes == saved_partition_max*psz ); + + /* Full-snapshot accounts are still readable on the root fork. */ + ulong lamports; + ulong data_len; + uchar owner[ 32UL ]; + for( ulong i=0UL; i<5UL; i++ ) { + FD_TEST( accdb_read( accdb, root, snap_pks[ i ], &lamports, NULL, &data_len, owner ) ); + FD_TEST( lamports==(i+1UL)*100UL ); + } + + test_teardown( accdb, fd ); +} + +/* test_incremental_cross_fork_override verifies that incremental + cross-fork overrides create new acc_pool entries with txn records, + and that purging the incremental fork + revert_whead fully restores + the original full-snapshot state. */ +static void +test_incremental_cross_fork_override( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + fd_accdb_shmem_metrics_t const * shmetrics = fd_accdb_shmetrics( accdb ); + + ulong lamports; + ulong data_len; + uchar owner[ 32UL ]; + + uchar pk0[ 32UL ] = { 0xD0 }; + uchar pk1[ 32UL ] = { 0xD1 }; + uchar pk2[ 32UL ] = { 0xD2 }; + + /* Create root fork. */ + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + + /* Full-snapshot load: write 3 accounts with 1 KiB data each. */ + fd_accdb_snapshot_load_begin( accdb ); + ulong replaced = 0UL; + fd_accdb_snapshot_write_one( accdb, SENTINEL, pk0, 10UL, 100UL, 1024UL, 0, &replaced ); + fd_accdb_snapshot_write_one( accdb, SENTINEL, pk1, 10UL, 200UL, 1024UL, 0, &replaced ); + fd_accdb_snapshot_write_one( accdb, SENTINEL, pk2, 10UL, 300UL, 1024UL, 0, &replaced ); + fd_accdb_snapshot_load_end( accdb ); + + /* Save whead. */ + fd_accdb_snapshot_recovery_t recovery; + fd_accdb_snapshot_save_whead( accdb, &recovery ); + + /* Create incremental fork. */ + fd_accdb_fork_id_t incr_fork = fd_accdb_attach_child( accdb, root ); + + /* Incremental snapshot load: override pk0 and pk1 with new lamports. */ + fd_accdb_snapshot_load_begin( accdb ); + fd_accdb_snapshot_write_one( accdb, incr_fork, pk0, 20UL, 111UL, 1024UL, 0, &replaced ); + fd_accdb_snapshot_write_one( accdb, incr_fork, pk1, 20UL, 222UL, 1024UL, 0, &replaced ); + fd_accdb_snapshot_load_end( accdb ); + + /* Verify accounts_total reflects the cross-fork overrides: 3 original + entries + 2 cross-fork entries = 5. */ + FD_TEST( shmetrics->accounts_total==5UL ); + + /* Simulate failure: purge the incremental fork. */ + fd_accdb_purge( accdb, incr_fork ); + drain_background( accdb ); + + /* Revert whead. */ + fd_accdb_snapshot_revert_whead( accdb, &recovery ); + + /* Assert prior state restored on root fork. */ + FD_TEST( accdb_read( accdb, root, pk0, &lamports, NULL, &data_len, owner ) ); + FD_TEST( lamports==100UL ); + FD_TEST( accdb_read( accdb, root, pk1, &lamports, NULL, &data_len, owner ) ); + FD_TEST( lamports==200UL ); + FD_TEST( accdb_read( accdb, root, pk2, &lamports, NULL, &data_len, owner ) ); + FD_TEST( lamports==300UL ); + + /* The cross-fork override entries should be removed by purge. */ + FD_TEST( shmetrics->accounts_total==3UL ); + + test_teardown( accdb, fd ); +} + /* test_sentinel_index_wrap is a regression for issue #543: at the maximum partition_cnt==8192 the initial write-head sentinel's packed partition index (partition_cnt) does not fit in the 13-bit index @@ -1144,6 +1349,15 @@ main( int argc, FD_LOG_NOTICE(( "test_sentinel_index_wrap ..." )); test_sentinel_index_wrap(); + FD_LOG_NOTICE(( "test_reset ..." )); + test_reset(); + + FD_LOG_NOTICE(( "test_revert_whead ..." )); + test_revert_whead(); + + FD_LOG_NOTICE(( "test_incremental_cross_fork_override ..." )); + test_incremental_cross_fork_override(); + FD_LOG_NOTICE(( "success" )); fd_halt(); From 96126e884dcb69d500e0d5825741c5384b4ced71 Mon Sep 17 00:00:00 2001 From: Kunal Bhargava Date: Tue, 16 Jun 2026 14:21:29 +0000 Subject: [PATCH 47/61] ledgers: delay_commission_updates + validator_admission_ticket --- src/flamenco/runtime/tests/run_backtest_all.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/flamenco/runtime/tests/run_backtest_all.sh b/src/flamenco/runtime/tests/run_backtest_all.sh index fcd688f3ad9..27a1ecb5227 100755 --- a/src/flamenco/runtime/tests/run_backtest_all.sh +++ b/src/flamenco/runtime/tests/run_backtest_all.sh @@ -136,3 +136,18 @@ src/flamenco/runtime/tests/run_ledger_backtest.sh -l disable_sbpf_v0_v1_v2_deplo src/flamenco/runtime/tests/run_ledger_backtest.sh -l define_ltds_fee_only_semantics-v4.1.0-beta.1 1 -m 1000 -e 330 src/flamenco/runtime/tests/run_ledger_backtest.sh -l loader_v3_minimum_extend_program_size 1 -m 1000 -e 590 src/flamenco/runtime/tests/run_ledger_backtest.sh -l enable_sha512_syscall 1 -m 1000 -e 611 + +# Delay-commission epoch-boundary scenarios (local cluster, agave-cluster generated). +# Group 1: delay_commission_updates ON, VAT OFF. +src/flamenco/runtime/tests/run_ledger_backtest.sh -l dc-stake-and-commission 1 -m 1000000 -e 1390 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l dc-unstake-recommission-restake 1 -m 1000000 -e 1540 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l dc-delete-recreate-commission 1 -m 1000000 -e 1025 +# Group 2: delay_commission_updates + validator_admission_ticket (VAT) + bls_pubkey_management ALL ON. +src/flamenco/runtime/tests/run_ledger_backtest.sh -l vat-dc-stake-and-commission 1 -m 1000000 -e 1295 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l vat-dc-unstake-recommission-restake 1 -m 1000000 -e 1540 +# vat-dc-deleted-vote-per: boots mid-PER @ slot 1025, 10k stake accounts (3-partition PER), vote acct +# voted epochs 1-6 w/ commission 50->40->30->20 (present in top_votes t_1/t_2/t_3), deleted ep8 + recreated ep9 (#9840). +src/flamenco/runtime/tests/run_ledger_backtest.sh -l vat-dc-deleted-vote-per 4 -m 2000000 -e 2555 +# vat-activate-10k: VAT PENDING at genesis -> activates @ slot 256 (transition epoch 1); boots epoch-0 (VAT inactive), +# 10k stake accounts, 2nd vote acct voting across the transition w/ commission 100 (epoch0) -> 0 (epoch1+, max split delta). +src/flamenco/runtime/tests/run_ledger_backtest.sh -l vat-activate-10k 4 -m 2000000 -e 1020 From f81f0c0bd36f4ffa904bf47dc8e01ccd94310cde Mon Sep 17 00:00:00 2001 From: Kunal Bhargava Date: Tue, 16 Jun 2026 14:37:05 +0000 Subject: [PATCH 48/61] ledgers: clean up unused arg --- .../runtime/tests/run_backtest_all.sh | 270 +++++++++--------- src/flamenco/runtime/tests/run_backtest_ci.sh | 68 ++--- 2 files changed, 169 insertions(+), 169 deletions(-) diff --git a/src/flamenco/runtime/tests/run_backtest_all.sh b/src/flamenco/runtime/tests/run_backtest_all.sh index 27a1ecb5227..effb71df921 100755 --- a/src/flamenco/runtime/tests/run_backtest_all.sh +++ b/src/flamenco/runtime/tests/run_backtest_all.sh @@ -1,153 +1,153 @@ #!/bin/bash set -e -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-519-v4.1.0-beta.1 3 -m 2000000 -e 255312007 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257066033-v4.1.0-beta.1 3 -m 2000000 -e 257066038 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257066844-v4.1.0-beta.1 3 -m 2000000 -e 257066849 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257067457-v4.1.0-beta.1 3 -m 2000000 -e 257067461 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257068890-v4.1.0-beta.1 3 -m 2000000 -e 257068895 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257181622-v4.1.0-beta.1 3 -m 2000000 -e 257181624 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-254462437-v4.1.0-beta.1 16 -m 10000000 -e 254462598 -# [skipped: un-creatable under v4.1: ALT durable-nonce rejected by require_static_nonce_account] src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-262654839-v4.0.0 3 -m 10000000 -e 262654840 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257037451-v4.1.0-beta.1 3 -m 2000000 -e 257037454 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257035225-v4.1.0-beta.1 4 -m 2000000 -e 257035233 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257465453-v4.1.0-beta.1 4 -m 10000000 -e 257465454 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257058865-v4.1.0-beta.1 3 -m 2000000 -e 257058870 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257059815-v4.1.0-beta.1 3 -m 2000000 -e 257059818 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257061172-v4.1.0-beta.1 3 -m 2000000 -e 257061175 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257222682-v4.1.0-beta.1 3 -m 2000000 -e 257222688 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-264890264-v4.1.0-beta.1 3 -m 2000000 -e 264890265 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257229353-v4.1.0-beta.1 4 -m 2000000 -e 257229357 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257257983-v4.1.0-beta.1 3 -m 2000000 -e 257257986 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-267728520-v4.1.0-beta.1 3 -m 2000000 -e 267728522 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-267651942-v4.1.0-beta.1 3 -m 2000000 -e 267651943 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-267081197-v4.1.0-beta.1 3 -m 2000000 -e 267081198 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-267085604-v4.1.0-beta.1 3 -m 2000000 -e 267085605 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-265688706-v4.1.0-beta.1 3 -m 2000000 -e 265688707 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-265330432-v4.1.0-beta.1 3 -m 2000000 -e 265330433 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-268575190-v4.1.0-beta.1 3 -m 2000000 -e 268575191 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-268129380-v4.1.0-beta.1 3 -m 2000000 -e 268129380 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-268163043-v4.1.0-beta.1 3 -m 2000000 -e 268163043 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-269511381-v4.1.0-beta.1 3 -m 2000000 -e 269511381 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-269567236-v4.1.0-beta.1 3 -m 2000000 -e 269567236 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-266134813-v4.1.0-beta.1 3 -m 2000000 -e 266134814 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-266545736-v4.1.0-beta.1 3 -m 2000000 -e 266545737 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-267059180-v4.1.0-beta.1 3 -m 2000000 -e 267059181 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-267580466-v4.1.0-beta.1 3 -m 2000000 -e 267580467 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-268196194-v4.1.0-beta.1 3 -m 2000000 -e 268196195 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-267766641-v4.1.0-beta.1 3 -m 2000000 -e 267766642 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-269648145-v4.1.0-beta.1 3 -m 2000000 -e 269648146 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-281688085-v4.1.0-beta.1 3 -m 2000000 -e 281688086 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-277660422-v4.1.0-beta.1 3 -m 2000000 -e 277660423 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-277876060-v4.1.0-beta.1 3 -m 2000000 -e 277876061 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-277927063-v4.1.0-beta.1 3 -m 2000000 -e 277927065 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-281375356-v4.1.0-beta.1 3 -m 2000000 -e 281375359 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-251418170-v4.1.0-beta.1 5 -m 2000000 -e 251418233 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-282232100-v4.1.0-beta.1 3 -m 2000000 -e 282232101 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-282151715-v4.1.0-beta.1 3 -m 2000000 -e 282151717 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-286450148-v4.1.0-beta.1 3 -m 2000000 -e 286450151 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l multi-epoch-per-200-v4.1.0-beta.1 1 -m 2000000 -e 984 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l multi-epoch-per-300-v4.1.0-beta.1 1 -m 2000000 -e 984 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l multi-epoch-per-500-v4.1.0-beta.1 1 -m 2000000 -e 984 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-297489336-v4.1.0-beta.1 3 -m 2000000 -e 297489363 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-300377724-v4.1.0-beta.1 5 -m 2000000 -e 300377724 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-300645644-v4.1.0-beta.1 5 -m 2000000 -e 300645644 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-300648964-v4.1.0-beta.1 5 -m 2000000 -e 300648964 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-301359740-v4.1.0-beta.1 5 -m 2000000 -e 301359740 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257181032-v4.1.0-beta.1 3 -m 2000000 -e 257181035 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257047660-v4.1.0-beta.1 3 -m 2000000 -e 257047662 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257047659-v4.1.0-beta.1 3 -m 2000000 -e 257047660 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-308445707-v4.1.0-beta.1 5 -m 2000000 -e 308445711 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-307395181-v4.1.0-beta.1 3 -m 2000000 -e 307395190 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-308392063-v4.1.0-beta.1 5 -m 2000000 -e 308392063 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-350814254-v4.1.0-beta.1 3 -m 2000000 -e 350814284 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-311586340-v4.1.0-beta.1 3 -m 2000000 -e 311586380 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-281546597-v4.1.0-beta.1 3 -m 2000000 -e 281546597 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-324823213-v4.1.0-beta.1 4 -m 2000000 -e 324823214 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-325467935-v4.1.0-beta.1 4 -m 2000000 -e 325467935 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-283927487-v4.1.0-beta.1 3 -m 2000000 -e 283927497 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-321168308-v4.1.0-beta.1 3 -m 2000000 -e 321168308 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-327324660-v4.1.0-beta.1 4 -m 2000000 -e 327324660 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-370199634-v4.1.0-beta.1 3 -m 200000 -e 370199634 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-330219081-v4.1.0-beta.1 4 -m 2000000 -e 330219082 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-372721907-v4.1.0-beta.1 3 -m 2000000 -e 372721910 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-331691646-v4.1.0-beta.1 4 -m 2000000 -e 331691647 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-378683870-v4.1.0-beta.1 3 -m 2000000 -e 378683872 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-380592002-v4.1.0-beta.1 3 -m 2000000 -e 380592006 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-336218682-v4.1.0-beta.1 5 -m 2000000 -e 336218683 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-340269866-v4.1.0-beta.1 5 -m 2000000 -e 340269872 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-340272018-v4.1.0-beta.1 5 -m 2000000 -e 340272023 -# src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-390056400-v4.1.0-beta.1 10 -m 2000000 -e 390056406 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-346556000-v4.1.0-beta.1 3 -m 2000000 -e 346556337 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-346179946-v4.1.0-beta.1 30 -m 90000000 -e 346179950 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l multi-bpf-loader-v4.1.0-beta.1 1 -m 1000 -e 108 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l local-multi-boundary-v4.1.0-beta.1 1 -m 1000 -e 2325 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l genesis-v4.0.0 1 -m 3000 -e 1352 -g -src/flamenco/runtime/tests/run_ledger_backtest.sh -l localnet-stake-v4.1.0-beta.1 1 -m 3000 -e 541 -# src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-413869565-v4.1.0-beta.1 40 -m 100000000 -e 413869600 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-376969880-v4.1.0-beta.1 1 -m 2000000 -e 376969880 -# src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-422969842-v4.1.0-beta.1 1 -m 2000000 -e 422969848 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-384169347-v4.1.0-beta.1 1 -m 2000000 -e 384169377 --root-distance 32 --max-live-slots 64 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-384395810-v4.1.0-beta.1 3 -m 2000000 -e 384395820 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l breakpoint-385786458-v4.1.0-beta.1 1 -m 2000000 -e 385786452 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-386300256-v4.1.0-beta.1 1 -m 2000000 -e 386300289 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-387596258-v4.1.0-beta.1 1 -m 2000000 -e 387596373 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l deployment-before-boundary-v4.1.0-beta.1 1 -m 1000 -e 75 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l vote-stake-scenarios-v4.1.0-beta.1 1 -m 10000 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-391824000-boundary-v4.1.0-beta.1 2 -m 2000000 -e 391824016 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l progcache-stale-entry-v4.1.0-beta.1 1 -m 10000 -e 135 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l snapshot_block_id_some-v4.1.0-beta.1 1 -m 1000 -e 110 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l snapshot_block_id_none-v4.1.0-beta.1 1 -m 1000 -e 110 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-519-v4.1.0-beta.1 -m 2000000 -e 255312007 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257066033-v4.1.0-beta.1 -m 2000000 -e 257066038 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257066844-v4.1.0-beta.1 -m 2000000 -e 257066849 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257067457-v4.1.0-beta.1 -m 2000000 -e 257067461 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257068890-v4.1.0-beta.1 -m 2000000 -e 257068895 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257181622-v4.1.0-beta.1 -m 2000000 -e 257181624 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-254462437-v4.1.0-beta.1 -m 10000000 -e 254462598 +# [skipped: un-creatable under v4.1: ALT durable-nonce rejected by require_static_nonce_account] src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-262654839-v4.0.0 -m 10000000 -e 262654840 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257037451-v4.1.0-beta.1 -m 2000000 -e 257037454 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257035225-v4.1.0-beta.1 -m 2000000 -e 257035233 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257465453-v4.1.0-beta.1 -m 10000000 -e 257465454 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257058865-v4.1.0-beta.1 -m 2000000 -e 257058870 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257059815-v4.1.0-beta.1 -m 2000000 -e 257059818 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257061172-v4.1.0-beta.1 -m 2000000 -e 257061175 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257222682-v4.1.0-beta.1 -m 2000000 -e 257222688 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-264890264-v4.1.0-beta.1 -m 2000000 -e 264890265 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257229353-v4.1.0-beta.1 -m 2000000 -e 257229357 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257257983-v4.1.0-beta.1 -m 2000000 -e 257257986 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-267728520-v4.1.0-beta.1 -m 2000000 -e 267728522 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-267651942-v4.1.0-beta.1 -m 2000000 -e 267651943 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-267081197-v4.1.0-beta.1 -m 2000000 -e 267081198 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-267085604-v4.1.0-beta.1 -m 2000000 -e 267085605 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-265688706-v4.1.0-beta.1 -m 2000000 -e 265688707 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-265330432-v4.1.0-beta.1 -m 2000000 -e 265330433 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-268575190-v4.1.0-beta.1 -m 2000000 -e 268575191 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-268129380-v4.1.0-beta.1 -m 2000000 -e 268129380 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-268163043-v4.1.0-beta.1 -m 2000000 -e 268163043 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-269511381-v4.1.0-beta.1 -m 2000000 -e 269511381 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-269567236-v4.1.0-beta.1 -m 2000000 -e 269567236 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-266134813-v4.1.0-beta.1 -m 2000000 -e 266134814 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-266545736-v4.1.0-beta.1 -m 2000000 -e 266545737 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-267059180-v4.1.0-beta.1 -m 2000000 -e 267059181 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-267580466-v4.1.0-beta.1 -m 2000000 -e 267580467 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-268196194-v4.1.0-beta.1 -m 2000000 -e 268196195 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-267766641-v4.1.0-beta.1 -m 2000000 -e 267766642 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-269648145-v4.1.0-beta.1 -m 2000000 -e 269648146 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-281688085-v4.1.0-beta.1 -m 2000000 -e 281688086 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-277660422-v4.1.0-beta.1 -m 2000000 -e 277660423 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-277876060-v4.1.0-beta.1 -m 2000000 -e 277876061 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-277927063-v4.1.0-beta.1 -m 2000000 -e 277927065 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-281375356-v4.1.0-beta.1 -m 2000000 -e 281375359 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-251418170-v4.1.0-beta.1 -m 2000000 -e 251418233 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-282232100-v4.1.0-beta.1 -m 2000000 -e 282232101 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-282151715-v4.1.0-beta.1 -m 2000000 -e 282151717 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-286450148-v4.1.0-beta.1 -m 2000000 -e 286450151 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l multi-epoch-per-200-v4.1.0-beta.1 -m 2000000 -e 984 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l multi-epoch-per-300-v4.1.0-beta.1 -m 2000000 -e 984 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l multi-epoch-per-500-v4.1.0-beta.1 -m 2000000 -e 984 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-297489336-v4.1.0-beta.1 -m 2000000 -e 297489363 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-300377724-v4.1.0-beta.1 -m 2000000 -e 300377724 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-300645644-v4.1.0-beta.1 -m 2000000 -e 300645644 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-300648964-v4.1.0-beta.1 -m 2000000 -e 300648964 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-301359740-v4.1.0-beta.1 -m 2000000 -e 301359740 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257181032-v4.1.0-beta.1 -m 2000000 -e 257181035 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257047660-v4.1.0-beta.1 -m 2000000 -e 257047662 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-257047659-v4.1.0-beta.1 -m 2000000 -e 257047660 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-308445707-v4.1.0-beta.1 -m 2000000 -e 308445711 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-307395181-v4.1.0-beta.1 -m 2000000 -e 307395190 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-308392063-v4.1.0-beta.1 -m 2000000 -e 308392063 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-350814254-v4.1.0-beta.1 -m 2000000 -e 350814284 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-311586340-v4.1.0-beta.1 -m 2000000 -e 311586380 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-281546597-v4.1.0-beta.1 -m 2000000 -e 281546597 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-324823213-v4.1.0-beta.1 -m 2000000 -e 324823214 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-325467935-v4.1.0-beta.1 -m 2000000 -e 325467935 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-283927487-v4.1.0-beta.1 -m 2000000 -e 283927497 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-321168308-v4.1.0-beta.1 -m 2000000 -e 321168308 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-327324660-v4.1.0-beta.1 -m 2000000 -e 327324660 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-370199634-v4.1.0-beta.1 -m 200000 -e 370199634 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-330219081-v4.1.0-beta.1 -m 2000000 -e 330219082 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-372721907-v4.1.0-beta.1 -m 2000000 -e 372721910 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-331691646-v4.1.0-beta.1 -m 2000000 -e 331691647 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-378683870-v4.1.0-beta.1 -m 2000000 -e 378683872 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-380592002-v4.1.0-beta.1 -m 2000000 -e 380592006 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-336218682-v4.1.0-beta.1 -m 2000000 -e 336218683 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-340269866-v4.1.0-beta.1 -m 2000000 -e 340269872 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-340272018-v4.1.0-beta.1 -m 2000000 -e 340272023 +# src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-390056400-v4.1.0-beta.1 -m 2000000 -e 390056406 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-346556000-v4.1.0-beta.1 -m 2000000 -e 346556337 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-346179946-v4.1.0-beta.1 -m 90000000 -e 346179950 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l multi-bpf-loader-v4.1.0-beta.1 -m 1000 -e 108 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l local-multi-boundary-v4.1.0-beta.1 -m 1000 -e 2325 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l genesis-v4.0.0 -m 3000 -e 1352 -g +src/flamenco/runtime/tests/run_ledger_backtest.sh -l localnet-stake-v4.1.0-beta.1 -m 3000 -e 541 +# src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-413869565-v4.1.0-beta.1 -m 100000000 -e 413869600 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-376969880-v4.1.0-beta.1 -m 2000000 -e 376969880 +# src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-422969842-v4.1.0-beta.1 -m 2000000 -e 422969848 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-384169347-v4.1.0-beta.1 -m 2000000 -e 384169377 --root-distance 32 --max-live-slots 64 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-384395810-v4.1.0-beta.1 -m 2000000 -e 384395820 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l breakpoint-385786458-v4.1.0-beta.1 -m 2000000 -e 385786452 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-386300256-v4.1.0-beta.1 -m 2000000 -e 386300289 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-387596258-v4.1.0-beta.1 -m 2000000 -e 387596373 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l deployment-before-boundary-v4.1.0-beta.1 -m 1000 -e 75 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l vote-stake-scenarios-v4.1.0-beta.1 -m 10000 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-391824000-boundary-v4.1.0-beta.1 -m 2000000 -e 391824016 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l progcache-stale-entry-v4.1.0-beta.1 -m 10000 -e 135 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l snapshot_block_id_some-v4.1.0-beta.1 -m 1000 -e 110 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l snapshot_block_id_none-v4.1.0-beta.1 -m 1000 -e 110 # Direct mapping has 3 different interplaying feature gates: # syscall_parameter_address_restrictions, virtual_address_space_adjustments and account_data_direct_mapping # account_data_direct_mapping is dependent on virtual_address_space_adjustments, # which is in turn dependent on syscall_parameter_address_restrictions. -# [skipped: direct-mapping (-o); not rewritten to v4.1.0-beta.1] src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-368528500-direct-mapping-3 5 -m 2000000 -e 368528501 -o EDGMC5kxFxGk4ixsNkGt8bW7QL5hDMXnbwaZvYMwNfzF,7VgiehxNxu53KdxgLspGQY8myE6f7UokaWa4jsGcaSz -# [skipped: direct-mapping (-o); not rewritten to v4.1.0-beta.1] src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-368528500-direct-mapping-4 5 -m 2000000 -e 368528501 -o EDGMC5kxFxGk4ixsNkGt8bW7QL5hDMXnbwaZvYMwNfzF,7VgiehxNxu53KdxgLspGQY8myE6f7UokaWa4jsGcaSz,CR3dVN2Yoo95Y96kLSTaziWDAQT2MNEpiWh5cqVq2pNE -# [skipped: direct-mapping (-o); not rewritten to v4.1.0-beta.1] src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-368528500-direct-mapping-5 5 -m 2000000 -e 368528501 -o EDGMC5kxFxGk4ixsNkGt8bW7QL5hDMXnbwaZvYMwNfzF -# [skipped: direct-mapping (-o); not rewritten to v4.1.0-beta.1] src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-362107883-direct-mapping-3 1 -m 2000000 -e 362219427 -o EDGMC5kxFxGk4ixsNkGt8bW7QL5hDMXnbwaZvYMwNfzF,7VgiehxNxu53KdxgLspGQY8myE6f7UokaWa4jsGcaSz,CR3dVN2Yoo95Y96kLSTaziWDAQT2MNEpiWh5cqVq2pNE +# [skipped: direct-mapping (-o); not rewritten to v4.1.0-beta.1] src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-368528500-direct-mapping-3 -m 2000000 -e 368528501 -o EDGMC5kxFxGk4ixsNkGt8bW7QL5hDMXnbwaZvYMwNfzF,7VgiehxNxu53KdxgLspGQY8myE6f7UokaWa4jsGcaSz +# [skipped: direct-mapping (-o); not rewritten to v4.1.0-beta.1] src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-368528500-direct-mapping-4 -m 2000000 -e 368528501 -o EDGMC5kxFxGk4ixsNkGt8bW7QL5hDMXnbwaZvYMwNfzF,7VgiehxNxu53KdxgLspGQY8myE6f7UokaWa4jsGcaSz,CR3dVN2Yoo95Y96kLSTaziWDAQT2MNEpiWh5cqVq2pNE +# [skipped: direct-mapping (-o); not rewritten to v4.1.0-beta.1] src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-368528500-direct-mapping-5 -m 2000000 -e 368528501 -o EDGMC5kxFxGk4ixsNkGt8bW7QL5hDMXnbwaZvYMwNfzF +# [skipped: direct-mapping (-o); not rewritten to v4.1.0-beta.1] src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-362107883-direct-mapping-3 -m 2000000 -e 362219427 -o EDGMC5kxFxGk4ixsNkGt8bW7QL5hDMXnbwaZvYMwNfzF,7VgiehxNxu53KdxgLspGQY8myE6f7UokaWa4jsGcaSz,CR3dVN2Yoo95Y96kLSTaziWDAQT2MNEpiWh5cqVq2pNE # Local cluster ledgers testing specific feature gates -src/flamenco/runtime/tests/run_ledger_backtest.sh -l localnet-deprecate-rent-exemption-threshold-v4.1.0-beta.1 1 -m 1000 -e 260 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l relax-intrabatch-account-locks-v4.1.0-beta.1 1 -m 1000 -e 240 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l vote-states-v4-local-v4.1.0-beta.1 1 -m 3000 -e 1000 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l limit_instruction_accounts_rekey-v4.1.0-beta.1 1 -m 1000 -e 275 -# [skipped: fails under v4.1: slashing Core-BPF migration build-hash mismatch] src/flamenco/runtime/tests/run_ledger_backtest.sh -l enshrine_slashing_program 1 -m 1000 -e 260 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l create_account_allow_prefund-v4.1.0-beta.1 1 -m 1000 -e 520 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l relax_programdata_account_check_migration-v4.1.0-beta.1 1 -m 1000 -e 260 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l replace_spl_token_with_p_token-v4.1.0-beta.1 1 -m 1000 -e 720 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l syscall-parameter-address-restrictions-v4.1.0-beta.1 1 -m 1000 -e 312 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l virtual-address-space-adjustments-v4.1.0-beta.1 1 -m 1000 -e 819 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l account-data-direct-mapping-v4.1.0-beta.1 1 -m 1000 -e 1395 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l enable_sbpf_v3_deployment_and_execution-v4.1.0-beta.1 1 -m 1000 -e 961 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l upgrade_bpf_stake_program_to_v5-v4.1.0-beta.1 1 -m 2000 -e 586 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l upgrade_bpf_stake_program_to_v5_revoke-v4.1.0-beta.1 1 -m 1000 -e 290 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l delay-comission-updates-7-v4.1.0-beta.1 1 -m 20000 -e 1596 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l delay-comission-updates-8-v4.1.0-beta.1 1 -m 20000 -e 1596 -# [skipped: fails under v4.1: SIMD-0232 custom_commission_collector fee routing not in firedancer] src/flamenco/runtime/tests/run_ledger_backtest.sh -l vat-activation 1 -m 20000 -e 540 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l enable_bls12_381_syscall-v4.1.0-beta.1 1 -m 1000 -e 379 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l bls_pubkey_management_in_vote_account_rekey-v4.1.0-beta.1 1 -m 1000 -e 329 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l raise_block_limits_to_100m-v4.1.0-beta.1 1 -m 10000 -e 603 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l direct_account_pointers_in_program_input-v4.1.0-beta.1 1 -m 10000 -e 386 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l commission_rate_in_basis_points_boundary-v4.1.0-beta.1 1 -m 10000 -e 950 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l commission_rate_in_basis_points_snapshot-v4.1.0-beta.1 1 -m 10000 -e 950 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l disable_sbpf_v0_v1_v2_deployment-v4.1.0-beta.1 1 -m 10000 -e 625 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l define_ltds_fee_only_semantics-v4.1.0-beta.1 1 -m 1000 -e 330 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l loader_v3_minimum_extend_program_size 1 -m 1000 -e 590 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l enable_sha512_syscall 1 -m 1000 -e 611 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l localnet-deprecate-rent-exemption-threshold-v4.1.0-beta.1 -m 1000 -e 260 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l relax-intrabatch-account-locks-v4.1.0-beta.1 -m 1000 -e 240 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l vote-states-v4-local-v4.1.0-beta.1 -m 3000 -e 1000 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l limit_instruction_accounts_rekey-v4.1.0-beta.1 -m 1000 -e 275 +# [skipped: fails under v4.1: slashing Core-BPF migration build-hash mismatch] src/flamenco/runtime/tests/run_ledger_backtest.sh -l enshrine_slashing_program -m 1000 -e 260 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l create_account_allow_prefund-v4.1.0-beta.1 -m 1000 -e 520 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l relax_programdata_account_check_migration-v4.1.0-beta.1 -m 1000 -e 260 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l replace_spl_token_with_p_token-v4.1.0-beta.1 -m 1000 -e 720 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l syscall-parameter-address-restrictions-v4.1.0-beta.1 -m 1000 -e 312 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l virtual-address-space-adjustments-v4.1.0-beta.1 -m 1000 -e 819 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l account-data-direct-mapping-v4.1.0-beta.1 -m 1000 -e 1395 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l enable_sbpf_v3_deployment_and_execution-v4.1.0-beta.1 -m 1000 -e 961 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l upgrade_bpf_stake_program_to_v5-v4.1.0-beta.1 -m 2000 -e 586 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l upgrade_bpf_stake_program_to_v5_revoke-v4.1.0-beta.1 -m 1000 -e 290 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l delay-comission-updates-7-v4.1.0-beta.1 -m 20000 -e 1596 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l delay-comission-updates-8-v4.1.0-beta.1 -m 20000 -e 1596 +# [skipped: fails under v4.1: SIMD-0232 custom_commission_collector fee routing not in firedancer] src/flamenco/runtime/tests/run_ledger_backtest.sh -l vat-activation -m 20000 -e 540 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l enable_bls12_381_syscall-v4.1.0-beta.1 -m 1000 -e 379 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l bls_pubkey_management_in_vote_account_rekey-v4.1.0-beta.1 -m 1000 -e 329 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l raise_block_limits_to_100m-v4.1.0-beta.1 -m 10000 -e 603 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l direct_account_pointers_in_program_input-v4.1.0-beta.1 -m 10000 -e 386 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l commission_rate_in_basis_points_boundary-v4.1.0-beta.1 -m 10000 -e 950 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l commission_rate_in_basis_points_snapshot-v4.1.0-beta.1 -m 10000 -e 950 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l disable_sbpf_v0_v1_v2_deployment-v4.1.0-beta.1 -m 10000 -e 625 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l define_ltds_fee_only_semantics-v4.1.0-beta.1 -m 1000 -e 330 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l loader_v3_minimum_extend_program_size -m 1000 -e 590 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l enable_sha512_syscall -m 1000 -e 611 # Delay-commission epoch-boundary scenarios (local cluster, agave-cluster generated). # Group 1: delay_commission_updates ON, VAT OFF. -src/flamenco/runtime/tests/run_ledger_backtest.sh -l dc-stake-and-commission 1 -m 1000000 -e 1390 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l dc-unstake-recommission-restake 1 -m 1000000 -e 1540 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l dc-delete-recreate-commission 1 -m 1000000 -e 1025 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l dc-stake-and-commission -m 1000000 -e 1390 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l dc-unstake-recommission-restake -m 1000000 -e 1540 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l dc-delete-recreate-commission -m 1000000 -e 1025 # Group 2: delay_commission_updates + validator_admission_ticket (VAT) + bls_pubkey_management ALL ON. -src/flamenco/runtime/tests/run_ledger_backtest.sh -l vat-dc-stake-and-commission 1 -m 1000000 -e 1295 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l vat-dc-unstake-recommission-restake 1 -m 1000000 -e 1540 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l vat-dc-stake-and-commission -m 1000000 -e 1295 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l vat-dc-unstake-recommission-restake -m 1000000 -e 1540 # vat-dc-deleted-vote-per: boots mid-PER @ slot 1025, 10k stake accounts (3-partition PER), vote acct # voted epochs 1-6 w/ commission 50->40->30->20 (present in top_votes t_1/t_2/t_3), deleted ep8 + recreated ep9 (#9840). -src/flamenco/runtime/tests/run_ledger_backtest.sh -l vat-dc-deleted-vote-per 4 -m 2000000 -e 2555 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l vat-dc-deleted-vote-per -m 2000000 -e 2555 # vat-activate-10k: VAT PENDING at genesis -> activates @ slot 256 (transition epoch 1); boots epoch-0 (VAT inactive), # 10k stake accounts, 2nd vote acct voting across the transition w/ commission 100 (epoch0) -> 0 (epoch1+, max split delta). -src/flamenco/runtime/tests/run_ledger_backtest.sh -l vat-activate-10k 4 -m 2000000 -e 1020 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l vat-activate-10k -m 2000000 -e 1020 diff --git a/src/flamenco/runtime/tests/run_backtest_ci.sh b/src/flamenco/runtime/tests/run_backtest_ci.sh index 369fce6e0b4..030cf88c906 100755 --- a/src/flamenco/runtime/tests/run_backtest_ci.sh +++ b/src/flamenco/runtime/tests/run_backtest_ci.sh @@ -1,39 +1,39 @@ #!/bin/bash set -e -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-308392063-v4.1.0-beta.1 5 -m 2000000 -e 308392063 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-350814254-v4.1.0-beta.1 3 -m 2000000 -e 350814284 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-281546597-v4.1.0-beta.1 3 -m 2000000 -e 281546597 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-324823213-v4.1.0-beta.1 4 -m 2000000 -e 324823214 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-325467935-v4.1.0-beta.1 4 -m 2000000 -e 325467935 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-283927487-v4.1.0-beta.1 3 -m 2000000 -e 283927497 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-281688085-v4.1.0-beta.1 3 -m 2000000 -e 281688086 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-321168308-v4.1.0-beta.1 3 -m 2000000 -e 321168308 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-327324660-v4.1.0-beta.1 4 -m 2000000 -e 327324660 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-370199634-v4.1.0-beta.1 3 -m 200000 -e 370199634 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-378683870-v4.1.0-beta.1 3 -m 2000000 -e 378683872 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-330219081-v4.1.0-beta.1 4 -m 2000000 -e 330219082 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-372721907-v4.1.0-beta.1 3 -m 2000000 -e 372721910 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-331691646-v4.1.0-beta.1 4 -m 2000000 -e 331691647 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-336218682-v4.1.0-beta.1 5 -m 2000000 -e 336218683 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-340269866-v4.1.0-beta.1 5 -m 2000000 -e 340269872 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-308392063-v4.1.0-beta.1 -m 2000000 -e 308392063 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-350814254-v4.1.0-beta.1 -m 2000000 -e 350814284 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-281546597-v4.1.0-beta.1 -m 2000000 -e 281546597 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-324823213-v4.1.0-beta.1 -m 2000000 -e 324823214 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-325467935-v4.1.0-beta.1 -m 2000000 -e 325467935 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-283927487-v4.1.0-beta.1 -m 2000000 -e 283927497 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-281688085-v4.1.0-beta.1 -m 2000000 -e 281688086 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-321168308-v4.1.0-beta.1 -m 2000000 -e 321168308 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-327324660-v4.1.0-beta.1 -m 2000000 -e 327324660 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-370199634-v4.1.0-beta.1 -m 200000 -e 370199634 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-378683870-v4.1.0-beta.1 -m 2000000 -e 378683872 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-330219081-v4.1.0-beta.1 -m 2000000 -e 330219082 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-372721907-v4.1.0-beta.1 -m 2000000 -e 372721910 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-331691646-v4.1.0-beta.1 -m 2000000 -e 331691647 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-336218682-v4.1.0-beta.1 -m 2000000 -e 336218683 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-340269866-v4.1.0-beta.1 -m 2000000 -e 340269872 # Disabled, as it had increase_tx_account_lock_limit enabled which is no longer supported -# src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-390056400-v4.1.0-beta.1 10 -m 2000000 -e 390056406 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-254462437-v4.1.0-beta.1 16 -m 10000000 -e 254462598 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-346556000-v4.1.0-beta.1 3 -m 2000000 -e 346556337 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-380592002-v4.1.0-beta.1 3 -m 2000000 -e 380592006 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l genesis-v4.0.0 1 -m 3000 -e 1352 -g +# src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-390056400-v4.1.0-beta.1 -m 2000000 -e 390056406 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-254462437-v4.1.0-beta.1 -m 10000000 -e 254462598 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-346556000-v4.1.0-beta.1 -m 2000000 -e 346556337 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-380592002-v4.1.0-beta.1 -m 2000000 -e 380592006 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l genesis-v4.0.0 -m 3000 -e 1352 -g # Disabled, as it had increase_tx_account_lock_limit enabled which is no longer supported -# src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-422969842-v4.1.0-beta.1 1 -m 2000000 -e 422969848 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l breakpoint-385786458-v4.1.0-beta.1 1 -m 2000000 -e 385786452 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l vote-states-v4-local-v4.1.0-beta.1 1 -m 3000 -e 1000 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-384169347-v4.1.0-beta.1 1 -m 2000000 -e 384169377 --root-distance 32 --max-live-slots 64 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-384395810-v4.1.0-beta.1 3 -m 2000000 -e 384395820 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-387596258-v4.1.0-beta.1 1 -m 2000000 -e 387596373 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l deployment-before-boundary-v4.1.0-beta.1 1 -m 1000 -e 75 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-391824000-boundary-v4.1.0-beta.1 2 -m 2000000 -e 391824016 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l vote-stake-scenarios-v4.1.0-beta.1 1 -m 10000 -# [skipped: fails under v4.1: SIMD-0232 custom_commission_collector fee routing not in firedancer] src/flamenco/runtime/tests/run_ledger_backtest.sh -l vat-activation 1 -m 20000 -e 540 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l progcache-stale-entry-v4.1.0-beta.1 1 -m 10000 -e 135 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l commission_rate_in_basis_points_boundary-v4.1.0-beta.1 1 -m 10000 -e 950 -src/flamenco/runtime/tests/run_ledger_backtest.sh -l commission_rate_in_basis_points_snapshot-v4.1.0-beta.1 1 -m 10000 -e 950 +# src/flamenco/runtime/tests/run_ledger_backtest.sh -l devnet-422969842-v4.1.0-beta.1 -m 2000000 -e 422969848 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l breakpoint-385786458-v4.1.0-beta.1 -m 2000000 -e 385786452 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l vote-states-v4-local-v4.1.0-beta.1 -m 3000 -e 1000 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-384169347-v4.1.0-beta.1 -m 2000000 -e 384169377 --root-distance 32 --max-live-slots 64 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-384395810-v4.1.0-beta.1 -m 2000000 -e 384395820 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l testnet-387596258-v4.1.0-beta.1 -m 2000000 -e 387596373 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l deployment-before-boundary-v4.1.0-beta.1 -m 1000 -e 75 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l mainnet-391824000-boundary-v4.1.0-beta.1 -m 2000000 -e 391824016 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l vote-stake-scenarios-v4.1.0-beta.1 -m 10000 +# [skipped: fails under v4.1: SIMD-0232 custom_commission_collector fee routing not in firedancer] src/flamenco/runtime/tests/run_ledger_backtest.sh -l vat-activation -m 20000 -e 540 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l progcache-stale-entry-v4.1.0-beta.1 -m 10000 -e 135 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l commission_rate_in_basis_points_boundary-v4.1.0-beta.1 -m 10000 -e 950 +src/flamenco/runtime/tests/run_ledger_backtest.sh -l commission_rate_in_basis_points_snapshot-v4.1.0-beta.1 -m 10000 -e 950 From c66cf27f60ca34ce61d50227f79fadcca4a63653 Mon Sep 17 00:00:00 2001 From: Michael McGee Date: Tue, 16 Jun 2026 15:51:05 +0000 Subject: [PATCH 49/61] tower: report confirmation event telemetry --- src/choreo/ghost/fd_ghost.c | 8 ++- src/choreo/ghost/fd_ghost.h | 14 +++-- src/choreo/ghost/test_ghost.c | 22 ++++---- src/choreo/tower/test_tower.c | 8 +-- src/disco/events/gen_events.py | 2 +- src/disco/events/generated/fd_event_gen.c | 39 +++++++++++++ src/disco/events/generated/fd_event_gen.h | 45 ++++++++++++++- src/disco/events/schema/events.proto | 33 +++++++++++ src/disco/events/schema/slot_confirmed.json | 62 +++++++++++++++++++++ src/discof/replay/fd_replay_tile.c | 1 + src/discof/replay/fd_replay_tile.h | 5 +- src/discof/tower/fd_tower_tile.c | 52 ++++++++++++++++- src/discof/tower/test_tower_tile.c | 8 +-- src/flamenco/runtime/fd_bank.c | 4 +- src/flamenco/runtime/fd_bank.h | 5 +- src/flamenco/runtime/test_bank.c | 54 +++++++++--------- 16 files changed, 299 insertions(+), 63 deletions(-) create mode 100644 src/disco/events/schema/slot_confirmed.json diff --git a/src/choreo/ghost/fd_ghost.c b/src/choreo/ghost/fd_ghost.c index 8d72440f2ae..540b4f74ae2 100644 --- a/src/choreo/ghost/fd_ghost.c +++ b/src/choreo/ghost/fd_ghost.c @@ -376,6 +376,7 @@ fd_ghost_invalid_ancestor( fd_ghost_t * ghost, static fd_ghost_blk_t * insert( fd_ghost_t * ghost, + ulong bank_seq, ulong slot, fd_hash_t const * block_id ) { fd_ghost_blk_t * pool = blk_pool( ghost ); @@ -395,15 +396,17 @@ insert( fd_ghost_t * ghost, blk->stake = 0; blk->total_stake = 0; blk->valid = 1; + blk->bank_seq = bank_seq; blk_map_ele_insert( blk_map( ghost ), blk, pool ); return blk; } fd_ghost_blk_t * fd_ghost_init( fd_ghost_t * ghost, + ulong bank_seq, ulong slot, fd_hash_t const * block_id ) { - fd_ghost_blk_t * blk = insert( ghost, slot, block_id ); + fd_ghost_blk_t * blk = insert( ghost, bank_seq, slot, block_id ); ghost->root = blk_pool_idx( blk_pool( ghost ), blk ); ghost->width = 1; return blk; @@ -411,10 +414,11 @@ fd_ghost_init( fd_ghost_t * ghost, fd_ghost_blk_t * fd_ghost_insert( fd_ghost_t * ghost, + ulong bank_seq, ulong slot, fd_hash_t const * block_id, fd_hash_t const * parent_block_id ) { - fd_ghost_blk_t * blk = insert( ghost, slot, block_id ); + fd_ghost_blk_t * blk = insert( ghost, bank_seq, slot, block_id ); fd_ghost_blk_t * pool = blk_pool( ghost ); ulong null = blk_pool_idx_null( pool ); fd_ghost_blk_t * parent = blk_map_ele_query( blk_map( ghost ), parent_block_id, NULL, pool ); diff --git a/src/choreo/ghost/fd_ghost.h b/src/choreo/ghost/fd_ghost.h index ff2f325b648..2a7829d778c 100644 --- a/src/choreo/ghost/fd_ghost.h +++ b/src/choreo/ghost/fd_ghost.h @@ -106,6 +106,7 @@ struct __attribute__((aligned(128UL))) fd_ghost_blk { ulong total_stake; /* total stake for this blk */ int valid; /* whether this block is valid for fork choice. an equivocating block is valid iff duplicate confirmed */ ulong vtr_dlist_gaddr; /* wksp gaddr of the dlist of vtrs whose prev_block_id is this blk's id */ + ulong bank_seq; /* app-wide bank sequence number of this block (fd_bank.bank_seq), or ULONG_MAX until associated with a replayed bank */ }; typedef struct fd_ghost_blk fd_ghost_blk_t; @@ -261,20 +262,25 @@ fd_ghost_invalid_ancestor( fd_ghost_t * ghost, /* Operations */ /* fd_ghost_init initializes the ghost tree with a root block keyed by - block_id at the given slot. Must be called exactly once before any - fd_ghost_insert calls. Returns the new root block. */ + block_id at the given slot. bank_seq is the app-wide bank sequence + number of the block (or ULONG_MAX if unknown). Must be called exactly + once before any fd_ghost_insert calls. Returns the new root block. */ fd_ghost_blk_t * fd_ghost_init( fd_ghost_t * ghost, + ulong bank_seq, ulong slot, fd_hash_t const * block_id ); /* fd_ghost_insert inserts a new tree node representing a block keyed by - block_id (and slot). parent_block_id is used to link this new block - to its parent in the ghost tree. Returns the new block. */ + block_id (and slot). bank_seq is the app-wide bank sequence number of + the block (or ULONG_MAX if unknown). parent_block_id is used to link + this new block to its parent in the ghost tree. Returns the new + block. */ fd_ghost_blk_t * fd_ghost_insert( fd_ghost_t * ghost, + ulong bank_seq, ulong slot, fd_hash_t const * block_id, fd_hash_t const * parent_block_id ); diff --git a/src/choreo/ghost/test_ghost.c b/src/choreo/ghost/test_ghost.c index 1ebffe11f31..938655f85f7 100644 --- a/src/choreo/ghost/test_ghost.c +++ b/src/choreo/ghost/test_ghost.c @@ -23,13 +23,13 @@ setup_ghost( fd_wksp_t * wksp, ulong blk_max, ulong vtr_max ) { fd_ghost_t * ghost = fd_ghost_join( fd_ghost_new( mem, blk_max, vtr_max, 42UL ) ); FD_TEST( ghost ); fd_hash_t block_ids[7]; setup_block_ids( block_ids, 7 ); - fd_ghost_init( ghost, 0, &block_ids[0] ); - fd_ghost_insert( ghost, 1, &block_ids[1], &block_ids[0] ); - fd_ghost_insert( ghost, 2, &block_ids[2], &block_ids[1] ); - fd_ghost_insert( ghost, 3, &block_ids[3], &block_ids[1] ); - fd_ghost_insert( ghost, 4, &block_ids[4], &block_ids[2] ); - fd_ghost_insert( ghost, 5, &block_ids[5], &block_ids[3] ); - fd_ghost_insert( ghost, 6, &block_ids[6], &block_ids[5] ); + fd_ghost_init( ghost, 0, 0, &block_ids[0] ); + fd_ghost_insert( ghost, 1, 1, &block_ids[1], &block_ids[0] ); + fd_ghost_insert( ghost, 2, 2, &block_ids[2], &block_ids[1] ); + fd_ghost_insert( ghost, 3, 3, &block_ids[3], &block_ids[1] ); + fd_ghost_insert( ghost, 4, 4, &block_ids[4], &block_ids[2] ); + fd_ghost_insert( ghost, 5, 5, &block_ids[5], &block_ids[3] ); + fd_ghost_insert( ghost, 6, 6, &block_ids[6], &block_ids[5] ); return ghost; } @@ -891,10 +891,10 @@ test_npow2_init( fd_wksp_t * wksp ) { /* Insert a small tree and verify. */ fd_hash_t ids[4]; for( ulong j = 0; j < 4; j++ ) ids[j] = (fd_hash_t){ .ul = { j + 1 } }; - fd_ghost_init( ghost, 0, &ids[0] ); - fd_ghost_insert( ghost, 1, &ids[1], &ids[0] ); - fd_ghost_insert( ghost, 2, &ids[2], &ids[1] ); - fd_ghost_insert( ghost, 3, &ids[3], &ids[1] ); + fd_ghost_init( ghost, 0, 0, &ids[0] ); + fd_ghost_insert( ghost, 1, 1, &ids[1], &ids[0] ); + fd_ghost_insert( ghost, 2, 2, &ids[2], &ids[1] ); + fd_ghost_insert( ghost, 3, 3, &ids[3], &ids[1] ); FD_TEST( fd_ghost_query( ghost, &ids[0] ) ); FD_TEST( fd_ghost_query( ghost, &ids[1] ) ); diff --git a/src/choreo/tower/test_tower.c b/src/choreo/tower/test_tower.c index ca8f19ad6e6..5b36e22c425 100644 --- a/src/choreo/tower/test_tower.c +++ b/src/choreo/tower/test_tower.c @@ -8,16 +8,16 @@ static uchar scratch[ 65536 ] __attribute__((aligned(128))); void mock( fd_ghost_t * ghost, fd_tower_blk_t * blk, - ulong bank_idx FD_PARAM_UNUSED, + ulong bank_idx, fd_hash_t * replayed_block_id, fd_hash_t * parent_block_id ) { blk->epoch = 1; blk->replayed = 1; blk->replayed_block_id = *replayed_block_id; if( FD_UNLIKELY( !parent_block_id ) ) { - FD_TEST( fd_ghost_init( ghost, blk->slot, replayed_block_id ) ); + FD_TEST( fd_ghost_init( ghost, bank_idx, blk->slot, replayed_block_id ) ); } else { - FD_TEST( fd_ghost_insert( ghost, blk->slot, replayed_block_id, parent_block_id ) ); + FD_TEST( fd_ghost_insert( ghost, bank_idx, blk->slot, replayed_block_id, parent_block_id ) ); } } @@ -608,7 +608,7 @@ test_switch_eqvoc( fd_wksp_t * wksp ) { blk6->confirmed_block_id = (fd_hash_t){.ul = {6, 1}}; blk6->parent_slot = 1; blk6->replayed_block_id = (fd_hash_t){.ul = {6, 1}}; - fd_ghost_insert( ghost, 6, &(fd_hash_t){.ul = {6, 1}}, &(fd_hash_t){.ul = {1}} ); + fd_ghost_insert( ghost, 6, 6, &(fd_hash_t){.ul = {6, 1}}, &(fd_hash_t){.ul = {1}} ); FD_TEST( switch_check( tower, ghost, total_stake, 7 ) == 0 ); /* would fail since 8 is not a candidate anymore */ diff --git a/src/disco/events/gen_events.py b/src/disco/events/gen_events.py index f305201cae6..6efa460321b 100644 --- a/src/disco/events/gen_events.py +++ b/src/disco/events/gen_events.py @@ -432,7 +432,7 @@ def generate_c_header(schemas: List[Schema]) -> str: if struct_max_names: expr = struct_max_names[0] for n in struct_max_names[1:]: - expr = f"fd_ulong_max( {n}, {expr} )" + expr = f"( {n} > {expr} ? {n} : {expr} )" lines += [ "/* Largest generated event struct; a consumer can stage any incoming", " event in a buffer of this size. */", diff --git a/src/disco/events/generated/fd_event_gen.c b/src/disco/events/generated/fd_event_gen.c index 1d4c08650c4..4b177f8bda7 100644 --- a/src/disco/events/generated/fd_event_gen.c +++ b/src/disco/events/generated/fd_event_gen.c @@ -47,6 +47,41 @@ fd_event_signed_vote_serialize( fd_circq_t * circq, fd_circq_resize_back( circq, fd_pb_encoder_out_sz( encoder ) ); } +void +fd_event_slot_confirmed_serialize( fd_circq_t * circq, + fd_event_client_t * client, + long timestamp_nanos, + ulong link_seq, + fd_event_slot_confirmed_t const * msg ) { + uchar * buffer = fd_circq_push_back( circq, 1UL, FD_EVENT_SLOT_CONFIRMED_BUF_MAX ); + FD_TEST( buffer ); + + ulong event_id = fd_event_client_id_reserve( client ); + + fd_pb_encoder_t encoder[1]; + fd_pb_encoder_init( encoder, buffer, FD_EVENT_SLOT_CONFIRMED_BUF_MAX ); + + FD_TEST( circq->cursor_push_seq ); + fd_pb_push_uint64( encoder, 1U, circq->cursor_push_seq-1UL ); + fd_pb_push_uint64( encoder, 2U, event_id ); + fd_pb_push_uint64( encoder, 3U, link_seq ); + fd_pb_push_uint64( encoder, 4U, (ulong)timestamp_nanos ); + + fd_pb_submsg_open( encoder, 5U ); /* Event */ + fd_pb_submsg_open( encoder, 4U ); /* SlotConfirmed */ + if( msg->bank_seq ) fd_pb_push_uint64( encoder, 1U, (ulong)msg->bank_seq ); + if( msg->slot ) fd_pb_push_uint64( encoder, 2U, (ulong)msg->slot ); + fd_pb_push_bytes ( encoder, 3U, msg->block_id, 32UL ); + if( msg->stake ) fd_pb_push_uint64( encoder, 4U, (ulong)msg->stake ); + if( msg->total_stake ) fd_pb_push_uint64( encoder, 5U, (ulong)msg->total_stake ); + if( msg->valid ) fd_pb_push_bool ( encoder, 6U, msg->valid ); + if( msg->level ) fd_pb_push_int32 ( encoder, 7U, msg->level ); + if( msg->forward ) fd_pb_push_bool ( encoder, 8U, msg->forward ); + fd_pb_submsg_close( encoder ); + fd_pb_submsg_close( encoder ); + fd_circq_resize_back( circq, fd_pb_encoder_out_sz( encoder ) ); +} + void fd_event_serialize_by_type( ulong type, fd_circq_t * circq, @@ -60,6 +95,10 @@ fd_event_serialize_by_type( ulong type, FD_TEST( ev_sz==sizeof(fd_event_signed_vote_t) ); fd_event_signed_vote_serialize( circq, client, timestamp_nanos, link_seq, (fd_event_signed_vote_t const *)ev ); break; + case 4UL: + FD_TEST( ev_sz==sizeof(fd_event_slot_confirmed_t) ); + fd_event_slot_confirmed_serialize( circq, client, timestamp_nanos, link_seq, (fd_event_slot_confirmed_t const *)ev ); + break; default: FD_LOG_ERR(( "unexpected event type %lu", type )); } } diff --git a/src/disco/events/generated/fd_event_gen.h b/src/disco/events/generated/fd_event_gen.h index 04ad966ca13..aec5ff0a07f 100644 --- a/src/disco/events/generated/fd_event_gen.h +++ b/src/disco/events/generated/fd_event_gen.h @@ -34,9 +34,35 @@ typedef struct fd_event_signed_vote fd_event_signed_vote_t; submsg + inner submsg + all fields, padded for encoder slack). */ #define FD_EVENT_SIGNED_VOTE_BUF_MAX (2765UL) +/* The commitment level reached, from weakest to strongest: processed, propagated, duplicate, optimistic, super, rooted. ignored is a separate terminal outcome rather than a strengthening level. */ +#define FD_EVENT_SLOT_CONFIRMED_LEVEL_IGNORED (1) /* Replay finished a block that consensus had already pruned, so it never reached any commitment level. */ +#define FD_EVENT_SLOT_CONFIRMED_LEVEL_PROCESSED (2) /* Replayed locally on the majority fork, with no cluster stake required. Equivalent to Solana's 'processed' commitment. */ +#define FD_EVENT_SLOT_CONFIRMED_LEVEL_PROPAGATED (3) /* More than a third of stake has observed the block, confirming it has propagated. */ +#define FD_EVENT_SLOT_CONFIRMED_LEVEL_DUPLICATE (4) /* At least 52% of stake voted for this exact block, guaranteeing the cluster converges on it even when a slot equivocates. */ +#define FD_EVENT_SLOT_CONFIRMED_LEVEL_OPTIMISTIC (5) /* More than two thirds of stake voted for the block. Equivalent to Solana's 'confirmed' commitment. */ +#define FD_EVENT_SLOT_CONFIRMED_LEVEL_SUPER (6) /* More than four fifths of stake voted for the block. Used when waiting for a supermajority at boot. */ +#define FD_EVENT_SLOT_CONFIRMED_LEVEL_ROOTED (7) /* The block or a descendant reached maximum lockout and can never be rolled back. The strongest level, equivalent to Solana's 'finalized' commitment. */ + +/* A slot reached a commitment level. Emitted once per slot per level reached. Join to block_completed on bank_seq, or on slot and block_id. */ +struct fd_event_slot_confirmed { + ulong bank_seq; /* Monotonic sequence number identifying this block within the current run; the join key to block_completed. Restarts at 1 each time a snapshot is loaded, so pair it with the stream's boot id. 0 means unavailable, which happens for forward confirmations where the block has not been replayed. */ + ulong slot; /* The slot being confirmed. */ + uchar block_id[ 32UL ]; /* Unique identifier of the block being confirmed; the join key to block_completed. */ + ulong stake; /* Stake in lamports supporting this confirmation. Divide by total_stake for the ratio that crossed the level's threshold. 0 means unavailable. */ + ulong total_stake; /* Total cluster stake in lamports at confirmation time; the denominator for the confirmation ratio. 0 means unavailable. */ + int valid; /* Whether this block is eligible for fork choice. An equivocating block becomes eligible again only once duplicate confirmed. */ + int level; /* The commitment level reached, from weakest to strongest: processed, propagated, duplicate, optimistic, super, rooted. ignored is a separate terminal outcome rather than a strengthening level. */ + int forward; /* True when the block was confirmed by votes seen over gossip before it was replayed locally. Always false for processed and rooted, which require a local replay. */ +}; +typedef struct fd_event_slot_confirmed fd_event_slot_confirmed_t; + +/* Worst-case encoded size of a slot_confirmed event (envelope + Event + submsg + inner submsg + all fields, padded for encoder slack). */ +#define FD_EVENT_SLOT_CONFIRMED_BUF_MAX (221UL) + /* Largest generated event struct; a consumer can stage any incoming event in a buffer of this size. */ -#define FD_EVENT_GEN_STRUCT_MAX (sizeof(fd_event_signed_vote_t)) +#define FD_EVENT_GEN_STRUCT_MAX (( sizeof(fd_event_slot_confirmed_t) > sizeof(fd_event_signed_vote_t) ? sizeof(fd_event_slot_confirmed_t) : sizeof(fd_event_signed_vote_t) )) FD_PROTOTYPES_BEGIN @@ -50,6 +76,16 @@ fd_event_signed_vote_serialize( fd_circq_t * circq, ulong link_seq, fd_event_signed_vote_t const * msg ); +/* Serialize a slot_confirmed event into the circq, reserving an event id + from the client and writing the standard event envelope. Mirrors + the hand-written fd_pb_* path. */ +void +fd_event_slot_confirmed_serialize( fd_circq_t * circq, + fd_event_client_t * client, + long timestamp_nanos, + ulong link_seq, + fd_event_slot_confirmed_t const * msg ); + /* Serialize an event of the given type id (the schema id carried in the report frag's sig) from a fully-formed fd_event__t at ev. */ void @@ -68,6 +104,13 @@ fd_event_report_signed_vote( fd_event_signed_vote_t const * msg ) { fd_event_report_( 3UL, msg, sizeof(fd_event_signed_vote_t) ); } +/* Report a slot_confirmed event (SlotConfirmed, id 4) to the event tile via + the thread-local reporter (no-op when the tile has no event link). */ +static inline void +fd_event_report_slot_confirmed( fd_event_slot_confirmed_t const * msg ) { + fd_event_report_( 4UL, msg, sizeof(fd_event_slot_confirmed_t) ); +} + FD_PROTOTYPES_END #endif diff --git a/src/disco/events/schema/events.proto b/src/disco/events/schema/events.proto index c675e822ae7..40305751fca 100644 --- a/src/disco/events/schema/events.proto +++ b/src/disco/events/schema/events.proto @@ -20,6 +20,18 @@ enum ShredProtocol { SHRED_PROTOCOL_LEADER = 3; // Leader } +// The commitment level reached, from weakest to strongest: processed, propagated, duplicate, optimistic, super, rooted. ignored is a separate terminal outcome rather than a strengthening level. +enum SlotConfirmedLevel { + SLOT_CONFIRMED_LEVEL_UNSPECIFIED = 0; + SLOT_CONFIRMED_LEVEL_IGNORED = 1; // Replay finished a block that consensus had already pruned, so it never reached any commitment level. + SLOT_CONFIRMED_LEVEL_PROCESSED = 2; // Replayed locally on the majority fork, with no cluster stake required. Equivalent to Solana's 'processed' commitment. + SLOT_CONFIRMED_LEVEL_PROPAGATED = 3; // More than a third of stake has observed the block, confirming it has propagated. + SLOT_CONFIRMED_LEVEL_DUPLICATE = 4; // At least 52% of stake voted for this exact block, guaranteeing the cluster converges on it even when a slot equivocates. + SLOT_CONFIRMED_LEVEL_OPTIMISTIC = 5; // More than two thirds of stake voted for the block. Equivalent to Solana's 'confirmed' commitment. + SLOT_CONFIRMED_LEVEL_SUPER = 6; // More than four fifths of stake voted for the block. Used when waiting for a supermajority at boot. + SLOT_CONFIRMED_LEVEL_ROOTED = 7; // The block or a descendant reached maximum lockout and can never be rolled back. The strongest level, equivalent to Solana's 'finalized' commitment. +} + // Slot that was voted on message SignedVoteTower { // Slot being voted on / locked out for @@ -84,11 +96,32 @@ message SignedVote { repeated SignedVoteTower tower = 10; } +// A slot reached a commitment level. Emitted once per slot per level reached. Join to block_completed on bank_seq, or on slot and block_id. +message SlotConfirmed { + // Monotonic sequence number identifying this block within the current run; the join key to block_completed. Restarts at 1 each time a snapshot is loaded, so pair it with the stream's boot id. 0 means unavailable, which happens for forward confirmations where the block has not been replayed. + uint64 bank_seq = 1; + // The slot being confirmed. + uint64 slot = 2; + // Unique identifier of the block being confirmed; the join key to block_completed. + bytes block_id = 3; + // Stake in lamports supporting this confirmation. Divide by total_stake for the ratio that crossed the level's threshold. 0 means unavailable. + uint64 stake = 4; + // Total cluster stake in lamports at confirmation time; the denominator for the confirmation ratio. 0 means unavailable. + uint64 total_stake = 5; + // Whether this block is eligible for fork choice. An equivocating block becomes eligible again only once duplicate confirmed. + bool valid = 6; + // The commitment level reached, from weakest to strongest: processed, propagated, duplicate, optimistic, super, rooted. ignored is a separate terminal outcome rather than a strengthening level. + SlotConfirmedLevel level = 7; + // True when the block was confirmed by votes seen over gossip before it was replayed locally. Always false for processed and rooted, which require a local replay. + bool forward = 8; +} + // Combined event type message Event { oneof event { Txn txn = 1; Shred shred = 2; SignedVote signed_vote = 3; + SlotConfirmed slot_confirmed = 4; } } diff --git a/src/disco/events/schema/slot_confirmed.json b/src/disco/events/schema/slot_confirmed.json new file mode 100644 index 00000000000..ec3d437d980 --- /dev/null +++ b/src/disco/events/schema/slot_confirmed.json @@ -0,0 +1,62 @@ +{ + "name": "slot_confirmed", + "id": 4, + "description": "A slot reached a commitment level. Emitted once per slot per level reached. Join to block_completed on bank_seq, or on slot and block_id.", + "fields": { + "bank_seq": { + "type": "UInt64", + "description": "Monotonic sequence number identifying this block within the current run; the join key to block_completed. Restarts at 1 each time a snapshot is loaded, so pair it with the stream's boot id. 0 means unavailable, which happens for forward confirmations where the block has not been replayed." + }, + "slot": { + "type": "UInt64", + "description": "The slot being confirmed." + }, + "block_id": { + "type": "Hash", + "description": "Unique identifier of the block being confirmed; the join key to block_completed." + }, + "stake": { + "type": "UInt64", + "description": "Stake in lamports supporting this confirmation. Divide by total_stake for the ratio that crossed the level's threshold. 0 means unavailable." + }, + "total_stake": { + "type": "UInt64", + "description": "Total cluster stake in lamports at confirmation time; the denominator for the confirmation ratio. 0 means unavailable." + }, + "valid": { + "type": "Bool", + "description": "Whether this block is eligible for fork choice. An equivocating block becomes eligible again only once duplicate confirmed." + }, + "level": { + "type": "LowCardinality(String)", + "description": "The commitment level reached, from weakest to strongest: processed, propagated, duplicate, optimistic, super, rooted. ignored is a separate terminal outcome rather than a strengthening level.", + "variants": { + "ignored": { + "description": "Replay finished a block that consensus had already pruned, so it never reached any commitment level." + }, + "processed": { + "description": "Replayed locally on the majority fork, with no cluster stake required. Equivalent to Solana's 'processed' commitment." + }, + "propagated": { + "description": "More than a third of stake has observed the block, confirming it has propagated." + }, + "duplicate": { + "description": "At least 52% of stake voted for this exact block, guaranteeing the cluster converges on it even when a slot equivocates." + }, + "optimistic": { + "description": "More than two thirds of stake voted for the block. Equivalent to Solana's 'confirmed' commitment." + }, + "super": { + "description": "More than four fifths of stake voted for the block. Used when waiting for a supermajority at boot." + }, + "rooted": { + "description": "The block or a descendant reached maximum lockout and can never be rolled back. The strongest level, equivalent to Solana's 'finalized' commitment." + } + } + }, + "forward": { + "type": "Bool", + "description": "True when the block was confirmed by votes seen over gossip before it was replayed locally. Always false for processed and rooted, which require a local replay." + } + } +} diff --git a/src/discof/replay/fd_replay_tile.c b/src/discof/replay/fd_replay_tile.c index e72d3ee974e..942253bb028 100644 --- a/src/discof/replay/fd_replay_tile.c +++ b/src/discof/replay/fd_replay_tile.c @@ -374,6 +374,7 @@ publish_slot_completed( fd_replay_tile_t * ctx, bank->refcnt++; /* tower_tile */ if( FD_LIKELY( ctx->rpc_enabled ) ) bank->refcnt++; /* rpc tile */ slot_info->bank_idx = bank->idx; + slot_info->bank_seq = bank->bank_seq; slot_info->accdb_fork_id = bank->accdb_fork_id; FD_LOG_DEBUG(( "bank (idx=%lu, slot=%lu) refcnt incremented to %lu for tower, rpc", bank->idx, slot, bank->refcnt )); diff --git a/src/discof/replay/fd_replay_tile.h b/src/discof/replay/fd_replay_tile.h index b4b1d03ae8c..67f165afc2f 100644 --- a/src/discof/replay/fd_replay_tile.h +++ b/src/discof/replay/fd_replay_tile.h @@ -107,10 +107,9 @@ struct fd_replay_slot_completed { uchar burn_percent; } rent; - /* Reference to the bank for this completed slot. TODO: We can - eliminate non-timestamp fields and have consumers just use - bank_idx. */ + /* Reference to the bank for this completed slot. */ ulong bank_idx; + ulong bank_seq; fd_accdb_fork_id_t accdb_fork_id; long first_fec_set_received_nanos; /* timestamp when replay received the first fec of the slot from turbine or repair */ diff --git a/src/discof/tower/fd_tower_tile.c b/src/discof/tower/fd_tower_tile.c index 3f8a07fc837..a6cf528694b 100644 --- a/src/discof/tower/fd_tower_tile.c +++ b/src/discof/tower/fd_tower_tile.c @@ -9,6 +9,7 @@ #include "../../choreo/tower/fd_tower_serdes.h" #include "../../choreo/tower/fd_tower_stakes.h" #include "../../disco/fd_txn_p.h" +#include "../../disco/events/generated/fd_event_gen.h" #include "../../disco/shred/fd_shred_tile.h" #include "../../disco/keyguard/fd_keyload.h" #include "../../disco/keyguard/fd_keyswitch.h" @@ -492,6 +493,39 @@ update_metrics_vote_slot( fd_tower_tile_t * ctx, ctx->metrics.vote_slots[ FD_METRICS_ENUM_VOTE_SLOT_RESULT_V_ALREADY_VOTED_IDX ] += (ulong)(err==FD_VOTES_ERR_ALREADY_VOTED); } +static int +event_level_from_tower( int tower_level ) { + switch( tower_level ) { + case FD_TOWER_SLOT_CONFIRMED_PROPAGATED: return FD_EVENT_SLOT_CONFIRMED_LEVEL_PROPAGATED; + case FD_TOWER_SLOT_CONFIRMED_DUPLICATE: return FD_EVENT_SLOT_CONFIRMED_LEVEL_DUPLICATE; + case FD_TOWER_SLOT_CONFIRMED_OPTIMISTIC: return FD_EVENT_SLOT_CONFIRMED_LEVEL_OPTIMISTIC; + case FD_TOWER_SLOT_CONFIRMED_SUPER: return FD_EVENT_SLOT_CONFIRMED_LEVEL_SUPER; + default: FD_LOG_ERR(( "unexpected tower confirmation level %d", tower_level )); + } +} + +static void +report_slot_confirmed( ulong bank_seq, + ulong slot, + fd_hash_t const * block_id, + ulong stake, + ulong total_stake, + int valid, + int level, + int forward ) { + fd_event_slot_confirmed_t ev = { + .bank_seq = bank_seq, + .slot = slot, + .stake = stake, + .total_stake = total_stake, + .valid = valid, + .level = level, + .forward = forward, + }; + fd_memcpy( ev.block_id, block_id->uc, sizeof(fd_hash_t) ); + fd_event_report_slot_confirmed( &ev ); +} + static void publish_slot_confirmed( fd_tower_tile_t * ctx, ulong slot, @@ -517,6 +551,7 @@ publish_slot_confirmed( fd_tower_tile_t * ctx, if( fd_uchar_extract_bit( votes_blk->flags, i+4 ) ) continue; /* already forward confirmed */ votes_blk->flags = fd_uchar_set_bit( votes_blk->flags, i+4 ); publishes_push_head( ctx->publishes, (publish_t){ .sig = FD_TOWER_SIG_SLOT_CONFIRMED, .msg = { .slot_confirmed = (fd_tower_slot_confirmed_t){ .level = levels[i], .fwd = 1, .slot = votes_blk->key.slot, .block_id = votes_blk->key.block_id } } } ); + report_slot_confirmed( 0UL, votes_blk->key.slot, &votes_blk->key.block_id, votes_blk->stake, total_stake, 1 /* valid */, event_level_from_tower( levels[ i ] ), 1 /* forward */ ); /* If we have a tower_blk for the slot when the ghost_blk is missing, this implies we replayed an equivocating block_id that @@ -564,6 +599,7 @@ publish_slot_confirmed( fd_tower_tile_t * ctx, votes_anc->flags = fd_uchar_set_bit( votes_anc->flags, i ); publishes_push_head( ctx->publishes, (publish_t){ .sig = FD_TOWER_SIG_SLOT_CONFIRMED, .msg = { .slot_confirmed = (fd_tower_slot_confirmed_t){ .level = levels[i], .fwd = 0, .slot = ghost_anc->slot, .block_id = ghost_anc->id } } } ); + report_slot_confirmed( ghost_anc->bank_seq, ghost_anc->slot, &ghost_anc->id, votes_anc->stake, total_stake, ghost_anc->valid, event_level_from_tower( levels[ i ] ), 0 /* not forward */ ); if( FD_UNLIKELY( levels[i]==FD_TOWER_SLOT_CONFIRMED_PROPAGATED ) ) { tower_anc->propagated = 1; } @@ -1124,7 +1160,7 @@ replay_slot_completed( fd_tower_tile_t * ctx, /* This is the first replay_slot_completed (ie. the snapshot or genesis slot), so initialize the ghost root. */ - ghost_blk = fd_ghost_init( ctx->ghost, slot_completed->slot, &slot_completed->block_id ); + ghost_blk = fd_ghost_init( ctx->ghost, slot_completed->bank_seq, slot_completed->slot, &slot_completed->block_id ); } else if ( FD_UNLIKELY( !fd_ghost_query( ctx->ghost, &slot_completed->parent_block_id ) )) { @@ -1135,13 +1171,14 @@ replay_slot_completed( fd_tower_tile_t * ctx, ctx->metrics.ignored_cnt++; ctx->metrics.ignored_slot = slot_completed->slot; publish_slot_ignored( ctx, slot_completed, tsorig, stem ); + report_slot_confirmed( slot_completed->bank_seq, slot_completed->slot, &slot_completed->block_id, 0UL /* stake */, 0UL /* total_stake */, 1 /* valid */, FD_EVENT_SLOT_CONFIRMED_LEVEL_IGNORED, 0 /* not forward */ ); return; /* short-circuit processing this slot */ } else { /* Common case. */ - ghost_blk = fd_ghost_insert( ctx->ghost, slot_completed->slot, &slot_completed->block_id, &slot_completed->parent_block_id ); + ghost_blk = fd_ghost_insert( ctx->ghost, slot_completed->bank_seq, slot_completed->slot, &slot_completed->block_id, &slot_completed->parent_block_id ); } FD_TEST( ghost_blk ); @@ -1251,6 +1288,14 @@ replay_slot_completed( fd_tower_tile_t * ctx, int found = 0; ghost_blk->total_stake = QUERY_TOWERS( ctx, slot_completed, ghost_blk, &found, &our_vote_acct_bal ); + /* Capture the values needed for the processed event now: advancing the + root below (fd_ghost_publish) can prune ghost_blk if this block was + replayed on a minority fork, freeing it before we report. */ + + ulong processed_stake = ghost_blk->stake; + ulong processed_total_stake = ghost_blk->total_stake; + int processed_valid = ghost_blk->valid; + /* The first replay_slot_completed msg is used to initialize the tower tile's various structures. */ @@ -1329,6 +1374,7 @@ replay_slot_completed( fd_tower_tile_t * ctx, fd_ghost_blk_t * intr = newr; while( FD_LIKELY( intr!=oldr ) ) { publish_slot_rooted( ctx, intr->slot, &intr->id ); + report_slot_confirmed( intr->bank_seq, intr->slot, &intr->id, intr->stake, intr->total_stake, intr->valid, FD_EVENT_SLOT_CONFIRMED_LEVEL_ROOTED, 0 /* not forward */ ); intr = fd_ghost_parent( ctx->ghost, intr ); } @@ -1344,6 +1390,7 @@ replay_slot_completed( fd_tower_tile_t * ctx, /* Publish a slot_done frag to tower_out. */ publish_slot_done( ctx, slot_completed, &out, found, our_vote_acct_bal, tsorig, stem ); + report_slot_confirmed( slot_completed->bank_seq, slot_completed->slot, &slot_completed->block_id, processed_stake, processed_total_stake, processed_valid, FD_EVENT_SLOT_CONFIRMED_LEVEL_PROCESSED, 0 /* not forward */ ); /* Write out metrics. */ @@ -1847,6 +1894,7 @@ populate_allowed_fds( fd_topo_t const * topo, fd_topo_run_tile_t fd_tile_tower = { .name = "tower", + .max_event_sz = sizeof(fd_event_slot_confirmed_t), .populate_allowed_seccomp = populate_allowed_seccomp, .populate_allowed_fds = populate_allowed_fds, .scratch_align = scratch_align, diff --git a/src/discof/tower/test_tower_tile.c b/src/discof/tower/test_tower_tile.c index a8776fa81c4..519aceee065 100644 --- a/src/discof/tower/test_tower_tile.c +++ b/src/discof/tower/test_tower_tile.c @@ -332,10 +332,10 @@ test_count_vote_txn( void ) { ulong mock_query_towers( fd_tower_tile_t * ctx, - fd_replay_slot_completed_t * slot_completed, - fd_ghost_blk_t * ghost_blk, - int * found_our_vote_acct, - ulong * our_vote_acct_bal ) { + fd_replay_slot_completed_t * slot_completed, + fd_ghost_blk_t * ghost_blk, + int * found_our_vote_acct, + ulong * our_vote_acct_bal ) { /* Open the fixture file for this slot. */ diff --git a/src/flamenco/runtime/fd_bank.c b/src/flamenco/runtime/fd_bank.c index 43c958b4a15..a32a75af95e 100644 --- a/src/flamenco/runtime/fd_bank.c +++ b/src/flamenco/runtime/fd_bank.c @@ -411,7 +411,7 @@ fd_banks_new( void * shmem, banks_data->max_stake_accounts = max_stake_accounts; banks_data->max_vote_accounts = max_vote_accounts; banks_data->root_idx = ULONG_MAX; - banks_data->bank_seq = 0UL; + banks_data->bank_seq = 1UL; FD_COMPILER_MFENCE(); FD_VOLATILE( banks_data->magic ) = FD_BANKS_MAGIC; @@ -1207,5 +1207,5 @@ fd_banks_clear( fd_banks_t * banks ) { fd_stake_rewards_clear( fd_banks_get_stake_rewards( banks ) ); banks->root_idx = ULONG_MAX; - banks->bank_seq = 0UL; + banks->bank_seq = 1UL; /* start at 1 so 0 is reserved as an invalid bank_seq sentinel */ } diff --git a/src/flamenco/runtime/fd_bank.h b/src/flamenco/runtime/fd_bank.h index c4c70350d90..bce04bc0079 100644 --- a/src/flamenco/runtime/fd_bank.h +++ b/src/flamenco/runtime/fd_bank.h @@ -390,7 +390,7 @@ struct fd_banks { ulong max_stake_accounts; /* Maximum number of stake accounts */ ulong max_vote_accounts; /* Maximum number of vote accounts */ ulong root_idx; /* root idx */ - ulong bank_seq; /* app-wide bank sequence number */ + ulong bank_seq; /* app-wide bank sequence number counter; starts at 1 (0 is reserved as an invalid bank_seq sentinel) */ ulong pool_offset; /* offset of pool from banks */ @@ -670,7 +670,8 @@ fd_banks_clear_bank( fd_banks_t * banks, /* fd_banks_clear releases all banks back to the pool and resets the banks manager to its post-new state. Assumes no active references to - any bank. WARNING: collision risk, resets bank_seq to 0. */ + any bank. WARNING: collision risk, resets bank_seq to 1 (0 is the + reserved invalid sentinel). */ void fd_banks_clear( fd_banks_t * banks ); diff --git a/src/flamenco/runtime/test_bank.c b/src/flamenco/runtime/test_bank.c index 6537be97ec8..f4bd0efa1d6 100644 --- a/src/flamenco/runtime/test_bank.c +++ b/src/flamenco/runtime/test_bank.c @@ -50,7 +50,7 @@ test_bank_advancing( void * mem ) { /* Start with P as root. */ fd_bank_t * bank_P = fd_banks_init_bank( banks ); FD_TEST( bank_P ); /* P slot = 100 */ - FD_TEST( bank_P->bank_seq==0UL ); + FD_TEST( bank_P->bank_seq==1UL ); bank_P->f.slot = 100UL; FD_TEST( bank_P->f.slot == 100UL ); bank_P->refcnt = 0UL; /* P(0) */ @@ -61,7 +61,7 @@ test_bank_advancing( void * mem ) { ulong bank_idx_Q = bank_Q->idx; bank_Q = fd_banks_clone_from_parent( banks, bank_idx_Q ); FD_TEST( bank_Q ); /* Q slot = 101 */ - FD_TEST( bank_Q->bank_seq==1UL ); + FD_TEST( bank_Q->bank_seq==2UL ); bank_Q->f.slot = 101UL; bank_Q->refcnt = 1UL; /* Q(1) */ fd_banks_mark_bank_frozen( bank_Q ); @@ -72,7 +72,7 @@ test_bank_advancing( void * mem ) { ulong bank_idx_A = bank_A->idx; bank_A = fd_banks_clone_from_parent( banks, bank_idx_A ); FD_TEST( bank_A ); /* A slot = 102 */ - FD_TEST( bank_A->bank_seq==2UL ); + FD_TEST( bank_A->bank_seq==3UL ); bank_A->f.slot = 102UL; bank_A->refcnt = 0UL; /* A(0) */ fd_banks_mark_bank_frozen( bank_A ); @@ -82,7 +82,7 @@ test_bank_advancing( void * mem ) { ulong bank_idx_X = bank_X->idx; bank_X = fd_banks_clone_from_parent( banks, bank_idx_X ); FD_TEST( bank_X ); /* X slot = 103 */ - FD_TEST( bank_X->bank_seq==3UL ); + FD_TEST( bank_X->bank_seq==4UL ); bank_X->f.slot = 103UL; bank_X->refcnt = 0UL; /* X(0) */ fd_banks_mark_bank_frozen( bank_X ); @@ -92,7 +92,7 @@ test_bank_advancing( void * mem ) { ulong bank_idx_Y = bank_Y->idx; bank_Y = fd_banks_clone_from_parent( banks, bank_idx_Y ); FD_TEST( bank_Y ); /* Y slot = 104 */ - FD_TEST( bank_Y->bank_seq==4UL ); + FD_TEST( bank_Y->bank_seq==5UL ); bank_Y->f.slot = 104UL; bank_Y->refcnt = 0UL; /* Y(0) */ fd_banks_mark_bank_frozen( bank_Y ); @@ -102,7 +102,7 @@ test_bank_advancing( void * mem ) { ulong bank_idx_B = bank_B->idx; bank_B = fd_banks_clone_from_parent( banks, bank_idx_B ); FD_TEST( bank_B ); /* B slot = 105 */ - FD_TEST( bank_B->bank_seq==5UL ); + FD_TEST( bank_B->bank_seq==6UL ); bank_B->f.slot = 105UL; bank_B->refcnt = 0UL; /* B(0) */ fd_banks_mark_bank_frozen( bank_B ); @@ -112,7 +112,7 @@ test_bank_advancing( void * mem ) { ulong bank_idx_C = bank_C->idx; bank_C = fd_banks_clone_from_parent( banks, bank_idx_C ); FD_TEST( bank_C ); /* C slot = 106 */ - FD_TEST( bank_C->bank_seq==6UL ); + FD_TEST( bank_C->bank_seq==7UL ); bank_C->f.slot = 106UL; bank_C->refcnt = 0UL; /* C(0) */ fd_banks_mark_bank_frozen( bank_C ); @@ -122,7 +122,7 @@ test_bank_advancing( void * mem ) { ulong bank_idx_M = bank_M->idx; bank_M = fd_banks_clone_from_parent( banks, bank_idx_M ); FD_TEST( bank_M ); /* M slot = 107 */ - FD_TEST( bank_M->bank_seq==7UL ); + FD_TEST( bank_M->bank_seq==8UL ); bank_M->f.slot = 107UL; bank_M->refcnt = 0UL; /* M(0) */ fd_banks_mark_bank_frozen( bank_M ); @@ -132,7 +132,7 @@ test_bank_advancing( void * mem ) { ulong bank_idx_R = bank_R->idx; bank_R = fd_banks_clone_from_parent( banks, bank_idx_R ); FD_TEST( bank_R ); /* R slot = 108 */ - FD_TEST( bank_R->bank_seq==8UL ); + FD_TEST( bank_R->bank_seq==9UL ); bank_R->f.slot = 108UL; bank_R->refcnt = 0UL; /* R(0) */ fd_banks_mark_bank_frozen( bank_R ); @@ -142,7 +142,7 @@ test_bank_advancing( void * mem ) { ulong bank_idx_D = bank_D->idx; bank_D = fd_banks_clone_from_parent( banks, bank_idx_D ); FD_TEST( bank_D ); /* D slot = 109 */ - FD_TEST( bank_D->bank_seq==9UL ); + FD_TEST( bank_D->bank_seq==10UL ); bank_D->f.slot = 109UL; bank_D->refcnt = 2UL; /* D(2) */ fd_banks_mark_bank_frozen( bank_D ); @@ -152,7 +152,7 @@ test_bank_advancing( void * mem ) { ulong bank_idx_T = bank_T->idx; bank_T = fd_banks_clone_from_parent( banks, bank_idx_T ); FD_TEST( bank_T ); /* T slot = 110 */ - FD_TEST( bank_T->bank_seq==10UL ); + FD_TEST( bank_T->bank_seq==11UL ); bank_T->f.slot = 110UL; bank_T->refcnt = 0UL; /* T(0) */ fd_banks_mark_bank_frozen( bank_T ); @@ -162,7 +162,7 @@ test_bank_advancing( void * mem ) { ulong bank_idx_J = bank_J->idx; bank_J = fd_banks_clone_from_parent( banks, bank_idx_J ); FD_TEST( bank_J ); /* J slot = 111 */ - FD_TEST( bank_J->bank_seq==11UL ); + FD_TEST( bank_J->bank_seq==12UL ); bank_J->f.slot = 111UL; bank_J->refcnt = 0UL; /* J(0) */ fd_banks_mark_bank_frozen( bank_J ); @@ -172,7 +172,7 @@ test_bank_advancing( void * mem ) { ulong bank_idx_L = bank_L->idx; bank_L = fd_banks_clone_from_parent( banks, bank_idx_L ); FD_TEST( bank_L ); /* L slot = 112 */ - FD_TEST( bank_L->bank_seq==12UL ); + FD_TEST( bank_L->bank_seq==13UL ); bank_L->f.slot = 112UL; bank_L->refcnt = 0UL; /* L(0) */ fd_banks_mark_bank_frozen( bank_L ); @@ -311,7 +311,7 @@ test_bank_dead_eviction( void * mem ) { fd_bank_t * bank_P = fd_banks_init_bank( banks ); FD_TEST( bank_P ); /* P slot = 100 */ - FD_TEST( bank_P->bank_seq==0UL ); + FD_TEST( bank_P->bank_seq==1UL ); bank_P->f.slot = 100UL; FD_TEST( bank_P->f.slot == 100UL ); bank_P->refcnt = 0UL; /* P(0) */ @@ -802,14 +802,14 @@ test_bank_clear( void * mem ) { fd_banks_clear( banks ); FD_TEST( banks->root_idx == ULONG_MAX ); - FD_TEST( banks->bank_seq == 0UL ); + FD_TEST( banks->bank_seq == 1UL ); FD_TEST( fd_banks_pool_used_cnt( banks ) == 0UL ); fd_bank_t * new_root = fd_banks_init_bank( banks ); FD_TEST( new_root ); FD_TEST( new_root->f.slot == 0UL ); FD_TEST( new_root->f.capitalization == 0UL ); - FD_TEST( new_root->bank_seq == 0UL ); + FD_TEST( new_root->bank_seq == 1UL ); new_root->f.slot = 200UL; FD_TEST( new_root->f.slot == 200UL ); @@ -870,7 +870,7 @@ main( int argc, char ** argv ) { FD_TEST( bank ); bank->f.slot = 1UL; ulong bank_idx = bank->idx; - FD_TEST( bank->bank_seq==0UL ); + FD_TEST( bank->bank_seq==1UL ); /* Set some fields */ @@ -906,7 +906,7 @@ main( int argc, char ** argv ) { bank2 = fd_banks_clone_from_parent( banks, bank_idx2 ); FD_TEST( bank2 ); bank2->f.slot = 2UL; - FD_TEST( bank2->bank_seq==1UL ); + FD_TEST( bank2->bank_seq==2UL ); FD_TEST( bank2->f.capitalization == 1000UL ); /* At this point, the first epoch leaders has been allocated from the pool that is limited to 2 instances. */ @@ -944,7 +944,7 @@ main( int argc, char ** argv ) { ulong bank_idx3 = bank3->idx; bank3 = fd_banks_clone_from_parent( banks, bank_idx3 ); FD_TEST( bank3 ); - FD_TEST( bank3->bank_seq==2UL ); + FD_TEST( bank3->bank_seq==3UL ); FD_TEST( bank3->f.capitalization == 1000UL ); bank3->f.capitalization = 2000UL; FD_TEST( bank3->f.capitalization == 2000UL ); @@ -975,7 +975,7 @@ main( int argc, char ** argv ) { ulong bank_idx4 = bank4->idx; bank4 = fd_banks_clone_from_parent( banks, bank_idx4 ); FD_TEST( bank4 ); - FD_TEST( bank4->bank_seq==3UL ); + FD_TEST( bank4->bank_seq==4UL ); FD_TEST( bank4->f.capitalization == 2000UL ); fd_banks_mark_bank_frozen( bank4 ); @@ -984,7 +984,7 @@ main( int argc, char ** argv ) { ulong bank_idx5 = bank5->idx; bank5 = fd_banks_clone_from_parent( banks, bank_idx5 ); FD_TEST( bank5 ); - FD_TEST( bank5->bank_seq==4UL ); + FD_TEST( bank5->bank_seq==5UL ); FD_TEST( bank5->f.capitalization == 2000UL ); bank5->f.capitalization = 3000UL; FD_TEST( bank5->f.capitalization == 3000UL ); @@ -995,7 +995,7 @@ main( int argc, char ** argv ) { ulong bank_idx6 = bank6->idx; bank6 = fd_banks_clone_from_parent( banks, bank_idx6 ); FD_TEST( bank6 ); - FD_TEST( bank6->bank_seq==5UL ); + FD_TEST( bank6->bank_seq==6UL ); FD_TEST( bank6->f.capitalization == 1000UL ); bank6->f.capitalization = 2100UL; bank6->f.slot = 6UL; @@ -1007,7 +1007,7 @@ main( int argc, char ** argv ) { ulong bank_idx7 = bank7->idx; bank7 = fd_banks_clone_from_parent( banks, bank_idx7 ); FD_TEST( bank7 ); - FD_TEST( bank7->bank_seq==6UL ); + FD_TEST( bank7->bank_seq==7UL ); bank7->f.slot = 7UL; FD_TEST( bank7->f.capitalization == 2100UL ); @@ -1038,7 +1038,7 @@ main( int argc, char ** argv ) { ulong bank_idx8 = bank8->idx; bank8 = fd_banks_clone_from_parent( banks, bank_idx8 ); FD_TEST( bank8 ); - FD_TEST( bank8->bank_seq==7UL ); + FD_TEST( bank8->bank_seq==8UL ); FD_TEST( bank8->f.capitalization == 2100UL ); sd_test = fd_bank_stake_delegations_modify( bank8 ); @@ -1056,7 +1056,7 @@ main( int argc, char ** argv ) { ulong bank_idx9 = bank9->idx; bank9 = fd_banks_clone_from_parent( banks, bank_idx9 ); FD_TEST( bank9 ); - FD_TEST( bank9->bank_seq==8UL ); + FD_TEST( bank9->bank_seq==9UL ); FD_TEST( bank9->f.capitalization == 2100UL ); /* Ensure that the child-most bank is able to correctly query the @@ -1128,7 +1128,7 @@ main( int argc, char ** argv ) { ulong bank_idx10 = bank10->idx; bank10 = fd_banks_clone_from_parent( banks, bank_idx10 ); FD_TEST( bank10 ); - FD_TEST( bank10->bank_seq==9UL ); + FD_TEST( bank10->bank_seq==10UL ); FD_TEST( bank10->f.capitalization == 2100UL ); fd_banks_mark_bank_frozen( bank10 ); @@ -1137,7 +1137,7 @@ main( int argc, char ** argv ) { ulong bank_idx11 = bank11->idx; bank11 = fd_banks_clone_from_parent( banks, bank_idx11 ); FD_TEST( bank11 ); - FD_TEST( bank11->bank_seq==10UL ); + FD_TEST( bank11->bank_seq==11UL ); FD_TEST( bank11->f.capitalization == 2100UL ); bank11->f.slot = 11UL; From 7b2ccae3016b5ee597d058910e14c9293b8f44a8 Mon Sep 17 00:00:00 2001 From: Yufeng Zhou Date: Tue, 16 Jun 2026 15:42:28 +0000 Subject: [PATCH 50/61] fuzz(shred): omit empty fec_set payload to match Agave harness bit for bit --- src/flamenco/runtime/tests/fd_shred_harness.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/flamenco/runtime/tests/fd_shred_harness.c b/src/flamenco/runtime/tests/fd_shred_harness.c index af1196d2ef0..b87cc21fe8e 100644 --- a/src/flamenco/runtime/tests/fd_shred_harness.c +++ b/src/flamenco/runtime/tests/fd_shred_harness.c @@ -360,14 +360,16 @@ fd_solfuzz_pb_shred_run( fd_solfuzz_runner_t * runner, out_fec->num_coding_shreds = popped_rec->num_coding_shreds; memcpy( out_fec->merkle_root, popped_rec->mr.hash, FD_SHRED_MERKLE_ROOT_SZ ); memcpy( out_fec->chained_merkle_root, popped_rec->cmr.hash, FD_SHRED_MERKLE_ROOT_SZ ); - out_fec->payload = FD_SCRATCH_ALLOC_APPEND( l, alignof(pb_bytes_array_t), PB_BYTES_ARRAY_T_ALLOCSIZE( popped_rec->payload_sz ) ); - if( FD_UNLIKELY( _l > output_end ) ) { - effects->block_parse_result = FD_EXEC_TEST_BLOCK_PARSE_RESULT_REJECTED_INVALID_HEADER; - effects->fec_set_results_count--; - break; + if( FD_LIKELY( popped_rec->payload_sz ) ) { + out_fec->payload = FD_SCRATCH_ALLOC_APPEND( l, alignof(pb_bytes_array_t), PB_BYTES_ARRAY_T_ALLOCSIZE( popped_rec->payload_sz ) ); + if( FD_UNLIKELY( _l > output_end ) ) { + effects->block_parse_result = FD_EXEC_TEST_BLOCK_PARSE_RESULT_REJECTED_INVALID_HEADER; + effects->fec_set_results_count--; + break; + } + out_fec->payload->size = (pb_size_t)popped_rec->payload_sz; + memcpy( out_fec->payload->bytes, popped_rec->payload, popped_rec->payload_sz ); } - out_fec->payload->size = (pb_size_t)popped_rec->payload_sz; - if( FD_LIKELY( popped_rec->payload_sz ) ) memcpy( out_fec->payload->bytes, popped_rec->payload, popped_rec->payload_sz ); /* Bank lineage comes from the reasm tree, like the replay tile. Reasm pops parents before children, so the parent's bank_idx From e97b091702dc58c1305437a73cb41f12dad041dd Mon Sep 17 00:00:00 2001 From: Yufeng Zhou Date: Tue, 16 Jun 2026 15:43:24 +0000 Subject: [PATCH 51/61] sched: accept a whole batch of empty shreds as an empty batch --- contrib/test/test-vectors-commit-sha.txt | 2 +- src/discof/replay/fd_sched.c | 25 ++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/contrib/test/test-vectors-commit-sha.txt b/contrib/test/test-vectors-commit-sha.txt index 434b85f9634..dc07e3963e4 100644 --- a/contrib/test/test-vectors-commit-sha.txt +++ b/contrib/test/test-vectors-commit-sha.txt @@ -1 +1 @@ -f982eba58c540733b64e11af1d11fd5abbed5437 +0aa08fecb01c9221f2d610eef9ad3dd5069613b2 diff --git a/src/discof/replay/fd_sched.c b/src/discof/replay/fd_sched.c index 5f3f6666c19..3c89b3a1d94 100644 --- a/src/discof/replay/fd_sched.c +++ b/src/discof/replay/fd_sched.c @@ -146,8 +146,8 @@ struct fd_sched_block { uint fec_buf_boff; /* Byte offset into raw block data of the first byte currently in fec_buf */ uint fec_eob:1; /* FEC end-of-batch: set if the last FEC set in the batch is being ingested. */ - uint fec_sob:1; /* FEC start-of-batch: set if the parser expects to be receiving a new - batch. */ + uint fec_sob:1; /* FEC start-of-batch: set if the parser expects to be parsing out a + batch header. */ uint last_batch_empty:1; /* Another non-deterministic constraint that we detect but allow. */ /* Block state. */ @@ -2213,6 +2213,27 @@ fd_sched_parse( fd_sched_t * sched, fd_sched_block_t * block, fd_sched_alut_ctx_ continue; } if( block->txns_rem==0UL && block->mblks_rem==0UL && block->fec_sob ) { + /* https://github.com/anza-xyz/agave/blob/v4.0.2/ledger/src/shredder.rs#L244 + + Agave's shred ingestion pipeline special cases when the shred + payloads for a batch are completely empty. In that case, the + validator will pass along a shred's worth of all zeros. The + upshot is that a batch consisting of zero bytes, which normally + would fail to deserialize into a batch and lead to a bad block, + will get a free pass and be treated as a well formed empty + batch. Only when the batch has zero bytes, not one byte, or + seven bytes, or five bytes; those fail to deserialize and end + up as bad blocks, as they should. Exactly zero, that's the + magical number to hand out free passes on. + + FIXME: remove this logic after Agave bans empty batches. */ + if( FD_UNLIKELY( block->fec_eob && block->fec_buf_sz==0U ) ) { + block->mblks_rem = 0UL; + block->fec_sob = 0; + block->last_batch_empty = 1; + continue; + } + CHECK_LEFT( sizeof(ulong) ); FD_TEST( block->fec_buf_soff==0U ); block->mblks_rem = FD_LOAD( ulong, block->fec_buf ); From d783bb1d72ae4683372a1215f6e684f4c34a244e Mon Sep 17 00:00:00 2001 From: Michael McGee Date: Tue, 16 Jun 2026 18:04:39 +0000 Subject: [PATCH 52/61] events: minor client fixes --- book/api/metrics-generated.md | 4 ++- src/app/shared/commands/watch/watch.c | 27 ++++++++++++------- src/disco/events/fd_circq.c | 6 +++++ src/disco/events/fd_circq.h | 8 ++++++ src/disco/events/fd_event_client.c | 15 +++++++---- src/disco/events/fd_event_client.h | 1 + src/disco/events/fd_event_tile.c | 2 ++ .../metrics/generated/fd_metrics_event.c | 2 ++ .../metrics/generated/fd_metrics_event.h | 16 +++++++++-- src/disco/metrics/metrics.xml | 4 ++- 10 files changed, 67 insertions(+), 18 deletions(-) diff --git a/book/api/metrics-generated.md b/book/api/metrics-generated.md index df88a84f104..c61b9a5fc46 100644 --- a/book/api/metrics-generated.md +++ b/book/api/metrics-generated.md @@ -1556,12 +1556,14 @@ | Metric | Type | Description | |--------|------|-------------| | event_​conn_​state | gauge | 0=disconnected, 1=connecting, 2=connected | -| event_​queue_​depth | gauge | Events in the event queue waiting to be sent to the event service | +| event_​queue_​depth | gauge | Total events in the event queue (sent-but-unacknowledged plus unsent) | +| event_​queue_​unsent | gauge | Events in the event queue not yet sent to the event service | | event_​queue_​dropped | counter | Events dropped because the event queue was full | | event_​queue_​bytes_​used | gauge | Bytes used in the event queue | | event_​queue_​bytes_​capacity | gauge | Total capacity of the event queue, in bytes | | event_​sent | counter | Events sent to the event service | | event_​acked | counter | Events acknowledged by the event service | +| event_​last_​acked_​id | gauge | Event id (nonce) of the most recently acknowledged event | | event_​bytes_​written | counter | Bytes written to the event service | | event_​bytes_​read | counter | Bytes read from the event service | | event_​auth_​failed | counter | Authentication failures with the event service | diff --git a/src/app/shared/commands/watch/watch.c b/src/app/shared/commands/watch/watch.c index e2eb0246558..7efdaad3c7f 100644 --- a/src/app/shared/commands/watch/watch.c +++ b/src/app/shared/commands/watch/watch.c @@ -1103,6 +1103,9 @@ write_event( config_t const * config, } ulong event_queue_count = cur_tile[ event_tile_idx*FD_METRICS_TOTAL_SZ+MIDX( GAUGE, EVENT, QUEUE_DEPTH ) ]; + ulong event_queue_unsent = cur_tile[ event_tile_idx*FD_METRICS_TOTAL_SZ+MIDX( GAUGE, EVENT, QUEUE_UNSENT ) ]; + ulong event_queue_unacked = event_queue_count>event_queue_unsent ? event_queue_count-event_queue_unsent : 0UL; + ulong event_last_acked_id = cur_tile[ event_tile_idx*FD_METRICS_TOTAL_SZ+MIDX( GAUGE, EVENT, LAST_ACKED_ID ) ]; ulong event_queue_drops = cur_tile[ event_tile_idx*FD_METRICS_TOTAL_SZ+MIDX( COUNTER, EVENT, QUEUE_DROPPED ) ]; ulong event_queue_bytes_used = cur_tile[ event_tile_idx*FD_METRICS_TOTAL_SZ+MIDX( GAUGE, EVENT, QUEUE_BYTES_USED ) ]; ulong event_queue_bytes_capacity = cur_tile[ event_tile_idx*FD_METRICS_TOTAL_SZ+MIDX( GAUGE, EVENT, QUEUE_BYTES_CAPACITY ) ]; @@ -1131,20 +1134,26 @@ write_event( config_t const * config, long bytes_read_per_sec = (long)(100.0*(double)bytes_read_sum/(double)num_bytes_read_samples); char * bytes_read_str = fmt_bytes( fd_alloca_check( 1UL, 64UL ), 64UL, bytes_read_per_sec ); - char * event_queue_count_s = COUNT( event_queue_count ); + char * event_queue_unacked_s = COUNT( event_queue_unacked ); + char * event_queue_unsent_s = COUNT( event_queue_unsent ); + char * event_last_acked_id_s = COUNT( event_last_acked_id ); PRINT( "📡 " BOLD YELLOW "EVENT......." RESET UNBOLD - " " BOLD "STATE" UNBOLD " %12s" - " " BOLD "QUEUE" UNBOLD " %s" - " " BOLD "SENT" UNBOLD " %s /s" - " " BOLD "ACKED" UNBOLD " %s /s" - " " BOLD "BW" UNBOLD " %s in %s out" - " " BOLD "DROPS" UNBOLD " %s" - " " BOLD "FULL" UNBOLD " %3.0f%%" CLEARLN "\n", + " " BOLD "STATE" UNBOLD " %12s" + " " BOLD "UNACKED" UNBOLD " %s" + " " BOLD "QUEUE" UNBOLD " %s" + " " BOLD "SENT" UNBOLD " %s /s" + " " BOLD "ACKED" UNBOLD " %s /s" + " " BOLD "LAST ACK" UNBOLD " %s" + " " BOLD "BW" UNBOLD " %s in %s out" + " " BOLD "DROPS" UNBOLD " %s" + " " BOLD "FULL" UNBOLD " %3.0f%%" CLEARLN "\n", connection_state_str, - event_queue_count_s, + event_queue_unacked_s, + event_queue_unsent_s, events_sent_str, events_acked_str, + event_last_acked_id_s, bytes_read_str, bytes_written_str, COUNT( event_queue_drops ), diff --git a/src/disco/events/fd_circq.c b/src/disco/events/fd_circq.c index 1a85de0a8c1..340b26e12da 100644 --- a/src/disco/events/fd_circq.c +++ b/src/disco/events/fd_circq.c @@ -252,3 +252,9 @@ fd_circq_bytes_used( fd_circq_t const * circq ) { if( FD_LIKELY( circq->tail>=circq->head ) ) return tail_end - circq->head; else return (circq->size - circq->head) + tail_end; } + +ulong +fd_circq_unsent_cnt( fd_circq_t const * circq ) { + if( FD_UNLIKELY( circq->cursor==ULONG_MAX ) ) return circq->cnt; + return fd_ulong_min( circq->cursor_push_seq - circq->cursor_seq, circq->cnt ); +} diff --git a/src/disco/events/fd_circq.h b/src/disco/events/fd_circq.h index 17be9ffbb2c..3a838ac75d8 100644 --- a/src/disco/events/fd_circq.h +++ b/src/disco/events/fd_circq.h @@ -126,6 +126,14 @@ fd_circq_reset_cursor( fd_circq_t * circq ); ulong fd_circq_bytes_used( fd_circq_t const * circq ); +/* fd_circq_unsent_cnt returns the number of messages in the queue that + the cursor has not yet advanced past, i.e. messages still waiting to + be sent. The remaining messages (cnt - unsent) have been sent and are + awaiting acknowledgement before they are popped. */ + +ulong +fd_circq_unsent_cnt( fd_circq_t const * circq ); + FD_PROTOTYPES_END #endif /* HEADER_fd_src_disco_events_fd_circq_h */ diff --git a/src/disco/events/fd_event_client.c b/src/disco/events/fd_event_client.c index 4ccfc7b2f58..cb06129d76f 100644 --- a/src/disco/events/fd_event_client.c +++ b/src/disco/events/fd_event_client.c @@ -293,6 +293,8 @@ disconnect( fd_event_client_t * client, client->state = FD_EVENT_CLIENT_STATE_DISCONNECTED; fd_circq_reset_cursor( client->circq ); } + + client->event_stream = NULL; client->auth_deadline = LONG_MAX; client->auth_send_pending = 0; @@ -446,6 +448,7 @@ reconnect( fd_event_client_t * client, static int fd_event_client_try_send_authenticate( fd_event_client_t * client ) { if( FD_UNLIKELY( fd_grpc_client_request_is_blocked( client->grpc_client ) ) ) return 0; + if( FD_UNLIKELY( fd_grpc_client_request_stream_busy( client->grpc_client ) ) ) return 0; fd_pb_encoder_t auth_req[1]; uchar buffer[ 256UL ]; @@ -472,8 +475,8 @@ fd_event_client_try_send_authenticate( fd_event_client_t * client ) { if( FD_UNLIKELY( !stream ) ) return 0; long now = fd_log_wallclock(); - fd_grpc_client_deadline_set( stream, FD_GRPC_DEADLINE_HEADER, now+(long)5e9 /* 5s */ ); - fd_grpc_client_deadline_set( stream, FD_GRPC_DEADLINE_RX_END, now+(long)5e9 /* 5s */ ); + fd_grpc_client_deadline_set( stream, FD_GRPC_DEADLINE_HEADER, now+(long)2e9 ); + fd_grpc_client_deadline_set( stream, FD_GRPC_DEADLINE_RX_END, now+(long)2e9 ); client->auth_send_pending = 0; FD_LOG_INFO(( "Requesting auth challenge from event server " FD_IP4_ADDR_FMT ":%u (%.*s)", @@ -488,7 +491,7 @@ fd_event_client_grpc_conn_established( void * app_ctx ) { long now = fd_log_wallclock(); client->state = FD_EVENT_CLIENT_STATE_AUTHENTICATING; - client->auth_deadline = now + (long)5e9; /* 5s */ + client->auth_deadline = now + (long)2e9; client->auth_send_pending = 1; fd_event_client_try_send_authenticate( client ); @@ -576,8 +579,8 @@ fd_event_client_handle_auth_challenge_resp( fd_event_client_t * client, } long now = fd_log_wallclock(); - fd_grpc_client_deadline_set( stream, FD_GRPC_DEADLINE_HEADER, now+(long)5e9 /* 5s */ ); - fd_grpc_client_deadline_set( stream, FD_GRPC_DEADLINE_RX_END, now+(long)5e9 /* 5s */ ); + fd_grpc_client_deadline_set( stream, FD_GRPC_DEADLINE_HEADER, now+(long)2e9 ); + fd_grpc_client_deadline_set( stream, FD_GRPC_DEADLINE_RX_END, now+(long)2e9 ); client->state = FD_EVENT_CLIENT_STATE_CONFIRMING_AUTH; FD_LOG_DEBUG(( "Sent signed auth challenge" )); @@ -651,6 +654,8 @@ fd_event_client_handle_stream_events_resp( fd_event_client_t * client, client->metrics.events_acked++; if( FD_UNLIKELY( nonce_ack==ULONG_MAX ) ) return; + client->metrics.last_acked_id = nonce_ack; + int err = fd_circq_pop_until( client->circq, nonce_ack ); if( FD_UNLIKELY( -1==err ) ) { FD_LOG_WARNING(( "Event gRPC rx msg: invalid cursor ack %lu", nonce_ack )); diff --git a/src/disco/events/fd_event_client.h b/src/disco/events/fd_event_client.h index 1037914dda2..00fc70ea43d 100644 --- a/src/disco/events/fd_event_client.h +++ b/src/disco/events/fd_event_client.h @@ -23,6 +23,7 @@ struct fd_event_client_metrics { ulong transport_success_cnt; ulong events_sent; ulong events_acked; + ulong last_acked_id; ulong bytes_written; ulong bytes_read; ulong auth_fail_cnt; diff --git a/src/disco/events/fd_event_tile.c b/src/disco/events/fd_event_tile.c index e19979b1f81..7f5c8725128 100644 --- a/src/disco/events/fd_event_tile.c +++ b/src/disco/events/fd_event_tile.c @@ -145,6 +145,7 @@ loose_footprint( fd_topo_tile_t const * tile ) { static inline void metrics_write( fd_event_tile_t * ctx ) { FD_MGAUGE_SET( EVENT, QUEUE_DEPTH, ctx->circq->cnt ); + FD_MGAUGE_SET( EVENT, QUEUE_UNSENT, fd_circq_unsent_cnt( ctx->circq ) ); FD_MCNT_SET( EVENT, QUEUE_DROPPED, ctx->circq->metrics.drop_cnt ); FD_MGAUGE_SET( EVENT, QUEUE_BYTES_USED, fd_circq_bytes_used( ctx->circq ) ); FD_MGAUGE_SET( EVENT, QUEUE_BYTES_CAPACITY, ctx->circq->size ); @@ -152,6 +153,7 @@ metrics_write( fd_event_tile_t * ctx ) { fd_event_client_metrics_t const * metrics = fd_event_client_metrics( ctx->client ); FD_MCNT_SET( EVENT, SENT, metrics->events_sent ); FD_MCNT_SET( EVENT, ACKED, metrics->events_acked ); + FD_MGAUGE_SET( EVENT, LAST_ACKED_ID, metrics->last_acked_id ); FD_MCNT_SET( EVENT, BYTES_WRITTEN, metrics->bytes_written ); FD_MCNT_SET( EVENT, BYTES_READ, metrics->bytes_read ); FD_MCNT_SET( EVENT, AUTH_FAILED, metrics->auth_fail_cnt ); diff --git a/src/disco/metrics/generated/fd_metrics_event.c b/src/disco/metrics/generated/fd_metrics_event.c index c5777b9e7b7..0daab08fa29 100644 --- a/src/disco/metrics/generated/fd_metrics_event.c +++ b/src/disco/metrics/generated/fd_metrics_event.c @@ -4,11 +4,13 @@ const fd_metrics_meta_t FD_METRICS_EVENT[FD_METRICS_EVENT_TOTAL] = { DECLARE_METRIC( EVENT_CONN_STATE, GAUGE ), DECLARE_METRIC( EVENT_QUEUE_DEPTH, GAUGE ), + DECLARE_METRIC( EVENT_QUEUE_UNSENT, GAUGE ), DECLARE_METRIC( EVENT_QUEUE_DROPPED, COUNTER ), DECLARE_METRIC( EVENT_QUEUE_BYTES_USED, GAUGE ), DECLARE_METRIC( EVENT_QUEUE_BYTES_CAPACITY, GAUGE ), DECLARE_METRIC( EVENT_SENT, COUNTER ), DECLARE_METRIC( EVENT_ACKED, COUNTER ), + DECLARE_METRIC( EVENT_LAST_ACKED_ID, GAUGE ), DECLARE_METRIC( EVENT_BYTES_WRITTEN, COUNTER ), DECLARE_METRIC( EVENT_BYTES_READ, COUNTER ), DECLARE_METRIC( EVENT_AUTH_FAILED, COUNTER ), diff --git a/src/disco/metrics/generated/fd_metrics_event.h b/src/disco/metrics/generated/fd_metrics_event.h index 8be503c1575..be6bca8938e 100644 --- a/src/disco/metrics/generated/fd_metrics_event.h +++ b/src/disco/metrics/generated/fd_metrics_event.h @@ -9,11 +9,13 @@ enum { FD_METRICS_GAUGE_EVENT_CONN_STATE_OFF = FD_METRICS_TILE_OFF, FD_METRICS_GAUGE_EVENT_QUEUE_DEPTH_OFF, + FD_METRICS_GAUGE_EVENT_QUEUE_UNSENT_OFF, FD_METRICS_COUNTER_EVENT_QUEUE_DROPPED_OFF, FD_METRICS_GAUGE_EVENT_QUEUE_BYTES_USED_OFF, FD_METRICS_GAUGE_EVENT_QUEUE_BYTES_CAPACITY_OFF, FD_METRICS_COUNTER_EVENT_SENT_OFF, FD_METRICS_COUNTER_EVENT_ACKED_OFF, + FD_METRICS_GAUGE_EVENT_LAST_ACKED_ID_OFF, FD_METRICS_COUNTER_EVENT_BYTES_WRITTEN_OFF, FD_METRICS_COUNTER_EVENT_BYTES_READ_OFF, FD_METRICS_COUNTER_EVENT_AUTH_FAILED_OFF, @@ -29,9 +31,14 @@ enum { #define FD_METRICS_GAUGE_EVENT_QUEUE_DEPTH_NAME "event_queue_depth" #define FD_METRICS_GAUGE_EVENT_QUEUE_DEPTH_TYPE (FD_METRICS_TYPE_GAUGE) -#define FD_METRICS_GAUGE_EVENT_QUEUE_DEPTH_DESC "Events in the event queue waiting to be sent to the event service" +#define FD_METRICS_GAUGE_EVENT_QUEUE_DEPTH_DESC "Total events in the event queue (sent-but-unacknowledged plus unsent)" #define FD_METRICS_GAUGE_EVENT_QUEUE_DEPTH_CVT (FD_METRICS_CONVERTER_NONE) +#define FD_METRICS_GAUGE_EVENT_QUEUE_UNSENT_NAME "event_queue_unsent" +#define FD_METRICS_GAUGE_EVENT_QUEUE_UNSENT_TYPE (FD_METRICS_TYPE_GAUGE) +#define FD_METRICS_GAUGE_EVENT_QUEUE_UNSENT_DESC "Events in the event queue not yet sent to the event service" +#define FD_METRICS_GAUGE_EVENT_QUEUE_UNSENT_CVT (FD_METRICS_CONVERTER_NONE) + #define FD_METRICS_COUNTER_EVENT_QUEUE_DROPPED_NAME "event_queue_dropped" #define FD_METRICS_COUNTER_EVENT_QUEUE_DROPPED_TYPE (FD_METRICS_TYPE_COUNTER) #define FD_METRICS_COUNTER_EVENT_QUEUE_DROPPED_DESC "Events dropped because the event queue was full" @@ -57,6 +64,11 @@ enum { #define FD_METRICS_COUNTER_EVENT_ACKED_DESC "Events acknowledged by the event service" #define FD_METRICS_COUNTER_EVENT_ACKED_CVT (FD_METRICS_CONVERTER_NONE) +#define FD_METRICS_GAUGE_EVENT_LAST_ACKED_ID_NAME "event_last_acked_id" +#define FD_METRICS_GAUGE_EVENT_LAST_ACKED_ID_TYPE (FD_METRICS_TYPE_GAUGE) +#define FD_METRICS_GAUGE_EVENT_LAST_ACKED_ID_DESC "Event id (nonce) of the most recently acknowledged event" +#define FD_METRICS_GAUGE_EVENT_LAST_ACKED_ID_CVT (FD_METRICS_CONVERTER_NONE) + #define FD_METRICS_COUNTER_EVENT_BYTES_WRITTEN_NAME "event_bytes_written" #define FD_METRICS_COUNTER_EVENT_BYTES_WRITTEN_TYPE (FD_METRICS_TYPE_COUNTER) #define FD_METRICS_COUNTER_EVENT_BYTES_WRITTEN_DESC "Bytes written to the event service" @@ -87,7 +99,7 @@ enum { #define FD_METRICS_COUNTER_EVENT_HANDSHAKE_TIMEOUT_DESC "Authentication handshake timeouts with the event service" #define FD_METRICS_COUNTER_EVENT_HANDSHAKE_TIMEOUT_CVT (FD_METRICS_CONVERTER_NONE) -#define FD_METRICS_EVENT_TOTAL (13UL) +#define FD_METRICS_EVENT_TOTAL (15UL) extern const fd_metrics_meta_t FD_METRICS_EVENT[FD_METRICS_EVENT_TOTAL]; #endif /* HEADER_fd_src_disco_metrics_generated_fd_metrics_event_h */ diff --git a/src/disco/metrics/metrics.xml b/src/disco/metrics/metrics.xml index 8ac2009ea8b..e2f09705d32 100644 --- a/src/disco/metrics/metrics.xml +++ b/src/disco/metrics/metrics.xml @@ -1934,7 +1934,8 @@ EXAMPLES - + + @@ -1942,6 +1943,7 @@ EXAMPLES + From bffab8b5b7d09c31c5af4518ec9ab987997f7ddf Mon Sep 17 00:00:00 2001 From: Liam <12869538+two-heart@users.noreply.github.com> Date: Tue, 16 Jun 2026 20:42:53 +0200 Subject: [PATCH 53/61] fuzz, gossip: gossip multi tile fuzzers (#10265) This commit adds two fuzzers: - `gossvf_tile` fuzzes the gossvf tile in isolation by mocking its in/out links in a 8 peer environment. Fast ~1050 exec/s - gossvf_gossip_pair: Tests the gossvf and the gossip tile together. Two peers are talking to each other and we use "fault injection" to test with invalid inputs. In addition we let the fuzzer do things like skip ahead in time to have fast fuzz-throughput as we are not bounded by a real network and want to test the time-based events. --- src/discof/gossip/Local.mk | 2 + src/discof/gossip/fuzz_gossvf_gossip_pair.c | 1161 +++++++++++++++++++ src/discof/gossip/fuzz_gossvf_tile.c | 905 +++++++++++++++ 3 files changed, 2068 insertions(+) create mode 100644 src/discof/gossip/fuzz_gossvf_gossip_pair.c create mode 100644 src/discof/gossip/fuzz_gossvf_tile.c diff --git a/src/discof/gossip/Local.mk b/src/discof/gossip/Local.mk index e26d3e0bc13..f8adb4c36ee 100644 --- a/src/discof/gossip/Local.mk +++ b/src/discof/gossip/Local.mk @@ -1,4 +1,6 @@ ifdef FD_HAS_HOSTED $(call add-objs,fd_gossip_tile,fd_discof) $(call add-objs,fd_gossvf_tile,fd_discof) +$(call make-fuzz-test,fuzz_gossvf_tile,fuzz_gossvf_tile,fd_disco fd_flamenco fd_ballet fd_tango fd_util) +$(call make-fuzz-test,fuzz_gossvf_gossip_pair,fuzz_gossvf_gossip_pair,fd_disco fd_flamenco fd_ballet fd_tango fd_util) endif diff --git a/src/discof/gossip/fuzz_gossvf_gossip_pair.c b/src/discof/gossip/fuzz_gossvf_gossip_pair.c new file mode 100644 index 00000000000..ced9efcdece --- /dev/null +++ b/src/discof/gossip/fuzz_gossvf_gossip_pair.c @@ -0,0 +1,1161 @@ +#if !FD_HAS_HOSTED +#error "This target requires FD_HAS_HOSTED" +#endif + +#include +#include +#include + +#include "../../util/fd_util.h" +#include "../../util/sanitize/fd_fuzz.h" +#include "../../ballet/ed25519/fd_ed25519.h" +#include "../../ballet/sha256/fd_sha256.h" +#include "../../disco/keyguard/fd_keyguard.h" +#include "../../flamenco/gossip/fd_gossip.h" +#include "../../flamenco/runtime/fd_system_ids.h" +#include "../../flamenco/runtime/program/vote/fd_vote_codec.h" + +/* Pull the verifier tile into the fuzz target so the paired harness can + route packets through the real static gossvf validation path. */ +#define fd_tile_gossvf fd_tile_gossvf_pair_fuzz_unused +#include "fd_gossvf_tile.c" +#undef fd_tile_gossvf + +#define PAIR_NODE_CNT (2UL) +#define PAIR_MAX_VALUES (256UL) +#define PAIR_OUT_DEPTH (256UL) +#define PAIR_OUT_DBUF_SZ (1UL<<17UL) +#define PAIR_TCACHE_DEPTH (1UL<<10UL) +#define PAIR_QUEUE_DEPTH (128UL) +#define PAIR_SHRED_VERSION (42U) +#define PAIR_MAX_ACTIONS (96UL) +#define PAIR_MAX_SLOT (1000000000000000UL) + +/* The production gossvf tile sizes its peer/ping/stake tables for a full + mainnet cluster (FD_CONTACT_INFO_TABLE_SIZE, FD_PING_TRACKER_MAX, + MAX_SHRED_DESTS). This harness only ever exercises PAIR_NODE_CNT nodes, + so we size the tables for the actual workload. This shrinks the per-input + backing memory (and the memset that zeroes it) by orders of magnitude + without losing any reachable behavior. */ +#define PAIR_PEER_CAP (256UL) +#define PAIR_PING_CAP (256UL) +#define PAIR_STAKE_CAP (16UL) +#define PAIR_GOSSVF_OUT_MTU \ + (sizeof(fd_gossip_message_t) + FD_GOSSIP_MESSAGE_MAX_CRDS + FD_NET_MTU) + +typedef struct pair_env pair_env_t; + +typedef struct { + uchar priv[ 32UL ]; + fd_pubkey_t pub[ 1 ]; +} pair_identity_t; + +typedef struct { + uchar const * cur; + ulong rem; +} pair_cursor_t; + +typedef struct { + pair_env_t * env; + ulong idx; + + fd_gossip_t * gossip; + fd_rng_t rng[ 1 ]; + fd_gossip_out_ctx_t gossip_out[ 1 ]; + fd_gossip_out_ctx_t net_out[ 1 ]; + fd_frag_meta_t * gossip_mcache; + fd_stem_context_t gossip_stem[ 1 ]; + fd_frag_meta_t * gossip_stem_mcache[ 1 ]; + ulong gossip_stem_seq[ 1 ]; + ulong gossip_stem_depth[ 1 ]; + ulong gossip_stem_cr_avail[ 1 ]; + ulong gossip_stem_min_cr_avail[ 1 ]; + int gossip_stem_out_reliable[ 1 ]; + ulong gossip_drain_seq; + + fd_gossvf_tile_ctx_t vf[ 1 ]; + fd_frag_meta_t * vf_mcache; + fd_stem_context_t vf_stem[ 1 ]; + fd_frag_meta_t * vf_stem_mcache[ 1 ]; + ulong vf_stem_seq[ 1 ]; + ulong vf_stem_depth[ 1 ]; + ulong vf_stem_cr_avail[ 1 ]; + ulong vf_stem_min_cr_avail[ 1 ]; + int vf_stem_out_reliable[ 1 ]; + ulong vf_drain_seq; + + fd_ip4_port_t addr; + ushort port_host; +} pair_node_t; + +typedef struct { + ulong src_idx; + ulong dst_idx; + fd_ip4_port_t src; + fd_ip4_port_t dst; + uchar payload[ FD_NET_MTU ]; + ulong payload_sz; +} pair_packet_t; + +struct pair_env { + pair_node_t nodes[ PAIR_NODE_CNT ]; + + pair_packet_t queue[ PAIR_QUEUE_DEPTH ]; + ulong queue_head; + ulong queue_cnt; + + long now; + ulong mutator_idx; + + uchar value_buf[ FD_GOSSIP_VALUE_MAX_SZ ]; + uchar wire_buf [ FD_NET_MTU ]; +}; + +static pair_identity_t identities[ PAIR_NODE_CNT ]; +static fd_sha512_t sha512[ 1 ]; +static pair_env_t * pair_env; +static uchar * pair_mem; +static ulong pair_mem_sz; + +static ulong +pair_mem_align( void ) { + ulong a = 128UL; + a = fd_ulong_max( a, fd_gossip_align() ); + a = fd_ulong_max( a, peer_pool_align () ); + a = fd_ulong_max( a, peer_map_align () ); + a = fd_ulong_max( a, ping_pool_align () ); + a = fd_ulong_max( a, ping_map_align () ); + a = fd_ulong_max( a, stake_pool_align() ); + a = fd_ulong_max( a, stake_map_align () ); + a = fd_ulong_max( a, fd_tcache_align () ); + a = fd_ulong_max( a, FD_CHUNK_ALIGN ); + a = fd_ulong_max( a, fd_mcache_align() ); + return a; +} + +static ulong +pair_node_layout_append( ulong l ) { + l = FD_LAYOUT_APPEND( l, fd_gossip_align(), fd_gossip_footprint( PAIR_MAX_VALUES, 1UL ) ); + l = FD_LAYOUT_APPEND( l, FD_CHUNK_ALIGN, PAIR_OUT_DBUF_SZ ); + l = FD_LAYOUT_APPEND( l, fd_mcache_align(), fd_mcache_footprint( PAIR_OUT_DEPTH, 0UL ) ); + + l = FD_LAYOUT_APPEND( l, peer_pool_align(), peer_pool_footprint( PAIR_PEER_CAP ) ); + l = FD_LAYOUT_APPEND( l, peer_map_align(), peer_map_footprint( 2UL*PAIR_PEER_CAP ) ); + l = FD_LAYOUT_APPEND( l, ping_pool_align(), ping_pool_footprint( PAIR_PING_CAP ) ); + l = FD_LAYOUT_APPEND( l, ping_map_align(), ping_map_footprint( 2UL*PAIR_PING_CAP ) ); + l = FD_LAYOUT_APPEND( l, stake_pool_align(), stake_pool_footprint( PAIR_STAKE_CAP ) ); + l = FD_LAYOUT_APPEND( l, stake_map_align(), stake_map_footprint( stake_map_chain_cnt_est( PAIR_STAKE_CAP ) ) ); + l = FD_LAYOUT_APPEND( l, fd_tcache_align(), fd_tcache_footprint( PAIR_TCACHE_DEPTH, 0UL ) ); + l = FD_LAYOUT_APPEND( l, FD_CHUNK_ALIGN, PAIR_OUT_DBUF_SZ ); + l = FD_LAYOUT_APPEND( l, fd_mcache_align(), fd_mcache_footprint( PAIR_OUT_DEPTH, 0UL ) ); + return l; +} + +static ulong +pair_mem_footprint( void ) { + ulong l = FD_LAYOUT_INIT; + for( ulong i=0UL; i> FD_CHUNK_LG_SZ; + ulong chunk_mtu = ((mtu + 2UL*FD_CHUNK_SZ - 1UL) >> + (1UL+FD_CHUNK_LG_SZ)) << 1UL; + FD_TEST( chunk_cnt>chunk_mtu ); + return chunk_cnt - chunk_mtu; +} + +static uchar +pair_u8( pair_cursor_t * cur ) { + if( FD_UNLIKELY( !cur->rem ) ) return 0U; + uchar v = cur->cur[ 0 ]; + cur->cur++; + cur->rem--; + return v; +} + +static ulong +pair_u64( pair_cursor_t * cur ) { + ulong x = 0UL; + for( ulong i=0UL; i<8UL; i++ ) x |= (ulong)pair_u8( cur ) << (8UL*i); + return x; +} + +static ulong +pair_bounded( pair_cursor_t * cur, + ulong bound ) { + return bound ? pair_u64( cur ) % bound : 0UL; +} + +static int +pair_txn_write_u8( uchar ** p, + ulong * rem, + uchar x ) { + if( FD_UNLIKELY( !*rem ) ) return 0; + FD_STORE( uchar, *p, x ); + (*p)++; + (*rem)--; + return 1; +} + +static int +pair_txn_write_u16_varint( uchar ** p, + ulong * rem, + ushort x ) { + if( FD_LIKELY( x<128U ) ) return pair_txn_write_u8( p, rem, (uchar)x ); + if( FD_LIKELY( x<16384U ) ) { + if( FD_UNLIKELY( *rem<2UL ) ) return 0; + FD_STORE( uchar, *p, (uchar)((x & 0x7FU) | 0x80U) ); + FD_STORE( uchar, (*p)+1, (uchar)(x >> 7U) ); + (*p) += 2UL; + (*rem) -= 2UL; + return 1; + } + if( FD_UNLIKELY( *rem<3UL ) ) return 0; + FD_STORE( uchar, *p, (uchar)((x & 0x7FU) | 0x80U) ); + FD_STORE( uchar, (*p)+1, (uchar)(((x >> 7U) & 0x7FU) | 0x80U) ); + FD_STORE( uchar, (*p)+2, (uchar)(x >> 14U) ); + (*p) += 3UL; + (*rem) -= 3UL; + return 1; +} + +static int +pair_txn_write_u32( uchar ** p, + ulong * rem, + uint x ) { + if( FD_UNLIKELY( *rem<4UL ) ) return 0; + FD_STORE( uint, *p, x ); + (*p) += 4UL; + (*rem) -= 4UL; + return 1; +} + +static int +pair_txn_write_u64( uchar ** p, + ulong * rem, + ulong x ) { + if( FD_UNLIKELY( *rem<8UL ) ) return 0; + FD_STORE( ulong, *p, x ); + (*p) += 8UL; + (*rem) -= 8UL; + return 1; +} + +static int +pair_txn_write_bytes( uchar ** p, + ulong * rem, + uchar const * src, + ulong sz ) { + if( FD_UNLIKELY( *remuc, 32UL ) ) ) return 0UL; + if( FD_UNLIKELY( !pair_txn_write_bytes( &p, &rem, identities[ src_idx ^ 1UL ].pub->uc, 32UL ) ) ) return 0UL; + if( FD_UNLIKELY( !pair_txn_write_bytes( &p, &rem, fd_solana_vote_program_id.uc, 32UL ) ) ) return 0UL; + for( ulong i=0UL; i<32UL; i++ ) + if( FD_UNLIKELY( !pair_txn_write_u8( &p, &rem, pair_u8( cur ) ) ) ) return 0UL; + + if( FD_UNLIKELY( !pair_txn_write_u16_varint( &p, &rem, 1U ) ) ) return 0UL; + if( FD_UNLIKELY( !pair_txn_write_u8( &p, &rem, 2U ) ) ) return 0UL; + if( FD_UNLIKELY( !pair_txn_write_u16_varint( &p, &rem, 2U ) ) ) return 0UL; + if( FD_UNLIKELY( !pair_txn_write_u8( &p, &rem, 0U ) ) ) return 0UL; + if( FD_UNLIKELY( !pair_txn_write_u8( &p, &rem, 1U ) ) ) return 0UL; + if( FD_UNLIKELY( !pair_txn_write_u16_varint( &p, &rem, (ushort)instr_sz ) ) ) return 0UL; + if( FD_UNLIKELY( !pair_txn_write_bytes( &p, &rem, instr, instr_sz ) ) ) return 0UL; + + return (ulong)( p - out ); +} + +static void +init_identities( void ) { + static int initialized = 0; + if( FD_LIKELY( initialized ) ) return; + + FD_TEST( fd_sha512_join( fd_sha512_new( sha512 ) ) ); + for( ulong i=0UL; iuc, + identities[ i ].priv, + sha512 ); + } + initialized = 1; +} + +static int +pair_queue_push( pair_env_t const * env_const, + pair_packet_t const * pkt ) { + pair_env_t * env = (pair_env_t *)env_const; + if( FD_UNLIKELY( env->queue_cnt>=PAIR_QUEUE_DEPTH ) ) return 0; + + ulong tail = (env->queue_head + env->queue_cnt) % PAIR_QUEUE_DEPTH; + env->queue[ tail ] = *pkt; + env->queue_cnt++; + return 1; +} + +static int +pair_queue_pop( pair_env_t * env, + pair_packet_t * pkt ) { + if( FD_UNLIKELY( !env->queue_cnt ) ) return 0; + *pkt = env->queue[ env->queue_head ]; + env->queue_head = (env->queue_head + 1UL) % PAIR_QUEUE_DEPTH; + env->queue_cnt--; + return 1; +} + +static long +pair_find_node_by_addr( pair_env_t const * env, + fd_ip4_port_t addr ) { + for( ulong i=0UL; inodes[ i ].addr.addr==addr.addr && + env->nodes[ i ].addr.port==addr.port ) ) return (long)i; + } + return -1L; +} + +static void +pair_send_fn( void * _node, + fd_stem_context_t * stem FD_PARAM_UNUSED, + uchar const * data, + ulong sz, + fd_ip4_port_t const * peer_address, + ulong now FD_PARAM_UNUSED ) { + pair_node_t * node = (pair_node_t *)_node; + if( FD_UNLIKELY( sz>FD_NET_MTU ) ) return; + + long dst_idx = pair_find_node_by_addr( node->env, *peer_address ); + if( FD_UNLIKELY( dst_idx<0L ) ) return; + + /* No memset: every header field is assigned below and only the first + payload_sz payload bytes are ever read back (pair_deliver_payload and + pair_mutate_packet both bound their access by payload_sz). */ + pair_packet_t pkt[1]; + pkt->src_idx = node->idx; + pkt->dst_idx = (ulong)dst_idx; + pkt->src = node->addr; + pkt->dst = *peer_address; + pkt->payload_sz = sz; + fd_memcpy( pkt->payload, data, sz ); + pair_queue_push( node->env, pkt ); +} + +static void +pair_sign_fn( void * _node, + uchar const * data, + ulong sz, + int sign_type, + uchar * out_signature ) { + pair_node_t * node = (pair_node_t *)_node; + pair_identity_t * id = &identities[ node->idx ]; + + if( sign_type==FD_KEYGUARD_SIGN_TYPE_ED25519 ) { + fd_ed25519_sign( out_signature, data, sz, id->pub->uc, id->priv, sha512 ); + } else if( sign_type==FD_KEYGUARD_SIGN_TYPE_SHA256_ED25519 ) { + uchar hash[ 32UL ]; + fd_sha256_hash( data, sz, hash ); + fd_ed25519_sign( out_signature, hash, 32UL, id->pub->uc, id->priv, sha512 ); + } else { + FD_LOG_ERR(( "unexpected sign type %d", sign_type )); + } +} + +static void +pair_ping_change_fn( void * _node, + uchar const * peer_pubkey, + fd_ip4_port_t peer_address, + long now FD_PARAM_UNUSED, + int change_type ) { + pair_node_t * node = (pair_node_t *)_node; + fd_gossip_ping_update_t update[1]; + memset( update, 0, sizeof(update) ); + fd_memcpy( update->pubkey.uc, peer_pubkey, 32UL ); + update->gossip_addr.l = peer_address.l; + update->remove = change_type!=FD_PING_TRACKER_CHANGE_TYPE_ACTIVE; + + ping_t * existing = ping_map_ele_query( node->vf->ping_map, + &update->pubkey, + NULL, + node->vf->pings ); + if( FD_UNLIKELY( update->remove ) ) { + if( FD_LIKELY( existing ) ) handle_ping_update( node->vf, update ); + } else { + if( FD_LIKELY( existing ) ) existing->addr.l = update->gossip_addr.l; + else handle_ping_update( node->vf, update ); + } +} + +static void +pair_activity_update_fn( void * _node FD_PARAM_UNUSED, + fd_pubkey_t const * identity FD_PARAM_UNUSED, + fd_gossip_contact_info_t const * ci FD_PARAM_UNUSED, + int change_type FD_PARAM_UNUSED ) { +} + +static void +pair_init_stem( fd_stem_context_t * stem, + fd_frag_meta_t ** mcache, + ulong * seq, + ulong * depth, + ulong * cr_avail, + ulong * min_cr_avail, + int * out_reliable ) { + seq[0] = 0UL; + depth[0] = PAIR_OUT_DEPTH; + cr_avail[0] = ULONG_MAX/4UL; + min_cr_avail[0] = ULONG_MAX/4UL; + out_reliable[0] = 0; + + stem->mcaches = mcache; + stem->seqs = seq; + stem->depths = depth; + stem->cr_avail = cr_avail; + stem->min_cr_avail = min_cr_avail; + stem->cr_decrement_amount = 1UL; + stem->out_reliable = out_reliable; +} + +static ulong +pair_setup_vf( pair_node_t * node, + ulong _mem, + ulong seed ) { + fd_gossvf_tile_ctx_t * ctx = node->vf; + /* ctx embeds stake.msg_buf[ FD_EPOCH_INFO_MAX_MSG_SZ ] (~10 MiB, sized for + MAX_STAKED_LEADERS). Zeroing it every input dominates the per-exec cost + and is unnecessary: pair_apply_stakes() zeroes the used prefix before + writing it, and handle_epoch() only reads staked_id_cnt entries. Zero + everything except that buffer. */ + ulong const msgbuf_off = offsetof( fd_gossvf_tile_ctx_t, stake.msg_buf ); + ulong const msgbuf_end = msgbuf_off + sizeof( ctx->stake.msg_buf ); + memset( (uchar *)ctx, 0, msgbuf_off ); + memset( (uchar *)ctx + msgbuf_end, 0, sizeof(*ctx) - msgbuf_end ); + + ctx->seed = seed; + ctx->shred_version = PAIR_SHRED_VERSION; + ctx->allow_private_address = 0; + ctx->gossip_addr = node->addr; + ctx->src_addr = node->addr; + ctx->round_robin_cnt = 1UL; + ctx->round_robin_idx = 0UL; + ctx->ticks_per_ns = fd_tempo_tick_per_ns( NULL ); + ctx->last_wallclock = node->env->now; + ctx->last_tickcount = fd_tickcount(); + ctx->instance_creation_wallclock_nanos = node->env->now; + *ctx->identity_pubkey = *identities[ node->idx ].pub; + + void * peer_pool_mem = FD_SCRATCH_ALLOC_APPEND( mem, peer_pool_align(), peer_pool_footprint( PAIR_PEER_CAP ) ); + void * peer_map_mem = FD_SCRATCH_ALLOC_APPEND( mem, peer_map_align(), peer_map_footprint( 2UL*PAIR_PEER_CAP ) ); + void * ping_pool_mem = FD_SCRATCH_ALLOC_APPEND( mem, ping_pool_align(), ping_pool_footprint( PAIR_PING_CAP ) ); + void * ping_map_mem = FD_SCRATCH_ALLOC_APPEND( mem, ping_map_align(), ping_map_footprint( 2UL*PAIR_PING_CAP ) ); + void * stake_pool_mem = FD_SCRATCH_ALLOC_APPEND( mem, stake_pool_align(), stake_pool_footprint( PAIR_STAKE_CAP ) ); + void * stake_map_mem = FD_SCRATCH_ALLOC_APPEND( mem, stake_map_align(), stake_map_footprint( stake_map_chain_cnt_est( PAIR_STAKE_CAP ) ) ); + void * tcache_mem = FD_SCRATCH_ALLOC_APPEND( mem, fd_tcache_align(), fd_tcache_footprint( PAIR_TCACHE_DEPTH, 0UL ) ); + + ctx->peers = peer_pool_join( peer_pool_new( peer_pool_mem, PAIR_PEER_CAP ) ); + ctx->peer_map = peer_map_join ( peer_map_new ( peer_map_mem, 2UL*PAIR_PEER_CAP, ctx->seed ) ); + ctx->pings = ping_pool_join( ping_pool_new( ping_pool_mem, PAIR_PING_CAP ) ); + ctx->ping_map = ping_map_join ( ping_map_new ( ping_map_mem, 2UL*PAIR_PING_CAP, ctx->seed ) ); + ctx->stake.pool = stake_pool_join( stake_pool_new( stake_pool_mem, PAIR_STAKE_CAP ) ); + ctx->stake.map = stake_map_join ( stake_map_new ( stake_map_mem, stake_map_chain_cnt_est( PAIR_STAKE_CAP ), ctx->seed ) ); + FD_TEST( ctx->peers && ctx->peer_map && ctx->pings && + ctx->ping_map && ctx->stake.pool && ctx->stake.map ); + + fd_tcache_t * tcache = fd_tcache_join( fd_tcache_new( tcache_mem, PAIR_TCACHE_DEPTH, 0UL ) ); + FD_TEST( tcache ); + ctx->tcache.depth = fd_tcache_depth ( tcache ); + ctx->tcache.map_cnt = fd_tcache_map_cnt ( tcache ); + ctx->tcache.sync = fd_tcache_oldest_laddr( tcache ); + ctx->tcache.ring = fd_tcache_ring_laddr ( tcache ); + ctx->tcache.map = fd_tcache_map_laddr ( tcache ); + + FD_TEST( fd_sha512_join( fd_sha512_new( ctx->sha ) ) ); + + void * out_dcache = FD_SCRATCH_ALLOC_APPEND( mem, FD_CHUNK_ALIGN, PAIR_OUT_DBUF_SZ ); + ctx->out->mem = out_dcache; + ctx->out->chunk0 = fd_laddr_to_chunk( out_dcache, out_dcache ); + ctx->out->wmark = ctx->out->chunk0 + pair_wmark( PAIR_OUT_DBUF_SZ, + PAIR_GOSSVF_OUT_MTU ); + ctx->out->chunk = ctx->out->chunk0; + + void * mcache_mem = FD_SCRATCH_ALLOC_APPEND( mem, fd_mcache_align(), + fd_mcache_footprint( PAIR_OUT_DEPTH, 0UL ) ); + node->vf_mcache = fd_mcache_join( fd_mcache_new( mcache_mem, PAIR_OUT_DEPTH, 0UL, 0UL ) ); + FD_TEST( node->vf_mcache ); + node->vf_stem_mcache[0] = node->vf_mcache; + pair_init_stem( node->vf_stem, + node->vf_stem_mcache, + node->vf_stem_seq, + node->vf_stem_depth, + node->vf_stem_cr_avail, + node->vf_stem_min_cr_avail, + node->vf_stem_out_reliable ); + node->vf_drain_seq = 0UL; + + return _mem; +} + +static ulong +pair_setup_gossip( pair_node_t * node, + ulong _mem, + ulong seed ) { + void * gossip_mem = FD_SCRATCH_ALLOC_APPEND( mem, + fd_gossip_align(), + fd_gossip_footprint( PAIR_MAX_VALUES, 1UL ) ); + FD_TEST( fd_rng_join( fd_rng_new( node->rng, (uint)seed, seed>>32 ) ) ); + + void * gossip_dcache = FD_SCRATCH_ALLOC_APPEND( mem, FD_CHUNK_ALIGN, PAIR_OUT_DBUF_SZ ); + node->gossip_out->mem = gossip_dcache; + node->gossip_out->chunk0 = fd_laddr_to_chunk( gossip_dcache, gossip_dcache ); + node->gossip_out->chunk = node->gossip_out->chunk0; + node->gossip_out->wmark = node->gossip_out->chunk0 + pair_wmark( PAIR_OUT_DBUF_SZ, + FD_NET_MTU ); + node->gossip_out->idx = 0UL; + node->net_out[0] = node->gossip_out[0]; + + void * mcache_mem = FD_SCRATCH_ALLOC_APPEND( mem, fd_mcache_align(), fd_mcache_footprint( PAIR_OUT_DEPTH, 0UL ) ); + node->gossip_mcache = fd_mcache_join( fd_mcache_new( mcache_mem, PAIR_OUT_DEPTH, 0UL, 0UL ) ); + FD_TEST( node->gossip_mcache ); + node->gossip_stem_mcache[0] = node->gossip_mcache; + pair_init_stem( node->gossip_stem, + node->gossip_stem_mcache, + node->gossip_stem_seq, + node->gossip_stem_depth, + node->gossip_stem_cr_avail, + node->gossip_stem_min_cr_avail, + node->gossip_stem_out_reliable ); + node->gossip_drain_seq = 0UL; + + fd_gossip_contact_info_t contact[1]; + memset( contact, 0, sizeof(contact) ); + contact->outset = (ulong)FD_NANOSEC_TO_MICRO( node->env->now - 1000000L ); + contact->shred_version = PAIR_SHRED_VERSION; + contact->version.major = 2U; + contact->version.client = FD_GOSSIP_CONTACT_INFO_CLIENT_FIREDANCER; + contact->sockets[ FD_GOSSIP_CONTACT_INFO_SOCKET_GOSSIP ] = (fd_gossip_socket_t){ + .port = node->addr.port, + .is_ipv6 = 0U, + .ip4 = node->addr.addr + }; + contact->sockets[ FD_GOSSIP_CONTACT_INFO_SOCKET_TVU ] = (fd_gossip_socket_t){ + .port = fd_ushort_bswap( (ushort)( node->port_host + 1000U ) ), + .is_ipv6 = 0U, + .ip4 = node->addr.addr + }; + + fd_ip4_port_t entrypoint = node->env->nodes[ node->idx ^ 1UL ].addr; + void * gossip = fd_gossip_new( gossip_mem, + node->rng, + PAIR_MAX_VALUES, + 1UL, + &entrypoint, + identities[ node->idx ].pub->uc, + contact, + node->env->now, + pair_send_fn, + node, + pair_sign_fn, + node, + pair_ping_change_fn, + node, + pair_activity_update_fn, + node, + node->gossip_out, + node->net_out ); + node->gossip = fd_gossip_join( gossip ); + FD_TEST( node->gossip ); + fd_gossip_set_shred_version( node->gossip, PAIR_SHRED_VERSION, node->env->now ); + + return _mem; +} + +static void +pair_apply_stakes( pair_env_t * env, + ulong stake0, + ulong stake1 ) { + fd_stake_weight_t weights[ PAIR_NODE_CNT ]; + weights[0].key = *identities[0].pub; + weights[0].stake = stake0; + weights[1].key = *identities[1].pub; + weights[1].stake = stake1; + + for( ulong i=0UL; inodes[ i ].gossip, weights, PAIR_NODE_CNT ); + + fd_gossvf_tile_ctx_t * vf = env->nodes[ i ].vf; + memset( vf->stake.msg_buf, + 0, + sizeof(fd_epoch_info_msg_t) + PAIR_NODE_CNT*sizeof(fd_stake_weight_t) ); + fd_epoch_info_msg_t * msg = (fd_epoch_info_msg_t *)vf->stake.msg_buf; + msg->staked_id_cnt = PAIR_NODE_CNT; + fd_memcpy( fd_epoch_info_msg_id_weights( msg ), weights, sizeof(weights) ); + handle_epoch( vf, msg ); + } +} + +static void pair_drain_gossip_updates( pair_node_t * node ); +static void pair_advance_node( pair_node_t * node, long now ); + +static void +pair_drain_vf_output( pair_node_t * node, + long now ) { + while( node->vf_drain_seq < node->vf_stem_seq[0] ) { + ulong seq = node->vf_drain_seq++; + fd_frag_meta_t const * meta = node->vf_mcache + fd_mcache_line_idx( seq, PAIR_OUT_DEPTH ); + if( FD_UNLIKELY( meta->seq!=seq ) ) continue; + + uchar const * payload = fd_chunk_to_laddr_const( node->vf->out->mem, meta->chunk ); + fd_ip4_port_t peer = { + .addr = fd_gossvf_sig_addr( meta->sig ), + .port = fd_gossvf_sig_port( meta->sig ) + }; + + switch( fd_gossvf_sig_kind( meta->sig ) ) { + case 0U: + fd_gossip_rx( node->gossip, peer, payload, meta->sz, now, node->gossip_stem ); + fd_gossip_advance( node->gossip, now, node->gossip_stem, NULL ); + pair_drain_gossip_updates( node ); + break; + case 1U: { + if( FD_UNLIKELY( meta->sz!=sizeof(fd_gossip_pingreq_t) ) ) break; + fd_gossip_pingreq_t const * pingreq = (fd_gossip_pingreq_t const *)payload; + fd_gossip_ping_tracker_track( node->gossip, pingreq->pubkey.uc, peer, now ); + pair_drain_gossip_updates( node ); + break; + } + default: + break; + } + } +} + +static void +pair_drain_gossip_updates( pair_node_t * node ) { + while( node->gossip_drain_seq < node->gossip_stem_seq[0] ) { + ulong seq = node->gossip_drain_seq++; + fd_frag_meta_t const * meta = node->gossip_mcache + fd_mcache_line_idx( seq, PAIR_OUT_DEPTH ); + if( FD_UNLIKELY( meta->seq!=seq ) ) continue; + if( FD_UNLIKELY( meta->sig!=FD_GOSSIP_UPDATE_TAG_CONTACT_INFO && + meta->sig!=FD_GOSSIP_UPDATE_TAG_CONTACT_INFO_REMOVE ) ) continue; + + fd_gossip_update_message_t * update = + (fd_gossip_update_message_t *)fd_chunk_to_laddr( node->gossip_out->mem, meta->chunk ); + + peer_t * existing = peer_map_ele_query( node->vf->peer_map, + fd_type_pun_const( update->origin ), + NULL, + node->vf->peers ); + if( FD_UNLIKELY( meta->sig==FD_GOSSIP_UPDATE_TAG_CONTACT_INFO_REMOVE ) ) { + if( FD_LIKELY( existing ) ) handle_peer_update( node->vf, update ); + } else { + handle_peer_update( node->vf, update ); + } + } +} + +static void +pair_advance_node( pair_node_t * node, + long now ) { + node->vf->last_wallclock = now; + node->vf->last_tickcount = fd_tickcount(); + fd_gossip_advance( node->gossip, now, node->gossip_stem, NULL ); + pair_drain_gossip_updates( node ); +} + +static void +pair_deliver_payload( pair_node_t * dst, + fd_ip4_port_t src, + fd_ip4_port_t daddr, + uchar const * payload, + ulong payload_sz, + long now ) { + if( FD_UNLIKELY( payload_sz + sizeof(fd_ip4_udp_hdrs_t) > FD_NET_MTU ) ) return; + + fd_ip4_udp_hdrs_t hdrs[1]; + fd_ip4_udp_hdr_init( hdrs, payload_sz, src.addr, fd_ushort_bswap( src.port ) ); + hdrs->ip4->daddr = daddr.addr; + hdrs->udp->net_dport = daddr.port; + hdrs->ip4->check = fd_ip4_hdr_check_fast( hdrs->ip4 ); + + ulong packet_sz = sizeof(fd_ip4_udp_hdrs_t) + payload_sz; + fd_memcpy( dst->vf->payload, hdrs, sizeof(fd_ip4_udp_hdrs_t) ); + fd_memcpy( dst->vf->payload + sizeof(fd_ip4_udp_hdrs_t), payload, payload_sz ); + + dst->vf->last_wallclock = now; + dst->vf->last_tickcount = fd_tickcount(); + int result = handle_net( dst->vf, packet_sz, (ulong)now, dst->vf_stem ); + dst->vf->metrics.message_rx[ result ]++; + dst->vf->metrics.message_rx_bytes[ result ] += packet_sz; + pair_drain_vf_output( dst, now ); +} + +static void +pair_mutate_packet( pair_packet_t * pkt, + pair_cursor_t * cur, + uchar op ) { + switch( op ) { + case 8U: + case 15U: { + if( FD_UNLIKELY( !pkt->payload_sz ) ) break; + ulong flip_cnt = 1UL + pair_bounded( cur, op==15U ? 8UL : 2UL ); + for( ulong i=0UL; ipayload_sz ); + pkt->payload[ off ] ^= (uchar)( pair_u8( cur ) | 1U ); + } + break; + } + case 9U: { + if( FD_LIKELY( pkt->payload_sz ) ) pkt->payload_sz = pair_bounded( cur, pkt->payload_sz ); + break; + } + case 10U: + pkt->src.addr = FD_IP4_ADDR( 1, 1, 1, (uint)( 32UL + pair_bounded( cur, 64UL ) ) ); + pkt->src.port = fd_ushort_bswap( (ushort)( 7000UL + pair_bounded( cur, 1000UL ) ) ); + break; + case 14U: { + ulong room = FD_NET_MTU - sizeof(fd_ip4_udp_hdrs_t) - pkt->payload_sz; + ulong add = pair_bounded( cur, fd_ulong_min( room, 16UL ) + 1UL ); + for( ulong i=0UL; ipayload[ pkt->payload_sz++ ] = pair_u8( cur ); + break; + } + default: + break; + } +} + +static void +pair_pump_network( pair_env_t * env, + pair_cursor_t * cur, + ulong max_steps ) { + for( ulong step=0UL; stepsrc_idx==env->mutator_idx ) ) op = (uchar)( pair_u8( cur ) & 15U ); + + if( FD_UNLIKELY( op==12U ) ) continue; + if( FD_UNLIKELY( op==13U ) ) { + pair_queue_push( env, pkt ); + continue; + } + + int duplicate = op==11U; + pair_mutate_packet( pkt, cur, op ); + + pair_deliver_payload( &env->nodes[ pkt->dst_idx ], pkt->src, pkt->dst, pkt->payload, pkt->payload_sz, env->now ); + if( FD_UNLIKELY( duplicate ) ) { + pair_deliver_payload( &env->nodes[ pkt->dst_idx ], pkt->src, pkt->dst, pkt->payload, pkt->payload_sz, env->now ); + } + } +} + +static void +pair_set_shred_version( pair_node_t * node, + ushort shred_version, + long now ) { + node->vf->shred_version = shred_version; + fd_gossip_set_shred_version( node->gossip, shred_version, now ); + pair_advance_node( node, now ); +} + +static long +pair_serialize_signed_value( fd_gossip_value_t * value, + ulong src_idx, + uchar * out, + ulong out_sz, + int corrupt_sig ) { + memset( value->signature, 0, sizeof(value->signature) ); + long value_sz = fd_gossip_value_serialize( value, out, out_sz ); + if( FD_UNLIKELY( value_sz<=64L ) ) return -1L; + + pair_identity_t * id = &identities[ src_idx ]; + fd_ed25519_sign( value->signature, + out+64UL, + (ulong)value_sz-64UL, + id->pub->uc, + id->priv, + sha512 ); + if( FD_UNLIKELY( corrupt_sig ) ) value->signature[ 0 ] ^= 0x20U; + + return fd_gossip_value_serialize( value, out, out_sz ); +} + +static ulong +pair_build_crds_msg( pair_env_t * env, + uint tag, + ulong src_idx, + uchar const * value_bytes, + ulong value_sz ) { + if( FD_UNLIKELY( 4UL+32UL+8UL+value_sz>sizeof(env->wire_buf) ) ) return 0UL; + + uchar * p = env->wire_buf; + FD_STORE( uint, p, tag ); p += 4UL; + fd_memcpy( p, identities[ src_idx ].pub->uc, 32UL ); p += 32UL; + FD_STORE( ulong, p, 1UL ); p += 8UL; + fd_memcpy( p, value_bytes, value_sz ); p += value_sz; + + return (ulong)( p - env->wire_buf ); +} + +static void +pair_make_snapshot_hashes_value( pair_node_t * node, + pair_cursor_t * cur, + fd_gossip_value_t * value, + long now ) { + memset( value, 0, sizeof(*value) ); + value->tag = FD_GOSSIP_VALUE_SNAPSHOT_HASHES; + value->wallclock = (ulong)FD_NANOSEC_TO_MILLI( now ); + fd_memcpy( value->origin, identities[ node->idx ].pub->uc, 32UL ); + + value->snapshot_hashes->full_slot = pair_bounded( cur, PAIR_MAX_SLOT-64UL ); + for( ulong i=0UL; isnapshot_hashes->full_hash); i++ ) + value->snapshot_hashes->full_hash[ i ] = pair_u8( cur ); + + value->snapshot_hashes->incremental_len = pair_bounded( cur, 4UL ); + ulong slot = value->snapshot_hashes->full_slot; + for( ulong i=0UL; isnapshot_hashes->incremental_len; i++ ) { + slot += 1UL + pair_bounded( cur, 4UL ); + value->snapshot_hashes->incremental[ i ].slot = slot; + for( ulong j=0UL; jsnapshot_hashes->incremental[ i ].hash); j++ ) + value->snapshot_hashes->incremental[ i ].hash[ j ] = pair_u8( cur ); + } +} + +static void +pair_send_crds_value( pair_env_t * env, + ulong src_idx, + ulong dst_idx, + fd_gossip_value_t * value, + uint message_tag, + int corrupt_sig, + long now ) { + long value_sz = pair_serialize_signed_value( value, + src_idx, + env->value_buf, + sizeof(env->value_buf), + corrupt_sig ); + if( FD_UNLIKELY( value_sz<=0L ) ) return; + + ulong payload_sz = pair_build_crds_msg( env, + message_tag, + src_idx, + env->value_buf, + (ulong)value_sz ); + if( FD_UNLIKELY( !payload_sz ) ) return; + + pair_deliver_payload( &env->nodes[ dst_idx ], + env->nodes[ src_idx ].addr, + env->nodes[ dst_idx ].addr, + env->wire_buf, + payload_sz, + now ); +} + +static void +pair_send_snapshot_hashes( pair_node_t * node, + pair_cursor_t * cur, + long now ) { + pair_env_t * env = node->env; + ulong src_idx = node->idx; + ulong dst_idx = src_idx ^ 1UL; + + fd_gossip_value_t value[1]; + pair_make_snapshot_hashes_value( node, cur, value, now ); + + uint message_tag = (pair_u8( cur ) & 1U) ? + FD_GOSSIP_MESSAGE_PULL_RESPONSE : + FD_GOSSIP_MESSAGE_PUSH; + int corrupt_sig = !!( pair_u8( cur ) & 1U ); + + pair_send_crds_value( env, src_idx, dst_idx, value, message_tag, corrupt_sig, now ); +} + +static void +pair_track_peer_for_ping( pair_node_t * node, + int force_unstaked, + long now ) { + pair_env_t * env = node->env; + ulong peer_idx = node->idx ^ 1UL; + + if( FD_UNLIKELY( force_unstaked ) ) { + ulong stake0 = peer_idx==0UL ? 1UL : FD_GOSSIP_STAKED_THRESHOLD; + ulong stake1 = peer_idx==1UL ? 1UL : FD_GOSSIP_STAKED_THRESHOLD; + pair_apply_stakes( env, stake0, stake1 ); + } + + fd_gossip_ping_tracker_track( node->gossip, identities[ peer_idx ].pub->uc, env->nodes[ peer_idx ].addr, now ); + pair_advance_node( node, now ); +} + +static void +pair_send_ping( pair_node_t * node, + pair_cursor_t * cur, + long now ) { + pair_env_t * env = node->env; + ulong src_idx = node->idx; + ulong dst_idx = src_idx ^ 1UL; + + if( FD_UNLIKELY( sizeof(uint)+sizeof(fd_gossip_ping_t)>sizeof(env->wire_buf) ) ) return; + + uchar * p = env->wire_buf; + FD_STORE( uint, p, FD_GOSSIP_MESSAGE_PING ); p += sizeof(uint); + + fd_gossip_ping_t * ping = (fd_gossip_ping_t *)p; + fd_memcpy( ping->from, identities[ src_idx ].pub->uc, 32UL ); + for( ulong i=0UL; itoken); i++ ) ping->token[ i ] = pair_u8( cur ); + + pair_identity_t * id = &identities[ src_idx ]; + fd_ed25519_sign( ping->signature, ping->token, sizeof(ping->token), id->pub->uc, id->priv, sha512 ); + if( FD_UNLIKELY( pair_u8( cur ) & 1U ) ) ping->signature[ 0 ] ^= 0x40U; + + pair_deliver_payload( &env->nodes[ dst_idx ], + env->nodes[ src_idx ].addr, + env->nodes[ dst_idx ].addr, + env->wire_buf, + sizeof(uint)+sizeof(fd_gossip_ping_t), + now ); +} + +static void +pair_push_duplicate_shred( pair_node_t * node, + pair_cursor_t * cur, + long now ) { + fd_gossip_duplicate_shred_t shred[1]; + memset( shred, 0, sizeof(shred) ); + shred->index = (ushort)pair_bounded( cur, 65536UL ); + shred->slot = pair_u64( cur ); + shred->num_chunks = 3U; + shred->chunk_index = (uchar)pair_bounded( cur, 3UL ); + shred->chunk_len = pair_bounded( cur, sizeof(shred->chunk)+1UL ); + for( ulong i=0UL; ichunk_len; i++ ) shred->chunk[ i ] = pair_u8( cur ); + fd_gossip_push_duplicate_shred( node->gossip, shred, node->gossip_stem, now ); + if( FD_UNLIKELY( pair_u8( cur ) & 1U ) ) { + fd_gossip_push_duplicate_shred( node->gossip, shred, node->gossip_stem, now ); + } + pair_drain_gossip_updates( node ); +} + +static void +pair_push_vote( pair_node_t * node, + pair_cursor_t * cur, + long now ) { + uchar txn[ 256UL ]; + ulong txn_sz; + if( FD_LIKELY( pair_u8( cur ) & 7U ) ) { + txn_sz = pair_build_vote_txn( txn, sizeof(txn), node->idx, cur ); + } else { + txn_sz = 1UL + pair_bounded( cur, sizeof(txn) ); + for( ulong i=0UL; igossip, txn, txn_sz, node->gossip_stem, now ); + pair_drain_gossip_updates( node ); +} + +static void +pair_round_trip( pair_env_t * env, + pair_cursor_t * cur, + ulong rounds ) { + for( ulong i=0UL; inodes[0], env->now ); + pair_advance_node( &env->nodes[1], env->now ); + pair_pump_network( env, cur, 16UL ); + env->now += 200000000L + (long)( 1000000UL*pair_bounded( cur, 100UL ) ); + } +} + +static void +pair_setup_env( pair_env_t * env, + ulong seed ) { + /* Avoid memset-ing the whole env: it embeds two fd_gossvf_tile_ctx_t, each + carrying a ~10 MiB stake.msg_buf. Every node field is re-initialized + below by pair_setup_gossip()/pair_setup_vf(), and value_buf/wire_buf are + always written before they are read. Only the queue bookkeeping needs + to be reset here. pair_mem is still zeroed, but is now tiny (the tables + are sized for PAIR_NODE_CNT, see PAIR_*_CAP). */ + env->queue_head = 0UL; + env->queue_cnt = 0UL; + memset( pair_mem, 0, pair_mem_sz ); + env->now = 1000000000000L; + + for( ulong i=0UL; inodes[ i ]; + node->env = env; + node->idx = i; + node->port_host = (ushort)( 9000UL + i ); + node->addr.addr = FD_IP4_ADDR( 8, 8, 4, (uint)( 4UL + i ) ); + node->addr.port = fd_ushort_bswap( node->port_host ); + } + + FD_SCRATCH_ALLOC_INIT( mem, pair_mem ); + for( ulong i=0UL; inodes[ i ], _mem, seed ^ (0x9e3779b9U + (uint)i) ); + _mem = pair_setup_vf ( &env->nodes[ i ], _mem, seed ^ (0xd1b54a32d192ed03UL + i) ); + } + FD_TEST( FD_SCRATCH_ALLOC_FINI( mem, pair_mem_align() ) <= (ulong)pair_mem + pair_mem_sz ); + + pair_apply_stakes( env, FD_GOSSIP_STAKED_THRESHOLD, FD_GOSSIP_STAKED_THRESHOLD ); + + for( ulong i=0UL; inodes[ i ], env->now ); +} + +static void +pair_cleanup( void ) { + free( pair_mem ); + free( pair_env ); +} + +int +LLVMFuzzerInitialize( int * argc, + char *** argv ) { + putenv( "FD_LOG_BACKTRACE=0" ); + setenv( "FD_LOG_PATH", "", 0 ); + fd_boot( argc, argv ); + atexit( fd_halt ); + fd_log_level_core_set( 3 ); + init_identities(); + + pair_env = aligned_alloc( alignof(pair_env_t), FD_ULONG_ALIGN_UP( sizeof(pair_env_t), alignof(pair_env_t) ) ); + FD_TEST( pair_env ); + + pair_mem_sz = pair_mem_footprint(); + ulong mem_align = pair_mem_align(); + pair_mem = aligned_alloc( mem_align, FD_ULONG_ALIGN_UP( pair_mem_sz, mem_align ) ); + FD_TEST( pair_mem ); + atexit( pair_cleanup ); + + return 0; +} + +int +LLVMFuzzerTestOneInput( uchar const * data, + ulong size ) { + if( FD_UNLIKELY( size<2UL ) ) return 0; + + pair_cursor_t cur = { .cur = data, .rem = size }; + pair_env_t * env = pair_env; + ulong seed = pair_u64( &cur ); + pair_setup_env( env, seed ); + env->mutator_idx = pair_u8( &cur ) & 1U; + + pair_pump_network( env, &cur, 64UL ); + + ulong action_cnt = 1UL + (ulong)( pair_u8( &cur ) % PAIR_MAX_ACTIONS ); + for( ulong action_idx=0UL; action_idxnow += (long)( 1000000UL * ( 1UL + pair_bounded( &cur, 250UL ) ) ); + uchar action = (uchar)( pair_u8( &cur ) % 13U ); + ulong node_idx = pair_u8( &cur ) & 1U; + pair_node_t * node = &env->nodes[ node_idx ]; + + switch( action ) { + case 0U: + pair_advance_node( &env->nodes[0], env->now ); + break; + case 1U: + pair_advance_node( &env->nodes[1], env->now ); + break; + case 2U: + pair_advance_node( &env->nodes[0], env->now ); + pair_advance_node( &env->nodes[1], env->now ); + break; + case 3U: { + ulong stake0 = (pair_u8( &cur ) & 1U) ? FD_GOSSIP_STAKED_THRESHOLD : 1UL; + ulong stake1 = (pair_u8( &cur ) & 1U) ? FD_GOSSIP_STAKED_THRESHOLD : 1UL; + pair_apply_stakes( env, stake0, stake1 ); + break; + } + case 4U: { + ushort shred_version = (ushort)( (pair_u8( &cur ) & 3U) ? + PAIR_SHRED_VERSION : + PAIR_SHRED_VERSION+1U ); + pair_set_shred_version( node, shred_version, env->now ); + break; + } + case 5U: + pair_push_duplicate_shred( node, &cur, env->now ); + break; + case 6U: + pair_push_vote( node, &cur, env->now ); + break; + case 7U: + env->now += 1700000000L; + pair_round_trip( env, &cur, 1UL + pair_bounded( &cur, 4UL ) ); + break; + case 8U: + pair_push_duplicate_shred( &env->nodes[0], &cur, env->now ); + pair_push_duplicate_shred( &env->nodes[1], &cur, env->now ); + pair_push_vote( &env->nodes[ node_idx ], &cur, env->now ); + pair_round_trip( env, &cur, 1UL + pair_bounded( &cur, 2UL ) ); + break; + case 9U: + pair_track_peer_for_ping( node, !!( pair_u8( &cur ) & 1U ), env->now ); + break; + case 10U: + pair_send_snapshot_hashes( node, &cur, env->now ); + break; + case 11U: + pair_send_ping( node, &cur, env->now ); + break; + default: + pair_pump_network( env, &cur, 1UL + pair_bounded( &cur, 16UL ) ); + break; + } + + pair_drain_gossip_updates( &env->nodes[0] ); + pair_drain_gossip_updates( &env->nodes[1] ); + pair_pump_network( env, &cur, 8UL ); + } + + pair_pump_network( env, &cur, 64UL ); + + FD_FUZZ_MUST_BE_COVERED; + return 0; +} diff --git a/src/discof/gossip/fuzz_gossvf_tile.c b/src/discof/gossip/fuzz_gossvf_tile.c new file mode 100644 index 00000000000..af043351768 --- /dev/null +++ b/src/discof/gossip/fuzz_gossvf_tile.c @@ -0,0 +1,905 @@ +#if !FD_HAS_HOSTED +#error "This target requires FD_HAS_HOSTED" +#endif + +#include +#include + +#include "../../util/fd_util.h" +#include "../../util/sanitize/fd_fuzz.h" +#include "../../ballet/ed25519/fd_ed25519.h" +#include "../../flamenco/gossip/fd_gossip_message.h" +#include "../../flamenco/runtime/fd_system_ids.h" +#include "../../flamenco/runtime/program/vote/fd_vote_codec.h" + +/* Pull the tile implementation into this fuzz target so we can drive the + real static validation helpers without exporting a production test API. */ +#define fd_tile_gossvf fd_tile_gossvf_fuzz_unused +#include "fd_gossvf_tile.c" +#undef fd_tile_gossvf + +#define FUZZ_PEER_CNT (8UL) +#define FUZZ_OUT_DEPTH (128UL) +#define FUZZ_OUT_DBUF_SZ (1UL<<20UL) +#define FUZZ_TCACHE_DEPTH (1UL<<14UL) +#define FUZZ_SHRED_VERSION (42U) +#define FUZZ_MAX_ACTIONS (96UL) +#define FUZZ_GOSSVF_OUT_MTU \ + (sizeof(fd_gossip_message_t) + FD_GOSSIP_MESSAGE_MAX_CRDS + FD_NET_MTU) + +typedef struct { + uchar priv[ 32UL ]; /* Private key for this peer. */ + fd_pubkey_t pub[ 1 ]; +} fuzz_peer_t; + +typedef struct { + uchar const * cur; /* Current position in the raw fuzz input passed to LLVMFuzzerTestOneInput */ + ulong rem; /* Remaining bytes in the raw fuzz input. */ +} fuzz_cursor_t; + +typedef struct { + fd_gossvf_tile_ctx_t ctx[ 1 ]; + + fd_frag_meta_t * out_mcache; + fd_stem_context_t stem[ 1 ]; + fd_frag_meta_t * stem_mcache[ 1 ]; + ulong stem_seq[ 1 ]; + ulong stem_depth[ 1 ]; + ulong stem_cr_avail[ 1 ]; + ulong stem_min_cr_avail[ 1 ]; + int stem_out_reliable[ 1 ]; + + uchar udp_payload[ FD_NET_MTU ]; + uchar value_buf[ 3UL ][ FD_NET_MTU ]; +} fuzz_env_t; + +static fuzz_peer_t peers[ FUZZ_PEER_CNT ]; +static fd_sha512_t sha[ 1 ]; +static fuzz_env_t fuzz_env[ 1 ]; +static uchar * fuzz_mem; +static ulong fuzz_mem_fp; + +static ulong +fuzz_mem_align( void ) { + ulong a = 128UL; + a = fd_ulong_max( a, peer_pool_align () ); + a = fd_ulong_max( a, peer_map_align () ); + a = fd_ulong_max( a, ping_pool_align () ); + a = fd_ulong_max( a, ping_map_align () ); + a = fd_ulong_max( a, stake_pool_align() ); + a = fd_ulong_max( a, stake_map_align () ); + a = fd_ulong_max( a, fd_tcache_align () ); + a = fd_ulong_max( a, FD_CHUNK_ALIGN ); + a = fd_ulong_max( a, fd_mcache_align() ); + return a; +} + +static ulong +fuzz_mem_footprint( void ) { + ulong l = FD_LAYOUT_INIT; + l = FD_LAYOUT_APPEND( l, peer_pool_align(), peer_pool_footprint( FD_CONTACT_INFO_TABLE_SIZE ) ); + l = FD_LAYOUT_APPEND( l, peer_map_align(), peer_map_footprint( 2UL*FD_CONTACT_INFO_TABLE_SIZE ) ); + l = FD_LAYOUT_APPEND( l, ping_pool_align(), ping_pool_footprint( FD_PING_TRACKER_MAX ) ); + l = FD_LAYOUT_APPEND( l, ping_map_align(), ping_map_footprint( 2UL*FD_PING_TRACKER_MAX ) ); + l = FD_LAYOUT_APPEND( l, stake_pool_align(), stake_pool_footprint( MAX_SHRED_DESTS ) ); + l = FD_LAYOUT_APPEND( l, stake_map_align(), stake_map_footprint( stake_map_chain_cnt_est( MAX_SHRED_DESTS ) ) ); + l = FD_LAYOUT_APPEND( l, fd_tcache_align(), fd_tcache_footprint( FUZZ_TCACHE_DEPTH, 0UL ) ); + l = FD_LAYOUT_APPEND( l, FD_CHUNK_ALIGN, FUZZ_OUT_DBUF_SZ ); + l = FD_LAYOUT_APPEND( l, fd_mcache_align(), fd_mcache_footprint( FUZZ_OUT_DEPTH, 0UL ) ); + return FD_LAYOUT_FINI( l, fuzz_mem_align() ); +} + +static ulong +fuzz_wmark( ulong dbuf_sz, + ulong mtu ) { + ulong chunk_cnt = dbuf_sz >> FD_CHUNK_LG_SZ; + ulong chunk_mtu = ((mtu + 2UL*FD_CHUNK_SZ - 1UL) >> + (1UL+FD_CHUNK_LG_SZ)) << 1UL; + FD_TEST( chunk_cnt>chunk_mtu ); + return chunk_cnt - chunk_mtu; +} + +static void +fuzz_cleanup( void ) { + free( fuzz_mem ); +} + +static uchar +fuzz_u8( fuzz_cursor_t * cur ) { + if( FD_UNLIKELY( !cur->rem ) ) return 0U; + uchar v = cur->cur[ 0 ]; + cur->cur++; + cur->rem--; + return v; +} + +/* bound is exclusive */ +static ulong +fuzz_bounded( fuzz_cursor_t * cur, + ulong bound ) { + if( FD_UNLIKELY( bound<=1UL ) ) return 0UL; + + ulong x = 0UL; + for( ulong shift=0UL, max=bound-1UL; max; shift+=8UL, max>>=8UL ) + x |= (ulong)fuzz_u8( cur ) << shift; + return x % bound; +} + +static int +fuzz_txn_write_u8( uchar ** p, + ulong * rem, + uchar x ) { + if( FD_UNLIKELY( !*rem ) ) return 0; + FD_STORE( uchar, *p, x ); + (*p)++; + (*rem)--; + return 1; +} + +static int +fuzz_txn_write_u16_varint( uchar ** p, + ulong * rem, + ushort x ) { + if( FD_LIKELY( x<128U ) ) return fuzz_txn_write_u8( p, rem, (uchar)x ); + if( FD_LIKELY( x<16384U ) ) { + if( FD_UNLIKELY( *rem<2UL ) ) return 0; + FD_STORE( uchar, *p, (uchar)((x & 0x7FU) | 0x80U) ); + FD_STORE( uchar, (*p)+1, (uchar)(x >> 7U) ); + (*p) += 2UL; + (*rem) -= 2UL; + return 1; + } + if( FD_UNLIKELY( *rem<3UL ) ) return 0; + FD_STORE( uchar, *p, (uchar)((x & 0x7FU) | 0x80U) ); + FD_STORE( uchar, (*p)+1, (uchar)(((x >> 7U) & 0x7FU) | 0x80U) ); + FD_STORE( uchar, (*p)+2, (uchar)(x >> 14U) ); + (*p) += 3UL; + (*rem) -= 3UL; + return 1; +} + +static int +fuzz_txn_write_u32( uchar ** p, + ulong * rem, + uint x ) { + if( FD_UNLIKELY( *rem<4UL ) ) return 0; + FD_STORE( uint, *p, x ); + (*p) += 4UL; + (*rem) -= 4UL; + return 1; +} + +static int +fuzz_txn_write_u64( uchar ** p, + ulong * rem, + ulong x ) { + if( FD_UNLIKELY( *rem<8UL ) ) return 0; + FD_STORE( ulong, *p, x ); + (*p) += 8UL; + (*rem) -= 8UL; + return 1; +} + +static int +fuzz_txn_write_bytes( uchar ** p, + ulong * rem, + uchar const * src, + ulong sz ) { + if( FD_UNLIKELY( *remuc, 32UL ) ) ) return 0UL; + if( FD_UNLIKELY( !fuzz_txn_write_bytes( &p, &rem, peers[ 0 ].pub->uc, 32UL ) ) ) return 0UL; + if( FD_UNLIKELY( !fuzz_txn_write_bytes( &p, &rem, fd_solana_vote_program_id.uc, 32UL ) ) ) return 0UL; + for( ulong i=0UL; i<32UL; i++ ) + if( FD_UNLIKELY( !fuzz_txn_write_u8( &p, &rem, fuzz_u8( cur ) ) ) ) return 0UL; + + if( FD_UNLIKELY( !fuzz_txn_write_u16_varint( &p, &rem, 1U ) ) ) return 0UL; + if( FD_UNLIKELY( !fuzz_txn_write_u8( &p, &rem, 2U ) ) ) return 0UL; + if( FD_UNLIKELY( !fuzz_txn_write_u16_varint( &p, &rem, 2U ) ) ) return 0UL; + if( FD_UNLIKELY( !fuzz_txn_write_u8( &p, &rem, 0U ) ) ) return 0UL; + if( FD_UNLIKELY( !fuzz_txn_write_u8( &p, &rem, 1U ) ) ) return 0UL; + if( FD_UNLIKELY( !fuzz_txn_write_u16_varint( &p, &rem, (ushort)instr_sz ) ) ) return 0UL; + if( FD_UNLIKELY( !fuzz_txn_write_bytes( &p, &rem, instr, instr_sz ) ) ) return 0UL; + + return (ulong)( p - out ); +} + +static ushort +fuzz_port( ulong peer_idx ) { + return (ushort)( 8000UL + peer_idx ); +} + +static uint +fuzz_addr_for_class( uchar cls, + ulong peer_idx ) { + switch( cls % 6U ) { + case 0U: return FD_IP4_ADDR( 8, 8, 8, (uint)( 8UL + peer_idx ) ); + case 1U: return FD_IP4_ADDR( 1, 1, 1, (uint)( 1UL + peer_idx ) ); + case 2U: return FD_IP4_ADDR( 10, 0, 0, (uint)( 1UL + peer_idx ) ); + case 3U: return FD_IP4_ADDR( 127, 0, 0, (uint)( 1UL + peer_idx ) ); + case 4U: return FD_IP4_ADDR( 224, 0, 0, (uint)( 1UL + peer_idx ) ); + default: return 0U; + } +} + +static void +init_peers( void ) { + FD_TEST( fd_sha512_join( fd_sha512_new( sha ) ) ); + for( ulong i=0UL; iuc, peers[ i ].priv, sha ); + } +} + +static void +setup_env( fuzz_env_t * env ) { + memset( env, 0, sizeof(*env) ); + memset( fuzz_mem, 0, fuzz_mem_fp ); + FD_SCRATCH_ALLOC_INIT( l, fuzz_mem ); + + fd_gossvf_tile_ctx_t * ctx = env->ctx; + ctx->seed = 0x114320a17f4a7c15UL; + ctx->shred_version = FUZZ_SHRED_VERSION; + ctx->allow_private_address = 0; + ctx->gossip_addr.addr = FD_IP4_ADDR( 8, 8, 4, 4 ); + ctx->gossip_addr.port = fd_ushort_bswap( 9000U ); + ctx->src_addr = ctx->gossip_addr; + ctx->round_robin_cnt = 1UL; + ctx->round_robin_idx = 0UL; + ctx->ticks_per_ns = fd_tempo_tick_per_ns( NULL ); + ctx->last_wallclock = fd_log_wallclock(); + ctx->last_tickcount = fd_tickcount(); + ctx->instance_creation_wallclock_nanos = ctx->last_wallclock; + *ctx->identity_pubkey = *peers[ 0 ].pub; + + void * peer_pool_mem = FD_SCRATCH_ALLOC_APPEND( l, peer_pool_align(), peer_pool_footprint( FD_CONTACT_INFO_TABLE_SIZE ) ); + void * peer_map_mem = FD_SCRATCH_ALLOC_APPEND( l, peer_map_align(), peer_map_footprint( 2UL*FD_CONTACT_INFO_TABLE_SIZE ) ); + void * ping_pool_mem = FD_SCRATCH_ALLOC_APPEND( l, ping_pool_align(), ping_pool_footprint( FD_PING_TRACKER_MAX ) ); + void * ping_map_mem = FD_SCRATCH_ALLOC_APPEND( l, ping_map_align(), ping_map_footprint( 2UL*FD_PING_TRACKER_MAX ) ); + void * stake_pool_mem = FD_SCRATCH_ALLOC_APPEND( l, stake_pool_align(), stake_pool_footprint( MAX_SHRED_DESTS ) ); + void * stake_map_mem = FD_SCRATCH_ALLOC_APPEND( l, stake_map_align(), stake_map_footprint( stake_map_chain_cnt_est( MAX_SHRED_DESTS ) ) ); + void * tcache_mem = FD_SCRATCH_ALLOC_APPEND( l, fd_tcache_align(), fd_tcache_footprint( FUZZ_TCACHE_DEPTH, 0UL ) ); + void * out_dcache = FD_SCRATCH_ALLOC_APPEND( l, FD_CHUNK_ALIGN, FUZZ_OUT_DBUF_SZ ); + void * mcache_mem = FD_SCRATCH_ALLOC_APPEND( l, fd_mcache_align(), fd_mcache_footprint( FUZZ_OUT_DEPTH, 0UL ) ); + + ctx->peers = peer_pool_join( peer_pool_new( peer_pool_mem, FD_CONTACT_INFO_TABLE_SIZE ) ); + ctx->peer_map = peer_map_join ( peer_map_new ( peer_map_mem, 2UL*FD_CONTACT_INFO_TABLE_SIZE, ctx->seed ) ); + ctx->pings = ping_pool_join( ping_pool_new( ping_pool_mem, FD_PING_TRACKER_MAX ) ); + ctx->ping_map = ping_map_join ( ping_map_new ( ping_map_mem, 2UL*FD_PING_TRACKER_MAX, ctx->seed ) ); + ctx->stake.pool = stake_pool_join( stake_pool_new( stake_pool_mem, MAX_SHRED_DESTS ) ); + ctx->stake.map = stake_map_join ( stake_map_new ( stake_map_mem, stake_map_chain_cnt_est( MAX_SHRED_DESTS ), ctx->seed ) ); + FD_TEST( !!(ctx->peers) & !!(ctx->peer_map) & !!(ctx->pings) & !!(ctx->ping_map) & !!(ctx->stake.pool) & !!(ctx->stake.map) ); + + fd_tcache_t * tcache = fd_tcache_join( fd_tcache_new( tcache_mem, FUZZ_TCACHE_DEPTH, 0UL ) ); + FD_TEST( tcache ); + ctx->tcache.depth = fd_tcache_depth ( tcache ); + ctx->tcache.map_cnt = fd_tcache_map_cnt ( tcache ); + ctx->tcache.sync = fd_tcache_oldest_laddr( tcache ); + ctx->tcache.ring = fd_tcache_ring_laddr ( tcache ); + ctx->tcache.map = fd_tcache_map_laddr ( tcache ); + + FD_TEST( fd_sha512_join( fd_sha512_new( ctx->sha ) ) ); + + ctx->out->mem = out_dcache; + ctx->out->chunk0 = fd_laddr_to_chunk( out_dcache, out_dcache ); + ctx->out->wmark = ctx->out->chunk0 + fuzz_wmark( FUZZ_OUT_DBUF_SZ, FUZZ_GOSSVF_OUT_MTU ); + ctx->out->chunk = ctx->out->chunk0; + env->out_mcache = fd_mcache_join( fd_mcache_new( mcache_mem, FUZZ_OUT_DEPTH, 0UL, 0UL ) ); + FD_TEST( env->out_mcache ); + + env->stem_mcache[0] = env->out_mcache; + env->stem_seq[0] = 0UL; + env->stem_depth[0] = FUZZ_OUT_DEPTH; + env->stem_cr_avail[0] = ULONG_MAX/4UL; + env->stem_min_cr_avail[0] = ULONG_MAX/4UL; + env->stem_out_reliable[0] = 0; + + env->stem->mcaches = env->stem_mcache; + env->stem->seqs = env->stem_seq; + env->stem->depths = env->stem_depth; + env->stem->cr_avail = env->stem_cr_avail; + env->stem->min_cr_avail = env->stem_min_cr_avail; + env->stem->cr_decrement_amount = 1UL; + env->stem->out_reliable = env->stem_out_reliable; + + FD_TEST( FD_SCRATCH_ALLOC_FINI( l, fuzz_mem_align() )<=(ulong)fuzz_mem+fuzz_mem_fp ); +} + +static void +make_contact_value( fd_gossip_value_t * value, + ulong peer_idx, + uint addr, + ushort port, + ushort shred_version, + long now, + long skew_ms ) { + memset( value, 0, sizeof(*value) ); + value->tag = FD_GOSSIP_VALUE_CONTACT_INFO; + memcpy( value->origin, peers[ peer_idx ].pub->uc, 32UL ); + value->wallclock = (ulong)( FD_NANOSEC_TO_MILLI( now ) + skew_ms ); + + value->contact_info->outset = (ulong)FD_NANOSEC_TO_MICRO( now - 1000000L ); + value->contact_info->shred_version = shred_version; + value->contact_info->version.major = 2U; + value->contact_info->version.minor = 0U; + value->contact_info->version.patch = 0U; + value->contact_info->version.commit = 1U; + value->contact_info->version.feature_set = 1U; + value->contact_info->version.client = FD_GOSSIP_CONTACT_INFO_CLIENT_FIREDANCER; + value->contact_info->sockets[ FD_GOSSIP_CONTACT_INFO_SOCKET_GOSSIP ] = (fd_gossip_socket_t){ + .port = fd_ushort_bswap( port ), + .is_ipv6 = 0U, + .ip4 = addr + }; + value->contact_info->sockets[ FD_GOSSIP_CONTACT_INFO_SOCKET_TVU ] = (fd_gossip_socket_t){ + .port = fd_ushort_bswap( (ushort)( port + 1000U ) ), + .is_ipv6 = 0U, + .ip4 = addr + }; +} + +static void +make_duplicate_shred_value( fd_gossip_value_t * value, + ulong peer_idx, + long now, + fuzz_cursor_t * cur, + ulong max_chunk_len ) { + memset( value, 0, sizeof(*value) ); + value->tag = FD_GOSSIP_VALUE_DUPLICATE_SHRED; + memcpy( value->origin, peers[ peer_idx ].pub->uc, 32UL ); + value->wallclock = (ulong)FD_NANOSEC_TO_MILLI( now ); + + value->duplicate_shred->index = (ushort)fuzz_bounded( cur, 512UL ); + value->duplicate_shred->slot = 1000UL + fuzz_bounded( cur, 1000000UL ); + value->duplicate_shred->num_chunks = (uchar)( 1UL + fuzz_bounded( cur, 4UL ) ); + value->duplicate_shred->chunk_index = + (uchar)fuzz_bounded( cur, value->duplicate_shred->num_chunks ); + value->duplicate_shred->chunk_len = + 1UL + fuzz_bounded( cur, fd_ulong_min( max_chunk_len, + sizeof(value->duplicate_shred->chunk) ) ); + for( ulong i=0UL; iduplicate_shred->chunk_len; i++ ) + value->duplicate_shred->chunk[ i ] = fuzz_u8( cur ); +} + +static void +make_snapshot_hashes_value( fd_gossip_value_t * value, + ulong peer_idx, + long now, + fuzz_cursor_t * cur, + ulong max_incremental ) { + memset( value, 0, sizeof(*value) ); + value->tag = FD_GOSSIP_VALUE_SNAPSHOT_HASHES; + memcpy( value->origin, peers[ peer_idx ].pub->uc, 32UL ); + value->wallclock = (ulong)FD_NANOSEC_TO_MILLI( now ); + + value->snapshot_hashes->full_slot = + 1000UL + fuzz_bounded( cur, 1000000UL ); + for( ulong i=0UL; i<32UL; i++ ) + value->snapshot_hashes->full_hash[ i ] = fuzz_u8( cur ); + + ulong inc_max = fd_ulong_min( max_incremental, + sizeof(value->snapshot_hashes->incremental)/ + sizeof(value->snapshot_hashes->incremental[0]) ); + value->snapshot_hashes->incremental_len = fuzz_bounded( cur, inc_max+1UL ); + for( ulong i=0UL; isnapshot_hashes->incremental_len; i++ ) { + value->snapshot_hashes->incremental[ i ].slot = + value->snapshot_hashes->full_slot + 1UL + i + + fuzz_bounded( cur, 16UL ); + for( ulong j=0UL; j<32UL; j++ ) + value->snapshot_hashes->incremental[ i ].hash[ j ] = fuzz_u8( cur ); + } +} + +static int +make_vote_value( fd_gossip_value_t * value, + ulong peer_idx, + long now, + fuzz_cursor_t * cur ) { + memset( value, 0, sizeof(*value) ); + value->tag = FD_GOSSIP_VALUE_VOTE; + memcpy( value->origin, peers[ peer_idx ].pub->uc, 32UL ); + value->wallclock = (ulong)FD_NANOSEC_TO_MILLI( now ); + value->vote->index = (uchar)fuzz_bounded( cur, 32UL ); + value->vote->transaction_len = + build_vote_txn( value->vote->transaction, + sizeof(value->vote->transaction), + peer_idx, + cur ); + return !!value->vote->transaction_len; +} + +static long +serialize_signed_value( fd_gossip_value_t * value, + ulong peer_idx, + uchar * out, + ulong out_sz, + int corrupt_sig ) { + memset( value->signature, 0, sizeof(value->signature) ); + long value_sz = fd_gossip_value_serialize( value, out, out_sz ); + if( FD_UNLIKELY( value_sz<=64L ) ) return -1L; + + fd_ed25519_sign( value->signature, out+64UL, (ulong)value_sz-64UL, peers[ peer_idx ].pub->uc, peers[ peer_idx ].priv, sha ); + if( FD_UNLIKELY( corrupt_sig ) ) value->signature[ 0 ] ^= 0x80U; + + return fd_gossip_value_serialize( value, out, out_sz ); +} + +static ulong +build_push_or_pull_response( uchar * payload, + ulong payload_sz, + uint tag, + uchar const * const value_bytes[ 3UL ], + ulong const * value_sz, + ulong value_cnt ) { + if( FD_UNLIKELY( value_cnt>3UL ) ) return 0UL; + ulong total_sz = 4UL+32UL+8UL; + for( ulong i=0UL; ipayload_sz || + total_sz>payload_sz-value_sz[ i ] ) ) return 0UL; + total_sz += value_sz[ i ]; + } + + uchar * p = payload; + FD_STORE( uint, p, tag ); p += 4UL; + memcpy( p, peers[ 0 ].pub->uc, 32UL ); p += 32UL; + FD_STORE( ulong, p, value_cnt ); p += 8UL; + for( ulong i=0UL; iuc, 32UL ); p += 32UL; + for( ulong i=0UL; i<32UL; i++ ) p[ i ] = (uchar)( 0xa0U + (uint)i + (uint)peer_idx ); + uchar * sign_data = p; + p += 32UL; + fd_ed25519_sign( p, sign_data, 32UL, peers[ peer_idx ].pub->uc, peers[ peer_idx ].priv, sha ); + if( FD_UNLIKELY( corrupt_sig ) ) p[ 0 ] ^= 0x40U; + p += 64UL; + return (ulong)( p - payload ); +} + +static void +send_udp_payload( fuzz_env_t * env, + uint src_addr, + ushort src_port, + uchar const * payload, + ulong payload_sz ) { + if( FD_UNLIKELY( payload_sz + sizeof(fd_ip4_udp_hdrs_t) > FD_NET_MTU ) ) return; + + fd_ip4_udp_hdrs_t hdrs[1]; + fd_ip4_udp_hdr_init( hdrs, payload_sz, src_addr, src_port ); + ulong packet_sz = sizeof(fd_ip4_udp_hdrs_t) + payload_sz; + memcpy( env->ctx->payload, hdrs, sizeof(fd_ip4_udp_hdrs_t) ); + memcpy( env->ctx->payload + sizeof(fd_ip4_udp_hdrs_t), payload, payload_sz ); + + ulong old_chunk = env->ctx->out->chunk; + ulong old_seq = env->stem_seq[0]; + int result = handle_net( env->ctx, packet_sz, 0UL, env->stem ); + env->ctx->metrics.message_rx[ result ]++; + env->ctx->metrics.message_rx_bytes[ result ] += packet_sz; + + if( FD_UNLIKELY( env->ctx->out->chunk==old_chunk ) ) return; + + fd_frag_meta_t const * meta = env->out_mcache + fd_mcache_line_idx( old_seq, FUZZ_OUT_DEPTH ); + if( FD_UNLIKELY( meta->seq!=old_seq || fd_gossvf_sig_kind( meta->sig )!=0U ) ) return; + + uchar const * out = fd_chunk_to_laddr_const( env->ctx->out->mem, old_chunk ); + fd_gossip_message_t const * msg = (fd_gossip_message_t const *)out; + uchar const * failed = out + sizeof(fd_gossip_message_t); + + fd_gossip_value_t const * values = NULL; + ulong values_len = 0UL; + if( msg->tag==FD_GOSSIP_MESSAGE_PUSH ) { + values = msg->push->values; + values_len = msg->push->values_len; + } else if( msg->tag==FD_GOSSIP_MESSAGE_PULL_RESPONSE ) { + values = msg->pull_response->values; + values_len = msg->pull_response->values_len; + } + + for( ulong i=0UL; itag = FD_GOSSIP_UPDATE_TAG_CONTACT_INFO; + memcpy( update->origin, values[ i ].origin, 32UL ); + update->wallclock = values[ i ].wallclock; + update->contact_info->idx = i; + *update->contact_info->value = *values[ i ].contact_info; + handle_peer_update( env->ctx, update ); + } +} + +static void +inject_ping_update( fuzz_env_t * env, + ulong peer_idx, + uint addr, + ushort port ) { + if( FD_UNLIKELY( !addr || !port ) ) return; + fd_gossip_ping_update_t update[1]; + memset( update, 0, sizeof(update) ); + update->pubkey = *peers[ peer_idx ].pub; + update->gossip_addr.addr = addr; + update->gossip_addr.port = fd_ushort_bswap( port ); + update->remove = 0; + if( FD_LIKELY( !ping_map_ele_query( env->ctx->ping_map, + &update->pubkey, + NULL, + env->ctx->pings ) ) ) + handle_ping_update( env->ctx, update ); +} + +static void +inject_stakes( fuzz_env_t * env, + ulong first_peer, + ulong cnt, + ulong stake ) { + memset( env->ctx->stake.msg_buf, 0, sizeof(fd_epoch_info_msg_t) + FUZZ_PEER_CNT*sizeof(fd_stake_weight_t) ); + fd_epoch_info_msg_t * msg = (fd_epoch_info_msg_t *)env->ctx->stake.msg_buf; + msg->staked_id_cnt = fd_ulong_min( cnt, FUZZ_PEER_CNT ); + + fd_stake_weight_t * weights = fd_epoch_info_msg_id_weights( msg ); + for( ulong i=0UL; istaked_id_cnt; i++ ) { + ulong peer_idx = ( first_peer + i ) % FUZZ_PEER_CNT; + weights[ i ].key = *peers[ peer_idx ].pub; + weights[ i ].stake = stake; + } + handle_epoch( env->ctx, msg ); +} + +static void +inject_peer_update( fuzz_env_t * env, + ulong peer_idx, + uint addr, + ushort port, + ushort shred_version ) { + fd_gossip_update_message_t update[1]; + memset( update, 0, sizeof(update) ); + update->tag = FD_GOSSIP_UPDATE_TAG_CONTACT_INFO; + memcpy( update->origin, peers[ peer_idx ].pub->uc, 32UL ); + update->wallclock = (ulong)FD_NANOSEC_TO_MILLI( env->ctx->last_wallclock ); + update->contact_info->idx = peer_idx; + update->contact_info->value->shred_version = shred_version; + update->contact_info->value->sockets[ FD_GOSSIP_CONTACT_INFO_SOCKET_GOSSIP ] = + (fd_gossip_socket_t){ + .port = fd_ushort_bswap( port ), + .is_ipv6 = 0U, + .ip4 = addr + }; + handle_peer_update( env->ctx, update ); +} + + +int +LLVMFuzzerInitialize( int * argc, + char *** argv ) { + putenv( "FD_LOG_BACKTRACE=0" ); + setenv( "FD_LOG_PATH", "", 0 ); + fd_boot( argc, argv ); + atexit( fd_halt ); + fd_log_level_core_set( 3 ); + init_peers(); + + fuzz_mem_fp = fuzz_mem_footprint(); + ulong align = fuzz_mem_align(); + fuzz_mem = aligned_alloc( align, FD_ULONG_ALIGN_UP( fuzz_mem_fp, align ) ); + FD_TEST( fuzz_mem ); + atexit( fuzz_cleanup ); + + return 0; +} + +int +LLVMFuzzerTestOneInput( uchar const * data, + ulong size ) { + if( FD_UNLIKELY( size<2UL ) ) return 0; + + fuzz_cursor_t cur = { .cur = data, .rem = size }; + fuzz_env_t * env = fuzz_env; + setup_env( env ); + + ulong action_cnt = 1UL + (ulong)( fuzz_u8( &cur ) % FUZZ_MAX_ACTIONS ); + for( ulong action_idx=0UL; (action_idxctx->last_wallclock, skew_ms ); + + long value_sz = serialize_signed_value( value, + peer_idx, + env->value_buf[0], + sizeof(env->value_buf[0]), + corrupt_sig ); + if( FD_UNLIKELY( value_sz<=0L ) ) break; + + ulong payload_sz; + if( action==3U ) { + uchar const * value_bytes[ 3UL ] = { env->value_buf[0], NULL, NULL }; + ulong value_szs[ 3UL ] = { (ulong)value_sz, 0UL, 0UL }; + payload_sz = build_push_or_pull_response( env->udp_payload, + sizeof(env->udp_payload), + FD_GOSSIP_MESSAGE_PUSH, + value_bytes, + value_szs, + 1UL ); + } else if( action==4U ) { + uchar const * value_bytes[ 3UL ] = { env->value_buf[0], NULL, NULL }; + ulong value_szs[ 3UL ] = { (ulong)value_sz, 0UL, 0UL }; + payload_sz = build_push_or_pull_response( env->udp_payload, + sizeof(env->udp_payload), + FD_GOSSIP_MESSAGE_PULL_RESPONSE, + value_bytes, + value_szs, + 1UL ); + } else { + ulong num_bits = (fuzz_u8( &cur ) & 1U) ? 64UL : 0UL; + uint mask_bits = (uint)( fuzz_u8( &cur ) % 70U ); + payload_sz = build_pull_request( env->udp_payload, + sizeof(env->udp_payload), + env->value_buf[0], + (ulong)value_sz, + num_bits, + mask_bits ); + } + if( FD_LIKELY( payload_sz ) ) send_udp_payload( env, addr, port, env->udp_payload, payload_sz ); + break; + } + case 6U: { + int corrupt_sig = !!( fuzz_u8( &cur ) & 1U ); + uint tag = (fuzz_u8( &cur ) & 1U) ? FD_GOSSIP_MESSAGE_PING : FD_GOSSIP_MESSAGE_PONG; + ulong payload_sz = build_ping_or_pong( env->udp_payload, sizeof(env->udp_payload), tag, peer_idx, corrupt_sig ); + if( FD_LIKELY( payload_sz ) ) send_udp_payload( env, addr, port, env->udp_payload, payload_sz ); + break; + } + case 7U: { + fd_gossip_value_t value[1]; + ushort origin_shred_version = (ushort)( (fuzz_u8( &cur ) & 7U) ? FUZZ_SHRED_VERSION : FUZZ_SHRED_VERSION+1U ); + inject_peer_update( env, peer_idx, addr, port, origin_shred_version ); + + ulong value_kind = fuzz_bounded( &cur, 3UL ); + if( value_kind==0UL ) { + make_duplicate_shred_value( value, peer_idx, env->ctx->last_wallclock, &cur, 256UL ); + } else if( value_kind==1UL ) { + make_snapshot_hashes_value( value, peer_idx, env->ctx->last_wallclock, &cur, 8UL ); + } else if( FD_UNLIKELY( !make_vote_value( value, peer_idx, env->ctx->last_wallclock, &cur ) ) ) { + break; + } + + int corrupt_sig = !( fuzz_u8( &cur ) & 7U ); + long value_sz = serialize_signed_value( value, + peer_idx, + env->value_buf[0], + sizeof(env->value_buf[0]), + corrupt_sig ); + if( FD_UNLIKELY( value_sz<=0L ) ) break; + + uchar const * value_bytes[ 3UL ] = { env->value_buf[0], NULL, NULL }; + ulong value_szs[ 3UL ] = { (ulong)value_sz, 0UL, 0UL }; + uint tag = (fuzz_u8( &cur ) & 1U) ? FD_GOSSIP_MESSAGE_PUSH : + FD_GOSSIP_MESSAGE_PULL_RESPONSE; + ulong payload_sz = build_push_or_pull_response( env->udp_payload, + sizeof(env->udp_payload), + tag, + value_bytes, + value_szs, + 1UL ); + if( FD_LIKELY( payload_sz ) ) { + send_udp_payload( env, addr, port, env->udp_payload, payload_sz ); + if( tag==FD_GOSSIP_MESSAGE_PULL_RESPONSE && (fuzz_u8( &cur ) & 1U) ) + send_udp_payload( env, addr, port, env->udp_payload, payload_sz ); + } + break; + } + case 8U: { + ulong peer1 = peer_idx; + ulong peer2 = 1UL + fuzz_bounded( &cur, FUZZ_PEER_CNT-1UL ); + ulong peer3 = 1UL + fuzz_bounded( &cur, FUZZ_PEER_CNT-1UL ); + uint peer2_addr = fuzz_addr_for_class( 0U, peer2 ); + uint peer3_addr = fuzz_addr_for_class( 0U, peer3 ); + ushort peer2_port = fuzz_port( peer2 ); + ushort peer3_port = fuzz_port( peer3 ); + fd_gossip_value_t value[1]; + long value_sz[ 3UL ]; + + inject_ping_update( env, peer1, addr, port ); + inject_stakes( env, peer1, FUZZ_PEER_CNT-1UL, FD_GOSSIP_STAKED_THRESHOLD ); + inject_peer_update( env, peer2, peer2_addr, peer2_port, FUZZ_SHRED_VERSION ); + inject_peer_update( env, peer3, peer3_addr, peer3_port, FUZZ_SHRED_VERSION ); + + make_contact_value( value, + peer1, + addr, + port, + FUZZ_SHRED_VERSION, + env->ctx->last_wallclock, + 0L ); + value_sz[0] = serialize_signed_value( value, + peer1, + env->value_buf[0], + sizeof(env->value_buf[0]), + 0 ); + make_duplicate_shred_value( value, peer2, env->ctx->last_wallclock, &cur, 96UL ); + value_sz[1] = serialize_signed_value( value, + peer2, + env->value_buf[1], + sizeof(env->value_buf[1]), + !( fuzz_u8( &cur ) & 15U ) ); + make_snapshot_hashes_value( value, peer3, env->ctx->last_wallclock, &cur, 2UL ); + value_sz[2] = serialize_signed_value( value, + peer3, + env->value_buf[2], + sizeof(env->value_buf[2]), + !( fuzz_u8( &cur ) & 15U ) ); + if( FD_UNLIKELY( value_sz[0]<=0L || value_sz[1]<=0L || value_sz[2]<=0L ) ) break; + + uchar const * value_bytes[ 3UL ] = { + env->value_buf[0], + env->value_buf[1], + env->value_buf[2] + }; + ulong value_szs[ 3UL ] = { + (ulong)value_sz[0], + (ulong)value_sz[1], + (ulong)value_sz[2] + }; + uint tag = (fuzz_u8( &cur ) & 1U) ? FD_GOSSIP_MESSAGE_PUSH : + FD_GOSSIP_MESSAGE_PULL_RESPONSE; + ulong payload_sz = build_push_or_pull_response( env->udp_payload, + sizeof(env->udp_payload), + tag, + value_bytes, + value_szs, + 3UL ); + if( FD_LIKELY( payload_sz ) ) { + send_udp_payload( env, addr, port, env->udp_payload, payload_sz ); + if( tag==FD_GOSSIP_MESSAGE_PULL_RESPONSE && (fuzz_u8( &cur ) & 1U) ) + send_udp_payload( env, addr, port, env->udp_payload, payload_sz ); + } + break; + } + case 9U: { + fd_gossip_value_t value[1]; + inject_stakes( env, peer_idx, 1UL, FD_GOSSIP_STAKED_THRESHOLD ); + if( FD_UNLIKELY( !make_vote_value( value, peer_idx, env->ctx->last_wallclock, &cur ) ) ) break; + + long value_sz = serialize_signed_value( value, + peer_idx, + env->value_buf[0], + sizeof(env->value_buf[0]), + !( fuzz_u8( &cur ) & 15U ) ); + if( FD_UNLIKELY( value_sz<=0L ) ) break; + + uchar const * value_bytes[ 3UL ] = { env->value_buf[0], NULL, NULL }; + ulong value_szs[ 3UL ] = { (ulong)value_sz, 0UL, 0UL }; + uint tag = (fuzz_u8( &cur ) & 1U) ? FD_GOSSIP_MESSAGE_PUSH : + FD_GOSSIP_MESSAGE_PULL_RESPONSE; + ulong payload_sz = build_push_or_pull_response( env->udp_payload, + sizeof(env->udp_payload), + tag, + value_bytes, + value_szs, + 1UL ); + if( FD_LIKELY( payload_sz ) ) send_udp_payload( env, addr, port, env->udp_payload, payload_sz ); + break; + } + default: { + ulong raw_sz = fuzz_bounded( &cur, fd_ulong_min( cur.rem, 1232UL ) + 1UL ); + raw_sz = fd_ulong_min( raw_sz, cur.rem ); + memcpy( env->udp_payload, cur.cur, raw_sz ); + cur.cur += raw_sz; + cur.rem -= raw_sz; + send_udp_payload( env, addr, port, env->udp_payload, raw_sz ); + break; + } + } + } + + return 0; +} From 0fe7e01039c5ffc34a343e893a4e4de2c300a65a Mon Sep 17 00:00:00 2001 From: David Rubin Date: Tue, 16 Jun 2026 16:54:47 +0000 Subject: [PATCH 54/61] gossip: use local ip for outbound packet source --- src/app/firedancer/topology.c | 1 + src/disco/topo/fd_topo.h | 1 + src/discof/gossip/fd_gossip_tile.c | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/app/firedancer/topology.c b/src/app/firedancer/topology.c index 797436d2c0a..5808cac347e 100644 --- a/src/app/firedancer/topology.c +++ b/src/app/firedancer/topology.c @@ -1317,6 +1317,7 @@ fd_topo_configure_tile( fd_topo_tile_t * tile, } else { tile->gossip.ip_addr = config->net.ip_addr; } + tile->gossip.bind_ip_addr = config->net.ip_addr; fd_cstr_ncpy( tile->gossip.identity_key_path, config->paths.identity_key, sizeof(tile->gossip.identity_key_path) ); tile->gossip.shred_version = config->consensus.expected_shred_version; tile->gossip.max_entries = config->tiles.gossip.max_entries; diff --git a/src/disco/topo/fd_topo.h b/src/disco/topo/fd_topo.h index 127fe9a30a2..a329f6d9fdb 100644 --- a/src/disco/topo/fd_topo.h +++ b/src/disco/topo/fd_topo.h @@ -240,6 +240,7 @@ struct fd_topo_tile { long boot_timestamp_nanos; uint ip_addr; + uint bind_ip_addr; ushort shred_version; ulong max_entries; diff --git a/src/discof/gossip/fd_gossip_tile.c b/src/discof/gossip/fd_gossip_tile.c index 1bf9960cfa9..5d1065e43cc 100644 --- a/src/discof/gossip/fd_gossip_tile.c +++ b/src/discof/gossip/fd_gossip_tile.c @@ -641,7 +641,7 @@ unprivileged_init( fd_topo_t const * topo, FD_MGAUGE_SET( GOSSIP, CRDS_PEER_CAPACITY, FD_CONTACT_INFO_TABLE_SIZE ); FD_MGAUGE_SET( GOSSIP, CRDS_PURGED_CAPACITY, 4UL*tile->gossip.max_entries ); - fd_ip4_udp_hdr_init( ctx->net_out_hdr, FD_GOSSIP_MTU, tile->gossip.ip_addr, tile->gossip.ports.gossip ); + fd_ip4_udp_hdr_init( ctx->net_out_hdr, FD_GOSSIP_MTU, tile->gossip.bind_ip_addr, tile->gossip.ports.gossip ); ulong scratch_top = FD_SCRATCH_ALLOC_FINI( l, scratch_align() ); if( FD_UNLIKELY( scratch_top > (ulong)scratch + scratch_footprint( tile ) ) ) From 2d29615bdccc8c476267b5f0eee7d4cb1a792349 Mon Sep 17 00:00:00 2001 From: David Rubin Date: Tue, 16 Jun 2026 16:59:22 +0000 Subject: [PATCH 55/61] topo: fix enable_block_production=false --- src/app/firedancer/topology.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/firedancer/topology.c b/src/app/firedancer/topology.c index 5808cac347e..7d7469272e9 100644 --- a/src/app/firedancer/topology.c +++ b/src/app/firedancer/topology.c @@ -1517,7 +1517,7 @@ fd_topo_configure_tile( fd_topo_tile_t * tile, tile->accdb.rpc_epoch_obj_id = fd_pod_query_ulong( config->topo.props, "accdb_epoch.rpc", ULONG_MAX ); - tile->accdb.resolv_epoch_obj_cnt = config->firedancer.layout.resolv_tile_count; + tile->accdb.resolv_epoch_obj_cnt = config->firedancer.layout.enable_block_production ? config->firedancer.layout.resolv_tile_count : 0UL; FD_TEST( tile->accdb.resolv_epoch_obj_cnt<=sizeof(tile->accdb.resolv_epoch_obj_ids)/sizeof(tile->accdb.resolv_epoch_obj_ids[0]) ); for( ulong i=0UL; iaccdb.resolv_epoch_obj_cnt; i++ ) { tile->accdb.resolv_epoch_obj_ids[ i ] = fd_pod_queryf_ulong( config->topo.props, ULONG_MAX, "accdb_epoch.resolv.%lu", i ); From c5fc5ea8e5e92572cc7613c397bd1b833fe77fe1 Mon Sep 17 00:00:00 2001 From: David Rubin Date: Tue, 16 Jun 2026 17:00:59 +0000 Subject: [PATCH 56/61] sock: fix no rserve & repair socket --- src/disco/net/sock/fd_sock_tile.c | 21 ++++++++------------- src/disco/net/sock/fd_sock_tile_private.h | 1 + 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/disco/net/sock/fd_sock_tile.c b/src/disco/net/sock/fd_sock_tile.c index e0e01629b39..a6d709d84b9 100644 --- a/src/disco/net/sock/fd_sock_tile.c +++ b/src/disco/net/sock/fd_sock_tile.c @@ -28,11 +28,6 @@ Must be aligned by alignof(struct cmsghdr) */ #define FD_SOCK_CMSG_MAX (64UL) -/* Value of the sock_idx for Firedancer repair intake. - Used to determine whether repair packets should go to shred vs repair tile. - This value is validated at startup. */ -#define REPAIR_SHRED_SOCKET_ID (4U) - static ulong populate_allowed_seccomp( fd_topo_t const * topo, fd_topo_tile_t const * tile, @@ -178,6 +173,7 @@ privileged_init( fd_topo_t const * topo, ctx->tx_scratch0 = tx_scratch; ctx->tx_scratch1 = tx_scratch + tx_scratch_footprint(); ctx->tx_ptr = tx_scratch; + ctx->repair_shred_sock_idx = UINT_MAX; /* Create receive sockets. Incrementally assign them to file descriptors starting at sock_fd_min. */ @@ -216,11 +212,6 @@ privileged_init( fd_topo_t const * topo, if( sock_idx>=FD_SOCK_TILE_MAX_SOCKETS ) FD_LOG_ERR(( "too many sockets" )); ushort port = (ushort)udp_port_candidates[ candidate_idx ]; - /* Validate value of REPAIR_SHRED_SOCKET_ID */ - if( tile->sock.net.repair_client_listen_port && - udp_port_candidates[candidate_idx]==tile->sock.net.repair_client_listen_port ) - FD_TEST( sock_idx==REPAIR_SHRED_SOCKET_ID ); - char const * target_link = udp_port_links[ candidate_idx ]; ctx->link_rx_map[ sock_idx ] = 0xFF; for( ulong j=0UL; j<(tile->out_cnt); j++ ) { @@ -237,6 +228,12 @@ privileged_init( fd_topo_t const * topo, continue; } + /* Record the socket index of the repair intake socket, so repair + ping packets can be routed to the repair tile at runtime. */ + if( tile->sock.net.repair_client_listen_port && + udp_port_candidates[ candidate_idx ]==tile->sock.net.repair_client_listen_port ) + ctx->repair_shred_sock_idx = sock_idx; + int sock_fd = sock_fd_min + (int)sock_idx; create_udp_socket( sock_fd, tile->sock.net.bind_address, port, tile->sock.so_rcvbuf ); ctx->pollfd[ sock_idx ].fd = sock_fd; @@ -262,7 +259,6 @@ privileged_init( fd_topo_t const * topo, ctx->tx_sock = tx_sock; ctx->bind_address = tile->sock.net.bind_address; - } static void @@ -293,7 +289,6 @@ unprivileged_init( fd_topo_t const * topo, tile->out_link_id[ i ], link->burst, STEM_BURST )); } } - if( FD_UNLIKELY( ctx->repair_rx==0xFF ) ) FD_LOG_ERR(( "no net_repair out links" )); for( ulong i=0UL; i<(tile->in_cnt); i++ ) { if( !strstr( topo->links[ tile->in_link_id[ i ] ].name, "_net" ) ) { @@ -427,7 +422,7 @@ poll_rx_socket( fd_sock_tile_t * ctx, the frame size), then it is sent to the repair tile. The repair tile does not own any sockets, so we look up the net_repair link directly.*/ - if( FD_UNLIKELY( sock_idx==REPAIR_SHRED_SOCKET_ID && frame_sz==REPAIR_PING_SZ ) ) { + if( FD_UNLIKELY( sock_idx==ctx->repair_shred_sock_idx && frame_sz==REPAIR_PING_SZ ) ) { fd_sock_link_rx_t * repair_link = ctx->link_rx + ctx->repair_rx; uchar * repair_buf = fd_chunk_to_laddr( repair_link->base, repair_link->chunk ); memcpy( repair_buf, eth_hdr, frame_sz ); diff --git a/src/disco/net/sock/fd_sock_tile_private.h b/src/disco/net/sock/fd_sock_tile_private.h index f76ea22b907..52f46a38be5 100644 --- a/src/disco/net/sock/fd_sock_tile_private.h +++ b/src/disco/net/sock/fd_sock_tile_private.h @@ -79,6 +79,7 @@ struct fd_sock_tile { ushort rx_sock_port[ FD_SOCK_TILE_MAX_SOCKETS ]; uchar link_rx_map [ FD_SOCK_TILE_MAX_SOCKETS ]; uchar repair_rx; + uint repair_shred_sock_idx; fd_sock_link_rx_t link_rx[ MAX_NET_OUTS ]; /* TX links */ From e46d370438bf8f32f7427b6f2936b544e87acc83 Mon Sep 17 00:00:00 2001 From: jherrera-jump Date: Tue, 16 Jun 2026 13:46:07 -0500 Subject: [PATCH 57/61] gui: add snapwr to summary.boot_progress, fix summary.live_network_metrics docs (#10210) --- book/api/metrics-generated.md | 1 + book/api/websocket.md | 23 ++++++++++++---- src/disco/gui/fd_gui.c | 26 ++++++++++++++++--- src/disco/gui/fd_gui.h | 4 +++ src/disco/gui/fd_gui_printf.c | 6 +++++ .../metrics/generated/fd_metrics_snapwr.c | 1 + .../metrics/generated/fd_metrics_snapwr.h | 8 +++++- src/disco/metrics/metrics.xml | 1 + src/discof/restore/fd_snapwr_tile.c | 8 ++++++ 9 files changed, 68 insertions(+), 10 deletions(-) diff --git a/book/api/metrics-generated.md b/book/api/metrics-generated.md index c61b9a5fc46..9b206b8271c 100644 --- a/book/api/metrics-generated.md +++ b/book/api/metrics-generated.md @@ -147,6 +147,7 @@ | snapwr_​full_​bytes_​read | gauge | Number of decompressed snapshot bytes consumed from the full snapshot. Might decrease if snapshot load is aborted and restarted | | snapwr_​incremental_​bytes_​read | gauge | Number of decompressed snapshot bytes consumed from the incremental snapshot. Might decrease if snapshot load is aborted and restarted | | snapwr_​bytes_​written | gauge | Number of bytes written to the accounts database on disk. Monotonically increasing across snapshot loads. | +| snapwr_​accounts_​written | gauge | Number of accounts written to the accounts database on disk. Might decrease if snapshot load is aborted and restarted | diff --git a/book/api/websocket.md b/book/api/websocket.md index 56185125973..9c1521424dc 100644 --- a/book/api/websocket.md +++ b/book/api/websocket.md @@ -535,6 +535,9 @@ Some interesting transitions are, "loading_full_snapshot_decompress_bytes_compressed": "826495323", "loading_full_snapshot_insert_bytes_decompressed": "4864409599", "loading_full_snapshot_insert_accounts": 10634591, + "loading_full_snapshot_snapwr_in_bytes_decompressed": "4864409599", + "loading_full_snapshot_snapwr_out_bytes_decompressed": "4892160000", + "loading_full_snapshot_snapwr_accounts": 10634591, "loading_incremental_snapshot_elapsed_seconds": null, "loading_incremental_snapshot_reset_count": null, "loading_incremental_snapshot_slot": null, @@ -545,6 +548,9 @@ Some interesting transitions are, "loading_incremental_snapshot_decompress_bytes_compressed": null, "loading_incremental_snapshot_insert_bytes_decompressed": null, "loading_incremental_snapshot_insert_accounts": null, + "loading_incremental_snapshot_snapwr_in_bytes_decompressed": null, + "loading_incremental_snapshot_snapwr_out_bytes_decompressed": null, + "loading_incremental_snapshot_snapwr_accounts": null, "wait_for_supermajority_bank_hash": "2CeCyRoYmcctDmbXWrSUfTT4aQkGVCnArAmbdmQ5dGFi", "wait_for_supermajority_shred_version": "37500", "wait_for_supermajority_attempt": 1, @@ -574,7 +580,10 @@ Some interesting transitions are, | loading_{full\|incremental}_snapshot_decompress_bytes_decompressed | `number\|null` | If the phase is at least `loading_{full\|incremental}_snapshot`, this is the (decompressed) number of bytes processed by decompress from the snapshot so far. Otherwise, `null` | | loading_{full\|incremental}_snapshot_decompress_bytes_compressed | `number\|null` | If the phase is at least `loading_{full\|incremental}_snapshot`, this is the (compressed) number of bytes processed by decompress from the snapshot so far. Otherwise, `null` | | loading_{full\|incremental}_snapshot_insert_bytes_decompressed | `number\|null` | If the phase is at least `loading_{full\|incremental}_snapshot`, this is the (decompressed) number of bytes processed from the snapshot by the snapshot insert time so far. Otherwise, `null` | -| loading_{full\|incremental}_snapshot_insert_accounts | `number\|null` | If the phase is at least `loading_{full\|incremental}_snapshot`, this is the current number of inserted accounts from the snapshot into the validator's accounts database. Otherwise, `null` | +| loading_{full\|incremental}_snapshot_insert_accounts | `number\|null` | If the phase is at least `loading_{full\|incremental}_snapshot`, this is the current number of accounts inserted into the validator's accounts database from this snapshot. Otherwise, `null` | +| loading_{full\|incremental}_snapshot_snapwr_in_bytes_decompressed | `number\|null` | If the phase is at least `loading_{full\|incremental}_snapshot`, this is the (decompressed) number of bytes consumed from the snapshot by the snapshot write (snapwr) stage so far. Otherwise, `null` | +| loading_{full\|incremental}_snapshot_snapwr_out_bytes_decompressed | `number\|null` | If the phase is at least `loading_{full\|incremental}_snapshot`, this is the number of bytes written to the on-disk account database by the snapshot write (snapwr) stage for this snapshot so far. Otherwise, `null` | +| loading_{full\|incremental}_snapshot_snapwr_accounts | `number\|null` | If the phase is at least `loading_{full\|incremental}_snapshot`, this is the current number of accounts written to the on-disk account database by the snapshot write (snapwr) stage for this snapshot so far. Otherwise, `null` | | wait_for_supermajority_bank_hash | `string\|null` | If the client was configured to include the `waiting_for_supermajority` phase at startup, this is the expected bank hash of the snapshot bank. This ensures all validators join the cluster with the same starting state. `null` if wait for supermajority is not enabled | | wait_for_supermajority_shred_version | `string\|null` | If the client was configured to include the `waiting_for_supermajority` phase at startup, this is the expected shred version it was configured with. Shred version is functionally a hash of (genesis_hash, cluster_restart_history) which ensures only nodes which explicitly agree on the restart slot and restart attempt count can communicate with each other. `null` if wait for supermajority is not configured | | wait_for_supermajority_attempt | `number\|null` | If the client was configured to include the `waiting_for_supermajority` phase at startup, this is the number of times this cluster has been restarted onto the snapshot slot, including the current attempt. `null` if wait for supermajority is not configured | @@ -901,6 +910,7 @@ uses to communicate with the internet. "gossip", "tpu", "repair", + "rserve", "metrics" ] ``` @@ -914,6 +924,9 @@ in a client used to consume and forward incoming Solana transactions for their next leader slot. - repair: a client subsystem which requests any missing block data needed by the replay pipeline which may have been lost over the network +- rserve: "repair serve", a client subsystem which serves repair +requests from other nodes, responding with any block data they are +missing - metrics: refers to the Firedancer metrics tile, which serves an http Prometheus metrics endpoint @@ -922,10 +935,10 @@ Prometheus metrics endpoint "topic": "summary", "key": "live_network_metrics", "value": { - "ingress": [12345432, 5431234, 92345, ...], - "egress": [12345432, 5431234, 92345, ...], - "ingress_ema": [1234543.00, 543123.00, 9234.00, ...], - "egress_ema": [1234543.00, 543123.00, 9234.00, ...], + "ingress": [12345432, 5431234, 92345, 43210, 8765, ...], + "egress": [12345432, 5431234, 92345, 43210, 8765, ...], + "ingress_ema": [1234543.00, 543123.00, 9234.00, 4321.00, 876.00, ...], + "egress_ema": [1234543.00, 543123.00, 9234.00, 4321.00, 876.00, ...], "ingress_max_5m": 15000000, "egress_max_5m": 14500000, } diff --git a/src/disco/gui/fd_gui.c b/src/disco/gui/fd_gui.c index 527a4c87fb4..9d7c6cac9b8 100644 --- a/src/disco/gui/fd_gui.c +++ b/src/disco/gui/fd_gui.c @@ -1238,6 +1238,9 @@ fd_gui_run_boot_progress( fd_gui_t * gui, long now ) { fd_topo_tile_t const * snapin = &gui->topo->tiles[ fd_topo_find_tile( gui->topo, "snapin", 0UL ) ]; volatile ulong * snapin_metrics = fd_metrics_tile( snapin->metrics ); + fd_topo_tile_t const * snapwr = &gui->topo->tiles[ fd_topo_find_tile( gui->topo, "snapwr", 0UL ) ]; + volatile ulong * snapwr_metrics = fd_metrics_tile( snapwr->metrics ); + fd_topo_tile_t const * gossip = &gui->topo->tiles[ fd_topo_find_tile( gui->topo, "gossip", 0UL ) ]; volatile ulong * gossip_metrics = fd_metrics_tile( gossip->metrics ); @@ -1304,12 +1307,24 @@ fd_gui_run_boot_progress( fd_gui_t * gui, long now ) { gui->summary.boot_progress.loading_snapshot[ snapshot_idx ].reset_cnt = _retry_cnt; } - ulong _total_bytes = fd_ulong_if( snapshot_idx==FD_GUI_BOOT_PROGRESS_FULL_SNAPSHOT_IDX, snapct_metrics[ MIDX( GAUGE, SNAPCT, FULL_SIZE_BYTES ) ], snapct_metrics[ MIDX( GAUGE, SNAPCT, INCREMENTAL_SIZE_BYTES ) ] ); + ulong _total_bytes = fd_ulong_if( snapshot_idx==FD_GUI_BOOT_PROGRESS_FULL_SNAPSHOT_IDX, snapct_metrics[ MIDX( GAUGE, SNAPCT, FULL_SIZE_BYTES ) ], snapct_metrics[ MIDX( GAUGE, SNAPCT, INCREMENTAL_SIZE_BYTES ) ] ); ulong _read_bytes = fd_ulong_if( snapshot_idx==FD_GUI_BOOT_PROGRESS_FULL_SNAPSHOT_IDX, snapct_metrics[ MIDX( GAUGE, SNAPCT, FULL_BYTES_READ ) ], snapct_metrics[ MIDX( GAUGE, SNAPCT, INCREMENTAL_BYTES_READ ) ] ); ulong _decompress_decompressed_bytes = fd_ulong_if( snapshot_idx==FD_GUI_BOOT_PROGRESS_FULL_SNAPSHOT_IDX, snapdc_metrics[ MIDX( GAUGE, SNAPDC, FULL_DECOMPRESSED_BYTES_WRITTEN ) ], snapdc_metrics[ MIDX( GAUGE, SNAPDC, INCREMENTAL_DECOMPRESSED_BYTES_WRITTEN ) ] ); ulong _decompress_compressed_bytes = fd_ulong_if( snapshot_idx==FD_GUI_BOOT_PROGRESS_FULL_SNAPSHOT_IDX, snapdc_metrics[ MIDX( GAUGE, SNAPDC, FULL_COMPRESSED_BYTES_READ ) ], snapdc_metrics[ MIDX( GAUGE, SNAPDC, INCREMENTAL_COMPRESSED_BYTES_READ ) ] ); ulong _insert_bytes = fd_ulong_if( snapshot_idx==FD_GUI_BOOT_PROGRESS_FULL_SNAPSHOT_IDX, snapin_metrics[ MIDX( GAUGE, SNAPIN, FULL_BYTES_READ ) ], snapin_metrics[ MIDX( GAUGE, SNAPIN, INCREMENTAL_BYTES_READ ) ] ); - ulong _insert_accounts = snapin_metrics[ MIDX( GAUGE, SNAPIN, ACCOUNT_LOADED ) ]; + ulong _snapwr_in_bytes = fd_ulong_if( snapshot_idx==FD_GUI_BOOT_PROGRESS_FULL_SNAPSHOT_IDX, snapwr_metrics[ MIDX( GAUGE, SNAPWR, FULL_BYTES_READ ) ], snapwr_metrics[ MIDX( GAUGE, SNAPWR, INCREMENTAL_BYTES_READ ) ] ); + + ulong _insert_accounts_total = snapin_metrics[ MIDX( GAUGE, SNAPIN, ACCOUNT_LOADED ) ]; + ulong _insert_accounts_baseline = fd_ulong_if( snapshot_idx==FD_GUI_BOOT_PROGRESS_FULL_SNAPSHOT_IDX, 0UL, gui->summary.boot_progress.loading_snapshot[ FD_GUI_BOOT_PROGRESS_FULL_SNAPSHOT_IDX ].insert_accounts_current ); + ulong _insert_accounts = fd_ulong_sat_sub( _insert_accounts_total, _insert_accounts_baseline ); + + ulong _snapwr_accounts_total = snapwr_metrics[ MIDX( GAUGE, SNAPWR, ACCOUNTS_WRITTEN ) ]; + ulong _snapwr_accounts_baseline = fd_ulong_if( snapshot_idx==FD_GUI_BOOT_PROGRESS_FULL_SNAPSHOT_IDX, 0UL, gui->summary.boot_progress.loading_snapshot[ FD_GUI_BOOT_PROGRESS_FULL_SNAPSHOT_IDX ].snapwr_accounts_current ); + ulong _snapwr_accounts = fd_ulong_sat_sub( _snapwr_accounts_total, _snapwr_accounts_baseline ); + + ulong _snapwr_out_total = snapwr_metrics[ MIDX( GAUGE, SNAPWR, BYTES_WRITTEN ) ]; + ulong _snapwr_out_baseline = fd_ulong_if( snapshot_idx==FD_GUI_BOOT_PROGRESS_FULL_SNAPSHOT_IDX, 0UL, gui->summary.boot_progress.loading_snapshot[ FD_GUI_BOOT_PROGRESS_FULL_SNAPSHOT_IDX ].snapwr_out_bytes_decompressed ); + ulong _snapwr_out_bytes = fd_ulong_sat_sub( _snapwr_out_total, _snapwr_out_baseline ); /* metadata */ gui->summary.boot_progress.loading_snapshot[ snapshot_idx ].total_bytes_compressed = _total_bytes; @@ -1324,9 +1339,12 @@ fd_gui_run_boot_progress( fd_gui_t * gui, long now ) { /* insert stage */ gui->summary.boot_progress.loading_snapshot[ snapshot_idx ].insert_bytes_decompressed = _insert_bytes; + gui->summary.boot_progress.loading_snapshot[ snapshot_idx ].insert_accounts_current = _insert_accounts; - /* Use the latest compression ratio to estimate decompressed size */ - gui->summary.boot_progress.loading_snapshot[ snapshot_idx ].insert_accounts_current = _insert_accounts; + /* snapwr (snapshot write) stage */ + gui->summary.boot_progress.loading_snapshot[ snapshot_idx ].snapwr_in_bytes_decompressed = _snapwr_in_bytes; + gui->summary.boot_progress.loading_snapshot[ snapshot_idx ].snapwr_out_bytes_decompressed = _snapwr_out_bytes; + gui->summary.boot_progress.loading_snapshot[ snapshot_idx ].snapwr_accounts_current = _snapwr_accounts; break; } diff --git a/src/disco/gui/fd_gui.h b/src/disco/gui/fd_gui.h index d2e29557483..2cdab5e5b11 100644 --- a/src/disco/gui/fd_gui.h +++ b/src/disco/gui/fd_gui.h @@ -629,6 +629,10 @@ struct fd_gui_boot_progress { ulong insert_bytes_decompressed; char insert_path[ PATH_MAX ]; ulong insert_accounts_current; + + ulong snapwr_in_bytes_decompressed; + ulong snapwr_out_bytes_decompressed; + ulong snapwr_accounts_current; } loading_snapshot[ FD_GUI_BOOT_PROGRESS_SNAPSHOT_CNT ]; ulong wfs_total_stake; diff --git a/src/disco/gui/fd_gui_printf.c b/src/disco/gui/fd_gui_printf.c index 9dbcfab1723..fe54afe3074 100644 --- a/src/disco/gui/fd_gui_printf.c +++ b/src/disco/gui/fd_gui_printf.c @@ -2532,6 +2532,9 @@ fd_gui_printf_boot_progress( fd_gui_t * gui ) { jsonp_ulong_as_str( gui->http, "loading_" FD_STRINGIFY(snapshot_type) "_snapshot_decompress_bytes_compressed", gui->summary.boot_progress.loading_snapshot[ snapshot_idx ].decompress_bytes_compressed ); \ jsonp_ulong_as_str( gui->http, "loading_" FD_STRINGIFY(snapshot_type) "_snapshot_insert_bytes_decompressed", gui->summary.boot_progress.loading_snapshot[ snapshot_idx ].insert_bytes_decompressed ); \ jsonp_ulong ( gui->http, "loading_" FD_STRINGIFY(snapshot_type) "_snapshot_insert_accounts", gui->summary.boot_progress.loading_snapshot[ snapshot_idx ].insert_accounts_current ); \ + jsonp_ulong_as_str( gui->http, "loading_" FD_STRINGIFY(snapshot_type) "_snapshot_snapwr_in_bytes_decompressed", gui->summary.boot_progress.loading_snapshot[ snapshot_idx ].snapwr_in_bytes_decompressed ); \ + jsonp_ulong_as_str( gui->http, "loading_" FD_STRINGIFY(snapshot_type) "_snapshot_snapwr_out_bytes_decompressed", gui->summary.boot_progress.loading_snapshot[ snapshot_idx ].snapwr_out_bytes_decompressed ); \ + jsonp_ulong ( gui->http, "loading_" FD_STRINGIFY(snapshot_type) "_snapshot_snapwr_accounts", gui->summary.boot_progress.loading_snapshot[ snapshot_idx ].snapwr_accounts_current ); \ } else { \ jsonp_null( gui->http, "loading_" FD_STRINGIFY(snapshot_type) "_snapshot_elapsed_seconds" ); \ jsonp_null( gui->http, "loading_" FD_STRINGIFY(snapshot_type) "_snapshot_reset_count" ); \ @@ -2543,6 +2546,9 @@ fd_gui_printf_boot_progress( fd_gui_t * gui ) { jsonp_null( gui->http, "loading_" FD_STRINGIFY(snapshot_type) "_snapshot_decompress_bytes_compressed" ); \ jsonp_null( gui->http, "loading_" FD_STRINGIFY(snapshot_type) "_snapshot_insert_bytes_decompressed" ); \ jsonp_null( gui->http, "loading_" FD_STRINGIFY(snapshot_type) "_snapshot_insert_accounts" ); \ + jsonp_null( gui->http, "loading_" FD_STRINGIFY(snapshot_type) "_snapshot_snapwr_in_bytes_decompressed" ); \ + jsonp_null( gui->http, "loading_" FD_STRINGIFY(snapshot_type) "_snapshot_snapwr_out_bytes_decompressed" ); \ + jsonp_null( gui->http, "loading_" FD_STRINGIFY(snapshot_type) "_snapshot_snapwr_accounts" ); \ } \ } diff --git a/src/disco/metrics/generated/fd_metrics_snapwr.c b/src/disco/metrics/generated/fd_metrics_snapwr.c index 63930a2a0c0..6641f6c5681 100644 --- a/src/disco/metrics/generated/fd_metrics_snapwr.c +++ b/src/disco/metrics/generated/fd_metrics_snapwr.c @@ -5,4 +5,5 @@ const fd_metrics_meta_t FD_METRICS_SNAPWR[FD_METRICS_SNAPWR_TOTAL] = { DECLARE_METRIC( SNAPWR_FULL_BYTES_READ, GAUGE ), DECLARE_METRIC( SNAPWR_INCREMENTAL_BYTES_READ, GAUGE ), DECLARE_METRIC( SNAPWR_BYTES_WRITTEN, GAUGE ), + DECLARE_METRIC( SNAPWR_ACCOUNTS_WRITTEN, GAUGE ), }; diff --git a/src/disco/metrics/generated/fd_metrics_snapwr.h b/src/disco/metrics/generated/fd_metrics_snapwr.h index 4f5bd5c2dc7..2cd49d424c4 100644 --- a/src/disco/metrics/generated/fd_metrics_snapwr.h +++ b/src/disco/metrics/generated/fd_metrics_snapwr.h @@ -10,6 +10,7 @@ enum { FD_METRICS_GAUGE_SNAPWR_FULL_BYTES_READ_OFF = FD_METRICS_TILE_OFF, FD_METRICS_GAUGE_SNAPWR_INCREMENTAL_BYTES_READ_OFF, FD_METRICS_GAUGE_SNAPWR_BYTES_WRITTEN_OFF, + FD_METRICS_GAUGE_SNAPWR_ACCOUNTS_WRITTEN_OFF, }; #define FD_METRICS_GAUGE_SNAPWR_FULL_BYTES_READ_NAME "snapwr_full_bytes_read" @@ -27,7 +28,12 @@ enum { #define FD_METRICS_GAUGE_SNAPWR_BYTES_WRITTEN_DESC "Number of bytes written to the accounts database on disk. Monotonically increasing across snapshot loads." #define FD_METRICS_GAUGE_SNAPWR_BYTES_WRITTEN_CVT (FD_METRICS_CONVERTER_NONE) -#define FD_METRICS_SNAPWR_TOTAL (3UL) +#define FD_METRICS_GAUGE_SNAPWR_ACCOUNTS_WRITTEN_NAME "snapwr_accounts_written" +#define FD_METRICS_GAUGE_SNAPWR_ACCOUNTS_WRITTEN_TYPE (FD_METRICS_TYPE_GAUGE) +#define FD_METRICS_GAUGE_SNAPWR_ACCOUNTS_WRITTEN_DESC "Number of accounts written to the accounts database on disk. Might decrease if snapshot load is aborted and restarted" +#define FD_METRICS_GAUGE_SNAPWR_ACCOUNTS_WRITTEN_CVT (FD_METRICS_CONVERTER_NONE) + +#define FD_METRICS_SNAPWR_TOTAL (4UL) extern const fd_metrics_meta_t FD_METRICS_SNAPWR[FD_METRICS_SNAPWR_TOTAL]; #endif /* HEADER_fd_src_disco_metrics_generated_fd_metrics_snapwr_h */ diff --git a/src/disco/metrics/metrics.xml b/src/disco/metrics/metrics.xml index e2f09705d32..e82d83fa5ec 100644 --- a/src/disco/metrics/metrics.xml +++ b/src/disco/metrics/metrics.xml @@ -1624,6 +1624,7 @@ EXAMPLES + diff --git a/src/discof/restore/fd_snapwr_tile.c b/src/discof/restore/fd_snapwr_tile.c index e3a266c1600..85076df688c 100644 --- a/src/discof/restore/fd_snapwr_tile.c +++ b/src/discof/restore/fd_snapwr_tile.c @@ -63,6 +63,8 @@ struct fd_snapwr_tile { ulong full_bytes_read; ulong incremental_bytes_read; ulong bytes_written; + ulong accounts_written; + ulong full_accounts_written; } metrics; fd_snapshot_manifest_t manifest[1]; @@ -80,6 +82,7 @@ metrics_write( fd_snapwr_tile_t * ctx ) { FD_MGAUGE_SET( SNAPWR, FULL_BYTES_READ, ctx->metrics.full_bytes_read ); FD_MGAUGE_SET( SNAPWR, INCREMENTAL_BYTES_READ, ctx->metrics.incremental_bytes_read ); FD_MGAUGE_SET( SNAPWR, BYTES_WRITTEN, ctx->metrics.bytes_written ); + FD_MGAUGE_SET( SNAPWR, ACCOUNTS_WRITTEN, ctx->metrics.accounts_written ); } static ulong @@ -164,6 +167,7 @@ process_account_header( fd_snapwr_tile_t * ctx, fd_memcpy( data+32UL, &result->account_header.data_len, 4UL ); fd_memcpy( data+36UL, result->account_header.owner, 32UL ); buffer_write( ctx, data, 68UL ); + ctx->metrics.accounts_written++; } static void @@ -272,11 +276,14 @@ handle_control_frag( fd_snapwr_tile_t * ctx, fd_ssparse_init( ctx->ssparse ); fd_ssmanifest_parser_init( ctx->manifest_parser, ctx->manifest ); + /* Rewind metric counters (no-op unless recovering from a fail) */ if( sig==FD_SNAPSHOT_MSG_CTRL_INIT_FULL ) { ctx->metrics.full_bytes_read = 0UL; ctx->metrics.incremental_bytes_read = 0UL; + ctx->metrics.accounts_written = ctx->metrics.full_accounts_written = 0UL; } else { ctx->metrics.incremental_bytes_read = 0UL; + ctx->metrics.accounts_written = ctx->metrics.full_accounts_written; } break; } @@ -294,6 +301,7 @@ handle_control_frag( fd_snapwr_tile_t * ctx, ctx->state = FD_SNAPSHOT_STATE_IDLE; ctx->recovery.accounts_off = ctx->accounts_off; ctx->recovery.flush_off = ctx->flush_off; + ctx->metrics.full_accounts_written = ctx->metrics.accounts_written; break; } From 1a726d7616afa419b59d4a6a15cfa064d0c5df93 Mon Sep 17 00:00:00 2001 From: David Rubin Date: Tue, 16 Jun 2026 17:28:47 +0000 Subject: [PATCH 58/61] bn254: cleanup unsafe poseidon API --- src/ballet/bn254/fd_poseidon.h | 14 -------------- src/ballet/bn254/test_poseidon.c | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/ballet/bn254/fd_poseidon.h b/src/ballet/bn254/fd_poseidon.h index f0715666d1a..b8454da2f8a 100644 --- a/src/ballet/bn254/fd_poseidon.h +++ b/src/ballet/bn254/fd_poseidon.h @@ -91,20 +91,6 @@ uchar * fd_poseidon_fini( fd_poseidon_t * pos, uchar hash[ FD_POSEIDON_HASH_SZ ] ); -/* Hash a series of bytes. */ -static inline int -fd_poseidon_hash( fd_poseidon_hash_result_t * result, - uchar const * bytes, - ulong bytes_len, - int const big_endian ) { - fd_poseidon_t pos[1]; - fd_poseidon_init( pos, big_endian ); - for( ulong i=0; i Date: Tue, 16 Jun 2026 15:04:49 -0500 Subject: [PATCH 59/61] txncache: support canceling fork trees --- src/flamenco/runtime/fd_txncache.c | 8 +++++++- src/flamenco/runtime/fd_txncache.h | 7 +++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/flamenco/runtime/fd_txncache.c b/src/flamenco/runtime/fd_txncache.c index 2a1b3ddde07..d63fba43fb3 100644 --- a/src/flamenco/runtime/fd_txncache.c +++ b/src/flamenco/runtime/fd_txncache.c @@ -350,8 +350,14 @@ fd_txncache_cancel_fork( fd_txncache_t * tc, fd_txncache_fork_id_t fork_id ) { fd_rwlock_write( tc->shmem->lock ); blockcache_t * fork = &tc->blockcache_pool[ fork_id.val ]; - FD_TEST( fork->shmem->child_id.val==USHORT_MAX ); FD_TEST( fork->shmem->parent_id.val!=USHORT_MAX ); + + /* The soon-to-be-pruned subtree must be unrooted. */ + fd_txncache_blockcache_shmem_t const * latest_root = root_slist_ele_peek_tail_const( tc->shmem->root_ll, tc->blockcache_shmem_pool ); + FD_TEST( latest_root ); + FD_TEST( descends_set_test( fork->descends, blockcache_pool_idx( tc->blockcache_shmem_pool, latest_root ) ) ); + + remove_children( tc, fork, NULL ); remove_blockcache( tc, fork ); ushort * fork_id_p = &(tc->blockcache_pool[ fork->shmem->parent_id.val ].shmem->child_id.val); while( *fork_id_p!=fork_id.val ) { diff --git a/src/flamenco/runtime/fd_txncache.h b/src/flamenco/runtime/fd_txncache.h index 104ffe73bed..a326e10a2f9 100644 --- a/src/flamenco/runtime/fd_txncache.h +++ b/src/flamenco/runtime/fd_txncache.h @@ -191,8 +191,11 @@ fd_txncache_finalize_fork( fd_txncache_t * tc, ulong txnhash_offset, uchar const * blockhash ); -/* fd_txncache_cancel_fork is called to prune away an unfinalized leaf - fork. Takes a write lock. */ +/* fd_txncache_cancel_fork removes the provided fork and all of its + descendants from the txncache. Forks in the subtree must be + unrooted. Forks in the subtree may or may not have been finalized. + Takes a write lock. */ + void fd_txncache_cancel_fork( fd_txncache_t * tc, fd_txncache_fork_id_t fork_id ); From 5d6ca80f783d357183c934e2b88dc28be7694adb Mon Sep 17 00:00:00 2001 From: jherrera-jump Date: Tue, 16 Jun 2026 15:15:46 -0500 Subject: [PATCH 60/61] rpc: serve tpu, tpuForwards (#10270) --- src/discof/rpc/fd_rpc_tile.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/discof/rpc/fd_rpc_tile.c b/src/discof/rpc/fd_rpc_tile.c index 2e6d7dcb894..22b2267b699 100644 --- a/src/discof/rpc/fd_rpc_tile.c +++ b/src/discof/rpc/fd_rpc_tile.c @@ -1452,8 +1452,11 @@ getClusterNodes( fd_rpc_tile_t * ctx, case FD_GOSSIP_CONTACT_INFO_SOCKET_RPC: name = "rpc"; break; case FD_GOSSIP_CONTACT_INFO_SOCKET_RPC_PUBSUB: name = "pubsub"; break; case FD_GOSSIP_CONTACT_INFO_SOCKET_SERVE_REPAIR: name = "serveRepair"; break; - case FD_GOSSIP_CONTACT_INFO_SOCKET_TPU: name = NULL; break; /* Agave hardcodes tpu to null */ - case FD_GOSSIP_CONTACT_INFO_SOCKET_TPU_FORWARDS: name = NULL; break; /* Agave hardcodes tpuForwards to null */ + /* Even though Agave does not support "tpu" and "tpuForwards" + (hardcoded null), frankendacer/firedancer still support + UDP-TPU. */ + case FD_GOSSIP_CONTACT_INFO_SOCKET_TPU: name = "tpu"; break; + case FD_GOSSIP_CONTACT_INFO_SOCKET_TPU_FORWARDS: name = "tpuForwards"; break; case FD_GOSSIP_CONTACT_INFO_SOCKET_TPU_FORWARDS_QUIC: name = "tpuForwardsQuic"; break; case FD_GOSSIP_CONTACT_INFO_SOCKET_TPU_QUIC: name = "tpuQuic"; break; case FD_GOSSIP_CONTACT_INFO_SOCKET_TPU_VOTE: name = "tpuVote"; break; @@ -1469,7 +1472,6 @@ getClusterNodes( fd_rpc_tile_t * ctx, if( FD_LIKELY( !!ip4 || !!ele->ci->sockets[ i ].port ) ) fd_http_server_printf( ctx->http, "\"%s\":\"" FD_IP4_ADDR_FMT ":%hu\",", name, FD_IP4_ADDR_FMT_ARGS( ip4 ), fd_ushort_bswap( ele->ci->sockets[ i ].port ) ); else fd_http_server_printf( ctx->http, "\"%s\":null,", name ); } - fd_http_server_printf( ctx->http, "\"tpu\":null,\"tpuForwards\":null," ); fd_http_server_printf( ctx->http, "\"pubkey\":\"%s\",", identity_cstr ); fd_http_server_printf( ctx->http, "\"shredVersion\":%u,", ele->ci->shred_version ); From a2ad0a03e8829e973a0a01512bc8cff699ccfe02 Mon Sep 17 00:00:00 2001 From: jvarela-jump Date: Mon, 15 Jun 2026 16:02:17 +0000 Subject: [PATCH 61/61] restore: sspeer_selector cap on max slots behind --- src/discof/restore/fd_snapct_tile.c | 6 ++ src/discof/restore/utils/fd_sspeer_selector.c | 8 +++ src/discof/restore/utils/fd_sspeer_selector.h | 4 ++ .../restore/utils/test_sspeer_selector.c | 71 +++++++++++++++++-- 4 files changed, 85 insertions(+), 4 deletions(-) diff --git a/src/discof/restore/fd_snapct_tile.c b/src/discof/restore/fd_snapct_tile.c index 4e20aa2dfa6..0fd600a6d1d 100644 --- a/src/discof/restore/fd_snapct_tile.c +++ b/src/discof/restore/fd_snapct_tile.c @@ -295,6 +295,9 @@ on_resolve( void * _ctx, uchar incr_hash[ FD_HASH_FOOTPRINT ] ) { fd_snapct_tile_t * ctx = (fd_snapct_tile_t *)_ctx; + if( FD_UNLIKELY( full_slot!=FD_SSPEER_SLOT_UNKNOWN && full_slot>=FD_SSPEER_PLAUSIBLE_MAX_SLOT ) ) return; + if( FD_UNLIKELY( incr_slot!=FD_SSPEER_SLOT_UNKNOWN && incr_slot>=FD_SSPEER_PLAUSIBLE_MAX_SLOT ) ) return; + /* Do not update peers that have been permanently blacklisted. */ if( FD_UNLIKELY( key && blacklist_map_ele_query( ctx->blacklist_map, key, NULL, ctx->blacklist_pool ) ) ) return; /* Do not re-add peers whose addr is temporarily banned by ssping. */ @@ -355,6 +358,9 @@ on_snapshot_hash( fd_snapct_tile_t * ctx, } } + if( FD_UNLIKELY( full_slot>=FD_SSPEER_PLAUSIBLE_MAX_SLOT ) ) return; + if( FD_UNLIKELY( incr_slot!=FD_SSPEER_SLOT_UNKNOWN && incr_slot>=FD_SSPEER_PLAUSIBLE_MAX_SLOT ) ) return; + if( FD_UNLIKELY( !addr.l ) ) { /* A peer that does not advertise an rpc_addr cannot be added to the selector: if previously added, remove it. The remove diff --git a/src/discof/restore/utils/fd_sspeer_selector.c b/src/discof/restore/utils/fd_sspeer_selector.c index c322791b5f0..fe67d567e07 100644 --- a/src/discof/restore/utils/fd_sspeer_selector.c +++ b/src/discof/restore/utils/fd_sspeer_selector.c @@ -82,6 +82,9 @@ typedef struct fd_sspeer_private fd_sspeer_private_t; #include "../../../util/tmpl/fd_treap.c" #define DEFAULT_SLOTS_BEHIND (1000UL*1000UL) /* 1,000,000 slots behind */ +/* Intentionally less than DEFAULT_SLOTS_BEHIND so that peers with an + unknown slot are penalized more than the worst known peer. */ +#define MAX_SLOTS_BEHIND_CAP (864000UL) /* ~2 epochs worth of slots */ /* Assumed latency (in nanos) for peers that have not been pinged yet. Pings are sent immediately on peer discovery, so this default is short-lived. 100ms is a neutral middle-ground: high enough that @@ -277,6 +280,7 @@ fd_sspeer_selector_score( fd_sspeer_selector_t const * selector, against the cluster full slot. */ slots_behind = selector->cluster_slot.full>full_slot ? selector->cluster_slot.full - full_slot : 0UL; } + slots_behind = fd_ulong_min( slots_behind, MAX_SLOTS_BEHIND_CAP ); } /* Using saturating arithmetic to avoid overflow and cap at @@ -422,6 +426,10 @@ fd_sspeer_selector_add( fd_sspeer_selector_t * selector, the caller's responsibility to remove them. */ if( FD_UNLIKELY( !addr.l ) ) return FD_SSPEER_SCORE_INVALID; + /* Reject implausible slot values. FD_SSPEER_SLOT_UNKNOWN is allowed. */ + if( FD_UNLIKELY( full_slot!=FD_SSPEER_SLOT_UNKNOWN && full_slot>=FD_SSPEER_PLAUSIBLE_MAX_SLOT ) ) return FD_SSPEER_SCORE_INVALID; + if( FD_UNLIKELY( incr_slot!=FD_SSPEER_SLOT_UNKNOWN && incr_slot>=FD_SSPEER_PLAUSIBLE_MAX_SLOT ) ) return FD_SSPEER_SCORE_INVALID; + fd_sspeer_private_t * peer = peer_map_by_key_ele_query( selector->map_by_key, key, NULL, selector->pool ); if( FD_LIKELY( peer ) ) { ulong old_full = peer->full_slot; diff --git a/src/discof/restore/utils/fd_sspeer_selector.h b/src/discof/restore/utils/fd_sspeer_selector.h index 2591a02734f..da3df48d62b 100644 --- a/src/discof/restore/utils/fd_sspeer_selector.h +++ b/src/discof/restore/utils/fd_sspeer_selector.h @@ -27,6 +27,10 @@ /* Sentinel value indicating that peer latency has not been measured. */ #define FD_SSPEER_LATENCY_UNKNOWN (ULONG_MAX) +/* Plausibility bound: slots at or above this are silently dropped. + ~10^10 is ~125 years of mainnet at 2.5 slots/s. */ +#define FD_SSPEER_PLAUSIBLE_MAX_SLOT (10UL*1000UL*1000UL*1000UL) + /* Return code for fd_sspeer_selector_update (internal). */ #define FD_SSPEER_UPDATE_SUCCESS ( 0) diff --git a/src/discof/restore/utils/test_sspeer_selector.c b/src/discof/restore/utils/test_sspeer_selector.c index 0cf22eff0be..5270db8cf3f 100644 --- a/src/discof/restore/utils/test_sspeer_selector.c +++ b/src/discof/restore/utils/test_sspeer_selector.c @@ -1073,7 +1073,7 @@ test_cluster_slot_recovery_after_poison( fd_sspeer_selector_t * selector, fd_ip4_port_t malicious_addr; FD_TEST( generate_rand_addr_non_zero( &malicious_addr, rng ) ); fd_ip4_port_t honest_addr; FD_TEST( generate_rand_addr_non_zero( &honest_addr, rng ) ); - ulong poison_slot = 999999999999998UL; /* near MAX_SLOT */ + ulong poison_slot = FD_SSPEER_PLAUSIBLE_MAX_SLOT - 2UL; /* just below plausibility bound */ ulong honest_slot = 300000000UL; /* realistic mainnet slot */ /* Step 1: Malicious is the first and only peer. @@ -1303,17 +1303,77 @@ test_score_saturation( fd_sspeer_selector_t * selector, /* full_slot==UNKNOWN with incr_slot!=UNKNOWN is rejected. */ FD_TEST( add_peer( selector, key, addr, FD_SSPEER_SLOT_UNKNOWN, 10500UL, 5UL*1000UL*1000UL )==FD_SSPEER_SCORE_INVALID ); - /* Score saturation: establish cluster at near-ULONG_MAX via helper. */ + /* Implausible slot values are rejected at the boundary. */ + FD_TEST( add_peer( selector, key, addr, FD_SSPEER_PLAUSIBLE_MAX_SLOT, FD_SSPEER_SLOT_UNKNOWN, 5UL*1000UL*1000UL )==FD_SSPEER_SCORE_INVALID ); + FD_TEST( add_peer( selector, key, addr, FD_SSPEER_PLAUSIBLE_MAX_SLOT+1UL,FD_SSPEER_SLOT_UNKNOWN, 5UL*1000UL*1000UL )==FD_SSPEER_SCORE_INVALID ); + FD_TEST( add_peer( selector, key, addr, 100UL, FD_SSPEER_PLAUSIBLE_MAX_SLOT, 5UL*1000UL*1000UL )==FD_SSPEER_SCORE_INVALID ); + FD_TEST( add_peer( selector, key, addr, FD_SSPEER_PLAUSIBLE_MAX_SLOT-1UL,FD_SSPEER_SLOT_UNKNOWN, 5UL*1000UL*1000UL )!=FD_SSPEER_SCORE_INVALID ); + fd_sspeer_selector_remove( selector, key ); + + /* Score saturation: establish cluster near FD_SSPEER_PLAUSIBLE_MAX_SLOT + via helper. With MAX_SLOTS_BEHIND_CAP, the peer's slots_behind is + capped to 864000 instead of the raw distance. + score = 5_000_000 (latency) + 864_000 * 1000 (capped penalty) = 869_000_000. */ fd_sspeer_selector_remove( selector, helper_key ); - FD_TEST( add_peer( selector, helper_key, helper_addr, ULONG_MAX-1UL, ULONG_MAX-1UL, 100UL*1000UL*1000UL )!=FD_SSPEER_SCORE_INVALID ); + FD_TEST( add_peer( selector, helper_key, helper_addr, FD_SSPEER_PLAUSIBLE_MAX_SLOT-1UL, FD_SSPEER_PLAUSIBLE_MAX_SLOT-1UL, 100UL*1000UL*1000UL )!=FD_SSPEER_SCORE_INVALID ); fd_sspeer_selector_process_cluster_slot( selector ); - FD_TEST( add_peer( selector, key, addr, 0UL, FD_SSPEER_SLOT_UNKNOWN, 5UL*1000UL*1000UL )==FD_SSPEER_SCORE_MAX ); + FD_TEST( add_peer( selector, key, addr, 0UL, FD_SSPEER_SLOT_UNKNOWN, 5UL*1000UL*1000UL )==5UL*1000UL*1000UL + 864000UL*1000UL ); fd_sspeer_selector_remove( selector, key ); fd_sspeer_selector_remove( selector, helper_key ); FD_LOG_NOTICE(( "... pass" )); } +static void +test_slots_behind_cap( fd_sspeer_selector_t * selector, + fd_rng_t * rng ) { + FD_LOG_NOTICE(( "testing slots_behind cap" )); + + fd_sspeer_key_t attacker_key[1]; FD_TEST( generate_rand_sspeer_key( attacker_key, rng, 0 ) ); + fd_ip4_port_t attacker_addr; FD_TEST( generate_rand_addr_non_zero( &attacker_addr, rng ) ); + + fd_sspeer_key_t honest_key_A[1]; FD_TEST( generate_rand_sspeer_key( honest_key_A, rng, 0 ) ); + fd_ip4_port_t honest_addr_A; FD_TEST( generate_rand_addr_non_zero( &honest_addr_A, rng ) ); + + fd_sspeer_key_t honest_key_B[1]; FD_TEST( generate_rand_sspeer_key( honest_key_B, rng, 0 ) ); + fd_ip4_port_t honest_addr_B; FD_TEST( generate_rand_addr_non_zero( &honest_addr_B, rng ) ); + + /* Add attacker at slot 1,000,000. */ + FD_TEST( add_peer( selector, attacker_key, attacker_addr, 1000000UL, FD_SSPEER_SLOT_UNKNOWN, 5UL*1000UL*1000UL )!=FD_SSPEER_SCORE_INVALID ); + + /* Add honest peers at slot 300. */ + FD_TEST( add_peer( selector, honest_key_A, honest_addr_A, 300UL, FD_SSPEER_SLOT_UNKNOWN, 5UL*1000UL*1000UL )!=FD_SSPEER_SCORE_INVALID ); + FD_TEST( add_peer( selector, honest_key_B, honest_addr_B, 300UL, FD_SSPEER_SLOT_UNKNOWN, 5UL*1000UL*1000UL )!=FD_SSPEER_SCORE_INVALID ); + + /* Recompute cluster_slot: max full becomes 1,000,000. */ + fd_sspeer_selector_process_cluster_slot( selector ); + fd_sscluster_slot_t cs = fd_sspeer_selector_cluster_slot( selector ); + FD_TEST( cs.full==1000000UL ); + + /* Honest peers' scores should use capped slots_behind (864,000) + instead of the raw 999,700. + score = 5_000_000 (latency) + 864_000 * 1000 (capped penalty) = 869_000_000. */ + fd_sspeer_key_t probe_key[1]; FD_TEST( generate_rand_sspeer_key( probe_key, rng, 0 ) ); + fd_ip4_port_t probe_addr; FD_TEST( generate_rand_addr_non_zero( &probe_addr, rng ) ); + ulong capped_score = add_peer( selector, probe_key, probe_addr, 300UL, FD_SSPEER_SLOT_UNKNOWN, 5UL*1000UL*1000UL ); + FD_TEST( capped_score==5UL*1000UL*1000UL + 864000UL*1000UL ); + + /* Honest peers remain selectable (not saturated to SCORE_MAX). */ + FD_TEST( capped_score